Supoprt for tape images in the Absolute Loader format has been moved to the RAM component, so that those images can be preloaded into RAM in the same way that raw bootstrap images can; the RAM component now provides Absolute Loader image parsing as a service to other components that need it (specifically, the PC11 tape reader)
This commit is contained in:
parent
69b7a682d8
commit
13a1dedbc7
21 changed files with 800 additions and 693 deletions
|
|
@ -7,7 +7,8 @@ permalink: /devices/pdp11/machine/1120/
|
|||
PDP-11/20 Machine Configurations
|
||||
--------------------------------
|
||||
|
||||
PCjs is adding support the following PDP-11/20 configurations:
|
||||
PDPjs is currently being tested with the following PDP-11/20 machine configurations:
|
||||
|
||||
* [PDP-11/20 Test Machine](/devices/pdp11/machine/1120/test/) ([Debugger](/devices/pdp11/machine/1120/test/debugger/))
|
||||
* [PDP-11/20 with 16Kb and Bootstrap Loader](/devices/pdp11/machine/1120/bootstrap/) ([Debugger](/devices/pdp11/machine/1120/bootstrap/debugger/))
|
||||
* [PDP-11/20 with 16Kb and DEC BASIC](/devices/pdp11/machine/1120/basic/) ([Debugger](/devices/pdp11/machine/1120/basic/debugger/))
|
||||
|
|
|
|||
11
devices/pdp11/machine/1120/basic/README.md
Normal file
11
devices/pdp11/machine/1120/basic/README.md
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
layout: page
|
||||
title: PDP-11/20 with 16Kb, DEC BASIC
|
||||
permalink: /devices/pdp11/machine/1120/basic/
|
||||
machines:
|
||||
- id: test1120
|
||||
type: pdp11
|
||||
autoMount: ''
|
||||
---
|
||||
|
||||
{% include machine.html id="test1120" %}
|
||||
12
devices/pdp11/machine/1120/basic/debugger/README.md
Normal file
12
devices/pdp11/machine/1120/basic/debugger/README.md
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
layout: page
|
||||
title: PDP-11/20 with 16Kb, DEC BASIC, and Debugger
|
||||
permalink: /devices/pdp11/machine/1120/basic/debugger/
|
||||
machines:
|
||||
- id: test1120
|
||||
type: pdp11
|
||||
debugger: true
|
||||
autoMount: ''
|
||||
---
|
||||
|
||||
{% include machine.html id="test1120" %}
|
||||
13
devices/pdp11/machine/1120/basic/debugger/machine.xml
Normal file
13
devices/pdp11/machine/1120/basic/debugger/machine.xml
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="/versions/pdpjs/1.30.1/machine.xsl"?>
|
||||
<machine id="test1120" class="pdp11" border="1" pos="center" background="#FAEBD7">
|
||||
<name pos="center">PDP-11/20: 16Kb, DEC BASIC, Debugger</name>
|
||||
<computer id="computer" busWidth="16"/>
|
||||
<cpu id="cpu" model="1120" cycles="6666667"/>
|
||||
<ram id="ram" addr="0x0000" size="0x4000" file="/apps/pdp11/tapes/DEC-11-AJPB-PB.json"/>
|
||||
<device id="default" type="default"/>
|
||||
<serial id="dl11" adapter="0" binding="print"/>
|
||||
<panel ref="/devices/pdp11/panel/test/debugger/terminal.xml"/>
|
||||
<debugger id="debugger" base="8" messages="" commands=""/>
|
||||
<device ref="/apps/pdp11/tapes/demo.xml"/>
|
||||
</machine>
|
||||
12
devices/pdp11/machine/1120/basic/machine.xml
Normal file
12
devices/pdp11/machine/1120/basic/machine.xml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="/versions/pdpjs/1.30.1/machine.xsl"?>
|
||||
<machine id="test1120" class="pdp11" border="1" pos="center" background="#FAEBD7">
|
||||
<name pos="center">PDP-11/20: 16Kb, DEC BASIC</name>
|
||||
<computer id="computer" busWidth="16"/>
|
||||
<cpu id="cpu" model="1120" cycles="6666667"/>
|
||||
<ram id="ram" addr="0x0000" size="0x4000" file="/apps/pdp11/tapes/DEC-11-AJPB-PB.json"/>
|
||||
<device id="default" type="default"/>
|
||||
<serial id="dl11" adapter="0" binding="print"/>
|
||||
<panel ref="/devices/pdp11/panel/test/terminal.xml"/>
|
||||
<device ref="/apps/pdp11/tapes/demo.xml"/>
|
||||
</machine>
|
||||
|
|
@ -7,7 +7,7 @@ permalink: /devices/pdp11/machine/1170/
|
|||
PDP-11/70 Machine Configurations
|
||||
--------------------------------
|
||||
|
||||
PCjs is adding support the following PDP-11/70 configurations:
|
||||
PDPjs is currently being tested with the following PDP-11/70 machine configurations:
|
||||
|
||||
* [PDP-11/70 Test Machine](/devices/pdp11/machine/1170/test/) ([Debugger](/devices/pdp11/machine/1170/test/debugger/))
|
||||
* [PDP-11/70 with Front Panel](/devices/pdp11/machine/1170/panel) ([Debugger](/devices/pdp11/machine/1170/panel/debugger/))
|
||||
|
|
|
|||
|
|
@ -656,7 +656,7 @@ function zp(a,b){var c=0,d,e=!0;b||(b=[0,0,128,Array(9),0,0,0,[]]);a.hb=b[c++];c
|
|||
n[t++];g.eb=n[t++];g.pb=null;g.za||(g.Oe="");var A=n[t++];102==A&&(A=!1);"boolean"==typeof A?(q=n[t++],n=n[t],A?(t=k.A[m],Ep(k,m,!0,!0),t.bf=!0,m=new Lo(k,t,"preload"),k.pj(t,m,q,n,!0)):Gp(k,m,q,n,!0)?g.za&&n&&Hp(k,q,n,g.za):xb(k,!1)):void 0!==A&&g.za&&0>g.za.restore(A)&&(h=!1);h&&g.za&&void 0!==g.eb&&(g.pb=g.za.seek(g.Qb,g.kb,g.xb));h||(e=!1)}a.W=b[c++]||0;a.jc=b[c]||0;return e}
|
||||
function Fp(a){var b=0,c=[];c[b++]=a.hb;c[b++]=0;c[b++]=a.ma;c[b++]=a.V;c[b++]=a.L;c[b++]=a.C;c[b++]=a.aa;for(var d=b++,e=0,f=[],g=0;g<a.A.length;g++){var h=e++,k=a.A[g],m=0,n=[];n[m++]=k.Cb;n[m++]=[k.name,k.Bb,k.ub,k.lb,k.Va,k.cf,k.Fg,k.Qf,k.Rf];n[m++]=k.kb;n[m++]=k.ee+100;n[m++]=k.Qb;n[m++]=k.xb;n[m++]=k.fe;n[m++]=k.Hb;n[m++]=k.eb;n[m++]=k.bf;n[m++]=k.Tk;n[m]=k.Oe;f[h]=n}c[d]=f;d=b++;for(e=0;e<a.A.length;e++)f=a.A[e],f.za&&Ip(a,f.Oe,f.za);c[d]=a.B;c[b++]=a.W;c[b]=a.jc;return c}
|
||||
l.mj=function(a){var b;a=this.A[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b};l.Uk=function(a,b,c){if(a.za){var d=a.za.info(),e=d[2],f=d[1]*e;if(b+c<=d[0]*f)return a.Qb=Math.floor(b/f),b%=f,a.kb=Math.floor(b/e),a.xb=b%e+1,a.Hb=c*d[3],a.Cb=0,!0}return!1};
|
||||
function Dp(a,b){b||(a.ea=0);if(a.U)for(var c in a.U){var d=a.U[c],e=d.path,f;if(!(f=d.name))a:{if((f=a.qa.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=ja(e,!0)}if(e&&f&&(g=c.charCodeAt(0)-65,0<=g&&g<a.A.length)){!Gp(a,g,f,e,!0)&&b&&xb(a,!1);continue}a.Na("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.ea}
|
||||
function Dp(a,b){b||(a.ea=0);if(a.U)for(var c in a.U){var d=a.U[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.qa.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=ja(e,!0)}if(e&&f&&(g=c.charCodeAt(0)-65,0<=g&&g<a.A.length)){!Gp(a,g,f,e,!0)&&b&&xb(a,!1);continue}a.Na("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.ea}
|
||||
function yp(a,b,c,d){var e,f=a.qa.listDrives;if(f&&!isNaN(e=ea(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.Na('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=ja(c)}for(;0>Gp(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;h<f.B.length;h++)if(f.B[h][1]==g){f.B.splice(h,1);break}Ep(a,e,!1,
|
||||
!0)}}else Ep(a,e);else a.Na("Unable to load the selected drive")}function Gp(a,b,c,d,e,f){var g=a.A[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.Oe.toLowerCase()!=d.toLowerCase())){Ep(a,b,e,!0);if(g.$e)return a.Na("Drive "+b+" busy"),0;g.$e=!0;e&&(g.Ce=!0,a.ea++,z(a)&&y(a,"loading diskette '"+c+"'"));g.bf=!!f;return(new Lo(a,g,"preload")).load(c,d,f,a.pj)?1:0}return-1}
|
||||
l.pj=function(a,b,c,d,e){var f;a.$e=!1;b&&(f=b.info(),b&&f[0]>a.Bb||f[1]>a.ub)&&(this.Na('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.hb)),b=null);b?(a.za=b,a.Tk=c,a.Oe=d,Hp(this,c,d,b),f=b.info(),this.W|=128,this.Na('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.hb),a.Ce||e),a.Fg=f[0],a.Qf=f[1],a.Rf=f[2],this.X&&this.X.wd()):a.bf=!1;a.Ce&&(a.Ce=!1,--this.ea||xb(this));xp(this,a.hb)};
|
||||
|
|
|
|||
|
|
@ -604,7 +604,7 @@ function xm(a,b){var c=0,d,e=!0;b||(b=[0,0,128,Array(9),0,0,0,[]]);a.Qa=b[c++];c
|
|||
80;g.eb=9;break;case 1200:g.ib=80;g.eb=15;break;case 1440:g.ib=80,g.eb=18}}var k=a,m=d,q=f[d],y=0;h=!0;g.Qa=m;g.ne=g.pe=!1;q||(q=[192,!0,0,2,0]);"boolean"==typeof q[1]&&(q[1]=["Floppy Drive",g.ib||40,g.jb||q[3],g.eb||9,g.nb||512,q[1],g.Nf,g.Xe,g.Ye]);g.kb=q[y++];var w=q[y++];g.name=w[0];g.ib=w[1];g.jb=w[2];g.eb=w[3];g.nb=w[4];g.qe=w[5];(g.Nf=w[6])?(g.Xe=w[7],g.Ye=w[8]):(g.Nf=g.ib,g.Xe=g.jb,g.Ye=g.eb);g.Ya=q[y++];g.ud=q[y++];g.wb=q[y++];g.ud=100<=g.ud?g.ud-100:g.ud-g.wb;g.mb=q[y++];g.vd=q[y++];g.vb=
|
||||
q[y++];g.Ua=q[y++];g.Wa=null;g.ta||(g.Xd="");var z=q[y++];102==z&&(z=!1);"boolean"==typeof z?(w=q[y++],q=q[y],z?(y=k.B[m],Cm(k,m,!0,!0),y.pe=!0,m=new cm(k,y,"preload"),k.oi(y,m,w,q,!0)):Em(k,m,w,q,!0)?g.ta&&q&&Fm(k,w,q,g.ta):t(k,!1)):void 0!==z&&g.ta&&0>g.ta.restore(z)&&(h=!1);h&&g.ta&&void 0!==g.Ua&&(g.Wa=g.ta.seek(g.wb,g.Ya,g.mb));h||(e=!1)}a.L=b[c++]||0;a.H=b[c]||0;return e}
|
||||
function Dm(a){var b=0,c=[];c[b++]=a.Qa;c[b++]=0;c[b++]=a.aa;c[b++]=a.I;c[b++]=a.G;c[b++]=a.D;c[b++]=a.P;for(var d=b++,e=0,f=[],g=0;g<a.B.length;g++){var h=e++,k=a.B[g],m=0,q=[];q[m++]=k.kb;q[m++]=[k.name,k.ib,k.jb,k.eb,k.nb,k.qe,k.Nf,k.Xe,k.Ye];q[m++]=k.Ya;q[m++]=k.ud+100;q[m++]=k.wb;q[m++]=k.mb;q[m++]=k.vd;q[m++]=k.vb;q[m++]=k.Ua;q[m++]=k.pe;q[m++]=k.Jj;q[m]=k.Xd;f[h]=q}c[d]=f;d=b++;for(e=0;e<a.B.length;e++)f=a.B[e],f.ta&&Gm(a,f.Xd,f.ta);c[d]=a.C;c[b++]=a.L;c[b]=a.H;return c}
|
||||
function Bm(a,b){b||(a.R=0);if(a.K)for(var c in a.K){var d=a.K[c],e=d.path,f;if(!(f=d.name))a:{if((f=a.la.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=ga(e,!0)}if(e&&f&&(g=c.charCodeAt(0)-65,0<=g&&g<a.B.length)){!Em(a,g,f,e,!0)&&b&&t(a,!1);continue}a.Ba("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.R}
|
||||
function Bm(a,b){b||(a.R=0);if(a.K)for(var c in a.K){var d=a.K[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.la.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=ga(e,!0)}if(e&&f&&(g=c.charCodeAt(0)-65,0<=g&&g<a.B.length)){!Em(a,g,f,e,!0)&&b&&t(a,!1);continue}a.Ba("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.R}
|
||||
function wm(a,b,c,d){var e,f=a.la.listDrives;if(f&&!isNaN(e=ea(f.value,10))&&0<=e&&e<a.B.length)if(c)if("?"==c)a.Ba('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=ga(c)}for(;0>Em(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;h<f.C.length;h++)if(f.C[h][1]==g){f.C.splice(h,1);break}Cm(a,e,!1,
|
||||
!0)}}else Cm(a,e);else a.Ba("Unable to load the selected drive")}function Em(a,b,c,d,e,f){var g=a.B[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.Xd.toLowerCase()!=d.toLowerCase())){Cm(a,b,e,!0);if(g.ne)return a.Ba("Drive "+b+" busy"),0;g.ne=!0;e&&(g.Od=!0,a.R++);g.pe=!!f;return(new cm(a,g,"preload")).load(c,d,f,a.oi)?1:0}return-1}
|
||||
l.oi=function(a,b,c,d,e){var f;a.ne=!1;b&&(f=b.info(),b&&f[0]>a.ib||f[1]>a.jb)&&(this.Ba('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Qa)),b=null);b?(a.ta=b,a.Jj=c,a.Xd=d,Fm(this,c,d,b),f=b.info(),this.L|=128,this.Ba('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Qa),a.Od||e),a.Nf=f[0],a.Xe=f[1],a.Ye=f[2],this.ba&&xc(this.ba)):a.pe=!1;a.Od&&(a.Od=!1,--this.R||t(this));vm(this,a.Qa)};
|
||||
|
|
|
|||
|
|
@ -66,8 +66,8 @@ function RAM8080(parmsRAM)
|
|||
|
||||
this.addrRAM = parmsRAM['addr'];
|
||||
this.sizeRAM = parmsRAM['size'];
|
||||
this.nFileLoad = parmsRAM['load'];
|
||||
this.nFileExec = parmsRAM['exec'];
|
||||
this.addrLoad = parmsRAM['load'];
|
||||
this.addrExec = parmsRAM['exec'];
|
||||
|
||||
this.fInstalled = (!!this.sizeRAM); // 0 is the default value for 'size' when none is specified
|
||||
this.fAllocated = false;
|
||||
|
|
@ -197,8 +197,8 @@ RAM8080.prototype.doneLoad = function(sURL, sData, nErrorCode)
|
|||
if (resource) {
|
||||
this.abInit = resource.aBytes;
|
||||
this.aSymbols = resource.aSymbols;
|
||||
if (this.nFileLoad == null && resource.nLoad != null) this.nFileLoad = resource.nLoad;
|
||||
if (this.nFileExec == null && resource.nExec != null) this.nFileExec = resource.nExec;
|
||||
if (this.addrLoad == null) this.addrLoad = resource.addrLoad;
|
||||
if (this.addrExec == null) this.addrExec = resource.addrExec;
|
||||
} else {
|
||||
this.sFilePath = null;
|
||||
}
|
||||
|
|
@ -232,19 +232,19 @@ RAM8080.prototype.initRAM = function()
|
|||
if (!this.abInit || !this.bus) return;
|
||||
|
||||
var addr = this.addrRAM;
|
||||
if (this.nFileLoad !== null) addr = this.nFileLoad;
|
||||
if (this.addrLoad !== null) addr = this.addrLoad;
|
||||
for (var i = 0; i < this.abInit.length; i++) {
|
||||
this.bus.setByteDirect(addr + i, this.abInit[i]);
|
||||
}
|
||||
|
||||
if (this.nFileExec !== null) {
|
||||
if (this.addrExec !== null) {
|
||||
/*
|
||||
* Here's where we enable our "Fake CP/M" support, triggered by the user loading a "writable" ROM image
|
||||
* at offset 0x100. Fake CP/M support works by installing HLT opcodes at well-known CP/M addresses
|
||||
* (namely, 0x0000, which is the CP/M reset vector, and 0x0005, which is the CP/M system call vector) and
|
||||
* then telling the CPU to call us whenever a HLT occurs, so we can check PC for one of these addresses.
|
||||
*/
|
||||
if (this.nFileExec == RAM8080.CPM.INIT) {
|
||||
if (this.addrExec == RAM8080.CPM.INIT) {
|
||||
for (i = 0; i < RAM8080.CPM.VECTORS.length; i++) {
|
||||
this.bus.setByteDirect(RAM8080.CPM.VECTORS[i], CPUDef8080.OPCODE.HLT);
|
||||
}
|
||||
|
|
@ -255,7 +255,7 @@ RAM8080.prototype.initRAM = function()
|
|||
};
|
||||
}(this));
|
||||
}
|
||||
this.cpu.setReset(this.nFileExec);
|
||||
this.cpu.setReset(this.addrExec);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -1278,7 +1278,7 @@ FDC.prototype.autoMount = function(fRemount)
|
|||
if (this.configMount) {
|
||||
for (var sDrive in this.configMount) {
|
||||
var configDrive = this.configMount[sDrive];
|
||||
var sDiskettePath = configDrive['path'];
|
||||
var sDiskettePath = configDrive['path'] || "";
|
||||
var sDisketteName = configDrive['name'] || this.findDiskette(sDiskettePath);
|
||||
if (sDiskettePath && sDisketteName) {
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -369,6 +369,13 @@ CPUStatePDP11.prototype.setReset = function(addr)
|
|||
{
|
||||
this.addrReset = addr;
|
||||
this.setPC(addr);
|
||||
if (this.dbg) {
|
||||
/*
|
||||
* TODO: Review the decision to always stop the CPU if the Debugger is loaded.
|
||||
*/
|
||||
this.stopCPU();
|
||||
this.dbg.updateStatus();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -93,6 +93,7 @@ function DebuggerPDP11(parmsDbg)
|
|||
/*
|
||||
* Since this Debugger doesn't use replaceRegs(), we can use parentheses instead of braces.
|
||||
*/
|
||||
this.fInit = false;
|
||||
this.fParens = true;
|
||||
|
||||
/*
|
||||
|
|
@ -1217,6 +1218,7 @@ if (DEBUGGER) {
|
|||
*/
|
||||
DebuggerPDP11.prototype.init = function()
|
||||
{
|
||||
this.fInit = true;
|
||||
this.println("Type ? for help with PDP11 Debugger commands");
|
||||
this.updateStatus();
|
||||
if (this.sInitCommands) {
|
||||
|
|
@ -1367,6 +1369,8 @@ if (DEBUGGER) {
|
|||
*/
|
||||
DebuggerPDP11.prototype.updateStatus = function(fRegs)
|
||||
{
|
||||
if (!this.fInit) return;
|
||||
|
||||
if (fRegs === undefined) fRegs = true;
|
||||
|
||||
this.dbgAddrNextCode = this.newAddr(this.cpu.getPC());
|
||||
|
|
|
|||
|
|
@ -220,6 +220,7 @@ PC11.prototype.initBus = function(cmp, bus, cpu, dbg)
|
|||
this.bus = bus;
|
||||
this.cpu = cpu;
|
||||
this.dbg = dbg;
|
||||
this.ram = cmp.getMachineComponent("RAM");
|
||||
|
||||
var pc11 = this;
|
||||
|
||||
|
|
@ -310,7 +311,7 @@ PC11.prototype.autoMount = function(fRemount)
|
|||
{
|
||||
if (!fRemount) this.cAutoMount = 0;
|
||||
if (this.configMount) {
|
||||
var sTapePath = this.configMount['path'];
|
||||
var sTapePath = this.configMount['path'] || "";
|
||||
var sTapeName = this.configMount['name'] || this.findTape(sTapePath);
|
||||
if (sTapePath && sTapeName) {
|
||||
/*
|
||||
|
|
@ -320,7 +321,11 @@ PC11.prototype.autoMount = function(fRemount)
|
|||
this.setReady(false);
|
||||
}
|
||||
} else {
|
||||
this.notice("Incorrect auto-mount settings for PC11 (" + JSON.stringify(this.configMount) + ")");
|
||||
/*
|
||||
* This likely happened because there was no autoMount setting (or it was overridden with an empty value),
|
||||
* so just make sure the current selection is set to "None".
|
||||
*/
|
||||
this.displayTape();
|
||||
}
|
||||
}
|
||||
return !!this.cAutoMount;
|
||||
|
|
@ -360,7 +365,7 @@ PC11.prototype.loadSelectedTape = function(sTapeName, sTapePath, nTapeTarget, fi
|
|||
sTapePath = window.prompt("Enter the URL of a remote tape image.", "") || "";
|
||||
if (!sTapePath) return;
|
||||
sTapeName = str.getBaseName(sTapePath);
|
||||
if (DEBUG) this.println("Attempting to load " + sTapePath + " as \"" + sTapeName + "\"");
|
||||
this.status("Attempting to load " + sTapePath + " as \"" + sTapeName + "\"");
|
||||
this.sTapeSource = PC11.SOURCE.REMOTE;
|
||||
}
|
||||
else {
|
||||
|
|
@ -395,7 +400,7 @@ PC11.prototype.loadTape = function(sTapeName, sTapePath, nTapeTarget, fAutoMount
|
|||
this.notice("PC11 busy");
|
||||
}
|
||||
else {
|
||||
// if (DEBUG) this.println("tape queued: " + sTapeName);
|
||||
// this.status("tape queued: " + sTapeName);
|
||||
if (fAutoMount) {
|
||||
this.cAutoMount++;
|
||||
if (this.messageEnabled()) this.printMessage("auto-loading tape: " + sTapeName);
|
||||
|
|
@ -407,7 +412,7 @@ PC11.prototype.loadTape = function(sTapeName, sTapePath, nTapeTarget, fAutoMount
|
|||
}
|
||||
}
|
||||
}
|
||||
if (DEBUG && nResult) this.println(this.nTapeTarget == PC11.TARGET.READER? "tape attached" : "tape loaded");
|
||||
if (nResult) this.status(this.nTapeTarget == PC11.TARGET.READER? "tape attached" : "tape loaded");
|
||||
return nResult;
|
||||
};
|
||||
|
||||
|
|
@ -496,7 +501,7 @@ PC11.prototype.doneLoad = function(sTapeName, sTapePath, nTapeTarget, sTapeData,
|
|||
Component.addMachineResource(this.idMachine, sURL, sTapeData);
|
||||
var resource = web.parseMemoryResource(sURL, sTapeData);
|
||||
if (resource) {
|
||||
this.parseTape(sTapeName, sTapePath, nTapeTarget, resource.aBytes);
|
||||
this.parseTape(sTapeName, sTapePath, nTapeTarget, resource.aBytes, resource.addrLoad, resource.addrExec);
|
||||
}
|
||||
}
|
||||
this.flags.busy = false;
|
||||
|
|
@ -597,107 +602,50 @@ PC11.prototype.displayTape = function()
|
|||
};
|
||||
|
||||
/**
|
||||
* parseTape(sTapeName, sTapePath, nTapeTarget, aBytes)
|
||||
* parseTape(sTapeName, sTapePath, nTapeTarget, aBytes, addrLoad, addrExec)
|
||||
*
|
||||
* @this {PC11}
|
||||
* @param {string} sTapeName
|
||||
* @param {string} sTapePath
|
||||
* @param {number} nTapeTarget
|
||||
* @param {Array|Uint8Array} aBytes
|
||||
* @param {number|null} [addrLoad]
|
||||
* @param {number|null} [addrExec]
|
||||
*/
|
||||
PC11.prototype.parseTape = function(sTapeName, sTapePath, nTapeTarget, aBytes)
|
||||
PC11.prototype.parseTape = function(sTapeName, sTapePath, nTapeTarget, aBytes, addrLoad, addrExec)
|
||||
{
|
||||
this.sTapeName = sTapeName;
|
||||
this.sTapePath = sTapePath;
|
||||
this.nTapeTarget = nTapeTarget;
|
||||
|
||||
if (nTapeTarget == PC11.TARGET.MEMORY) {
|
||||
/*
|
||||
* Data on tapes is organized into blocks; each block begins with a 6-byte header:
|
||||
* Use the RAM component's loadImage() service to do our dirty work. If the load succeeds, then
|
||||
* depending on whether there was also exec address, either the CPU will be stopped or the PC wil be
|
||||
* reset.
|
||||
*
|
||||
* 2-byte signature (0x01,0x00)
|
||||
* 2-byte length (N + 6)
|
||||
* 2-byte load address
|
||||
* NOTE: Some tapes are not in the Absolute Loader format, so if the JSON-encoded tape resource file
|
||||
* we downloaded didn't ALSO include a load address, the load will fail.
|
||||
*
|
||||
* followed by N data bytes. If N is zero, then the 2-byte load address is the exec address,
|
||||
* unless the address is odd (usually 1), in which case stop.
|
||||
*
|
||||
* After the data bytes, there is a single checksum byte. The sum of all the bytes (including
|
||||
* the checksum byte) should be zero.
|
||||
*
|
||||
* ANOMALIES: Tape files don't always begin with a signature word, so I allow any number of
|
||||
* leading zeros before the first signature. Tape files don't always end cleanly either, so as
|
||||
* soon as I see an invalid signature, I break out of the loop without signalling an error, as
|
||||
* long as at least ONE block was successfully processed.
|
||||
* For example, the "Absolute Loader" tape is NOT itself in the Absolute Loader format. You just have
|
||||
* to know that in order to load that tape, you must first load the appropriate "Bootstrap Loader" (which
|
||||
* DOES include its own hard-coded load address), attach the "Absolute Loader" tape, and then run the
|
||||
* "Bootstrap Loader".
|
||||
*/
|
||||
var off = 0;
|
||||
var fError = false, cBlocks = 0;
|
||||
while (off < aBytes.length - 1) {
|
||||
var w = (aBytes[off] & 0xff) | ((aBytes[off+1] & 0xff) << 8);
|
||||
if (!w) { // ignore pairs of leading zeros
|
||||
off += 2;
|
||||
continue;
|
||||
}
|
||||
if (!(w & 0xff)) { // as well as single bytes of zero
|
||||
off++;
|
||||
continue;
|
||||
}
|
||||
var offBlock = off;
|
||||
if (w != 0x0001) {
|
||||
if (DEBUG) this.println("invalid signature (" + str.toHexWord(w) + ") at offset " + str.toHexWord(offBlock));
|
||||
if (!cBlocks) fError = true;
|
||||
break;
|
||||
}
|
||||
if (off + 6 >= aBytes.length) {
|
||||
if (DEBUG) this.println("invalid block at offset " + str.toHexWord(offBlock));
|
||||
fError = true;
|
||||
break;
|
||||
}
|
||||
off += 2;
|
||||
var checksum = w;
|
||||
var len = (aBytes[off++] & 0xff) | ((aBytes[off++] & 0xff) << 8);
|
||||
var addr = (aBytes[off++] & 0xff) | ((aBytes[off++] & 0xff) << 8);
|
||||
checksum += (len & 0xff) + (len >> 8) + (addr & 0xff) + (addr >> 8);
|
||||
var offData = off, cbData = len -= 6;
|
||||
while (len > 0 && off < aBytes.length - 1) {
|
||||
checksum += aBytes[off++] & 0xff;
|
||||
len--;
|
||||
}
|
||||
if (len != 0 || off >= aBytes.length) {
|
||||
if (DEBUG) this.println("insufficient data for block at offset " + str.toHexWord(offBlock));
|
||||
fError = true;
|
||||
break;
|
||||
}
|
||||
checksum += aBytes[off++] & 0xff;
|
||||
if (checksum & 0xff) {
|
||||
if (DEBUG) this.println("invalid checksum (" + str.toHexByte(checksum) + ") for block at offset " + str.toHexWord(offBlock));
|
||||
fError = true;
|
||||
break;
|
||||
}
|
||||
if (!cbData) {
|
||||
if (!(addr & 0x1)) {
|
||||
this.cpu.setPC(addr);
|
||||
}
|
||||
} else {
|
||||
while (cbData--) {
|
||||
this.cpu.setByteDirect(addr++, aBytes[offData++] & 0xff);
|
||||
}
|
||||
}
|
||||
cBlocks++;
|
||||
}
|
||||
if (fError) {
|
||||
if (!this.ram || !this.ram.loadImage(aBytes, addrLoad, addrExec)) {
|
||||
this.sTapeName = "";
|
||||
this.sTapePath = "";
|
||||
this.sTapeSource = PC11.SOURCE.NONE;
|
||||
this.nTapeTarget = PC11.TARGET.NONE;
|
||||
if (DEBUG) this.println("error loading tape: " + sTapeName);
|
||||
this.status("error loading tape: " + sTapeName);
|
||||
return;
|
||||
}
|
||||
if (DEBUG) this.println("tape loaded: " + sTapeName);
|
||||
this.status("tape loaded: " + sTapeName);
|
||||
return;
|
||||
}
|
||||
this.iTapeData = 0;
|
||||
this.aTapeData = aBytes;
|
||||
if (DEBUG) this.println("tape attached: " + sTapeName);
|
||||
this.status("tape attached: " + sTapeName);
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -715,7 +663,7 @@ PC11.prototype.unloadTape = function(fLoading)
|
|||
* Avoid any unnecessary hysteresis regarding the display if this unload is merely a prelude to another load.
|
||||
*/
|
||||
if (!fLoading) {
|
||||
if (DEBUG && this.nTapeTarget) this.println(this.nTapeTarget == PC11.TARGET.READER? "tape detached" : "tape unloaded");
|
||||
if (this.nTapeTarget) this.status(this.nTapeTarget == PC11.TARGET.READER? "tape detached" : "tape unloaded");
|
||||
this.sTapeSource = PC11.SOURCE.NONE;
|
||||
this.nTapeTarget = PC11.TARGET.NONE;
|
||||
this.displayTape();
|
||||
|
|
|
|||
|
|
@ -69,8 +69,8 @@ function RAMPDP11(parmsRAM)
|
|||
|
||||
this.addrRAM = parmsRAM['addr'];
|
||||
this.sizeRAM = parmsRAM['size'];
|
||||
this.nFileLoad = parmsRAM['load'];
|
||||
this.nFileExec = parmsRAM['exec'];
|
||||
this.addrLoad = parmsRAM['load'];
|
||||
this.addrExec = parmsRAM['exec'];
|
||||
|
||||
this.fInstalled = (!!this.sizeRAM); // 0 is the default value for 'size' when none is specified
|
||||
this.fAllocated = false;
|
||||
|
|
@ -175,8 +175,8 @@ RAMPDP11.prototype.doneLoad = function(sURL, sData, nErrorCode)
|
|||
if (resource) {
|
||||
this.abInit = resource.aBytes;
|
||||
this.aSymbols = resource.aSymbols;
|
||||
if (this.nFileLoad == null && resource.nLoad != null) this.nFileLoad = resource.nLoad;
|
||||
if (this.nFileExec == null && resource.nExec != null) this.nFileExec = resource.nExec;
|
||||
if (this.addrLoad == null) this.addrLoad = resource.addrLoad;
|
||||
if (this.addrExec == null) this.addrExec = resource.addrExec;
|
||||
} else {
|
||||
this.sFilePath = null;
|
||||
}
|
||||
|
|
@ -194,6 +194,8 @@ RAMPDP11.prototype.doneLoad = function(sURL, sData, nErrorCode)
|
|||
*/
|
||||
RAMPDP11.prototype.initRAM = function()
|
||||
{
|
||||
if (!this.bus) return;
|
||||
|
||||
if (!this.fAllocated && this.sizeRAM) {
|
||||
if (this.bus.addMemory(this.addrRAM, this.sizeRAM, MemoryPDP11.TYPE.RAM)) {
|
||||
this.fAllocated = true;
|
||||
|
|
@ -209,15 +211,7 @@ RAMPDP11.prototype.initRAM = function()
|
|||
*/
|
||||
if (!this.abInit || !this.bus) return;
|
||||
|
||||
var addr = this.addrRAM;
|
||||
if (this.nFileLoad !== null) addr = this.nFileLoad;
|
||||
for (var i = 0; i < this.abInit.length; i++) {
|
||||
this.bus.setByteDirect(addr + i, this.abInit[i]);
|
||||
}
|
||||
|
||||
if (this.nFileExec !== null) {
|
||||
this.cpu.setReset(this.nFileExec);
|
||||
}
|
||||
this.loadImage(this.abInit, this.addrLoad, this.addrExec, this.addrRAM);
|
||||
|
||||
/*
|
||||
* TODO: Consider an option to retain this data and give the user a way of restoring the initial contents.
|
||||
|
|
@ -240,6 +234,108 @@ RAMPDP11.prototype.reset = function()
|
|||
*/
|
||||
};
|
||||
|
||||
/**
|
||||
* loadImage(aBytes, addrLoad, addrExec, addrInit)
|
||||
*
|
||||
* @this {RAMPDP11}
|
||||
* @param {Array|Uint8Array} aBytes
|
||||
* @param {number|null} [addrLoad]
|
||||
* @param {number|null} [addrExec]
|
||||
* @param {number|null} [addrInit]
|
||||
* @return {boolean} (true if loaded, false if not)
|
||||
*/
|
||||
RAMPDP11.prototype.loadImage = function(aBytes, addrLoad, addrExec, addrInit)
|
||||
{
|
||||
var fLoaded = false;
|
||||
/*
|
||||
* Data on tapes is organized into blocks; each block begins with a 6-byte header:
|
||||
*
|
||||
* 2-byte signature (0x0001)
|
||||
* 2-byte block length (N + 6, because it includes the 6-byte header)
|
||||
* 2-byte load address
|
||||
*
|
||||
* followed by N data bytes. If N is zero, then the 2-byte load address is the exec address,
|
||||
* unless the address is odd (usually 1). DEC's "Absolute Loader" jumps to the exec address
|
||||
* in former case, halts in the latter.
|
||||
*
|
||||
* All values are stored "little endian" (low byte first, followed by high byte), just like
|
||||
* the PDP-11 does.
|
||||
*
|
||||
* After the data bytes, there is a single checksum byte. The 8-bit sum of all the bytes in
|
||||
* the block (including the header bytes and checksum byte) should be zero.
|
||||
*
|
||||
* ANOMALIES: Tape files don't always begin with a signature word, so I allow any number of
|
||||
* leading zeros before the first signature. Tape files don't always end cleanly either, so as
|
||||
* soon as I see an invalid signature, I break out of the loop without signalling an error, as
|
||||
* long as at least ONE block was successfully processed.
|
||||
*/
|
||||
if (addrLoad == null) {
|
||||
var off = 0, fError = false;
|
||||
while (off < aBytes.length - 1) {
|
||||
var w = (aBytes[off] & 0xff) | ((aBytes[off+1] & 0xff) << 8);
|
||||
if (!w) { // ignore pairs of leading zeros
|
||||
off += 2;
|
||||
continue;
|
||||
}
|
||||
if (!(w & 0xff)) { // as well as single bytes of zero
|
||||
off++;
|
||||
continue;
|
||||
}
|
||||
var offBlock = off;
|
||||
if (w != 0x0001) {
|
||||
if (MAXDEBUG) this.println("invalid signature (" + str.toHexWord(w) + ") at offset " + str.toHexWord(offBlock));
|
||||
break;
|
||||
}
|
||||
if (off + 6 >= aBytes.length) {
|
||||
if (MAXDEBUG) this.println("invalid block at offset " + str.toHexWord(offBlock));
|
||||
break;
|
||||
}
|
||||
off += 2;
|
||||
var checksum = w;
|
||||
var len = (aBytes[off++] & 0xff) | ((aBytes[off++] & 0xff) << 8);
|
||||
var addr = (aBytes[off++] & 0xff) | ((aBytes[off++] & 0xff) << 8);
|
||||
checksum += (len & 0xff) + (len >> 8) + (addr & 0xff) + (addr >> 8);
|
||||
var offData = off, cbData = len -= 6;
|
||||
while (len > 0 && off < aBytes.length) {
|
||||
checksum += aBytes[off++] & 0xff;
|
||||
len--;
|
||||
}
|
||||
if (len != 0 || off >= aBytes.length) {
|
||||
if (MAXDEBUG) this.println("insufficient data for block at offset " + str.toHexWord(offBlock));
|
||||
break;
|
||||
}
|
||||
checksum += aBytes[off++] & 0xff;
|
||||
if (checksum & 0xff) {
|
||||
if (MAXDEBUG) this.println("invalid checksum (" + str.toHexByte(checksum) + ") for block at offset " + str.toHexWord(offBlock));
|
||||
break;
|
||||
}
|
||||
if (!cbData) {
|
||||
if (addr & 0x1) {
|
||||
this.cpu.stopCPU();
|
||||
} else {
|
||||
this.cpu.setReset(addr);
|
||||
}
|
||||
} else {
|
||||
while (cbData--) {
|
||||
this.cpu.setByteDirect(addr++, aBytes[offData++] & 0xff);
|
||||
}
|
||||
}
|
||||
fLoaded = true;
|
||||
}
|
||||
}
|
||||
if (!fLoaded) {
|
||||
if (addrLoad == null) addrLoad = addrInit;
|
||||
if (addrLoad != null) {
|
||||
for (var i = 0; i < aBytes.length; i++) {
|
||||
this.cpu.setByteDirect(addrLoad + i, aBytes[i]);
|
||||
}
|
||||
if (addrExec != null) this.cpu.setReset(addrExec);
|
||||
fLoaded = true;
|
||||
}
|
||||
}
|
||||
return fLoaded;
|
||||
};
|
||||
|
||||
/**
|
||||
* RAMPDP11.init()
|
||||
*
|
||||
|
|
|
|||
|
|
@ -295,8 +295,8 @@ web.parseMemoryResource = function(sURL, sData)
|
|||
var resource = {
|
||||
aBytes: null,
|
||||
aSymbols: null,
|
||||
nLoad: null,
|
||||
nExec: null
|
||||
addrLoad: null,
|
||||
addrExec: null
|
||||
};
|
||||
|
||||
if (sData.charAt(0) == "[" || sData.charAt(0) == "{") {
|
||||
|
|
@ -338,8 +338,8 @@ web.parseMemoryResource = function(sURL, sData)
|
|||
data = eval("(" + sData + ")");
|
||||
}
|
||||
|
||||
resource.nLoad = data['load'];
|
||||
resource.nExec = data['exec'];
|
||||
resource.addrLoad = data['load'];
|
||||
resource.addrExec = data['exec'];
|
||||
|
||||
if (a = data['bytes']) {
|
||||
resource.aBytes = a;
|
||||
|
|
|
|||
|
|
@ -39,67 +39,67 @@ function pa(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a
|
|||
function sa(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1}
|
||||
function va(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"==
|
||||
typeof b){var k="",n;for(n in b)b.hasOwnProperty(n)&&(k&&(k+="&"),k+=n+"="+encodeURIComponent(b[n]));k=k.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
|
||||
function wa(a,b){var c,d={Aa:null,Ea:null,Rb:null,Qb:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Rb=g.load;d.Qb=g.exec;if(e=g.bytes)d.Aa=e;else if(e=g.words)for(d.Aa=Array(2*e.length),f=c=0;c<e.length;c++)d.Aa[f++]=e[c]&255,d.Aa[f++]=e[c]>>8&255;else if(e=g.data)for(d.Aa=Array(4*e.length),f=c=0;c<e.length;c++)d.Aa[f++]=
|
||||
function wa(a,b){var c,d={Aa:null,Ea:null,bb:null,Ta:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.bb=g.load;d.Ta=g.exec;if(e=g.bytes)d.Aa=e;else if(e=g.words)for(d.Aa=Array(2*e.length),f=c=0;c<e.length;c++)d.Aa[f++]=e[c]&255,d.Aa[f++]=e[c]>>8&255;else if(e=g.data)for(d.Aa=Array(4*e.length),f=c=0;c<e.length;c++)d.Aa[f++]=
|
||||
e[c]&255,d.Aa[f++]=e[c]>>8&255,d.Aa[f++]=e[c]>>16&255,d.Aa[f++]=e[c]>>24&255;else d.Aa=g;d.Ea=g.symbols;d.Aa.length?1==d.Aa.length&&(w(d.Aa[0]),d=null):(w("Empty resource: "+a),d=null)}catch(h){w("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){w("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.Aa=e)}return d}
|
||||
function ja(){return"http://"+(window?window.location.host:"www.pcjs.org")}function xa(){return window?window.navigator.userAgent:""}function w(a){window&&window.alert(a)}function ya(a){var b=!1;window&&(b=window.confirm(a));return b}var za=null;
|
||||
function Aa(){if(null==za){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}za=a}return za}function Ba(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Ca(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}
|
||||
function Da(a){if(window){var b=xa();return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Ea(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function Fa(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 Ja={init:[],show:[],exit:[]},Ka=!1,La=!1,Ma=!0;function Na(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Oa(a){Ja.init.push(a)}
|
||||
function Pa(a){if(Ma)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Qa("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Sa(a){!Ma&&a?(Ma=!0,Ka&&Ta("init"),La&&Ta("show")):Ma=a}function Ta(a){Ja[a]&&Pa(Ja[a])}Na("onload",function(){Ka=!0;Pa(Ja.init)});Na("onpageshow",function(){La=!0;Pa(Ja.show)});Na(Da("Opera")||Da("iOS")?"onunload":"onbeforeunload",function(){Pa(Ja.exit)});
|
||||
function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.hc=b.comment;this.Od=b;b=this.id.indexOf(".");0>b?this.eb=this.id:(this.fb=this.id.substr(0,b),this.eb=this.id.substr(b+1));this[a]=c;this.D={ready:!1,ub:!1,Lb:!1,xa:!1,error:!1};this.Fb=null;this.D.error=!1;this.N={};this.I=null;this.ta=d||0;Ua.push(this)}var Va=void 0,Wa={};
|
||||
function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.hc=b.comment;this.Od=b;b=this.id.indexOf(".");0>b?this.gb=this.id:(this.hb=this.id.substr(0,b),this.gb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,wb:!1,Nb:!1,xa:!1,error:!1};this.Hb=null;this.C.error=!1;this.N={};this.I=null;this.ta=d||0;Ua.push(this)}var Va=void 0,Wa={};
|
||||
if(window){Va||(Va=window.location.search.substr(1));for(var Xa,Ya=/\+/g,$a=/([^&=]+)=?([^&]*)/g;Xa=$a.exec(Va);)Wa[decodeURIComponent(Xa[1].replace(Ya," "))]=decodeURIComponent(Xa[2].replace(Ya," "))}function ab(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=ab(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var bb=window.PCjs.Machines||(window.PCjs.Machines={}),Ua=window.PCjs.Components||(window.PCjs.Components=[])}else bb={},Ua=[];function cb(a,b,c){bb[a]&&b&&(bb[a][b]=c)}function Qa(a,b,c){b||w((c?c+": ":"")+a)}
|
||||
function db(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ua.length;b++){var d=Ua[b];a&&d.id.indexOf(a)||c.push(d)}return c}function eb(a){if(void 0!==a){var b;for(b=0;b<Ua.length;b++)if(Ua[b].id===a)return Ua[b]}return null}function fb(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<Ua.length;d++)if(c)c==Ua[d]&&(c=null);else if(!(a!=Ua[d].type||b&&Ua[d].id.indexOf(b)))return Ua[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 gb(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.qa(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},qa: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.Ia=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.eb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.eb+": "+a)},ka:function(a,b,c){Qa(a,b,c||this.type)},Ga:function(){return this.D.xa=!0},Ka:function(a,b){b&&(this.D.xa=!1);return!0}};function E(a,b,c,d,e,f,g){a.I&&(!0===g?g=0:null==g&&(g=a.ta),hb(a.I,a,b,c,d,e,f,g))}function ib(a,b){a.I&&jb(a,0)&&a.I.message(b,void 0)}function jb(a,b){if(a.I){a===a.I?b|=0:b=b||a.ta;var c=a.I.ta&b;return!!b&&c===b||!!(c&a.I.Ld)}return!1}
|
||||
function kb(a,b){if(a.D.Lb)return a.D.ub=!1,a.D.Lb=!1;if(a.D.error)return a.g(a.toString()+" error"),!1;a.D.ub=b;return a.D.ub}function lb(a,b){a.D.ub&&(b?a.D.Lb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.D.ub}function F(a){if(!a.D.error&&(a.D.ready=!0,a.D.ready)){var b=a.Fb;a.Fb=null;b&&b()}}function mb(a,b){b&&(a.D.ready?b():a.Fb=b);return a.D.ready}function nb(a,b){a.D.error=!0;a.ka(b)}
|
||||
this.ka=function(a){this.g(a,this.gb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.gb+": "+a)},ka:function(a,b,c){Qa(a,b,c||this.type)},Ga:function(){return this.C.xa=!0},Ka:function(a,b){b&&(this.C.xa=!1);return!0}};function E(a,b,c,d,e,f,g){a.I&&(!0===g?g=0:null==g&&(g=a.ta),hb(a.I,a,b,c,d,e,f,g))}function ib(a,b){a.I&&jb(a,0)&&a.I.message(b,void 0)}function jb(a,b){if(a.I){a===a.I?b|=0:b=b||a.ta;var c=a.I.ta&b;return!!b&&c===b||!!(c&a.I.Ld)}return!1}
|
||||
function kb(a,b){if(a.C.Nb)return a.C.wb=!1,a.C.Nb=!1;if(a.C.error)return a.g(a.toString()+" error"),!1;a.C.wb=b;return a.C.wb}function lb(a,b){a.C.wb&&(b?a.C.Nb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.C.wb}function F(a){if(!a.C.error&&(a.C.ready=!0,a.C.ready)){var b=a.Hb;a.Hb=null;b&&b()}}function mb(a,b){b&&(a.C.ready?b():a.Hb=b);return a.C.ready}function nb(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 qb="undefined"!==typeof ArrayBuffer,rb=[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],sb={cpu:1,bus:64,mem:128,port:256,nvr:16384,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function tb(a){z.call(this,"Panel",a,tb)}A(tb);l=tb.prototype;
|
||||
l.qa=function(a,b,c,d){return this.A&&this.A.qa(a,b,c,d)||this.b&&this.b.qa(a,b,c,d)||this.K&&this.K.qa(a,b,c,d)||this.I&&this.I.qa(a,b,c,d)?!0:this.parent.qa.call(this,a,b,c,d)};l.Ra=function(a,b,c,d){this.A=a;this.u=b;this.b=c;this.I=d;this.K=ub(a,"Keyboard")};l.Ga=function(a,b){b||vb();return!0};l.Ka=function(){return!0};l.La=function(){};function vb(){for(var a=!1,b=D(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=B(d),f=eb(e.id);f||(a=!0,f=new tb(e));gb(f,d);a&&F(f)}}Oa(vb);
|
||||
function wb(a,b,c){z.call(this,"Bus",a,wb);this.b=b;this.I=c;this.J=a.busWidth||16;this.L=Math.pow(2,this.J);this.w=this.L-1|0;this.ia=(this.J>>1)+2;10>this.ia&&(this.ia=10);15<this.ia&&(this.ia=15);this.Ja=1<<this.ia;this.M=this.Ja>>2;this.u=this.Ja-1;this.K=this.L/this.Ja|0;this.G=this.K-1;this.A=[];this.j=[];this.F=this.C=!1;this.O=[];this.P=[];a=new G;xb(a,this.I);this.X=Array(this.K);for(b=0;b<this.K;b++)this.X[b]=a;F(this)}A(wb);l=wb.prototype;l.reset=function(){};
|
||||
l.Ga=function(a,b){b||this.reset();return!0};function yb(a,b,c,d){for(var e=b,f=c,g=e>>>a.ia;0<f&&g<a.X.length;){var h=a.X[g],k=g*a.Ja,n=a.Ja-(e-k);n>f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.H)return h.Ab+=h.H-e,h.H=e,!0;if(e>=h.H+h.Ab){n=h.size-(e-k);n>f&&(n=f);h.Ab=e-h.H+n;e=k+a.Ja;f-=n;g++;continue}}return zb(1,e,f)}e=new G(e,n,a.Ja,d);xb(e,a.I,h);a.X[g++]=e;e=k+a.Ja;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Ab[d]+" at "+u(b)),!0):zb(2,b,c)}
|
||||
l.aa=function(a){return this.X[(a&this.w)>>>this.ia].lb(a&this.u,a)};function Bb(a,b){return a.X[(b&a.w)>>>a.ia].yb(b&a.u,b)}l.ab=function(a){var b=a&this.u,c=(a&this.w)>>>this.ia;return b!=this.u?this.X[c].Dc(b,a):this.X[c++].lb(b,a)|this.X[c&this.G].lb(0,a+1)<<8};function Cb(a,b){var c=b&a.u,d=(b&a.w)>>>a.ia;return c!=a.u?a.X[d].Sb(c,b):a.X[d++].yb(c,b)|a.X[d&a.G].yb(0,b+1)<<8}l.va=function(a,b){this.X[(a&this.w)>>>this.ia].nb(a&this.u,b&255,a)};
|
||||
function Db(a,b,c){a.X[(b&a.w)>>>a.ia].Bb(b&a.u,c&255,b)}l.Jb=function(a,b){var c=a&this.u,d=(a&this.w)>>>this.ia;c!=this.u?this.X[d].Fc(c,b&65535,a):(this.X[d++].nb(c,b&255,a),this.X[d&this.G].nb(0,b>>8&255,a+1))};function Fb(a){for(var b=0,c=[],d=0;d<a.K;d++){var e=a.X[d];if(e.Pa||e.Ac){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;k[h++]=p-g;k[h++]=n;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
|
||||
function wb(a,b,c){z.call(this,"Bus",a,wb);this.b=b;this.I=c;this.J=a.busWidth||16;this.L=Math.pow(2,this.J);this.w=this.L-1|0;this.ia=(this.J>>1)+2;10>this.ia&&(this.ia=10);15<this.ia&&(this.ia=15);this.Ja=1<<this.ia;this.M=this.Ja>>2;this.u=this.Ja-1;this.K=this.L/this.Ja|0;this.H=this.K-1;this.A=[];this.j=[];this.F=this.D=!1;this.O=[];this.P=[];a=new G;xb(a,this.I);this.X=Array(this.K);for(b=0;b<this.K;b++)this.X[b]=a;F(this)}A(wb);l=wb.prototype;l.reset=function(){};
|
||||
l.Ga=function(a,b){b||this.reset();return!0};function yb(a,b,c,d){for(var e=b,f=c,g=e>>>a.ia;0<f&&g<a.X.length;){var h=a.X[g],k=g*a.Ja,n=a.Ja-(e-k);n>f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.G)return h.Cb+=h.G-e,h.G=e,!0;if(e>=h.G+h.Cb){n=h.size-(e-k);n>f&&(n=f);h.Cb=e-h.G+n;e=k+a.Ja;f-=n;g++;continue}}return zb(1,e,f)}e=new G(e,n,a.Ja,d);xb(e,a.I,h);a.X[g++]=e;e=k+a.Ja;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Ab[d]+" at "+u(b)),!0):zb(2,b,c)}
|
||||
l.aa=function(a){return this.X[(a&this.w)>>>this.ia].nb(a&this.u,a)};function Bb(a,b){return a.X[(b&a.w)>>>a.ia].Ab(b&a.u,b)}l.cb=function(a){var b=a&this.u,c=(a&this.w)>>>this.ia;return b!=this.u?this.X[c].Dc(b,a):this.X[c++].nb(b,a)|this.X[c&this.H].nb(0,a+1)<<8};function Cb(a,b){var c=b&a.u,d=(b&a.w)>>>a.ia;return c!=a.u?a.X[d].Sb(c,b):a.X[d++].Ab(c,b)|a.X[d&a.H].Ab(0,b+1)<<8}l.va=function(a,b){this.X[(a&this.w)>>>this.ia].pb(a&this.u,b&255,a)};
|
||||
function Db(a,b,c){a.X[(b&a.w)>>>a.ia].Db(b&a.u,c&255,b)}l.Lb=function(a,b){var c=a&this.u,d=(a&this.w)>>>this.ia;c!=this.u?this.X[d].Fc(c,b&65535,a):(this.X[d++].pb(c,b&255,a),this.X[d&this.H].pb(0,b>>8&255,a+1))};function Fb(a){for(var b=0,c=[],d=0;d<a.K;d++){var e=a.X[d];if(e.Pa||e.Ac){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;k[h++]=p-g;k[h++]=n;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
|
||||
function Gb(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]}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 k=+e+d;k<=g;k++)void 0!==f.A[k]?w("Input port "+u(k)+" already registered"):f.A[k]=[h,!1]}}
|
||||
function Rb(a,b,c){for(var d=1,e=0,f=0;0<d;){var g=a.A[b],h=a.O[b]||1,k=1==h?255:2==h?65535:-1,n=k;void 0!==g?(g[0]&&(n=g[0](b,c),void 0===n?n=k:n&=k),a.I&&a.F!=g[1]&&Sb(a.I,b,n)):a.I&&(hb(a.I,a,b,null,c),a.F&&Sb(a.I,b,n));e|=n<<f;f+=h<<3;b+=h;d-=h}return e}function Tb(a,b){if(void 0===b)return a.C=!a.C,a.C;void 0===a.j[b]&&(a.j[b]=[null,!1]);a.j[b][1]=!a.j[b][1];return a.j[b][1]}
|
||||
function Ub(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 k=+e+d;k<=g;k++)void 0!==f.j[k]?w("Output port "+u(k)+" already registered"):f.j[k]=[h,!1]}}function Vb(a,b,c,d){for(var e=1,f=0;0<e;){var g=a.j[b],h=a.P[b]||1,k=1==h?255:2==h?65535:-1,k=(c>>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,d);a.I&&a.C!=g[1]&&Wb(a.I,b,k)}else a.I&&(hb(a.I,a,b,k,d),a.C&&Wb(a.I,b,k));f+=h<<3;b+=h;e-=h}}
|
||||
function Rb(a,b,c){for(var d=1,e=0,f=0;0<d;){var g=a.A[b],h=a.O[b]||1,k=1==h?255:2==h?65535:-1,n=k;void 0!==g?(g[0]&&(n=g[0](b,c),void 0===n?n=k:n&=k),a.I&&a.F!=g[1]&&Sb(a.I,b,n)):a.I&&(hb(a.I,a,b,null,c),a.F&&Sb(a.I,b,n));e|=n<<f;f+=h<<3;b+=h;d-=h}return e}function Tb(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.j[b]&&(a.j[b]=[null,!1]);a.j[b][1]=!a.j[b][1];return a.j[b][1]}
|
||||
function Ub(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 k=+e+d;k<=g;k++)void 0!==f.j[k]?w("Output port "+u(k)+" already registered"):f.j[k]=[h,!1]}}function Vb(a,b,c,d){for(var e=1,f=0;0<e;){var g=a.j[b],h=a.P[b]||1,k=1==h?255:2==h?65535:-1,k=(c>>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,d);a.I&&a.D!=g[1]&&Wb(a.I,b,k)}else a.I&&(hb(a.I,a,b,k,d),a.D&&Wb(a.I,b,k));f+=h<<3;b+=h;e-=h}}
|
||||
function zb(a,b,c){w("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Xb;if(qb){var Yb=new ArrayBuffer(2);(new DataView(Yb)).setUint16(0,256,!0);Xb=256===(new Uint16Array(Yb))[0]}else Xb=!1;var Zb=Xb;
|
||||
function G(a,b,c,d){this.id=$b+=2;this.b=null;this.H=a;this.Ab=b;this.size=c||0;this.type=d||ac;this.N=d==bc;xb(this);this.Pa=this.Ac=!1;if(c)if(qb)this.F=new ArrayBuffer(c),this.C=new DataView(this.F,0,c),this.u=new Uint8Array(this.F,0,c),this.K=new Uint16Array(this.F,0,c>>1),this.b=new Int32Array(this.F,0,c>>2),cc(this,Zb?dc:ec);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;cc(this,fc)}else cc(this)}var ac=0,bc=2,Ab=["NONE","RAM","ROM","VID","H/W"],$b=0;
|
||||
G.prototype={constructor:G,parent:null,save:function(){var a,b;if(qb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.C.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(qb)for(b=0;b<a.length;b++)this.C.setInt32(b<<2,a[b],!0);else this.b=a;return this.Pa=!0}return!1},$a:function(a,b){b?this.j++||gc(this,hc,!1):this.A++||ic(this,hc,!1)},J:function(){this.I&&jb(this.I,129)&&this.I.message("attempt to read invalid block %"+t(this.H),!0);return 255},
|
||||
w:function(a,b){this.I&&jb(this.I,129)&&this.I.message("attempt to write "+u(b)+" to invalid block %"+t(this.H),!0)},L:function(a,b){return this.lb(a++,b++)|this.lb(a,b)<<8},G:function(a,b,c){this.nb(a++,b&255,c++);this.nb(a,b>>8,c)},Y:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},fa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},fb:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Pa=!0},wa:function(a,b){var c=a>>
|
||||
2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Pa=!0},O:function(a,b){if(this.I&&null!=this.H){var c=this.I;jc(c,this.H+a,1,c.O)&&c.ra(!0)}return this.yb(a,b)},ca:function(a,b){if(this.I&&null!=this.H){var c=this.I;jc(c,this.H+a,2,c.O)&&c.ra(!0)}return this.Sb(a,b)},ja:function(a,b,c){if(this.I&&null!=this.H){var d=this.I;jc(d,this.H+a,1,d.C)&&d.ra(!0)}this.N?this.w(a,b,c):this.Bb(a,b,c)},ma:function(a,b,c){if(this.I&&
|
||||
null!=this.H){var d=this.I;jc(d,this.H+a,2,d.C)&&d.ra(!0)}this.N?this.w(a,b,c):this.Wb(a,b,c)},M:function(a){return this.u[a]},P:function(a){return this.u[a]},ba:function(a){return this.C.getUint16(a,!0)},ea:function(a){return a&1?this.u[a]|this.u[a+1]<<8:this.K[a>>1]},ha:function(a,b){this.u[a]=b;this.Pa=!0},eb:function(a,b){this.u[a]=b;this.Pa=!0},la:function(a,b){this.C.setUint16(a,b,!0);this.Pa=!0},na:function(a,b){a&1?(this.u[a]=b,this.u[a+1]=b>>8):this.K[a>>1]=b;this.Pa=!0}};
|
||||
function xb(a,b,c){a.I=b;a.A=a.j=0;c&&((a.A=c.A)&&ic(a,hc,!1),(a.j=c.j)&&gc(a,hc,!1))}function kc(a,b){b?--a.j||(a.nb=a.N?a.w:a.Bb,a.Fc=a.N?a.G:a.Wb):--a.A||(a.lb=a.yb,a.Dc=a.Sb)}function gc(a,b,c){c&&a.j||(a.nb=!a.N&&b[1]||a.w,a.Fc=!a.N&&b[3]||a.G);if(c||void 0===c)a.Bb=b[1]||a.w,a.Wb=b[3]||a.G}function ic(a,b,c){c&&a.A||(a.lb=b[0]||a.J,a.Dc=b[2]||a.L);if(c||void 0===c)a.yb=b[0]||a.J,a.Sb=b[2]||a.L}function cc(a,b){b||(b=lc);ic(a,b,void 0);gc(a,b,void 0)}
|
||||
var lc=[],fc=[G.prototype.Y,G.prototype.fb,G.prototype.fa,G.prototype.wa],hc=[G.prototype.O,G.prototype.ja,G.prototype.ca,G.prototype.ma];if(qb)var ec=[G.prototype.M,G.prototype.ha,G.prototype.ba,G.prototype.la],dc=[G.prototype.P,G.prototype.eb,G.prototype.ea,G.prototype.na];
|
||||
function mc(a,b){z.call(this,"CPU",a,mc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Sa=c;this.ha=Math.round(this.Y/1E4)/100;this.bb=this.ha*this.Sa;this.D.za=!1;this.D.Vb=!1;this.D.tb=a.autoStart;this.D.yc=!1;this.D.hb=!1;this.vb=this.O=0;this.wb=a.csStart;this.jb=a.csInterval;this.kb=a.csStop;this.w=[];this.Ha=this.cb.bind(this);F(this)}A(mc);var nc=["power","reset"];l=mc.prototype;
|
||||
l.Ra=function(a,b,c,d){this.A=a;this.u=b;this.I=d;for(b=0;b<nc.length;b++)(c=this.N[nc[b]])&&this.A.qa(null,nc[b],c);this.F=ub(a,"ChipSet");a=Ac(a,"autoStart");null!=a&&(this.D.tb="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.Ga=function(a,b){if(!b){if(a&&this.restore){Bc(this);if(!this.restore(a))return!1;Cc(this)}else this.reset();this.I?(a=this.I,a.g("Type ? for help with PC8080 Debugger commands"),a.La(),a.Ba&&(b=a.Ba,a.Ba=null,Dc(a,b))):this.g("No debugger detected")}Ec(this);return!0};l.Ka=function(a){return a?this.save():!0};l.tb=function(){return this.D.tb||!this.I&&void 0===this.N.run?(this.cb(!0),!0):!1};l.Bc=function(){return 0};
|
||||
function Cc(a){void 0===a.wb&&(a.wb=0);void 0===a.jb&&(a.jb=-1);void 0===a.kb&&(a.kb=-1);a.D.hb=0<=a.wb&&0<a.jb;a.D.hb&&(a.vb=0,a.O=a.wb-a.M)}function Fc(a,b){if(a.D.hb){var c=!1;a.vb=a.vb+a.Bc()|0;a.O-=b;0>=a.O&&(a.O+=a.jb,c=!0);0<=a.kb&&a.kb<=Gc(a)&&(a.jb=a.kb=-1,Cc(a),a.ra(),c=!0);c&&a.g(Gc(a)+" cycles: checksum="+t(a.vb))}}
|
||||
l.qa=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.A)if(a=d.A,a.D.xa)a=!0;else{var b=null,c,h=db(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.D.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.D.xa);c++);c==h.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.D.ready?"powered yet":"ready yet"+(b.Fb?" (waiting for notification)":""))+".");a=!1}a&&(d.D.za?d.ra():d.cb())};
|
||||
a=!0;break;case "speed":this.N[b]=c;a=!0;break;case "setSpeed":this.N[b]=c,c.onclick=function(){Hc(d,d.Sa<<1,!0)},c.textContent=this.bb.toFixed(2)+"Mhz",a=!0}return a};function Ic(a,b,c){a.M+=b;c&&(a.L=a.b=0)}function Jc(a,b){var c=1;b&&1<a.Sa&&a.K&&(c=a.K/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 Gc(a){return a.M+a.G+a.L-a.b}function Bc(a){a.K=0;a.Ba=0;a.M=a.G=a.L=a.b=0;Cc(a);Hc(a,1)}
|
||||
function Hc(a,b,c){var d=!1;if(void 0!==b){.8>a.K/a.bb?b=1:d=!0;a.Sa=b;b=a.ha*a.Sa;if(a.bb!=b){a.bb=b;b=a.bb.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.A&&a.A.zb()}Ic(a,a.G);a.G=0;a.C=qa();a.J=0;Jc(a);return d}function Kc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Lc(a,b,c){0<=b&&b<a.w.length&&0>a.w[b][0]&&(c*=a.Y*a.Sa/1E3,a.w[b][0]=c+Mc(a))}function Mc(a,b){var c=a.L-=a.b;a.b=0;b&&(a.L=0);return c}
|
||||
l.cb=function(a){if(kb(this,!0)){if(!this.D.za){Hc(this);this.A&&this.A.start(this.C,Gc(this));this.D.za=!0;this.D.Vb=!0;this.F&&this.F.start();var b=this.N.run;b&&(b.textContent="Halt");this.A&&(this.A.La(!0),a&&this.A.zb(!0))}this.ja>=this.Y&&Jc(this,!0);this.ba=0;this.ea=qa();this.J&&(a=this.ea-this.J,a>this.wa&&(this.C+=a,this.C>this.ea&&(this.C=this.ea)));try{do{for(var c,d=this.D.hb?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.mb(c);c=Mc(this,!0);this.ba+=
|
||||
c;this.G+=c;Fc(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.Ba&&(this.A&&this.A.La(),this.Ba=0);break}}while(this.D.za)}catch(k){this.ra();Ec(this);this.A&&this.A.stop(qa(),Gc(this));kb(this,!1);nb(this,k.stack||k.message);return}c=setTimeout;d=this.Ha;this.J=qa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e-=this.J-this.ea;if(f=this.J-this.C)this.K=Math.round(this.G/(10*f))/
|
||||
100,864E5<=f&&(this.M=0,Hc(this));if(0>e||this.K<this.bb)-1E3>e&&(this.C-=e),e=0;this.ja+=this.ba;this.J+=e;c(d,e)}else Ec(this),this.A&&this.A.stop(qa(),Gc(this))};l.mb=function(){return 0};l.ra=function(a){lb(this,!0);Mc(this);Ic(this,this.G);this.G=0;if(this.D.za){this.D.za=!1;this.F&&this.F.stop();var b=this.N.run;b&&(b.textContent="Run")}this.D.complete=a};function Ec(a,b){if(a.A){for(var c=a.A,d=0;d<c.G.length;d++)Nc(c.G[d],b);a.A.La(b)}}
|
||||
function Oc(a){this.Zd=+a.model||8080;mc.call(this,a,1E6);this.la=Pc;Bc(this);this.D.complete=this.D.Nd=!1;this.na=0;this.ca=[];this.ma=0;Qc(this)}A(Oc,mc);function Rc(a,b){a.ca.push(b)}l=Oc.prototype;l.reset=function(){this.D.za&&this.ra();Qc(this);Bc(this);this.D.error=!1;this.parent.reset.call(this)};function Qc(a){a.i=0;a.S=0;a.T=0;a.U=0;a.V=0;a.W=0;a.Z=0;a.pa=0;I(a,a.ma);Sc(a,0);a.j=0}function Tc(a,b){a.ma=b;I(a,b)}
|
||||
function G(a,b,c,d){this.id=$b+=2;this.b=null;this.G=a;this.Cb=b;this.size=c||0;this.type=d||ac;this.N=d==bc;xb(this);this.Pa=this.Ac=!1;if(c)if(qb)this.F=new ArrayBuffer(c),this.D=new DataView(this.F,0,c),this.u=new Uint8Array(this.F,0,c),this.K=new Uint16Array(this.F,0,c>>1),this.b=new Int32Array(this.F,0,c>>2),cc(this,Zb?dc:ec);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;cc(this,fc)}else cc(this)}var ac=0,bc=2,Ab=["NONE","RAM","ROM","VID","H/W"],$b=0;
|
||||
G.prototype={constructor:G,parent:null,save:function(){var a,b;if(qb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.D.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(qb)for(b=0;b<a.length;b++)this.D.setInt32(b<<2,a[b],!0);else this.b=a;return this.Pa=!0}return!1},ab:function(a,b){b?this.j++||gc(this,hc,!1):this.A++||ic(this,hc,!1)},J:function(){this.I&&jb(this.I,129)&&this.I.message("attempt to read invalid block %"+t(this.G),!0);return 255},
|
||||
w:function(a,b){this.I&&jb(this.I,129)&&this.I.message("attempt to write "+u(b)+" to invalid block %"+t(this.G),!0)},L:function(a,b){return this.nb(a++,b++)|this.nb(a,b)<<8},H:function(a,b,c){this.pb(a++,b&255,c++);this.pb(a,b>>8,c)},Y:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},fa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},hb:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Pa=!0},wa:function(a,b){var c=a>>
|
||||
2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Pa=!0},O:function(a,b){if(this.I&&null!=this.G){var c=this.I;jc(c,this.G+a,1,c.O)&&c.ra(!0)}return this.Ab(a,b)},ca:function(a,b){if(this.I&&null!=this.G){var c=this.I;jc(c,this.G+a,2,c.O)&&c.ra(!0)}return this.Sb(a,b)},ja:function(a,b,c){if(this.I&&null!=this.G){var d=this.I;jc(d,this.G+a,1,d.D)&&d.ra(!0)}this.N?this.w(a,b,c):this.Db(a,b,c)},ma:function(a,b,c){if(this.I&&
|
||||
null!=this.G){var d=this.I;jc(d,this.G+a,2,d.D)&&d.ra(!0)}this.N?this.w(a,b,c):this.Wb(a,b,c)},M:function(a){return this.u[a]},P:function(a){return this.u[a]},ba:function(a){return this.D.getUint16(a,!0)},ea:function(a){return a&1?this.u[a]|this.u[a+1]<<8:this.K[a>>1]},ha:function(a,b){this.u[a]=b;this.Pa=!0},gb:function(a,b){this.u[a]=b;this.Pa=!0},la:function(a,b){this.D.setUint16(a,b,!0);this.Pa=!0},na:function(a,b){a&1?(this.u[a]=b,this.u[a+1]=b>>8):this.K[a>>1]=b;this.Pa=!0}};
|
||||
function xb(a,b,c){a.I=b;a.A=a.j=0;c&&((a.A=c.A)&&ic(a,hc,!1),(a.j=c.j)&&gc(a,hc,!1))}function kc(a,b){b?--a.j||(a.pb=a.N?a.w:a.Db,a.Fc=a.N?a.H:a.Wb):--a.A||(a.nb=a.Ab,a.Dc=a.Sb)}function gc(a,b,c){c&&a.j||(a.pb=!a.N&&b[1]||a.w,a.Fc=!a.N&&b[3]||a.H);if(c||void 0===c)a.Db=b[1]||a.w,a.Wb=b[3]||a.H}function ic(a,b,c){c&&a.A||(a.nb=b[0]||a.J,a.Dc=b[2]||a.L);if(c||void 0===c)a.Ab=b[0]||a.J,a.Sb=b[2]||a.L}function cc(a,b){b||(b=lc);ic(a,b,void 0);gc(a,b,void 0)}
|
||||
var lc=[],fc=[G.prototype.Y,G.prototype.hb,G.prototype.fa,G.prototype.wa],hc=[G.prototype.O,G.prototype.ja,G.prototype.ca,G.prototype.ma];if(qb)var ec=[G.prototype.M,G.prototype.ha,G.prototype.ba,G.prototype.la],dc=[G.prototype.P,G.prototype.gb,G.prototype.ea,G.prototype.na];
|
||||
function mc(a,b){z.call(this,"CPU",a,mc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Sa=c;this.ha=Math.round(this.Y/1E4)/100;this.eb=this.ha*this.Sa;this.C.za=!1;this.C.Vb=!1;this.C.vb=a.autoStart;this.C.yc=!1;this.C.jb=!1;this.xb=this.O=0;this.yb=a.csStart;this.lb=a.csInterval;this.mb=a.csStop;this.w=[];this.Ha=this.fb.bind(this);F(this)}A(mc);var nc=["power","reset"];l=mc.prototype;
|
||||
l.Ra=function(a,b,c,d){this.A=a;this.u=b;this.I=d;for(b=0;b<nc.length;b++)(c=this.N[nc[b]])&&this.A.qa(null,nc[b],c);this.F=ub(a,"ChipSet");a=Ac(a,"autoStart");null!=a&&(this.C.vb="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.Ga=function(a,b){if(!b){if(a&&this.restore){Bc(this);if(!this.restore(a))return!1;Cc(this)}else this.reset();this.I?(a=this.I,a.g("Type ? for help with PC8080 Debugger commands"),a.La(),a.Ba&&(b=a.Ba,a.Ba=null,Dc(a,b))):this.g("No debugger detected")}Ec(this);return!0};l.Ka=function(a){return a?this.save():!0};l.vb=function(){return this.C.vb||!this.I&&void 0===this.N.run?(this.fb(!0),!0):!1};l.Bc=function(){return 0};
|
||||
function Cc(a){void 0===a.yb&&(a.yb=0);void 0===a.lb&&(a.lb=-1);void 0===a.mb&&(a.mb=-1);a.C.jb=0<=a.yb&&0<a.lb;a.C.jb&&(a.xb=0,a.O=a.yb-a.M)}function Fc(a,b){if(a.C.jb){var c=!1;a.xb=a.xb+a.Bc()|0;a.O-=b;0>=a.O&&(a.O+=a.lb,c=!0);0<=a.mb&&a.mb<=Gc(a)&&(a.lb=a.mb=-1,Cc(a),a.ra(),c=!0);c&&a.g(Gc(a)+" cycles: checksum="+t(a.xb))}}
|
||||
l.qa=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.A)if(a=d.A,a.C.xa)a=!0;else{var b=null,c,h=db(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.Hb?" (waiting for notification)":""))+".");a=!1}a&&(d.C.za?d.ra():d.fb())};
|
||||
a=!0;break;case "speed":this.N[b]=c;a=!0;break;case "setSpeed":this.N[b]=c,c.onclick=function(){Hc(d,d.Sa<<1,!0)},c.textContent=this.eb.toFixed(2)+"Mhz",a=!0}return a};function Ic(a,b,c){a.M+=b;c&&(a.L=a.b=0)}function Jc(a,b){var c=1;b&&1<a.Sa&&a.K&&(c=a.K/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 Gc(a){return a.M+a.H+a.L-a.b}function Bc(a){a.K=0;a.Ba=0;a.M=a.H=a.L=a.b=0;Cc(a);Hc(a,1)}
|
||||
function Hc(a,b,c){var d=!1;if(void 0!==b){.8>a.K/a.eb?b=1:d=!0;a.Sa=b;b=a.ha*a.Sa;if(a.eb!=b){a.eb=b;b=a.eb.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.A&&a.A.Bb()}Ic(a,a.H);a.H=0;a.D=qa();a.J=0;Jc(a);return d}function Kc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Lc(a,b,c){0<=b&&b<a.w.length&&0>a.w[b][0]&&(c*=a.Y*a.Sa/1E3,a.w[b][0]=c+Mc(a))}function Mc(a,b){var c=a.L-=a.b;a.b=0;b&&(a.L=0);return c}
|
||||
l.fb=function(a){if(kb(this,!0)){if(!this.C.za){Hc(this);this.A&&this.A.start(this.D,Gc(this));this.C.za=!0;this.C.Vb=!0;this.F&&this.F.start();var b=this.N.run;b&&(b.textContent="Halt");this.A&&(this.A.La(!0),a&&this.A.Bb(!0))}this.ja>=this.Y&&Jc(this,!0);this.ba=0;this.ea=qa();this.J&&(a=this.ea-this.J,a>this.wa&&(this.D+=a,this.D>this.ea&&(this.D=this.ea)));try{do{for(var c,d=this.C.jb?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.ob(c);c=Mc(this,!0);this.ba+=
|
||||
c;this.H+=c;Fc(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.Ba&&(this.A&&this.A.La(),this.Ba=0);break}}while(this.C.za)}catch(k){this.ra();Ec(this);this.A&&this.A.stop(qa(),Gc(this));kb(this,!1);nb(this,k.stack||k.message);return}c=setTimeout;d=this.Ha;this.J=qa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e-=this.J-this.ea;if(f=this.J-this.D)this.K=Math.round(this.H/(10*f))/
|
||||
100,864E5<=f&&(this.M=0,Hc(this));if(0>e||this.K<this.eb)-1E3>e&&(this.D-=e),e=0;this.ja+=this.ba;this.J+=e;c(d,e)}else Ec(this),this.A&&this.A.stop(qa(),Gc(this))};l.ob=function(){return 0};l.ra=function(a){lb(this,!0);Mc(this);Ic(this,this.H);this.H=0;if(this.C.za){this.C.za=!1;this.F&&this.F.stop();var b=this.N.run;b&&(b.textContent="Run")}this.C.complete=a};function Ec(a,b){if(a.A){for(var c=a.A,d=0;d<c.H.length;d++)Nc(c.H[d],b);a.A.La(b)}}
|
||||
function Oc(a){this.Zd=+a.model||8080;mc.call(this,a,1E6);this.la=Pc;Bc(this);this.C.complete=this.C.Nd=!1;this.na=0;this.ca=[];this.ma=0;Qc(this)}A(Oc,mc);function Rc(a,b){a.ca.push(b)}l=Oc.prototype;l.reset=function(){this.C.za&&this.ra();Qc(this);Bc(this);this.C.error=!1;this.parent.reset.call(this)};function Qc(a){a.i=0;a.S=0;a.T=0;a.U=0;a.V=0;a.W=0;a.Z=0;a.pa=0;I(a,a.ma);Sc(a,0);a.j=0}function Tc(a,b){a.ma=b;I(a,b)}
|
||||
l.Bc=function(){var a=this.i+this.S+this.T+this.U+this.V+this.W+this.Z|0;return a=a+this.pa+this.R+Uc(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.pa,this.R,Uc(this)]);a.set(1,[this.j,this.M,this.Sa]);a.set(2,Fb(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.pa=b[7]&65535;I(this,b[8]);Sc(this,b[9]);b=a[1];this.j=b[0];this.M=b[1];Hc(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};
|
||||
l.qa=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.N[b]=c;this.na++;a=!0;break;default:a=this.parent.qa.call(this,a,b,c)}return a};function Vc(a){return a.S<<8|a.T}function Wc(a,b){a.S=b>>8&255;a.T=b&255}function Xc(a){return a.U<<8|a.V}function Yc(a,b){a.U=b>>8&255;a.V=b&255}function K(a){return a.W<<8|a.Z}
|
||||
function Zc(a,b){a.W=b>>8&255;a.Z=b&255}function I(a,b){a.R=b&65535}function $c(a){return a.da&256?1:0}function ad(a,b){a.da=a.da&255|b}function bd(a){return rb[a.ga&255]?4:0}function cd(a){return(a.ga^a.ya)&16?16:0}function dd(a){return a.da&255?0:64}function ed(a){return a.ga&128?128:0}function Uc(a){return a.ua&-214|ed(a)|dd(a)|cd(a)|bd(a)|$c(a)}function Sc(a,b){a.da=a.ga=a.ya=0;b&1&&(a.da|=256);b&4||(a.ga|=1);b&16&&(a.ya|=16);b&64||(a.da|=255);b&128&&(a.ga^=192);a.ua=a.ua&-726|b&512|2}
|
||||
function fd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b)&255}function gd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?1:0))&255}function hd(a,b){a.da=a.ga=a.ya=a.i&b;(a.i|b)&8&&(a.ya^=16);return a.da}function id(a,b){a.ya=b^255;b=a.ga=b+255&255;a.da=a.da&-256|b;return b}function jd(a,b){a.ya=b;b=a.ga=b+1&255;a.da=a.da&-256|b;return b}function Ed(a,b){return a.ga=a.da=a.ya=a.i|b}function L(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+1^256)&255}
|
||||
function Fd(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?0:1)^256)&255}function Gd(a,b){return a.ga=a.da=a.ya=a.i^b}l.aa=function(a){return this.u.aa(a)};l.va=function(a,b){this.u.va(a,b)};function M(a){var b=a.aa(a.R);I(a,a.R+1);return b}function O(a){var b=a.u.ab(a.R);I(a,a.R+2);return b}function P(a){var b=a.u.ab(a.pa);a.pa=a.pa+2&65535;return b}function Q(a,b){a.pa=a.pa-2&65535;a.u.Jb(a.pa,b)}
|
||||
function Hd(a){if(a.b&&a.j&255&&a.ua&512){for(var b=0;8>b&&!(a.j&1<<b);b++);a.j&=~(0>b?255:1<<b);a.ua&=-513;a.j&=-257;a.la[199|b<<3].call(a)}return a.j&256?(Mc(a),!1):!0}function Id(a,b){a.j|=1<<b;a.ua&512&&Mc(a)}function R(a,b,c,d){d=d||2;a.N[b]&&(void 0===c&&(nb(a,"Value for "+b+" is invalid"),a.ra()),c=!a.D.za||a.D.yc?t(c,d):"--------".substr(0,d),a.N[b].textContent!=c&&(a.N[b].textContent=c))}
|
||||
l.La=function(a){this.na&&(a||!this.D.za||this.D.yc)&&(R(this,"A",this.i),R(this,"B",this.S),R(this,"C",this.T),R(this,"BC",Vc(this),4),R(this,"D",this.U),R(this,"E",this.V),R(this,"DE",Xc(this),4),R(this,"H",this.W),R(this,"L",this.Z),R(this,"HL",K(this),4),R(this,"SP",this.pa,4),R(this,"PC",this.R,4),a=Uc(this),R(this,"PS",a,4),R(this,"IF",a&512?1:0,1),R(this,"SF",a&128?1:0,1),R(this,"ZF",a&64?1:0,1),R(this,"AF",a&16?1:0,1),R(this,"PF",a&4?1:0,1),R(this,"CF",a&1?1:0,1));if(a=this.N.speed)a.textContent=
|
||||
this.D.za&&this.K?this.K.toFixed(2)+"Mhz":"Stopped"};l.mb=function(a){this.D.complete=!0;var b=this.D.Nd=this.I&&Jd(this.I),c=a?this.D.Vb?0:1:-1;this.D.Vb=!1;this.L=this.b=a;if(Hd(this)){do{if(b){if(Kd(this.I,this.R,c)){this.ra();break}c=1}this.la[M(this)].call(this)}while(0<this.b)}return this.D.complete?this.L-this.b:void 0===this.D.complete?0:-1};Oa(function(){for(var a=D(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Oc(d);gb(d,c)}});function Ld(){this.b-=4}
|
||||
function Fd(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?0:1)^256)&255}function Gd(a,b){return a.ga=a.da=a.ya=a.i^b}l.aa=function(a){return this.u.aa(a)};l.va=function(a,b){this.u.va(a,b)};function M(a){var b=a.aa(a.R);I(a,a.R+1);return b}function O(a){var b=a.u.cb(a.R);I(a,a.R+2);return b}function P(a){var b=a.u.cb(a.pa);a.pa=a.pa+2&65535;return b}function Q(a,b){a.pa=a.pa-2&65535;a.u.Lb(a.pa,b)}
|
||||
function Hd(a){if(a.b&&a.j&255&&a.ua&512){for(var b=0;8>b&&!(a.j&1<<b);b++);a.j&=~(0>b?255:1<<b);a.ua&=-513;a.j&=-257;a.la[199|b<<3].call(a)}return a.j&256?(Mc(a),!1):!0}function Id(a,b){a.j|=1<<b;a.ua&512&&Mc(a)}function R(a,b,c,d){d=d||2;a.N[b]&&(void 0===c&&(nb(a,"Value for "+b+" is invalid"),a.ra()),c=!a.C.za||a.C.yc?t(c,d):"--------".substr(0,d),a.N[b].textContent!=c&&(a.N[b].textContent=c))}
|
||||
l.La=function(a){this.na&&(a||!this.C.za||this.C.yc)&&(R(this,"A",this.i),R(this,"B",this.S),R(this,"C",this.T),R(this,"BC",Vc(this),4),R(this,"D",this.U),R(this,"E",this.V),R(this,"DE",Xc(this),4),R(this,"H",this.W),R(this,"L",this.Z),R(this,"HL",K(this),4),R(this,"SP",this.pa,4),R(this,"PC",this.R,4),a=Uc(this),R(this,"PS",a,4),R(this,"IF",a&512?1:0,1),R(this,"SF",a&128?1:0,1),R(this,"ZF",a&64?1:0,1),R(this,"AF",a&16?1:0,1),R(this,"PF",a&4?1:0,1),R(this,"CF",a&1?1:0,1));if(a=this.N.speed)a.textContent=
|
||||
this.C.za&&this.K?this.K.toFixed(2)+"Mhz":"Stopped"};l.ob=function(a){this.C.complete=!0;var b=this.C.Nd=this.I&&Jd(this.I),c=a?this.C.Vb?0:1:-1;this.C.Vb=!1;this.L=this.b=a;if(Hd(this)){do{if(b){if(Kd(this.I,this.R,c)){this.ra();break}c=1}this.la[M(this)].call(this)}while(0<this.b)}return this.C.complete?this.L-this.b:void 0===this.C.complete?0:-1};Oa(function(){for(var a=D(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Oc(d);gb(d,c)}});function Ld(){this.b-=4}
|
||||
function Md(){I(this,O(this));this.b-=10}function Nd(){I(this,P(this));this.b-=10}function Od(){var a=O(this);Q(this,this.R);I(this,a);this.b-=17}
|
||||
var Pc=[Ld,function(){Wc(this,O(this));this.b-=10},function(){this.va(Vc(this),this.i);this.b-=7},function(){Wc(this,Vc(this)+1);this.b-=5},function(){this.S=jd(this,this.S);this.b-=5},function(){this.S=id(this,this.S);this.b-=5},function(){this.S=M(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255|a>>8;ad(this,a&256);this.b-=4},Ld,function(){var a;Zc(this,a=K(this)+Vc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Vc(this));this.b-=7},function(){Wc(this,Vc(this)-1);this.b-=
|
||||
5},function(){this.T=jd(this,this.T);this.b-=5},function(){this.T=id(this,this.T);this.b-=5},function(){this.T=M(this);this.b-=7},function(){var a=this.i<<8&256;this.i=(a|this.i)>>1;ad(this,a);this.b-=4},Ld,function(){Yc(this,O(this));this.b-=10},function(){this.va(Xc(this),this.i);this.b-=7},function(){Yc(this,Xc(this)+1);this.b-=5},function(){this.U=jd(this,this.U);this.b-=5},function(){this.U=id(this,this.U);this.b-=5},function(){this.U=M(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255|
|
||||
$c(this);ad(this,a&256);this.b-=4},Ld,function(){var a;Zc(this,a=K(this)+Xc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Xc(this));this.b-=7},function(){Yc(this,Xc(this)-1);this.b-=5},function(){this.V=jd(this,this.V);this.b-=5},function(){this.V=id(this,this.V);this.b-=5},function(){this.V=M(this);this.b-=7},function(){var a=this.i<<8;this.i=($c(this)<<8|this.i)>>1;ad(this,a&256);this.b-=4},Ld,function(){Zc(this,O(this));this.b-=10},function(){var a=O(this);this.u.Jb(a,K(this));
|
||||
this.b-=16},function(){Zc(this,K(this)+1);this.b-=5},function(){this.W=jd(this,this.W);this.b-=5},function(){this.W=id(this,this.W);this.b-=5},function(){this.W=M(this);this.b-=7},function(){var a=0,b=$c(this);if(cd(this)||9<(this.i&15))a|=6;if(b||154<=this.i)a|=96,b=1;this.i=fd(this,a);ad(this,b?256:0);this.b-=4},Ld,function(){var a;Zc(this,a=K(this)+K(this));ad(this,a>>8&256);this.b-=10},function(){var a;a=O(this);a=this.u.ab(a);Zc(this,a);this.b-=16},function(){Zc(this,K(this)-1);this.b-=5},function(){this.Z=
|
||||
$c(this);ad(this,a&256);this.b-=4},Ld,function(){var a;Zc(this,a=K(this)+Xc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Xc(this));this.b-=7},function(){Yc(this,Xc(this)-1);this.b-=5},function(){this.V=jd(this,this.V);this.b-=5},function(){this.V=id(this,this.V);this.b-=5},function(){this.V=M(this);this.b-=7},function(){var a=this.i<<8;this.i=($c(this)<<8|this.i)>>1;ad(this,a&256);this.b-=4},Ld,function(){Zc(this,O(this));this.b-=10},function(){var a=O(this);this.u.Lb(a,K(this));
|
||||
this.b-=16},function(){Zc(this,K(this)+1);this.b-=5},function(){this.W=jd(this,this.W);this.b-=5},function(){this.W=id(this,this.W);this.b-=5},function(){this.W=M(this);this.b-=7},function(){var a=0,b=$c(this);if(cd(this)||9<(this.i&15))a|=6;if(b||154<=this.i)a|=96,b=1;this.i=fd(this,a);ad(this,b?256:0);this.b-=4},Ld,function(){var a;Zc(this,a=K(this)+K(this));ad(this,a>>8&256);this.b-=10},function(){var a;a=O(this);a=this.u.cb(a);Zc(this,a);this.b-=16},function(){Zc(this,K(this)-1);this.b-=5},function(){this.Z=
|
||||
jd(this,this.Z);this.b-=5},function(){this.Z=id(this,this.Z);this.b-=5},function(){this.Z=M(this);this.b-=7},function(){this.i=~this.i&255;this.b-=4},Ld,function(){this.pa=O(this)&65535;this.b-=10},function(){this.va(O(this),this.i);this.b-=13},function(){this.pa=this.pa+1&65535;this.b-=5},function(){var a=K(this);this.va(a,jd(this,this.aa(a)));this.b-=10},function(){var a=K(this);this.va(a,id(this,this.aa(a)));this.b-=10},function(){this.va(K(this),M(this));this.b-=10},function(){this.da|=256;this.b-=
|
||||
4},Ld,function(){var a;Zc(this,a=K(this)+this.pa);ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(O(this));this.b-=13},function(){this.pa=this.pa-1&65535;this.b-=5},function(){this.i=jd(this,this.i);this.b-=5},function(){this.i=id(this,this.i);this.b-=5},function(){this.i=M(this);this.b-=7},function(){ad(this,$c(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.U;this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.W;
|
||||
this.b-=5},function(){this.S=this.Z;this.b-=5},function(){this.S=this.aa(K(this));this.b-=7},function(){this.S=this.i;this.b-=5},function(){this.T=this.S;this.b-=5},function(){this.b-=5},function(){this.T=this.U;this.b-=5},function(){this.T=this.V;this.b-=5},function(){this.T=this.W;this.b-=5},function(){this.T=this.Z;this.b-=5},function(){this.T=this.aa(K(this));this.b-=7},function(){this.T=this.i;this.b-=5},function(){this.U=this.S;this.b-=5},function(){this.U=this.T;this.b-=5},function(){this.b-=
|
||||
|
|
@ -120,78 +120,78 @@ function(){Q(this,K(this));this.b-=11},function(){this.i=hd(this,M(this));this.b
|
|||
this.R);I(this,40);this.b-=11},function(){ed(this)||(I(this,P(this)),this.b-=6);this.b-=5},function(){var a=P(this);Sc(this,a&255|this.ua&-256);this.i=a>>8;this.b-=10},function(){var a=O(this);ed(this)||I(this,a);this.b-=10},function(){this.ua&=-513;this.b-=4},function(){var a=O(this);ed(this)||(Q(this,this.R),I(this,a),this.b-=6);this.b-=11},function(){Q(this,Uc(this)&255|this.i<<8);this.b-=11},function(){this.i=Ed(this,M(this));this.b-=7},function(){Q(this,this.R);I(this,48);this.b-=11},function(){ed(this)&&
|
||||
(I(this,P(this)),this.b-=6);this.b-=5},function(){this.pa=K(this)&65535;this.b-=5},function(){var a=O(this);ed(this)&&I(this,a);this.b-=10},function(){this.ua|=512;this.b-=4;Hd(this)},function(){var a=O(this);ed(this)&&(Q(this,this.R),I(this,a),this.b-=6);this.b-=11},Od,function(){L(this,M(this));this.b-=7},function(){Q(this,this.R);I(this,56);this.b-=11}];
|
||||
function S(a){z.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!Pd[b]&&Qa("Unrecognized ChipSet model: "+b);this.w=Pd[b]||{};a.sound&&(this.fa=null,window&&(this.fa=window.AudioContext||window.webkitAudioContext),this.fa&&new this.fa);F(this)}A(S);
|
||||
var U={Ca:1978.1,yd:{Da:0,te:1,xe:16,Ee:32,Ne:64,Me:128,ob:14},Za:{Da:1,Nc:1,qd:2,md:4,nd:16,od:32,pd:64,ob:8},zd:{Da:2,se:3,Ve:4,ue:8,Ie:16,Je:32,Ke:64,ve:128,ob:0},Re:{Da:3},Pe:{Da:2,Fe:7},Te:{Da:3,We:1,Se:2,Le:4,Ce:8,we:16,me:32},Qe:{Da:4},Ue:{Da:5,ye:1,ze:2,Ae:4,Be:8,Xe:16}},V={Ca:100,Ma:{Da:66,pc:1,ec:2,jd:4,He:8,Ge:16,gc:32,fc:64,ac:128},Lc:{Da:66,INIT:0},Ua:{Da:194,oe:0,Zb:16,sd:32,lc:48,Vc:0,Wc:32},Cb:{Da:162,Oe:0,Yc:0,Uc:0,Xc:0,Tc:0},Na:{De:{Da:98},Ta:{Ic:0,Hc:1,vd:2,Ed:4,Oc:5,td:6,wd:7},
|
||||
Db:16383}},Pd={SI1978:U,VT100:V};S.prototype.qa=function(){return!1};S.prototype.Ra=function(a,b,c,d){this.u=b;this.b=c;this.I=d;this.A=a;this.K=ub(a,"Keyboard");this.Ha=ub(a,"SerialPort");this.video=ub(a,"Video");Hb(b,this,this.w.Hb);Ub(b,this,this.w.Ib);if(d){var e=this;Qd(d,16384,function(){for(var a="",b=0;b<e.F.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=u(e.F[b]);e.I.g(a)})}};S.prototype.Ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
S.prototype.Ka=function(a){return a?this.save():!0};U.INIT=[[U.yd.ob,U.Za.ob,U.zd.ob,0,0,0,0]];
|
||||
V.INIT=[[V.Lc.INIT,V.Ma.ec|V.Ma.jd],[V.Ua.Vc,V.Ua.Wc],[V.Cb.Yc,V.Cb.Uc,V.Cb.Xc,V.Cb.Tc],[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],
|
||||
var U={Ca:1978.1,yd:{Da:0,te:1,xe:16,Ee:32,Ne:64,Me:128,qb:14},$a:{Da:1,Nc:1,qd:2,md:4,nd:16,od:32,pd:64,qb:8},zd:{Da:2,se:3,Ve:4,ue:8,Ie:16,Je:32,Ke:64,ve:128,qb:0},Re:{Da:3},Pe:{Da:2,Fe:7},Te:{Da:3,We:1,Se:2,Le:4,Ce:8,we:16,me:32},Qe:{Da:4},Ue:{Da:5,ye:1,ze:2,Ae:4,Be:8,Xe:16}},V={Ca:100,Ma:{Da:66,pc:1,ec:2,jd:4,He:8,Ge:16,gc:32,fc:64,ac:128},Lc:{Da:66,INIT:0},Va:{Da:194,oe:0,Zb:16,sd:32,lc:48,Vc:0,Wc:32},Eb:{Da:162,Oe:0,Yc:0,Uc:0,Xc:0,Tc:0},Na:{De:{Da:98},Ua:{Ic:0,Hc:1,vd:2,Ed:4,Oc:5,td:6,wd:7},
|
||||
Fb:16383}},Pd={SI1978:U,VT100:V};S.prototype.qa=function(){return!1};S.prototype.Ra=function(a,b,c,d){this.u=b;this.b=c;this.I=d;this.A=a;this.K=ub(a,"Keyboard");this.Ha=ub(a,"SerialPort");this.video=ub(a,"Video");Hb(b,this,this.w.Jb);Ub(b,this,this.w.Kb);if(d){var e=this;Qd(d,16384,function(){for(var a="",b=0;b<e.F.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=u(e.F[b]);e.I.g(a)})}};S.prototype.Ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
S.prototype.Ka=function(a){return a?this.save():!0};U.INIT=[[U.yd.qb,U.$a.qb,U.zd.qb,0,0,0,0]];
|
||||
V.INIT=[[V.Lc.INIT,V.Ma.ec|V.Ma.jd],[V.Va.Vc,V.Va.Wc],[V.Eb.Yc,V.Eb.Uc,V.Eb.Xc,V.Eb.Tc],[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]]];l=S.prototype;l.reset=function(){this.w.INIT&&!this.restore(this.w.INIT)&&this.ka("reset error")};
|
||||
l.save=function(){var a=new J(this);switch(this.w.Ca){case U.Ca:a.set(0,[this.wa,this.G,this.Ba,this.Y,this.ea,this.ma,this.na]);break;case V.Ca:a.set(0,[this.ha,this.J]),a.set(1,[this.L,this.M]),a.set(2,[this.C,this.ba,this.la,this.ja]),a.set(3,[this.P,this.j,this.O,this.ca,this.F])}return a.data()};
|
||||
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.w.Ca){case U.Ca:return this.wa=b[0],this.G=b[1],this.Ba=b[2],this.Y=b[3],this.ea=b[4],this.ma=b[5],this.na=b[6],!0;case V.Ca:return this.ha=b[0],this.J=b[1],b=a[1],this.L=b[0],this.M=b[1],b=a[2],this.C=b[0],this.ba=b[1],this.la=b[2],this.ja=b[3],b=a[3],this.P=b[0],this.j=b[1],this.O=b[2],this.ca=b[3],this.F=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Td=function(a,b){var c=this.wa;E(this,a,null,b,"STATUS0",c,!0);return c};
|
||||
l.Ud=function(a,b){var c=this.G;E(this,a,null,b,"STATUS1",c,!0);return c};l.Vd=function(a,b){var c=this.Ba;E(this,a,null,b,"STATUS2",c,!0);return c};l.Sd=function(a,b){var c=this.Y>>8-this.ea&255;E(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.ce=function(a,b,c){E(this,a,b,c,"SHIFT.COUNT",null,!0);this.ea=b};l.ee=function(a,b,c){E(this,a,b,c,"SOUND1",null,!0);this.ma=b};l.de=function(a,b,c){E(this,a,b,c,"SHIFT.DATA",null,!0);this.Y=b<<8|this.Y>>8};
|
||||
l.save=function(){var a=new J(this);switch(this.w.Ca){case U.Ca:a.set(0,[this.wa,this.H,this.Ba,this.Y,this.ea,this.ma,this.na]);break;case V.Ca:a.set(0,[this.ha,this.J]),a.set(1,[this.L,this.M]),a.set(2,[this.D,this.ba,this.la,this.ja]),a.set(3,[this.P,this.j,this.O,this.ca,this.F])}return a.data()};
|
||||
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.w.Ca){case U.Ca:return this.wa=b[0],this.H=b[1],this.Ba=b[2],this.Y=b[3],this.ea=b[4],this.ma=b[5],this.na=b[6],!0;case V.Ca:return this.ha=b[0],this.J=b[1],b=a[1],this.L=b[0],this.M=b[1],b=a[2],this.D=b[0],this.ba=b[1],this.la=b[2],this.ja=b[3],b=a[3],this.P=b[0],this.j=b[1],this.O=b[2],this.ca=b[3],this.F=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Td=function(a,b){var c=this.wa;E(this,a,null,b,"STATUS0",c,!0);return c};
|
||||
l.Ud=function(a,b){var c=this.H;E(this,a,null,b,"STATUS1",c,!0);return c};l.Vd=function(a,b){var c=this.Ba;E(this,a,null,b,"STATUS2",c,!0);return c};l.Sd=function(a,b){var c=this.Y>>8-this.ea&255;E(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.ce=function(a,b,c){E(this,a,b,c,"SHIFT.COUNT",null,!0);this.ea=b};l.ee=function(a,b,c){E(this,a,b,c,"SOUND1",null,!0);this.ma=b};l.de=function(a,b,c){E(this,a,b,c,"SHIFT.DATA",null,!0);this.Y=b<<8|this.Y>>8};
|
||||
l.fe=function(a,b,c){E(this,a,b,c,"SOUND2",null,!0);this.na=b};l.ge=function(a,b,c){E(this,a,b,c,"WATCHDOG",null,!0)};function Rd(a){var b=0,c=0,d=~a.P;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}
|
||||
l.Wd=function(a,b){var c=this.J,c=c&~V.Ma.fc;if((Gc(this.b)&64)<<1&&(c|=V.Ma.fc,c!=this.J)){var d,e;d=this.O&1;e=this.O>>1&7;switch(e){case V.Na.Ta.wd:break;case V.Na.Ta.Hc:this.P=this.P<<1|d;break;case V.Na.Ta.Oc:d=Rd(this);this.F[d]=V.Na.Db;ib(this,"doNVRCommand(): erase data at addr "+u(d));break;case V.Na.Ta.Ic:this.j=this.j<<1|d;break;case V.Na.Ta.Ed:d=Rd(this);e=this.j&V.Na.Db;this.F[d]=e;ib(this,"doNVRCommand(): write data "+u(e)+" to addr "+u(d));break;case V.Na.Ta.td:d=Rd(this);e=this.F[d];
|
||||
null==e&&(e=V.Na.Db);this.j=e;ib(this,"doNVRCommand(): read data "+u(e)+" from addr "+u(d));break;case V.Na.Ta.vd:this.j<<=1;this.ca=this.j&V.Na.Db+1;break;default:ib(this,"doNVRCommand(): unrecognized command "+ca(e))}}c&=~V.Ma.gc;this.ca&&(c|=V.Ma.gc);c&=~V.Ma.ac;if(d=this.K){d=this.K;if(e=d.C)e=d.b,e=Gc(d.b)>=d.J+e.Y*e.Sa/1E3*1.2731488;e&&(d.C=!1);d=!d.C}d&&(c|=V.Ma.ac);c&=~V.Ma.pc;this.Ha&&this.Ha.Fa&1&&(c|=V.Ma.pc);this.J=c;E(this,a,null,b,"FLAGS",c);return c};
|
||||
l.he=function(a,b,c){E(this,a,b,c,"BRIGHTNESS");this.ha=b};l.ke=function(a,b,c){E(this,a,b,c,"NVR.LATCH");this.O=b};l.je=function(a,b,c){E(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.C=this.C&-4|a;break;case 1:this.C=this.C&-13|a<<2;this.video&&(b=this.video,a=this.C,ib(b,"updateScrollOffset("+a+")"),b.gb!==a&&((b.gb=a)?Nc(b,!0):b.qb=!0));break;case 2:switch(a){case 0:this.ba=~this.ba;break;case 2:case 3:this.la=3-a}break;case 3:this.ja=a}};
|
||||
l.ie=function(a,b,c){E(this,a,b,c,"DC011");b&V.Ua.sd?(b&=V.Ua.lc,this.M!=b&&(this.M=b,this.video&&(a=this.video,b=this.M==V.Ua.lc?50:60,ib(a,"updateRate("+b+")"),a.tc=b))):(b&=V.Ua.Zb,this.L!=b&&(this.L=b,this.video&&(a=this.L==V.Ua.Zb?132:80,b=this.video,ib(b,"updateDimensions("+a+","+(80<a&&this.J&V.Ma.ec?14:24)+")"),b.ca=a,b.sa=b.ic,80<a&&b.sa--,Sd(b)&&Td(b))))};U.Hb={0:S.prototype.Td,1:S.prototype.Ud,2:S.prototype.Vd,3:S.prototype.Sd};
|
||||
U.Ib={2:S.prototype.ce,3:S.prototype.ee,4:S.prototype.de,5:S.prototype.fe,6:S.prototype.ge};V.Hb={66:S.prototype.Wd};V.Ib={66:S.prototype.he,98:S.prototype.ke,162:S.prototype.je,194:S.prototype.ie};Oa(function(){for(var a=D(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new S(d);gb(d,c)}});
|
||||
function Ud(a){z.call(this,"ROM",a,Ud);this.A=null;this.C=a.addr;this.j=a.size;this.F=a.alias;this.w=a.file;this.G=ea(this.w);if(this.w){a=this.w;var b=fa(this.G);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;va(a,null,!0,function(a,b,f){Vd(c,a,b,f)})}}A(Ud);Ud.prototype.Ra=function(a,b,c,d){this.u=b;this.b=c;this.I=d;Wd(this)};
|
||||
Ud.prototype.Ga=function(){if(this.Ea){if(this.I){var a=this.I,b=this.id,c=this.C,d=this.j,e=this.Ea,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.xc);0>q&&p.splice(-(q+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.G.push({kf:b,H:c,Yd:d,Ea:e,wc:f})}delete this.Ea}return!0};Ud.prototype.Ka=function(){return!0};
|
||||
function Vd(a,b,c,d){if(d)a.ka("Unable to load system ROM (error "+d+": "+b+")");else{cb(a.fb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.A=f;else if(g)for(a.A=Array(4*g.length),d=c=0;c<g.length;c++)a.A[d++]=g[c]&255,a.A[d++]=g[c]>>8&255,a.A[d++]=g[c]>>16&255,a.A[d++]=g[c]>>24&255;else a.A=e;a.Ea=e.symbols;if(!a.A.length){w("Empty ROM: "+b);return}if(1==a.A.length){w(a.A[0]);return}}catch(h){a.ka("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
|
||||
l.Wd=function(a,b){var c=this.J,c=c&~V.Ma.fc;if((Gc(this.b)&64)<<1&&(c|=V.Ma.fc,c!=this.J)){var d,e;d=this.O&1;e=this.O>>1&7;switch(e){case V.Na.Ua.wd:break;case V.Na.Ua.Hc:this.P=this.P<<1|d;break;case V.Na.Ua.Oc:d=Rd(this);this.F[d]=V.Na.Fb;ib(this,"doNVRCommand(): erase data at addr "+u(d));break;case V.Na.Ua.Ic:this.j=this.j<<1|d;break;case V.Na.Ua.Ed:d=Rd(this);e=this.j&V.Na.Fb;this.F[d]=e;ib(this,"doNVRCommand(): write data "+u(e)+" to addr "+u(d));break;case V.Na.Ua.td:d=Rd(this);e=this.F[d];
|
||||
null==e&&(e=V.Na.Fb);this.j=e;ib(this,"doNVRCommand(): read data "+u(e)+" from addr "+u(d));break;case V.Na.Ua.vd:this.j<<=1;this.ca=this.j&V.Na.Fb+1;break;default:ib(this,"doNVRCommand(): unrecognized command "+ca(e))}}c&=~V.Ma.gc;this.ca&&(c|=V.Ma.gc);c&=~V.Ma.ac;if(d=this.K){d=this.K;if(e=d.D)e=d.b,e=Gc(d.b)>=d.J+e.Y*e.Sa/1E3*1.2731488;e&&(d.D=!1);d=!d.D}d&&(c|=V.Ma.ac);c&=~V.Ma.pc;this.Ha&&this.Ha.Fa&1&&(c|=V.Ma.pc);this.J=c;E(this,a,null,b,"FLAGS",c);return c};
|
||||
l.he=function(a,b,c){E(this,a,b,c,"BRIGHTNESS");this.ha=b};l.ke=function(a,b,c){E(this,a,b,c,"NVR.LATCH");this.O=b};l.je=function(a,b,c){E(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.D=this.D&-4|a;break;case 1:this.D=this.D&-13|a<<2;this.video&&(b=this.video,a=this.D,ib(b,"updateScrollOffset("+a+")"),b.ib!==a&&((b.ib=a)?Nc(b,!0):b.sb=!0));break;case 2:switch(a){case 0:this.ba=~this.ba;break;case 2:case 3:this.la=3-a}break;case 3:this.ja=a}};
|
||||
l.ie=function(a,b,c){E(this,a,b,c,"DC011");b&V.Va.sd?(b&=V.Va.lc,this.M!=b&&(this.M=b,this.video&&(a=this.video,b=this.M==V.Va.lc?50:60,ib(a,"updateRate("+b+")"),a.tc=b))):(b&=V.Va.Zb,this.L!=b&&(this.L=b,this.video&&(a=this.L==V.Va.Zb?132:80,b=this.video,ib(b,"updateDimensions("+a+","+(80<a&&this.J&V.Ma.ec?14:24)+")"),b.ca=a,b.sa=b.ic,80<a&&b.sa--,Sd(b)&&Td(b))))};U.Jb={0:S.prototype.Td,1:S.prototype.Ud,2:S.prototype.Vd,3:S.prototype.Sd};
|
||||
U.Kb={2:S.prototype.ce,3:S.prototype.ee,4:S.prototype.de,5:S.prototype.fe,6:S.prototype.ge};V.Jb={66:S.prototype.Wd};V.Kb={66:S.prototype.he,98:S.prototype.ke,162:S.prototype.je,194:S.prototype.ie};Oa(function(){for(var a=D(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new S(d);gb(d,c)}});
|
||||
function Ud(a){z.call(this,"ROM",a,Ud);this.A=null;this.D=a.addr;this.j=a.size;this.F=a.alias;this.w=a.file;this.H=ea(this.w);if(this.w){a=this.w;var b=fa(this.H);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;va(a,null,!0,function(a,b,f){Vd(c,a,b,f)})}}A(Ud);Ud.prototype.Ra=function(a,b,c,d){this.u=b;this.b=c;this.I=d;Wd(this)};
|
||||
Ud.prototype.Ga=function(){if(this.Ea){if(this.I){var a=this.I,b=this.id,c=this.D,d=this.j,e=this.Ea,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.xc);0>q&&p.splice(-(q+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.H.push({kf:b,G:c,Yd:d,Ea:e,wc:f})}delete this.Ea}return!0};Ud.prototype.Ka=function(){return!0};
|
||||
function Vd(a,b,c,d){if(d)a.ka("Unable to load system ROM (error "+d+": "+b+")");else{cb(a.hb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.A=f;else if(g)for(a.A=Array(4*g.length),d=c=0;c<g.length;c++)a.A[d++]=g[c]&255,a.A[d++]=g[c]>>8&255,a.A[d++]=g[c]>>16&255,a.A[d++]=g[c]>>24&255;else a.A=e;a.Ea=e.symbols;if(!a.A.length){w("Empty ROM: "+b);return}if(1==a.A.length){w(a.A[0]);return}}catch(h){a.ka("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
|
||||
" ").replace(/ +$/,"").split(" "),a.A=Array(b.length),e=0;e<b.length;e++)a.A[e]=aa(b[e],16);Wd(a)}}
|
||||
function Wd(a){if(!mb(a))if(!a.w)F(a);else if(a.A&&a.u){a.j||(a.j=a.A.length);if(a.A.length!=a.j)nb(a,"ROM size ("+t(a.A.length,8,!0)+") does not match specified size ("+t(a.j,8,!0)+")");else{var b;b=a.C;if(yb(a.u,b,a.j,bc)){var c;for(c=0;c<a.A.length;c++)Db(a.u,b+c,a.A[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.F?b.push(a.F):null!=a.F&&a.F.length&&(b=a.F);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,g=d.j,h=[],k=d.C>>>f.ia;0<g&&k<f.X.length;)h.push(f.X[k++]),g-=f.Ja;f=d.u;d=d.j;g=0;for(e>>>=
|
||||
function Wd(a){if(!mb(a))if(!a.w)F(a);else if(a.A&&a.u){a.j||(a.j=a.A.length);if(a.A.length!=a.j)nb(a,"ROM size ("+t(a.A.length,8,!0)+") does not match specified size ("+t(a.j,8,!0)+")");else{var b;b=a.D;if(yb(a.u,b,a.j,bc)){var c;for(c=0;c<a.A.length;c++)Db(a.u,b+c,a.A[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.F?b.push(a.F):null!=a.F&&a.F.length&&(b=a.F);for(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.Ja;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.Ja}}delete a.A}}F(a)}}Oa(function(){for(var a=D(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Ud(d);gb(d,c)}});
|
||||
function Xd(a){z.call(this,"RAM",a,Xd);this.Ea=this.j=null;this.G=a.addr;this.K=a.size;this.F=a.load;this.w=a.exec;this.C=!1;this.A=a.file;this.J=ea(this.A);if(this.A){a=this.A;var b=fa(this.J);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;va(a,null,!0,function(a,b,f){f?c.ka("Unable to load RAM resource (error "+f+": "+a+")"):(cb(c.fb,a,b),(a=wa(a,b))?(c.j=a.Aa,c.Ea=a.Ea,null==c.F&&null!=a.Rb&&(c.F=a.Rb),null==c.w&&null!=a.Qb&&(c.w=a.Qb)):c.A=null,
|
||||
Yd(c))})}}A(Xd);var Zd=[0,5];Xd.prototype.Ra=function(a,b,c,d){this.u=b;this.b=c;this.I=d;Yd(this)};Xd.prototype.Ga=function(){return!0};Xd.prototype.Ka=function(){return!0};
|
||||
function Yd(a){!a.C&&a.K&&yb(a.u,a.G,a.K,1)&&(a.C=!0);if(!mb(a)){if(!a.C)w("No RAM allocated");else if(a.A){if(!a.j||!a.u)return;var b=a.G;null!==a.F&&(b=a.F);for(var c=0;c<a.j.length;c++)Db(a.u,b+c,a.j[c]);if(null!==a.w){if(256==a.w){for(c=0;c<Zd.length;c++)Db(a.u,Zd[c],118);Rc(a.b,function(a){return function(b){if(0<=Zd.indexOf(b)){var c=!1,d=a.b,e=a.I;if(5==b)switch(c=!0,d.T){case 2:$d(a,String.fromCharCode(d.V));break;case 9:for(var k=Xc(d),n="",p=255;p--;){var q=a.b.aa(k++);if(36==q)break;n+=
|
||||
String.fromCharCode(q)}$d(a,n);break;default:c=!1}c?Nd.call(d):e&&(a.g("\nCP/M vector "+u(b)),I(d,b),e.ra());b=!0}else b=!1;return b}}(a))}Tc(a.b,a.w)}delete a.j}F(a)}}Xd.prototype.reset=function(){};function $d(a,b){b=b.replace(/\r/g,"");a.Ia&&(a.Ia.value+=b,a.Ia.scrollTop=a.Ia.scrollHeight)}Oa(function(){for(var a=D(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Xd(d);gb(d,c)}});
|
||||
function ae(a){z.call(this,"Keyboard",a,ae,65536);(a=a.model)&&!be[a]&&Qa("Unrecognized Keyboard8080 model: "+a);this.u=be[a]||{};this.reset();F(this)}A(ae);var ce={};ce[m.Xb]=37;ce[m.$b]=39;ce[m.bc]=32;var de={Ca:1978.1,B:{},Yb:ce,rb:{},Ya:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},W={Ca:100,B:{},Yb:{},rb:{},Ya:{setup:120},Jc:{Da:130,INIT:127},Oa:{Da:130,ed:1,dd:2,cd:4,bd:8,fd:16,dc:32,cc:63,xd:64,ne:128,INIT:0},ad:127};W.B[46]=3;W.B[m.ld]=5;W.B[m.kd]=6;W.B[m.Gd]=7;W.B[m.Ad]=8;
|
||||
function Xd(a){z.call(this,"RAM",a,Xd);this.Ea=this.j=null;this.F=a.addr;this.D=a.size;this.bb=a.load;this.Ta=a.exec;this.w=!1;this.A=a.file;this.H=ea(this.A);if(this.A){a=this.A;var b=fa(this.H);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;va(a,null,!0,function(a,b,f){f?c.ka("Unable to load RAM resource (error "+f+": "+a+")"):(cb(c.hb,a,b),(a=wa(a,b))?(c.j=a.Aa,c.Ea=a.Ea,null==c.bb&&(c.bb=a.bb),null==c.Ta&&(c.Ta=a.Ta)):c.A=null,Yd(c))})}}A(Xd);
|
||||
var Zd=[0,5];Xd.prototype.Ra=function(a,b,c,d){this.u=b;this.b=c;this.I=d;Yd(this)};Xd.prototype.Ga=function(){return!0};Xd.prototype.Ka=function(){return!0};
|
||||
function Yd(a){!a.w&&a.D&&yb(a.u,a.F,a.D,1)&&(a.w=!0);if(!mb(a)){if(!a.w)w("No RAM allocated");else if(a.A){if(!a.j||!a.u)return;var b=a.F;null!==a.bb&&(b=a.bb);for(var c=0;c<a.j.length;c++)Db(a.u,b+c,a.j[c]);if(null!==a.Ta){if(256==a.Ta){for(c=0;c<Zd.length;c++)Db(a.u,Zd[c],118);Rc(a.b,function(a){return function(b){if(0<=Zd.indexOf(b)){var c=!1,d=a.b,e=a.I;if(5==b)switch(c=!0,d.T){case 2:$d(a,String.fromCharCode(d.V));break;case 9:for(var k=Xc(d),n="",p=255;p--;){var q=a.b.aa(k++);if(36==q)break;
|
||||
n+=String.fromCharCode(q)}$d(a,n);break;default:c=!1}c?Nd.call(d):e&&(a.g("\nCP/M vector "+u(b)),I(d,b),e.ra());b=!0}else b=!1;return b}}(a))}Tc(a.b,a.Ta)}delete a.j}F(a)}}Xd.prototype.reset=function(){};function $d(a,b){b=b.replace(/\r/g,"");a.Ia&&(a.Ia.value+=b,a.Ia.scrollTop=a.Ia.scrollHeight)}Oa(function(){for(var a=D(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Xd(d);gb(d,c)}});
|
||||
function ae(a){z.call(this,"Keyboard",a,ae,65536);(a=a.model)&&!be[a]&&Qa("Unrecognized Keyboard8080 model: "+a);this.u=be[a]||{};this.reset();F(this)}A(ae);var ce={};ce[m.Xb]=37;ce[m.$b]=39;ce[m.bc]=32;var de={Ca:1978.1,B:{},Yb:ce,tb:{},Za:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},W={Ca:100,B:{},Yb:{},tb:{},Za:{setup:120},Jc:{Da:130,INIT:127},Oa:{Da:130,ed:1,dd:2,cd:4,bd:8,fd:16,dc:32,cc:63,xd:64,ne:128,INIT:0},ad:127};W.B[46]=3;W.B[m.ld]=5;W.B[m.kd]=6;W.B[m.Gd]=7;W.B[m.Ad]=8;
|
||||
W.B[m.Dd]=9;W.B[m.Q]=10;W.B[39]=16;W.B[221]=20;W.B[219]=21;W.B[m.Sc]=22;W.B[m.Bd]=23;W.B[m.rd]=24;W.B[m.E]=25;W.B[49]=26;W.B[37]=32;W.B[40]=34;W.B[117]=35;W.B[19]=35;W.B[192]=36;W.B[189]=37;W.B[57]=38;W.B[55]=39;W.B[52]=40;W.B[51]=41;W.B[27]=42;W.B[38]=48;W.B[114]=49;W.B[112]=50;W.B[8]=51;W.B[187]=52;W.B[48]=53;W.B[56]=54;W.B[54]=55;W.B[53]=56;W.B[50]=57;W.B[9]=58;W.B[103]=64;W.B[115]=65;W.B[113]=66;W.B[96]=67;W.B[118]=68;W.B[220]=69;W.B[m.bc]=70;W.B[m.$c]=71;W.B[m.Qc]=72;W.B[m.Pc]=73;W.B[m.Xb]=74;
|
||||
W.B[104]=80;W.B[2013]=81;W.B[98]=82;W.B[97]=83;W.B[222]=85;W.B[186]=86;W.B[m.Zc]=87;W.B[m.Rc]=88;W.B[m.$b]=89;W.B[m.ud]=90;W.B[110]=96;W.B[116]=97;W.B[101]=98;W.B[100]=99;W.B[13]=100;W.B[190]=101;W.B[188]=102;W.B[m.hd]=103;W.B[m.Kc]=104;W.B[m.Fd]=105;W.B[119]=106;W.B[105]=112;W.B[99]=113;W.B[102]=114;W.B[109]=115;W.B[191]=117;W.B[m.gd]=118;W.B[m[" "]]=119;W.B[m.Cd]=120;W.B[m.Mc]=121;W.B[m.Hd]=122;W.B[120]=123;W.B[17]=124;W.B[16]=125;W.B[20]=126;
|
||||
W.rb={l4:W.Oa.ed,l3:W.Oa.dd,l2:W.Oa.cd,l1:W.Oa.bd,locked:W.Oa.fd,local:W.Oa.dc,online:~W.Oa.dc};var be={SI1978:de,VT100:W};
|
||||
ae.prototype.qa=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.N[e]){if("led"==a&&this.u.rb[b])return this.N[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return ee(d,a,!0)},c.onkeyup=function(a){return ee(d,a,!1)},!0;default:if(this.u.Ya&&void 0!==this.u.Ya[b])return this.N[e]=c,a=function(a,b){return function(c){c.preventDefault();fe(a,b,!0)}}(this,this.u.Ya[b]),b=function(a,b){return function(){fe(a,b,!1)}}(this,this.u.Ya[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=
|
||||
b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};ae.prototype.Ra=function(a,b,c,d){this.A=a;this.b=c;this.I=d;this.F=ub(a,"ChipSet");Hb(b,this,this.u.Hb);Ub(b,this,this.u.Ib)};ae.prototype.Ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};ae.prototype.Ka=function(a){return a?this.save():!0};W.INIT=[[W.Oa.INIT,W.Jc.INIT,!1,0,-1]];l=ae.prototype;l.reset=function(){this.j=[];this.u.INIT&&!this.restore(this.u.INIT)&&this.ka("reset error")};
|
||||
l.save=function(){var a=new J(this);switch(this.u.Ca){case W.Ca:a.set(0,[this.K,this.G,this.C,this.J,-1])}return a.data()};l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.u.Ca){case de.Ca:return!0;case W.Ca:return this.K=b[0],ge(this,this.K&W.Oa.cc),this.G=b[1],this.C=b[2],this.J=b[3],this.w=b[4],!0}return!1};function ge(a,b){for(var c in a.u.rb){var d=a.N["led-"+c];if(d){var e=a.u.rb[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}}
|
||||
function ee(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=a.u.Yb[e]||e,!a.u.B[e]){for(var f in a.u.Ya)if(a.u.Ya[f]===e){e=f;break a}e=null}e&&(d=fe(a,e,c),b.preventDefault());return d}
|
||||
function fe(a,b,c){var d;a:{for(d=0;d<a.j.length;d++)if(a.j[d].Ub==b)break a;d=-1}if(c)0>d?a.j.push({Ub:b,Pb:Date.now(),Eb:!1}):(a.j[d].Pb=Date.now(),a.j[d].Eb=!1);else if(0<=d){if(!a.j[d].Eb){var e=a.j[d].Pb;if(e&&100>Date.now()-e)return a.j[d].Eb=!0,he(a),!0}a.j.splice(d,1)}if(a.F){d=0;switch(b){case "1p":d=U.Za.md;break;case "2p":d=U.Za.qd;break;case "coin":d=U.Za.Nc;break;case "left":d=U.Za.od;break;case "right":d=U.Za.pd;break;case "fire":d=U.Za.nd}d&&(a=a.F,b=d,a.G&=~b,c&&(a.G|=b))}return!0}
|
||||
function he(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].Eb){var d=a.j[b].Ub,e=100-(Date.now()-a.j[b].Pb);if(0<e){if(0>c||c>e)c=e}else{fe(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){he(a)},c)}l.Xd=function(a,b){var c=this.G;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=W.B[c.Ub],c&128&&(c&=127)):(this.w=-1,c=W.ad),this.G=c,Id(this.b,1));E(this,a,null,b,"KBDUART.ADDRESS",c);return c};
|
||||
l.le=function(a,b,c){E(this,a,b,c,"KBDUART.STATUS");this.K=b;this.C=!0;this.J=Gc(this.b);ge(this,b&W.Oa.cc);b&W.Oa.xd&&(this.w=0,Id(this.b,1))};W.Hb={130:ae.prototype.Xd};W.Ib={130:ae.prototype.le};Oa(function(){for(var a=D(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new ae(d);gb(d,c)}});
|
||||
function ie(a,b,c,d,e){var f=this;this.nc=Da("Gecko/");var g=["","moz","ms","webkit"];z.call(this,"Video",a,ie,262144);this.Y=a.screenWidth;this.O=a.screenHeight;this.Va=a.bufferAddr;this.Kd=a.bufferRAM;var h=a.bufferFormat;this.na=h&&je[h.toUpperCase()]||ke;this.ca=a.bufferCols;this.wa=a.bufferRows;this.ic=this.sa=a.cellWidth||1;this.oa=a.cellHeight||1;this.Ba=null;this.mc=!1;this.Wa=a.bufferBits||1;this.Md=a.bufferLeft||0;if(this.w=a.bufferRotate)this.w=this.w%360,0<this.w&&(this.w-=360),-90!=this.w&&
|
||||
(this.ka("unsupported buffer rotation: "+this.w),this.w=0);this.Xa=a.interruptRate;this.uc=a.refreshRate||60;this.M=b;this.F=c;this.la=(this.Pd=d)||b||null;this.Gc=this.Y;this.Jd=this.O;this.jc=this.Y/this.ca|0;this.kc=this.O/this.wa|0;1<this.oa&&(this.wa++,this.gb=0,this.qb=!1);b=a.smoothing;(c=Wa.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.C=a.screenRotate)this.C=this.C%
|
||||
360,0<this.C&&(this.C-=360),-90!=this.C?(this.ka("unsupported screen rotation: "+this.C),this.C=0):(this.F.translate(0,this.O),this.F.rotate(this.C*Math.PI/180),this.F.scale(this.O/this.Y,this.Y/this.O));if(this.j=e)if(this.j.ib=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.j.ib){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){le(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(){le(f,null)},!1);break}}if(this.ea=a.fontROM)"json"!=fa(this.ea)&&(this.ea=ja()+"/api/v1/dump?file="+this.ea+"&format=bytes"),va(this.ea,null,!0,function(a,b,c){me(f,a,b,c)});this.Kb={}}A(ie);var ke=0,je={SI1978:1,VT100:2};
|
||||
function Sd(a){a.J=a.ca*a.sa;a.ba=a.wa*a.oa;var b=a.J,c=a.ba;a.w&&(b=a.ba,c=a.J);a.P=0;if(!a.Kd&&(a.P=(a.J*a.Wa>>3)*a.ba,!yb(a.u,a.Va,a.P,3)))return!1;a.P?(a.oc=a.F.createImageData(b,c),a.rc=16/a.Wa|0,ne(a,a.P>>1)):ne(a,(a.ca+1)*a.wa);a.L=document.createElement("canvas");a.L.width=b;a.L.height=c;a.pb=a.L.getContext("2d");a.fa={};a.ma=1<<a.Wa;a.ha=Array(a.ma+2);a.ha[0]=[0,0,0,255];a.ha[1]=[255,255,255,255];1==a.na&&(a.ha[a.ma+0]=[255,255,0,255],a.ha[a.ma+1]=[0,255,0,255]);2==a.na&&(a.tc=60,a.sb=!1,
|
||||
a.Ha=Array(a.ca));return!0}ie.prototype.Ra=function(a,b,c,d){this.A=a;this.u=b;this.b=c;this.I=d;Sd(this);if(this.K=ub(a,"Keyboard")){for(var e in this.Kb)this.K.qa("led",e,this.Kb[e]);this.M&&this.K.qa(this.Pd?"textarea":"canvas","kbd",this.la)}var f=this;this.vc=Kc(this.b,function(){Nc(f)});Lc(this.b,this.vc,1E3/Math.max(this.uc,this.Xa));this.sc=0;this.ea||F(this)};
|
||||
function me(a,b,c,d){if(d)a.ka("Unable to load font ROM (error "+d+": "+b+")");else{cb(a.fb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){w("Empty font ROM: "+b);return}if(1==f.length){w(f[0]);return}if(2048==f.length)a.Ba=f,Td(a);else{a.ka("Unrecognized font data length ("+f.length+")");return}}catch(g){a.ka("Font ROM data error: "+g.message);return}(a.F||a.I)&&F(a)}}
|
||||
function Td(a){a.Ba&&(a.mc=2==a.na,a.fa[96]=[oe(a,a.sa,a.oa),oe(a,a.sa,a.oa,a.sb)],a.fa[64]=[oe(a,2*a.sa,a.oa),oe(a,2*a.sa,a.oa,a.sb)],a.fa[32]=a.fa[0]=[oe(a,2*a.sa,2*a.oa),oe(a,2*a.sa,2*a.oa,a.sb)])}
|
||||
W.tb={l4:W.Oa.ed,l3:W.Oa.dd,l2:W.Oa.cd,l1:W.Oa.bd,locked:W.Oa.fd,local:W.Oa.dc,online:~W.Oa.dc};var be={SI1978:de,VT100:W};
|
||||
ae.prototype.qa=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.N[e]){if("led"==a&&this.u.tb[b])return this.N[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return ee(d,a,!0)},c.onkeyup=function(a){return ee(d,a,!1)},!0;default:if(this.u.Za&&void 0!==this.u.Za[b])return this.N[e]=c,a=function(a,b){return function(c){c.preventDefault();fe(a,b,!0)}}(this,this.u.Za[b]),b=function(a,b){return function(){fe(a,b,!1)}}(this,this.u.Za[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=
|
||||
b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};ae.prototype.Ra=function(a,b,c,d){this.A=a;this.b=c;this.I=d;this.F=ub(a,"ChipSet");Hb(b,this,this.u.Jb);Ub(b,this,this.u.Kb)};ae.prototype.Ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};ae.prototype.Ka=function(a){return a?this.save():!0};W.INIT=[[W.Oa.INIT,W.Jc.INIT,!1,0,-1]];l=ae.prototype;l.reset=function(){this.j=[];this.u.INIT&&!this.restore(this.u.INIT)&&this.ka("reset error")};
|
||||
l.save=function(){var a=new J(this);switch(this.u.Ca){case W.Ca:a.set(0,[this.K,this.H,this.D,this.J,-1])}return a.data()};l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.u.Ca){case de.Ca:return!0;case W.Ca:return this.K=b[0],ge(this,this.K&W.Oa.cc),this.H=b[1],this.D=b[2],this.J=b[3],this.w=b[4],!0}return!1};function ge(a,b){for(var c in a.u.tb){var d=a.N["led-"+c];if(d){var e=a.u.tb[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}}
|
||||
function ee(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=a.u.Yb[e]||e,!a.u.B[e]){for(var f in a.u.Za)if(a.u.Za[f]===e){e=f;break a}e=null}e&&(d=fe(a,e,c),b.preventDefault());return d}
|
||||
function fe(a,b,c){var d;a:{for(d=0;d<a.j.length;d++)if(a.j[d].Ub==b)break a;d=-1}if(c)0>d?a.j.push({Ub:b,Rb:Date.now(),Gb:!1}):(a.j[d].Rb=Date.now(),a.j[d].Gb=!1);else if(0<=d){if(!a.j[d].Gb){var e=a.j[d].Rb;if(e&&100>Date.now()-e)return a.j[d].Gb=!0,he(a),!0}a.j.splice(d,1)}if(a.F){d=0;switch(b){case "1p":d=U.$a.md;break;case "2p":d=U.$a.qd;break;case "coin":d=U.$a.Nc;break;case "left":d=U.$a.od;break;case "right":d=U.$a.pd;break;case "fire":d=U.$a.nd}d&&(a=a.F,b=d,a.H&=~b,c&&(a.H|=b))}return!0}
|
||||
function he(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].Gb){var d=a.j[b].Ub,e=100-(Date.now()-a.j[b].Rb);if(0<e){if(0>c||c>e)c=e}else{fe(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){he(a)},c)}l.Xd=function(a,b){var c=this.H;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=W.B[c.Ub],c&128&&(c&=127)):(this.w=-1,c=W.ad),this.H=c,Id(this.b,1));E(this,a,null,b,"KBDUART.ADDRESS",c);return c};
|
||||
l.le=function(a,b,c){E(this,a,b,c,"KBDUART.STATUS");this.K=b;this.D=!0;this.J=Gc(this.b);ge(this,b&W.Oa.cc);b&W.Oa.xd&&(this.w=0,Id(this.b,1))};W.Jb={130:ae.prototype.Xd};W.Kb={130:ae.prototype.le};Oa(function(){for(var a=D(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new ae(d);gb(d,c)}});
|
||||
function ie(a,b,c,d,e){var f=this;this.nc=Da("Gecko/");var g=["","moz","ms","webkit"];z.call(this,"Video",a,ie,262144);this.Y=a.screenWidth;this.O=a.screenHeight;this.Wa=a.bufferAddr;this.Kd=a.bufferRAM;var h=a.bufferFormat;this.na=h&&je[h.toUpperCase()]||ke;this.ca=a.bufferCols;this.wa=a.bufferRows;this.ic=this.sa=a.cellWidth||1;this.oa=a.cellHeight||1;this.Ba=null;this.mc=!1;this.Xa=a.bufferBits||1;this.Md=a.bufferLeft||0;if(this.w=a.bufferRotate)this.w=this.w%360,0<this.w&&(this.w-=360),-90!=this.w&&
|
||||
(this.ka("unsupported buffer rotation: "+this.w),this.w=0);this.Ya=a.interruptRate;this.uc=a.refreshRate||60;this.M=b;this.F=c;this.la=(this.Pd=d)||b||null;this.Gc=this.Y;this.Jd=this.O;this.jc=this.Y/this.ca|0;this.kc=this.O/this.wa|0;1<this.oa&&(this.wa++,this.ib=0,this.sb=!1);b=a.smoothing;(c=Wa.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.D=a.screenRotate)this.D=this.D%
|
||||
360,0<this.D&&(this.D-=360),-90!=this.D?(this.ka("unsupported screen rotation: "+this.D),this.D=0):(this.F.translate(0,this.O),this.F.rotate(this.D*Math.PI/180),this.F.scale(this.O/this.Y,this.Y/this.O));if(this.j=e)if(this.j.kb=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.j.kb){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){le(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(){le(f,null)},!1);break}}if(this.ea=a.fontROM)"json"!=fa(this.ea)&&(this.ea=ja()+"/api/v1/dump?file="+this.ea+"&format=bytes"),va(this.ea,null,!0,function(a,b,c){me(f,a,b,c)});this.Mb={}}A(ie);var ke=0,je={SI1978:1,VT100:2};
|
||||
function Sd(a){a.J=a.ca*a.sa;a.ba=a.wa*a.oa;var b=a.J,c=a.ba;a.w&&(b=a.ba,c=a.J);a.P=0;if(!a.Kd&&(a.P=(a.J*a.Xa>>3)*a.ba,!yb(a.u,a.Wa,a.P,3)))return!1;a.P?(a.oc=a.F.createImageData(b,c),a.rc=16/a.Xa|0,ne(a,a.P>>1)):ne(a,(a.ca+1)*a.wa);a.L=document.createElement("canvas");a.L.width=b;a.L.height=c;a.rb=a.L.getContext("2d");a.fa={};a.ma=1<<a.Xa;a.ha=Array(a.ma+2);a.ha[0]=[0,0,0,255];a.ha[1]=[255,255,255,255];1==a.na&&(a.ha[a.ma+0]=[255,255,0,255],a.ha[a.ma+1]=[0,255,0,255]);2==a.na&&(a.tc=60,a.ub=!1,
|
||||
a.Ha=Array(a.ca));return!0}ie.prototype.Ra=function(a,b,c,d){this.A=a;this.u=b;this.b=c;this.I=d;Sd(this);if(this.K=ub(a,"Keyboard")){for(var e in this.Mb)this.K.qa("led",e,this.Mb[e]);this.M&&this.K.qa(this.Pd?"textarea":"canvas","kbd",this.la)}var f=this;this.vc=Kc(this.b,function(){Nc(f)});Lc(this.b,this.vc,1E3/Math.max(this.uc,this.Ya));this.sc=0;this.ea||F(this)};
|
||||
function me(a,b,c,d){if(d)a.ka("Unable to load font ROM (error "+d+": "+b+")");else{cb(a.hb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){w("Empty font ROM: "+b);return}if(1==f.length){w(f[0]);return}if(2048==f.length)a.Ba=f,Td(a);else{a.ka("Unrecognized font data length ("+f.length+")");return}}catch(g){a.ka("Font ROM data error: "+g.message);return}(a.F||a.I)&&F(a)}}
|
||||
function Td(a){a.Ba&&(a.mc=2==a.na,a.fa[96]=[oe(a,a.sa,a.oa),oe(a,a.sa,a.oa,a.ub)],a.fa[64]=[oe(a,2*a.sa,a.oa),oe(a,2*a.sa,a.oa,a.ub)],a.fa[32]=a.fa[0]=[oe(a,2*a.sa,2*a.oa),oe(a,2*a.sa,2*a.oa,a.ub)])}
|
||||
function oe(a,b,c,d){var e=8>=a.ic?8:16,f=8<e?15:0,g=a.Ba.length/e,h=!1===d,k={sa:b,oa:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=g/16*c;k.context=k.canvas.getContext("2d");for(var n=k.context.createImageData(b,c),p=0;p<g;p++){for(var q=0,x=q;q<a.oa;q++)for(var v=p*e+(f+q&e-1),v=d&&8==q?255:a.Ba[v],r=0;r<c/a.oa;r++){for(var y=0,H=0,ga=H;H<a.sa;H++){for(var C=v&128>>(7<H?7:H),y=a.mc&&!C&&y?y:C,T=0;T<b/a.sa;T++)h&&(y=!y),pe(a,n,ga,x,y?1:0),ga++;y=C}x++}k.context.putImageData(n,
|
||||
(p&15)*b,(p>>4)*c)}return k}ie.prototype.Ga=function(){return!0};ie.prototype.qa=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Kb[b]=c,!0;switch(b){case "fullScreen":return this.N[b]=c,this.j&&this.j.ib?c.onclick=function(){d.ib()}:c.parentNode.removeChild(c),!0}return!1};
|
||||
ie.prototype.ib=function(){var a=!1;if(this.j){if(this.j.ib){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Y/this.O;b>c&&(a=Math.round(c/b*100)+"%")}this.nc?(this.M.style.width=a,this.M.style.width=a,this.M.style.display="block",this.M.style.margin="auto"):(this.j.style.width=a,this.j.style.height="auto");this.j.style.backgroundColor="black";this.j.ib();a=!0}this.la&&this.la.focus()}return a};
|
||||
function le(a,b){!b&&a.j&&(a.nc?a.M.style.width=a.M.style.height="":a.j.style.width=a.j.style.height="");ib(a,"notifyFullScreen("+b+")")}function ne(a,b){a.qc=b;a.ja=!1;if(void 0===a.G||a.G.length!=a.qc)a.G=Array(a.qc)}function pe(a,b,c,d,e){d=a.w?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.na&&(208<=c&&236>c?e=a.ma+0:28<=c&&72>c&&(e=a.ma+1));a=a.ha[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 Nc(a,b){var c=!0;if(!b){a.Xa&&(120==a.Xa?a.sc&1?(Id(a.b,2),c=!1):Id(a.b,1):Id(a.b,4));if(c&&a.ja&&a.P){for(var d=a.u,e=a.P,f=!0,g=a.Va>>>d.ia;0<e&&g<d.X.length;)d.X[g].Pa&&(d.X[g].Pa=f=!1,d.X[g].Ac=!0),e-=d.Ja,g++;f&&(c=!1)}Lc(a.b,a.vc,1E3/Math.max(a.uc,a.Xa));a.sc++}if(c)if(1<a.sa)switch(a.na){case 2:for(var c=a.Va,d=-1,e=0,f=60==a.tc?2:5,h=g=0,k=-1;e<a.wa;){var n=0,p=c,q=d,x=a.ca;for(96!=q&&(x>>=1);;){var v=Bb(a.u,p++);if(127==(v&127)){var r=Bb(a.u,p++),d=r&96,c=(r&15)<<8|Bb(a.u,p),c=c+
|
||||
(r&16?8192:16384);break}if(n<x)a.Ha[n++]=v;else break}if(f)f--;else{for(;n<a.Ha.length;)a.Ha[n++]=0;if(0<=q)for(p=a.ja&&a.G[g]==x,a.G[g++]=x,x=0;x<n;x++){v=a.Ha[x];if(!p||v!==a.G[g]){a.G[k=g]=v;var r=a,y=a.pb,H=v&127;if(v=r.fa[q][v&128?1:0]){var ga=(H&15)*v.sa,H=(H>>4)*v.oa,C,T,da,X,ta=v.sa,Eb=v.oa;y?(C=x*r.sa,T=e*r.oa,da=r.sa,X=r.oa):(C=x*r.jc,T=e*r.kc,da=r.jc,X=r.kc);v.sa>r.sa&&(C*=2,da*=2);v.oa>r.oa&&(q||(H+=r.oa),Eb=r.oa);y?y.drawImage(v.canvas,ga,H,ta,Eb,C,T,da,X):(C+=0,T+=0,r.F.drawImage(v.canvas,
|
||||
ga,H,ta,Eb,C,T,da,X))}h++}g++}e++}}a.ja=!0;!b&&a.qb&&1==h&&(a.G[k]=-1,h=0);a.qb=!1;(h||b)&&a.pb&&a.F.drawImage(a.L,0,a.gb,a.J,a.ba-a.oa,0,0,a.Gc,a.Jd)}else{e=a.Va;f=e+a.P;k=h=g=0;b=a.J;n=0;c=a.ba;q=d=0;p=a.Wa;x=(1<<p)-1;a.Md&&(p=-p,q=16+p);for(;e<f;){r=Cb(a.u,e);if(a.ja&&r===a.G[g])h+=a.rc;else{a.G[g]=r;(y=q)&&(r=r>>8|(r&255)<<8);h<b&&(b=h);for(v=a.rc;v--;)ga=r>>y&x,pe(a,a.oc,h++,k,ga),y+=p;h>n&&(n=h);k<c&&(c=k);k>=d&&(d=k+1)}e+=2;g++;if(h>=a.J&&(h=0,k++,k>a.ba))break}a.ja=!0;b<a.J&&(e=n-b,d-=c,a.w&&
|
||||
(f=b,g=e,b=c,e=d,c=a.J-(f+g),d=g),a.pb.putImageData(a.oc,0,0,b,c,e,d),a.F.drawImage(a.L,0,0,a.L.width,a.L.height,0,0,a.Y,a.O))}}
|
||||
(p&15)*b,(p>>4)*c)}return k}ie.prototype.Ga=function(){return!0};ie.prototype.qa=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Mb[b]=c,!0;switch(b){case "fullScreen":return this.N[b]=c,this.j&&this.j.kb?c.onclick=function(){d.kb()}:c.parentNode.removeChild(c),!0}return!1};
|
||||
ie.prototype.kb=function(){var a=!1;if(this.j){if(this.j.kb){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Y/this.O;b>c&&(a=Math.round(c/b*100)+"%")}this.nc?(this.M.style.width=a,this.M.style.width=a,this.M.style.display="block",this.M.style.margin="auto"):(this.j.style.width=a,this.j.style.height="auto");this.j.style.backgroundColor="black";this.j.kb();a=!0}this.la&&this.la.focus()}return a};
|
||||
function le(a,b){!b&&a.j&&(a.nc?a.M.style.width=a.M.style.height="":a.j.style.width=a.j.style.height="");ib(a,"notifyFullScreen("+b+")")}function ne(a,b){a.qc=b;a.ja=!1;if(void 0===a.H||a.H.length!=a.qc)a.H=Array(a.qc)}function pe(a,b,c,d,e){d=a.w?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.na&&(208<=c&&236>c?e=a.ma+0:28<=c&&72>c&&(e=a.ma+1));a=a.ha[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 Nc(a,b){var c=!0;if(!b){a.Ya&&(120==a.Ya?a.sc&1?(Id(a.b,2),c=!1):Id(a.b,1):Id(a.b,4));if(c&&a.ja&&a.P){for(var d=a.u,e=a.P,f=!0,g=a.Wa>>>d.ia;0<e&&g<d.X.length;)d.X[g].Pa&&(d.X[g].Pa=f=!1,d.X[g].Ac=!0),e-=d.Ja,g++;f&&(c=!1)}Lc(a.b,a.vc,1E3/Math.max(a.uc,a.Ya));a.sc++}if(c)if(1<a.sa)switch(a.na){case 2:for(var c=a.Wa,d=-1,e=0,f=60==a.tc?2:5,h=g=0,k=-1;e<a.wa;){var n=0,p=c,q=d,x=a.ca;for(96!=q&&(x>>=1);;){var v=Bb(a.u,p++);if(127==(v&127)){var r=Bb(a.u,p++),d=r&96,c=(r&15)<<8|Bb(a.u,p),c=c+
|
||||
(r&16?8192:16384);break}if(n<x)a.Ha[n++]=v;else break}if(f)f--;else{for(;n<a.Ha.length;)a.Ha[n++]=0;if(0<=q)for(p=a.ja&&a.H[g]==x,a.H[g++]=x,x=0;x<n;x++){v=a.Ha[x];if(!p||v!==a.H[g]){a.H[k=g]=v;var r=a,y=a.rb,H=v&127;if(v=r.fa[q][v&128?1:0]){var ga=(H&15)*v.sa,H=(H>>4)*v.oa,C,T,da,X,ta=v.sa,Eb=v.oa;y?(C=x*r.sa,T=e*r.oa,da=r.sa,X=r.oa):(C=x*r.jc,T=e*r.kc,da=r.jc,X=r.kc);v.sa>r.sa&&(C*=2,da*=2);v.oa>r.oa&&(q||(H+=r.oa),Eb=r.oa);y?y.drawImage(v.canvas,ga,H,ta,Eb,C,T,da,X):(C+=0,T+=0,r.F.drawImage(v.canvas,
|
||||
ga,H,ta,Eb,C,T,da,X))}h++}g++}e++}}a.ja=!0;!b&&a.sb&&1==h&&(a.H[k]=-1,h=0);a.sb=!1;(h||b)&&a.rb&&a.F.drawImage(a.L,0,a.ib,a.J,a.ba-a.oa,0,0,a.Gc,a.Jd)}else{e=a.Wa;f=e+a.P;k=h=g=0;b=a.J;n=0;c=a.ba;q=d=0;p=a.Xa;x=(1<<p)-1;a.Md&&(p=-p,q=16+p);for(;e<f;){r=Cb(a.u,e);if(a.ja&&r===a.H[g])h+=a.rc;else{a.H[g]=r;(y=q)&&(r=r>>8|(r&255)<<8);h<b&&(b=h);for(v=a.rc;v--;)ga=r>>y&x,pe(a,a.oc,h++,k,ga),y+=p;h>n&&(n=h);k<c&&(c=k);k>=d&&(d=k+1)}e+=2;g++;if(h>=a.J&&(h=0,k++,k>a.ba))break}a.ja=!0;b<a.J&&(e=n-b,d-=c,a.w&&
|
||||
(f=b,g=e,b=c,e=d,c=a.J-(f+g),d=g),a.rb.putImageData(a.oc,0,0,b,c,e,d),a.F.drawImage(a.L,0,0,a.L.width,a.L.height,0,0,a.Y,a.O))}}
|
||||
Oa(function(){for(var a=D(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=B(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<=xa().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||Wa.aspect);f&&.3<=f&&3.33>=f&&(Na("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");Da("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new ie(d,e,g,f,c);gb(d,c)}});
|
||||
function qe(a){this.fa=+a.adapter;switch(this.fa){case 0:this.ha=0;this.la=2;break;default:w("Unrecognized serial adapter #"+this.fa);return}this.j=this.w=null;this.ja=a.tabSize;this.ea=a.charBOL;this.C=0;this.ba=!1;z.call(this,"SerialPort",a,qe,8388608);var b=a.binding;if("console"==b)this.w="";else{var c;a=re;b&&(void 0===c&&(c="Panel"),(c=fb(c,this.id))&&(b=c.N[b])&&this.qa(null,a,b))}this.G="";this.K=this.M=null;this.exports={connect:this.Cc,receiveData:this.Tb}}A(qe);
|
||||
function qe(a){this.fa=+a.adapter;switch(this.fa){case 0:this.ha=0;this.la=2;break;default:w("Unrecognized serial adapter #"+this.fa);return}this.j=this.w=null;this.ja=a.tabSize;this.ea=a.charBOL;this.D=0;this.ba=!1;z.call(this,"SerialPort",a,qe,8388608);var b=a.binding;if("console"==b)this.w="";else{var c;a=re;b&&(void 0===c&&(c="Panel"),(c=fb(c,this.id))&&(b=c.N[b])&&this.qa(null,a,b))}this.H="";this.K=this.M=null;this.exports={connect:this.Cc,receiveData:this.Tb}}A(qe);
|
||||
var se=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],te=[!1,0,0,133,142,39,238],re="buffer";l=qe.prototype;
|
||||
l.qa=function(a,b,c,d){var e=this;switch(b){case re: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),ue(e,b);return!0},c.onkeypress=function(a){a=a||window.event;ue(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.Tb(d);return!0},
|
||||
!0}return!1};l.Ra=function(a,b,c,d){this.A=a;this.u=b;this.b=c;this.I=d;var e=this;this.ma=Kc(this.b,function(){e.Tb()});this.na=Kc(this.b,function(){e.Fa|=5});this.F=ub(a,"ChipSet");Hb(b,this,ve,this.ha);Ub(b,this,we,this.ha);F(this)};
|
||||
l.Cc=function(){if(!this.K){var a=Ac(this.A,"connection");if(a){var b=a.split("->");if(2==b.length){var c=na(b[0]);if(c!=this.eb)return;b=na(b[1]);if(this.K=eb(b)){var d=this.K.exports;if(d){var e=d.connect;e&&e.call(this.K);if(this.M=d.receiveData){this.status(this.fb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};l.Ga=function(a,b){if(!b)if(this.Cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.Cc=function(){if(!this.K){var a=Ac(this.A,"connection");if(a){var b=a.split("->");if(2==b.length){var c=na(b[0]);if(c!=this.gb)return;b=na(b[1]);if(this.K=eb(b)){var d=this.K.exports;if(d){var e=d.connect;e&&e.call(this.K);if(this.M=d.receiveData){this.status(this.hb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};l.Ga=function(a,b){if(!b)if(this.Cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.Ka=function(a){return a?this.save():!0};l.reset=function(){xe(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.Fa;c[b++]=this.J;c[b++]=this.P;c[b]=this.O;a.set(0,c);return a.data()};l.restore=function(a){return xe(this,a[0])};function xe(a,b){var c=0;b||(b=te);a.L=b[c++];a.Y=b[c++];a.ca=b[c++];a.Fa=b[c++];a.J=b[c++];a.P=b[c++];a.O=b[c];return!0}
|
||||
function ye(a,b){var c=a.O&b;b&15||(c>>=4);b=se[c];c=((a.J&12)>>2)+6;a.J&16&&c++;c+=((a.J&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function ue(a,b){ib(a,"receiveByte("+ca(b)+"), status="+ca(a.Fa));return a.ba||a.Fa&2?!1:(a.Y=b,a.Fa|=2,Id(a.b,a.la),!0)}l.Tb=function(a){null!=a&&(this.G="number"!=typeof a?a:this.G+String.fromCharCode(a));this.G&&(ue(this,this.G.charCodeAt(0))&&(this.G=this.G.substr(1)),this.G&&this.b&&Lc(this.b,this.ma,ye(this,15)));return!0};
|
||||
function ye(a,b){var c=a.O&b;b&15||(c>>=4);b=se[c];c=((a.J&12)>>2)+6;a.J&16&&c++;c+=((a.J&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function ue(a,b){ib(a,"receiveByte("+ca(b)+"), status="+ca(a.Fa));return a.ba||a.Fa&2?!1:(a.Y=b,a.Fa|=2,Id(a.b,a.la),!0)}l.Tb=function(a){null!=a&&(this.H="number"!=typeof a?a:this.H+String.fromCharCode(a));this.H&&(ue(this,this.H.charCodeAt(0))&&(this.H=this.H.substr(1)),this.H&&this.b&&Lc(this.b,this.ma,ye(this,15)));return!0};
|
||||
l.Rd=function(a,b){var c=this.Y;E(this,a,null,b,"DATA",c);this.Fa&=-3;return c};l.Qd=function(a,b){var c=this.Fa;E(this,a,null,b,"STATUS",c);return c};
|
||||
l.be=function(a,b,c){E(this,a,b,c,"DATA");this.ca=b;this.Fa&=-6;ib(this,"transmitByte("+ca(b)+")");if(19==b)this.ba=!0;else if(17==b)this.ba=!1;else if(this.M&&this.M.call(this.K,b),this.j)8==b?(this.j.value=this.j.value.slice(0,-1),0<this.C&&this.C--):(a=(a=oa[b])?"<"+a+">":String.fromCharCode(b),c=a.length,9==b?(b=this.ja||8,c=b-this.C%b,this.ja&&(a=ma("",c))):13==b&&(this.C=c=0,a="\n"),this.ea&&!this.C&&c&&(a=String.fromCharCode(this.ea)+a),this.j.value+=a,this.j.scrollTop=this.j.scrollHeight,
|
||||
this.C+=c);else if(null!=this.w){if(10==b||1024<=this.w.length)this.g(this.w),this.w="";10!=b&&(this.w+=String.fromCharCode(b))}this.b&&Lc(this.b,this.na,ye(this,240))};l.ae=function(a,b,c){E(this,a,b,c,"CONTROL");this.L?(this.P=b,this.P&64&&(this.L=!1)):(this.J=b,this.L=!0)};l.$d=function(a,b,c){E(this,a,b,c,"BAUDRATES");this.O=b};var ve={0:qe.prototype.Rd,1:qe.prototype.Qd},we={0:qe.prototype.be,1:qe.prototype.ae,2:qe.prototype.$d};
|
||||
Oa(function(){for(var a=D(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new qe(d);gb(d,c)}});function ze(a){z.call(this,"Debugger",a,ze);this.Wa=a.base||16;this.ba=this.na=this.J=0;this.P=!1;this.j=-1;this.w=[];this.ea={}}A(ze);var Ae={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};ze.prototype.Nb=function(){return-1};ze.prototype.Ob=function(){};
|
||||
ze.prototype.Gb=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.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};
|
||||
l.be=function(a,b,c){E(this,a,b,c,"DATA");this.ca=b;this.Fa&=-6;ib(this,"transmitByte("+ca(b)+")");if(19==b)this.ba=!0;else if(17==b)this.ba=!1;else if(this.M&&this.M.call(this.K,b),this.j)8==b?(this.j.value=this.j.value.slice(0,-1),0<this.D&&this.D--):(a=(a=oa[b])?"<"+a+">":String.fromCharCode(b),c=a.length,9==b?(b=this.ja||8,c=b-this.D%b,this.ja&&(a=ma("",c))):13==b&&(this.D=c=0,a="\n"),this.ea&&!this.D&&c&&(a=String.fromCharCode(this.ea)+a),this.j.value+=a,this.j.scrollTop=this.j.scrollHeight,
|
||||
this.D+=c);else if(null!=this.w){if(10==b||1024<=this.w.length)this.g(this.w),this.w="";10!=b&&(this.w+=String.fromCharCode(b))}this.b&&Lc(this.b,this.na,ye(this,240))};l.ae=function(a,b,c){E(this,a,b,c,"CONTROL");this.L?(this.P=b,this.P&64&&(this.L=!1)):(this.J=b,this.L=!0)};l.$d=function(a,b,c){E(this,a,b,c,"BAUDRATES");this.O=b};var ve={0:qe.prototype.Rd,1:qe.prototype.Qd},we={0:qe.prototype.be,1:qe.prototype.ae,2:qe.prototype.$d};
|
||||
Oa(function(){for(var a=D(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new qe(d);gb(d,c)}});function ze(a){z.call(this,"Debugger",a,ze);this.Xa=a.base||16;this.ba=this.na=this.J=0;this.P=!1;this.j=-1;this.w=[];this.ea={}}A(ze);var Ae={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};ze.prototype.Pb=function(){return-1};ze.prototype.Qb=function(){};
|
||||
ze.prototype.Ib=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.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 Be(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 Ce(a,b,c){var d;if(b){b=De(a,b);for(var e=0,f=!1,g=b,h=[],k=[],n=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<n.length;){var p=n[e++],q=p.length,p=na(p);if(!p){f=!0;break}p=Ee(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}h.push(p);if(e==n.length)break;var p=n[e++],x=p.length;k.length&&Ae[p]<Ae[k[k.length-1]]&&Be(h,k,1);k.push(p);b=b.substr(q+x)}Be(h,k)&&1==h.length||(f=!0);f?c&&a.g("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Fe(a,null,
|
||||
d))}return d}function De(a,b){for(var c,d=/\{(.*?)\}/;(c=b.match(d))&&!(0<=c[1].indexOf("{"));){var e=Ce(a,c[1]);b=b.replace("{"+c[1]+"}",null!=e?Ge(a,e):"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.ba-a.na}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
|
||||
function Ee(a,b,c,d){var e;null!=b?(e=a.Nb(b),0<=e?e=a.Ob(e):(e=a.ea[b],null==e&&(e=aa(b,a.Wa))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
|
||||
function Ee(a,b,c,d){var e;null!=b?(e=a.Pb(b),0<=e?e=a.Qb(e):(e=a.ea[b],null==e&&(e=aa(b,a.Xa))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
|
||||
function Fe(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=0,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,n=8,p="";n?32<n&&(n=32):n=32;if(null==k||isNaN(k))for(;0<n--;)p="?"+p;else for(;0<n--;)p=(k&1?"1":"0")+p,k>>=1;g=p+g;d>>=8}d=t(c,0,!0)+" "+c+". "+ba(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.g((null!=b?b+": ":"")+d);return e}function He(a,b){if(b)return Fe(a,b,a.ea[b]);var c=0;for(b in a.ea)Fe(a,b,a.ea[b]),c++;return 0<c}
|
||||
function Ge(a,b){switch(a.Wa){case 8:a=ba(b,NaN);break;case 10:a=b.toString();break;default:a=t(b,NaN)}return a}function Ie(a){ze.call(this,a);this.style=Je;this.M=Y();this.Va=Y();this.ca=Y();this.G=[];this.F=this.O=this.C=[];Ke(this);this.ja=0;Le(this);this.wa={};Me(this,a.messages);this.Ba=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Dc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Dc(b,a)})}A(Ie,ze);
|
||||
function Ge(a,b){switch(a.Xa){case 8:a=ba(b,NaN);break;case 10:a=b.toString();break;default:a=t(b,NaN)}return a}function Ie(a){ze.call(this,a);this.style=Je;this.M=Y();this.Wa=Y();this.ca=Y();this.H=[];this.F=this.O=this.D=[];Ke(this);this.ja=0;Le(this);this.wa={};Me(this,a.messages);this.Ba=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Dc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Dc(b,a)})}A(Ie,ze);
|
||||
var Ne={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},
|
||||
Je=8080,Oe="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),Pe="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),
|
||||
Qe="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Re=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,
|
||||
|
|
@ -201,80 +201,80 @@ Qe="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Re=[[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=Ie.prototype;
|
||||
l.Ra=function(a,b,c,d){this.u=b;this.b=c;this.A=a;(a=Ac(a,"messages"))&&Me(this,a);this.Ha=Re;Qd(this,64,function(a){a:{var b=d.u.X,c=a[0],e=a=0,k=b.length;if(c){a=Se(Te(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=Ab[c],p&&d.g(t(p.id)+" %"+t(e<<d.u.ia)+" %%"+t(p.H)+" "+u(p.Ab)+" "+
|
||||
l.Ra=function(a,b,c,d){this.u=b;this.b=c;this.A=a;(a=Ac(a,"messages"))&&Me(this,a);this.Ha=Re;Qd(this,64,function(a){a:{var b=d.u.X,c=a[0],e=a=0,k=b.length;if(c){a=Se(Te(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=Ab[c],p&&d.g(t(p.id)+" %"+t(e<<d.u.ia)+" %%"+t(p.G)+" "+u(p.Cb)+" "+
|
||||
u(p.size)+" "+n),c!=ac&&(c=-1),n=0);a+=d.u.Ja;e++}}});F(this)};
|
||||
l.qa=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="",Dc(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,Fa(c,function(){if(d.ha){var a=d.ha.value;
|
||||
d.ha.value="";Dc(d,a,!0);return!0}return!1}),!0;case "step":return this.N[b]=c,Fa(c,function(a){var b=!1;lb(d,!0)||(kb(d,!0),b=d.mb(a?1:0),kb(d,!1));return b}),!0}return!1};l.zb=function(){this.ha&&this.ha.focus()};function Se(a){a=a&&a.H;null==a&&(a=-1);return a}l.aa=function(a,b){var c=255,d=Se(a);-1!==d&&(c=Bb(this.u,d),b&&Ue(a,b));return c};l.ab=function(a,b){var c=65535,d=Se(a);-1!==d&&(c=Cb(this.u,d),b&&Ue(a,b));return c};
|
||||
l.va=function(a,b,c){var d=Se(a);-1!==d&&(Db(this.u,d,b),c&&Ue(a,c),Ec(this.b,!0))};l.Jb=function(a,b,c){var d=Se(a);if(-1!==d){var e=this.u,f=d&e.u,g=(d&e.w)>>>e.ia;f!=e.u?e.X[g].Wb(f,b&65535,d):(e.X[g++].Bb(f,b&255,d),e.X[g&e.G].Bb(0,b>>8&255,d+1));c&&Ue(a,c);Ec(this.b,!0)}};function Y(a){return{H:a,Qa:!1}}function uf(a){return[a.H,a.Qa]}function vf(a){return{H:a[0],Qa:a[1]}}
|
||||
function Te(a,b,c){var d;c=(c?a.M:a.Va).H;if(void 0!==b){d=b=De(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].Ea[d];if(void 0!==f){d=f.o;void 0!==d&&(e=Y(d));break}}if(d=e)return d;c=Ce(a,b,void 0)}null!=c&&(d=Y(c));return d}function wf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Id=a.Gb(b.Ec=c[2]))}function Ue(a,b){null!=a.H&&(a.H+=b||1)}function Z(a){return t(a,4)}
|
||||
function xf(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.aa(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Me(a,b){a.I=a;a.ta=a.Ld=536870912;a.la=null;a.ma=[];b=a.Gb(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in sb)0<=sa(b,c)&&(a.ta|=sb[c],a.g(c+" messages enabled"))}function Qd(a,b,c){for(var d in sb)if(b==sb[d]){a.wa[d]=c;break}}
|
||||
l.Nb=function(a,b){var c;a=a.toUpperCase();null==b?c=sa(Qe,a):(c=sa(Qe,a.substr(b,2)),0>c&&(c=sa(Qe,a.substr(b,1))));return c};function yf(a,b){var c=0;a=a.Ob(b);if(void 0!==a)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?t(a,c):"??"}
|
||||
l.Ob=function(a){var b;if(0<=a){var c=this.b;switch(a){case 7:b=c.i;break;case 0:b=c.S;break;case 1:b=c.T;break;case 8:b=Vc(c);break;case 2:b=c.U;break;case 3:b=c.V;break;case 9:b=Xc(c);break;case 4:b=c.W;break;case 5:b=c.Z;break;case 10:b=K(c);break;case 6:b=c.aa(K(c));break;case 11:b=c.pa;break;case 12:b=c.R;break;case 13:b=Uc(c);break;case 14:b=Uc(c)&255|c.i<<8}}return b};
|
||||
function zf(a,b){b=De(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Nb(b,c+1),0<=e&&(b=b.substr(0,c)+yf(a,e)+b.substr(c+1+Qe[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Te(a,e))?(d=e+' "'+xf(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Te(a,e))?(Ue(d),d=e+
|
||||
' "'+xf(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Z(Y(this.b.R).H));this.ta&1073741824?this.ma.push(a):this.la&&a==this.la||(this.la=a,this.ta&-2147483648&&(this.ra(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,Mc(a),a.P=0,Ec(a)))};
|
||||
function hb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ta&h)!=h||a.message(b.eb+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+ca(d):"")+")"+(null!=g?": "+ca(g):"")+(null!=e?" at "+Z(e):""))}
|
||||
function Le(a){var b;if(Jd(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.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.L&&a.L.length&&a.g("instruction history buffer freed"),a.fa=0,a.L=[],a.K=[]}l.cb=function(a){if(!Af(this))return!1;this.b.cb(a);return!0};
|
||||
l.mb=function(a,b,c){if(!Af(this))return!1;this.J=0;a||Jd(this)&&Kd(this,this.b.R,0);try{var d=this.b.mb(a);0<d&&(this.J+=d,Ic(this.b,d,!0),Fc(this.b,d),this.ba++)}catch(e){"number"!=typeof e&&(this.J=0,nb(this.b,e.stack||e.message))}!1!==c&&Ec(this.b);this.La(b||!1);return 0<this.J};l.ra=function(a){this.b&&this.b.ra(a)};l.La=function(a){void 0===a&&(a=!0);this.M=Y(this.b.R);a&&1!=this.Y?Bf(this):Cf(this)};
|
||||
function Af(a){var b;if(b=a.b&&mb(a.b))b=a.b,b.D.xa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!lb(a.b)?(a=a.b,a.D.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ga=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Ka=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Le(this);this.ba=this.na=0;this.la=null;this.J=0;this.M=Y(this.b.R);this.D.za=!1;Df(this);a||this.La()};
|
||||
l.save=function(){var a=new J(this);a.set(0,uf(this.M));a.set(1,uf(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=vf(a[b++]),this.ca=vf(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.D.za=!0;this.pb=a;this.qb=b};
|
||||
l.stop=function(a,b){if(this.D.za){this.D.za=!1;this.J=b-this.qb;if(!this.Y){b="stopped";if(this.J){a-=this.pb;var c=0<a?Math.round(1E3*this.J/a):0;b+=" (";Jd(this)&&(b+=this.ba+" opcodes, ",this.na-=this.ba,this.ba=0);b+=this.J+" cycles, "+a+" ms, "+c+" hz)"}else jb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}this.La(!0);this.zb();Df(this,this.b.R)}};function Jd(a){return 1<a.F.length||!!a.ja}
|
||||
function Kd(a,b,c){var d=a.b;if(0<c&&(a.ja&&!--a.ja||jc(a,b,1,a.F)))return!0;0<=c&&a.K.length&&(a.ba++,b=Bb(a.u,b),null!=b&&(a.K[b][1]++,b=a.L[a.fa],b.H=d.R,b.Qa=!1,++a.fa==a.L.length&&(a.fa=0)));return!1}function Sb(a,b,c){a.g("break on input from port "+u(b)+": "+t(c));a.ra(!0)}function Wb(a,b,c){a.g("break on output to port "+u(b)+": "+t(c));a.ra(!0)}
|
||||
function Ke(a){var b,c;a.F=["bp"];if(a.O)for(b=1;b<a.O.length;b++){c=a.O[b];var d=a.u;kc(d.X[Se(c)>>>d.ia],!1)}a.O=["br"];if(a.C)for(b=1;b<a.C.length;b++)c=a.C[b],d=a.u,kc(d.X[Se(c)>>>d.ia],!0);a.C=["bw"];a.Xa=0}l.$a=function(a,b,c){var d=!0;c||Ef(this,a,b,!1,!0);if(a!=this.F){var e=Se(b);if(-1===e)this.g("invalid address: "+Z(b.H)),d=!1;else{var f=this.u;f.X[e>>>f.ia].$a(e&f.u,a==this.C)}}d&&(a.push(b),c?b.Qa=!0:(Ff(this,a,a.length-1,"set"),Le(this)));return d};
|
||||
function Ef(a,b,c,d,e){var f=!1;c=Se(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Se(h)&&(!d||h.Qa)){f=!0;h.Qa||e||Ff(a,b,g,"cleared");b.splice(g,1);b!=a.F&&(d=a.u,kc(d.X[c>>>d.ia],b==a.C));h.Qa||Le(a);break}}return f}function Gf(a,b){for(var c=1;c<b.length;c++)Ff(a,b,c);return b.length-1}function Ff(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.H)+(d?" "+d:c.Ec?' "'+c.Ec+'"':""))}
|
||||
d.ha.value="";Dc(d,a,!0);return!0}return!1}),!0;case "step":return this.N[b]=c,Fa(c,function(a){var b=!1;lb(d,!0)||(kb(d,!0),b=d.ob(a?1:0),kb(d,!1));return b}),!0}return!1};l.Bb=function(){this.ha&&this.ha.focus()};function Se(a){a=a&&a.G;null==a&&(a=-1);return a}l.aa=function(a,b){var c=255,d=Se(a);-1!==d&&(c=Bb(this.u,d),b&&Ue(a,b));return c};l.cb=function(a,b){var c=65535,d=Se(a);-1!==d&&(c=Cb(this.u,d),b&&Ue(a,b));return c};
|
||||
l.va=function(a,b,c){var d=Se(a);-1!==d&&(Db(this.u,d,b),c&&Ue(a,c),Ec(this.b,!0))};l.Lb=function(a,b,c){var d=Se(a);if(-1!==d){var e=this.u,f=d&e.u,g=(d&e.w)>>>e.ia;f!=e.u?e.X[g].Wb(f,b&65535,d):(e.X[g++].Db(f,b&255,d),e.X[g&e.H].Db(0,b>>8&255,d+1));c&&Ue(a,c);Ec(this.b,!0)}};function Y(a){return{G:a,Qa:!1}}function uf(a){return[a.G,a.Qa]}function vf(a){return{G:a[0],Qa:a[1]}}
|
||||
function Te(a,b,c){var d;c=(c?a.M:a.Wa).G;if(void 0!==b){d=b=De(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.H.length;c++){var f=a.H[c].Ea[d];if(void 0!==f){d=f.o;void 0!==d&&(e=Y(d));break}}if(d=e)return d;c=Ce(a,b,void 0)}null!=c&&(d=Y(c));return d}function wf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Id=a.Ib(b.Ec=c[2]))}function Ue(a,b){null!=a.G&&(a.G+=b||1)}function Z(a){return t(a,4)}
|
||||
function xf(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.aa(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Me(a,b){a.I=a;a.ta=a.Ld=536870912;a.la=null;a.ma=[];b=a.Ib(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in sb)0<=sa(b,c)&&(a.ta|=sb[c],a.g(c+" messages enabled"))}function Qd(a,b,c){for(var d in sb)if(b==sb[d]){a.wa[d]=c;break}}
|
||||
l.Pb=function(a,b){var c;a=a.toUpperCase();null==b?c=sa(Qe,a):(c=sa(Qe,a.substr(b,2)),0>c&&(c=sa(Qe,a.substr(b,1))));return c};function yf(a,b){var c=0;a=a.Qb(b);if(void 0!==a)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?t(a,c):"??"}
|
||||
l.Qb=function(a){var b;if(0<=a){var c=this.b;switch(a){case 7:b=c.i;break;case 0:b=c.S;break;case 1:b=c.T;break;case 8:b=Vc(c);break;case 2:b=c.U;break;case 3:b=c.V;break;case 9:b=Xc(c);break;case 4:b=c.W;break;case 5:b=c.Z;break;case 10:b=K(c);break;case 6:b=c.aa(K(c));break;case 11:b=c.pa;break;case 12:b=c.R;break;case 13:b=Uc(c);break;case 14:b=Uc(c)&255|c.i<<8}}return b};
|
||||
function zf(a,b){b=De(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Pb(b,c+1),0<=e&&(b=b.substr(0,c)+yf(a,e)+b.substr(c+1+Qe[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Te(a,e))?(d=e+' "'+xf(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Te(a,e))?(Ue(d),d=e+
|
||||
' "'+xf(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Z(Y(this.b.R).G));this.ta&1073741824?this.ma.push(a):this.la&&a==this.la||(this.la=a,this.ta&-2147483648&&(this.ra(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,Mc(a),a.P=0,Ec(a)))};
|
||||
function hb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ta&h)!=h||a.message(b.gb+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+ca(d):"")+")"+(null!=g?": "+ca(g):"")+(null!=e?" at "+Z(e):""))}
|
||||
function Le(a){var b;if(Jd(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.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.L&&a.L.length&&a.g("instruction history buffer freed"),a.fa=0,a.L=[],a.K=[]}l.fb=function(a){if(!Af(this))return!1;this.b.fb(a);return!0};
|
||||
l.ob=function(a,b,c){if(!Af(this))return!1;this.J=0;a||Jd(this)&&Kd(this,this.b.R,0);try{var d=this.b.ob(a);0<d&&(this.J+=d,Ic(this.b,d,!0),Fc(this.b,d),this.ba++)}catch(e){"number"!=typeof e&&(this.J=0,nb(this.b,e.stack||e.message))}!1!==c&&Ec(this.b);this.La(b||!1);return 0<this.J};l.ra=function(a){this.b&&this.b.ra(a)};l.La=function(a){void 0===a&&(a=!0);this.M=Y(this.b.R);a&&1!=this.Y?Bf(this):Cf(this)};
|
||||
function Af(a){var b;if(b=a.b&&mb(a.b))b=a.b,b.C.xa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!lb(a.b)?(a=a.b,a.C.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ga=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Ka=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Le(this);this.ba=this.na=0;this.la=null;this.J=0;this.M=Y(this.b.R);this.C.za=!1;Df(this);a||this.La()};
|
||||
l.save=function(){var a=new J(this);a.set(0,uf(this.M));a.set(1,uf(this.ca));a.set(2,[this.w,this.P,this.ta]);a.set(3,this.H);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.M=vf(a[b++]),this.ca=vf(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.H=a[3]);return!0};l.start=function(a,b){this.Y||this.g("running");this.C.za=!0;this.rb=a;this.sb=b};
|
||||
l.stop=function(a,b){if(this.C.za){this.C.za=!1;this.J=b-this.sb;if(!this.Y){b="stopped";if(this.J){a-=this.rb;var c=0<a?Math.round(1E3*this.J/a):0;b+=" (";Jd(this)&&(b+=this.ba+" opcodes, ",this.na-=this.ba,this.ba=0);b+=this.J+" cycles, "+a+" ms, "+c+" hz)"}else jb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}this.La(!0);this.Bb();Df(this,this.b.R)}};function Jd(a){return 1<a.F.length||!!a.ja}
|
||||
function Kd(a,b,c){var d=a.b;if(0<c&&(a.ja&&!--a.ja||jc(a,b,1,a.F)))return!0;0<=c&&a.K.length&&(a.ba++,b=Bb(a.u,b),null!=b&&(a.K[b][1]++,b=a.L[a.fa],b.G=d.R,b.Qa=!1,++a.fa==a.L.length&&(a.fa=0)));return!1}function Sb(a,b,c){a.g("break on input from port "+u(b)+": "+t(c));a.ra(!0)}function Wb(a,b,c){a.g("break on output to port "+u(b)+": "+t(c));a.ra(!0)}
|
||||
function Ke(a){var b,c;a.F=["bp"];if(a.O)for(b=1;b<a.O.length;b++){c=a.O[b];var d=a.u;kc(d.X[Se(c)>>>d.ia],!1)}a.O=["br"];if(a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.u,kc(d.X[Se(c)>>>d.ia],!0);a.D=["bw"];a.Ya=0}l.ab=function(a,b,c){var d=!0;c||Ef(this,a,b,!1,!0);if(a!=this.F){var e=Se(b);if(-1===e)this.g("invalid address: "+Z(b.G)),d=!1;else{var f=this.u;f.X[e>>>f.ia].ab(e&f.u,a==this.D)}}d&&(a.push(b),c?b.Qa=!0:(Ff(this,a,a.length-1,"set"),Le(this)));return d};
|
||||
function Ef(a,b,c,d,e){var f=!1;c=Se(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Se(h)&&(!d||h.Qa)){f=!0;h.Qa||e||Ff(a,b,g,"cleared");b.splice(g,1);b!=a.F&&(d=a.u,kc(d.X[c>>>d.ia],b==a.D));h.Qa||Le(a);break}}return f}function Gf(a,b){for(var c=1;c<b.length;c++)Ff(a,b,c);return b.length-1}function Ff(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.G)+(d?" "+d:c.Ec?' "'+c.Ec+'"':""))}
|
||||
function Df(a,b){if(void 0!==b)jc(a,b,1,a.F,!0),a.Y=0;else for(b=1;b<a.F.length;b++){var c=a.F[b];if(c.Qa){if(!Ef(a,a.F,c,!0))break;b=0}}}
|
||||
function jc(a,b,c,d,e){var f=!1;if(!a.Xa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Qa)for(var k=Se(h),n=0;n<c;n++)if(b+n==k){var p,f=!0;h.Qa&&(Ef(a,d,h,!0),e=!0);if(p=h.Id){for(var f=!1,q=0;q<p.length;q++)if(!Hf(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var x=q+1;x<p.length&&p[x].indexOf("else");x++)q++;if(x==p.length){f=!0;break}}a.b.D.za||(f=!0)}if(f){e||Ff(a,d,g,"hit");break}}}a.Xa--;return f}
|
||||
function If(a,b,c,d){for(var e=Y(b.H),f=a.aa(b,1),g=a.Ha[f],h="",k=(8086!=a.style?Oe:Pe)[g[0]],n=g.length-1,p=0,q,x=1;x<=n;x++){var v="";q=g[x];if(void 0!==q&&!(q&16384&&a.style==Je)){var r=q&240;if(r){var y=q&15;y?p=y:q|=p;q&61440||(q|=1==x?8192:4096);if(r&32)a:{v=a;r=q;y=b;switch(r&15){case 1:y=t(v.aa(y,1),2);break;case 2:y=t(v.aa(y,1)<<24>>24,4);break;case 3:y=t(v.ab(y,2),4);break;default:v="imm("+u(r)+")";break a}8086==v.style&&r&64?y="["+y+"]":r&16||(y=(v.style==Je?"$":"0x")+y);v=y}else r&16?
|
||||
(v=(q&3840)>>8,r=Qe[v],8086==a.style&&q&64&&(6==v&&(r="HL"),r="["+r+"]"),v=r):r&128&&(v=(f>>3&7).toString());if(!v||!v.length){h="INVALID";break}0<h.length&&(h+=",");h+=v||"???"}}}f="";g=Z(e.H)+" ";if(-1!==e.H&&-1!==b.H){do if(f+=t(a.aa(e,1),2),null==e.H)break;while(e.H!=b.H)}g+=ma(f,10);g=g+(q&32768?"*":" ")+ma(k,7);h&&(g+=" "+h);c&&(g=ma(g,40)+";"+c,g=a.b.D.hb?g+("cycles="+Gc(a.b).toString()+" cs="+t(a.b.vb)):g+(null!=d?"="+d.toString():""));return g}
|
||||
function jc(a,b,c,d,e){var f=!1;if(!a.Ya++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Qa)for(var k=Se(h),n=0;n<c;n++)if(b+n==k){var p,f=!0;h.Qa&&(Ef(a,d,h,!0),e=!0);if(p=h.Id){for(var f=!1,q=0;q<p.length;q++)if(!Hf(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var x=q+1;x<p.length&&p[x].indexOf("else");x++)q++;if(x==p.length){f=!0;break}}a.b.C.za||(f=!0)}if(f){e||Ff(a,d,g,"hit");break}}}a.Ya--;return f}
|
||||
function If(a,b,c,d){for(var e=Y(b.G),f=a.aa(b,1),g=a.Ha[f],h="",k=(8086!=a.style?Oe:Pe)[g[0]],n=g.length-1,p=0,q,x=1;x<=n;x++){var v="";q=g[x];if(void 0!==q&&!(q&16384&&a.style==Je)){var r=q&240;if(r){var y=q&15;y?p=y:q|=p;q&61440||(q|=1==x?8192:4096);if(r&32)a:{v=a;r=q;y=b;switch(r&15){case 1:y=t(v.aa(y,1),2);break;case 2:y=t(v.aa(y,1)<<24>>24,4);break;case 3:y=t(v.cb(y,2),4);break;default:v="imm("+u(r)+")";break a}8086==v.style&&r&64?y="["+y+"]":r&16||(y=(v.style==Je?"$":"0x")+y);v=y}else r&16?
|
||||
(v=(q&3840)>>8,r=Qe[v],8086==a.style&&q&64&&(6==v&&(r="HL"),r="["+r+"]"),v=r):r&128&&(v=(f>>3&7).toString());if(!v||!v.length){h="INVALID";break}0<h.length&&(h+=",");h+=v||"???"}}}f="";g=Z(e.G)+" ";if(-1!==e.G&&-1!==b.G){do if(f+=t(a.aa(e,1),2),null==e.G)break;while(e.G!=b.G)}g+=ma(f,10);g=g+(q&32768?"*":" ")+ma(k,7);h&&(g+=" "+h);c&&(g=ma(g,40)+";"+c,g=a.b.C.jb?g+("cycles="+Gc(a.b).toString()+" cs="+t(a.b.xb)):g+(null!=d?"="+d.toString():""));return g}
|
||||
function Jf(a,b){switch(b){case "IF":a=a.b.ua&512;break;case "SF":a=ed(a.b);break;case "ZF":a=dd(a.b);break;case "AF":a=cd(a.b);break;case "PF":a=bd(a.b);break;case "CF":a=$c(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Kf(a,b){return Qe[b]+"="+yf(a,b)+" "}function Lf(a){return Kf(a,7)+Kf(a,8)+Kf(a,9)+Kf(a,10)+Kf(a,11)+Jf(a,"IF")+Jf(a,"SF")+Jf(a,"ZF")+Jf(a,"AF")+Jf(a,"PF")+Jf(a,"CF")}l.xc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Mf(a,b,c){var d=[],e=Se(b)>>>0;for(b=0;b<a.G.length;b++){var f=a.G[b],g=f.H>>>0,h=f.Yd;if(e>=g&&e<g+h){e=pa(f.wc,[e-g],a.xc);0<=e?Nf(a,b,e,d):c&&(e=~e,Nf(a,b,e-1,d),Nf(a,b,e,d));break}}return d}function Nf(a,b,c,d){var e={},f=a.G[b].wc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.G[b].Ea[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
|
||||
function Mf(a,b,c){var d=[],e=Se(b)>>>0;for(b=0;b<a.H.length;b++){var f=a.H[b],g=f.G>>>0,h=f.Yd;if(e>=g&&e<g+h){e=pa(f.wc,[e-g],a.xc);0<=e?Nf(a,b,e,d):c&&(e=~e,Nf(a,b,e-1,d),Nf(a,b,e,d));break}}return d}function Nf(a,b,c,d){var e={},f=a.H[b].wc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.H[b].Ea[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
|
||||
function Of(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c=0;if(a.K)if("clear"==b){for(b=0;b<a.K.length;b++)a.K[b]=[b,0];a.g("frequency data cleared");c++}else if(void 0!==b)a.g("unknown frequency command: "+b),c++;else{var d=a.K.slice();d.sort(function(a,b){return b[1]-a[1]});var e=8086!=a.style?Oe:Pe;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.g((e[a.Ha[f][0]]+" ").substr(0,5)+" ("+ca(f)+"): "+g+" times"),c++)}}c||a.g("no frequency data available")}}
|
||||
function Pf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return He(a)||a.g("no variables"),!0;if(!c[2])return He(a,c[1]);if(!c[3])return delete a.ea[c[1]],!0;b=Ce(a,c[3]);return void 0!==b?(a.ea[c[1]]=b,!0):!1}a.g("invalid assignment:"+b);return!1}
|
||||
function Qf(a,b,c){var d=null;if(b=Te(a,b,!0)){var e=Mf(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.H-e[1])&&(g=" + "+u(f)),f=e[0]+" ("+Z(e[1])+")"+g,c&&a.g(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.H)&&(g=" - "+u(f)),f=e[4]+" ("+Z(e[5])+")"+g,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
|
||||
function Rf(a,b){switch(b[1]){case "8080":a.style=Je;break;case "8086":a.style=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.jb=c;break;case "start":a.b.wb=c;break;case "stop":a.b.kb=c;break;default:a.g("unknown cs option");return}void 0!==c&&Cc(a.b);a.g("checksums "+(a.b.D.hb?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Hc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.bb.toFixed(2)+"Mhz")+" ("+
|
||||
function Qf(a,b,c){var d=null;if(b=Te(a,b,!0)){var e=Mf(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.G-e[1])&&(g=" + "+u(f)),f=e[0]+" ("+Z(e[1])+")"+g,c&&a.g(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.G)&&(g=" - "+u(f)),f=e[4]+" ("+Z(e[5])+")"+g,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
|
||||
function Rf(a,b){switch(b[1]){case "8080":a.style=Je;break;case "8086":a.style=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.lb=c;break;case "start":a.b.yb=c;break;case "stop":a.b.mb=c;break;default:a.g("unknown cs option");return}void 0!==c&&Cc(a.b);a.g("checksums "+(a.b.C.jb?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Hc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.eb.toFixed(2)+"Mhz")+" ("+
|
||||
a.b.Sa+"x)");return;case "?":a.g("debugger options:");a.g("\t8080\t\tselect 8080-style mnemonics");a.g("\t8086\t\tselect 8086-style mnemonics");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.g("unknown option: "+b[1]);return}}a.g(a.style+"-style mnemonics enabled")}
|
||||
function Bf(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=Ce(a,b);if(void 0===f)return;switch(e.toUpperCase()){case "A":d.i=f&255;break;case "B":d.S=f&255;break;case "BC":d.S=f>>8&255;case "C":d.T=f&255;break;case "D":d.U=f&255;break;
|
||||
case "DE":d.U=f>>8&255;case "E":d.V=f&255;break;case "H":d.W=f&255;break;case "HL":d.W=f>>8&255;case "L":d.Z=f&255;break;case "SP":d.pa=f&65535;break;case "PC":I(d,f);a.M=Y(d.R);break;case "PS":Sc(d,f);break;case "PSW":Sc(d,f&255|d.ua&-256);d.i=f>>8;break;case "CF":d.da=f?d.da|256:d.da&255;break;case "PF":f?bd(d)||(d.ga^=1):bd(d)&&(d.ga^=1);break;case "AF":d.ya=f?~d.ga&16|d.ya&-17:d.ga&16|d.ya&-17;break;case "ZF":d.da=f?d.da&-256:d.da|255;break;case "SF":f?ed(d)||(d.ga^=192):ed(d)&&(d.ga^=192);break;
|
||||
case "IF":d.ua=f?d.ua|512:d.ua&-513;break;default:a.g("unknown register: "+e);return}Ec(d);a.g("updated registers:")}a.g(Lf(a));c&&(a.M=Y(d.R),Cf(a,Z(a.M.H)))}}function Sf(a,b){b=na(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(zf(a,c[2])):Ce(a,b,!0)}function Tf(a,b,c){var d="t"!=b;c=Ee(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ea(c,function(){return kb(a,!0)&&a.mb(e,d,!1)},function(){Ec(a.b);kb(a,!1)})}
|
||||
function Cf(a,b,c,d){if(b=Te(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Te(a,c,!0);if(!d||d.H<b.H)return;e=d.H-b.H;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=lb(a,!1)||a.Y?a.J:null;var g=null!=f?"cycles":null,h=Mf(a,b),k=b.H;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=If(a,b,g,f);a.g(f);a.M=b;e-=b.H-k;c++}}}
|
||||
l.Gb=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 Hf(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.H)),a.M=a.ca,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.la=null;if(mb(a)&&0<b.length){a.P&&(b="a "+Z(a.ca.H)+" "+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=Te(a,f[1],!0);if(p)if(a.ca=
|
||||
p,void 0===f[2])a.g("begin assemble at "+Z(p.H)),a.P=!0,Ec(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(If(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 H=v.charAt(1);if("l"==H){var ga;ga=0+Gf(a,a.F);ga+=Gf(a,a.O);(ga+=Gf(a,a.C))||a.g("no breakpoints")}else if("n"==H)a.ja=Ee(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=Te(a,r,!0),!C))break a;r=u(C.H);"c"==H?null==C.H?(Ke(a),a.g("all breakpoints cleared")):Ef(a,a.F,C)||Ef(a,a.O,C)||Ef(a,a.C,C)||a.g("breakpoint missing: "+Z(C.H)):
|
||||
"i"==H?a.g("breakpoint "+(Gb(a.u,C.H)?"enabled":"cleared")+": port "+r+" (input)"):"o"==H?a.g("breakpoint "+(Tb(a.u,C.H)?"enabled":"cleared")+": port "+r+" (output)"):null!=C.H&&(wf(a,C,y),"p"==H?a.$a(a.F,C):"r"==H?a.$a(a.O,C):"w"==H?a.$a(a.C,C):a.g("unknown breakpoint command: "+H))}}}break;case "c":a.Ia&&(a.Ia.value="");break;case "d":a:{var T,da=f[0],X=f[1],ta=f[2],Eb=f[3];if("?"==X){var ob="";for(T in sb)a.wa[T]&&(ob&&(ob+=","),ob+=T);ob+=",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");ob.length&&a.g("dump extension commands:\n\t"+ob)}else if("state"==X){var Ve=Uf(a.A,!0);"console"==ta?console.log(Ve):(a.Ia&&(a.Ia.value=""),a.g(Ve))}else if("symbols"==X)for(var kd=0;kd<a.G.length;kd++){var ld=a.G[kd],pb;for(pb in ld.Ea)if("."!=pb.charAt(0)){var We=ld.Ea[pb].o;if(void 0!==We){var Xe=ld.Ea[pb].l;Xe&&(pb=Xe);a.g(Z(We)+" "+pb)}}}else{if("d"==
|
||||
da){for(T in sb)if(f[1]==T){var Ye=a.wa[T];Ye?(f.shift(),f.shift(),Ye(f)):a.g("no dump registered for "+X);break a}X||(da=a.sb||"db")}else a.sb=da;if("dh"==da){var Ze=X,$e=ta,af="",bf=0,ua=a.fa,Ga=a.L;if(Ga.length){var ia=+Ze||a.gb,Ib=+$e||10;isNaN(ia)?ia=Ib:af="more ";ia>Ga.length&&(a.g("note: only "+Ga.length+" available"),ia=Ga.length);ua-=ia;0>ua&&(null==Ga[Ga.length-1].H?(ia=ua+ia,ua=0):ua+=Ga.length);var md=[];"call"==$e&&(Ib=1E5,md=["CALL"]);for(void 0!==Ze&&a.g(ia+" instructions earlier:");0<
|
||||
Ib&&ua!=a.fa;){var cf=Ga[ua++];if(null==cf.H)break;var Jb=Y(cf.H),lg=ia--,df=If(a,Jb,"history",lg);(!md.length||0<=df.indexOf(md[0]))&&a.g(df);Jb.Mb&&(ua+=Jb.Mb,Ib-=Jb.Mb,ia-=Jb.Mb);ua>=Ga.length&&(ua=0);a.gb=ia;bf++;Ib--}}bf||(a.g("no "+af+"history available"),a.gb=void 0)}else{var oc=Te(a,X);if(oc){var pc=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Eb),pc=Ee(a,ta)>>>0,65536<pc&&(pc=65536));for(var Kb="",qc="dd"==da?4:"dw"==da?2:1,rc=qc*pc||128,mg=rc+15>>4||1;mg--&&0<rc;){var sc=0,nd=0,Lb,od="",
|
||||
ef="",X=Z(oc.H);for(Lb=16;0<Lb&&0<rc;Lb--){var tc=a.aa(oc,1),sc=sc|tc<<(nd++<<3);nd==qc&&(od+=t(sc,2*qc),od+=1==qc?9==Lb?"-":" ":" ",sc=nd=0);ef+=32<=tc&&128>tc?String.fromCharCode(tc):".";rc--}Kb&&(Kb+="\n");Kb+=X+" "+od+(Lb?"":" "+ef)}Kb&&a.g(Kb);a.Va=oc}}}}break;case "e":if("else"==f[0])break;var uc=1,ff=255,gf=a.aa,hf=a.va;"ew"==f[0]&&(uc=2,ff=65535,gf=a.ab,hf=a.Jb);var jf=uc<<1,kf=f[1];if(null==kf)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=Te(a,kf);if(vc)for(var wc=2;wc<f.length;wc++){var Mb=Ce(a,f[wc]);if(void 0===Mb){a.g("unrecognized value: "+f[wc]);break}Mb&~ff&&a.g("warning: "+t(Mb)+" exceeds "+uc+"-byte value");var ng=gf.call(a,vc);a.g("changing "+Z(vc.H)+" from "+t(ng,jf,!0)+" to "+t(Mb,jf,!0));hf.call(a,vc,Mb,uc)}}break;case "f":Of(a,f[1]);break;case "g":a:{var lf=f[1],og=b;if(void 0!==lf){var pd=Te(a,lf,!0);if(!pd)break a;wf(a,pd,og);a.$a(a.F,pd,!0)}a.cb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;
|
||||
case "h":a:{var qd;if(a.D.za)qd="halting",a.ra();else{if(lb(a,!0))break a;qd="already halted"}c||a.g(qd)}break;case "i":if("if"==f[0]){var rd;var Nb=b.substr(2),Nb=na(Nb);Ce(a,Nb)?(c||a.g("true: "+Nb),rd=!0):(c||a.g("false: "+Nb),rd=!1);rd||(d=!1);break}if("int"==f[0]){var xc;var pg=f[1];if(a.b.ua&512){var sd=Ce(a,pg);null==sd?xc=!1:(a.g("requesting interrupt level "+sd),Id(a.b,sd),xc=!0)}else a.g("interrupts disabled (use rif=1 to enable)"),xc=!1;xc||(d=!1);break}var td=f[1];if(td&&"?"!=td){var ud=
|
||||
Ee(a,td);if(void 0!==ud){var qg=Rb(a.u,ud);a.g(u(ud)+": "+ca(qg))}}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 rg=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var vd=0,mf=Y(),Ob=Y(a.b.pa);for(a.g("stack trace for "+Z(Ob.H));10>vd;){for(var Za=null,sg=256;65536>Ob.H>>>0;){mf.H=a.ab(Ob,2);if(null==Ob.H||!sg--)break;for(var tg=a,yc=mf,nf=
|
||||
null,Pb=yc.H,of=Pb,wd=1;6>=wd&&Pb;wd++){if(2<wd){yc.H=Pb;var zc=If(tg,yc);if(0<=zc.indexOf("CALL")){var pf=zc.indexOf(" ");if(Pb+(zc.indexOf(" ",pf+1)-pf-1)/2==of){nf=zc;break}}}Pb--}yc.H=of;if(Za=nf)break}if(!Za||null==Za)break;var qf=null;if("ks"==rg){var rf=Za.match(/[0-9A-F]+$/);rf&&(qf=Qf(a,rf[0]))}Za=ma(Za,50)+" ;"+(qf||"stack="+Z(Ob.H));a.g(Za);vd++}vd||a.g("no return addresses found")}break;case "l":"ln"==f[0]&&Qf(a,f[1],!0);break;case "m":a:{var Ha,Ia=null,N=f[1];"?"==N&&(N=void 0);if(void 0!==
|
||||
case "IF":d.ua=f?d.ua|512:d.ua&-513;break;default:a.g("unknown register: "+e);return}Ec(d);a.g("updated registers:")}a.g(Lf(a));c&&(a.M=Y(d.R),Cf(a,Z(a.M.G)))}}function Sf(a,b){b=na(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(zf(a,c[2])):Ce(a,b,!0)}function Tf(a,b,c){var d="t"!=b;c=Ee(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ea(c,function(){return kb(a,!0)&&a.ob(e,d,!1)},function(){Ec(a.b);kb(a,!1)})}
|
||||
function Cf(a,b,c,d){if(b=Te(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Te(a,c,!0);if(!d||d.G<b.G)return;e=d.G-b.G;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=lb(a,!1)||a.Y?a.J:null;var g=null!=f?"cycles":null,h=Mf(a,b),k=b.G;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=If(a,b,g,f);a.g(f);a.M=b;e-=b.G-k;c++}}}
|
||||
l.Ib=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 Hf(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.G)),a.M=a.ca,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.la=null;if(mb(a)&&0<b.length){a.P&&(b="a "+Z(a.ca.G)+" "+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=Te(a,f[1],!0);if(p)if(a.ca=
|
||||
p,void 0===f[2])a.g("begin assemble at "+Z(p.G)),a.P=!0,Ec(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(If(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 H=v.charAt(1);if("l"==H){var ga;ga=0+Gf(a,a.F);ga+=Gf(a,a.O);(ga+=Gf(a,a.D))||a.g("no breakpoints")}else if("n"==H)a.ja=Ee(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=Te(a,r,!0),!C))break a;r=u(C.G);"c"==H?null==C.G?(Ke(a),a.g("all breakpoints cleared")):Ef(a,a.F,C)||Ef(a,a.O,C)||Ef(a,a.D,C)||a.g("breakpoint missing: "+Z(C.G)):
|
||||
"i"==H?a.g("breakpoint "+(Gb(a.u,C.G)?"enabled":"cleared")+": port "+r+" (input)"):"o"==H?a.g("breakpoint "+(Tb(a.u,C.G)?"enabled":"cleared")+": port "+r+" (output)"):null!=C.G&&(wf(a,C,y),"p"==H?a.ab(a.F,C):"r"==H?a.ab(a.O,C):"w"==H?a.ab(a.D,C):a.g("unknown breakpoint command: "+H))}}}break;case "c":a.Ia&&(a.Ia.value="");break;case "d":a:{var T,da=f[0],X=f[1],ta=f[2],Eb=f[3];if("?"==X){var ob="";for(T in sb)a.wa[T]&&(ob&&(ob+=","),ob+=T);ob+=",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");ob.length&&a.g("dump extension commands:\n\t"+ob)}else if("state"==X){var Ve=Uf(a.A,!0);"console"==ta?console.log(Ve):(a.Ia&&(a.Ia.value=""),a.g(Ve))}else if("symbols"==X)for(var kd=0;kd<a.H.length;kd++){var ld=a.H[kd],pb;for(pb in ld.Ea)if("."!=pb.charAt(0)){var We=ld.Ea[pb].o;if(void 0!==We){var Xe=ld.Ea[pb].l;Xe&&(pb=Xe);a.g(Z(We)+" "+pb)}}}else{if("d"==
|
||||
da){for(T in sb)if(f[1]==T){var Ye=a.wa[T];Ye?(f.shift(),f.shift(),Ye(f)):a.g("no dump registered for "+X);break a}X||(da=a.ub||"db")}else a.ub=da;if("dh"==da){var Ze=X,$e=ta,af="",bf=0,ua=a.fa,Ga=a.L;if(Ga.length){var ia=+Ze||a.ib,Ib=+$e||10;isNaN(ia)?ia=Ib:af="more ";ia>Ga.length&&(a.g("note: only "+Ga.length+" available"),ia=Ga.length);ua-=ia;0>ua&&(null==Ga[Ga.length-1].G?(ia=ua+ia,ua=0):ua+=Ga.length);var md=[];"call"==$e&&(Ib=1E5,md=["CALL"]);for(void 0!==Ze&&a.g(ia+" instructions earlier:");0<
|
||||
Ib&&ua!=a.fa;){var cf=Ga[ua++];if(null==cf.G)break;var Jb=Y(cf.G),lg=ia--,df=If(a,Jb,"history",lg);(!md.length||0<=df.indexOf(md[0]))&&a.g(df);Jb.Ob&&(ua+=Jb.Ob,Ib-=Jb.Ob,ia-=Jb.Ob);ua>=Ga.length&&(ua=0);a.ib=ia;bf++;Ib--}}bf||(a.g("no "+af+"history available"),a.ib=void 0)}else{var oc=Te(a,X);if(oc){var pc=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Eb),pc=Ee(a,ta)>>>0,65536<pc&&(pc=65536));for(var Kb="",qc="dd"==da?4:"dw"==da?2:1,rc=qc*pc||128,mg=rc+15>>4||1;mg--&&0<rc;){var sc=0,nd=0,Lb,od="",
|
||||
ef="",X=Z(oc.G);for(Lb=16;0<Lb&&0<rc;Lb--){var tc=a.aa(oc,1),sc=sc|tc<<(nd++<<3);nd==qc&&(od+=t(sc,2*qc),od+=1==qc?9==Lb?"-":" ":" ",sc=nd=0);ef+=32<=tc&&128>tc?String.fromCharCode(tc):".";rc--}Kb&&(Kb+="\n");Kb+=X+" "+od+(Lb?"":" "+ef)}Kb&&a.g(Kb);a.Wa=oc}}}}break;case "e":if("else"==f[0])break;var uc=1,ff=255,gf=a.aa,hf=a.va;"ew"==f[0]&&(uc=2,ff=65535,gf=a.cb,hf=a.Lb);var jf=uc<<1,kf=f[1];if(null==kf)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=Te(a,kf);if(vc)for(var wc=2;wc<f.length;wc++){var Mb=Ce(a,f[wc]);if(void 0===Mb){a.g("unrecognized value: "+f[wc]);break}Mb&~ff&&a.g("warning: "+t(Mb)+" exceeds "+uc+"-byte value");var ng=gf.call(a,vc);a.g("changing "+Z(vc.G)+" from "+t(ng,jf,!0)+" to "+t(Mb,jf,!0));hf.call(a,vc,Mb,uc)}}break;case "f":Of(a,f[1]);break;case "g":a:{var lf=f[1],og=b;if(void 0!==lf){var pd=Te(a,lf,!0);if(!pd)break a;wf(a,pd,og);a.ab(a.F,pd,!0)}a.fb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;
|
||||
case "h":a:{var qd;if(a.C.za)qd="halting",a.ra();else{if(lb(a,!0))break a;qd="already halted"}c||a.g(qd)}break;case "i":if("if"==f[0]){var rd;var Nb=b.substr(2),Nb=na(Nb);Ce(a,Nb)?(c||a.g("true: "+Nb),rd=!0):(c||a.g("false: "+Nb),rd=!1);rd||(d=!1);break}if("int"==f[0]){var xc;var pg=f[1];if(a.b.ua&512){var sd=Ce(a,pg);null==sd?xc=!1:(a.g("requesting interrupt level "+sd),Id(a.b,sd),xc=!0)}else a.g("interrupts disabled (use rif=1 to enable)"),xc=!1;xc||(d=!1);break}var td=f[1];if(td&&"?"!=td){var ud=
|
||||
Ee(a,td);if(void 0!==ud){var qg=Rb(a.u,ud);a.g(u(ud)+": "+ca(qg))}}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 rg=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var vd=0,mf=Y(),Ob=Y(a.b.pa);for(a.g("stack trace for "+Z(Ob.G));10>vd;){for(var Za=null,sg=256;65536>Ob.G>>>0;){mf.G=a.cb(Ob,2);if(null==Ob.G||!sg--)break;for(var tg=a,yc=mf,nf=
|
||||
null,Pb=yc.G,of=Pb,wd=1;6>=wd&&Pb;wd++){if(2<wd){yc.G=Pb;var zc=If(tg,yc);if(0<=zc.indexOf("CALL")){var pf=zc.indexOf(" ");if(Pb+(zc.indexOf(" ",pf+1)-pf-1)/2==of){nf=zc;break}}}Pb--}yc.G=of;if(Za=nf)break}if(!Za||null==Za)break;var qf=null;if("ks"==rg){var rf=Za.match(/[0-9A-F]+$/);rf&&(qf=Qf(a,rf[0]))}Za=ma(Za,50)+" ;"+(qf||"stack="+Z(Ob.G));a.g(Za);vd++}vd||a.g("no return addresses found")}break;case "l":"ln"==f[0]&&Qf(a,f[1],!0);break;case "m":a:{var Ha,Ia=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)Ia=!0,N=null;else if("off"==N)Ia=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(Ha in sb)if(N==Ha){Ra=sb[Ha];Ia=!!(a.ta&Ra);break}if(!Ra){a.g("unknown message category: "+N);break a}}if(Ra)if("on"==f[2])a.ta|=Ra,Ia=!0;else if("off"==f[2]&&(a.ta&=~Ra,Ia=!1,1073741824==Ra)){for(var xd=0;xd<a.ma.length;xd++)a.g(a.ma[xd]);a.ma=[]}}var ug=0,Qb="";for(Ha in sb)if(!N||N==Ha){var vg=!!(a.ta&sb[Ha]);if(null===Ia||Ia==vg)Qb&&(Qb+=
|
||||
","),++ug%10||(Qb+="\n\t"),"key"==Ha&&(Ha="keys"),Qb+=Ha}void 0===N&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Ia?Ia?"messages on: ":"messages off: ":"message categories:\n\t")+(Qb||"none"));Le(a)}break;case "o":var yd=f[1],wg=f[2];if(yd&&"?"!=yd){var zd=Ee(a,yd,"port #"),Ad=Ee(a,wg);void 0!==zd&&void 0!==Ad&&(Vb(a.u,zd,Ad),a.g(u(zd)+": "+ca(Ad)))}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]){Sf(a,b.substr(5));break}var sf="pr"==f[0]?1:0,xg=1+sf;if(a.Y)a.g("step in progress");else{var Bd=Y(a.b.R);switch(a.aa(Bd)){case 205:a.Y=xg,Ue(Bd,3)}a.Y?(a.$a(a.F,Bd,!0),a.cb()||(a.A&&a.A.zb(),a.Y=0)):Tf(a,sf?"tr":"t")}break;case "r":if("reset"==b){a.A&&a.A.reset();break}Bf(a,f);break;case "s":Rf(a,f);break;case "t":Tf(a,f[0],f[1]);break;case "u":Cf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Pf(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.30.1 ("+a.b.Zd+",RELEASE"+
|
||||
(qb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(xa());break;case "?":if(f[1]){Sf(a,b.substr(1));break}var Cd="commands:",Dd;for(Dd in Ne)Cd+="\n"+ma(Dd,9)+Ne[Dd];Jd(a)||(Cd+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Cd);break;default:a.g("unknown command: "+b),d=!1}}}catch(tf){a.g("debugger error: "+(tf.stack||tf.message)),d=!1}return d}function Dc(a,b,c){b=a.Gb(b,c);for(var d in b)if(!Hf(a,b[+d]))return!1;return!0}
|
||||
break;case "p":if("print"==f[0]){Sf(a,b.substr(5));break}var sf="pr"==f[0]?1:0,xg=1+sf;if(a.Y)a.g("step in progress");else{var Bd=Y(a.b.R);switch(a.aa(Bd)){case 205:a.Y=xg,Ue(Bd,3)}a.Y?(a.ab(a.F,Bd,!0),a.fb()||(a.A&&a.A.Bb(),a.Y=0)):Tf(a,sf?"tr":"t")}break;case "r":if("reset"==b){a.A&&a.A.reset();break}Bf(a,f);break;case "s":Rf(a,f);break;case "t":Tf(a,f[0],f[1]);break;case "u":Cf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Pf(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.30.1 ("+a.b.Zd+",RELEASE"+
|
||||
(qb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(xa());break;case "?":if(f[1]){Sf(a,b.substr(1));break}var Cd="commands:",Dd;for(Dd in Ne)Cd+="\n"+ma(Dd,9)+Ne[Dd];Jd(a)||(Cd+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Cd);break;default:a.g("unknown command: "+b),d=!1}}}catch(tf){a.g("debugger error: "+(tf.stack||tf.message)),d=!1}return d}function Dc(a,b,c){b=a.Ib(b,c);for(var d in b)if(!Hf(a,b[+d]))return!1;return!0}
|
||||
Oa(function(){for(var a=D(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Ie(d);gb(d,c)}});
|
||||
function Vf(a,b,c){z.call(this,"Computer",a,Vf,67108864);this.D.xa=!1;Wf(this,b);this.O=Ac(this,"autoPower",a);this.w=0;this.ea=a.busWidth||a.buswidth;this.A=Xf;this.L=null;this.K=this.ba=!1;this.fa=Ac(this,"url")||"";(Math.random()+.1).toString(36);this.j=Yf(this);if(this.b=fb("CPU",this.id)){this.I=fb("Debugger",this.id);this.G=[];for(b=null;b=ub(this,"Video",b);)this.G.push(b);this.u=new wb({id:this.fb+".bus",busWidth:this.ea},this.b,this.I);var d,e=db(this.id);if((this.F=fb("Panel",this.id))&&
|
||||
function Vf(a,b,c){z.call(this,"Computer",a,Vf,67108864);this.C.xa=!1;Wf(this,b);this.O=Ac(this,"autoPower",a);this.w=0;this.ea=a.busWidth||a.buswidth;this.A=Xf;this.L=null;this.K=this.ba=!1;this.fa=Ac(this,"url")||"";(Math.random()+.1).toString(36);this.j=Yf(this);if(this.b=fb("CPU",this.id)){this.I=fb("Debugger",this.id);this.H=[];for(b=null;b=ub(this,"Video",b);)this.H.push(b);this.u=new wb({id:this.hb+".bus",busWidth:this.ea},this.b,this.I);var d,e=db(this.id);if((this.F=fb("Panel",this.id))&&
|
||||
this.F.Ia)for(b=0;b<e.length;b++)d=e[b],d.ka=this.F.ka,d.g=this.F.g,d.Ia=this.F.Ia;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.Ra&&d.Ra(this,this.u,this.b,this.I);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.J=d:this.A=parseInt(d,10));var f;if(a=Ac(this,"state")||(f=!0,a.state))b=this.P=a,f||(this.K=!0,this.A=Xf),this.A&&(this.M=new J(this,"1.30.1"),Zf(this.M)?
|
||||
b=null:delete this.M);!b&&this.A&&(b=$f(this))&&(this.K=!0);if(b){var g=this;va(b,null,!0,function(a,b,c){c?(g.J=null,g.K=!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&&ag(this,this.xb)}else w("Unable to find CPU component")}A(Vf);var Xf=0;function Wf(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}
|
||||
b=null:delete this.M);!b&&this.A&&(b=$f(this))&&(this.K=!0);if(b){var g=this;va(b,null,!0,function(a,b,c){c?(g.J=null,g.K=!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&&ag(this,this.zb)}else w("Unable to find CPU component")}A(Vf);var Xf=0;function Wf(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 Ac(a,b,c){var d=b.toLowerCase(),d=Wa[b]||Wa[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 ag(a,b,c){for(var d=db(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!mb(f)){mb(f,function(){ag(a,b,c)});return}}b.call(a,c)}
|
||||
function bg(a,b){var c=new J(a,"1.30.1","validate");if(Zf(c)&&cg(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=Vf.prototype;
|
||||
l.xb=function(a){void 0===a&&(a=this.A||(this.L?1:Xf));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>Xf){if(Zf(d,this.L)){this.C=new J(this,"1.30.1","failsafe");Zf(this.C)&&(dg(this,d),a=2,eg(this.C));this.C.set("timestamp",ra());fg(this.C);var e=this.A&&!this.K;if(1==a||ya("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=cg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Zf(d,g):("error"==
|
||||
l.zb=function(a){void 0===a&&(a=this.A||(this.L?1:Xf));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>Xf){if(Zf(d,this.L)){this.D=new J(this,"1.30.1","failsafe");Zf(this.D)&&(dg(this,d),a=2,eg(this.D));this.D.set("timestamp",ra());fg(this.D);var e=this.A&&!this.K;if(1==a||ya("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=cg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Zf(d,g):("error"==
|
||||
f&&"no machine state"!=g?(this.ka("Error: "+g),"unable to verify user"==g&&(Ca("user",""),this.j=null)):this.g(f+": "+g),eg(d),Zf(d)?(c=cg(d),e=!0):c=!1))}e&&bg(this,c?d:null)}else 2==a&&d.clear()}else bg(this);delete this.L;delete this.M}e=db(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=gg(this,g,d,b,c));b=[d,a,c];-1!=a?ag(this,this.zc,b):this.zc(b)}};
|
||||
function gg(a,b,c,d,e){if(!b.D.xa){b.D.xa=!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&&(w("Unable to restore state for "+b.type),a.P&&!a.ba?(c.clear(),a.A=Xf,window&&window.location.reload()):a.Y=!0,b.Ga(null),e=!1)}if(!d&&b.hc)for(a=b.hc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
l.zc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ha=!0;this.D.xa=!0;var d=this.N.power;d&&(d.textContent="Shutdown");this.b&&(gg(this,this.b,b,c,a),this.b.tb());this.Y&&(dg(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
|
||||
function gg(a,b,c,d,e){if(!b.C.xa){b.C.xa=!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&&(w("Unable to restore state for "+b.type),a.P&&!a.ba?(c.clear(),a.A=Xf,window&&window.location.reload()):a.Y=!0,b.Ga(null),e=!1)}if(!d&&b.hc)for(a=b.hc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
l.zc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ha=!0;this.C.xa=!0;var d=this.N.power;d&&(d.textContent="Shutdown");this.b&&(gg(this,this.b,b,c,a),this.b.vb());this.Y&&(dg(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.w=0};
|
||||
function dg(a,b){if(ya("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.j||"";b=b.toString();var d={app:"PC8080",ver:"1.30.1"};d.url=a.fa;d.user=c;d.type="bug";d.data=b;va("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Uf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new J(a,"1.30.1"),g=new J(a,"1.30.1","validate"),h=ra();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",xa());a.b&&a.b.Ka&&(c&&a.b.ra(),d=a.b.Ka(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.D.xa=!1,!1===d&&(e=null)));for(var h=db(a.id),k=0;k<h.length;k++){var n=h[k];n.D.xa&&(n.Ka&&(d=n.Ka(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.D.xa=!1,!1===
|
||||
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.j&&hg(a,a.j,f.toString()),fg(g)&&fg(f)||(e=null,d=h=!0)):a.A&&(d=!0,h=3==a.A),d&&f.clear(h)):e=f.toString());c&&(a.D.xa=!1,b=a.N.power)&&(b.textContent="Power");a.w=0;return e}l.reset=function(){this.u&&this.u.reset&&(ib(this,"Resetting "+this.u.type),this.u.reset());for(var a=db(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&(ib(this,"Resetting "+c.type),c.reset())}};
|
||||
function Uf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new J(a,"1.30.1"),g=new J(a,"1.30.1","validate"),h=ra();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",xa());a.b&&a.b.Ka&&(c&&a.b.ra(),d=a.b.Ka(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.C.xa=!1,!1===d&&(e=null)));for(var h=db(a.id),k=0;k<h.length;k++){var n=h[k];n.C.xa&&(n.Ka&&(d=n.Ka(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.C.xa=!1,!1===
|
||||
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.j&&hg(a,a.j,f.toString()),fg(g)&&fg(f)||(e=null,d=h=!0)):a.A&&(d=!0,h=3==a.A),d&&f.clear(h)):e=f.toString());c&&(a.C.xa=!1,b=a.N.power)&&(b.textContent="Power");a.w=0;return e}l.reset=function(){this.u&&this.u.reset&&(ib(this,"Resetting "+this.u.type),this.u.reset());for(var a=db(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&(ib(this,"Resetting "+c.type),c.reset())}};
|
||||
l.start=function(a,b){for(var c=db(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};l.stop=function(a,b){for(var c=db(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
||||
l.qa=function(a,b,c){var d=this;switch(b){case "power":return this.N[b]=c,c.onclick=function(){d.w||(d.D.xa?Uf(d,!1,!0):ag(d,d.xb))},!0;case "reset":return this.N[b]=c,c.onclick=function(){if(d.D.xa&&!d.w)if(d.A&&!d.J){var a=ya("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Uf(d,a,!0);!a&&d.P?window&&window.location.reload():d.xb(Xf)}else d.reset(),d.b&&d.b.tb()},!0;case "save":if(ha())c.parentNode.removeChild(c);else return this.N[b]=
|
||||
l.qa=function(a,b,c){var d=this;switch(b){case "power":return this.N[b]=c,c.onclick=function(){d.w||(d.C.xa?Uf(d,!1,!0):ag(d,d.zb))},!0;case "reset":return this.N[b]=c,c.onclick=function(){if(d.C.xa&&!d.w)if(d.A&&!d.J){var a=ya("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Uf(d,a,!0);!a&&d.P?window&&window.location.reload():d.zb(Xf)}else d.reset(),d.b&&d.b.vb()},!0;case "save":if(ha())c.parentNode.removeChild(c);else return this.N[b]=
|
||||
c,c.onclick=function(){var a=Yf(d,!0);if(a){var b=!!(d.A&&!d.J||d.P),c=Uf(d,b);b?hg(d,a,c):d.ka("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Yf(a,b){var c=a.j;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=ig(a,c))||a.ka("The user ID is invalid.")):b&&a.ka("Browser local storage is not available"));return c}
|
||||
function ig(a,b){a.j=null;b=va(ja()+"/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.j=b.data)}catch(d){w(d.message+" ("+c+")")}return a.j}function $f(a){var b=null;a.j&&(b=ja()+"/api/v1/user?req=load&user="+a.j+"&state="+jg(a,"1.30.1"));return b}
|
||||
function hg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=jg(a,"1.30.1");d.data=c;b=va(ja()+"/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.ka("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.ka(c),Ca("user",""),a.j=null)}}
|
||||
function ub(a,b,c){a=db(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}l.zb=function(a){if(this.G.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.G[0];d.la&&d.la.focus();!a&&window&&window.scrollTo(b,c)}};l.La=function(a){this.b&&this.b.La(a);this.F&&this.F.La(a)};
|
||||
Oa(function(){for(var a=D(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=B(f),g=new Vf(g,d,!0);gb(g,f);g.O&&ag(g,g.xb)}});Ja.show.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=fb("Computer",c.id))&&c.ha&&!c.D.xa&&c.xb(-1)}});
|
||||
Ja.exit.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=fb("Computer",c.id))&&c.D.xa&&Uf(c,!(!c.A||c.J),!0)}});function J(a,b,c){this.id=a.id;this.key=jg(a,b,c);this.I=a.I;eg(this,a.Od)}function jg(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
||||
function ub(a,b,c){a=db(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}l.Bb=function(a){if(this.H.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.H[0];d.la&&d.la.focus();!a&&window&&window.scrollTo(b,c)}};l.La=function(a){this.b&&this.b.La(a);this.F&&this.F.La(a)};
|
||||
Oa(function(){for(var a=D(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=B(f),g=new Vf(g,d,!0);gb(g,f);g.O&&ag(g,g.zb)}});Ja.show.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=fb("Computer",c.id))&&c.ha&&!c.C.xa&&c.zb(-1)}});
|
||||
Ja.exit.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=fb("Computer",c.id))&&c.C.xa&&Uf(c,!(!c.A||c.J),!0)}});function J(a,b,c){this.id=a.id;this.key=jg(a,b,c);this.I=a.I;eg(this,a.Od)}function jg(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}
|
||||
J.prototype={constructor:J,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){eg(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 eg(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function fg(a){var b=!0;if(Aa()){var c=JSON.stringify(a[a.id]);Ca(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function cg(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){w(c.message||c),b=!1}return b}function Zf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:Aa()&&(b=Ba(a.key))?(a[a.id]=b,a.b=!0):!1}var kg=0;
|
||||
function yg(a,b,c,d,e,f){e("Loading "+a+"...");va(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):zg(h,a,b,c,d,e,f)})}
|
||||
|
|
|
|||
|
|
@ -38,58 +38,58 @@ var ia={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9
|
|||
function ka(){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 la(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"==
|
||||
typeof b){var l="",n;for(n in b)b.hasOwnProperty(n)&&(l&&(l+="&"),l+=n+"="+encodeURIComponent(b[n]));l=l.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
|
||||
function ma(a,b){var c,d={aa:null,wa:null,jb:null,ib:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.jb=g.load;d.ib=g.exec;if(e=g.bytes)d.aa=e;else if(e=g.words)for(d.aa=Array(2*e.length),f=c=0;c<e.length;c++)d.aa[f++]=e[c]&255,d.aa[f++]=e[c]>>8&255;else if(e=g.data)for(d.aa=Array(4*e.length),f=c=0;c<e.length;c++)d.aa[f++]=
|
||||
function ma(a,b){var c,d={aa:null,wa:null,Ea:null,xa:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Ea=g.load;d.xa=g.exec;if(e=g.bytes)d.aa=e;else if(e=g.words)for(d.aa=Array(2*e.length),f=c=0;c<e.length;c++)d.aa[f++]=e[c]&255,d.aa[f++]=e[c]>>8&255;else if(e=g.data)for(d.aa=Array(4*e.length),f=c=0;c<e.length;c++)d.aa[f++]=
|
||||
e[c]&255,d.aa[f++]=e[c]>>8&255,d.aa[f++]=e[c]>>16&255,d.aa[f++]=e[c]>>24&255;else d.aa=g;d.wa=g.symbols;d.aa.length?1==d.aa.length&&(q(d.aa[0]),d=null):(q("Empty resource: "+a),d=null)}catch(h){q("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){q("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.aa=e)}return d}
|
||||
function ea(){return"http://"+(window?window.location.host:"www.pcjs.org")}function q(a){window&&window.alert(a)}function na(a){var b=!1;window&&(b=window.confirm(a));return b}var oa=null;function pa(){if(null==oa){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}oa=a}return oa}
|
||||
function qa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function ra(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ta(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 ua={init:[],show:[],exit:[]},va=!1,wa=!1,xa=!0;
|
||||
function ya(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function za(a){ua.init.push(a)}function Aa(a){if(xa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Ba("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Ca(a){!xa&&a?(xa=!0,va&&Da("init"),wa&&Da("show")):xa=a}function Da(a){ua[a]&&Aa(ua[a])}ya("onload",function(){va=!0;Aa(ua.init)});
|
||||
ya("onpageshow",function(){wa=!0;Aa(ua.show)});ya(ta("Opera")||ta("iOS")?"onunload":"onbeforeunload",function(){Aa(ua.exit)});function r(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.yb=b.comment;this.Qc=b;b=this.id.indexOf(".");0>b?this.Va=this.id:(this.ya=this.id.substr(0,b),this.Va=this.id.substr(b+1));this[a]=c;this.l={ready:!1,Ya:!1,gb:!1,Y:!1,error:!1};this.ab=null;this.l.error=!1;this.A={};this.O=null;v.push(this)}var Ea=void 0,Fa={};
|
||||
ya("onpageshow",function(){wa=!0;Aa(ua.show)});ya(ta("Opera")||ta("iOS")?"onunload":"onbeforeunload",function(){Aa(ua.exit)});function r(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.yb=b.comment;this.Qc=b;b=this.id.indexOf(".");0>b?this.Xa=this.id:(this.za=this.id.substr(0,b),this.Xa=this.id.substr(b+1));this[a]=c;this.l={ready:!1,$a:!1,ib:!1,Y:!1,error:!1};this.cb=null;this.l.error=!1;this.w={};this.O=null;v.push(this)}var Ea=void 0,Fa={};
|
||||
if(window){Ea||(Ea=window.location.search.substr(1));for(var Ga,Ha=/\+/g,Ia=/([^&=]+)=?([^&]*)/g;Ga=Ia.exec(Ea);)Fa[decodeURIComponent(Ga[1].replace(Ha," "))]=decodeURIComponent(Ga[2].replace(Ha," "))}function Ja(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=Ja(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ka=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Ka={},v=[];function La(a,b,c){Ka[a]&&b&&(Ka[a][b]=c)}function Ba(a,b,c){b||q((c?c+": ":"")+a)}
|
||||
function Ma(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 y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}function Qa(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=y(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.xa=this.A[b]=c,c.value="",this.ea=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.ea(a,this.Va)}),!0;default:return!1}},log:function(){},ea:function(){},status:function(a){this.ea(this.Va+": "+a)},K:function(a,b,c){Ba(a,b,c||this.type)},ga:function(){return this.l.Y=!0},ia:function(a,b){b&&(this.l.Y=!1);return!0}};function Ra(a,b){if(a.l.gb)return a.l.Ya=!1,a.l.gb=!1;if(a.l.error)return a.ea(a.toString()+" error"),!1;a.l.Ya=b;return a.l.Ya}function B(a){if(!a.l.error&&(a.l.ready=!0,a.l.ready)){var b=a.ab;a.ab=null;b&&b()}}
|
||||
function Sa(a,b){b&&(a.l.ready?b():a.ab=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});
|
||||
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.w[b]||(this.w[b]=c,c.onclick=function(a){return function(){a.w.print&&(a.w.print.value="")}}(this)),!0;case "print":return this.w[b]||(this.ya=this.w[b]=c,c.value="",this.ea=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.ea(a,this.Xa)}),!0;default:return!1}},log:function(){},ea:function(){},status:function(a){this.ea(this.Xa+": "+a)},K:function(a,b,c){Ba(a,b,c||this.type)},ga:function(){return this.l.Y=!0},ia:function(a,b){b&&(this.l.Y=!1);return!0}};function Ra(a,b){if(a.l.ib)return a.l.$a=!1,a.l.ib=!1;if(a.l.error)return a.ea(a.toString()+" error"),!1;a.l.$a=b;return a.l.$a}function B(a){if(!a.l.error&&(a.l.ready=!0,a.l.ready)){var b=a.cb;a.cb=null;b&&b()}}
|
||||
function Sa(a,b){b&&(a.l.ready?b():a.cb=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 Ta="undefined"!==typeof ArrayBuffer,Ua=[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 Va(a){r.call(this,"Panel",a,Va)}w(Va);k=Va.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.ra=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.O=d;this.m=Wa(a,"Keyboard")};k.ga=function(a,b){b||Xa();return!0};k.ia=function(){return!0};k.Da=function(){};
|
||||
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 Va(a){r.call(this,"Panel",a,Va)}w(Va);k=Va.prototype;k.V=function(a,b,c,d){return this.A&&this.A.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.ra=function(a,b,c,d){this.A=a;this.j=b;this.a=c;this.O=d;this.m=Wa(a,"Keyboard")};k.ga=function(a,b){b||Xa();return!0};k.ia=function(){return!0};k.Fa=function(){};
|
||||
function Xa(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=y(d),f=Na(e.id);f||(a=!0,f=new Va(e));Qa(f,d);a&&B(f)}}za(Xa);
|
||||
function Ya(a,b,c){r.call(this,"Bus",a,Ya);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 C;Za(a,this.O);this.b=Array(this.i);for(b=0;b<this.i;b++)this.b[b]=a;B(this)}w(Ya);Ya.prototype.reset=function(){};Ya.prototype.ga=function(a,b){b||this.reset();return!0};
|
||||
function $a(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.Pa)return h.fb+=h.Pa-e,h.Pa=e,!0;if(e>=h.Pa+h.fb){n=h.size-(e-l);n>f&&(n=f);h.fb=e-h.Pa+n;e=l+a.c;f-=n;g++;continue}}return ab(1,e,f)}e=new C(e,n,a.c,d);Za(e,a.O,h);a.b[g++]=e;e=l+a.c;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+bb[d]+" at "+p(b,4,!0)),!0):ab(2,b,c)}Ya.prototype.J=function(a){return this.b[(a&this.g)>>>this.j].Sa(a&this.f,a)};
|
||||
function cb(a,b){return a.b[(b&a.g)>>>a.j].eb(b&a.f,b)}function db(a,b){var c=b&a.f,d=(b&a.g)>>>a.j;return c!=a.f?a.b[d].od(c,b):a.b[d++].Sa(c,b)|a.b[d&a.o].Sa(0,b+1)<<8}Ya.prototype.ba=function(a,b){this.b[(a&this.g)>>>this.j].Ta(a&this.f,b&255,a)};function eb(a,b,c){a.b[(b&a.g)>>>a.j].Lb(b&a.f,c&255,b)}function gb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.j;d!=a.f?a.b[e].pd(d,c&65535,b):(a.b[e++].Ta(d,c&255,b),a.b[e&a.o].Ta(0,c>>8&255,b+1))}
|
||||
function Ya(a,b,c){r.call(this,"Bus",a,Ya);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.v=this.c>>2;this.f=this.c-1;this.i=this.u/this.c|0;this.o=this.i-1;this.m=[];this.A=[];this.B=[];this.C=[];a=new C;Za(a,this.O);this.b=Array(this.i);for(b=0;b<this.i;b++)this.b[b]=a;B(this)}w(Ya);Ya.prototype.reset=function(){};Ya.prototype.ga=function(a,b){b||this.reset();return!0};
|
||||
function $a(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.Ra)return h.hb+=h.Ra-e,h.Ra=e,!0;if(e>=h.Ra+h.hb){n=h.size-(e-l);n>f&&(n=f);h.hb=e-h.Ra+n;e=l+a.c;f-=n;g++;continue}}return ab(1,e,f)}e=new C(e,n,a.c,d);Za(e,a.O,h);a.b[g++]=e;e=l+a.c;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+bb[d]+" at "+p(b,4,!0)),!0):ab(2,b,c)}Ya.prototype.J=function(a){return this.b[(a&this.g)>>>this.j].Ua(a&this.f,a)};
|
||||
function cb(a,b){return a.b[(b&a.g)>>>a.j].gb(b&a.f,b)}function db(a,b){var c=b&a.f,d=(b&a.g)>>>a.j;return c!=a.f?a.b[d].od(c,b):a.b[d++].Ua(c,b)|a.b[d&a.o].Ua(0,b+1)<<8}Ya.prototype.ba=function(a,b){this.b[(a&this.g)>>>this.j].Va(a&this.f,b&255,a)};function eb(a,b,c){a.b[(b&a.g)>>>a.j].Lb(b&a.f,c&255,b)}function gb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.j;d!=a.f?a.b[e].pd(d,c&65535,b):(a.b[e++].Va(d,c&255,b),a.b[e&a.o].Va(0,c>>8&255,b+1))}
|
||||
function hb(a){for(var b=0,c=[],d=0;d<a.i;d++){var e=a.b[d];if(e.oa||e.Eb){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 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.m[l]?q("Input port "+p(l,4,!0)+" already registered"):f.m[l]=[h,!1]}}
|
||||
function jb(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 ab(a,b,c){q("Memory block error ("+a+": "+p(b)+","+p(c)+")");return!1}var kb;if(Ta){var lb=new ArrayBuffer(2);(new DataView(lb)).setUint16(0,256,!0);kb=256===(new Uint16Array(lb))[0]}else kb=!1;var mb=kb;
|
||||
function C(a,b,c,d){this.id=nb+=2;this.a=null;this.Pa=a;this.fb=b;this.size=c||0;this.type=d||ob;this.c=d==pb;Za(this);this.oa=this.Eb=!1;if(c)if(Ta)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),qb(this,mb?rb:sb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;qb(this,tb)}else qb(this)}var ob=0,pb=2,bb=["NONE","RAM","ROM","VID","H/W"],nb=0;
|
||||
C.prototype={constructor:C,parent:null,save:function(){var a,b;if(Ta)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(Ta)for(b=0;b<a.length;b++)this.A.setInt32(b<<2,a[b],!0);else this.a=a;return this.oa=!0}return!1},m:function(){return 255},o:function(){},v:function(a,b){return this.Sa(a++,b++)|this.Sa(a,b)<<8},s:function(a,b,c){this.Ta(a++,b&255,c++);this.Ta(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.oa=!0},Z: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.oa=!0},w:function(a,b){return this.eb(a,b)},H:function(a,b){return this.Ib(a,b)},N:function(a,b,c){this.c||this.Lb(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]},L:function(a,b){this.b[a]=b;this.oa=!0},R:function(a,b){this.b[a]=b;this.oa=!0},U:function(a,b){this.A.setUint16(a,b,!0);this.oa=!0},ya:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.i[a>>1]=b;this.oa=!0}};function Za(a,b,c){a.O=b;a.f=a.g=0;c&&((a.f=c.f)&&ub(a,vb,!1),(a.g=c.g)&&wb(a,vb,!1))}
|
||||
function wb(a,b,c){c&&a.g||(a.Ta=!a.c&&b[1]||a.o,a.pd=!a.c&&b[3]||a.s);if(c||void 0===c)a.Lb=b[1]||a.o,a.X=b[3]||a.s}function ub(a,b,c){c&&a.f||(a.Sa=b[0]||a.m,a.od=b[2]||a.v);if(c||void 0===c)a.eb=b[0]||a.m,a.Ib=b[2]||a.v}function qb(a,b){b||(b=xb);ub(a,b,void 0);wb(a,b,void 0)}var xb=[],tb=[C.prototype.C,C.prototype.S,C.prototype.I,C.prototype.Z],vb=[C.prototype.w,C.prototype.N,C.prototype.H,C.prototype.W];
|
||||
if(Ta)var sb=[C.prototype.u,C.prototype.L,C.prototype.G,C.prototype.U],rb=[C.prototype.B,C.prototype.R,C.prototype.M,C.prototype.ya];function yb(a,b){r.call(this,"CPU",a,yb);var c=a.multiplier||1;this.ma=a.cycles||b;this.L=c;this.Fa=Math.round(this.ma/1E4)/100;this.U=this.Fa*this.L;this.l.pa=!1;this.l.Jb=!1;this.l.Qa=a.autoStart;this.l.Cb=!1;this.l.Za=!1;this.ua=this.X=0;this.va=a.csStart;this.Z=a.csInterval;this.ja=a.csStop;this.G=[];this.Xa=this.lb.bind(this);B(this)}w(yb);var zb=["power","reset"];
|
||||
k=yb.prototype;k.ra=function(a,b,c,d){this.v=a;this.j=b;this.O=d;for(b=0;b<zb.length;b++)(c=this.A[zb[b]])&&this.v.V(null,zb[b],c);this.M=Wa(a,"ChipSet");a=Ab(a,"autoStart");null!=a&&(this.l.Qa="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){Bb(this);if(!this.restore(a))return!1;Cb(this)}else this.reset();this.ea("No debugger detected")}Db(this);return!0};
|
||||
k.ia=function(a){return a?this.save():!0};k.Qa=function(){return this.l.Qa||void 0===this.A.run?(this.lb(!0),!0):!1};k.Fb=function(){return 0};function Cb(a){void 0===a.va&&(a.va=0);void 0===a.Z&&(a.Z=-1);void 0===a.ja&&(a.ja=-1);a.l.Za=0<=a.va&&0<a.Z;a.l.Za&&(a.ua=0,a.X=a.va-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=Ma(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.ab?" (waiting for notification)":""))+".");a=!1}a&&(d.l.pa?Eb(d):d.lb())};a=!0;
|
||||
break;case "speed":this.A[b]=c;a=!0;break;case "setSpeed":this.A[b]=c,c.onclick=function(){Fb(d,d.L<<1,!0)},c.textContent=this.U.toFixed(2)+"Mhz",a=!0}return a};function Gb(a,b){var c=1;b&&1<a.L&&a.R&&(c=a.R/a.Fa);a.Na=Math.round(1E3/30);a.Aa=Math.floor(a.ma/30*c);b||(a.la=a.Aa);a.Ga=0}function Hb(a){return a.H+a.N+a.W-a.a}function Bb(a){a.R=0;a.Oa=0;a.H=a.N=a.W=a.a=0;Cb(a);Fb(a,1)}
|
||||
function Fb(a,b,c){if(void 0!==b){.8>a.R/a.U&&(b=1);a.L=b;b=a.Fa*a.L;if(a.U!=b){a.U=b;b=a.U.toFixed(2)+"Mhz";var d=a.A.setSpeed;d&&(d.textContent=b);a.ea("target speed: "+b)}c&&a.v&&Ib(a.v)}a.H+=a.N;a.N=0;a.I=ja();a.S=0;Gb(a)}function Jb(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.ma*a.L/1E3,a.G[b][0]=c+Mb(a))}function Mb(a,b){var c=a.W-=a.a;a.a=0;b&&(a.W=0);return c}
|
||||
k.lb=function(a){if(Ra(this,!0)){if(!this.l.pa){Fb(this);this.v&&this.v.start(this.I,Hb(this));this.l.pa=!0;this.l.Jb=!0;this.M&&this.M.start();var b=this.A.run;b&&(b.textContent="Halt");this.v&&(this.v.Da(!0),a&&Ib(this.v,!0))}this.Ga>=this.ma&&Gb(this,!0);this.qa=0;this.ta=ja();this.S&&(a=this.ta-this.S,a>this.Na&&(this.I+=a,this.I>this.ta&&(this.I=this.ta)));try{do{for(var c,d=this.l.Za?1:this.Aa,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.Kb(c);c=Mb(this,!0);
|
||||
this.qa+=c;this.N+=c;a=c;this.l.Za&&(b=!1,this.ua=this.ua+this.Fb()|0,this.X-=a,0>=this.X&&(this.X+=this.Z,b=!0),0<=this.ja&&this.ja<=Hb(this)&&(this.Z=this.ja=-1,Cb(this),Eb(this),b=!0),b&&this.ea(Hb(this)+" cycles: checksum="+p(this.ua)));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.la-=c;if(0>=this.la){this.la+=this.Aa;15<=++this.Oa&&(this.v&&this.v.Da(),this.Oa=0);break}}while(this.l.pa)}catch(l){Eb(this);Db(this);this.v&&this.v.stop(ja(),
|
||||
Hb(this));Ra(this,!1);c=l.stack||l.message;this.l.error=!0;this.K(c);return}c=setTimeout;d=this.Xa;this.S=ja();e=this.Na;this.qa&&(e=Math.round(e*this.qa/this.Aa));e-=this.S-this.ta;if(f=this.S-this.I)this.R=Math.round(this.N/(10*f))/100,864E5<=f&&(this.H=0,Fb(this));if(0>e||this.R<this.U)-1E3>e&&(this.I-=e),e=0;this.Ga+=this.qa;this.S+=e;c(d,e)}else Db(this),this.v&&this.v.stop(ja(),Hb(this))};k.Kb=function(){return 0};
|
||||
function Eb(a){a.l.Ya&&(a.l.gb=!0);Mb(a);a.H+=a.N;a.N=0;if(a.l.pa){a.l.pa=!1;a.M&&a.M.stop();var b=a.A.run;b&&(b.textContent="Run")}a.l.complete=void 0}function Db(a){if(a.v){for(var b=a.v,c=0;c<b.m.length;c++)Nb(b.m[c],void 0);a.v.Da(void 0)}}function Ob(a){yb.call(this,a,1E6);this.Ka=Pb;Bb(this);this.l.complete=this.l.Rc=!1;this.Ma=0;this.sa=[];this.La=0;Qb(this)}w(Ob,yb);function Rb(a,b){a.sa.push(b)}k=Ob.prototype;k.reset=function(){this.l.pa&&Eb(this);Qb(this);Bb(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.La);Sb(a,0);a.B=0}function Tb(a,b){a.La=b;E(a,b)}k.Fb=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.H,this.L]);a.set(2,hb(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.H=b[1];Fb(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.Ma++;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 Ua[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.ba=function(a,b){this.j.ba(a,b)};function N(a){var b=a.J(a.o);E(a,a.o+1);return b}function O(a){var b=db(a.j,a.o);E(a,a.o+2);return b}function P(a){var b=db(a.j,a.u);a.u=a.u+2&65535;return b}function R(a,b){a.u=a.u-2&65535;gb(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.Ka[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.K("Value for "+b+" is invalid"),Eb(a)),c=!a.l.pa||a.l.Cb?p(c,d):"--------".substr(0,d),a.A[b].textContent!=c&&(a.A[b].textContent=c))}
|
||||
k.Da=function(a){this.Ma&&(a||!this.l.pa||this.l.Cb)&&(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.pa&&this.R?this.R.toFixed(2)+"Mhz":"Stopped"};k.Kb=function(a){this.l.complete=!0;this.l.Rc=!1;this.l.Jb=!1;this.W=this.a=a;if(gc(this)){do this.Ka[N(this)].call(this);while(0<this.a)}return this.l.complete?this.W-this.a:void 0===this.l.complete?0:-1};za(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Ob(d);Qa(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 jb(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.A[l]?q("Output port "+p(l,4,!0)+" already registered"):f.A[l]=[h,!1]}}function ab(a,b,c){q("Memory block error ("+a+": "+p(b)+","+p(c)+")");return!1}var kb;if(Ta){var lb=new ArrayBuffer(2);(new DataView(lb)).setUint16(0,256,!0);kb=256===(new Uint16Array(lb))[0]}else kb=!1;var mb=kb;
|
||||
function C(a,b,c,d){this.id=nb+=2;this.a=null;this.Ra=a;this.hb=b;this.size=c||0;this.type=d||ob;this.c=d==pb;Za(this);this.oa=this.Eb=!1;if(c)if(Ta)this.j=new ArrayBuffer(c),this.w=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),qb(this,mb?rb:sb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;qb(this,tb)}else qb(this)}var ob=0,pb=2,bb=["NONE","RAM","ROM","VID","H/W"],nb=0;
|
||||
C.prototype={constructor:C,parent:null,save:function(){var a,b;if(Ta)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.w.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(Ta)for(b=0;b<a.length;b++)this.w.setInt32(b<<2,a[b],!0);else this.a=a;return this.oa=!0}return!1},m:function(){return 255},o:function(){},A:function(a,b){return this.Ua(a++,b++)|this.Ua(a,b)<<8},s:function(a,b,c){this.Va(a++,b&255,c++);this.Va(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.oa=!0},Z: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.oa=!0},v:function(a,b){return this.gb(a,b)},H:function(a,b){return this.Ib(a,b)},N:function(a,b,c){this.c||this.Lb(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.w.getUint16(a,!0)},M: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.oa=!0},R:function(a,b){this.b[a]=b;this.oa=!0},U:function(a,b){this.w.setUint16(a,b,!0);this.oa=!0},za:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.i[a>>1]=b;this.oa=!0}};function Za(a,b,c){a.O=b;a.f=a.g=0;c&&((a.f=c.f)&&ub(a,vb,!1),(a.g=c.g)&&wb(a,vb,!1))}
|
||||
function wb(a,b,c){c&&a.g||(a.Va=!a.c&&b[1]||a.o,a.pd=!a.c&&b[3]||a.s);if(c||void 0===c)a.Lb=b[1]||a.o,a.X=b[3]||a.s}function ub(a,b,c){c&&a.f||(a.Ua=b[0]||a.m,a.od=b[2]||a.A);if(c||void 0===c)a.gb=b[0]||a.m,a.Ib=b[2]||a.A}function qb(a,b){b||(b=xb);ub(a,b,void 0);wb(a,b,void 0)}var xb=[],tb=[C.prototype.C,C.prototype.S,C.prototype.I,C.prototype.Z],vb=[C.prototype.v,C.prototype.N,C.prototype.H,C.prototype.W];
|
||||
if(Ta)var sb=[C.prototype.u,C.prototype.L,C.prototype.G,C.prototype.U],rb=[C.prototype.B,C.prototype.R,C.prototype.M,C.prototype.za];function yb(a,b){r.call(this,"CPU",a,yb);var c=a.multiplier||1;this.ma=a.cycles||b;this.L=c;this.Ha=Math.round(this.ma/1E4)/100;this.U=this.Ha*this.L;this.l.pa=!1;this.l.Jb=!1;this.l.Sa=a.autoStart;this.l.Cb=!1;this.l.ab=!1;this.ua=this.X=0;this.va=a.csStart;this.Z=a.csInterval;this.ja=a.csStop;this.G=[];this.Za=this.lb.bind(this);B(this)}w(yb);var zb=["power","reset"];
|
||||
k=yb.prototype;k.ra=function(a,b,c,d){this.A=a;this.j=b;this.O=d;for(b=0;b<zb.length;b++)(c=this.w[zb[b]])&&this.A.V(null,zb[b],c);this.M=Wa(a,"ChipSet");a=Ab(a,"autoStart");null!=a&&(this.l.Sa="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){Bb(this);if(!this.restore(a))return!1;Cb(this)}else this.reset();this.ea("No debugger detected")}Db(this);return!0};
|
||||
k.ia=function(a){return a?this.save():!0};k.Sa=function(){return this.l.Sa||void 0===this.w.run?(this.lb(!0),!0):!1};k.Fb=function(){return 0};function Cb(a){void 0===a.va&&(a.va=0);void 0===a.Z&&(a.Z=-1);void 0===a.ja&&(a.ja=-1);a.l.ab=0<=a.va&&0<a.Z;a.l.ab&&(a.ua=0,a.X=a.va-a.H)}
|
||||
k.V=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.w[b]=c;a=!0;break;case "run":this.w[b]=c;c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.l.Y)a=!0;else{var b=null,c,h=Ma(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.cb?" (waiting for notification)":""))+".");a=!1}a&&(d.l.pa?Eb(d):d.lb())};a=!0;
|
||||
break;case "speed":this.w[b]=c;a=!0;break;case "setSpeed":this.w[b]=c,c.onclick=function(){Fb(d,d.L<<1,!0)},c.textContent=this.U.toFixed(2)+"Mhz",a=!0}return a};function Gb(a,b){var c=1;b&&1<a.L&&a.R&&(c=a.R/a.Ha);a.Pa=Math.round(1E3/30);a.Ba=Math.floor(a.ma/30*c);b||(a.la=a.Ba);a.Ia=0}function Hb(a){return a.H+a.N+a.W-a.a}function Bb(a){a.R=0;a.Qa=0;a.H=a.N=a.W=a.a=0;Cb(a);Fb(a,1)}
|
||||
function Fb(a,b,c){if(void 0!==b){.8>a.R/a.U&&(b=1);a.L=b;b=a.Ha*a.L;if(a.U!=b){a.U=b;b=a.U.toFixed(2)+"Mhz";var d=a.w.setSpeed;d&&(d.textContent=b);a.ea("target speed: "+b)}c&&a.A&&Ib(a.A)}a.H+=a.N;a.N=0;a.I=ja();a.S=0;Gb(a)}function Jb(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.ma*a.L/1E3,a.G[b][0]=c+Mb(a))}function Mb(a,b){var c=a.W-=a.a;a.a=0;b&&(a.W=0);return c}
|
||||
k.lb=function(a){if(Ra(this,!0)){if(!this.l.pa){Fb(this);this.A&&this.A.start(this.I,Hb(this));this.l.pa=!0;this.l.Jb=!0;this.M&&this.M.start();var b=this.w.run;b&&(b.textContent="Halt");this.A&&(this.A.Fa(!0),a&&Ib(this.A,!0))}this.Ia>=this.ma&&Gb(this,!0);this.qa=0;this.ta=ja();this.S&&(a=this.ta-this.S,a>this.Pa&&(this.I+=a,this.I>this.ta&&(this.I=this.ta)));try{do{for(var c,d=this.l.ab?1:this.Ba,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.Kb(c);c=Mb(this,!0);
|
||||
this.qa+=c;this.N+=c;a=c;this.l.ab&&(b=!1,this.ua=this.ua+this.Fb()|0,this.X-=a,0>=this.X&&(this.X+=this.Z,b=!0),0<=this.ja&&this.ja<=Hb(this)&&(this.Z=this.ja=-1,Cb(this),Eb(this),b=!0),b&&this.ea(Hb(this)+" cycles: checksum="+p(this.ua)));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.la-=c;if(0>=this.la){this.la+=this.Ba;15<=++this.Qa&&(this.A&&this.A.Fa(),this.Qa=0);break}}while(this.l.pa)}catch(l){Eb(this);Db(this);this.A&&this.A.stop(ja(),
|
||||
Hb(this));Ra(this,!1);c=l.stack||l.message;this.l.error=!0;this.K(c);return}c=setTimeout;d=this.Za;this.S=ja();e=this.Pa;this.qa&&(e=Math.round(e*this.qa/this.Ba));e-=this.S-this.ta;if(f=this.S-this.I)this.R=Math.round(this.N/(10*f))/100,864E5<=f&&(this.H=0,Fb(this));if(0>e||this.R<this.U)-1E3>e&&(this.I-=e),e=0;this.Ia+=this.qa;this.S+=e;c(d,e)}else Db(this),this.A&&this.A.stop(ja(),Hb(this))};k.Kb=function(){return 0};
|
||||
function Eb(a){a.l.$a&&(a.l.ib=!0);Mb(a);a.H+=a.N;a.N=0;if(a.l.pa){a.l.pa=!1;a.M&&a.M.stop();var b=a.w.run;b&&(b.textContent="Run")}a.l.complete=void 0}function Db(a){if(a.A){for(var b=a.A,c=0;c<b.m.length;c++)Nb(b.m[c],void 0);a.A.Fa(void 0)}}function Ob(a){yb.call(this,a,1E6);this.Ma=Pb;Bb(this);this.l.complete=this.l.Rc=!1;this.Oa=0;this.sa=[];this.Na=0;Qb(this)}w(Ob,yb);function Rb(a,b){a.sa.push(b)}k=Ob.prototype;k.reset=function(){this.l.pa&&Eb(this);Qb(this);Bb(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.Na);Sb(a,0);a.B=0}function Tb(a,b){a.Na=b;E(a,b)}k.Fb=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.H,this.L]);a.set(2,hb(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.H=b[1];Fb(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.v){for(var f=0,g=Array(b.v),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.w[b]=c;this.Oa++;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 Ua[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.v)&16?16:0)|Zb(a)|J(a)}function Sb(a,b){a.m=a.s=a.v=0;b&1&&(a.m|=256);b&4||(a.s|=1);b&16&&(a.v|=16);b&64||(a.m|=255);b&128&&(a.s^=192);a.C=a.C&-726|b&512|2}function L(a,b){a.v=a.b^b;return a.s=(a.m=a.b+b)&255}
|
||||
function $b(a,b){a.v=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.v=a.b&b;(a.b|b)&8&&(a.v^=16);return a.m}function bc(a,b){a.v=b^255;b=a.s=b+255&255;a.m=a.m&-256|b;return b}function cc(a,b){a.v=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.v=a.b|b}function M(a,b){b^=255;a.v=a.b^b;return a.s=(a.m=a.b+b+1^256)&255}function ec(a,b){b^=255;a.v=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.v=a.b^b}k.J=function(a){return this.j.J(a)};
|
||||
k.ba=function(a,b){this.j.ba(a,b)};function N(a){var b=a.J(a.o);E(a,a.o+1);return b}function O(a){var b=db(a.j,a.o);E(a,a.o+2);return b}function P(a){var b=db(a.j,a.u);a.u=a.u+2&65535;return b}function R(a,b){a.u=a.u-2&65535;gb(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.Ma[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.w[b]&&(void 0===c&&(a.l.error=!0,a.K("Value for "+b+" is invalid"),Eb(a)),c=!a.l.pa||a.l.Cb?p(c,d):"--------".substr(0,d),a.w[b].textContent!=c&&(a.w[b].textContent=c))}
|
||||
k.Fa=function(a){this.Oa&&(a||!this.l.pa||this.l.Cb)&&(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.w.speed)a.textContent=
|
||||
this.l.pa&&this.R?this.R.toFixed(2)+"Mhz":"Stopped"};k.Kb=function(a){this.l.complete=!0;this.l.Rc=!1;this.l.Jb=!1;this.W=this.a=a;if(gc(this)){do this.Ma[N(this)].call(this);while(0<this.a)}return this.l.complete?this.W-this.a:void 0===this.l.complete?0:-1};za(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Ob(d);Qa(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.ba(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.ba(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);gb(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=db(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);
|
||||
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.v)&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=db(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.ba(O(this),this.b);this.a-=13},function(){this.u=this.u+1&65535;this.a-=5},function(){var a=G(this);this.ba(a,cc(this,this.J(a)));this.a-=10},function(){var a=G(this);this.ba(a,bc(this,this.J(a)));this.a-=10},function(){this.ba(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;
|
||||
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-=
|
||||
|
|
@ -103,91 +103,91 @@ this.g);this.a-=4},function(){this.b=ec(this,this.i);this.a-=4},function(){this.
|
|||
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]||
|
||||
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.A[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]&&Ba("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);
|
||||
var V={ca:1978.1,Dc:{da:0,xd:1,Bd:16,Id:32,Rd:64,Qd:128,Ia:14},Ca:{da:1,Tb:1,wc:2,sc:4,tc:16,uc:32,vc:64,Ia:8},Ec:{da:2,wd:3,$d:4,yd:8,Md:16,Nd:32,Od:64,zd:128,Ia:0},Vd:{da:3},Td:{da:2,Jd:7},Xd:{da:3,ae:1,Wd:2,Pd:4,Gd:8,Ad:16,qd:32},Ud:{da:4},Yd:{da:5,Cd:1,Dd:2,Ed:4,Fd:8,be:16}},W={ca:100,ka:{da:66,zb:1,oc:2,pc:4,Ld:8,Kd:16,wb:32,vb:64,rb:128},Rb:{da:66,INIT:0},za:{da:194,sd:0,pb:16,yc:32,xb:48,ac:0,bc:32},Ua:{da:162,Sd:0,dc:0,$b:0,cc:0,Zb:0},na:{Hd:{da:98},Ea:{Ob:0,Nb:1,Bc:2,Jc:4,Ub:5,zc:6,Zd:7},
|
||||
Wa:16383}},mc={SI1978:V,VT100:W};T.prototype.V=function(){return!1};T.prototype.ra=function(a,b,c,d){this.j=b;this.a=c;this.O=d;this.v=a;this.m=Wa(a,"Keyboard");this.Z=Wa(a,"SerialPort");this.video=Wa(a,"Video");ib(b,this,this.c.bb);jb(b,this,this.c.cb)};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.Dc.Ia,V.Ca.Ia,V.Ec.Ia,0,0,0,0]];
|
||||
W.INIT=[[W.Rb.INIT,W.ka.oc|W.ka.pc],[W.za.ac,W.za.bc],[W.Ua.dc,W.Ua.$b,W.Ua.cc,W.Ua.Zb],[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],
|
||||
var V={ca:1978.1,Dc:{da:0,xd:1,Bd:16,Id:32,Rd:64,Qd:128,Ka:14},Da:{da:1,Tb:1,wc:2,sc:4,tc:16,uc:32,vc:64,Ka:8},Ec:{da:2,wd:3,$d:4,yd:8,Md:16,Nd:32,Od:64,zd:128,Ka:0},Vd:{da:3},Td:{da:2,Jd:7},Xd:{da:3,ae:1,Wd:2,Pd:4,Gd:8,Ad:16,qd:32},Ud:{da:4},Yd:{da:5,Cd:1,Dd:2,Ed:4,Fd:8,be:16}},W={ca:100,ka:{da:66,zb:1,oc:2,pc:4,Ld:8,Kd:16,wb:32,vb:64,rb:128},Rb:{da:66,INIT:0},Aa:{da:194,sd:0,pb:16,yc:32,xb:48,ac:0,bc:32},Wa:{da:162,Sd:0,dc:0,$b:0,cc:0,Zb:0},na:{Hd:{da:98},Ga:{Ob:0,Nb:1,Bc:2,Jc:4,Ub:5,zc:6,Zd:7},
|
||||
Ya:16383}},mc={SI1978:V,VT100:W};T.prototype.V=function(){return!1};T.prototype.ra=function(a,b,c,d){this.j=b;this.a=c;this.O=d;this.A=a;this.m=Wa(a,"Keyboard");this.Z=Wa(a,"SerialPort");this.video=Wa(a,"Video");ib(b,this,this.c.eb);jb(b,this,this.c.fb)};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.Dc.Ka,V.Da.Ka,V.Ec.Ka,0,0,0,0]];
|
||||
W.INIT=[[W.Rb.INIT,W.ka.oc|W.ka.pc],[W.Aa.ac,W.Aa.bc],[W.Wa.dc,W.Wa.$b,W.Wa.cc,W.Wa.Zb],[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.K("reset error")};
|
||||
k.save=function(){var a=new F(this);switch(this.c.ca){case V.ca:a.set(0,[this.W,this.g,this.X,this.C,this.M,this.S,this.U]);break;case W.ca:a.set(0,[this.L,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.ca){case V.ca: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.ca: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.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.Wc=function(){return this.W};k.Xc=function(){return this.g};k.Yc=function(){return this.X};
|
||||
k.save=function(){var a=new F(this);switch(this.c.ca){case V.ca:a.set(0,[this.W,this.g,this.X,this.C,this.M,this.S,this.U]);break;case W.ca:a.set(0,[this.L,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.v,this.H,this.i])}return a.data()};
|
||||
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.c.ca){case V.ca: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.ca: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.N=b[3],b=a[3],this.B=b[0],this.b=b[1],this.v=b[2],this.H=b[3],this.i=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.Wc=function(){return this.W};k.Xc=function(){return this.g};k.Yc=function(){return this.X};
|
||||
k.Vc=function(){return this.C>>8-this.M&255};k.dd=function(a,b){this.M=b};k.fd=function(a,b){this.S=b};k.ed=function(a,b){this.C=b<<8|this.C>>8};k.gd=function(a,b){this.U=b};k.hd=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.Zc=function(){var a=this.u,a=a&~W.ka.vb;if((Hb(this.a)&64)<<1&&(a|=W.ka.vb,a!=this.u)){var b,c;b=this.w&1;switch(this.w>>1&7){case W.na.Ea.Nb:this.B=this.B<<1|b;break;case W.na.Ea.Ub:b=nc(this);this.i[b]=W.na.Wa;break;case W.na.Ea.Ob:this.b=this.b<<1|b;break;case W.na.Ea.Jc:b=nc(this);c=this.b&W.na.Wa;this.i[b]=c;break;case W.na.Ea.zc:b=nc(this);c=this.i[b];null==c&&(c=W.na.Wa);this.b=c;break;case W.na.Ea.Bc:this.b<<=1,this.H=this.b&W.na.Wa+1}}a&=~W.ka.wb;this.H&&(a|=W.ka.wb);a&=~W.ka.rb;if(b=this.m){b=
|
||||
this.m;if(c=b.f)c=b.a,c=Hb(b.a)>=b.m+c.ma*c.L/1E3*1.2731488;c&&(b.f=!1);b=!b.f}b&&(a|=W.ka.rb);a&=~W.ka.zb;this.Z&&this.Z.fa&1&&(a|=W.ka.zb);return this.u=a};k.jd=function(a,b){this.L=b};k.md=function(a,b){this.w=b};k.ld=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.qa!==a&&((b.qa=a)?Nb(b,!0):b.ta=!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.kd=function(a,b){b&W.za.yc?(b&=W.za.xb,this.s!=b&&(this.s=b,this.video&&(this.video.Hb=this.s==W.za.xb?50:60))):(b&=W.za.pb,this.o!=b&&(this.o=b,this.video&&(a=this.video,b=this.o==W.za.pb?132:80,a.H=b,a.T=a.Aa,80<b&&a.T--,oc(a)&&pc(a))))};V.bb={0:T.prototype.Wc,1:T.prototype.Xc,2:T.prototype.Yc,3:T.prototype.Vc};V.cb={2:T.prototype.dd,3:T.prototype.fd,4:T.prototype.ed,5:T.prototype.gd,6:T.prototype.hd};W.bb={66:T.prototype.Zc};W.cb={66:T.prototype.jd,98:T.prototype.md,162:T.prototype.ld,194:T.prototype.kd};
|
||||
k.Zc=function(){var a=this.u,a=a&~W.ka.vb;if((Hb(this.a)&64)<<1&&(a|=W.ka.vb,a!=this.u)){var b,c;b=this.v&1;switch(this.v>>1&7){case W.na.Ga.Nb:this.B=this.B<<1|b;break;case W.na.Ga.Ub:b=nc(this);this.i[b]=W.na.Ya;break;case W.na.Ga.Ob:this.b=this.b<<1|b;break;case W.na.Ga.Jc:b=nc(this);c=this.b&W.na.Ya;this.i[b]=c;break;case W.na.Ga.zc:b=nc(this);c=this.i[b];null==c&&(c=W.na.Ya);this.b=c;break;case W.na.Ga.Bc:this.b<<=1,this.H=this.b&W.na.Ya+1}}a&=~W.ka.wb;this.H&&(a|=W.ka.wb);a&=~W.ka.rb;if(b=this.m){b=
|
||||
this.m;if(c=b.f)c=b.a,c=Hb(b.a)>=b.m+c.ma*c.L/1E3*1.2731488;c&&(b.f=!1);b=!b.f}b&&(a|=W.ka.rb);a&=~W.ka.zb;this.Z&&this.Z.fa&1&&(a|=W.ka.zb);return this.u=a};k.jd=function(a,b){this.L=b};k.md=function(a,b){this.v=b};k.ld=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.qa!==a&&((b.qa=a)?Nb(b,!0):b.ta=!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.kd=function(a,b){b&W.Aa.yc?(b&=W.Aa.xb,this.s!=b&&(this.s=b,this.video&&(this.video.Hb=this.s==W.Aa.xb?50:60))):(b&=W.Aa.pb,this.o!=b&&(this.o=b,this.video&&(a=this.video,b=this.o==W.Aa.pb?132:80,a.H=b,a.T=a.Ba,80<b&&a.T--,oc(a)&&pc(a))))};V.eb={0:T.prototype.Wc,1:T.prototype.Xc,2:T.prototype.Yc,3:T.prototype.Vc};V.fb={2:T.prototype.dd,3:T.prototype.fd,4:T.prototype.ed,5:T.prototype.gd,6:T.prototype.hd};W.eb={66:T.prototype.Zc};W.fb={66:T.prototype.jd,98:T.prototype.md,162:T.prototype.ld,194:T.prototype.kd};
|
||||
za(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new T(d);Qa(d,c)}});function qc(a){r.call(this,"ROM",a,qc);this.b=null;this.i=a.addr;this.c=a.size;this.g=a.alias;this.f=a.file;this.m=ba(this.f);if(this.f){a=this.f;var b=ca(this.m);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.f+"&format=bytes&decimal=true");var c=this;la(a,null,!0,function(a,b,f){rc(c,a,b,f)})}}w(qc);qc.prototype.ra=function(a,b,c,d){this.j=b;this.a=c;this.O=d;sc(this)};
|
||||
qc.prototype.ga=function(){this.wa&&(this.O&&this.O.a(this.id,this.i,this.c,this.wa),delete this.wa);return!0};qc.prototype.ia=function(){return!0};
|
||||
function rc(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{La(a.ya,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.wa=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(h){a.K("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
|
||||
function rc(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{La(a.za,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.wa=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(h){a.K("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(!Sa(a))if(!a.f)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.K(b)}else{b=a.i;if($a(a.j,b,a.c,pb)){var c;for(c=0;c<a.b.length;c++)eb(a.j,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.j,g=d.c,h=[],l=d.i>>>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)}}za(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new qc(d);Qa(d,c)}});
|
||||
function tc(a){r.call(this,"RAM",a,tc);this.wa=this.c=null;this.m=a.addr;this.v=a.size;this.g=a.load;this.f=a.exec;this.i=!1;this.b=a.file;this.o=ba(this.b);if(this.b){a=this.b;var b=ca(this.o);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;la(a,null,!0,function(a,b,f){f?c.K("Unable to load RAM resource (error "+f+": "+a+")"):(La(c.ya,a,b),(a=ma(a,b))?(c.c=a.aa,c.wa=a.wa,null==c.g&&null!=a.jb&&(c.g=a.jb),null==c.f&&null!=a.ib&&(c.f=a.ib)):c.b=null,
|
||||
uc(c))})}}w(tc);var vc=[0,5];tc.prototype.ra=function(a,b,c,d){this.j=b;this.a=c;this.O=d;uc(this)};tc.prototype.ga=function(){return!0};tc.prototype.ia=function(){return!0};
|
||||
function uc(a){!a.i&&a.v&&$a(a.j,a.m,a.v,1)&&(a.i=!0);if(!Sa(a)){if(!a.i)q("No RAM allocated");else if(a.b){if(!a.c||!a.j)return;var b=a.m;null!==a.g&&(b=a.g);for(var c=0;c<a.c.length;c++)eb(a.j,b+c,a.c[c]);if(null!==a.f){if(256==a.f){for(c=0;c<vc.length;c++)eb(a.j,vc[c],118);Rb(a.a,function(a){return function(b){if(0<=vc.indexOf(b)){var c=!1,d=a.a,e=a.O;if(5==b)switch(c=!0,d.D){case 2:wc(a,String.fromCharCode(d.F));break;case 9:for(var l=Xb(d),n="",u=255;u--;){var z=a.a.J(l++);if(36==z)break;n+=
|
||||
String.fromCharCode(z)}wc(a,n);break;default:c=!1}c?kc.call(d):e&&(a.ea("\nCP/M vector "+p(b,4,!0)),E(d,b),Eb(e));b=!0}else b=!1;return b}}(a))}Tb(a.a,a.f)}delete a.c}B(a)}}tc.prototype.reset=function(){};function wc(a,b){b=b.replace(/\r/g,"");a.xa&&(a.xa.value+=b,a.xa.scrollTop=a.xa.scrollHeight)}za(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new tc(d);Qa(d,c)}});
|
||||
function X(a){r.call(this,"Keyboard",a,X);(a=a.model)&&!xc[a]&&Ba("Unrecognized Keyboard8080 model: "+a);this.b=xc[a]||{};this.reset();B(this)}w(X);var yc={};yc[m.nb]=37;yc[m.qb]=39;yc[m.sb]=32;var Ac={ca:1978.1,h:{},ob:yc,Ja:{},Ba:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},Y={ca:100,h:{},ob:{},Ja:{},Ba:{setup:120},Pb:{da:130,INIT:127},ha:{da:130,kc:1,jc:2,ic:4,hc:8,lc:16,ub:32,tb:63,Cc:64,rd:128,INIT:0},gc:127};Y.h[46]=3;Y.h[m.rc]=5;Y.h[m.qc]=6;Y.h[m.Lc]=7;Y.h[m.Fc]=8;Y.h[m.Ic]=9;
|
||||
function tc(a){r.call(this,"RAM",a,tc);this.wa=this.c=null;this.g=a.addr;this.i=a.size;this.Ea=a.load;this.xa=a.exec;this.f=!1;this.b=a.file;this.m=ba(this.b);if(this.b){a=this.b;var b=ca(this.m);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;la(a,null,!0,function(a,b,f){f?c.K("Unable to load RAM resource (error "+f+": "+a+")"):(La(c.za,a,b),(a=ma(a,b))?(c.c=a.aa,c.wa=a.wa,null==c.Ea&&(c.Ea=a.Ea),null==c.xa&&(c.xa=a.xa)):c.b=null,uc(c))})}}w(tc);
|
||||
var vc=[0,5];tc.prototype.ra=function(a,b,c,d){this.j=b;this.a=c;this.O=d;uc(this)};tc.prototype.ga=function(){return!0};tc.prototype.ia=function(){return!0};
|
||||
function uc(a){!a.f&&a.i&&$a(a.j,a.g,a.i,1)&&(a.f=!0);if(!Sa(a)){if(!a.f)q("No RAM allocated");else if(a.b){if(!a.c||!a.j)return;var b=a.g;null!==a.Ea&&(b=a.Ea);for(var c=0;c<a.c.length;c++)eb(a.j,b+c,a.c[c]);if(null!==a.xa){if(256==a.xa){for(c=0;c<vc.length;c++)eb(a.j,vc[c],118);Rb(a.a,function(a){return function(b){if(0<=vc.indexOf(b)){var c=!1,d=a.a,e=a.O;if(5==b)switch(c=!0,d.D){case 2:wc(a,String.fromCharCode(d.F));break;case 9:for(var l=Xb(d),n="",u=255;u--;){var z=a.a.J(l++);if(36==z)break;
|
||||
n+=String.fromCharCode(z)}wc(a,n);break;default:c=!1}c?kc.call(d):e&&(a.ea("\nCP/M vector "+p(b,4,!0)),E(d,b),Eb(e));b=!0}else b=!1;return b}}(a))}Tb(a.a,a.xa)}delete a.c}B(a)}}tc.prototype.reset=function(){};function wc(a,b){b=b.replace(/\r/g,"");a.ya&&(a.ya.value+=b,a.ya.scrollTop=a.ya.scrollHeight)}za(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new tc(d);Qa(d,c)}});
|
||||
function X(a){r.call(this,"Keyboard",a,X);(a=a.model)&&!xc[a]&&Ba("Unrecognized Keyboard8080 model: "+a);this.b=xc[a]||{};this.reset();B(this)}w(X);var yc={};yc[m.nb]=37;yc[m.qb]=39;yc[m.sb]=32;var Ac={ca:1978.1,h:{},ob:yc,La:{},Ca:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},Y={ca:100,h:{},ob:{},La:{},Ca:{setup:120},Pb:{da:130,INIT:127},ha:{da:130,kc:1,jc:2,ic:4,hc:8,lc:16,ub:32,tb:63,Cc:64,rd:128,INIT:0},gc:127};Y.h[46]=3;Y.h[m.rc]=5;Y.h[m.qc]=6;Y.h[m.Lc]=7;Y.h[m.Fc]=8;Y.h[m.Ic]=9;
|
||||
Y.h[m.Q]=10;Y.h[39]=16;Y.h[221]=20;Y.h[219]=21;Y.h[m.Yb]=22;Y.h[m.Gc]=23;Y.h[m.xc]=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.sb]=70;Y.h[m.fc]=71;Y.h[m.Wb]=72;Y.h[m.Vb]=73;Y.h[m.nb]=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.ec]=87;Y.h[m.Xb]=88;Y.h[m.qb]=89;Y.h[m.Ac]=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.nc]=103;Y.h[m.Qb]=104;Y.h[m.Kc]=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.mc]=118;Y.h[m[" "]]=119;Y.h[m.Hc]=120;Y.h[m.Sb]=121;Y.h[m.Mc]=122;Y.h[120]=123;Y.h[17]=124;Y.h[16]=125;Y.h[20]=126;
|
||||
Y.Ja={l4:Y.ha.kc,l3:Y.ha.jc,l2:Y.ha.ic,l1:Y.ha.hc,locked:Y.ha.lc,local:Y.ha.ub,online:~Y.ha.ub};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.Ja[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.Ba&&void 0!==this.b.Ba[b])return this.A[e]=c,a=function(a,b){return function(c){c.preventDefault();Cc(a,b,!0)}}(this,this.b.Ba[b]),b=function(a,b){return function(){Cc(a,b,!1)}}(this,this.b.Ba[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=
|
||||
b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};X.prototype.ra=function(a,b,c,d){this.v=a;this.a=c;this.O=d;this.M=Wa(a,"ChipSet");ib(b,this,this.b.bb);jb(b,this,this.b.cb)};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.Pb.INIT,!1,0,-1]];k=X.prototype;k.reset=function(){this.j=[];this.b.INIT&&!this.restore(this.b.INIT)&&this.K("reset error")};
|
||||
k.save=function(){var a=new F(this);switch(this.b.ca){case Y.ca: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.ca){case Ac.ca:return!0;case Y.ca:return this.i=b[0],Dc(this,this.i&Y.ha.tb),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.Ja){var d=a.A["led-"+c];if(d){var e=a.b.Ja[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.ob[e]||e,!a.b.h[e]){for(var f in a.b.Ba)if(a.b.Ba[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].mb==b)break a;d=-1}if(c)0>d?a.j.push({mb:b,hb:Date.now(),$a:!1}):(a.j[d].hb=Date.now(),a.j[d].$a=!1);else if(0<=d){if(!a.j[d].$a){var e=a.j[d].hb;if(e&&100>Date.now()-e)return a.j[d].$a=!0,Ec(a),!0}a.j.splice(d,1)}if(a.M){d=0;switch(b){case "1p":d=V.Ca.sc;break;case "2p":d=V.Ca.wc;break;case "coin":d=V.Ca.Tb;break;case "left":d=V.Ca.uc;break;case "right":d=V.Ca.vc;break;case "fire":d=V.Ca.tc}d&&(a=a.M,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].$a){var d=a.j[b].mb,e=100-(Date.now()-a.j[b].hb);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.$c=function(){var a=this.g;0<=this.c&&(this.c<this.j.length?(a=this.j[this.c],this.c++,a=Y.h[a.mb],a&128&&(a&=127)):(this.c=-1,a=Y.gc),this.g=a,hc(this.a,1));return a};k.nd=function(a,b){this.i=b;this.f=!0;this.m=Hb(this.a);Dc(this,b&Y.ha.tb);b&Y.ha.Cc&&(this.c=0,hc(this.a,1))};Y.bb={130:X.prototype.$c};
|
||||
Y.cb={130:X.prototype.nd};za(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new X(d);Qa(d,c)}});
|
||||
function Fc(a,b,c,d,e){var f=this;this.La=ta("Gecko/");var g=["","moz","ms","webkit"];r.call(this,"Video",a,Fc);this.C=a.screenWidth;this.w=a.screenHeight;this.ja=a.bufferAddr;this.Oc=a.bufferRAM;var h=a.bufferFormat;this.U=h&&Gc[h.toUpperCase()]||Hc;this.H=a.bufferCols;this.W=a.bufferRows;this.Aa=this.T=a.cellWidth||1;this.P=a.cellHeight||1;this.X=null;this.Ka=!1;this.la=a.bufferBits||1;this.Pc=a.bufferLeft||0;if(this.c=a.bufferRotate)this.c=this.c%360,0<this.c&&(this.c-=360),-90!=this.c&&(this.K("unsupported buffer rotation: "+
|
||||
this.c),this.c=0);this.ma=a.interruptRate;this.Ab=a.refreshRate||60;this.u=b;this.f=c;this.R=(this.Sc=d)||b||null;this.Nc=this.C;this.Mb=this.w;this.Fa=this.C/this.H|0;this.Ga=this.w/this.W|0;1<this.P&&(this.W++,this.qa=0,this.ta=!1);b=a.smoothing;(c=Fa.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.K("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.Ha=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Ha){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);
|
||||
Y.La={l4:Y.ha.kc,l3:Y.ha.jc,l2:Y.ha.ic,l1:Y.ha.hc,locked:Y.ha.lc,local:Y.ha.ub,online:~Y.ha.ub};var xc={SI1978:Ac,VT100:Y};
|
||||
X.prototype.V=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.w[e]){if("led"==a&&this.b.La[b])return this.w[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.Ca&&void 0!==this.b.Ca[b])return this.w[e]=c,a=function(a,b){return function(c){c.preventDefault();Cc(a,b,!0)}}(this,this.b.Ca[b]),b=function(a,b){return function(){Cc(a,b,!1)}}(this,this.b.Ca[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=
|
||||
b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};X.prototype.ra=function(a,b,c,d){this.A=a;this.a=c;this.O=d;this.M=Wa(a,"ChipSet");ib(b,this,this.b.eb);jb(b,this,this.b.fb)};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.Pb.INIT,!1,0,-1]];k=X.prototype;k.reset=function(){this.j=[];this.b.INIT&&!this.restore(this.b.INIT)&&this.K("reset error")};
|
||||
k.save=function(){var a=new F(this);switch(this.b.ca){case Y.ca: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.ca){case Ac.ca:return!0;case Y.ca:return this.i=b[0],Dc(this,this.i&Y.ha.tb),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.La){var d=a.w["led-"+c];if(d){var e=a.b.La[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.ob[e]||e,!a.b.h[e]){for(var f in a.b.Ca)if(a.b.Ca[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].mb==b)break a;d=-1}if(c)0>d?a.j.push({mb:b,jb:Date.now(),bb:!1}):(a.j[d].jb=Date.now(),a.j[d].bb=!1);else if(0<=d){if(!a.j[d].bb){var e=a.j[d].jb;if(e&&100>Date.now()-e)return a.j[d].bb=!0,Ec(a),!0}a.j.splice(d,1)}if(a.M){d=0;switch(b){case "1p":d=V.Da.sc;break;case "2p":d=V.Da.wc;break;case "coin":d=V.Da.Tb;break;case "left":d=V.Da.uc;break;case "right":d=V.Da.vc;break;case "fire":d=V.Da.tc}d&&(a=a.M,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].bb){var d=a.j[b].mb,e=100-(Date.now()-a.j[b].jb);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.$c=function(){var a=this.g;0<=this.c&&(this.c<this.j.length?(a=this.j[this.c],this.c++,a=Y.h[a.mb],a&128&&(a&=127)):(this.c=-1,a=Y.gc),this.g=a,hc(this.a,1));return a};k.nd=function(a,b){this.i=b;this.f=!0;this.m=Hb(this.a);Dc(this,b&Y.ha.tb);b&Y.ha.Cc&&(this.c=0,hc(this.a,1))};Y.eb={130:X.prototype.$c};
|
||||
Y.fb={130:X.prototype.nd};za(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new X(d);Qa(d,c)}});
|
||||
function Fc(a,b,c,d,e){var f=this;this.Na=ta("Gecko/");var g=["","moz","ms","webkit"];r.call(this,"Video",a,Fc);this.C=a.screenWidth;this.v=a.screenHeight;this.ja=a.bufferAddr;this.Oc=a.bufferRAM;var h=a.bufferFormat;this.U=h&&Gc[h.toUpperCase()]||Hc;this.H=a.bufferCols;this.W=a.bufferRows;this.Ba=this.T=a.cellWidth||1;this.P=a.cellHeight||1;this.X=null;this.Ma=!1;this.la=a.bufferBits||1;this.Pc=a.bufferLeft||0;if(this.c=a.bufferRotate)this.c=this.c%360,0<this.c&&(this.c-=360),-90!=this.c&&(this.K("unsupported buffer rotation: "+
|
||||
this.c),this.c=0);this.ma=a.interruptRate;this.Ab=a.refreshRate||60;this.u=b;this.f=c;this.R=(this.Sc=d)||b||null;this.Nc=this.C;this.Mb=this.v;this.Ha=this.C/this.H|0;this.Ia=this.v/this.W|0;1<this.P&&(this.W++,this.qa=0,this.ta=!1);b=a.smoothing;(c=Fa.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.K("unsupported screen rotation: "+
|
||||
this.g),this.g=0):(this.f.translate(0,this.v),this.f.rotate(this.g*Math.PI/180),this.f.scale(this.v/this.C,this.C/this.v));if(this.b=e)if(this.b.Ja=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Ja){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.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){Jc(f,a,b,c)});this.va={}}w(Fc);var Hc=0,Gc={SI1978:1,VT100:2};
|
||||
function oc(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.Oc&&(a.B=(a.o*a.la>>3)*a.G,!$a(a.j,a.ja,a.B,3)))return!1;a.B?(a.Ma=a.f.createImageData(b,c),a.Oa=16/a.la|0,Kc(a,a.B>>1)):Kc(a,(a.H+1)*a.W);a.s=document.createElement("canvas");a.s.width=b;a.s.height=c;a.sa=a.s.getContext("2d");a.I={};a.S=1<<a.la;a.L=Array(a.S+2);a.L[0]=[0,0,0,255];a.L[1]=[255,255,255,255];1==a.U&&(a.L[a.S+0]=[255,255,0,255],a.L[a.S+1]=[0,255,0,255]);2==a.U&&(a.Hb=60,a.ua=!1,a.Z=Array(a.H));return!0}
|
||||
Fc.prototype.ra=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.O=d;oc(this);if(this.m=Wa(a,"Keyboard")){for(var e in this.va)this.m.V("led",e,this.va[e]);this.u&&this.m.V(this.Sc?"textarea":"canvas","kbd",this.R)}var f=this;this.Bb=Jb(this.a,function(){Nb(f)});Kb(this.a,this.Bb,1E3/Math.max(this.Ab,this.ma));this.Xa=0;this.M||B(this)};
|
||||
function Jc(a,b,c,d){if(d)a.K("Unable to load font ROM (error "+d+": "+b+")");else{La(a.ya,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.K("Unrecognized font data length ("+f.length+")");return}}catch(g){a.K("Font ROM data error: "+g.message);return}(a.f||a.O)&&B(a)}}
|
||||
function pc(a){a.X&&(a.Ka=2==a.U,a.I[96]=[Lc(a,a.T,a.P),Lc(a,a.T,a.P,a.ua)],a.I[64]=[Lc(a,2*a.T,a.P),Lc(a,2*a.T,a.P,a.ua)],a.I[32]=a.I[0]=[Lc(a,2*a.T,2*a.P),Lc(a,2*a.T,2*a.P,a.ua)])}
|
||||
function Lc(a,b,c,d){var e=8>=a.Aa?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 z=0,H=z;z<a.P;z++)for(var x=u*e+(f+z&e-1),x=d&&8==z?255:a.X[x],t=0;t<c/a.P;t++){for(var D=0,Q=0,U=Q;Q<a.T;Q++){for(var Z=x&128>>(7<Q?7:Q),D=a.Ka&&!Z&&D?D:Z,sa=0;sa<b/a.T;sa++)h&&(D=!D),Mc(a,n,U,H,D?1:0),U++;D=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.va[b]=c,!0;switch(b){case "fullScreen":return this.A[b]=c,this.b&&this.b.Ha?c.onclick=function(){d.Ha()}:c.parentNode.removeChild(c),!0}return!1};
|
||||
Fc.prototype.Ha=function(){var a=!1;if(this.b){if(this.b.Ha){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.La?(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.Ha();a=!0}this.R&&this.R.focus()}return a};
|
||||
function Ic(a,b){!b&&a.b&&(a.La?a.u.style.width=a.u.style.height="":a.b.style.width=a.b.style.height="")}function Kc(a,b){a.Na=b;a.N=!1;if(void 0===a.i||a.i.length!=a.Na)a.i=Array(a.Na)}function Mc(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.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.ma&&(120==a.ma?a.Xa&1?(hc(a.a,2),c=!1):hc(a.a,1):hc(a.a,4));if(c&&a.N&&a.B){for(var d=a.j,e=a.B,f=!0,g=a.ja>>>d.j;0<e&&g<d.b.length;)d.b[g].oa&&(d.b[g].oa=f=!1,d.b[g].Eb=!0),e-=d.c,g++;f&&(c=!1)}Kb(a.a,a.Bb,1E3/Math.max(a.Ab,a.ma));a.Xa++}if(c)if(1<a.T)switch(a.U){case 2:for(var c=a.ja,d=-1,e=0,f=60==a.Hb?2:5,h=g=0,l=-1;e<a.W;){var n=0,u=c,z=d,H=a.H;for(96!=z&&(H>>=1);;){var x=cb(a.j,u++);if(127==(x&127)){var t=cb(a.j,u++),d=t&96,c=(t&15)<<8|cb(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<=z)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,D=a.sa,Q=x&127;if(x=t.I[z][x&128?1:0]){var U=(Q&15)*x.T,Q=(Q>>4)*x.P,Z,sa,Pa,fb,zc=x.T,Lb=x.P;D?(Z=H*t.T,sa=e*t.P,Pa=t.T,fb=t.P):(Z=H*t.Fa,sa=e*t.Ga,Pa=t.Fa,fb=t.Ga);x.T>t.T&&(Z*=2,Pa*=2);x.P>t.P&&(z||(Q+=t.P),Lb=t.P);D?D.drawImage(x.canvas,U,Q,zc,Lb,Z,sa,Pa,fb):(Z+=0,sa+=0,t.f.drawImage(x.canvas,U,Q,zc,Lb,Z,
|
||||
sa,Pa,fb))}h++}g++}e++}}a.N=!0;!b&&a.ta&&1==h&&(a.i[l]=-1,h=0);a.ta=!1;(h||b)&&a.sa&&a.f.drawImage(a.s,0,a.qa,a.o,a.G-a.P,0,0,a.Nc,a.Mb)}else{e=a.ja;f=e+a.B;l=h=g=0;b=a.o;n=0;c=a.G;z=d=0;u=a.la;H=(1<<u)-1;a.Pc&&(u=-u,z=16+u);for(;e<f;){t=a.j;D=e;x=D&t.f;U=(D&t.g)>>>t.j;t=x!=t.f?t.b[U].Ib(x,D):t.b[U++].eb(x,D)|t.b[U&t.o].eb(0,D+1)<<8;if(a.N&&t===a.i[g])h+=a.Oa;else{a.i[g]=t;(D=z)&&(t=t>>8|(t&255)<<8);h<b&&(b=h);for(x=a.Oa;x--;)U=t>>D&H,Mc(a,a.Ma,h++,l,U),D+=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.sa.putImageData(a.Ma,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 oc(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.Oc&&(a.B=(a.o*a.la>>3)*a.G,!$a(a.j,a.ja,a.B,3)))return!1;a.B?(a.Oa=a.f.createImageData(b,c),a.Qa=16/a.la|0,Kc(a,a.B>>1)):Kc(a,(a.H+1)*a.W);a.s=document.createElement("canvas");a.s.width=b;a.s.height=c;a.sa=a.s.getContext("2d");a.I={};a.S=1<<a.la;a.L=Array(a.S+2);a.L[0]=[0,0,0,255];a.L[1]=[255,255,255,255];1==a.U&&(a.L[a.S+0]=[255,255,0,255],a.L[a.S+1]=[0,255,0,255]);2==a.U&&(a.Hb=60,a.ua=!1,a.Z=Array(a.H));return!0}
|
||||
Fc.prototype.ra=function(a,b,c,d){this.A=a;this.j=b;this.a=c;this.O=d;oc(this);if(this.m=Wa(a,"Keyboard")){for(var e in this.va)this.m.V("led",e,this.va[e]);this.u&&this.m.V(this.Sc?"textarea":"canvas","kbd",this.R)}var f=this;this.Bb=Jb(this.a,function(){Nb(f)});Kb(this.a,this.Bb,1E3/Math.max(this.Ab,this.ma));this.Za=0;this.M||B(this)};
|
||||
function Jc(a,b,c,d){if(d)a.K("Unable to load font ROM (error "+d+": "+b+")");else{La(a.za,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.K("Unrecognized font data length ("+f.length+")");return}}catch(g){a.K("Font ROM data error: "+g.message);return}(a.f||a.O)&&B(a)}}
|
||||
function pc(a){a.X&&(a.Ma=2==a.U,a.I[96]=[Lc(a,a.T,a.P),Lc(a,a.T,a.P,a.ua)],a.I[64]=[Lc(a,2*a.T,a.P),Lc(a,2*a.T,a.P,a.ua)],a.I[32]=a.I[0]=[Lc(a,2*a.T,2*a.P),Lc(a,2*a.T,2*a.P,a.ua)])}
|
||||
function Lc(a,b,c,d){var e=8>=a.Ba?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 z=0,H=z;z<a.P;z++)for(var x=u*e+(f+z&e-1),x=d&&8==z?255:a.X[x],t=0;t<c/a.P;t++){for(var D=0,Q=0,U=Q;Q<a.T;Q++){for(var Z=x&128>>(7<Q?7:Q),D=a.Ma&&!Z&&D?D:Z,sa=0;sa<b/a.T;sa++)h&&(D=!D),Mc(a,n,U,H,D?1:0),U++;D=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.va[b]=c,!0;switch(b){case "fullScreen":return this.w[b]=c,this.b&&this.b.Ja?c.onclick=function(){d.Ja()}:c.parentNode.removeChild(c),!0}return!1};
|
||||
Fc.prototype.Ja=function(){var a=!1;if(this.b){if(this.b.Ja){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.C/this.v;b>c&&(a=Math.round(c/b*100)+"%")}this.Na?(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.Ja();a=!0}this.R&&this.R.focus()}return a};
|
||||
function Ic(a,b){!b&&a.b&&(a.Na?a.u.style.width=a.u.style.height="":a.b.style.width=a.b.style.height="")}function Kc(a,b){a.Pa=b;a.N=!1;if(void 0===a.i||a.i.length!=a.Pa)a.i=Array(a.Pa)}function Mc(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.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.ma&&(120==a.ma?a.Za&1?(hc(a.a,2),c=!1):hc(a.a,1):hc(a.a,4));if(c&&a.N&&a.B){for(var d=a.j,e=a.B,f=!0,g=a.ja>>>d.j;0<e&&g<d.b.length;)d.b[g].oa&&(d.b[g].oa=f=!1,d.b[g].Eb=!0),e-=d.c,g++;f&&(c=!1)}Kb(a.a,a.Bb,1E3/Math.max(a.Ab,a.ma));a.Za++}if(c)if(1<a.T)switch(a.U){case 2:for(var c=a.ja,d=-1,e=0,f=60==a.Hb?2:5,h=g=0,l=-1;e<a.W;){var n=0,u=c,z=d,H=a.H;for(96!=z&&(H>>=1);;){var x=cb(a.j,u++);if(127==(x&127)){var t=cb(a.j,u++),d=t&96,c=(t&15)<<8|cb(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<=z)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,D=a.sa,Q=x&127;if(x=t.I[z][x&128?1:0]){var U=(Q&15)*x.T,Q=(Q>>4)*x.P,Z,sa,Pa,fb,zc=x.T,Lb=x.P;D?(Z=H*t.T,sa=e*t.P,Pa=t.T,fb=t.P):(Z=H*t.Ha,sa=e*t.Ia,Pa=t.Ha,fb=t.Ia);x.T>t.T&&(Z*=2,Pa*=2);x.P>t.P&&(z||(Q+=t.P),Lb=t.P);D?D.drawImage(x.canvas,U,Q,zc,Lb,Z,sa,Pa,fb):(Z+=0,sa+=0,t.f.drawImage(x.canvas,U,Q,zc,Lb,Z,
|
||||
sa,Pa,fb))}h++}g++}e++}}a.N=!0;!b&&a.ta&&1==h&&(a.i[l]=-1,h=0);a.ta=!1;(h||b)&&a.sa&&a.f.drawImage(a.s,0,a.qa,a.o,a.G-a.P,0,0,a.Nc,a.Mb)}else{e=a.ja;f=e+a.B;l=h=g=0;b=a.o;n=0;c=a.G;z=d=0;u=a.la;H=(1<<u)-1;a.Pc&&(u=-u,z=16+u);for(;e<f;){t=a.j;D=e;x=D&t.f;U=(D&t.g)>>>t.j;t=x!=t.f?t.b[U].Ib(x,D):t.b[U++].gb(x,D)|t.b[U&t.o].gb(0,D+1)<<8;if(a.N&&t===a.i[g])h+=a.Qa;else{a.i[g]=t;(D=z)&&(t=t>>8|(t&255)<<8);h<b&&(b=h);for(x=a.Qa;x--;)U=t>>D&H,Mc(a,a.Oa,h++,l,U),D+=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.sa.putImageData(a.Oa,0,0,b,c,e,d),a.f.drawImage(a.s,0,0,a.s.width,a.s.height,0,0,a.C,a.v))}}
|
||||
za(function(){for(var a=A(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=y(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||Fa.aspect);f&&.3<=f&&3.33>=f&&(ya("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");ta("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);Qa(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.N=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.Gb,receiveData:this.kb}}w(Nc);
|
||||
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.N=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.w[b])&&this.V(null,a,b))}this.g="";this.i=this.s=null;this.exports={connect:this.Gb,receiveData:this.kb}}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.kb(d);return!0},
|
||||
!0}return!1};k.ra=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.O=d;var e=this;this.S=Jb(this.a,function(){e.kb()});this.U=Jb(this.a,function(){e.fa|=5});this.M=Wa(a,"ChipSet");ib(b,this,Sc,this.L);jb(b,this,Tc,this.L);B(this)};
|
||||
k.Gb=function(){if(!this.i){var a=Ab(this.v,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ha(b[0]);if(c!=this.Va)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.ya+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.ga=function(a,b){if(!b)if(this.Gb(),!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}
|
||||
k.V=function(a,b,c,d){var e=this;switch(b){case Oc:return this.w[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.w[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.kb(d);return!0},
|
||||
!0}return!1};k.ra=function(a,b,c,d){this.A=a;this.j=b;this.a=c;this.O=d;var e=this;this.S=Jb(this.a,function(){e.kb()});this.U=Jb(this.a,function(){e.fa|=5});this.M=Wa(a,"ChipSet");ib(b,this,Sc,this.L);jb(b,this,Tc,this.L);B(this)};
|
||||
k.Gb=function(){if(!this.i){var a=Ab(this.A,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ha(b[0]);if(c!=this.Xa)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.za+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.ga=function(a,b){if(!b)if(this.Gb(),!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.v;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.v=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.kb=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&&Kb(this.a,this.S,Vc(this,15)));return!0};k.Uc=function(){var a=this.B;this.fa&=-3;return a};k.Tc=function(){return this.fa};
|
||||
k.cd=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.ea(this.c),this.c="";10!=b&&(this.c+=String.fromCharCode(b))}this.a&&Kb(this.a,this.U,Vc(this,240))};k.bd=function(a,b){this.o?(this.w=b,this.w&64&&(this.o=!1)):(this.m=b,this.o=!0)};k.ad=function(a,b){this.u=b};var Sc={0:Nc.prototype.Uc,1:Nc.prototype.Tc},Tc={0:Nc.prototype.cd,1:Nc.prototype.bd,2:Nc.prototype.ad};za(function(){for(var a=A(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Nc(d);Qa(d,c)}});
|
||||
function Wc(a,b,c){r.call(this,"Computer",a,Wc);this.l.Y=!1;Xc(this,b);this.w=Ab(this,"autoPower",a);this.f=0;this.M=a.busWidth||a.buswidth;this.b=Yc;this.s=null;this.v=this.G=!1;this.I=Ab(this,"url")||"";(Math.random()+.1).toString(36);this.c=Zc(this);if(this.a=Oa("CPU",this.id)){this.O=Oa("Debugger",this.id);this.m=[];for(b=null;b=Wa(this,"Video",b);)this.m.push(b);this.j=new Ya({id:this.ya+".bus",busWidth:this.M},this.a,this.O);var d,e=Ma(this.id);if((this.g=Oa("Panel",this.id))&&this.g.xa)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.K=this.g.K,d.ea=this.g.ea,d.xa=this.g.xa;this.ea("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.ra&&d.ra(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=Ab(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.K("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.Ra)}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.H=b}
|
||||
this.c){if(10==b||1024<=this.c.length)this.ea(this.c),this.c="";10!=b&&(this.c+=String.fromCharCode(b))}this.a&&Kb(this.a,this.U,Vc(this,240))};k.bd=function(a,b){this.o?(this.v=b,this.v&64&&(this.o=!1)):(this.m=b,this.o=!0)};k.ad=function(a,b){this.u=b};var Sc={0:Nc.prototype.Uc,1:Nc.prototype.Tc},Tc={0:Nc.prototype.cd,1:Nc.prototype.bd,2:Nc.prototype.ad};za(function(){for(var a=A(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Nc(d);Qa(d,c)}});
|
||||
function Wc(a,b,c){r.call(this,"Computer",a,Wc);this.l.Y=!1;Xc(this,b);this.v=Ab(this,"autoPower",a);this.f=0;this.M=a.busWidth||a.buswidth;this.b=Yc;this.s=null;this.A=this.G=!1;this.I=Ab(this,"url")||"";(Math.random()+.1).toString(36);this.c=Zc(this);if(this.a=Oa("CPU",this.id)){this.O=Oa("Debugger",this.id);this.m=[];for(b=null;b=Wa(this,"Video",b);)this.m.push(b);this.j=new Ya({id:this.za+".bus",busWidth:this.M},this.a,this.O);var d,e=Ma(this.id);if((this.g=Oa("Panel",this.id))&&this.g.ya)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.K=this.g.K,d.ea=this.g.ea,d.ya=this.g.ya;this.ea("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.ra&&d.ra(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=Ab(this,"state")||(f=!0,a.state))b=this.B=a,f||(this.A=!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.A=!0);if(b){var g=this;la(b,null,!0,function(a,b,c){c?(g.o=null,g.A=!1,g.K("Unable to load machine state from server (error "+c+(b?": "+ha(b):"")+")")):(g.s=b,g.G=!0);B(g)})}else B(this);this.w.power||(this.v=!0);!c&&this.v&&bd(this,this.Ta)}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.H=b}
|
||||
function Ab(a,b,c){var d=b.toLowerCase(),d=Fa[b]||Fa[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 bd(a,b,c){for(var d=Ma(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Sa(f)){Sa(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.K("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.Ra=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||na("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"==
|
||||
k.Ta=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.A;if(1==a||na("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.K("Error: "+g),"unable to verify user"==g&&(ra("user",""),this.c=null)):this.ea(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=Ma(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.Db,b):this.Db(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.yb)for(a=b.yb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
k.Db=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.Qa());this.C&&(ed(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
|
||||
k.Db=function(a){var b=a[0],c=0>a[1];a=a[2];this.L=!0;this.l.Y=!0;var d=this.w.power;d&&(d.textContent="Shutdown");this.a&&(hd(this,this.a,b,c,a),this.a.Sa());this.C&&(ed(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
|
||||
function ed(a,b){if(na("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&&Eb(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=Ma(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=Ma(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.j&&c.reset&&c.reset()}};
|
||||
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.w.power)&&(b.textContent="Power");a.f=0;return e}k.reset=function(){this.j&&this.j.reset&&this.j.reset();for(var a=Ma(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=Ma(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=Ma(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.Ra))},!0;case "reset":return this.A[b]=c,c.onclick=function(){if(d.l.Y&&!d.f)if(d.b&&!d.o){var a=na("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.Ra(Yc)}else d.reset(),d.a&&d.a.Qa()},!0;case "save":if(da())c.parentNode.removeChild(c);else return this.A[b]=
|
||||
k.V=function(a,b,c){var d=this;switch(b){case "power":return this.w[b]=c,c.onclick=function(){d.f||(d.l.Y?id(d,!1,!0):bd(d,d.Ta))},!0;case "reset":return this.w[b]=c,c.onclick=function(){if(d.l.Y&&!d.f)if(d.b&&!d.o){var a=na("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.Ta(Yc)}else d.reset(),d.a&&d.a.Sa()},!0;case "save":if(da())c.parentNode.removeChild(c);else return this.w[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.K("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Zc(a,b){var c=a.c;c||((c=qa("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.K("The user ID is invalid.")):b&&a.K("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&&(ra("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.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),ra("user",""),a.c=null)}}
|
||||
function Wa(a,b,c){a=Ma(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.Da=function(a){this.a&&this.a.Da(a);this.g&&this.g.Da(a)};
|
||||
za(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=y(f),g=new Wc(g,d,!0);Qa(g,f);g.w&&bd(g,g.Ra)}});ua.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=Oa("Computer",c.id))&&c.L&&!c.l.Y&&c.Ra(-1)}});
|
||||
function Wa(a,b,c){a=Ma(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.Fa=function(a){this.a&&this.a.Fa(a);this.g&&this.g.Fa(a)};
|
||||
za(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=y(f),g=new Wc(g,d,!0);Qa(g,f);g.v&&bd(g,g.Ta)}});ua.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=Oa("Computer",c.id))&&c.L&&!c.l.Y&&c.Ta(-1)}});
|
||||
ua.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(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.O=a.O;fd(this,a.Qc)}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(pa()){var c=JSON.stringify(a[a.id]);ra(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:pa()&&(b=qa(a.key))?(a[a.id]=b,a.a=!0):!1}var md=0;
|
||||
|
|
|
|||
|
|
@ -656,7 +656,7 @@ function zp(a,b){var c=0,d,e=!0;b||(b=[0,0,128,Array(9),0,0,0,[]]);a.hb=b[c++];c
|
|||
n[t++];g.eb=n[t++];g.pb=null;g.za||(g.Oe="");var A=n[t++];102==A&&(A=!1);"boolean"==typeof A?(q=n[t++],n=n[t],A?(t=k.A[m],Ep(k,m,!0,!0),t.bf=!0,m=new Lo(k,t,"preload"),k.pj(t,m,q,n,!0)):Gp(k,m,q,n,!0)?g.za&&n&&Hp(k,q,n,g.za):xb(k,!1)):void 0!==A&&g.za&&0>g.za.restore(A)&&(h=!1);h&&g.za&&void 0!==g.eb&&(g.pb=g.za.seek(g.Qb,g.kb,g.xb));h||(e=!1)}a.W=b[c++]||0;a.jc=b[c]||0;return e}
|
||||
function Fp(a){var b=0,c=[];c[b++]=a.hb;c[b++]=0;c[b++]=a.ma;c[b++]=a.V;c[b++]=a.L;c[b++]=a.C;c[b++]=a.aa;for(var d=b++,e=0,f=[],g=0;g<a.A.length;g++){var h=e++,k=a.A[g],m=0,n=[];n[m++]=k.Cb;n[m++]=[k.name,k.Bb,k.ub,k.lb,k.Va,k.cf,k.Fg,k.Qf,k.Rf];n[m++]=k.kb;n[m++]=k.ee+100;n[m++]=k.Qb;n[m++]=k.xb;n[m++]=k.fe;n[m++]=k.Hb;n[m++]=k.eb;n[m++]=k.bf;n[m++]=k.Tk;n[m]=k.Oe;f[h]=n}c[d]=f;d=b++;for(e=0;e<a.A.length;e++)f=a.A[e],f.za&&Ip(a,f.Oe,f.za);c[d]=a.B;c[b++]=a.W;c[b]=a.jc;return c}
|
||||
l.mj=function(a){var b;a=this.A[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b};l.Uk=function(a,b,c){if(a.za){var d=a.za.info(),e=d[2],f=d[1]*e;if(b+c<=d[0]*f)return a.Qb=Math.floor(b/f),b%=f,a.kb=Math.floor(b/e),a.xb=b%e+1,a.Hb=c*d[3],a.Cb=0,!0}return!1};
|
||||
function Dp(a,b){b||(a.ea=0);if(a.U)for(var c in a.U){var d=a.U[c],e=d.path,f;if(!(f=d.name))a:{if((f=a.qa.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=ja(e,!0)}if(e&&f&&(g=c.charCodeAt(0)-65,0<=g&&g<a.A.length)){!Gp(a,g,f,e,!0)&&b&&xb(a,!1);continue}a.Na("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.ea}
|
||||
function Dp(a,b){b||(a.ea=0);if(a.U)for(var c in a.U){var d=a.U[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.qa.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=ja(e,!0)}if(e&&f&&(g=c.charCodeAt(0)-65,0<=g&&g<a.A.length)){!Gp(a,g,f,e,!0)&&b&&xb(a,!1);continue}a.Na("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.ea}
|
||||
function yp(a,b,c,d){var e,f=a.qa.listDrives;if(f&&!isNaN(e=ea(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.Na('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=ja(c)}for(;0>Gp(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;h<f.B.length;h++)if(f.B[h][1]==g){f.B.splice(h,1);break}Ep(a,e,!1,
|
||||
!0)}}else Ep(a,e);else a.Na("Unable to load the selected drive")}function Gp(a,b,c,d,e,f){var g=a.A[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.Oe.toLowerCase()!=d.toLowerCase())){Ep(a,b,e,!0);if(g.$e)return a.Na("Drive "+b+" busy"),0;g.$e=!0;e&&(g.Ce=!0,a.ea++,z(a)&&y(a,"loading diskette '"+c+"'"));g.bf=!!f;return(new Lo(a,g,"preload")).load(c,d,f,a.pj)?1:0}return-1}
|
||||
l.pj=function(a,b,c,d,e){var f;a.$e=!1;b&&(f=b.info(),b&&f[0]>a.Bb||f[1]>a.ub)&&(this.Na('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.hb)),b=null);b?(a.za=b,a.Tk=c,a.Oe=d,Hp(this,c,d,b),f=b.info(),this.W|=128,this.Na('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.hb),a.Ce||e),a.Fg=f[0],a.Qf=f[1],a.Rf=f[2],this.X&&this.X.wd()):a.bf=!1;a.Ce&&(a.Ce=!1,--this.ea||xb(this));xp(this,a.hb)};
|
||||
|
|
|
|||
|
|
@ -604,7 +604,7 @@ function xm(a,b){var c=0,d,e=!0;b||(b=[0,0,128,Array(9),0,0,0,[]]);a.Qa=b[c++];c
|
|||
80;g.eb=9;break;case 1200:g.ib=80;g.eb=15;break;case 1440:g.ib=80,g.eb=18}}var k=a,m=d,q=f[d],y=0;h=!0;g.Qa=m;g.ne=g.pe=!1;q||(q=[192,!0,0,2,0]);"boolean"==typeof q[1]&&(q[1]=["Floppy Drive",g.ib||40,g.jb||q[3],g.eb||9,g.nb||512,q[1],g.Nf,g.Xe,g.Ye]);g.kb=q[y++];var w=q[y++];g.name=w[0];g.ib=w[1];g.jb=w[2];g.eb=w[3];g.nb=w[4];g.qe=w[5];(g.Nf=w[6])?(g.Xe=w[7],g.Ye=w[8]):(g.Nf=g.ib,g.Xe=g.jb,g.Ye=g.eb);g.Ya=q[y++];g.ud=q[y++];g.wb=q[y++];g.ud=100<=g.ud?g.ud-100:g.ud-g.wb;g.mb=q[y++];g.vd=q[y++];g.vb=
|
||||
q[y++];g.Ua=q[y++];g.Wa=null;g.ta||(g.Xd="");var z=q[y++];102==z&&(z=!1);"boolean"==typeof z?(w=q[y++],q=q[y],z?(y=k.B[m],Cm(k,m,!0,!0),y.pe=!0,m=new cm(k,y,"preload"),k.oi(y,m,w,q,!0)):Em(k,m,w,q,!0)?g.ta&&q&&Fm(k,w,q,g.ta):t(k,!1)):void 0!==z&&g.ta&&0>g.ta.restore(z)&&(h=!1);h&&g.ta&&void 0!==g.Ua&&(g.Wa=g.ta.seek(g.wb,g.Ya,g.mb));h||(e=!1)}a.L=b[c++]||0;a.H=b[c]||0;return e}
|
||||
function Dm(a){var b=0,c=[];c[b++]=a.Qa;c[b++]=0;c[b++]=a.aa;c[b++]=a.I;c[b++]=a.G;c[b++]=a.D;c[b++]=a.P;for(var d=b++,e=0,f=[],g=0;g<a.B.length;g++){var h=e++,k=a.B[g],m=0,q=[];q[m++]=k.kb;q[m++]=[k.name,k.ib,k.jb,k.eb,k.nb,k.qe,k.Nf,k.Xe,k.Ye];q[m++]=k.Ya;q[m++]=k.ud+100;q[m++]=k.wb;q[m++]=k.mb;q[m++]=k.vd;q[m++]=k.vb;q[m++]=k.Ua;q[m++]=k.pe;q[m++]=k.Jj;q[m]=k.Xd;f[h]=q}c[d]=f;d=b++;for(e=0;e<a.B.length;e++)f=a.B[e],f.ta&&Gm(a,f.Xd,f.ta);c[d]=a.C;c[b++]=a.L;c[b]=a.H;return c}
|
||||
function Bm(a,b){b||(a.R=0);if(a.K)for(var c in a.K){var d=a.K[c],e=d.path,f;if(!(f=d.name))a:{if((f=a.la.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=ga(e,!0)}if(e&&f&&(g=c.charCodeAt(0)-65,0<=g&&g<a.B.length)){!Em(a,g,f,e,!0)&&b&&t(a,!1);continue}a.Ba("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.R}
|
||||
function Bm(a,b){b||(a.R=0);if(a.K)for(var c in a.K){var d=a.K[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.la.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=ga(e,!0)}if(e&&f&&(g=c.charCodeAt(0)-65,0<=g&&g<a.B.length)){!Em(a,g,f,e,!0)&&b&&t(a,!1);continue}a.Ba("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.R}
|
||||
function wm(a,b,c,d){var e,f=a.la.listDrives;if(f&&!isNaN(e=ea(f.value,10))&&0<=e&&e<a.B.length)if(c)if("?"==c)a.Ba('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=ga(c)}for(;0>Em(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;h<f.C.length;h++)if(f.C[h][1]==g){f.C.splice(h,1);break}Cm(a,e,!1,
|
||||
!0)}}else Cm(a,e);else a.Ba("Unable to load the selected drive")}function Em(a,b,c,d,e,f){var g=a.B[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.Xd.toLowerCase()!=d.toLowerCase())){Cm(a,b,e,!0);if(g.ne)return a.Ba("Drive "+b+" busy"),0;g.ne=!0;e&&(g.Od=!0,a.R++);g.pe=!!f;return(new cm(a,g,"preload")).load(c,d,f,a.oi)?1:0}return-1}
|
||||
l.oi=function(a,b,c,d,e){var f;a.ne=!1;b&&(f=b.info(),b&&f[0]>a.ib||f[1]>a.jb)&&(this.Ba('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Qa)),b=null);b?(a.ta=b,a.Jj=c,a.Xd=d,Fm(this,c,d,b),f=b.info(),this.L|=128,this.Ba('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Qa),a.Od||e),a.Nf=f[0],a.Xe=f[1],a.Ye=f[2],this.ba&&xc(this.ba)):a.pe=!1;a.Od&&(a.Od=!1,--this.R||t(this));vm(this,a.Qa)};
|
||||
|
|
|
|||
|
|
@ -28,243 +28,245 @@
|
|||
http://pcjs.org/modules/pdp11/lib/computer.js (C) Jeff Parsons 2012-2016
|
||||
http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2016
|
||||
*/
|
||||
for(var k,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,da=["Math","log2"],ea=0;ea<da.length-1;ea++){var fa=da[ea];fa in ba||(ba[fa]={});ba=ba[fa]}var ga=da[da.length-1],ha=ba[ga],ma=ha?ha:function(a){return Math.log(a)/Math.LN2};
|
||||
ma!=ha&&null!=ma&&aa(ba,ga,{configurable:!0,writable:!0,value:ma});function na(a,b,c){var d="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}function l(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}
|
||||
for(var k,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,da=["Math","log2"],ea=0;ea<da.length-1;ea++){var fa=da[ea];fa in ba||(ba[fa]={});ba=ba[fa]}var ga=da[da.length-1],ha=ba[ga],ia=ha?ha:function(a){return Math.log(a)/Math.LN2};
|
||||
ia!=ha&&null!=ia&&aa(ba,ga,{configurable:!0,writable:!0,value:ia});function na(a,b,c){var d="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}function l(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}
|
||||
function oa(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function pa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function qa(){var a=ra();return-1!==a.indexOf("pcjs.org",a.length-8)}var sa={"&":"&","<":"<",">":">",'"':""","'":"'"};function ta(a){return a.replace(/[&<>"']/g,function(a){return sa[a]})}
|
||||
function ua(a,b){return(a+" ").slice(0,b)}function va(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var wa={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"};
|
||||
function ya(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}var za=Date.now||function(){return+new Date};function Aa(){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 Ba(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"==
|
||||
typeof b){var m="",p;for(p in b)b.hasOwnProperty(p)&&(m&&(m+="&"),m+=p+"="+encodeURIComponent(b[p]));m=m.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(m)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
|
||||
function Ca(a,b){var c,d={ia:null,ka:null,Lb:null,Kb:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Lb=g.load;d.Kb=g.exec;if(e=g.bytes)d.ia=e;else if(e=g.words)for(d.ia=Array(2*e.length),f=c=0;c<e.length;c++)d.ia[f++]=e[c]&255,d.ia[f++]=e[c]>>8&255;else if(e=g.data)for(d.ia=Array(4*e.length),f=c=0;c<e.length;c++)d.ia[f++]=
|
||||
e[c]&255,d.ia[f++]=e[c]>>8&255,d.ia[f++]=e[c]>>16&255,d.ia[f++]=e[c]>>24&255;else d.ia=g;d.ka=g.symbols;d.ia.length?1==d.ia.length&&(n(d.ia[0]),d=null):(n("Empty resource: "+a),d=null)}catch(h){n("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){n("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ia=e)}return d}
|
||||
function Ca(a,b){var c,d={ha:null,ka:null,Ua:null,Ta:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Ua=g.load;d.Ta=g.exec;if(e=g.bytes)d.ha=e;else if(e=g.words)for(d.ha=Array(2*e.length),f=c=0;c<e.length;c++)d.ha[f++]=e[c]&255,d.ha[f++]=e[c]>>8&255;else if(e=g.data)for(d.ha=Array(4*e.length),f=c=0;c<e.length;c++)d.ha[f++]=
|
||||
e[c]&255,d.ha[f++]=e[c]>>8&255,d.ha[f++]=e[c]>>16&255,d.ha[f++]=e[c]>>24&255;else d.ha=g;d.ka=g.symbols;d.ha.length?1==d.ha.length&&(n(d.ha[0]),d=null):(n("Empty resource: "+a),d=null)}catch(h){n("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){n("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ha=e)}return d}
|
||||
function ra(){return"http://"+(window?window.location.host:"www.pcjs.org")}function n(a){window&&window.alert(a)}function Da(a){var b=!1;window&&(b=window.confirm(a));return b}var Ea=null;function Ia(){if(null==Ea){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}Ea=a}return Ea}
|
||||
function Ja(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Ka(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function La(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Ma(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function Na(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 Oa={init:[],show:[],exit:[]},Pa=!1,Qa=!1,Ra=!0;function Sa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ta(a){Oa.init.push(a)}
|
||||
function Ua(a){if(Ra)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){n(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Va(a){!Ra&&a?(Ra=!0,Pa&&Wa("init"),Qa&&Wa("show")):Ra=a}function Wa(a){Oa[a]&&Ua(Oa[a])}Sa("onload",function(){Pa=!0;Ua(Oa.init)});Sa("onpageshow",function(){Qa=!0;Ua(Oa.show)});Sa(La("Opera")||La("iOS")?"onunload":"onbeforeunload",function(){Ua(Oa.exit)});
|
||||
function r(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Yb=b.comment;this.tc=b;b=this.id.indexOf(".");0>b?this.Xa=this.id:(this.Ra=this.id.substr(0,b),this.Xa=this.id.substr(b+1));this[a]=c;this.v={ready:!1,Ia:!1,Ib:!1,ha:!1,error:!1};this.zb=null;this.v.error=!1;this.J={};this.i=null;this.la=d||0;t.push(this)}var cb=void 0,db={};
|
||||
function r(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Zb=b.comment;this.tc=b;b=this.id.indexOf(".");0>b?this.Za=this.id:(this.Ra=this.id.substr(0,b),this.Za=this.id.substr(b+1));this[a]=c;this.v={ready:!1,Ia:!1,Lb:!1,ga:!1,error:!1};this.Bb=null;this.v.error=!1;this.I={};this.i=null;this.la=d||0;t.push(this)}var cb=void 0,db={};
|
||||
if(window){cb||(cb=window.location.search.substr(1));for(var eb,fb=/\+/g,gb=/([^&=]+)=?([^&]*)/g;eb=gb.exec(cb);)db[decodeURIComponent(eb[1].replace(fb," "))]=decodeURIComponent(eb[2].replace(fb," "))}function hb(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 u(a,b){b||(b=r);a.prototype=hb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var ib=window.PCjs.Machines||(window.PCjs.Machines={}),t=window.PCjs.Components||(window.PCjs.Components=[])}else ib={},t=[];function jb(a,b,c){ib[a]&&b&&(ib[a][b]=c)}function kb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<t.length;b++){var d=t[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||
function lb(a){if(void 0!==a){var b;for(b=0;b<t.length;b++)if(t[b].id===a)return t[b]}return null}function mb(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<t.length;d++)if(c)c==t[d]&&(c=null);else if(!(a!=t[d].type||b&&t[d].id.indexOf(b)))return t[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){n(c.message+" ("+a+")")}return b}
|
||||
function A(a,b){b=B(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,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(" "),m=0;m<h.length;m++)switch(g=h[m],g){case "pdp11-binding":(g=z(f))&&g.binding&&a.ra(g.type,g.binding,f,g.value),m=h.length}}}}
|
||||
function B(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var 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},ra:function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.Ta=this.J[b]=c,c.value="",this.j=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.ga=function(a){this.j(a,this.Xa)}),!0;default:return!1}},log:function(){},j:function(){},status:function(a){this.j(this.Xa+": "+a)},ga:function(a,b,c){c=c||this.type;b||n((c?c+": ":"")+a)},Aa:function(){return this.v.ha=!0},za:function(a,b){b&&(this.v.ha=!1);return!0}};function C(a,b,c,d){a.i&&(!0===c||D(a,c|0))&&a.i.message(b,d)}function D(a,b){if(a.i){a===a.i?b|=0:b=b||a.la;var c=a.i.la&b;return!!b&&c===b||!!(c&a.i.nc)}return!1}
|
||||
function nb(a,b){if(a.v.Ib)return a.v.Ia=!1,a.v.Ib=!1;if(a.v.error)return a.j(a.toString()+" error"),!1;a.v.Ia=b;return a.v.Ia}function ob(a,b){a.v.Ia&&(b?a.v.Ib=!0:void 0===b&&a.j(a.toString()+" busy"));return a.v.Ia}function H(a){if(!a.v.error&&(a.v.ready=!0,a.v.ready)){var b=a.zb;a.zb=null;b&&b()}}function pb(a,b){b&&(a.v.ready?b():a.zb=b);return a.v.ready}function qb(a){return a.v.error?(a.j(a.toString()+" error"),!0):!1}function rb(a,b){a.v.error=!0;a.ga(b)}
|
||||
r.prototype={constructor:r,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ra:function(a,b,c){switch(b){case "clear":return this.I[b]||(this.I[b]=c,c.onclick=function(a){return function(){a.I.print&&(a.I.print.value="")}}(this)),!0;case "print":return this.I[b]||(this.Va=this.I[b]=c,c.value="",this.j=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.ja=function(a){this.j(a,this.Za)}),!0;default:return!1}},log:function(){},j:function(){},status:function(a){this.j(this.Za+": "+a)},ja:function(a,b,c){c=c||this.type;b||n((c?c+": ":"")+a)},Aa:function(){return this.v.ga=!0},za:function(a,b){b&&(this.v.ga=!1);return!0}};function C(a,b,c,d){a.i&&(!0===c||D(a,c|0))&&a.i.message(b,d)}function D(a,b){if(a.i){a===a.i?b|=0:b=b||a.la;var c=a.i.la&b;return!!b&&c===b||!!(c&a.i.nc)}return!1}
|
||||
function nb(a,b){if(a.v.Lb)return a.v.Ia=!1,a.v.Lb=!1;if(a.v.error)return a.j(a.toString()+" error"),!1;a.v.Ia=b;return a.v.Ia}function ob(a,b){a.v.Ia&&(b?a.v.Lb=!0:void 0===b&&a.j(a.toString()+" busy"));return a.v.Ia}function H(a){if(!a.v.error&&(a.v.ready=!0,a.v.ready)){var b=a.Bb;a.Bb=null;b&&b()}}function pb(a,b){b&&(a.v.ready?b():a.Bb=b);return a.v.ready}function qb(a){return a.v.error?(a.j(a.toString()+" error"),!0):!1}function rb(a,b){a.v.error=!0;a.ja(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 sb="undefined"!==typeof ArrayBuffer,tb={cpu:1,trap:16,bus:64,memory:128,device:256,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){r.call(this,"Panel",a,ub);this.f=0;this.v.Wb=!0}u(ub);k=ub.prototype;
|
||||
k.ra=function(a,b,c,d){if(this.D&&this.D.ra(a,b,c,d)||this.b&&this.b.ra(a,b,c,d)||this.i&&this.i.ra(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.J[b]=c,this.f++,!0;default:return"rled"==a?(this.J[b]=c,this.f++,!0):this.parent.ra.call(this,a,b,c,d)}};k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d};k.Aa=function(a,b){b||Ib();return!0};k.za=function(){return!0};
|
||||
function Jb(a,b,c,d){if(a.J[b]){void 0===c&&(rb(a,"Value for "+b+" is invalid"),a.b.da());var e=a.i&&a.i.ma||8;c=!a.b.v.ca||a.v.Wb?8==e?na(c,d):l(c,d):"--------".substr(0,d||4);a.J[b].textContent!=c&&(a.J[b].textContent=c)}}function Kb(a,b,c,d){for(var e=0;e<d;e++){var f=a.J[b+e];f&&(f.style.backgroundColor=c&1<<e?"#ff0000":"#000000")}}
|
||||
k.$=function(a){if(this.f&&(a||!this.b.v.ca||this.v.Wb)){for(a=0;a<this.b.u.length;a++)Jb(this,"R"+a,this.b.u[a]);a=Lb(this.b);Jb(this,"PS",a);Jb(this,"NF",a&8?1:0,1);Jb(this,"ZF",a&4?1:0,1);Jb(this,"VF",a&2?1:0,1);Jb(this,"CF",a&1?1:0,1);Kb(this,"D",this.b.u[0],16);Kb(this,"A",this.b.u[7],22)}};function Ib(){for(var a=!1,b=B(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=z(d),f=lb(e.id);f||(a=!0,f=new ub(e));A(f,d);a&&H(f)}}Ta(Ib);
|
||||
function Mb(a,b,c){r.call(this,"Bus",a,Mb,64);this.b=b;this.i=c;this.M=a.busWidth||16;this.g=0;this.K=[];this.F=null;this.H=Math.pow(2,this.M);this.f=this.H-1|0;this.ua=Nb;this.ja=Math.log2(this.ua);this.I=this.ua>>2;this.w=this.ua-1;this.B=this.H/this.ua|0;this.Ha=[];this.A=0;this.D=[];this.mc=[Ob,Pb,Qb,Rb];a=new I(this);Sb(a,this.i);this.W=Array(this.B);for(b=0;b<this.B;b++)this.W[b]=a;H(this)}u(Mb);var Nb=8192,Tb=Nb-1;
|
||||
var sb="undefined"!==typeof ArrayBuffer,tb={cpu:1,trap:16,bus:64,memory:128,device:256,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){r.call(this,"Panel",a,ub);this.f=0;this.v.Xb=!0}u(ub);k=ub.prototype;
|
||||
k.ra=function(a,b,c,d){if(this.D&&this.D.ra(a,b,c,d)||this.b&&this.b.ra(a,b,c,d)||this.i&&this.i.ra(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.I[b]=c,this.f++,!0;default:return"rled"==a?(this.I[b]=c,this.f++,!0):this.parent.ra.call(this,a,b,c,d)}};k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d};k.Aa=function(a,b){b||Ib();return!0};k.za=function(){return!0};
|
||||
function Jb(a,b,c,d){if(a.I[b]){void 0===c&&(rb(a,"Value for "+b+" is invalid"),a.b.aa());var e=a.i&&a.i.ma||8;c=!a.b.v.da||a.v.Xb?8==e?na(c,d):l(c,d):"--------".substr(0,d||4);a.I[b].textContent!=c&&(a.I[b].textContent=c)}}function Kb(a,b,c,d){for(var e=0;e<d;e++){var f=a.I[b+e];f&&(f.style.backgroundColor=c&1<<e?"#ff0000":"#000000")}}
|
||||
k.$=function(a){if(this.f&&(a||!this.b.v.da||this.v.Xb)){for(a=0;a<this.b.u.length;a++)Jb(this,"R"+a,this.b.u[a]);a=Lb(this.b);Jb(this,"PS",a);Jb(this,"NF",a&8?1:0,1);Jb(this,"ZF",a&4?1:0,1);Jb(this,"VF",a&2?1:0,1);Jb(this,"CF",a&1?1:0,1);Kb(this,"D",this.b.u[0],16);Kb(this,"A",this.b.u[7],22)}};function Ib(){for(var a=!1,b=B(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=z(d),f=lb(e.id);f||(a=!0,f=new ub(e));A(f,d);a&&H(f)}}Ta(Ib);
|
||||
function Mb(a,b,c){r.call(this,"Bus",a,Mb,64);this.b=b;this.i=c;this.M=a.busWidth||16;this.g=0;this.K=[];this.F=null;this.H=Math.pow(2,this.M);this.f=this.H-1|0;this.ua=Nb;this.ia=Math.log2(this.ua);this.J=this.ua>>2;this.w=this.ua-1;this.C=this.H/this.ua|0;this.Ha=[];this.A=0;this.D=[];this.mc=[Ob,Pb,Qb,Rb];a=new I(this);Sb(a,this.i);this.W=Array(this.C);for(b=0;b<this.C;b++)this.W[b]=a;H(this)}u(Mb);var Nb=8192,Tb=Nb-1;
|
||||
function Ob(a,b){var c=-1,d=this.controller,e=d.Ha[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.Ha[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.i&&D(this.i,64)&&C(this.i,e[4]+".readByte("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!0);this.i&&D(this.i,64)&&C(this.i,"warning: unconverted read access to byte @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c}
|
||||
function Pb(a,b,c){var d=!1,e=this.controller,f=e.Ha[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.Ha[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d?this.i&&D(this.i,64)&&C(this.i,f[4]+".writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!0,b),this.i&&D(this.i,64)&&C(this.i,"warning: unconverted write access to byte @"+J(this.i,c)+": "+J(this.i,b),!0,!0))}
|
||||
function Qb(a,b){var c=-1,d=this.controller;(a=d.Ha[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));if(0<=c)return this.i&&D(this.i,64)&&C(this.i,a[4]+".readWord("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!1);this.i&&D(this.i,64)&&C(this.i,"warning: unconverted read access to word @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c}
|
||||
function Rb(a,b,c){var d=!1,e=this.controller;if(a=e.Ha[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?this.i&&D(this.i,64)&&C(this.i,a[4]+".writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!1,b),this.i&&D(this.i,64)&&C(this.i,"warning: unconverted write access to word @"+J(this.i,c)+": "+J(this.i,b),!0,!0))}
|
||||
function Vb(a,b){if(b!=a.g){var c;a.g&&(c=(1<<a.g)-Nb,Wb(a,c,Nb,a.K),a.g=0);b&&(a.g=b,c=(1<<b)-Nb,a.K=Xb(a,c,Nb),a.F?Wb(a,c,Nb,a.F):(Yb(a,c,Nb,Zb,a),a.F=Xb(a,c,Nb)))}}k=Mb.prototype;k.reset=function(){for(var a=0;a<this.D.length;a++)this.D[a]();Vb(this,16)};function Ub(a,b,c,d){if(a.i&&D(a.i,536870912)&&(C(a.i,"warning: unknown I/O access ("+J(a.i,b)+","+J(a.i,d,c?1:2)+")",!0,!0),$b(a.i)))return 0;a.A||a.b.ea(4,b);return 0}k.Aa=function(a,b){b||this.reset();return!0};
|
||||
function Yb(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.ja;0<g&&h<a.W.length;){var m=a.W[h],p=h*a.ua,q=a.ua-(f-p);q>g&&(q=g);if(!e&&m&&m.size){if(m.type==d){if(f+g<=m.C)return m.vb+=m.C-f,m.C=f,!0;if(f>=m.C+m.vb){q=m.size-(f-p);q>g&&(q=g);m.vb=f-m.C+q;f=p+a.ua;g-=q;h++;continue}}return ac(1,f,g)}f=new I(a,f,q,a.ua,d,e);Sb(f,a.i,m);a.W[h++]=f;f=p+a.ua;g-=q}if(0>=g){c/=1024;var v;e="";v?10<v&&(v=10):v=c&-65536?10:5;if(null==c||isNaN(c))for(;0<v--;)e="?"+e;else for(;0<v--;)e=String.fromCharCode(c%10+48)+e,c/=
|
||||
10;a.status(e+"Kb "+bc[d]+" at "+na(b));return!0}return ac(2,b,c)}function Xb(a,b,c){var d=[];for(b>>>=a.ja;0<c&&b<a.W.length;)d.push(a.W[b++]),c-=a.ua;return d}function Wb(a,b,c,d){var e=0;for(b>>>=a.ja;0<c&&b<a.W.length;){var f=d[e++];if(!f)break;a.W[b++]=f;c-=a.ua}}k.ob=function(a){return this.W[(a&this.f)>>>this.ja].Eb(a&this.w,a)};k.Bb=function(a){this.A++;a=this.W[(a&this.f)>>>this.ja].Mb(a&this.w,a);this.A--;return a};k.na=function(a){return this.W[(a&this.f)>>>this.ja].oa(a&this.w,a)};
|
||||
k.pb=function(a){var b=a&this.w,c=(a&this.f)>>>this.ja;this.A++;a=this.W[c].Nb(b,a);this.A--;return a};k.Fb=function(a,b){this.W[(a&this.f)>>>this.ja].Hb(a&this.w,b&255,a)};k.Va=function(a,b){this.A++;this.W[(a&this.f)>>>this.ja].Sb(a&this.w,b&255,a);this.A--};k.Wa=function(a,b){this.W[(a&this.f)>>>this.ja].wb(a&this.w,b&65535,a)};k.Gb=function(a,b){var c=a&this.w,d=(a&this.f)>>>this.ja;this.A++;this.W[d].Tb(c,b&65535,a);this.A--};
|
||||
function cc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.W[d];if(e.Ja||e.pc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,m=[];g<e.length;){for(var p=e[g],q=g+1;q<e.length&&e[q]===p;)q++;m[h++]=q-g;m[h++]=p;g=q}m.length<e.length&&(e=m)}c[f]=e}}return c}function dc(a,b,c,d,e,f,g,h){for(;b<=c;b+=2){var m=b&Tb;void 0!==a.Ha[m]?n("I/O address already registered: "+l(b,8,!0)):a.Ha[m]=[d,e,f,g,h||"unknown",!1]}}
|
||||
function ec(a,b,c){for(var d in c){var e=+d,f=c[d];if(!(f[5]&&f[5]>a.b.bb)){var g=f[0]?f[0].bind(b):null,h=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!g&&m&&(g=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!h&&p&&(h=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));dc(a,e,e,g,h,m,p,f[4])}}}function fc(a,b){a.D.push(b)}
|
||||
function gc(a,b){a.A||(a.i&&D(a.i,536870912)&&C(a.i,"memory fault on address "+J(a.i,b),!0,!0),a.b.ea(4,b))}function ac(a,b,c){n("Memory block error ("+a+": "+l(b)+","+l(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.g={data:0,Sd:0,Db:20,gd:0};this.f={Td:0,Rb:-1}}u(K);k=K.prototype;
|
||||
k.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.Rb=hc(c,function(){e.f.Ka|=128;e.f.Ka&64&&(ic(e.b,e.f.hd),jc(e.b,e.f.Rb,1E3/60))});this.f.hd=sc(64,6);ec(b,this,L);fc(b,this.reset.bind(this));H(this)};k.reset=function(){this.g.Db=this.g.Db&-120|20;this.f.Ka=0};k.Dc=function(){var a=this.f.Ka;this.f.Ka&=-129;return a};k.rd=function(a){this.f.Ka=a;a&64&&jc(this.b,this.f.Rb,1E3/60);this.f.Ka=a&-129};k.wc=function(a){return(a?this.g.gd:this.g.data)&65535};
|
||||
k.kd=function(a){this.g.data=a};k.Fc=function(){var a=this.b;return a.F&62337|a.wa<<5|a.xa<<1};k.td=function(a){var b=this.b;a&=62337;if(b.F!=a){b.F=a;b.wa=a>>5&3;b.xa=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.La!=c&&(b.La=c,tc(b))}uc(this)};k.Gc=function(){var a=this.b.Na;a&65280&&(a=(a<<8|a>>8)&65535);return a};k.Hc=function(){return this.b.tb};k.Ic=function(){return this.b.Oa};
|
||||
k.ud=function(a){var b=this.b;1170>b.bb&&(a&=-49);b.Oa!=a&&(b.Oa=a,a&16?(b.$a=4194303,b.ya=3915776):(b.$a=262143,b.ya=253952),tc(b));uc(this)};function uc(a){a.g.Db=a.g.Db&-8|(a.b.La?a.b.Oa&16?1:2:4)}k.Wc=function(a){return this.b.T[1][a>>1&7]};k.Id=function(a,b){this.b.T[1][b>>1&7]=a&65295};k.Uc=function(a){return this.b.T[1][(a>>1&7)+8]};k.Gd=function(a,b){this.b.T[1][(b>>1&7)+8]=a&65295};k.Vc=function(a){return this.b.ta[1][a>>1&7]};
|
||||
function Yb(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.ia;0<g&&h<a.W.length;){var m=a.W[h],p=h*a.ua,q=a.ua-(f-p);q>g&&(q=g);if(!e&&m&&m.size){if(m.type==d){if(f+g<=m.B)return m.xb+=m.B-f,m.B=f,!0;if(f>=m.B+m.xb){q=m.size-(f-p);q>g&&(q=g);m.xb=f-m.B+q;f=p+a.ua;g-=q;h++;continue}}return ac(1,f,g)}f=new I(a,f,q,a.ua,d,e);Sb(f,a.i,m);a.W[h++]=f;f=p+a.ua;g-=q}if(0>=g){c/=1024;var v;e="";v?10<v&&(v=10):v=c&-65536?10:5;if(null==c||isNaN(c))for(;0<v--;)e="?"+e;else for(;0<v--;)e=String.fromCharCode(c%10+48)+e,c/=
|
||||
10;a.status(e+"Kb "+bc[d]+" at "+na(b));return!0}return ac(2,b,c)}function Xb(a,b,c){var d=[];for(b>>>=a.ia;0<c&&b<a.W.length;)d.push(a.W[b++]),c-=a.ua;return d}function Wb(a,b,c,d){var e=0;for(b>>>=a.ia;0<c&&b<a.W.length;){var f=d[e++];if(!f)break;a.W[b++]=f;c-=a.ua}}k.qb=function(a){return this.W[(a&this.f)>>>this.ia].Hb(a&this.w,a)};k.Db=function(a){this.A++;a=this.W[(a&this.f)>>>this.ia].Nb(a&this.w,a);this.A--;return a};k.na=function(a){return this.W[(a&this.f)>>>this.ia].oa(a&this.w,a)};
|
||||
k.rb=function(a){var b=a&this.w,c=(a&this.f)>>>this.ia;this.A++;a=this.W[c].Ob(b,a);this.A--;return a};k.Ib=function(a,b){this.W[(a&this.f)>>>this.ia].Kb(a&this.w,b&255,a)};k.Xa=function(a,b){this.A++;this.W[(a&this.f)>>>this.ia].Tb(a&this.w,b&255,a);this.A--};k.Ya=function(a,b){this.W[(a&this.f)>>>this.ia].yb(a&this.w,b&65535,a)};k.Jb=function(a,b){var c=a&this.w,d=(a&this.f)>>>this.ia;this.A++;this.W[d].Ub(c,b&65535,a);this.A--};
|
||||
function cc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.W[d];if(e.Ja||e.pc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,m=[];g<e.length;){for(var p=e[g],q=g+1;q<e.length&&e[q]===p;)q++;m[h++]=q-g;m[h++]=p;g=q}m.length<e.length&&(e=m)}c[f]=e}}return c}function dc(a,b,c,d,e,f,g,h){for(;b<=c;b+=2){var m=b&Tb;void 0!==a.Ha[m]?n("I/O address already registered: "+l(b,8,!0)):a.Ha[m]=[d,e,f,g,h||"unknown",!1]}}
|
||||
function ec(a,b,c){for(var d in c){var e=+d,f=c[d];if(!(f[5]&&f[5]>a.b.fb)){var g=f[0]?f[0].bind(b):null,h=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!g&&m&&(g=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!h&&p&&(h=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));dc(a,e,e,g,h,m,p,f[4])}}}function fc(a,b){a.D.push(b)}
|
||||
function gc(a,b){a.A||(a.i&&D(a.i,536870912)&&C(a.i,"memory fault on address "+J(a.i,b),!0,!0),a.b.ea(4,b))}function ac(a,b,c){n("Memory block error ("+a+": "+l(b)+","+l(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.g={data:0,Sd:0,Gb:20,gd:0};this.f={Td:0,Sb:-1}}u(K);k=K.prototype;
|
||||
k.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.Sb=hc(c,function(){e.f.Ka|=128;e.f.Ka&64&&(ic(e.b,e.f.hd),jc(e.b,e.f.Sb,1E3/60))});this.f.hd=kc(64,6);ec(b,this,L);fc(b,this.reset.bind(this));H(this)};k.reset=function(){this.g.Gb=this.g.Gb&-120|20;this.f.Ka=0};k.Dc=function(){var a=this.f.Ka;this.f.Ka&=-129;return a};k.rd=function(a){this.f.Ka=a;a&64&&jc(this.b,this.f.Sb,1E3/60);this.f.Ka=a&-129};k.wc=function(a){return(a?this.g.gd:this.g.data)&65535};
|
||||
k.kd=function(a){this.g.data=a};k.Fc=function(){var a=this.b;return a.F&62337|a.wa<<5|a.xa<<1};k.td=function(a){var b=this.b;a&=62337;if(b.F!=a){b.F=a;b.wa=a>>5&3;b.xa=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.La!=c&&(b.La=c,tc(b))}uc(this)};k.Gc=function(){var a=this.b.Na;a&65280&&(a=(a<<8|a>>8)&65535);return a};k.Hc=function(){return this.b.vb};k.Ic=function(){return this.b.Oa};
|
||||
k.ud=function(a){var b=this.b;1170>b.fb&&(a&=-49);b.Oa!=a&&(b.Oa=a,a&16?(b.bb=4194303,b.ya=3915776):(b.bb=262143,b.ya=253952),tc(b));uc(this)};function uc(a){a.g.Gb=a.g.Gb&-8|(a.b.La?a.b.Oa&16?1:2:4)}k.Wc=function(a){return this.b.T[1][a>>1&7]};k.Id=function(a,b){this.b.T[1][b>>1&7]=a&65295};k.Uc=function(a){return this.b.T[1][(a>>1&7)+8]};k.Gd=function(a,b){this.b.T[1][(b>>1&7)+8]=a&65295};k.Vc=function(a){return this.b.ta[1][a>>1&7]};
|
||||
k.Hd=function(a,b){b=b>>1&7;this.b.ta[1][b]=a;this.b.T[1][b]&=65295};k.Tc=function(a){return this.b.ta[1][(a>>1&7)+8]};k.Fd=function(a,b){b=(b>>1&7)+8;this.b.ta[1][b]=a;this.b.T[1][b]&=65295};k.Cc=function(a){return this.b.T[0][a>>1&7]};k.qd=function(a,b){this.b.T[0][b>>1&7]=a&65295};k.Ac=function(a){return this.b.T[0][(a>>1&7)+8]};k.od=function(a,b){this.b.T[0][(b>>1&7)+8]=a&65295};k.Bc=function(a){return this.b.ta[0][a>>1&7]};k.pd=function(a,b){b=b>>1&7;this.b.ta[0][b]=a;this.b.T[0][b]&=65295};
|
||||
k.zc=function(a){return this.b.ta[0][(a>>1&7)+8]};k.nd=function(a,b){b=(b>>1&7)+8;this.b.ta[0][b]=a;this.b.T[0][b]&=65295};k.bd=function(a){return this.b.T[3][a>>1&7]};k.Od=function(a,b){this.b.T[3][b>>1&7]=a&65295};k.$c=function(a){return this.b.T[3][(a>>1&7)+8]};k.Md=function(a,b){this.b.T[3][(b>>1&7)+8]=a&65295};k.ad=function(a){return this.b.ta[3][a>>1&7]};k.Nd=function(a,b){b=b>>1&7;this.b.ta[3][b]=a;this.b.T[3][b]&=65295};k.Zc=function(a){return this.b.ta[3][(a>>1&7)+8]};
|
||||
k.Ld=function(a,b){b=(b>>1&7)+8;this.b.ta[3][b]=a;this.b.T[3][b]&=65295};k.gb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};k.kb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};k.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};k.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};k.Qc=function(){return this.b.u[7]};k.Cd=function(a){this.b.u[7]=a};k.hb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]};
|
||||
k.lb=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};k.Oc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[1]};k.Ad=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[1]=a};k.Pc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[3]};k.Bd=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[3]=a};k.yc=function(a){return this.b.gc[a-65504>>1]};k.md=function(a,b){this.b.gc[b-65504>>1]=a};k.dc=function(a){return 65520==a?61183:0};k.jc=function(){};
|
||||
k.Yc=function(){return 1};k.Kd=function(){};k.xc=function(){return this.b.Z};k.ld=function(){this.b.Z=0};k.Ec=function(){return this.b.fc};k.sd=function(a,b){b&1||(a&=255);this.b.fc=a};k.Jc=function(a){return a?this.b.Pb:0};k.vd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Pb=a;b.G|=2};k.Xc=function(a){return a?this.b.Pa&65280:0};k.Jd=function(a){this.b.Pa=a|255};k.Mc=function(){return Lb(this.b)};k.yd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.G|=128};
|
||||
k.Ld=function(a,b){b=(b>>1&7)+8;this.b.ta[3][b]=a;this.b.T[3][b]&=65295};k.jb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};k.nb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};k.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};k.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};k.Qc=function(){return this.b.u[7]};k.Cd=function(a){this.b.u[7]=a};k.kb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]};
|
||||
k.ob=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};k.Oc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[1]};k.Ad=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[1]=a};k.Pc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[3]};k.Bd=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[3]=a};k.yc=function(a){return this.b.gc[a-65504>>1]};k.md=function(a,b){this.b.gc[b-65504>>1]=a};k.dc=function(a){return 65520==a?61183:0};k.jc=function(){};
|
||||
k.Yc=function(){return 1};k.Kd=function(){};k.xc=function(){return this.b.Z};k.ld=function(){this.b.Z=0};k.Ec=function(){return this.b.fc};k.sd=function(a,b){b&1||(a&=255);this.b.fc=a};k.Jc=function(a){return a?this.b.Qb:0};k.vd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Qb=a;b.G|=2};k.Xc=function(a){return a?this.b.Pa&65280:0};k.Jd=function(a){this.b.Pa=a|255};k.Mc=function(){return Lb(this.b)};k.yd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.G|=128};
|
||||
k.ic=function(a,b){D(this)&&C(this,"writeIgnored("+na(b)+"): "+na(a),!0,!0)};
|
||||
var M={},L=(M[62592]=[null,null,K.prototype.Wc,K.prototype.Id,"SISDR",1145],M[62608]=[null,null,K.prototype.Uc,K.prototype.Gd,"SDSDR",1145],M[62624]=[null,null,K.prototype.Vc,K.prototype.Hd,"SISAR",1145],M[62640]=[null,null,K.prototype.Tc,K.prototype.Fd,"SDSAR",1145],M[62656]=[null,null,K.prototype.Cc,K.prototype.qd,"KISDR",1145],M[62672]=[null,null,K.prototype.Ac,K.prototype.od,"KDSDR",1145],M[62688]=[null,null,K.prototype.Bc,K.prototype.pd,"KISAR",1145],M[62704]=[null,null,K.prototype.zc,K.prototype.nd,
|
||||
"KDSAR",1145],M[62798]=[null,null,K.prototype.Ic,K.prototype.ud,"MMR3",1145],M[65382]=[null,null,K.prototype.Dc,K.prototype.rd,"LKS"],M[65400]=[null,null,K.prototype.wc,K.prototype.kd,"CNSL"],M[65402]=[null,null,K.prototype.Fc,K.prototype.td,"MMR0",1145],M[65404]=[null,null,K.prototype.Gc,K.prototype.ic,"MMR1",1145],M[65406]=[null,null,K.prototype.Hc,K.prototype.ic,"MMR2",1145],M[65408]=[null,null,K.prototype.bd,K.prototype.Od,"UISDR",1145],M[65424]=[null,null,K.prototype.$c,K.prototype.Md,"UDSDR",
|
||||
1145],M[65440]=[null,null,K.prototype.ad,K.prototype.Nd,"UISAR",1145],M[65456]=[null,null,K.prototype.Zc,K.prototype.Ld,"UDSAR",1145],M[65472]=[null,null,K.prototype.gb,K.prototype.kb,"R0SET0"],M[65473]=[null,null,K.prototype.gb,K.prototype.kb,"R1SET0"],M[65474]=[null,null,K.prototype.gb,K.prototype.kb,"R2SET0"],M[65475]=[null,null,K.prototype.gb,K.prototype.kb,"R3SET0"],M[65476]=[null,null,K.prototype.gb,K.prototype.kb,"R4SET0"],M[65477]=[null,null,K.prototype.gb,K.prototype.kb,"R5SET0"],M[65478]=
|
||||
[null,null,K.prototype.Nc,K.prototype.zd,"R6KERNEL"],M[65479]=[null,null,K.prototype.Qc,K.prototype.Cd,"R7KERNEL"],M[65480]=[null,null,K.prototype.hb,K.prototype.lb,"R0SET1",1145],M[65481]=[null,null,K.prototype.hb,K.prototype.lb,"R1SET1",1145],M[65482]=[null,null,K.prototype.hb,K.prototype.lb,"R2SET1",1145],M[65483]=[null,null,K.prototype.hb,K.prototype.lb,"R3SET1",1145],M[65484]=[null,null,K.prototype.hb,K.prototype.lb,"R4SET1",1145],M[65485]=[null,null,K.prototype.hb,K.prototype.lb,"R5SET1",1145],
|
||||
1145],M[65440]=[null,null,K.prototype.ad,K.prototype.Nd,"UISAR",1145],M[65456]=[null,null,K.prototype.Zc,K.prototype.Ld,"UDSAR",1145],M[65472]=[null,null,K.prototype.jb,K.prototype.nb,"R0SET0"],M[65473]=[null,null,K.prototype.jb,K.prototype.nb,"R1SET0"],M[65474]=[null,null,K.prototype.jb,K.prototype.nb,"R2SET0"],M[65475]=[null,null,K.prototype.jb,K.prototype.nb,"R3SET0"],M[65476]=[null,null,K.prototype.jb,K.prototype.nb,"R4SET0"],M[65477]=[null,null,K.prototype.jb,K.prototype.nb,"R5SET0"],M[65478]=
|
||||
[null,null,K.prototype.Nc,K.prototype.zd,"R6KERNEL"],M[65479]=[null,null,K.prototype.Qc,K.prototype.Cd,"R7KERNEL"],M[65480]=[null,null,K.prototype.kb,K.prototype.ob,"R0SET1",1145],M[65481]=[null,null,K.prototype.kb,K.prototype.ob,"R1SET1",1145],M[65482]=[null,null,K.prototype.kb,K.prototype.ob,"R2SET1",1145],M[65483]=[null,null,K.prototype.kb,K.prototype.ob,"R3SET1",1145],M[65484]=[null,null,K.prototype.kb,K.prototype.ob,"R4SET1",1145],M[65485]=[null,null,K.prototype.kb,K.prototype.ob,"R5SET1",1145],
|
||||
M[65486]=[null,null,K.prototype.Oc,K.prototype.Ad,"R6SUPER",1145],M[65487]=[null,null,K.prototype.Pc,K.prototype.Bd,"R6USER",1145],M[65504]=[null,null,K.prototype.yc,K.prototype.md,"CTRL",1170],M[65520]=[null,null,K.prototype.dc,K.prototype.jc,"LSIZE",1170],M[65522]=[null,null,K.prototype.dc,K.prototype.jc,"HSIZE",1170],M[65524]=[null,null,K.prototype.Yc,K.prototype.Kd,"SYSID",1170],M[65526]=[null,null,K.prototype.xc,K.prototype.ld,"CPUERR",1170],M[65528]=[null,null,K.prototype.Ec,K.prototype.sd,
|
||||
"MB",1170],M[65530]=[null,null,K.prototype.Jc,K.prototype.vd,"PIR"],M[65532]=[null,null,K.prototype.Xc,K.prototype.Jd,"SL"],M[65534]=[null,null,K.prototype.Mc,K.prototype.yd,"PSW"],M);L[62594]=L[62592];L[62596]=L[62592];L[62598]=L[62592];L[62600]=L[62592];L[62602]=L[62592];L[62604]=L[62592];L[62606]=L[62592];L[62610]=L[62608];L[62612]=L[62608];L[62614]=L[62608];L[62616]=L[62608];L[62618]=L[62608];L[62620]=L[62608];L[62622]=L[62608];L[62626]=L[62624];L[62628]=L[62624];L[62630]=L[62624];L[62632]=L[62624];
|
||||
L[62634]=L[62624];L[62636]=L[62624];L[62638]=L[62624];L[62642]=L[62640];L[62644]=L[62640];L[62646]=L[62640];L[62648]=L[62640];L[62650]=L[62640];L[62652]=L[62640];L[62654]=L[62640];L[62658]=L[62656];L[62660]=L[62656];L[62662]=L[62656];L[62664]=L[62656];L[62666]=L[62656];L[62668]=L[62656];L[62670]=L[62656];L[62674]=L[62672];L[62676]=L[62672];L[62678]=L[62672];L[62680]=L[62672];L[62682]=L[62672];L[62684]=L[62672];L[62686]=L[62672];L[62690]=L[62688];L[62692]=L[62688];L[62694]=L[62688];L[62696]=L[62688];
|
||||
L[62698]=L[62688];L[62700]=L[62688];L[62702]=L[62688];L[62706]=L[62704];L[62708]=L[62704];L[62710]=L[62704];L[62712]=L[62704];L[62714]=L[62704];L[62716]=L[62704];L[62718]=L[62704];L[65410]=L[65408];L[65412]=L[65408];L[65414]=L[65408];L[65416]=L[65408];L[65418]=L[65408];L[65420]=L[65408];L[65422]=L[65408];L[65426]=L[65424];L[65428]=L[65424];L[65430]=L[65424];L[65432]=L[65424];L[65434]=L[65424];L[65436]=L[65424];L[65438]=L[65424];L[65442]=L[65440];L[65444]=L[65440];L[65446]=L[65440];L[65448]=L[65440];
|
||||
L[65450]=L[65440];L[65452]=L[65440];L[65454]=L[65440];L[65458]=L[65456];L[65460]=L[65456];L[65462]=L[65456];L[65464]=L[65456];L[65466]=L[65456];L[65468]=L[65456];L[65470]=L[65456];L[65506]=L[65504];L[65508]=L[65504];L[65510]=L[65504];L[65512]=L[65504];L[65514]=L[65504];L[65516]=L[65504];L[65518]=L[65504];Ta(function(){for(var a=B(document,"pdp11","device"),b=0;b<a.length;b++){var c,d=a[b];c=z(d);switch(c.type){case "default":c=new K(c);A(c,d);break;case "pc11":c=new wc(c),A(c,d)}}});var xc;
|
||||
if(sb){var yc=new ArrayBuffer(2);(new DataView(yc)).setUint16(0,256,!0);xc=256===(new Uint16Array(yc))[0]}else xc=!1;var zc=xc;
|
||||
function I(a,b,c,d,e,f){this.w=a;this.id=Ac+=2;this.b=null;this.C=b;this.vb=c;this.size=d||0;this.type=e||Bc;this.f=e==Cc;this.controller=null;Sb(this);this.Ja=this.pc=!1;if(d)if(f)this.controller=f,this.b=null,Dc(this,f.mc);else if(sb)this.A=new ArrayBuffer(d),this.F=new DataView(this.A,0,d),this.B=new Uint8Array(this.A,0,d),this.I=new Uint16Array(this.A,0,d>>1),this.b=new Int32Array(this.A,0,d>>2),Dc(this,zc?Ec:Fc);else{this.b=Array(d>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Dc(this,Gc)}else Dc(this)}
|
||||
function I(a,b,c,d,e,f){this.w=a;this.id=Ac+=2;this.b=null;this.B=b;this.xb=c;this.size=d||0;this.type=e||Bc;this.f=e==Cc;this.controller=null;Sb(this);this.Ja=this.pc=!1;if(d)if(f)this.controller=f,this.b=null,Dc(this,f.mc);else if(sb)this.A=new ArrayBuffer(d),this.F=new DataView(this.A,0,d),this.C=new Uint8Array(this.A,0,d),this.J=new Uint16Array(this.A,0,d>>1),this.b=new Int32Array(this.A,0,d>>2),Dc(this,zc?Ec:Fc);else{this.b=Array(d>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Dc(this,Gc)}else Dc(this)}
|
||||
var Bc=0,Cc=2,Zb=4,bc=["NONE","RAM","ROM","VID","H/W"],Ac=0;
|
||||
I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(sb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.F.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(sb)for(b=0;b<a.length;b++)this.F.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ja=!0}return!1},Sa:function(a,b){b?this.J++||Hc(this,Ic,!1):this.g++||Jc(this,Ic,!1)},K:function(){this.i&&D(this.i,128)&&(C(this.i,"attempt to read invalid block %"+
|
||||
l(this.C),!0),this.i.da());return 255},D:function(a,b){this.i&&D(this.i,128)&&(C(this.i,"attempt to write "+l(b,4,!0)+" to invalid block %"+l(this.C),!0),this.i.da())},M:function(a,b){return this.Eb(a++,b++)|this.Eb(a,b)<<8},H:function(a,b,c){this.Hb(a++,b&255,c++);this.Hb(a,b>>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a,b){a&1&&gc(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},sa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=
|
||||
this.b[c]&~(255<<a)|b<<a;this.Ja=!0},Xa:function(a,b,c){a&1&&gc(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.Ja=!0},O:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,1,c.M)&&c.da(!0)}return this.Mb(a,b)},ba:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,2,c.M)&&c.da(!0)}return this.Nb(a,b)},qa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a,
|
||||
1,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Sb(a,b,c)},xa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a,2,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Tb(a,b,c)},N:function(a){return this.B[a]},P:function(a,b){a=this.B[a];this.i&&D(this.i,128)&&C(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},aa:function(a,b){a&1&&gc(this.w,b);return this.F.getUint16(a,!0)},fa:function(a,b){a&1&&gc(this.w,b);a=this.I[a>>1];this.i&&D(this.i,128)&&C(this.i,"Memory.readWord("+
|
||||
J(this.i,b)+"): "+J(this.i,a),!0);return a},pa:function(a,b){this.B[a]=b;this.Ja=!0},Ra:function(a,b,c){this.B[a]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},wa:function(a,b,c){a&1&&gc(this.w,c);this.F.setUint16(a,b,!0);this.Ja=!0},ya:function(a,b,c){a&1&&gc(this.w,c);this.I[a>>1]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}};
|
||||
function Sb(a,b,c){a.i=b;a.g=a.J=0;c&&((a.g=c.g)&&Jc(a,Ic,!1),(a.J=c.J)&&Hc(a,Ic,!1))}function Lc(a,b){b?--a.J||(a.Hb=a.f?a.D:a.Sb,a.wb=a.f?a.H:a.Tb):--a.g||(a.Eb=a.Mb,a.oa=a.Nb)}function Hc(a,b,c){c&&a.J||(a.Hb=!a.f&&b[1]||a.D,a.wb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Sb=b[1]||a.D,a.Tb=b[3]||a.H}function Jc(a,b,c){c&&a.g||(a.Eb=b[0]||a.K,a.oa=b[2]||a.M);if(c||void 0===c)a.Mb=b[0]||a.K,a.Nb=b[2]||a.M}function Dc(a,b){b||(b=Mc);Jc(a,b,void 0);Hc(a,b,void 0)}
|
||||
var Mc=[],Gc=[I.prototype.V,I.prototype.sa,I.prototype.ma,I.prototype.Xa],Ic=[I.prototype.O,I.prototype.qa,I.prototype.ba,I.prototype.xa];if(sb)var Fc=[I.prototype.N,I.prototype.pa,I.prototype.aa,I.prototype.wa],Ec=[I.prototype.P,I.prototype.Ra,I.prototype.fa,I.prototype.ya];
|
||||
function Nc(a,b){r.call(this,"CPU",a,Nc,1);var c=a.multiplier||1;this.Ga=a.cycles||b;this.Ma=c;this.Za=Math.round(this.Ga/1E4)/100;this.Ua=this.Za*this.Ma;this.v.ca=!1;this.v.Qb=!1;this.v.mb=a.autoStart;this.v.ab=!1;this.qb=this.ma=0;this.rb=a.csStart;this.cb=a.csInterval;this.eb=a.csStop;this.K=[];this.bc=this.fd.bind(this);H(this)}u(Nc);var Oc=["power","reset"];k=Nc.prototype;
|
||||
k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.i=d;for(b=0;b<Oc.length;b++)(c=this.J[Oc[b]])&&this.D.ra(null,Oc[b],c);a=Pc(a,"autoStart");null!=a&&(this.v.mb="true"==a?!0:"false"==a?!1:!!a);H(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
|
||||
k.Aa=function(a,b){if(!b){if(a&&this.restore){Qc(this);if(!this.restore(a))return!1;Rc(this)}else this.reset();this.i?(a=this.i,a.j("Type ? for help with PDP11 Debugger commands"),a.$(),a.Ga&&(b=a.Ga,a.Ga=null,Sc(a,b))):this.j("No debugger detected")}this.D.$();return!0};k.za=function(a){return a?this.save():!0};k.mb=function(){return this.v.mb||!this.i&&void 0===this.J.run?(this.ib(!0),!0):!1};k.Zb=function(){return 0};
|
||||
function Rc(a){void 0===a.rb&&(a.rb=0);void 0===a.cb&&(a.cb=-1);void 0===a.eb&&(a.eb=-1);a.v.ab=0<=a.rb&&0<a.cb;a.v.ab&&(a.qb=0,a.ma=a.rb-a.fa)}function Tc(a,b){if(a.v.ab){var c=!1;a.qb=a.qb+a.Zb()|0;a.ma-=b;0>=a.ma&&(a.ma+=a.cb,c=!0);0<=a.eb&&a.eb<=Uc(a)&&(a.cb=a.eb=-1,Rc(a),a.da(),c=!0);c&&a.j(Uc(a)+" cycles: checksum="+l(a.qb))}}
|
||||
k.ra=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.v.ha)a=!0;else{var b=null,c,h=kb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.v.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.v.ha);c++);c==h.length&&(b=a);n("The "+b.type+" component ("+b.id+") is not "+(b.v.ready?"powered yet":"ready yet"+(b.zb?" (waiting for notification)":""))+".");a=!1}a&&(d.v.ca?d.da():d.ib())},
|
||||
!0;case "speed":return this.J[b]=c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){Vc(d,d.Ma<<1,!0)},c.textContent=this.Ua.toFixed(2)+"Mhz",!0}return!1};k.$=function(){var a=this.J.speed;a&&(a.textContent=this.v.ca&&this.V?this.V.toFixed(2)+"Mhz":"Stopped")};function Wc(a,b,c){a.fa+=b;c&&(a.ba=a.b=0)}function Xc(a,b){var c=1;b&&1<a.Ma&&a.V&&(c=a.V/a.Za);a.Ab=Math.round(1E3/30);a.Qa=Math.floor(a.Ga/30*c);b||(a.pa=a.Qa);a.nb=0}function Uc(a){return a.fa+a.O+a.ba-a.b}
|
||||
function Qc(a){a.V=0;a.Cb=0;a.fa=a.O=a.ba=a.b=0;Rc(a);Vc(a,1)}function Vc(a,b,c){var d=!1;if(void 0!==b){.8>a.V/a.Ua?b=1:d=!0;a.Ma=b;b=a.Za*a.Ma;if(a.Ua!=b){a.Ua=b;b=a.Ua.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.D&&a.D.ub()}Wc(a,a.O);a.O=0;a.N=za();a.aa=0;Xc(a);return d}function hc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function jc(a,b,c,d){0<=b&&b<a.K.length&&(d||0>a.K[b][0])&&(c=a.Ga*a.Ma/1E3*c|0,a.K[b][0]=c+Yc(a))}
|
||||
function Zc(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function $c(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Yc(a,b){var c=a.ba-=a.b;a.b=0;b&&(a.ba=0);return c}
|
||||
k.fd=function(){if(this.v.ca){this.nb>=this.Ga&&Xc(this,!0);this.sa=0;this.Fa=za();if(this.aa){var a=this.Fa-this.aa;a>this.Ab&&(this.N+=a,this.N>this.Fa&&(this.N=this.Fa))}try{do{var b=Zc(this,this.v.ab?1:this.Qa);try{this.jb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.sa+=b;this.O+=b;Tc(this,b);$c(this,b);this.pa-=b;if(0>=this.pa){this.pa+=this.Qa;15<=++this.Cb&&(this.D&&this.D.$(),this.Cb=0);break}}while(this.v.ca)}catch(e){this.da();this.D&&this.D.stop(za(),Uc(this));rb(this,
|
||||
e.stack||e.message);return}if(this.v.ca){a=setTimeout;b=this.bc;this.aa=za();var c=this.Ab;this.sa&&(c=Math.round(c*this.sa/this.Qa));var c=c-(this.aa-this.Fa),d=this.aa-this.N;d&&(this.V=Math.round(this.O/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.V<this.Ua)-1E3>c&&(this.N-=c),c=0;this.nb+=this.sa;this.aa+=c;a(b,c)}}};
|
||||
k.ib=function(a){if(qb(this))return!1;if(this.v.ca)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.ca=!0;this.v.Qb=!0;var b=this.J.run;b&&(b.textContent="Halt");this.D&&(a&&this.D.ub(!0),this.D.start(this.N,Uc(this)));setTimeout(this.bc,0);return!0};k.jb=function(){return 0};k.da=function(a){if(this.v.ca){Yc(this);Wc(this,this.O);this.O=0;this.v.ca=!1;var b=this.J.run;b&&(b.textContent="Run");this.D&&this.D.stop(za(),Uc(this))}this.v.complete=a};
|
||||
function ad(a){this.bb=+a.model||1170;this.xb=a.addrReset||0;Nc.call(this,a,6666667);this.decode=1120==this.bb?bd.bind(this):cd.bind(this);dd(this);this.A=0;this.P=null;this.v.complete=this.v.oc=!1}u(ad,Nc);k=ad.prototype;k.reset=function(){this.status("model "+this.bb);this.v.ca&&this.da();dd(this);Qc(this);this.v.error=!1;this.parent.reset.call(this)};
|
||||
function dd(a){a.R=65536;a.S=32768;a.X=65535;a.U=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.xb];a.Ea=[0,0,0,0,0,0];a.va=[0,0,0,0];a.B=0;a.xa=0;a.sc=[4,2,0,1];a.T=[[0,0,0,0,0,0,0,0,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]];a.ta=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.gc=[0,0,0,0,0,0,0,0];a.fc=0;a.G=0;a.H=a.I=0;a.g=a.f=a.Ya=0;a.qa=-1;ed(a)}function ed(a){a.Pa=255;a.Z=0;a.Pb=0;a.F=0;a.Na=0;a.tb=0;a.Oa=0;a.La=0;a.wa=0;a.$a=262143;a.ya=253952;a.G|=2;a.w&&tc(a)}function tc(a){a.La?(a.M=65536,a.Y=a.rc,a.oa=a.cd,a.wb=a.Pd,Vb(a.w,a.Oa&16?22:18)):(a.M=0,a.Y=a.qc,a.oa=a.ec,a.wb=a.kc,Vb(a.w,16))}k.Zb=function(){return 0};
|
||||
k.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.fa,this.Ma]);a.set(2,cc(this.w));return a.data()};k.restore=function(a){var b=a[1];this.fa=b[1];Vc(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.I){for(var f=0,g=Array(b.I),h=0;h<e.length-1;)for(var m=e[h++],p=e[h++];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 fd(a){return a.R&65536?1:0}
|
||||
function gd(a){return a.S&32768?2:0}function hd(a){return a.X&65535?0:4}k.Da=function(){return this.U&32768?8:0};function id(a){var b=a.u[7];a.F&57344||(a.Na=0,a.tb=b);a.u[7]=b+2&65535;return a.oa(b)}function jd(a,b){var c=a.u[7];a.u[7]=c+b&65535;return c}function O(a,b){a.u[7]=b&65535}function sc(a,b){return{jd:a,fb:b,next:null}}function ic(a,b){if(b!=a.P){var c=a.P;if(!c||c.fb<=b.fb)b.next=c,a.P=b;else{do{var d=c.next;if(!d||d.fb<=b.fb){b.next=d;c.next=b;break}c=d}while(c)}}a.G|=2}
|
||||
function Lb(a){return a.L=a.L&63728|a.Da()|hd(a)|gd(a)|fd(a)}function vc(a,b){a.U=b<<12;a.X=~b&4;a.S=b<<14;a.R=b<<16;if((b^a.L)&2048)for(var c=a.Ea.length;0<=--c;){var d=a.u[c];a.u[c]=a.Ea[c];a.Ea[c]=d}a.B=b>>14&3;c=a.L>>14&3;a.B!=c&&(a.va[c]=a.u[6],a.u[6]=a.va[a.B]);a.L=b;a.G|=2}function P(a,b){a.G&128||(a.U=a.X=b,a.S=0)}function Dd(a,b,c){a.G&128||(a.U=a.X=a.R=b,a.S=c||0)}function Ed(a,b,c,d){a.G&128||(a.U=a.X=a.R=b,a.S=(c^b)&(d^b))}function Fd(a,b){a.G&128||(a.U=a.X=a.R=b,a.S=a.U^a.R>>1)}
|
||||
function Gd(a,b,c,d){a.G&128||(a.U=a.X=a.R=b,a.S=(c^d)&(d^b))}k.ea=function(a,b){if(!this.A){var c=!1;0>this.qa?this.qa=Lb(this):this.B||(a=4,c=!0);this.F&57344||(this.Na=63222,this.tb=a);this.B=0;var d=this.oa(a|this.M),e=this.oa(a+2&65535|this.M);vc(this,e&-12289|this.qa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Hd(this,this.qa);Hd(this,this.u[7]);O(this,d);this.G&=-113;this.qa=-1;if(26!=b)throw a;}};function Id(a){var b=Jd(a),c=Jd(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);O(a,b);vc(a,c);a.G&=-17}
|
||||
function Kd(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.B]||(d&=7);e=a.T[a.B][d];f=(a.ta[a.B][d]<<6)+(b&8191)&a.$a;if(f<a.ya)f&1&&!(c&1)&&(a.Z|=64,a.ea(4,10));else if(a.Oa&16||253952<=f&&(f|=4186112),4186112>f){if(3932160<=f){f&=262143;var h=f>>13&31;31>h?a.Oa&32&&(f=a.uc[h]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(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.T[a.B][d]=e;if(4194170!==f||a.B)a.wa=a.B,a.xa=d;g&&(g&57344&&(0<=a.qa&&(g|=128),a.F&57344||(a.F=a.F|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.F&61440||!(4191360>f||4194239<f)||(a.F|=4096,a.F&512&&(a.G|=32)));return f}function Ld(a,b){return a.w.ob(b)}function Md(a,b,c){b&1&&a.b--;a.w.Fb(b,c&255)}function Jd(a){var b=a.oa(a.u[6]|a.M);a.u[6]=a.u[6]+2&65535;return b}
|
||||
function Hd(a,b){var c=a.u[6]-2&65535;a.u[6]=c;a.F&57344||(a.Na=a.Na<<8|246);!a.B&&c<=a.Pa&&4<c&&(c<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,18)):(a.Z|=8,a.G|=4));a.wb(c,b)}
|
||||
function Nd(a,b,c,d){var e,f,g=d&8?0:a.M;switch(b){case 0:return a.ea(4,20),0;case 1:return 6===c&&!a.B&&d&4&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32||65534<=a.u[6]?(a.Z|=4,a.u[6]=4,a.ea(4,22)):(a.Z|=8,a.G|=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.oa(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.oa(e)|g;
|
||||
a.b-=8;break;case 6:return e=a.oa(jd(a,2)),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=a.oa(jd(a,2)),e=e+a.u[c]&65535,e=a.oa(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.F&57344||(a.Na=a.Na<<8|f<<3&248|c);6==c&&!a.B&&d&4&&0>=f&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.G|=64));return e}k.Bb=function(a){if(!this.La)return this.w.Bb(a);this.A++;a=Ld(this,Kd(this,a,3));this.A--;return a};
|
||||
k.pb=function(a){if(!this.La)return this.w.pb(a);this.A++;a=this.ec(Kd(this,a,2));this.A--;return a};k.Va=function(a,b){this.La?(this.A++,Md(this,Kd(this,a,5),b),this.A--):this.w.Va(a,b)};k.Gb=function(a,b){this.La?(this.A++,this.kc(Kd(this,a,4),b),this.A--):this.w.Gb(a,b)};k.qc=function(a,b,c){return Nd(this,a,b,c)};k.rc=function(a,b,c){return Kd(this,Nd(this,a,b,c),c)};k.ec=function(a){return this.w.na(a)};k.cd=function(a){return this.w.na(Kd(this,a,2))};k.kc=function(a,b){this.w.Wa(a,b&65535)};
|
||||
k.Pd=function(a,b){this.w.Wa(Kd(this,a,4),b)};function Od(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Nd(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.B=a.L>>12&3,c=a.oa(d|c&a.M),a.B=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.va[a.L>>12&3];return c}function Pd(a,b,c,d){a.F&57344||(a.Na=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Nd(a,b,e,4),c&65536||(e&=65535),a.B=a.L>>12&3,e=Kd(a,e|c&65536,4),a.B=a.L>>14&3,a.w.Wa(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.va[a.L>>12&3]=d}
|
||||
function Qd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?Ld(a,a.Y(b,c,3)):a.u[c]&255}function Rd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]}function Sd(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Nd(a,b,c,8)}function Td(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Ld(a,a.Y(b,c,3)):a.u[c]&255}function Ud(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]}
|
||||
function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Ya=a.Y(b,e,7),Md(a,e,d.call(a,c,Ld(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Y(b,e,6),a.w.Wa(e,d.call(a,c,a.w.na(e)))):a.u[e]=d.call(a,c,a.u[e])}function Vd(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Md(a,a.Y(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Wd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.Wa(a.Y(b,d,4),c):a.u[d]=c&65535;return c}
|
||||
function S(a,b,c){c&&(O(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3}
|
||||
k.jb=function(a){this.v.complete=!0;var b=this.v.oc=this.i&&Xd(this.i),c=a?this.v.Qb?0:1:-1;this.v.Qb=!1;this.ba=this.b=a;do{if(b){if(Yd(this.i,this.u[7],c)){this.da();break}c=1}if(this.G&&(this.G&112&&(this.G&32?this.ea(168,28):this.G&64?this.ea(4,30):this.G&16&&this.ea(12,32),this.G&=-113),this.G&7))if(this.G&2){this.G&=-3;var d=160,e=(this.Pb&224)>>5;if(a=this.P&&this.P.fb>e?this.P:null)d=a.jd,e=a.fb;e>(this.L&224)>>5?(this.G&4&&(jd(this,2),this.G&=-5),this.ea(d,26),e=!0):e=!1;if(e&&a)if(e=this.P,
|
||||
e==a)this.P=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.G&1&&this.G++;this.G=this.G&7|this.L&16;this.decode(id(this))}while(0<this.b);return this.v.complete?this.ba-this.b:void 0===this.v.complete?0:-1};Ta(function(){for(var a=B(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new ad(d);A(d,c)}});function Zd(a,b){var c=b+a;Ed(this,c,a,b);return c&65535}function $d(a,b){var c=b+a;Ed(this,c<<8,a<<8,b<<8);return c&255}
|
||||
function ae(a,b){a=b<<1;Fd(this,a);return a&65535}function be(a,b){a=b<<1;Fd(this,a<<8);return a&255}function ce(a,b){a=b&32768|b>>1|b<<16;Fd(this,a);return a&65535}function de(a,b){a=b&2048|b>>1|b<<8;Fd(this,a<<8);return a&255}function ee(a,b){a=b&~a;P(this,a);return a}function fe(a,b){a=b&~a;P(this,a<<8);return a}function ge(a,b){a|=b;P(this,a);return a}function he(a,b){a|=b;P(this,a<<8);return a}function ie(a,b){a=~b|65536;Dd(this,a);return a&65535}
|
||||
function je(a,b){a=~b|256;Dd(this,a<<8);return a&255}function ke(a,b){a=b-a;this.G&128||(this.U=this.X=a,this.S=b&(b^a));return a&65535}function le(a,b){a=b-a;var c=a<<8;b<<=8;this.G&128||(this.U=this.X=c,this.S=b&(b^c));return a&255}function me(a,b){a=b+a;this.G&128||(this.U=this.X=a,this.S=a&(b^a));return a&65535}function ne(a,b){a=b+a;var c=a<<8;this.G&128||(this.U=this.X=c,this.S=c&(b<<8^c));return a&255}function oe(a,b){a=-b;Dd(this,a,a&b&32768);return a&65535}
|
||||
function pe(a,b){a=-b;Dd(this,a<<8,(a&b&128)<<8);return a&255}function qe(a,b){a=b<<1|this.R>>16&1;Fd(this,a);return a&65535}function re(a,b){a=b<<1|this.R>>16&1;Fd(this,a<<8);return a&255}function se(a,b){a=(this.R&65536|b)>>1|b<<16;Fd(this,a);return a&65535}function te(a,b){a=((this.R&65536)>>8|b)>>1|b<<8;Fd(this,a<<8);return a&255}function ue(a,b){var c=b-a;Gd(this,c,a,b);return c&65535}function ve(a,b){var c=b-a;Gd(this,c<<8,a<<8,b<<8);return c&255}
|
||||
function we(a,b){this.G&128||(this.U=this.X=b&65280,this.S=this.R=0);return(b<<8|b>>8)&65535}function xe(a,b){a^=b;P(this,a);return a&65535}function ye(a){R(this,a,Rd(this,a),Zd);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}
|
||||
function ze(a){var b=Ud(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.R=this.S=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.R=c<<17-b,c>>=b;else if(b)if(16<b)this.S=c,c=0;else{this.R=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.S=32768)}this.u[a]=c&65535;this.U=this.X=c;this.b-=(this.g?6:7)+b}
|
||||
function Ae(a){var b=Ud(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.R=this.S=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.R=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.R=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.S=32768)):d=c;this.u[a]=d>>16&65535;this.u[a|1]=d&65535;this.U=d>>16;this.X=d>>16|d;this.b-=(this.g?6:7)+b}function Be(a){S(this,a,!fd(this))}function Ce(a){S(this,a,fd(this))}
|
||||
function De(a){R(this,a,Rd(this,a),ee);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ee(a){Q(this,a,Qd(this,a),fe);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Fe(a){R(this,a,Rd(this,a),ge);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ge(a){Q(this,a,Qd(this,a),he);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}
|
||||
function He(a){P(this,Rd(this,a)&Ud(this,a));this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ie(a){P(this,(Qd(this,a)&Td(this,a))<<8);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Je(a){S(this,a,hd(this))}function Ke(a){S(this,a,!this.Da()==!gd(this))}function Le(a){S(this,a,!hd(this)&&!this.Da()==!gd(this))}function Me(a){S(this,a,!fd(this)&&!hd(this))}function Ne(a){S(this,a,hd(this)||!this.Da()!=!gd(this))}
|
||||
function Oe(a){S(this,a,fd(this)||hd(this))}function Pe(a){S(this,a,!this.Da()!=!gd(this))}function Qe(a){S(this,a,this.Da())}function Re(a){S(this,a,!hd(this))}function Se(a){S(this,a,!this.Da())}function Te(){this.ea(12,1);this.b-=5}function Ue(a){S(this,a,!0)}function Ve(a){S(this,a,!gd(this))}function We(a){S(this,a,gd(this))}function T(a){a&1&&(this.R=0);a&2&&(this.S=0);a&4&&(this.X=1);a&8&&(this.U=0);this.b-=5}
|
||||
function Xe(a){var b=Rd(this,a);a=Ud(this,a);Gd(this,b-a,a,b);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ye(a){var b=Qd(this,a)<<8;a=Td(this,a)<<8;Gd(this,b-a,a,b);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}
|
||||
function Ze(a){var b=Ud(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.R=this.S=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.U=d>>16):(this.S=32768,this.X=d>>15|d,this.U=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.U=0,this.S=32768,this.R=65536,this.b-=7}function $e(){this.ea(24,2);this.b-=25}
|
||||
function af(){this.L&49152?(this.Z|=128,this.ea(4,3)):this.i?$b(this.i):this.da();this.b-=7}function bf(){this.ea(16,4);this.b-=25}var cf=[0,7,7,10,7,11,9,13];function df(a){var b=this.b;O(this,Sd(this,a));this.b=b-cf[this.g]}var ef=[0,14,14,17,14,18,16,20];function ff(a){var b=this.b,c=Sd(this,a);a=a>>6&7;Hd(this,this.u[a]);this.u[a]=this.u[7];O(this,c);this.b=b-ef[this.g]}var gf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
|
||||
function hf(a){var b=Rd(this,a),c=this.b;P(this,Wd(this,a,b));this.b=c-gf[(this.H?8:0)+this.g]+(7!=this.f||this.g?0:2)}function jf(a){var b=Qd(this,a);P(this,Vd(this,a,b,1)<<8);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var kf=[7,13,13,17,14,18,17,21];
|
||||
function lf(a){var b=Ud(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.G&128||(this.U=b>>16,this.X=this.U|b,this.S=0,this.R=-32768>b||32767<b?65536:0);this.b-=23}function mf(){this.b-=5}function nf(){this.L&49152||(ed(this),this.w.reset());this.b-=667}function of(){Id(this);this.G|=this.L&16;this.b-=13}function pf(a){if(a&8)U.call(this,a);else{var b=Jd(this);a&=7;O(this,this.u[a]);this.u[a]=b;this.b-=9}}
|
||||
function W(a){a&1&&(this.R=65536);a&2&&(this.S=32768);a&4&&(this.X=0);a&8&&(this.U=32768);this.b-=5}function qf(a){var b=(a&448)>>6;if(this.u[b]=this.u[b]-1&65535)O(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function rf(a){R(this,a,Rd(this,a),ue);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function sf(a){R(this,a,0,we);this.b-=this.g?9:3+(7==this.f?2:0)}function tf(){this.ea(28,5);this.b-=5}function uf(){this.G&4||this.D.$();this.G|=4;jd(this,-2);this.b-=3}
|
||||
function vf(a){R(this,a,Rd(this,a),xe);this.b-=this.g?9:3+(7==this.f?2:0)}function U(a){var b;if(b=this.i)b=this.i,C(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function bd(a){wf[a>>12].call(this,a)}function xf(a){yf[a>>6&3].call(this,a)}function zf(a){Af[a>>6&3].call(this,a)}function Bf(a){Cf[a>>6&3].call(this,a)}function Df(a){Ef[a&15].call(this,a)}function Ff(a){Gf[a&15].call(this,a)}function Hf(a){If[a>>6&3].call(this,a)}function Jf(a){Kf[a>>6&3].call(this,a)}
|
||||
function Lf(a){Mf[a>>6&3].call(this,a)}
|
||||
var wf=[function(a){Nf[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,ye,U,function(a){Of[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,rf,U],Nf=[function(a){Pf[a>>4&15].call(this,a)},Ue,Re,Je,Ke,Pe,Le,Ne,ff,ff,xf,zf,Bf,U,U,U],yf=[function(a){Dd(this,Wd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,ke);this.b-=this.g?9:3+(7==this.f?2:0)}],Af=[function(a){R(this,a,0,
|
||||
oe);this.b-=this.g?11:6},function(a){R(this,a,fd(this)?1:0,Zd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,fd(this)?1:0,ue);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Ud(this,a);Dd(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Cf=[function(a){R(this,a,0,se);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,qe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ce);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ae);this.b-=this.g?9:3+(7==this.f?2:0)}],
|
||||
Pf=[function(a){ig[a&15].call(this,a)},U,U,U,df,df,df,df,pf,U,Df,Ff,sf,sf,sf,sf],ig=[af,uf,of,Te,bf,nf,U,U,U,U,U,U,U,U,U,U],Ef=[mf,function(){this.R=0;this.b-=5},function(){this.S=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.U=0;this.b-=5},T,T,T,T,T,T,T],Gf=[mf,function(){this.R=65536;this.b-=5},function(){this.S=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.U=32768;this.b-=5},W,W,W,W,W,W,W],Of=[Se,Qe,Me,Oe,Ve,We,Be,Ce,$e,tf,Hf,Jf,Lf,U,U,U],If=[function(a){Dd(this,
|
||||
Vd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,je);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,ne);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,le);this.b-=this.g?9:3+(7==this.f?2:0)}],Kf=[function(a){Q(this,a,0,pe);this.b-=this.g?11:6},function(a){Q(this,a,fd(this)?1:0,$d);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,fd(this)?1:0,ve);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Td(this,a);Dd(this,a<<8);this.b-=this.g?4:3+(7==
|
||||
this.f?2:0)}],Mf=[function(a){Q(this,a,0,te);this.b-=this.g?9+(this.Ya&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,de);this.b-=this.g?9+(this.Ya&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)}];function cd(a){jg[a>>12].call(this,a)}
|
||||
var jg=[function(a){kg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,ye,function(a){lg[a>>8&15].call(this,a)},function(a){mg[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,rf,U],kg=[function(a){ng[a>>4&15].call(this,a)},Ue,Re,Je,Ke,Pe,Le,Ne,ff,ff,xf,zf,Bf,function(a){og[a>>6&3].call(this,a)},U,U],og=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.oa(a|this.M);O(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Od(this,a,0);Hd(this,a);P(this,a);this.b-=11},function(a){var b=Jd(this),c=
|
||||
this.b;Pd(this,a,0,b);P(this,b);this.b=c-kf[this.g]},function(a){P(this,Wd(this,a,this.Da?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],ng=[function(a){pg[a&15].call(this,a)},U,U,U,df,df,df,df,pf,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.G|=1),this.b-=5):U.call(this,a)},Df,Ff,sf,sf,sf,sf],pg=[af,uf,of,Te,bf,nf,function(){Id(this);this.b-=13},U,U,U,U,U,U,U,U,U],lg=[lf,lf,Ze,Ze,ze,ze,Ae,Ae,vf,vf,U,U,U,U,qf,qf],mg=[Se,Qe,Me,Oe,Ve,We,Be,Ce,$e,tf,Hf,Jf,Lf,function(a){qg[a>>6&3].call(this,
|
||||
a)},U,U],qg=[U,function(a){a=Od(this,a,65536);Hd(this,a);P(this,a);this.b-=11},function(a){var b=Jd(this),c=this.b;Pd(this,a,65536,b);P(this,b);this.b=c-kf[this.g]},U];
|
||||
function rg(a){r.call(this,"ROM",a,rg);this.ka=this.f=null;this.B=a.addr;this.g=a.size;this.A=a.alias;this.D=a.file;this.F=oa(this.D);if(this.D){a=this.D;var b=pa(this.F);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.D+"&format=bytes&decimal=true");var c=this;Ba(a,null,!0,function(a,b,f){f?c.ga("Unable to load ROM resource (error "+f+": "+a+")"):(jb(c.Ra,a,b),(a=Ca(a,b))?(c.f=a.ia,c.ka=a.ka):c.D=null,sg(c))})}}u(rg);rg.prototype.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;sg(this)};
|
||||
rg.prototype.Aa=function(){if(this.ka){if(this.i){var a=this.i,b=this.id,c=this.B,d=this.g,e=this.ka,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var m=h.o,p=h.a;if(void 0!==m){var q=f,m=[m>>>0,g],v=ya(q,m,a.Vb);0>v&&q.splice(-(v+1),0,m)}p&&(h.a=p.replace(/''/g,'"'))}a.F.push({Ud:b,C:c,vc:d,ka:e,Ub:f})}delete this.ka}return!0};rg.prototype.za=function(){return!0};
|
||||
function sg(a){if(!pb(a)){if(a.D){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if(a.f.length!=a.g)rb(a,"ROM size ("+l(a.f.length,8,!0)+") does not match specified size ("+l(a.g,8,!0)+")");else{var b;b=a.B;if(Yb(a.w,b,a.g,Cc)){var c;for(c=0;c<a.f.length;c++)a.w.Va(b+c,a.f[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.A?b.push(a.A):null!=a.A&&a.A.length&&(b=a.A);for(c=0;c<b.length;c++){var d=a,e=b[c],f=Xb(d.w,d.B,d.g);Wb(d.w,e,d.g,f)}delete a.f}}}H(a)}}
|
||||
Ta(function(){for(var a=B(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new rg(d);A(d,c)}});
|
||||
function tg(a){r.call(this,"RAM",a,tg);this.ka=this.g=null;this.F=a.addr;this.H=a.size;this.A=a.load;this.D=a.exec;this.B=!1;this.f=a.file;this.I=oa(this.f);if(this.f){a=this.f;var b=pa(this.I);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.f+"&format=bytes&decimal=true");var c=this;Ba(a,null,!0,function(a,b,f){f?c.ga("Unable to load RAM resource (error "+f+": "+a+")"):(jb(c.Ra,a,b),(a=Ca(a,b))?(c.g=a.ia,c.ka=a.ka,null==c.A&&null!=a.Lb&&(c.A=a.Lb),null==c.D&&null!=a.Kb&&(c.D=a.Kb)):c.f=null,
|
||||
ug(c))})}}u(tg);tg.prototype.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;ug(this)};tg.prototype.Aa=function(){return!0};tg.prototype.za=function(){return!0};function ug(a){!a.B&&a.H&&Yb(a.w,a.F,a.H,1)&&(a.B=!0);if(!pb(a)){if(!a.B)n("No RAM allocated");else if(a.f){if(!a.g||!a.w)return;var b=a.F;null!==a.A&&(b=a.A);for(var c=0;c<a.g.length;c++)a.w.Va(b+c,a.g[c]);null!==a.D&&(b=a.b,c=a.D,b.xb=c,O(b,c));delete a.g}H(a)}}tg.prototype.reset=function(){};
|
||||
Ta(function(){for(var a=B(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new tg(d);A(d,c)}});function vg(a){r.call(this,"Keyboard",a,vg,65536);H(this)}u(vg);vg.prototype.ra=function(){return!1};vg.prototype.Ca=function(a,b,c,d){this.D=a;this.b=c;this.i=d};Ta(function(){for(var a=B(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new vg(d);A(d,c)}});
|
||||
function X(a){this.A=this.F=null;this.O=a.tabSize;this.M=a.charBOL;this.H=0;r.call(this,"SerialPort",a,X,8388608);var b=a.binding;if("console"==b)this.F="";else{var c;a=wg;b&&(void 0===c&&(c="Panel"),(c=mb(c,this.id))&&(b=c.J[b])&&this.ra(null,a,b))}this.I=this.K=null;this.exports={connect:this.cc,receiveData:this.Ob}}u(X);var wg="buffer";k=X.prototype;
|
||||
k.ra=function(a,b,c){var d=this;switch(b){case wg:return this.J[b]=this.A=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.Ob(b);return!0},c.onkeypress=function(a){a=a||window.event;d.Ob(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
|
||||
k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;var e=this;this.aa=sc(48,4);this.P=hc(this.b,function(){e.f&128||!e.B.length||(e.N=e.B.shift(),e.f|=128,e.f&64&&ic(e.b,e.aa))});this.ba=sc(52,4);this.V=hc(this.b,function(){e.g|=128;e.g&64&&ic(e.b,e.ba)});ec(b,this,xg);H(this)};
|
||||
k.cc=function(){if(!this.I){var a=Pc(this.D,"connection");if(a){var b=a.split("->");if(2==b.length){var c=va(b[0]);if(c!=this.Xa)return;b=va(b[1]);if(this.I=lb(b)){var d=this.I.exports;if(d){var e=d.connect;e&&e.call(this.I);if(this.K=d.receiveData){this.status(this.Ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.Aa=function(a,b){if(!b)if(this.cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
k.za=function(a){return a?this.save():!0};k.reset=function(){yg(this)};k.save=function(){var a=new N(this);a.set(0,[]);return a.data()};k.restore=function(){return yg(this)};function yg(a){a.N=0;a.f=0;a.g=128;a.B=[];return!0}k.Ob=function(a){if("number"==typeof a)this.B.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.B.push(a.charCodeAt(b));else this.B=this.B.concat(a);jc(this.b,this.P,1);return!0};k.Sc=function(){return this.f&65535};k.Ed=function(a){this.f=this.f&-112|a&111};
|
||||
k.Rc=function(){this.f&=-129;0<this.B.length&&jc(this.b,this.P,1);return this.N};k.Dd=function(){};k.ed=function(){return this.g};k.Rd=function(a){128==(this.g&192)&&a&64&&jc(this.b,this.V,1);this.g=this.g&-70|a&69};k.dd=function(){return 0};
|
||||
k.Qd=function(a){if(a&=255){C(this,"transmitByte("+l(a,2,!0)+")");this.K&&this.K.call(this.I,a);if(this.A)if(13==a)this.H=0;else if(8==a)this.A.value=this.A.value.slice(0,-1),0<this.H&&this.H--;else{var b;b=(b=wa[a])?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.O||8,c=a-this.H%a,this.O&&(b=ua("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.A.value+=b;this.A.scrollTop=this.A.scrollHeight;this.H+=c}else if(null!=this.F){if(10==a||1024<=this.F.length)this.j(this.F),
|
||||
this.F="";10!=a&&(this.F+=String.fromCharCode(a))}this.g&=-129;jc(this.b,this.V,1)}};var zg={},xg=(zg[65392]=[null,null,X.prototype.Sc,X.prototype.Ed,"RCSR"],zg[65394]=[null,null,X.prototype.Rc,X.prototype.Dd,"RBUF"],zg[65396]=[null,null,X.prototype.ed,X.prototype.Rd,"XCSR"],zg[65398]=[null,null,X.prototype.dd,X.prototype.Qd,"XBUF"],zg);Ta(function(){for(var a=B(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new X(d);A(d,c)}});
|
||||
function wc(a){r.call(this,"PC11",a,wc);this.g=a.autoMount||null;this.M=this.I=this.f=this.A=0;this.K=[];this.F=Ag;this.H=Bg;this.B="";this.N=!La("Mobi")&&window&&"FileReader"in window}u(wc);var Ag="",Bg=0;k=wc.prototype;
|
||||
k.ra=function(a,b,c){var d=this,e=Bg;switch(b){case "listTapes":return this.J[b]=c,c.onchange=function(){var a=d.J.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(m){n("PC11 option error: "+m.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.J[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.J[b]=c,c.onclick=
|
||||
function(){var a=d.J.listTapes;a&&Cg(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(this.N)return this.J[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Cg(d,oa(b,!0),b,1,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
|
||||
k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;var e=this;if((this.g=Pc(this.D,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){n("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.P=sc(56,4);this.O=hc(this.b,function(){Dg(e)});ec(b,this,Eg);Fg(this,"None",Ag,!0);this.N&&Fg(this,"Local Tape","?");Fg(this,"Remote Tape","??");Gg(this)||H(this)};
|
||||
k.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.za=function(a){return a?this.save():!0};k.reset=function(){this.f&=-2241;this.I=0};function Gg(a){a.A=0;if(a.g){var b=a.g.path,c;if(!(c=a.g.name))a:{if((c=a.J.listTapes)&&c.options)for(var d=0;d<c.options.length;d++){var e=c.options[d];if(e.value==b){c=e.text;break a}}c=oa(b,!0)}b&&c?Hg(a,c,b,1,!0):a.ga("Incorrect auto-mount settings for PC11 ("+JSON.stringify(a.g)+")")}return!!a.A}
|
||||
function Cg(a,b,c,d,e){if(c)if("?"==c)a.ga('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=oa(c);a.F="??"}else a.F=c;Hg(a,b,c,d,!1,e)}else Ig(a,!1)}function Hg(a,b,c,d,e,f){var g=-1;if(a.B.toLowerCase()!=c.toLowerCase()||a.H!=d)g++,Ig(a,!0),a.v.Ia?a.ga("PC11 busy"):(e&&(a.A++,D(a)&&C(a,"auto-loading tape: "+b)),Jg(a,b,c,d,f)?g++:a.v.Ia=!0)}
|
||||
function Jg(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var b=g.result;b&&(b=new Uint8Array(b,0,b.byteLength),Kg(a,c,d,b),a.F="?");Lg(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=pa(c),f="json"==e||"gz"==e?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(f,null,!0,function(e,f,g){var h=0>g&&a.D&&!a.D.v.ha;g?a.ga('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(jb(a.Ra,e,f),(e=Ca(e,f))&&Kg(a,c,d,e.ia));a.v.Ia=
|
||||
!1;a.A&&(a.A--,a.A||H(a));Lg(a)})}function Fg(a,b,c,d){if((a=a.J.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}function Lg(a){var b=a.J.listTapes;if(b&&b.options){a=a.F||a.B;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}
|
||||
function Kg(a,b,c,d){a.B=b;a.H=c;if(2==c){b=0;c=!1;for(var e=0;b<d.length-1;){var f=d[b]&255|(d[b+1]&255)<<8;if(f)if(f&255){if(1!=f){e||(c=!0);break}if(b+6>=d.length){c=!0;break}b+=2;for(var g=d[b++]&255|(d[b++]&255)<<8,h=d[b++]&255|(d[b++]&255)<<8,f=f+((g&255)+(g>>8)+(h&255)+(h>>8)),m=b,p=g-=6;0<g&&b<d.length-1;)f+=d[b++]&255,g--;if(g||b>=d.length){c=!0;break}f+=d[b++]&255;if(f&255){c=!0;break}if(p)for(;p--;)a.b.Va(h++,d[m++]&255);else h&1||O(a.b,h);e++}else b++;else b+=2}c&&(a.B="",a.F=Ag,a.H=Bg)}else a.M=
|
||||
0,a.K=d}function Ig(a,b){if(a.B||!1===b)a.B="",b||(a.F=Ag,a.H=Bg,Lg(a))}k.save=function(){return(new N(this)).data()};k.restore=function(){return!0};function Dg(a){1==(a.f&32769)&&!(a.f&128)&&a.M<a.K.length&&(a.I=a.K[a.M++]&255,a.f|=128,a.f&=-2049,a.f&64&&ic(a.b,a.P),jc(a.b,a.O,1E3/300,!0))}k.Lc=function(){return this.f&65534};k.xd=function(a){a&1&&(this.f&32768?a&=-2:(this.f&=-129,this.f|=2048,this.I=0));this.f=this.f&-66|a&65;Dg(this)};k.Kc=function(){this.f&=-129;this.f|=2048;return this.I};
|
||||
k.wd=function(){};var Mg={},Eg=(Mg[65384]=[null,null,wc.prototype.Lc,wc.prototype.xd,"PRS"],Mg[65386]=[null,null,wc.prototype.Kc,wc.prototype.wd,"PRB"],Mg);function Ng(a){r.call(this,"Debugger",a,Ng);this.ma=a.base||16;this.ya=!1;this.N=this.xa=this.H=0;this.P=!1;this.A=-1;this.g=[];this.aa={}}u(Ng);var Og={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Ng.prototype.$b=function(){return-1};Ng.prototype.ac=function(){};
|
||||
function Pg(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.g[a.A+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(va(b.substring(c,f))),c=f+1}}return a}
|
||||
function Qg(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;
|
||||
I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(sb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.F.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(sb)for(b=0;b<a.length;b++)this.F.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ja=!0}return!1},Sa:function(a,b){b?this.I++||Hc(this,Ic,!1):this.g++||Jc(this,Ic,!1)},K:function(){this.i&&D(this.i,128)&&(C(this.i,"attempt to read invalid block %"+
|
||||
l(this.B),!0),this.i.aa());return 255},D:function(a,b){this.i&&D(this.i,128)&&(C(this.i,"attempt to write "+l(b,4,!0)+" to invalid block %"+l(this.B),!0),this.i.aa())},M:function(a,b){return this.Hb(a++,b++)|this.Hb(a,b)<<8},H:function(a,b,c){this.Kb(a++,b&255,c++);this.Kb(a,b>>8,c)},U:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a,b){a&1&&gc(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},sa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=
|
||||
this.b[c]&~(255<<a)|b<<a;this.Ja=!0},Za:function(a,b,c){a&1&&gc(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.Ja=!0},O:function(a,b){if(this.i&&null!=this.B){var c=this.i;Kc(c,this.B+a,1,c.M)&&c.aa(!0)}return this.Nb(a,b)},ca:function(a,b){if(this.i&&null!=this.B){var c=this.i;Kc(c,this.B+a,2,c.M)&&c.aa(!0)}return this.Ob(a,b)},qa:function(a,b,c){if(this.i&&null!=this.B){var d=this.i;Kc(d,this.B+a,
|
||||
1,d.C)&&d.aa(!0)}this.f?this.D(a,b,c):this.Tb(a,b,c)},xa:function(a,b,c){if(this.i&&null!=this.B){var d=this.i;Kc(d,this.B+a,2,d.C)&&d.aa(!0)}this.f?this.D(a,b,c):this.Ub(a,b,c)},N:function(a){return this.C[a]},P:function(a,b){a=this.C[a];this.i&&D(this.i,128)&&C(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},ba:function(a,b){a&1&&gc(this.w,b);return this.F.getUint16(a,!0)},fa:function(a,b){a&1&&gc(this.w,b);a=this.J[a>>1];this.i&&D(this.i,128)&&C(this.i,"Memory.readWord("+
|
||||
J(this.i,b)+"): "+J(this.i,a),!0);return a},pa:function(a,b){this.C[a]=b;this.Ja=!0},Ra:function(a,b,c){this.C[a]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},wa:function(a,b,c){a&1&&gc(this.w,c);this.F.setUint16(a,b,!0);this.Ja=!0},ya:function(a,b,c){a&1&&gc(this.w,c);this.J[a>>1]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}};
|
||||
function Sb(a,b,c){a.i=b;a.g=a.I=0;c&&((a.g=c.g)&&Jc(a,Ic,!1),(a.I=c.I)&&Hc(a,Ic,!1))}function Lc(a,b){b?--a.I||(a.Kb=a.f?a.D:a.Tb,a.yb=a.f?a.H:a.Ub):--a.g||(a.Hb=a.Nb,a.oa=a.Ob)}function Hc(a,b,c){c&&a.I||(a.Kb=!a.f&&b[1]||a.D,a.yb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Tb=b[1]||a.D,a.Ub=b[3]||a.H}function Jc(a,b,c){c&&a.g||(a.Hb=b[0]||a.K,a.oa=b[2]||a.M);if(c||void 0===c)a.Nb=b[0]||a.K,a.Ob=b[2]||a.M}function Dc(a,b){b||(b=Mc);Jc(a,b,void 0);Hc(a,b,void 0)}
|
||||
var Mc=[],Gc=[I.prototype.U,I.prototype.sa,I.prototype.ma,I.prototype.Za],Ic=[I.prototype.O,I.prototype.qa,I.prototype.ca,I.prototype.xa];if(sb)var Fc=[I.prototype.N,I.prototype.pa,I.prototype.ba,I.prototype.wa],Ec=[I.prototype.P,I.prototype.Ra,I.prototype.fa,I.prototype.ya];
|
||||
function Nc(a,b){r.call(this,"CPU",a,Nc,1);var c=a.multiplier||1;this.Ga=a.cycles||b;this.Ma=c;this.ab=Math.round(this.Ga/1E4)/100;this.Wa=this.ab*this.Ma;this.v.da=!1;this.v.Rb=!1;this.v.pb=a.autoStart;this.v.cb=!1;this.sb=this.ma=0;this.tb=a.csStart;this.gb=a.csInterval;this.hb=a.csStop;this.K=[];this.Fb=this.fd.bind(this);H(this)}u(Nc);var Oc=["power","reset"];k=Nc.prototype;
|
||||
k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.i=d;for(b=0;b<Oc.length;b++)(c=this.I[Oc[b]])&&this.D.ra(null,Oc[b],c);a=Pc(a,"autoStart");null!=a&&(this.v.pb="true"==a?!0:"false"==a?!1:!!a);H(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
|
||||
k.Aa=function(a,b){if(!b){if(a&&this.restore){Qc(this);if(!this.restore(a))return!1;Rc(this)}else this.reset();this.i?(a=this.i,a.$a=!0,a.j("Type ? for help with PDP11 Debugger commands"),a.$(),a.Ga&&(b=a.Ga,a.Ga=null,Sc(a,b))):this.j("No debugger detected")}this.D.$();return!0};k.za=function(a){return a?this.save():!0};k.pb=function(){return this.v.pb||!this.i&&void 0===this.I.run?(this.lb(!0),!0):!1};k.$b=function(){return 0};
|
||||
function Rc(a){void 0===a.tb&&(a.tb=0);void 0===a.gb&&(a.gb=-1);void 0===a.hb&&(a.hb=-1);a.v.cb=0<=a.tb&&0<a.gb;a.v.cb&&(a.sb=0,a.ma=a.tb-a.fa)}function Tc(a,b){if(a.v.cb){var c=!1;a.sb=a.sb+a.$b()|0;a.ma-=b;0>=a.ma&&(a.ma+=a.gb,c=!0);0<=a.hb&&a.hb<=Uc(a)&&(a.gb=a.hb=-1,Rc(a),a.aa(),c=!0);c&&a.j(Uc(a)+" cycles: checksum="+l(a.sb))}}
|
||||
k.ra=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.D)if(a=d.D,a.v.ga)a=!0;else{var b=null,c,h=kb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.v.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.v.ga);c++);c==h.length&&(b=a);n("The "+b.type+" component ("+b.id+") is not "+(b.v.ready?"powered yet":"ready yet"+(b.Bb?" (waiting for notification)":""))+".");a=!1}a&&(d.v.da?d.aa():d.lb())},
|
||||
!0;case "speed":return this.I[b]=c,!0;case "setSpeed":return this.I[b]=c,c.onclick=function(){Vc(d,d.Ma<<1,!0)},c.textContent=this.Wa.toFixed(2)+"Mhz",!0}return!1};k.$=function(){var a=this.I.speed;a&&(a.textContent=this.v.da&&this.U?this.U.toFixed(2)+"Mhz":"Stopped")};function Wc(a,b,c){a.fa+=b;c&&(a.ca=a.b=0)}function Xc(a,b){var c=1;b&&1<a.Ma&&a.U&&(c=a.U/a.ab);a.Cb=Math.round(1E3/30);a.Qa=Math.floor(a.Ga/30*c);b||(a.pa=a.Qa);a.eb=0}function Uc(a){return a.fa+a.O+a.ca-a.b}
|
||||
function Qc(a){a.U=0;a.Eb=0;a.fa=a.O=a.ca=a.b=0;Rc(a);Vc(a,1)}function Vc(a,b,c){var d=!1;if(void 0!==b){.8>a.U/a.Wa?b=1:d=!0;a.Ma=b;b=a.ab*a.Ma;if(a.Wa!=b){a.Wa=b;b=a.Wa.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.D&&a.D.wb()}Wc(a,a.O);a.O=0;a.N=za();a.ba=0;Xc(a);return d}function hc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function jc(a,b,c,d){0<=b&&b<a.K.length&&(d||0>a.K[b][0])&&(c=a.Ga*a.Ma/1E3*c|0,a.K[b][0]=c+Yc(a))}
|
||||
function Zc(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function $c(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Yc(a,b){var c=a.ca-=a.b;a.b=0;b&&(a.ca=0);return c}
|
||||
k.fd=function(){if(this.v.da){this.eb>=this.Ga&&Xc(this,!0);this.sa=0;this.Fa=za();if(this.ba){var a=this.Fa-this.ba;a>this.Cb&&(this.N+=a,this.N>this.Fa&&(this.N=this.Fa))}try{do{var b=Zc(this,this.v.cb?1:this.Qa);try{this.mb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.sa+=b;this.O+=b;Tc(this,b);$c(this,b);this.pa-=b;if(0>=this.pa){this.pa+=this.Qa;15<=++this.Eb&&(this.D&&this.D.$(),this.Eb=0);break}}while(this.v.da)}catch(e){this.aa();this.D&&this.D.stop(za(),Uc(this));rb(this,
|
||||
e.stack||e.message);return}if(this.v.da){a=setTimeout;b=this.Fb;this.ba=za();var c=this.Cb;this.sa&&(c=Math.round(c*this.sa/this.Qa));var c=c-(this.ba-this.Fa),d=this.ba-this.N;d&&(this.U=Math.round(this.O/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.U<this.Wa)-1E3>c&&(this.N-=c),c=0;this.eb+=this.sa;this.ba+=c;a(b,c)}}};
|
||||
k.lb=function(a){if(qb(this))return!1;if(this.v.da)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.da=!0;this.v.Rb=!0;var b=this.I.run;b&&(b.textContent="Halt");this.D&&(a&&this.D.wb(!0),this.D.start(this.N,Uc(this)));setTimeout(this.Fb,0);return!0};k.mb=function(){return 0};k.aa=function(a){if(this.v.da){Yc(this);Wc(this,this.O);this.O=0;this.v.da=!1;var b=this.I.run;b&&(b.textContent="Run");this.D&&this.D.stop(za(),Uc(this))}this.v.complete=a};
|
||||
function ad(a){this.fb=+a.model||1170;this.zb=a.addrReset||0;Nc.call(this,a,6666667);this.decode=1120==this.fb?bd.bind(this):cd.bind(this);dd(this);this.A=0;this.P=null;this.v.complete=this.v.oc=!1}u(ad,Nc);k=ad.prototype;k.reset=function(){this.status("model "+this.fb);this.v.da&&this.aa();dd(this);Qc(this);this.v.error=!1;this.parent.reset.call(this)};
|
||||
function dd(a){a.R=65536;a.S=32768;a.X=65535;a.V=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.zb];a.Ea=[0,0,0,0,0,0];a.va=[0,0,0,0];a.C=0;a.xa=0;a.sc=[4,2,0,1];a.T=[[0,0,0,0,0,0,0,0,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]];a.ta=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.gc=[0,0,0,0,0,0,0,0];a.fc=0;a.G=0;a.H=a.J=0;a.g=a.f=a.$a=0;a.qa=-1;ed(a)}function ed(a){a.Pa=255;a.Z=0;a.Qb=0;a.F=0;a.Na=0;a.vb=0;a.Oa=0;a.La=0;a.wa=0;a.bb=262143;a.ya=253952;a.G|=2;a.w&&tc(a)}function tc(a){a.La?(a.M=65536,a.Y=a.rc,a.oa=a.cd,a.yb=a.Pd,Vb(a.w,a.Oa&16?22:18)):(a.M=0,a.Y=a.qc,a.oa=a.ec,a.yb=a.kc,Vb(a.w,16))}function fd(a,b){a.zb=b;N(a,b);a.i&&(a.aa(),a.i.$())}k.$b=function(){return 0};
|
||||
k.save=function(){var a=new O(this);a.set(0,[]);a.set(1,[this.fa,this.Ma]);a.set(2,cc(this.w));return a.data()};k.restore=function(a){var b=a[1];this.fa=b[1];Vc(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.J){for(var f=0,g=Array(b.J),h=0;h<e.length-1;)for(var m=e[h++],p=e[h++];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 gd(a){return a.R&65536?1:0}
|
||||
function hd(a){return a.S&32768?2:0}function id(a){return a.X&65535?0:4}k.Da=function(){return this.V&32768?8:0};function jd(a){var b=a.u[7];a.F&57344||(a.Na=0,a.vb=b);a.u[7]=b+2&65535;return a.oa(b)}function Dd(a,b){var c=a.u[7];a.u[7]=c+b&65535;return c}function N(a,b){a.u[7]=b&65535}function kc(a,b){return{jd:a,ib:b,next:null}}function ic(a,b){if(b!=a.P){var c=a.P;if(!c||c.ib<=b.ib)b.next=c,a.P=b;else{do{var d=c.next;if(!d||d.ib<=b.ib){b.next=d;c.next=b;break}c=d}while(c)}}a.G|=2}
|
||||
function Lb(a){return a.L=a.L&63728|a.Da()|id(a)|hd(a)|gd(a)}function vc(a,b){a.V=b<<12;a.X=~b&4;a.S=b<<14;a.R=b<<16;if((b^a.L)&2048)for(var c=a.Ea.length;0<=--c;){var d=a.u[c];a.u[c]=a.Ea[c];a.Ea[c]=d}a.C=b>>14&3;c=a.L>>14&3;a.C!=c&&(a.va[c]=a.u[6],a.u[6]=a.va[a.C]);a.L=b;a.G|=2}function P(a,b){a.G&128||(a.V=a.X=b,a.S=0)}function Ed(a,b,c){a.G&128||(a.V=a.X=a.R=b,a.S=c||0)}function Fd(a,b,c,d){a.G&128||(a.V=a.X=a.R=b,a.S=(c^b)&(d^b))}function Gd(a,b){a.G&128||(a.V=a.X=a.R=b,a.S=a.V^a.R>>1)}
|
||||
function Hd(a,b,c,d){a.G&128||(a.V=a.X=a.R=b,a.S=(c^d)&(d^b))}k.ea=function(a,b){if(!this.A){var c=!1;0>this.qa?this.qa=Lb(this):this.C||(a=4,c=!0);this.F&57344||(this.Na=63222,this.vb=a);this.C=0;var d=this.oa(a|this.M),e=this.oa(a+2&65535|this.M);vc(this,e&-12289|this.qa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Id(this,this.qa);Id(this,this.u[7]);N(this,d);this.G&=-113;this.qa=-1;if(26!=b)throw a;}};function Jd(a){var b=Kd(a),c=Kd(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);N(a,b);vc(a,c);a.G&=-17}
|
||||
function Ld(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.C]||(d&=7);e=a.T[a.C][d];f=(a.ta[a.C][d]<<6)+(b&8191)&a.bb;if(f<a.ya)f&1&&!(c&1)&&(a.Z|=64,a.ea(4,10));else if(a.Oa&16||253952<=f&&(f|=4186112),4186112>f){if(3932160<=f){f&=262143;var h=f>>13&31;31>h?a.Oa&32&&(f=a.uc[h]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(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.T[a.C][d]=e;if(4194170!==f||a.C)a.wa=a.C,a.xa=d;g&&(g&57344&&(0<=a.qa&&(g|=128),a.F&57344||(a.F=a.F|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.F&61440||!(4191360>f||4194239<f)||(a.F|=4096,a.F&512&&(a.G|=32)));return f}function Md(a,b){return a.w.qb(b)}function Nd(a,b,c){b&1&&a.b--;a.w.Ib(b,c&255)}function Kd(a){var b=a.oa(a.u[6]|a.M);a.u[6]=a.u[6]+2&65535;return b}
|
||||
function Id(a,b){var c=a.u[6]-2&65535;a.u[6]=c;a.F&57344||(a.Na=a.Na<<8|246);!a.C&&c<=a.Pa&&4<c&&(c<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,18)):(a.Z|=8,a.G|=4));a.yb(c,b)}
|
||||
function Od(a,b,c,d){var e,f,g=d&8?0:a.M;switch(b){case 0:return a.ea(4,20),0;case 1:return 6===c&&!a.C&&d&4&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32||65534<=a.u[6]?(a.Z|=4,a.u[6]=4,a.ea(4,22)):(a.Z|=8,a.G|=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.oa(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.oa(e)|g;
|
||||
a.b-=8;break;case 6:return e=a.oa(Dd(a,2)),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=a.oa(Dd(a,2)),e=e+a.u[c]&65535,e=a.oa(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.F&57344||(a.Na=a.Na<<8|f<<3&248|c);6==c&&!a.C&&d&4&&0>=f&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.G|=64));return e}k.Db=function(a){if(!this.La)return this.w.Db(a);this.A++;a=Md(this,Ld(this,a,3));this.A--;return a};
|
||||
k.rb=function(a){if(!this.La)return this.w.rb(a);this.A++;a=this.ec(Ld(this,a,2));this.A--;return a};k.Xa=function(a,b){this.La?(this.A++,Nd(this,Ld(this,a,5),b),this.A--):this.w.Xa(a,b)};k.Jb=function(a,b){this.La?(this.A++,this.kc(Ld(this,a,4),b),this.A--):this.w.Jb(a,b)};k.qc=function(a,b,c){return Od(this,a,b,c)};k.rc=function(a,b,c){return Ld(this,Od(this,a,b,c),c)};k.ec=function(a){return this.w.na(a)};k.cd=function(a){return this.w.na(Ld(this,a,2))};k.kc=function(a,b){this.w.Ya(a,b&65535)};
|
||||
k.Pd=function(a,b){this.w.Ya(Ld(this,a,4),b)};function Pd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Od(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.C=a.L>>12&3,c=a.oa(d|c&a.M),a.C=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.va[a.L>>12&3];return c}function Qd(a,b,c,d){a.F&57344||(a.Na=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Od(a,b,e,4),c&65536||(e&=65535),a.C=a.L>>12&3,e=Ld(a,e|c&65536,4),a.C=a.L>>14&3,a.w.Ya(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.va[a.L>>12&3]=d}
|
||||
function Rd(a,b){b>>=6;var c=a.J=b&7;return(b=a.H=(b&56)>>3)?Md(a,a.Y(b,c,3)):a.u[c]&255}function Sd(a,b){b>>=6;var c=a.J=b&7;return(b=a.H=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]}function Td(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Od(a,b,c,8)}function Ud(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Md(a,a.Y(b,c,3)):a.u[c]&255}function Vd(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]}
|
||||
function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.$a=a.Y(b,e,7),Nd(a,e,d.call(a,c,Md(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Y(b,e,6),a.w.Ya(e,d.call(a,c,a.w.na(e)))):a.u[e]=d.call(a,c,a.u[e])}function Wd(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Nd(a,a.Y(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Xd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.Ya(a.Y(b,d,4),c):a.u[d]=c&65535;return c}
|
||||
function S(a,b,c){c&&(N(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3}
|
||||
k.mb=function(a){this.v.complete=!0;var b=this.v.oc=this.i&&Yd(this.i),c=a?this.v.Rb?0:1:-1;this.v.Rb=!1;this.ca=this.b=a;do{if(b){if(Zd(this.i,this.u[7],c)){this.aa();break}c=1}if(this.G&&(this.G&112&&(this.G&32?this.ea(168,28):this.G&64?this.ea(4,30):this.G&16&&this.ea(12,32),this.G&=-113),this.G&7))if(this.G&2){this.G&=-3;var d=160,e=(this.Qb&224)>>5;if(a=this.P&&this.P.ib>e?this.P:null)d=a.jd,e=a.ib;e>(this.L&224)>>5?(this.G&4&&(Dd(this,2),this.G&=-5),this.ea(d,26),e=!0):e=!1;if(e&&a)if(e=this.P,
|
||||
e==a)this.P=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.G&1&&this.G++;this.G=this.G&7|this.L&16;this.decode(jd(this))}while(0<this.b);return this.v.complete?this.ca-this.b:void 0===this.v.complete?0:-1};Ta(function(){for(var a=B(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new ad(d);A(d,c)}});function $d(a,b){var c=b+a;Fd(this,c,a,b);return c&65535}function ae(a,b){var c=b+a;Fd(this,c<<8,a<<8,b<<8);return c&255}
|
||||
function be(a,b){a=b<<1;Gd(this,a);return a&65535}function ce(a,b){a=b<<1;Gd(this,a<<8);return a&255}function de(a,b){a=b&32768|b>>1|b<<16;Gd(this,a);return a&65535}function ee(a,b){a=b&2048|b>>1|b<<8;Gd(this,a<<8);return a&255}function fe(a,b){a=b&~a;P(this,a);return a}function ge(a,b){a=b&~a;P(this,a<<8);return a}function he(a,b){a|=b;P(this,a);return a}function ie(a,b){a|=b;P(this,a<<8);return a}function je(a,b){a=~b|65536;Ed(this,a);return a&65535}
|
||||
function ke(a,b){a=~b|256;Ed(this,a<<8);return a&255}function le(a,b){a=b-a;this.G&128||(this.V=this.X=a,this.S=b&(b^a));return a&65535}function me(a,b){a=b-a;var c=a<<8;b<<=8;this.G&128||(this.V=this.X=c,this.S=b&(b^c));return a&255}function ne(a,b){a=b+a;this.G&128||(this.V=this.X=a,this.S=a&(b^a));return a&65535}function oe(a,b){a=b+a;var c=a<<8;this.G&128||(this.V=this.X=c,this.S=c&(b<<8^c));return a&255}function pe(a,b){a=-b;Ed(this,a,a&b&32768);return a&65535}
|
||||
function qe(a,b){a=-b;Ed(this,a<<8,(a&b&128)<<8);return a&255}function re(a,b){a=b<<1|this.R>>16&1;Gd(this,a);return a&65535}function se(a,b){a=b<<1|this.R>>16&1;Gd(this,a<<8);return a&255}function te(a,b){a=(this.R&65536|b)>>1|b<<16;Gd(this,a);return a&65535}function ue(a,b){a=((this.R&65536)>>8|b)>>1|b<<8;Gd(this,a<<8);return a&255}function ve(a,b){var c=b-a;Hd(this,c,a,b);return c&65535}function we(a,b){var c=b-a;Hd(this,c<<8,a<<8,b<<8);return c&255}
|
||||
function xe(a,b){this.G&128||(this.V=this.X=b&65280,this.S=this.R=0);return(b<<8|b>>8)&65535}function ye(a,b){a^=b;P(this,a);return a&65535}function ze(a){R(this,a,Sd(this,a),$d);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}
|
||||
function Ae(a){var b=Vd(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.R=this.S=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.R=c<<17-b,c>>=b;else if(b)if(16<b)this.S=c,c=0;else{this.R=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.S=32768)}this.u[a]=c&65535;this.V=this.X=c;this.b-=(this.g?6:7)+b}
|
||||
function Be(a){var b=Vd(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.R=this.S=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.R=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.R=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.S=32768)):d=c;this.u[a]=d>>16&65535;this.u[a|1]=d&65535;this.V=d>>16;this.X=d>>16|d;this.b-=(this.g?6:7)+b}function Ce(a){S(this,a,!gd(this))}function De(a){S(this,a,gd(this))}
|
||||
function Ee(a){R(this,a,Sd(this,a),fe);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Fe(a){Q(this,a,Rd(this,a),ge);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ge(a){R(this,a,Sd(this,a),he);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function He(a){Q(this,a,Rd(this,a),ie);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}
|
||||
function Ie(a){P(this,Sd(this,a)&Vd(this,a));this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Je(a){P(this,(Rd(this,a)&Ud(this,a))<<8);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ke(a){S(this,a,id(this))}function Le(a){S(this,a,!this.Da()==!hd(this))}function Me(a){S(this,a,!id(this)&&!this.Da()==!hd(this))}function Ne(a){S(this,a,!gd(this)&&!id(this))}function Oe(a){S(this,a,id(this)||!this.Da()!=!hd(this))}
|
||||
function Pe(a){S(this,a,gd(this)||id(this))}function Qe(a){S(this,a,!this.Da()!=!hd(this))}function Re(a){S(this,a,this.Da())}function Se(a){S(this,a,!id(this))}function Te(a){S(this,a,!this.Da())}function Ue(){this.ea(12,1);this.b-=5}function Ve(a){S(this,a,!0)}function We(a){S(this,a,!hd(this))}function Xe(a){S(this,a,hd(this))}function T(a){a&1&&(this.R=0);a&2&&(this.S=0);a&4&&(this.X=1);a&8&&(this.V=0);this.b-=5}
|
||||
function Ye(a){var b=Sd(this,a);a=Vd(this,a);Hd(this,b-a,a,b);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ze(a){var b=Rd(this,a)<<8;a=Ud(this,a)<<8;Hd(this,b-a,a,b);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}
|
||||
function $e(a){var b=Vd(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.R=this.S=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.V=d>>16):(this.S=32768,this.X=d>>15|d,this.V=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.V=0,this.S=32768,this.R=65536,this.b-=7}function af(){this.ea(24,2);this.b-=25}
|
||||
function bf(){this.L&49152?(this.Z|=128,this.ea(4,3)):this.i?$b(this.i):this.aa();this.b-=7}function cf(){this.ea(16,4);this.b-=25}var df=[0,7,7,10,7,11,9,13];function ef(a){var b=this.b;N(this,Td(this,a));this.b=b-df[this.g]}var ff=[0,14,14,17,14,18,16,20];function gf(a){var b=this.b,c=Td(this,a);a=a>>6&7;Id(this,this.u[a]);this.u[a]=this.u[7];N(this,c);this.b=b-ff[this.g]}var hf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
|
||||
function jf(a){var b=Sd(this,a),c=this.b;P(this,Xd(this,a,b));this.b=c-hf[(this.H?8:0)+this.g]+(7!=this.f||this.g?0:2)}function kf(a){var b=Rd(this,a);P(this,Wd(this,a,b,1)<<8);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var lf=[7,13,13,17,14,18,17,21];
|
||||
function mf(a){var b=Vd(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.G&128||(this.V=b>>16,this.X=this.V|b,this.S=0,this.R=-32768>b||32767<b?65536:0);this.b-=23}function nf(){this.b-=5}function of(){this.L&49152||(ed(this),this.w.reset());this.b-=667}function pf(){Jd(this);this.G|=this.L&16;this.b-=13}function qf(a){if(a&8)V.call(this,a);else{var b=Kd(this);a&=7;N(this,this.u[a]);this.u[a]=b;this.b-=9}}
|
||||
function W(a){a&1&&(this.R=65536);a&2&&(this.S=32768);a&4&&(this.X=0);a&8&&(this.V=32768);this.b-=5}function rf(a){var b=(a&448)>>6;if(this.u[b]=this.u[b]-1&65535)N(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function sf(a){R(this,a,Sd(this,a),ve);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function tf(a){R(this,a,0,xe);this.b-=this.g?9:3+(7==this.f?2:0)}function uf(){this.ea(28,5);this.b-=5}function vf(){this.G&4||this.D.$();this.G|=4;Dd(this,-2);this.b-=3}
|
||||
function wf(a){R(this,a,Sd(this,a),ye);this.b-=this.g?9:3+(7==this.f?2:0)}function V(a){var b;if(b=this.i)b=this.i,C(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function bd(a){xf[a>>12].call(this,a)}function yf(a){zf[a>>6&3].call(this,a)}function Af(a){Bf[a>>6&3].call(this,a)}function Cf(a){Df[a>>6&3].call(this,a)}function Ef(a){Ff[a&15].call(this,a)}function Gf(a){Hf[a&15].call(this,a)}function If(a){Jf[a>>6&3].call(this,a)}function Kf(a){Lf[a>>6&3].call(this,a)}
|
||||
function Mf(a){Nf[a>>6&3].call(this,a)}
|
||||
var xf=[function(a){Of[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,ze,V,function(a){Pf[a>>8&15].call(this,a)},kf,Ze,Je,Fe,He,sf,V],Of=[function(a){Qf[a>>4&15].call(this,a)},Ve,Se,Ke,Le,Qe,Me,Oe,gf,gf,yf,Af,Cf,V,V,V],zf=[function(a){Ed(this,Xd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,je);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,ne);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,le);this.b-=this.g?9:3+(7==this.f?2:0)}],Bf=[function(a){R(this,a,0,
|
||||
pe);this.b-=this.g?11:6},function(a){R(this,a,gd(this)?1:0,$d);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,gd(this)?1:0,ve);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Vd(this,a);Ed(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Df=[function(a){R(this,a,0,te);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,de);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)}],
|
||||
Qf=[function(a){Rf[a&15].call(this,a)},V,V,V,ef,ef,ef,ef,qf,V,Ef,Gf,tf,tf,tf,tf],Rf=[bf,vf,pf,Ue,cf,of,V,V,V,V,V,V,V,V,V,V],Ff=[nf,function(){this.R=0;this.b-=5},function(){this.S=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.V=0;this.b-=5},T,T,T,T,T,T,T],Hf=[nf,function(){this.R=65536;this.b-=5},function(){this.S=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.V=32768;this.b-=5},W,W,W,W,W,W,W],Pf=[Te,Re,Ne,Pe,We,Xe,Ce,De,af,uf,If,Kf,Mf,V,V,V],Jf=[function(a){Ed(this,
|
||||
Wd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ke);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,oe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)}],Lf=[function(a){Q(this,a,0,qe);this.b-=this.g?11:6},function(a){Q(this,a,gd(this)?1:0,ae);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,gd(this)?1:0,we);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Ud(this,a);Ed(this,a<<8);this.b-=this.g?4:3+(7==
|
||||
this.f?2:0)}],Nf=[function(a){Q(this,a,0,ue);this.b-=this.g?9+(this.$a&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,se);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ee);this.b-=this.g?9+(this.$a&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,ce);this.b-=this.g?9:3+(7==this.f?2:0)}];function cd(a){kg[a>>12].call(this,a)}
|
||||
var kg=[function(a){lg[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,ze,function(a){mg[a>>8&15].call(this,a)},function(a){ng[a>>8&15].call(this,a)},kf,Ze,Je,Fe,He,sf,V],lg=[function(a){og[a>>4&15].call(this,a)},Ve,Se,Ke,Le,Qe,Me,Oe,gf,gf,yf,Af,Cf,function(a){pg[a>>6&3].call(this,a)},V,V],pg=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.oa(a|this.M);N(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Pd(this,a,0);Id(this,a);P(this,a);this.b-=11},function(a){var b=Kd(this),c=
|
||||
this.b;Qd(this,a,0,b);P(this,b);this.b=c-lf[this.g]},function(a){P(this,Xd(this,a,this.Da?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],og=[function(a){qg[a&15].call(this,a)},V,V,V,ef,ef,ef,ef,qf,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.G|=1),this.b-=5):V.call(this,a)},Ef,Gf,tf,tf,tf,tf],qg=[bf,vf,pf,Ue,cf,of,function(){Jd(this);this.b-=13},V,V,V,V,V,V,V,V,V],mg=[mf,mf,$e,$e,Ae,Ae,Be,Be,wf,wf,V,V,V,V,rf,rf],ng=[Te,Re,Ne,Pe,We,Xe,Ce,De,af,uf,If,Kf,Mf,function(a){rg[a>>6&3].call(this,
|
||||
a)},V,V],rg=[V,function(a){a=Pd(this,a,65536);Id(this,a);P(this,a);this.b-=11},function(a){var b=Kd(this),c=this.b;Qd(this,a,65536,b);P(this,b);this.b=c-lf[this.g]},V];
|
||||
function sg(a){r.call(this,"ROM",a,sg);this.ka=this.f=null;this.C=a.addr;this.g=a.size;this.A=a.alias;this.D=a.file;this.F=oa(this.D);if(this.D){a=this.D;var b=pa(this.F);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.D+"&format=bytes&decimal=true");var c=this;Ba(a,null,!0,function(a,b,f){f?c.ja("Unable to load ROM resource (error "+f+": "+a+")"):(jb(c.Ra,a,b),(a=Ca(a,b))?(c.f=a.ha,c.ka=a.ka):c.D=null,tg(c))})}}u(sg);sg.prototype.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;tg(this)};
|
||||
sg.prototype.Aa=function(){if(this.ka){if(this.i){var a=this.i,b=this.id,c=this.C,d=this.g,e=this.ka,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var m=h.o,p=h.a;if(void 0!==m){var q=f,m=[m>>>0,g],v=ya(q,m,a.Wb);0>v&&q.splice(-(v+1),0,m)}p&&(h.a=p.replace(/''/g,'"'))}a.F.push({Ud:b,B:c,vc:d,ka:e,Vb:f})}delete this.ka}return!0};sg.prototype.za=function(){return!0};
|
||||
function tg(a){if(!pb(a)){if(a.D){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if(a.f.length!=a.g)rb(a,"ROM size ("+l(a.f.length,8,!0)+") does not match specified size ("+l(a.g,8,!0)+")");else{var b;b=a.C;if(Yb(a.w,b,a.g,Cc)){var c;for(c=0;c<a.f.length;c++)a.w.Xa(b+c,a.f[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.A?b.push(a.A):null!=a.A&&a.A.length&&(b=a.A);for(c=0;c<b.length;c++){var d=a,e=b[c],f=Xb(d.w,d.C,d.g);Wb(d.w,e,d.g,f)}delete a.f}}}H(a)}}
|
||||
Ta(function(){for(var a=B(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new sg(d);A(d,c)}});
|
||||
function ug(a){r.call(this,"RAM",a,ug);this.ka=this.g=null;this.A=a.addr;this.C=a.size;this.Ua=a.load;this.Ta=a.exec;this.D=!1;this.f=a.file;this.F=oa(this.f);if(this.f){a=this.f;var b=pa(this.F);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.f+"&format=bytes&decimal=true");var c=this;Ba(a,null,!0,function(a,b,f){f?c.ja("Unable to load RAM resource (error "+f+": "+a+")"):(jb(c.Ra,a,b),(a=Ca(a,b))?(c.g=a.ha,c.ka=a.ka,null==c.Ua&&(c.Ua=a.Ua),null==c.Ta&&(c.Ta=a.Ta)):c.f=null,vg(c))})}}u(ug);
|
||||
ug.prototype.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;vg(this)};ug.prototype.Aa=function(){return!0};ug.prototype.za=function(){return!0};function vg(a){if(a.w&&(!a.D&&a.C&&Yb(a.w,a.A,a.C,1)&&(a.D=!0),!pb(a))){if(!a.D)n("No RAM allocated");else if(a.f){if(!a.g||!a.w)return;wg(a,a.g,a.Ua,a.Ta,a.A);delete a.g}H(a)}}ug.prototype.reset=function(){};
|
||||
function wg(a,b,c,d,e){var f=!1;if(null==c)for(var g=0;g<b.length-1;){var h=b[g]&255|(b[g+1]&255)<<8;if(h)if(h&255){if(1!=h)break;if(g+6>=b.length)break;for(var g=g+2,m=b[g++]&255|(b[g++]&255)<<8,p=b[g++]&255|(b[g++]&255)<<8,h=h+((m&255)+(m>>8)+(p&255)+(p>>8)),q=g,v=m-=6;0<m&&g<b.length;)h+=b[g++]&255,m--;if(m||g>=b.length)break;h+=b[g++]&255;if(h&255)break;if(v)for(;v--;)a.b.Xa(p++,b[q++]&255);else p&1?a.b.aa():fd(a.b,p);f=!0}else g++;else g+=2}if(!f&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)a.b.Xa(c+
|
||||
e,b[e]);null!=d&&fd(a.b,d);f=!0}return f}Ta(function(){for(var a=B(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new ug(d);A(d,c)}});function xg(a){r.call(this,"Keyboard",a,xg,65536);H(this)}u(xg);xg.prototype.ra=function(){return!1};xg.prototype.Ca=function(a,b,c,d){this.D=a;this.b=c;this.i=d};Ta(function(){for(var a=B(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new xg(d);A(d,c)}});
|
||||
function X(a){this.A=this.F=null;this.O=a.tabSize;this.M=a.charBOL;this.H=0;r.call(this,"SerialPort",a,X,8388608);var b=a.binding;if("console"==b)this.F="";else{var c;a=yg;b&&(void 0===c&&(c="Panel"),(c=mb(c,this.id))&&(b=c.I[b])&&this.ra(null,a,b))}this.J=this.K=null;this.exports={connect:this.cc,receiveData:this.Pb}}u(X);var yg="buffer";k=X.prototype;
|
||||
k.ra=function(a,b,c){var d=this;switch(b){case yg:return this.I[b]=this.A=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.Pb(b);return!0},c.onkeypress=function(a){a=a||window.event;d.Pb(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
|
||||
k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;var e=this;this.ba=kc(48,4);this.P=hc(this.b,function(){e.f&128||!e.C.length||(e.N=e.C.shift(),e.f|=128,e.f&64&&ic(e.b,e.ba))});this.ca=kc(52,4);this.U=hc(this.b,function(){e.g|=128;e.g&64&&ic(e.b,e.ca)});ec(b,this,zg);H(this)};
|
||||
k.cc=function(){if(!this.J){var a=Pc(this.D,"connection");if(a){var b=a.split("->");if(2==b.length){var c=va(b[0]);if(c!=this.Za)return;b=va(b[1]);if(this.J=lb(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.Ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.Aa=function(a,b){if(!b)if(this.cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
k.za=function(a){return a?this.save():!0};k.reset=function(){Ag(this)};k.save=function(){var a=new O(this);a.set(0,[]);return a.data()};k.restore=function(){return Ag(this)};function Ag(a){a.N=0;a.f=0;a.g=128;a.C=[];return!0}k.Pb=function(a){if("number"==typeof a)this.C.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.C.push(a.charCodeAt(b));else this.C=this.C.concat(a);jc(this.b,this.P,1);return!0};k.Sc=function(){return this.f&65535};k.Ed=function(a){this.f=this.f&-112|a&111};
|
||||
k.Rc=function(){this.f&=-129;0<this.C.length&&jc(this.b,this.P,1);return this.N};k.Dd=function(){};k.ed=function(){return this.g};k.Rd=function(a){128==(this.g&192)&&a&64&&jc(this.b,this.U,1);this.g=this.g&-70|a&69};k.dd=function(){return 0};
|
||||
k.Qd=function(a){if(a&=255){C(this,"transmitByte("+l(a,2,!0)+")");this.K&&this.K.call(this.J,a);if(this.A)if(13==a)this.H=0;else if(8==a)this.A.value=this.A.value.slice(0,-1),0<this.H&&this.H--;else{var b;b=(b=wa[a])?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.O||8,c=a-this.H%a,this.O&&(b=ua("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.A.value+=b;this.A.scrollTop=this.A.scrollHeight;this.H+=c}else if(null!=this.F){if(10==a||1024<=this.F.length)this.j(this.F),
|
||||
this.F="";10!=a&&(this.F+=String.fromCharCode(a))}this.g&=-129;jc(this.b,this.U,1)}};var Bg={},zg=(Bg[65392]=[null,null,X.prototype.Sc,X.prototype.Ed,"RCSR"],Bg[65394]=[null,null,X.prototype.Rc,X.prototype.Dd,"RBUF"],Bg[65396]=[null,null,X.prototype.ed,X.prototype.Rd,"XCSR"],Bg[65398]=[null,null,X.prototype.dd,X.prototype.Qd,"XBUF"],Bg);Ta(function(){for(var a=B(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new X(d);A(d,c)}});
|
||||
function wc(a){r.call(this,"PC11",a,wc);this.g=a.autoMount||null;this.M=this.J=this.f=this.C=0;this.K=[];this.H=Cg;this.A=Dg;this.F="";this.N=!La("Mobi")&&window&&"FileReader"in window}u(wc);var Cg="",Dg=0;k=wc.prototype;
|
||||
k.ra=function(a,b,c){var d=this,e=Dg;switch(b){case "listTapes":return this.I[b]=c,c.onchange=function(){var a=d.I.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(m){n("PC11 option error: "+m.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.I[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.I[b]=c,c.onclick=
|
||||
function(){var a=d.I.listTapes;a&&Eg(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(this.N)return this.I[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Eg(d,oa(b,!0),b,1,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
|
||||
k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;this.O=Fg(a);var e=this;if((this.g=Pc(this.D,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){n("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.U=kc(56,4);this.P=hc(this.b,function(){Gg(e)});ec(b,this,Hg);Ig(this,"None",Cg,!0);this.N&&Ig(this,"Local Tape","?");Ig(this,"Remote Tape","??");Jg(this)||H(this)};
|
||||
k.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.za=function(a){return a?this.save():!0};k.reset=function(){this.f&=-2241;this.J=0};function Jg(a){a.C=0;if(a.g){var b=a.g.path||"",c;if(!(c=a.g.name))a:{if((c=a.I.listTapes)&&c.options)for(var d=0;d<c.options.length;d++){var e=c.options[d];if(e.value==b){c=e.text;break a}}c=oa(b,!0)}b&&c?Kg(a,c,b,1,!0):Lg(a)}return!!a.C}
|
||||
function Eg(a,b,c,d,e){if(c)if("?"==c)a.ja('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=oa(c);a.status("Attempting to load "+c+' as "'+b+'"');a.H="??"}else a.H=c;Kg(a,b,c,d,!1,e)}else Mg(a,!1)}
|
||||
function Kg(a,b,c,d,e,f){var g=-1;if(a.F.toLowerCase()!=c.toLowerCase()||a.A!=d)g++,Mg(a,!0),a.v.Ia?a.ja("PC11 busy"):(e&&(a.C++,D(a)&&C(a,"auto-loading tape: "+b)),Ng(a,b,c,d,f)?g++:a.v.Ia=!0);g&&a.status(1==a.A?"tape attached":"tape loaded")}
|
||||
function Ng(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),Og(a,b,c,d,e),a.H="?");Lg(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=pa(c),f="json"==e||"gz"==e?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(f,null,!0,function(e,f,g){var h=0>g&&a.D&&!a.D.v.ga;g?a.ja('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(jb(a.Ra,e,f),(e=Ca(e,f))&&Og(a,b,c,d,e.ha,e.Ua,
|
||||
e.Ta));a.v.Ia=!1;a.C&&(a.C--,a.C||H(a));Lg(a)})}function Ig(a,b,c,d){if((a=a.I.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
||||
function Lg(a){var b=a.I.listTapes;if(b&&b.options){a=a.H||a.F;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function Og(a,b,c,d,e,f,g){a.F=c;a.A=d;2==d?a.O&&wg(a.O,e,f,g)?a.status("tape loaded: "+b):(a.F="",a.H=Cg,a.A=Dg,a.status("error loading tape: "+b)):(a.M=0,a.K=e,a.status("tape attached: "+b))}
|
||||
function Mg(a,b){if(a.F||!1===b)a.F="",b||(a.A&&a.status(1==a.A?"tape detached":"tape unloaded"),a.H=Cg,a.A=Dg,Lg(a))}k.save=function(){return(new O(this)).data()};k.restore=function(){return!0};function Gg(a){1==(a.f&32769)&&!(a.f&128)&&a.M<a.K.length&&(a.J=a.K[a.M++]&255,a.f|=128,a.f&=-2049,a.f&64&&ic(a.b,a.U),jc(a.b,a.P,1E3/300,!0))}k.Lc=function(){return this.f&65534};k.xd=function(a){a&1&&(this.f&32768?a&=-2:(this.f&=-129,this.f|=2048,this.J=0));this.f=this.f&-66|a&65;Gg(this)};
|
||||
k.Kc=function(){this.f&=-129;this.f|=2048;return this.J};k.wd=function(){};var Pg={},Hg=(Pg[65384]=[null,null,wc.prototype.Lc,wc.prototype.xd,"PRS"],Pg[65386]=[null,null,wc.prototype.Kc,wc.prototype.wd,"PRB"],Pg);function Qg(a){r.call(this,"Debugger",a,Qg);this.ma=a.base||16;this.ya=!1;this.N=this.xa=this.H=0;this.P=!1;this.A=-1;this.g=[];this.ba={}}u(Qg);var Rg={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
Qg.prototype.ac=function(){return-1};Qg.prototype.bc=function(){};function Sg(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.g[a.A+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(va(b.substring(c,f))),c=f+1}}return a}
|
||||
function Tg(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 Rg(a,b,c){var d;if(b){b=Sg(a,b);for(var e=0,f=!1,g=b,h=[],m=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<p.length;){var q=p[e++],v=q.length,q=va(q);if(!q){f=!0;break}q=Tg(a,q,null,!1===c);if(void 0===q){f=!0;c=!1;break}h.push(q);if(e==p.length)break;var q=p[e++],w=q.length;m.length&&Og[q]<Og[m[m.length-1]]&&Qg(h,m,1);m.push(q);b=b.substr(v+w)}Qg(h,m)&&1==h.length||(f=!0);f?c&&a.j("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Ug(a,null,
|
||||
d))}return d}function Sg(a,b){for(var c,d=a.ya?"(":"{",e=a.ya?")":"}",f=new RegExp(a.ya?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=Rg(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.xa}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
|
||||
function Tg(a,b,c,d){var e;if(null!=b){e=a.$b(b);if(0<=e)e=a.ac(e);else if(e=a.aa[b],null==e){e=b;var f=a.ma,g;if(e){f||(f=10);var h=e.charAt(0),m=0<e.indexOf(",");m&&(e=e.replace(/,/g,""));"#"==h?(f=8,h=null):"$"==h&&(f=16,h=null);null==h?e=e.substr(1):("0"==h&&(h=e.charAt(1),"b"==h&&m&&(f=2,h=null),"o"==h?(f=8,h=null):"x"==h&&(f=16,h=null)),null==h?e=e.substr(2):(h=e.charAt(e.length-1).toLowerCase(),"y"==h?(f=2,h=null):"."==h?(f=10,h=null):"h"==h&&(f=16,h=null),null==h&&(e=e.substr(0,e.length-1))));
|
||||
function Ug(a,b,c){var d;if(b){b=Vg(a,b);for(var e=0,f=!1,g=b,h=[],m=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<p.length;){var q=p[e++],v=q.length,q=va(q);if(!q){f=!0;break}q=Wg(a,q,null,!1===c);if(void 0===q){f=!0;c=!1;break}h.push(q);if(e==p.length)break;var q=p[e++],w=q.length;m.length&&Rg[q]<Rg[m[m.length-1]]&&Tg(h,m,1);m.push(q);b=b.substr(v+w)}Tg(h,m)&&1==h.length||(f=!0);f?c&&a.j("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Xg(a,null,
|
||||
d))}return d}function Vg(a,b){for(var c,d=a.ya?"(":"{",e=a.ya?")":"}",f=new RegExp(a.ya?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=Ug(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.xa}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
|
||||
function Wg(a,b,c,d){var e;if(null!=b){e=a.ac(b);if(0<=e)e=a.bc(e);else if(e=a.ba[b],null==e){e=b;var f=a.ma,g;if(e){f||(f=10);var h=e.charAt(0),m=0<e.indexOf(",");m&&(e=e.replace(/,/g,""));"#"==h?(f=8,h=null):"$"==h&&(f=16,h=null);null==h?e=e.substr(1):("0"==h&&(h=e.charAt(1),"b"==h&&m&&(f=2,h=null),"o"==h?(f=8,h=null):"x"==h&&(f=16,h=null)),null==h?e=e.substr(2):(h=e.charAt(e.length-1).toLowerCase(),"y"==h?(f=2,h=null):"."==h?(f=10,h=null):"h"==h&&(f=16,h=null),null==h&&(e=e.substr(0,e.length-1))));
|
||||
var p,h=e;((m=f)&&10!=m?16==m?h.match(/^[0-9a-f]+$/i):8==m?h.match(/^[0-7]+$/):2==m&&h.match(/^[01]+$/):h.match(/^[0-9]+$/))&&!isNaN(p=parseInt(e,f))&&(g=p|0)}e=g}null!=e||d||a.j("invalid "+(c?c:"value")+": "+b)}else d||a.j("missing "+(c||"value"));return e}
|
||||
function Ug(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=0,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var 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=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Vg(a,b){if(b)return Ug(a,b,a.aa[b]);var c=0;for(b in a.aa)Ug(a,b,a.aa[b]),c++;return 0<c}
|
||||
function J(a,b,c,d){switch(a.ma){case 8:a=na(b,3*c);break;case 10:a=b.toString();break;default:a=l(b,2*c)}d?d=a.replace(/^0+([0-9A-F]+)$/i,"$1"):d=a;return d}function Wg(a){Ng.call(this,a);this.ya=!0;this.K=Z(0);this.Qa=Z(0);this.O=Z(0);this.F=[];this.f=this.M=this.B=[];Xg(this);this.qa=0;Yg(this);this.Fa={};Zg(this,a.messages);this.Ga=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Sc(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Sc(b,a)})}
|
||||
u(Wg,Ng);
|
||||
var $g={"?":"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"},ah=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),bh=
|
||||
{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]}},ch=[0],dh=[58,60,65,96,108,
|
||||
110,100,101,102,103,104,105,59,64];k=Wg.prototype;
|
||||
k.Ca=function(a,b,c,d){this.w=b;this.b=c;this.D=a;(a=Pc(a,"messages"))&&Zg(this,a);this.$a=bh;this.nb=1145>this.b.bb?dh:[];eh(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(fh(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ja;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<<d.w.ja,
|
||||
8)+" %%"+l(q.C,8)+" "+l(q.vb,4,!0)+" "+l(q.size,4,!0)+" "+p),c!=Bc&&(c=-1),p=0);a+=d.w.ua;e++}}});H(this)};
|
||||
k.ra=function(a,b,c){var d=this;switch(b){case "debugInput":return this.pa=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Sc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.g.length-1&&(b=d.g[++d.A])):40==a.keyCode&&(0<d.A?b=d.g[--d.A]:(b="",d.A=-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.J[b]=c,Na(c,function(){if(d.pa){var a=d.pa.value;
|
||||
d.pa.value="";Sc(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Na(c,function(a){var b=!1;ob(d,!0)||(nb(d,!0),b=d.jb(a?1:0),nb(d,!1));return b}),!0}return!1};k.ub=function(){this.pa&&this.pa.focus()};k.Y=function(a){a=a&&a.C;null==a&&(a=-1);return a};k.ob=function(a,b){var c=255,d=this.Y(a,!1,1);-1!==d&&(c=a.yb?this.w.Bb(d):this.b.Bb(d),b&&gh(a,b));return c};k.na=function(a,b){var c=65535,d=this.Y(a,!1,2);-1!==d&&(c=a.yb?this.w.pb(d):this.b.pb(d),b&&gh(a,b));return c};
|
||||
k.Fb=function(a,b,c){var d=this.Y(a,!0,1);-1!==d&&(a.yb?this.w.Va(d,b):this.b.Va(d,b),c&&gh(a,c),this.D.$(!0))};k.Wa=function(a,b,c){var d=this.Y(a,!0,2);-1!==d&&(a.yb?this.w.Gb(d,b):this.b.Gb(d,b),c&&gh(a,c),this.D.$(!0))};function Z(a,b){return{C:a,yb:b,Ba:!1}}function hh(a){return[a.C,a.Ba]}function ih(a){return{C:a[0],Ba:a[1]}}
|
||||
function fh(a,b,c){var d,e=(c?a.K:a.Qa).C;c=!1;if(void 0!==b){b=Sg(a,b);"%"==b.charAt(0)&&(c=!0,b=b.substr(1));d=b;var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),e=0;e<a.F.length;e++){var g=a.F[e].ka[d];if(void 0!==g){d=g.o;void 0!==d&&(f=Z(d));break}}if(d=f)return d;e=Rg(a,b,void 0)}null!=e&&(d=Z(e,c));return d}function jh(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.lc=Pg(a,b.hc=c[2]))}function gh(a,b){null!=a.C&&(a.C+=b||1)}
|
||||
function Zg(a,b){a.i=a;a.la=a.nc=536870912;a.sa=null;a.wa=[];b=Pg(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in tb){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.la|=tb[c],a.j(c+" messages enabled"))}}function eh(a,b){for(var c in tb)if(64==tb[c]){a.Fa[c]=b;break}}
|
||||
k.$b=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 kh(a){return 6>a?"R"+a:6==a?"SP":"PC"}k.ac=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b};
|
||||
k.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.tb).C));this.la&1073741824?this.wa.push(a):this.sa&&a==this.sa||(this.sa=a,this.la&-2147483648&&(this.da(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.pa=0,a.D.$()))};
|
||||
function Yg(a){var b;if(Xd(a)){if(!a.I||!a.I.length){a.I=Array(1E3);for(b=0;b<a.I.length;b++)a.I[b]=Z();a.fa=0;a.j("instruction history buffer allocated")}if(!a.ba||!a.ba.length)for(a.ba=Array(256),b=0;b<a.ba.length;b++)a.ba[b]=[b,0]}else a.I&&a.I.length&&a.j("instruction history buffer freed"),a.fa=0,a.I=[],a.ba=[]}k.ib=function(a,b){if(!lh(this,b))return!1;this.b.ib(a);return!0};
|
||||
k.jb=function(a,b,c){if(!lh(this))return!1;this.H=0;a||Xd(this)&&Yd(this,this.b.u[7],0);try{a=Zc(this.b,a);var d=this.b.jb(a);0<d&&($c(this.b,a),this.H+=d,Wc(this.b,d,!0),Tc(this.b,d),this.N++)}catch(e){"number"!=typeof e&&(this.H=0,rb(this.b,e.stack||e.message))}!1!==c&&this.D.$();this.$(b||!1);return 0<this.H};k.da=function(a){this.b&&this.b.da(a)};k.$=function(a){void 0===a&&(a=!0);this.K=Z(this.b.u[7]);a&&1!=this.V?mh(this):nh(this)};
|
||||
function lh(a,b){var c;(c=!a.b||!pb(a.b))||(c=a.b,c.v.ha?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.b.v.ca?(b||a.j("cpu busy or unavailable, command ignored"),!1):!qb(a.b)}k.Aa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};k.za=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};k.reset=function(a){Yg(this);this.N=this.xa=0;this.sa=null;this.H=0;this.K=Z(this.b.u[7]);this.v.ca=!1;oh(this);a||this.$()};
|
||||
k.save=function(){var a=new N(this);a.set(0,hh(this.K));a.set(1,hh(this.O));a.set(2,[this.g,this.P,this.la]);a.set(3,this.F);return a.data()};k.restore=function(a){var b=0;void 0!==a[2]&&(this.K=ih(a[b++]),this.O=ih(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.P=a[b][1],this.la|=a[b][2]);a[3]&&(this.F=a[3]);return!0};k.start=function(a,b){this.V||this.j("running");this.v.ca=!0;this.xb=a;this.Ab=b};
|
||||
k.stop=function(a,b){if(this.v.ca){this.v.ca=!1;this.H=b-this.Ab;if(!this.V){b="stopped";if(this.H){a-=this.xb;var c=0<a?Math.round(1E3*this.H/a):0;b+=" (";Xd(this)&&(b+=this.N+" opcodes, ",this.xa-=this.N,this.N=0);b+=this.H+" cycles, "+a+" ms, "+c+" hz)"}else D(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}this.$(!0);this.ub();oh(this,this.b.u[7])}};function Xd(a){return 1<a.f.length||!!a.qa}
|
||||
function Yd(a,b,c){var d=a.b;if(0<c&&(a.qa&&!--a.qa||Kc(a,b,1,a.f)))return!0;0<=c&&a.ba.length&&(a.N++,null!=a.b.pb(b)&&(b=a.I[a.fa],b.C=d.u[7],b.Ba=!1,++a.fa==a.I.length&&(a.fa=0)));return!1}function $b(a){var b=a.b;if(b.v.ca)throw O(b,a.b.tb),a.da(),-1;return!1}function Xg(a){var b,c;a.f=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];var d=a.w;c=a.Y(c);Lc(d.W[c>>>d.ja],!1)}a.M=["br"];if(a.B)for(b=1;b<a.B.length;b++)c=a.B[b],d=a.w,c=a.Y(c),Lc(d.W[c>>>d.ja],!0);a.B=["bw"];a.Ya=0}
|
||||
k.Sa=function(a,b,c){var d=!0;c||ph(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.C)),d=!1;else{var f=this.w;f.W[e>>>f.ja].Sa(e&f.w,a==this.B)}}d&&(a.push(b),c?b.Ba=!0:(qh(this,a,a.length-1,"set"),Yg(this)));return d};function ph(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.Y(h)&&(!d||h.Ba)){f=!0;h.Ba||e||qh(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.w,Lc(d.W[c>>>d.ja],b==a.B));h.Ba||Yg(a);break}}return f}
|
||||
function rh(a,b){for(var c=1;c<b.length;c++)qh(a,b,c);return b.length-1}function qh(a,b,c,d){c=b[c];a.j(b[0]+" "+J(a,c.C)+(d?" "+d:c.hc?' "'+c.hc+'"':""))}function oh(a,b){if(void 0!==b)Kc(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.Ba){if(!ph(a,a.f,c,!0))break;b=0}}}
|
||||
function Kc(a,b,c,d,e){var f=!1;if(!a.Ya++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Ba)for(var m=a.Y(h),p=0;p<c;p++)if(b+p==m){var q,f=!0;h.Ba&&(ph(a,d,h,!0),e=!0);if(q=h.lc){for(var f=!1,v=0;v<q.length;v++)if(!sh(a,q[v],!0)){if(q[v].indexOf("if")){f=!0;break}for(var w=v+1;w<q.length&&q[w].indexOf("else");w++)v++;if(w==q.length){f=!0;break}}a.b.v.ca||(f=!0)}if(f){e||qh(a,d,g,"hit");break}}}a.Ya--;return f}
|
||||
function th(a,b,c,d){var e=Z(b.C),f=a.na(b,2),g,h;for(h in a.$a)if(g=a.$a[h][f&h])break;g||(g=ch);var m=g[0];0<=a.nb.indexOf(m)&&(g=ch,m=g[0]);var p=h="",q=ah[m],v=g.length-1;m||v||(h=J(a,f));for(m=1;m<=v;m++){var w=g[m];if(void 0!==w){var x;x=a;var E=w,w=b,y="",F=E&61440;if(4096==F)w=w.C+((f&255)<<24>>23)&65535,y=J(x,w);else if(8192==F)w=w.C-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y=
|
||||
kh(E);break;case 8:y="@"+kh(E);break;case 16:7>E?y="("+kh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+kh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+kh(E)+")";break;case 40:y="@-("+kh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+kh(E)+")";7==E&&(y=[y,J(x,F+w.C&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+kh(E)+")",7==E&&(y=[y,J(x,F+w.C&65535)])}x=y;if(!x||!x.length){h="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0<h.length&&(h+=",");h+=x||
|
||||
"???"}}f="";g=J(a,e.C)+":";if(-1!==e.C&&-1!==b.C){do if(f+=" "+J(a,a.na(e,2)),null==e.C)break;while(e.C!=b.C)}g+=ua(f,24);g+=ua(q,5);h&&(g+=" "+h);if(c||p)g=ua(g,60)+";"+(c||""),g=a.b.v.ab?g+("cycles="+Uc(a.b).toString()+" cs="+l(a.b.qb)):g+(null!=d?"="+d.toString():""),p&&(g+=" @"+p);return g}function uh(a,b){switch(b){case "N":a=a.b.Da();break;case "Z":a=hd(a.b);break;case "V":a=gd(a.b);break;case "C":a=fd(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
|
||||
function vh(a,b){var c="",d=a.b;8>b?(c=kh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function wh(a){var b,c="";for(b=0;6>b;b++)c+=vh(a,b);c=c+"\n"+(vh(a,6)+vh(a,7)+vh(a,20));return c+=uh(a,"T")+uh(a,"N")+uh(a,"Z")+uh(a,"V")+uh(a,"C")}k.Vb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function xh(a,b,c){var d=[],e=a.Y(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.C>>>0,h=f.vc;if(e>=g&&e<g+h){e=ya(f.Ub,[e-g],a.Vb);0<=e?yh(a,b,e,d):c&&(e=~e,yh(a,b,e-1,d),yh(a,b,e,d));break}}return d}function yh(a,b,c,d){var e={},f=a.F[b].Ub,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].ka[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
|
||||
function zh(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Vg(a)||a.j("no variables"),!0;if(!c[2])return Vg(a,c[1]);if(!c[3])return delete a.aa[c[1]],!0;b=Rg(a,c[3]);return void 0!==b?(a.aa[c[1]]=b,!0):!1}a.j("invalid assignment:"+b);return!1}
|
||||
function Ah(a,b,c){var d=null;if(b=fh(a,b,!0)){a.Y(b);var e=xh(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.C-e[1])&&(g=" + "+l(f,4,!0)),f=e[0]+" ("+J(a,e[1])+")"+g,c&&a.j(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.C)&&(g=" - "+l(f,4,!0)),f=e[4]+" ("+J(a,e[5])+")"+g,c&&a.j(f),d||(d=f))}else c&&a.j("no symbols")}return d}
|
||||
function mh(a,b){var c;if(b&&"?"==b[1])a.j("register commands:"),a.j("\tr\tdump registers"),a.j("\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.j("missing value for "+b[1]);return}f=Rg(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":O(d,f);a.K=Z(d.u[7]);break;case "N":d.U=f?32768:0;break;case "Z":d.X=
|
||||
f?0:1;break;case "V":d.S=f?32768:0;break;case "C":d.R=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.j("unknown register: "+e);return}a.D.$();a.j("updated registers:")}a.j(wh(a));c&&(a.K=Z(d.u[7]),nh(a,J(a,a.K.C)))}}function Bh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):Ug(a,null,c[2].charCodeAt(0)):Rg(a,b,!0)}
|
||||
function Ch(a,b,c){var d="t"!=b;c=Tg(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ma(c,function(){return nb(a,!0)&&a.jb(e,d,!1)},function(){a.D.$();nb(a,!1)})}
|
||||
function nh(a,b,c,d){if(b=fh(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Tg(a,c.substr(1)),null!=c&&(d=c);else{d=fh(a,c,!0);if(!d||d.C<b.C)return;e=d.C-b.C;if(256<e){a.j("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=ob(a,!1)||a.V?a.H:null;var g=null!=f?"cycles":null,h=xh(a,b),m=b.C;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.j(p)}h[3]&&(g=h[3],f=null);f=th(a,b,g,f);a.j(f);a.K=b;e-=b.C-m;c++}}}
|
||||
function sh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.P&&(a.j("ended assemble at "+J(a,a.O.C)),a.K=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.sa=null;if(pb(a)&&0<b.length){a.P&&(b="a "+J(a,a.O.C)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");if(g&&g.length)for(var h=g[0],m=h.charAt(0),p=1;p<h.length;p++){var q=h.charAt(p);if("?"==m||"r"==m||"a">q||"z"<q){g[0]=h.substr(p);g.unshift(h.substr(0,p));break}}g[0]=g[0].toLowerCase();switch(g[0].charAt(0)){case "a":var v=
|
||||
fh(a,g[1],!0);if(v)if(a.O=v,void 0===g[2])a.j("begin assemble at "+J(a,v.C)),a.P=!0,a.D.$();else{var w;a.j("not supported yet");w=[];if(w.length){for(var x=0;x<w.length;x++)a.Fb(v,w[x],1);a.j(th(a,a.O))}}break;case "b":a:{var E=g[0],y=g[1],F=b;if("?"==y)a.j("breakpoint commands:"),a.j("\tbp [a]\tset exec breakpoint at addr [a]"),a.j("\tbr [a]\tset read breakpoint at addr [a]"),a.j("\tbw [a]\tset write breakpoint at addr [a]"),a.j("\tbc [a]\tclear breakpoint at addr [a]"),a.j("\tbl\tlist all breakpoints"),
|
||||
a.j("\tbn [n]\tbreak after [n] instruction(s)");else{var Fa=E.charAt(1);if("l"==Fa){var kd;kd=0+rh(a,a.f);kd+=rh(a,a.M);(kd+=rh(a,a.B))||a.j("no breakpoints")}else if("n"==Fa)a.qa=Tg(a,y),a.j("break after "+a.qa+" instruction(s)");else if(void 0===y)a.j("missing breakpoint address");else{var V=Z();if("*"!=y&&(V=fh(a,y,!0),!V))break a;"c"==Fa?null==V.C?(Xg(a),a.j("all breakpoints cleared")):ph(a,a.f,V)||ph(a,a.M,V)||ph(a,a.B,V)||a.j("breakpoint missing: "+J(a,V.C)):null!=V.C&&(jh(a,V,F),"p"==Fa?a.Sa(a.f,
|
||||
V):"r"==Fa?a.Sa(a.M,V):"w"==Fa?a.Sa(a.B,V):a.j("unknown breakpoint command: "+Fa))}}}break;case "c":a.Ta&&(a.Ta.value="");break;case "d":a:{var Xa,Ya=g[0],ia=g[1],Ga=g[2],Vh=g[3];if("?"==ia){var Za="";for(Xa in tb)a.Fa[Xa]&&(Za&&(Za+=","),Za+=Xa);Za+=",state,symbols";a.j("dump memory commands:");a.j("\tdb [a] [#] dump # bytes at address a");a.j("\tdw [a] [#] dump # words at address a");a.j("\tdd [a] [#] dump # dwords at address a");a.j("\tdh [#] [#] dump # instructions from history");
|
||||
Za.length&&a.j("dump extension commands:\n\t"+Za)}else if("state"==ia){var Qf=Dh(a.D,!0);"console"==Ga?console.log(Qf):(a.Ta&&(a.Ta.value=""),a.j(Qf))}else if("symbols"==ia)for(var ld=0;ld<a.F.length;ld++){var md=a.F[ld],$a;for($a in md.ka)if("."!=$a.charAt(0)){var Rf=md.ka[$a].o;if(void 0!==Rf){var Sf=md.ka[$a].l;Sf&&($a=Sf);a.j(J(a,Rf)+" "+$a)}}}else{if("d"==Ya){for(Xa in tb)if(g[1]==Xa){var Tf=a.Fa[Xa];Tf?(g.shift(),g.shift(),Tf(g)):a.j("no dump registered for "+ia);break a}ia||(Ya=a.Cb||"db")}else a.Cb=
|
||||
Ya;if("dh"==Ya){var Uf=ia,Vf=Ga,Wf="",Xf=0,ca=a.fa,ja=a.I;if(ja.length){var Y=+Uf||a.Za,vb=+Vf||10;isNaN(Y)?Y=vb:Wf="more ";Y>ja.length&&(a.j("note: only "+ja.length+" available"),Y=ja.length);ca-=Y;0>ca&&(null==ja[ja.length-1].C?(Y=ca+Y,ca=0):ca+=ja.length);var nd=[];"call"==Vf&&(vb=1E5,nd=["CALL"]);for(void 0!==Uf&&a.j(Y+" instructions earlier:");0<vb&&ca!=a.fa;){var Yf=ja[ca++];if(null==Yf.C)break;var wb=Z(Yf.C),Wh=Y--,Zf=th(a,wb,"history",Wh);(!nd.length||0<=Zf.indexOf(nd[0]))&&a.j(Zf);wb.Jb&&
|
||||
(ca+=wb.Jb,vb-=wb.Jb,Y-=wb.Jb);ca>=ja.length&&(ca=0);a.Za=Y;Xf++;vb--}}Xf||(a.j("no "+Wf+"history available"),a.Za=void 0)}else{var xb=fh(a,ia);if(xb){var kc=0;Ga&&("l"==Ga.charAt(0)&&(Ga=Ga.substr(1)||Vh),kc=Tg(a,Ga)>>>0,65536<kc&&(kc=65536));for(var yb="",ab="dd"==Ya?4:"dw"==Ya?2:1,lc=ab*kc||128,Xh=lc+15>>4||1;Xh--&&0<lc;){var mc=0,zb=0,Ab,od="",$f="",ia=J(a,xb.C);for(Ab=4==ab?16:a.ma;0<Ab&&0<lc;Ab--){var pd,nc=2==ab?a.na(xb,pd=2):a.ob(xb,pd=1),mc=mc|nc<<(zb<<3),zb=zb+pd;zb==ab&&(od+=J(a,mc,ab),
|
||||
od+=1==ab?9==Ab?"-":" ":" ",mc=zb=0);$f+=32<=nc&&128>nc?String.fromCharCode(nc):".";lc--}yb&&(yb+="\n");yb+=ia+" "+od+(0==Ab?" "+$f:"")}yb&&a.j(yb);a.Qa=xb}}}}break;case "e":if("else"==g[0])break;var bb,qd,rd,sd,td=g[0],ud=g[1];"eb"==td?(bb=1,qd=255,rd=a.ob,sd=a.Fb):"e"==td||"ew"==td?(bb=2,qd=65535,rd=a.na,sd=a.Wa):ud=null;if(null==ud)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var oc=fh(a,ud);if(oc)for(var pc=2;pc<
|
||||
g.length;pc++){var Bb=Rg(a,g[pc]);if(void 0===Bb){a.j("unrecognized value: "+g[pc]);break}Bb&~qd&&a.j("warning: "+l(Bb)+" exceeds "+bb+"-byte value");var Yh=rd.call(a,oc);a.j("changing "+J(a,oc.C)+" from "+J(a,Yh,bb)+" to "+J(a,Bb,bb));sd.call(a,oc,Bb,bb)}}break;case "g":a:{var ag=g[1],Zh=b;if(void 0!==ag){var vd=fh(a,ag,!0);if(!vd)break a;jh(a,vd,Zh);a.Sa(a.f,vd,!0)}a.ib(!0,c)}break;case "h":a.v.ca?(c||a.j("halting"),a.da()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var wd;
|
||||
var Cb=b.substr(2),Cb=va(Cb);Rg(a,Cb)?(c||a.j("true: "+Cb),wd=!0):(c||a.j("false: "+Cb),wd=!1);wd||(d=!1);break}f=!0;break;case "k":var $h=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var xd=0,yd=Z(),Db=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Db.C));10>xd;){for(var Ha=null,ai=256;65536>Db.C>>>0;){yd.C=a.na(Db,2);if(null==Db.C||!ai--)break;if(!(yd.C&1)){for(var bi=a,qc=yd,bg=null,Eb=qc.C,cg=Eb,zd=1;6>=zd&&Eb;zd++){if(2<
|
||||
zd){qc.C=Eb;var rc=th(bi,qc);if(0<=rc.indexOf("JSR")){var dg=rc.indexOf(" ");if(Eb+(rc.indexOf(" ",dg+1)-dg-1)/2==cg){bg=rc;break}}}Eb-=2}qc.C=cg;if(Ha=bg)break}}if(!Ha||null==Ha)break;var eg=null;if("ks"==$h){var fg=Ha.match(/[0-9A-F]+$/);fg&&(eg=Ah(a,fg[0]))}Ha=ua(Ha,50)+" ;"+(eg||"stack="+J(a,Db.C));a.j(Ha);xd++}xd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){Ah(a,g[1],!0);break}f=!0;break;case "m":a:{var ka,la=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"==
|
||||
G)xa=1878917119,G=null;else if("on"==G)la=!0,G=null;else if("off"==G)la=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(ka in tb)if(G==ka){xa=tb[ka];la=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,la=!0;else if("off"==g[2]&&(a.la&=~xa,la=!1,1073741824==xa)){for(var Ad=0;Ad<a.wa.length;Ad++)a.j(a.wa[Ad]);a.wa=[]}}var ci=0,Fb="";for(ka in tb)if(!G||G==ka){var di=!!(a.la&tb[ka]);if(null===la||la==di)Fb&&(Fb+=","),++ci%10||(Fb+="\n\t"),
|
||||
"key"==ka&&(ka="keys"),Fb+=ka}void 0===G&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.j((null!==la?la?"messages on: ":"messages off: ":"message categories:\n\t")+(Fb||"none"));Yg(a)}break;case "p":if("print"==g[0]){Bh(a,b.substr(5));break}var ei="pr"==g[0]?1:0;if(a.V)a.j("step in progress");else{var gg=Z(a.b.u[7]);a.ob(gg);a.V?(a.Sa(a.f,gg,!0),a.ib()||(a.D&&a.D.ub(),a.V=0)):Ch(a,ei?"tr":"t")}break;case "r":if("reset"==b){a.D&&a.D.reset();break}mh(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Gb=
|
||||
+g[2];if(8==Gb||10==Gb||16==Gb)a.ma=Gb;else{a.j("invalid base: "+Gb);break}}a.j("default base: "+a.ma);break;case "cs":var Hb;void 0!==g[3]&&(Hb=+g[3]);switch(g[2]){case "int":a.b.cb=Hb;break;case "start":a.b.rb=Hb;break;case "stop":a.b.eb=Hb;break;default:a.j("unknown cs option");break a}void 0!==Hb&&Rc(a.b);a.j("checksums "+(a.b.v.ab?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Vc(a.b,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));a.j("target speed: "+(a.b.Ua.toFixed(2)+
|
||||
"Mhz")+" ("+a.b.Ma+"x)");break;default:if(g[1]){a.j("unknown option: "+g[1]);break}case "?":a.j("debugger options:"),a.j("\tbase #\t\tset default base to #"),a.j("\tcs int #\tset checksum cycle interval to #"),a.j("\tcs start #\tset checksum cycle start count to #"),a.j("\tcs stop #\tset checksum cycle stop count to #"),a.j("\tsp #\t\tset speed multiplier to #")}break;case "t":Ch(a,g[0],g[1]);break;case "u":nh(a,g[1],g[2],8);break;case "v":if("var"==g[0]){zh(a,b.substr(3))||(d=!1);break}if("ver"==
|
||||
g[0]){a.j("PDPjs version 1.30.1 ("+a.b.bb+",RELEASE"+(sb?",TYPEDARRAYS":",LONGARRAYS")+")");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){Bh(a,b.substr(1));break}var Bd="commands:",Cd;for(Cd in $g)Bd+="\n"+ua(Cd,9)+$g[Cd];Xd(a)||(Bd+="\nnote: history disabled if no exec breakpoints");a.j(Bd);break;default:f=!0}f&&(a.j("unknown command: "+b),d=!1)}}catch(hg){a.j("debugger error: "+(hg.stack||hg.message)),d=!1}return d}
|
||||
function Sc(a,b,c){b=Pg(a,b,c);for(var d in b)if(!sh(a,b[+d]))return!1;return!0}Ta(function(){for(var a=B(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Wg(d);A(d,c)}});
|
||||
function Eh(a,b,c){r.call(this,"Computer",a,Eh,67108864);this.v.ha=!1;Fh(this,b);this.M=Pc(this,"autoPower",a);this.D=0;this.aa=a.busWidth||a.buswidth;this.f=Gh;this.I=null;this.F=this.P=!1;this.ba=Pc(this,"url")||"";(Math.random()+.1).toString(36);this.g=Hh(this);if(this.b=mb("CPU",this.id)){this.i=mb("Debugger",this.id);this.w=new Mb({id:this.Ra+".bus",busWidth:this.aa},this.b,this.i);var d,e=kb(this.id);if((this.A=mb("Panel",this.id))&&this.A.Ta)for(b=0;b<e.length;b++)d=e[b],d.ga=this.A.ga,d.j=
|
||||
this.A.j,d.Ta=this.A.Ta;this.j("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.j("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.Ca&&d.Ca(this,this.w,this.b,this.i);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.H=d:this.f=parseInt(d,10));var f;if(a=Pc(this,"state")||(f=!0,a.state))b=this.N=a,f||(this.F=!0,this.f=Gh),this.f&&
|
||||
(this.K=new N(this,"1.30.1"),Ih(this.K)?b=null:delete this.K);!b&&this.f&&(b=Jh(this))&&(this.F=!0);if(b){var g=this;Ba(b,null,!0,function(a,b,c){c?(g.H=null,g.F=!1,g.ga("Unable to load machine state from server (error "+c+(b?": "+va(b):"")+")")):(g.I=b,g.P=!0);H(g)})}else H(this);this.J.power||(this.M=!0);!c&&this.M&&Kh(this,this.sb)}else n("Unable to find CPU component")}u(Eh);var Gh=0;
|
||||
function Fh(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 Pc(a,b,c){var d=b.toLowerCase(),d=db[b]||db[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 Kh(a,b,c){for(var d=kb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!pb(f)){pb(f,function(){Kh(a,b,c)});return}}b.call(a,c)}
|
||||
function Lh(a,b){var c=new N(a,"1.30.1","validate");if(Ih(c)&&Mh(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.ga("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Eh.prototype;
|
||||
k.sb=function(a){void 0===a&&(a=this.f||(this.I?1:Gh));if(!this.D){this.D++;var b=!1,c=!1;this.O=!1;var d=this.K||new N(this,"1.30.1");if(-1==a)b=!0;else if(a>Gh){if(Ih(d,this.I)){this.B=new N(this,"1.30.1","failsafe");Ih(this.B)&&(Nh(this,d),a=2,Oh(this.B));this.B.set("timestamp",Aa());Ph(this.B);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Mh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Ih(d,g):("error"==
|
||||
f&&"no machine state"!=g?(this.ga("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Oh(d),Ih(d)?(c=Mh(d),e=!0):c=!1))}e&&Lh(this,c?d:null)}else 2==a&&d.clear()}else Lh(this);delete this.I;delete this.K}e=kb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=Qh(this,g,d,b,c));b=[d,a,c];-1!=a?Kh(this,this.Xb,b):this.Xb(b)}};
|
||||
function Qh(a,b,c,d,e){if(!b.v.ha){b.v.ha=!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&&(n("Unable to restore state for "+b.type),a.N&&!a.P?(c.clear(),a.f=Gh,window&&window.location.reload()):a.O=!0,b.Aa(null),e=!1)}if(!d&&b.Yb)for(a=b.Yb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
k.Xb=function(a){var b=a[0],c=0>a[1];a=a[2];this.fa=!0;this.v.ha=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.b&&(Qh(this,this.b,b,c,a),this.b.mb());this.O&&(Nh(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.D=0};
|
||||
function Nh(a,b){if(Da("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.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Dh(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),h=Aa();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.b&&a.b.za&&(c&&a.b.da(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ha=!1,!1===d&&(e=null)));for(var h=kb(a.id),m=0;m<h.length;m++){var p=h[m];p.v.ha&&(p.za&&(d=p.za(b,c),"object"===typeof d&&f.set(p.id,
|
||||
d)),c&&(p.v.ha=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Rh(a,a.g,f.toString()),Ph(g)&&Ph(f)||(e=null,d=h=!0)):a.f&&(d=!0,h=3==a.f),d&&f.clear(h)):e=f.toString());c&&(a.v.ha=!1,b=a.J.power)&&(b.textContent="Power");a.D=0;return e}k.reset=function(){this.w&&this.w.reset&&(C(this,"Resetting "+this.w.type),this.w.reset());for(var a=kb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.w&&c.reset&&(C(this,"Resetting "+c.type),c.reset())}};
|
||||
function Xg(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=0,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var 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=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Yg(a,b){if(b)return Xg(a,b,a.ba[b]);var c=0;for(b in a.ba)Xg(a,b,a.ba[b]),c++;return 0<c}
|
||||
function J(a,b,c,d){switch(a.ma){case 8:a=na(b,3*c);break;case 10:a=b.toString();break;default:a=l(b,2*c)}d?d=a.replace(/^0+([0-9A-F]+)$/i,"$1"):d=a;return d}
|
||||
function Zg(a){Qg.call(this,a);this.$a=!1;this.ya=!0;this.K=Z(0);this.Qa=Z(0);this.O=Z(0);this.F=[];this.f=this.M=this.C=[];$g(this);this.qa=0;ah(this);this.Fa={};bh(this,a.messages);this.Ga=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Sc(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Sc(b,a)})}u(Zg,Qg);
|
||||
var ch={"?":"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"},dh=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
|
||||
eh={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]}},fh=[0],gh=[58,60,65,96,
|
||||
108,110,100,101,102,103,104,105,59,64];k=Zg.prototype;
|
||||
k.Ca=function(a,b,c,d){this.w=b;this.b=c;this.D=a;(a=Pc(a,"messages"))&&bh(this,a);this.eb=eh;this.zb=1145>this.b.fb?gh:[];hh(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(ih(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ia;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<<d.w.ia,
|
||||
8)+" %%"+l(q.B,8)+" "+l(q.xb,4,!0)+" "+l(q.size,4,!0)+" "+p),c!=Bc&&(c=-1),p=0);a+=d.w.ua;e++}}});H(this)};
|
||||
k.ra=function(a,b,c){var d=this;switch(b){case "debugInput":return this.pa=this.I[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Sc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.g.length-1&&(b=d.g[++d.A])):40==a.keyCode&&(0<d.A?b=d.g[--d.A]:(b="",d.A=-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,Na(c,function(){if(d.pa){var a=d.pa.value;
|
||||
d.pa.value="";Sc(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,Na(c,function(a){var b=!1;ob(d,!0)||(nb(d,!0),b=d.mb(a?1:0),nb(d,!1));return b}),!0}return!1};k.wb=function(){this.pa&&this.pa.focus()};k.Y=function(a){a=a&&a.B;null==a&&(a=-1);return a};k.qb=function(a,b){var c=255,d=this.Y(a,!1,1);-1!==d&&(c=a.Ab?this.w.Db(d):this.b.Db(d),b&&jh(a,b));return c};k.na=function(a,b){var c=65535,d=this.Y(a,!1,2);-1!==d&&(c=a.Ab?this.w.rb(d):this.b.rb(d),b&&jh(a,b));return c};
|
||||
k.Ib=function(a,b,c){var d=this.Y(a,!0,1);-1!==d&&(a.Ab?this.w.Xa(d,b):this.b.Xa(d,b),c&&jh(a,c),this.D.$(!0))};k.Ya=function(a,b,c){var d=this.Y(a,!0,2);-1!==d&&(a.Ab?this.w.Jb(d,b):this.b.Jb(d,b),c&&jh(a,c),this.D.$(!0))};function Z(a,b){return{B:a,Ab:b,Ba:!1}}function kh(a){return[a.B,a.Ba]}function lh(a){return{B:a[0],Ba:a[1]}}
|
||||
function ih(a,b,c){var d,e=(c?a.K:a.Qa).B;c=!1;if(void 0!==b){b=Vg(a,b);"%"==b.charAt(0)&&(c=!0,b=b.substr(1));d=b;var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),e=0;e<a.F.length;e++){var g=a.F[e].ka[d];if(void 0!==g){d=g.o;void 0!==d&&(f=Z(d));break}}if(d=f)return d;e=Ug(a,b,void 0)}null!=e&&(d=Z(e,c));return d}function mh(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.lc=Sg(a,b.hc=c[2]))}function jh(a,b){null!=a.B&&(a.B+=b||1)}
|
||||
function bh(a,b){a.i=a;a.la=a.nc=536870912;a.sa=null;a.wa=[];b=Sg(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in tb){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.la|=tb[c],a.j(c+" messages enabled"))}}function hh(a,b){for(var c in tb)if(64==tb[c]){a.Fa[c]=b;break}}
|
||||
k.ac=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 nh(a){return 6>a?"R"+a:6==a?"SP":"PC"}k.bc=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b};
|
||||
k.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.vb).B));this.la&1073741824?this.wa.push(a):this.sa&&a==this.sa||(this.sa=a,this.la&-2147483648&&(this.aa(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.pa=0,a.D.$()))};
|
||||
function ah(a){var b;if(Yd(a)){if(!a.J||!a.J.length){a.J=Array(1E3);for(b=0;b<a.J.length;b++)a.J[b]=Z();a.fa=0;a.j("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.j("instruction history buffer freed"),a.fa=0,a.J=[],a.ca=[]}k.lb=function(a,b){if(!oh(this,b))return!1;this.b.lb(a);return!0};
|
||||
k.mb=function(a,b,c){if(!oh(this))return!1;this.H=0;a||Yd(this)&&Zd(this,this.b.u[7],0);try{a=Zc(this.b,a);var d=this.b.mb(a);0<d&&($c(this.b,a),this.H+=d,Wc(this.b,d,!0),Tc(this.b,d),this.N++)}catch(e){"number"!=typeof e&&(this.H=0,rb(this.b,e.stack||e.message))}!1!==c&&this.D.$();this.$(b||!1);return 0<this.H};k.aa=function(a){this.b&&this.b.aa(a)};k.$=function(a){this.$a&&(void 0===a&&(a=!0),this.K=Z(this.b.u[7]),a&&1!=this.U?ph(this):qh(this))};
|
||||
function oh(a,b){var c;(c=!a.b||!pb(a.b))||(c=a.b,c.v.ga?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.b.v.da?(b||a.j("cpu busy or unavailable, command ignored"),!1):!qb(a.b)}k.Aa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};k.za=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};k.reset=function(a){ah(this);this.N=this.xa=0;this.sa=null;this.H=0;this.K=Z(this.b.u[7]);this.v.da=!1;rh(this);a||this.$()};
|
||||
k.save=function(){var a=new O(this);a.set(0,kh(this.K));a.set(1,kh(this.O));a.set(2,[this.g,this.P,this.la]);a.set(3,this.F);return a.data()};k.restore=function(a){var b=0;void 0!==a[2]&&(this.K=lh(a[b++]),this.O=lh(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.P=a[b][1],this.la|=a[b][2]);a[3]&&(this.F=a[3]);return!0};k.start=function(a,b){this.U||this.j("running");this.v.da=!0;this.Cb=a;this.Eb=b};
|
||||
k.stop=function(a,b){if(this.v.da){this.v.da=!1;this.H=b-this.Eb;if(!this.U){b="stopped";if(this.H){a-=this.Cb;var c=0<a?Math.round(1E3*this.H/a):0;b+=" (";Yd(this)&&(b+=this.N+" opcodes, ",this.xa-=this.N,this.N=0);b+=this.H+" cycles, "+a+" ms, "+c+" hz)"}else D(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}this.$(!0);this.wb();rh(this,this.b.u[7])}};function Yd(a){return 1<a.f.length||!!a.qa}
|
||||
function Zd(a,b,c){var d=a.b;if(0<c&&(a.qa&&!--a.qa||Kc(a,b,1,a.f)))return!0;0<=c&&a.ca.length&&(a.N++,null!=a.b.rb(b)&&(b=a.J[a.fa],b.B=d.u[7],b.Ba=!1,++a.fa==a.J.length&&(a.fa=0)));return!1}function $b(a){var b=a.b;if(b.v.da)throw N(b,a.b.vb),a.aa(),-1;return!1}function $g(a){var b,c;a.f=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];var d=a.w;c=a.Y(c);Lc(d.W[c>>>d.ia],!1)}a.M=["br"];if(a.C)for(b=1;b<a.C.length;b++)c=a.C[b],d=a.w,c=a.Y(c),Lc(d.W[c>>>d.ia],!0);a.C=["bw"];a.ab=0}
|
||||
k.Sa=function(a,b,c){var d=!0;c||sh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.B)),d=!1;else{var f=this.w;f.W[e>>>f.ia].Sa(e&f.w,a==this.C)}}d&&(a.push(b),c?b.Ba=!0:(th(this,a,a.length-1,"set"),ah(this)));return d};function sh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.Y(h)&&(!d||h.Ba)){f=!0;h.Ba||e||th(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.w,Lc(d.W[c>>>d.ia],b==a.C));h.Ba||ah(a);break}}return f}
|
||||
function uh(a,b){for(var c=1;c<b.length;c++)th(a,b,c);return b.length-1}function th(a,b,c,d){c=b[c];a.j(b[0]+" "+J(a,c.B)+(d?" "+d:c.hc?' "'+c.hc+'"':""))}function rh(a,b){if(void 0!==b)Kc(a,b,1,a.f,!0),a.U=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.Ba){if(!sh(a,a.f,c,!0))break;b=0}}}
|
||||
function Kc(a,b,c,d,e){var f=!1;if(!a.ab++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Ba)for(var m=a.Y(h),p=0;p<c;p++)if(b+p==m){var q,f=!0;h.Ba&&(sh(a,d,h,!0),e=!0);if(q=h.lc){for(var f=!1,v=0;v<q.length;v++)if(!vh(a,q[v],!0)){if(q[v].indexOf("if")){f=!0;break}for(var w=v+1;w<q.length&&q[w].indexOf("else");w++)v++;if(w==q.length){f=!0;break}}a.b.v.da||(f=!0)}if(f){e||th(a,d,g,"hit");break}}}a.ab--;return f}
|
||||
function wh(a,b,c,d){var e=Z(b.B),f=a.na(b,2),g,h;for(h in a.eb)if(g=a.eb[h][f&h])break;g||(g=fh);var m=g[0];0<=a.zb.indexOf(m)&&(g=fh,m=g[0]);var p=h="",q=dh[m],v=g.length-1;m||v||(h=J(a,f));for(m=1;m<=v;m++){var w=g[m];if(void 0!==w){var x;x=a;var E=w,w=b,y="",F=E&61440;if(4096==F)w=w.B+((f&255)<<24>>23)&65535,y=J(x,w);else if(8192==F)w=w.B-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y=
|
||||
nh(E);break;case 8:y="@"+nh(E);break;case 16:7>E?y="("+nh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+nh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+nh(E)+")";break;case 40:y="@-("+nh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+nh(E)+")";7==E&&(y=[y,J(x,F+w.B&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+nh(E)+")",7==E&&(y=[y,J(x,F+w.B&65535)])}x=y;if(!x||!x.length){h="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0<h.length&&(h+=",");h+=x||
|
||||
"???"}}f="";g=J(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(f+=" "+J(a,a.na(e,2)),null==e.B)break;while(e.B!=b.B)}g+=ua(f,24);g+=ua(q,5);h&&(g+=" "+h);if(c||p)g=ua(g,60)+";"+(c||""),g=a.b.v.cb?g+("cycles="+Uc(a.b).toString()+" cs="+l(a.b.sb)):g+(null!=d?"="+d.toString():""),p&&(g+=" @"+p);return g}function xh(a,b){switch(b){case "N":a=a.b.Da();break;case "Z":a=id(a.b);break;case "V":a=hd(a.b);break;case "C":a=gd(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
|
||||
function yh(a,b){var c="",d=a.b;8>b?(c=nh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function zh(a){var b,c="";for(b=0;6>b;b++)c+=yh(a,b);c=c+"\n"+(yh(a,6)+yh(a,7)+yh(a,20));return c+=xh(a,"T")+xh(a,"N")+xh(a,"Z")+xh(a,"V")+xh(a,"C")}k.Wb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Ah(a,b,c){var d=[],e=a.Y(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.B>>>0,h=f.vc;if(e>=g&&e<g+h){e=ya(f.Vb,[e-g],a.Wb);0<=e?Bh(a,b,e,d):c&&(e=~e,Bh(a,b,e-1,d),Bh(a,b,e,d));break}}return d}function Bh(a,b,c,d){var e={},f=a.F[b].Vb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].ka[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
|
||||
function Ch(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Yg(a)||a.j("no variables"),!0;if(!c[2])return Yg(a,c[1]);if(!c[3])return delete a.ba[c[1]],!0;b=Ug(a,c[3]);return void 0!==b?(a.ba[c[1]]=b,!0):!1}a.j("invalid assignment:"+b);return!1}
|
||||
function Dh(a,b,c){var d=null;if(b=ih(a,b,!0)){a.Y(b);var e=Ah(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+l(f,4,!0)),f=e[0]+" ("+J(a,e[1])+")"+g,c&&a.j(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+l(f,4,!0)),f=e[4]+" ("+J(a,e[5])+")"+g,c&&a.j(f),d||(d=f))}else c&&a.j("no symbols")}return d}
|
||||
function ph(a,b){var c;if(b&&"?"==b[1])a.j("register commands:"),a.j("\tr\tdump registers"),a.j("\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.j("missing value for "+b[1]);return}f=Ug(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":N(d,f);a.K=Z(d.u[7]);break;case "N":d.V=f?32768:0;break;case "Z":d.X=
|
||||
f?0:1;break;case "V":d.S=f?32768:0;break;case "C":d.R=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.j("unknown register: "+e);return}a.D.$();a.j("updated registers:")}a.j(zh(a));c&&(a.K=Z(d.u[7]),qh(a,J(a,a.K.B)))}}function Eh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):Xg(a,null,c[2].charCodeAt(0)):Ug(a,b,!0)}
|
||||
function Fh(a,b,c){var d="t"!=b;c=Wg(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ma(c,function(){return nb(a,!0)&&a.mb(e,d,!1)},function(){a.D.$();nb(a,!1)})}
|
||||
function qh(a,b,c,d){if(b=ih(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Wg(a,c.substr(1)),null!=c&&(d=c);else{d=ih(a,c,!0);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.j("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=ob(a,!1)||a.U?a.H:null;var g=null!=f?"cycles":null,h=Ah(a,b),m=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.j(p)}h[3]&&(g=h[3],f=null);f=wh(a,b,g,f);a.j(f);a.K=b;e-=b.B-m;c++}}}
|
||||
function vh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.P&&(a.j("ended assemble at "+J(a,a.O.B)),a.K=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.sa=null;if(pb(a)&&0<b.length){a.P&&(b="a "+J(a,a.O.B)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");if(g&&g.length)for(var h=g[0],m=h.charAt(0),p=1;p<h.length;p++){var q=h.charAt(p);if("?"==m||"r"==m||"a">q||"z"<q){g[0]=h.substr(p);g.unshift(h.substr(0,p));break}}g[0]=g[0].toLowerCase();switch(g[0].charAt(0)){case "a":var v=
|
||||
ih(a,g[1],!0);if(v)if(a.O=v,void 0===g[2])a.j("begin assemble at "+J(a,v.B)),a.P=!0,a.D.$();else{var w;a.j("not supported yet");w=[];if(w.length){for(var x=0;x<w.length;x++)a.Ib(v,w[x],1);a.j(wh(a,a.O))}}break;case "b":a:{var E=g[0],y=g[1],F=b;if("?"==y)a.j("breakpoint commands:"),a.j("\tbp [a]\tset exec breakpoint at addr [a]"),a.j("\tbr [a]\tset read breakpoint at addr [a]"),a.j("\tbw [a]\tset write breakpoint at addr [a]"),a.j("\tbc [a]\tclear breakpoint at addr [a]"),a.j("\tbl\tlist all breakpoints"),
|
||||
a.j("\tbn [n]\tbreak after [n] instruction(s)");else{var Fa=E.charAt(1);if("l"==Fa){var kd;kd=0+uh(a,a.f);kd+=uh(a,a.M);(kd+=uh(a,a.C))||a.j("no breakpoints")}else if("n"==Fa)a.qa=Wg(a,y),a.j("break after "+a.qa+" instruction(s)");else if(void 0===y)a.j("missing breakpoint address");else{var U=Z();if("*"!=y&&(U=ih(a,y,!0),!U))break a;"c"==Fa?null==U.B?($g(a),a.j("all breakpoints cleared")):sh(a,a.f,U)||sh(a,a.M,U)||sh(a,a.C,U)||a.j("breakpoint missing: "+J(a,U.B)):null!=U.B&&(mh(a,U,F),"p"==Fa?a.Sa(a.f,
|
||||
U):"r"==Fa?a.Sa(a.M,U):"w"==Fa?a.Sa(a.C,U):a.j("unknown breakpoint command: "+Fa))}}}break;case "c":a.Va&&(a.Va.value="");break;case "d":a:{var Xa,Ya=g[0],ja=g[1],Ga=g[2],Yh=g[3];if("?"==ja){var Za="";for(Xa in tb)a.Fa[Xa]&&(Za&&(Za+=","),Za+=Xa);Za+=",state,symbols";a.j("dump memory commands:");a.j("\tdb [a] [#] dump # bytes at address a");a.j("\tdw [a] [#] dump # words at address a");a.j("\tdd [a] [#] dump # dwords at address a");a.j("\tdh [#] [#] dump # instructions from history");
|
||||
Za.length&&a.j("dump extension commands:\n\t"+Za)}else if("state"==ja){var Sf=Gh(a.D,!0);"console"==Ga?console.log(Sf):(a.Va&&(a.Va.value=""),a.j(Sf))}else if("symbols"==ja)for(var ld=0;ld<a.F.length;ld++){var md=a.F[ld],$a;for($a in md.ka)if("."!=$a.charAt(0)){var Tf=md.ka[$a].o;if(void 0!==Tf){var Uf=md.ka[$a].l;Uf&&($a=Uf);a.j(J(a,Tf)+" "+$a)}}}else{if("d"==Ya){for(Xa in tb)if(g[1]==Xa){var Vf=a.Fa[Xa];Vf?(g.shift(),g.shift(),Vf(g)):a.j("no dump registered for "+ja);break a}ja||(Ya=a.Fb||"db")}else a.Fb=
|
||||
Ya;if("dh"==Ya){var Wf=ja,Xf=Ga,Yf="",Zf=0,ca=a.fa,ka=a.J;if(ka.length){var Y=+Wf||a.bb,vb=+Xf||10;isNaN(Y)?Y=vb:Yf="more ";Y>ka.length&&(a.j("note: only "+ka.length+" available"),Y=ka.length);ca-=Y;0>ca&&(null==ka[ka.length-1].B?(Y=ca+Y,ca=0):ca+=ka.length);var nd=[];"call"==Xf&&(vb=1E5,nd=["CALL"]);for(void 0!==Wf&&a.j(Y+" instructions earlier:");0<vb&&ca!=a.fa;){var $f=ka[ca++];if(null==$f.B)break;var wb=Z($f.B),Zh=Y--,ag=wh(a,wb,"history",Zh);(!nd.length||0<=ag.indexOf(nd[0]))&&a.j(ag);wb.Mb&&
|
||||
(ca+=wb.Mb,vb-=wb.Mb,Y-=wb.Mb);ca>=ka.length&&(ca=0);a.bb=Y;Zf++;vb--}}Zf||(a.j("no "+Yf+"history available"),a.bb=void 0)}else{var xb=ih(a,ja);if(xb){var lc=0;Ga&&("l"==Ga.charAt(0)&&(Ga=Ga.substr(1)||Yh),lc=Wg(a,Ga)>>>0,65536<lc&&(lc=65536));for(var yb="",ab="dd"==Ya?4:"dw"==Ya?2:1,mc=ab*lc||128,$h=mc+15>>4||1;$h--&&0<mc;){var nc=0,zb=0,Ab,od="",bg="",ja=J(a,xb.B);for(Ab=4==ab?16:a.ma;0<Ab&&0<mc;Ab--){var pd,oc=2==ab?a.na(xb,pd=2):a.qb(xb,pd=1),nc=nc|oc<<(zb<<3),zb=zb+pd;zb==ab&&(od+=J(a,nc,ab),
|
||||
od+=1==ab?9==Ab?"-":" ":" ",nc=zb=0);bg+=32<=oc&&128>oc?String.fromCharCode(oc):".";mc--}yb&&(yb+="\n");yb+=ja+" "+od+(0==Ab?" "+bg:"")}yb&&a.j(yb);a.Qa=xb}}}}break;case "e":if("else"==g[0])break;var bb,qd,rd,sd,td=g[0],ud=g[1];"eb"==td?(bb=1,qd=255,rd=a.qb,sd=a.Ib):"e"==td||"ew"==td?(bb=2,qd=65535,rd=a.na,sd=a.Ya):ud=null;if(null==ud)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var pc=ih(a,ud);if(pc)for(var qc=2;qc<
|
||||
g.length;qc++){var Bb=Ug(a,g[qc]);if(void 0===Bb){a.j("unrecognized value: "+g[qc]);break}Bb&~qd&&a.j("warning: "+l(Bb)+" exceeds "+bb+"-byte value");var ai=rd.call(a,pc);a.j("changing "+J(a,pc.B)+" from "+J(a,ai,bb)+" to "+J(a,Bb,bb));sd.call(a,pc,Bb,bb)}}break;case "g":a:{var cg=g[1],bi=b;if(void 0!==cg){var vd=ih(a,cg,!0);if(!vd)break a;mh(a,vd,bi);a.Sa(a.f,vd,!0)}a.lb(!0,c)}break;case "h":a.v.da?(c||a.j("halting"),a.aa()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var wd;
|
||||
var Cb=b.substr(2),Cb=va(Cb);Ug(a,Cb)?(c||a.j("true: "+Cb),wd=!0):(c||a.j("false: "+Cb),wd=!1);wd||(d=!1);break}f=!0;break;case "k":var ci=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var xd=0,yd=Z(),Db=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Db.B));10>xd;){for(var Ha=null,di=256;65536>Db.B>>>0;){yd.B=a.na(Db,2);if(null==Db.B||!di--)break;if(!(yd.B&1)){for(var ei=a,rc=yd,dg=null,Eb=rc.B,eg=Eb,zd=1;6>=zd&&Eb;zd++){if(2<
|
||||
zd){rc.B=Eb;var sc=wh(ei,rc);if(0<=sc.indexOf("JSR")){var fg=sc.indexOf(" ");if(Eb+(sc.indexOf(" ",fg+1)-fg-1)/2==eg){dg=sc;break}}}Eb-=2}rc.B=eg;if(Ha=dg)break}}if(!Ha||null==Ha)break;var gg=null;if("ks"==ci){var hg=Ha.match(/[0-9A-F]+$/);hg&&(gg=Dh(a,hg[0]))}Ha=ua(Ha,50)+" ;"+(gg||"stack="+J(a,Db.B));a.j(Ha);xd++}xd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){Dh(a,g[1],!0);break}f=!0;break;case "m":a:{var la,ma=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"==
|
||||
G)xa=1878917119,G=null;else if("on"==G)ma=!0,G=null;else if("off"==G)ma=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(la in tb)if(G==la){xa=tb[la];ma=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,ma=!0;else if("off"==g[2]&&(a.la&=~xa,ma=!1,1073741824==xa)){for(var Ad=0;Ad<a.wa.length;Ad++)a.j(a.wa[Ad]);a.wa=[]}}var fi=0,Fb="";for(la in tb)if(!G||G==la){var gi=!!(a.la&tb[la]);if(null===ma||ma==gi)Fb&&(Fb+=","),++fi%10||(Fb+="\n\t"),
|
||||
"key"==la&&(la="keys"),Fb+=la}void 0===G&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.j((null!==ma?ma?"messages on: ":"messages off: ":"message categories:\n\t")+(Fb||"none"));ah(a)}break;case "p":if("print"==g[0]){Eh(a,b.substr(5));break}var hi="pr"==g[0]?1:0;if(a.U)a.j("step in progress");else{var ig=Z(a.b.u[7]);a.qb(ig);a.U?(a.Sa(a.f,ig,!0),a.lb()||(a.D&&a.D.wb(),a.U=0)):Fh(a,hi?"tr":"t")}break;case "r":if("reset"==b){a.D&&a.D.reset();break}ph(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Gb=
|
||||
+g[2];if(8==Gb||10==Gb||16==Gb)a.ma=Gb;else{a.j("invalid base: "+Gb);break}}a.j("default base: "+a.ma);break;case "cs":var Hb;void 0!==g[3]&&(Hb=+g[3]);switch(g[2]){case "int":a.b.gb=Hb;break;case "start":a.b.tb=Hb;break;case "stop":a.b.hb=Hb;break;default:a.j("unknown cs option");break a}void 0!==Hb&&Rc(a.b);a.j("checksums "+(a.b.v.cb?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Vc(a.b,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));a.j("target speed: "+(a.b.Wa.toFixed(2)+
|
||||
"Mhz")+" ("+a.b.Ma+"x)");break;default:if(g[1]){a.j("unknown option: "+g[1]);break}case "?":a.j("debugger options:"),a.j("\tbase #\t\tset default base to #"),a.j("\tcs int #\tset checksum cycle interval to #"),a.j("\tcs start #\tset checksum cycle start count to #"),a.j("\tcs stop #\tset checksum cycle stop count to #"),a.j("\tsp #\t\tset speed multiplier to #")}break;case "t":Fh(a,g[0],g[1]);break;case "u":qh(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Ch(a,b.substr(3))||(d=!1);break}if("ver"==
|
||||
g[0]){a.j("PDPjs version 1.30.1 ("+a.b.fb+",RELEASE"+(sb?",TYPEDARRAYS":",LONGARRAYS")+")");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){Eh(a,b.substr(1));break}var Bd="commands:",Cd;for(Cd in ch)Bd+="\n"+ua(Cd,9)+ch[Cd];Yd(a)||(Bd+="\nnote: history disabled if no exec breakpoints");a.j(Bd);break;default:f=!0}f&&(a.j("unknown command: "+b),d=!1)}}catch(jg){a.j("debugger error: "+(jg.stack||jg.message)),d=!1}return d}
|
||||
function Sc(a,b,c){b=Sg(a,b,c);for(var d in b)if(!vh(a,b[+d]))return!1;return!0}Ta(function(){for(var a=B(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Zg(d);A(d,c)}});
|
||||
function Hh(a,b,c){r.call(this,"Computer",a,Hh,67108864);this.v.ga=!1;Ih(this,b);this.M=Pc(this,"autoPower",a);this.D=0;this.ba=a.busWidth||a.buswidth;this.f=Jh;this.J=null;this.F=this.P=!1;this.ca=Pc(this,"url")||"";(Math.random()+.1).toString(36);this.g=Kh(this);if(this.b=mb("CPU",this.id)){this.i=mb("Debugger",this.id);this.w=new Mb({id:this.Ra+".bus",busWidth:this.ba},this.b,this.i);var d,e=kb(this.id);if((this.A=mb("Panel",this.id))&&this.A.Va)for(b=0;b<e.length;b++)d=e[b],d.ja=this.A.ja,d.j=
|
||||
this.A.j,d.Va=this.A.Va;this.j("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.j("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.Ca&&d.Ca(this,this.w,this.b,this.i);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.H=d:this.f=parseInt(d,10));var f;if(a=Pc(this,"state")||(f=!0,a.state))b=this.N=a,f||(this.F=!0,this.f=Jh),this.f&&
|
||||
(this.K=new O(this,"1.30.1"),Lh(this.K)?b=null:delete this.K);!b&&this.f&&(b=Mh(this))&&(this.F=!0);if(b){var g=this;Ba(b,null,!0,function(a,b,c){c?(g.H=null,g.F=!1,g.ja("Unable to load machine state from server (error "+c+(b?": "+va(b):"")+")")):(g.J=b,g.P=!0);H(g)})}else H(this);this.I.power||(this.M=!0);!c&&this.M&&Nh(this,this.ub)}else n("Unable to find CPU component")}u(Hh);var Jh=0;
|
||||
function Ih(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){n(d.message+" ("+c+")")}}a.U=b}function Pc(a,b,c){var d=b.toLowerCase(),d=db[b]||db[d];void 0===d&&a.U&&(d=a.U[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Nh(a,b,c){for(var d=kb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!pb(f)){pb(f,function(){Nh(a,b,c)});return}}b.call(a,c)}
|
||||
function Oh(a,b){var c=new O(a,"1.30.1","validate");if(Lh(c)&&Ph(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.ja("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Hh.prototype;
|
||||
k.ub=function(a){void 0===a&&(a=this.f||(this.J?1:Jh));if(!this.D){this.D++;var b=!1,c=!1;this.O=!1;var d=this.K||new O(this,"1.30.1");if(-1==a)b=!0;else if(a>Jh){if(Lh(d,this.J)){this.C=new O(this,"1.30.1","failsafe");Lh(this.C)&&(Qh(this,d),a=2,Rh(this.C));this.C.set("timestamp",Aa());Sh(this.C);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ph(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Lh(d,g):("error"==
|
||||
f&&"no machine state"!=g?(this.ja("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Rh(d),Lh(d)?(c=Ph(d),e=!0):c=!1))}e&&Oh(this,c?d:null)}else 2==a&&d.clear()}else Oh(this);delete this.J;delete this.K}e=kb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=Th(this,g,d,b,c));b=[d,a,c];-1!=a?Nh(this,this.Yb,b):this.Yb(b)}};
|
||||
function Th(a,b,c,d,e){if(!b.v.ga){b.v.ga=!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&&(n("Unable to restore state for "+b.type),a.N&&!a.P?(c.clear(),a.f=Jh,window&&window.location.reload()):a.O=!0,b.Aa(null),e=!1)}if(!d&&b.Zb)for(a=b.Zb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
k.Yb=function(a){var b=a[0],c=0>a[1];a=a[2];this.fa=!0;this.v.ga=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(Th(this,this.b,b,c,a),this.b.pb());this.O&&(Qh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.D=0};
|
||||
function Qh(a,b){if(Da("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.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ca;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Gh(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new O(a,"1.30.1"),g=new O(a,"1.30.1","validate"),h=Aa();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.b&&a.b.za&&(c&&a.b.aa(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ga=!1,!1===d&&(e=null)));for(var h=kb(a.id),m=0;m<h.length;m++){var p=h[m];p.v.ga&&(p.za&&(d=p.za(b,c),"object"===typeof d&&f.set(p.id,
|
||||
d)),c&&(p.v.ga=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Uh(a,a.g,f.toString()),Sh(g)&&Sh(f)||(e=null,d=h=!0)):a.f&&(d=!0,h=3==a.f),d&&f.clear(h)):e=f.toString());c&&(a.v.ga=!1,b=a.I.power)&&(b.textContent="Power");a.D=0;return e}k.reset=function(){this.w&&this.w.reset&&(C(this,"Resetting "+this.w.type),this.w.reset());for(var a=kb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.w&&c.reset&&(C(this,"Resetting "+c.type),c.reset())}};
|
||||
k.start=function(a,b){for(var c=kb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.$(!0)};k.stop=function(a,b){for(var c=kb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}this.$(!0)};
|
||||
k.ra=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.D||(d.v.ha?Dh(d,!1,!0):Kh(d,d.sb))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.v.ha&&!d.D)if(d.f&&!d.H){var a=Da("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Dh(d,a,!0);!a&&d.N?window&&window.location.reload():d.sb(Gh)}else d.reset(),d.b&&d.b.mb()},!0;case "save":if(qa())c.parentNode.removeChild(c);else return this.J[b]=
|
||||
c,c.onclick=function(){var a=Hh(d,!0);if(a){var b=!!(d.f&&!d.H||d.N),c=Dh(d,b);b?Rh(d,a,c):d.ga("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Hh(a,b){var c=a.g;c||((c=Ja("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=Sh(a,c))||a.ga("The user ID is invalid.")):b&&a.ga("Browser local storage is not available"));return c}
|
||||
function Sh(a,b){a.g=null;b=Ba(ra()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ka("user",b.data),a.g=b.data)}catch(d){n(d.message+" ("+c+")")}return a.g}function Jh(a){var b=null;a.g&&(b=ra()+"/api/v1/user?req=load&user="+a.g+"&state="+Th(a,"1.30.1"));return b}
|
||||
function Rh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Th(a,"1.30.1");d.data=c;b=Ba(ra()+"/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.ga("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.ga(c),Ka("user",""),a.g=null)}}k.ub=function(){};
|
||||
k.$=function(a){this.b&&this.b.$(a);this.A&&this.A.$(a)};Ta(function(){for(var a=B(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=B(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=z(f),g=new Eh(g,d,!0);A(g,f);g.M&&Kh(g,g.sb)}});Oa.show.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=mb("Computer",c.id))&&c.fa&&!c.v.ha&&c.sb(-1)}});
|
||||
Oa.exit.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=mb("Computer",c.id))&&c.v.ha&&Dh(c,!(!c.f||c.H),!0)}});function N(a,b,c){this.id=a.id;this.key=Th(a,b,c);this.i=a.i;Oh(this,a.tc)}function Th(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){Oh(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 Oh(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function Ph(a){var b=!0;if(Ia()){var c=JSON.stringify(a[a.id]);Ka(a.key,c)||(n("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Mh(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){n(c.message||c),b=!1}return b}function Ih(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:Ia()&&(b=Ja(a.key))?(a[a.id]=b,a.b=!0):!1}var Uh=0;
|
||||
function fi(a,b,c,d,e,f){e("Loading "+a+"...");Ba(a,null,!0,function(g,h,m){m?(h||(h="unable to load "+a+" ("+m+")"),f(h,null)):gi(h,a,b,c,d,e,f)})}
|
||||
function gi(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(jb(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?hi(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function hi(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(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 m=h[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]);h[0]!=m&&(g=g.replace(h[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);hi(a,b,c)}})}else c(a,null)}
|
||||
function ii(a,b,c,d){function e(a){if(void 0===h){var b=g&&B(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Uh||Va(!0));m=!1}var g,h,m=!0;Uh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c||
|
||||
(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,h){h?fi(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=h.transformNode(m))?(g.outerHTML=m,--Uh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Uh||Va(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?fi(b,a,d,!0,e,p):gi(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return ii(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map
|
||||
k.ra=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.D||(d.v.ga?Gh(d,!1,!0):Nh(d,d.ub))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.v.ga&&!d.D)if(d.f&&!d.H){var a=Da("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Gh(d,a,!0);!a&&d.N?window&&window.location.reload():d.ub(Jh)}else d.reset(),d.b&&d.b.pb()},!0;case "save":if(qa())c.parentNode.removeChild(c);else return this.I[b]=
|
||||
c,c.onclick=function(){var a=Kh(d,!0);if(a){var b=!!(d.f&&!d.H||d.N),c=Gh(d,b);b?Uh(d,a,c):d.ja("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Kh(a,b){var c=a.g;c||((c=Ja("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=Vh(a,c))||a.ja("The user ID is invalid.")):b&&a.ja("Browser local storage is not available"));return c}
|
||||
function Vh(a,b){a.g=null;b=Ba(ra()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ka("user",b.data),a.g=b.data)}catch(d){n(d.message+" ("+c+")")}return a.g}function Mh(a){var b=null;a.g&&(b=ra()+"/api/v1/user?req=load&user="+a.g+"&state="+Wh(a,"1.30.1"));return b}
|
||||
function Uh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Wh(a,"1.30.1");d.data=c;b=Ba(ra()+"/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.ja("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.ja(c),Ka("user",""),a.g=null)}}
|
||||
function Fg(a){var b;a=kb(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}k.wb=function(){};k.$=function(a){this.b&&this.b.$(a);this.A&&this.A.$(a)};Ta(function(){for(var a=B(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=B(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=z(f),g=new Hh(g,d,!0);A(g,f);g.M&&Nh(g,g.ub)}});
|
||||
Oa.show.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=mb("Computer",c.id))&&c.fa&&!c.v.ga&&c.ub(-1)}});Oa.exit.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=mb("Computer",c.id))&&c.v.ga&&Gh(c,!(!c.f||c.H),!0)}});function O(a,b,c){this.id=a.id;this.key=Wh(a,b,c);this.i=a.i;Rh(this,a.tc)}function Wh(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
||||
O.prototype={constructor:O,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Rh(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 Rh(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function Sh(a){var b=!0;if(Ia()){var c=JSON.stringify(a[a.id]);Ka(a.key,c)||(n("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Ph(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){n(c.message||c),b=!1}return b}function Lh(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:Ia()&&(b=Ja(a.key))?(a[a.id]=b,a.b=!0):!1}var Xh=0;
|
||||
function ii(a,b,c,d,e,f){e("Loading "+a+"...");Ba(a,null,!0,function(g,h,m){m?(h||(h="unable to load "+a+" ("+m+")"),f(h,null)):ji(h,a,b,c,d,e,f)})}
|
||||
function ji(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(jb(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?ki(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function ki(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(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 m=h[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]);h[0]!=m&&(g=g.replace(h[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);ki(a,b,c)}})}else c(a,null)}
|
||||
function li(a,b,c,d){function e(a){if(void 0===h){var b=g&&B(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Xh||Va(!0));m=!1}var g,h,m=!0;Xh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c||
|
||||
(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,h){h?ii(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=h.transformNode(m))?(g.outerHTML=m,--Xh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Xh||Va(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?ii(b,a,d,!0,e,p):ji(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return li(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map
|
||||
|
|
|
|||
|
|
@ -35,161 +35,162 @@ function qa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
|
|||
function ta(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
|
||||
function k(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="",r;for(r in b)b.hasOwnProperty(r)&&(n&&(n+="&"),n+=r+"="+encodeURIComponent(b[r]));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 ua(a,b){var c,d={L:null,Y:null,cb:null,bb:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,h;if("<"==b.substr(0,1))throw Error(b);h=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.cb=h.load;d.bb=h.exec;if(e=h.bytes)d.L=e;else if(e=h.words)for(d.L=Array(2*e.length),f=c=0;c<e.length;c++)d.L[f++]=e[c]&255,d.L[f++]=e[c]>>8&255;else if(e=h.data)for(d.L=Array(4*e.length),f=c=0;c<e.length;c++)d.L[f++]=e[c]&255,
|
||||
function ua(a,b){var c,d={L:null,Y:null,va:null,ua:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,h;if("<"==b.substr(0,1))throw Error(b);h=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.va=h.load;d.ua=h.exec;if(e=h.bytes)d.L=e;else if(e=h.words)for(d.L=Array(2*e.length),f=c=0;c<e.length;c++)d.L[f++]=e[c]&255,d.L[f++]=e[c]>>8&255;else if(e=h.data)for(d.L=Array(4*e.length),f=c=0;c<e.length;c++)d.L[f++]=e[c]&255,
|
||||
d.L[f++]=e[c]>>8&255,d.L[f++]=e[c]>>16&255,d.L[f++]=e[c]>>24&255;else d.L=h;d.Y=h.symbols;d.L.length?1==d.L.length&&(m(d.L[0]),d=null):(m("Empty resource: "+a),d=null)}catch(l){m("Resource data error ("+a+"): "+l.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){m("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.L=e)}return d}
|
||||
function na(){return"http://"+(window?window.location.host:"www.pcjs.org")}function m(a){window&&window.alert(a)}function va(a){var b=!1;window&&(b=window.confirm(a));return b}var wa=null;function xa(){if(null==wa){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}wa=a}return wa}
|
||||
function ya(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function za(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Aa(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 p={init:[],show:[],exit:[]},Ba=!1,Ca=!1,Da=!0;
|
||||
function Ea(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function q(a){p.init.push(a)}function Fa(a){if(Da)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){m(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Ga(a){!Da&&a?(Da=!0,Ba&&Ha("init"),Ca&&Ha("show")):Da=a}function Ha(a){p[a]&&Fa(p[a])}Ea("onload",function(){Ba=!0;Fa(p.init)});Ea("onpageshow",function(){Ca=!0;Fa(p.show)});
|
||||
Ea(Aa("Opera")||Aa("iOS")?"onunload":"onbeforeunload",function(){Fa(p.exit)});function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.pb=b.comment;this.Hb=b;b=this.id.indexOf(".");0>b?this.Ia=this.id:(this.ra=this.id.substr(0,b),this.Ia=this.id.substr(b+1));this[a]=c;this.i={ready:!1,Wa:!1,gd:!1,M:!1,error:!1};this.Sa=null;this.i.error=!1;this.s={};this.F=null;v.push(this)}var Ia=void 0,Ja={};
|
||||
Ea(Aa("Opera")||Aa("iOS")?"onunload":"onbeforeunload",function(){Fa(p.exit)});function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.pb=b.comment;this.Hb=b;b=this.id.indexOf(".");0>b?this.Ka=this.id:(this.ra=this.id.substr(0,b),this.Ka=this.id.substr(b+1));this[a]=c;this.i={ready:!1,Ya:!1,gd:!1,M:!1,error:!1};this.Ua=null;this.i.error=!1;this.s={};this.F=null;v.push(this)}var Ia=void 0,Ja={};
|
||||
if(window){Ia||(Ia=window.location.search.substr(1));for(var Ka,La=/\+/g,Ma=/([^&=]+)=?([^&]*)/g;Ka=Ma.exec(Ia);)Ja[decodeURIComponent(Ka[1].replace(La," "))]=decodeURIComponent(Ka[2].replace(La," "))}function Na(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
||||
function w(a,b){b||(b=u);a.prototype=Na(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Oa=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Oa={},v=[];function Pa(a,b,c){Oa[a]&&b&&(Oa[a][b]=c)}function x(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 Qa(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 Ra(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){m(c.message+" ("+a+")")}return b}
|
||||
function z(a,b){b=A(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=y(f))&&h.binding&&a.V(h.type,h.binding,f,h.value),n=l.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}
|
||||
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},V:function(a,b,c){switch(b){case "clear":return this.s[b]||(this.s[b]=c,c.onclick=function(a){return function(){a.s.print&&(a.s.print.value="")}}(this)),!0;case "print":return this.s[b]||(this.Xa=this.s[b]=c,c.value="",this.P=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.I=function(a){this.P(a,this.Ia)}),!0;default:return!1}},log:function(){},P:function(){},status:function(a){this.P(this.Ia+": "+a)},I:function(a,b,c){c=c||this.type;b||m((c?c+": ":"")+a)},$:function(){return this.i.M=!0},Z:function(a,b){b&&(this.i.M=!1);return!0}};function B(a){if(!a.i.error&&(a.i.ready=!0,a.i.ready)){var b=a.Sa;a.Sa=null;b&&b()}}function Sa(a,b){b&&(a.i.ready?b():a.Sa=b);return a.i.ready}
|
||||
function Qa(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 Ra(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){m(c.message+" ("+a+")")}return b}
|
||||
function A(a,b){b=B(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,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=z(f))&&h.binding&&a.V(h.type,h.binding,f,h.value),n=l.length}}}}
|
||||
function B(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}
|
||||
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},V:function(a,b,c){switch(b){case "clear":return this.s[b]||(this.s[b]=c,c.onclick=function(a){return function(){a.s.print&&(a.s.print.value="")}}(this)),!0;case "print":return this.s[b]||(this.Za=this.s[b]=c,c.value="",this.P=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.P(a,this.Ka)}),!0;default:return!1}},log:function(){},P:function(){},status:function(a){this.P(this.Ka+": "+a)},K:function(a,b,c){c=c||this.type;b||m((c?c+": ":"")+a)},$:function(){return this.i.M=!0},Z:function(a,b){b&&(this.i.M=!1);return!0}};function C(a){if(!a.i.error&&(a.i.ready=!0,a.i.ready)){var b=a.Ua;a.Ua=null;b&&b()}}function Sa(a,b){b&&(a.i.ready?b():a.Ua=b);return a.i.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 Ta="undefined"!==typeof ArrayBuffer;function Ua(a){u.call(this,"Panel",a,Ua);this.b=0;this.i.kb=!0}w(Ua);g=Ua.prototype;
|
||||
g.V=function(a,b,c,d){if(this.v&&this.v.V(a,b,c,d)||this.a&&this.a.V(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.s[b]=c,this.b++,!0;default:return"rled"==a?(this.s[b]=c,this.b++,!0):this.parent.V.call(this,a,b,c,d)}};g.ea=function(a,b,c,d){this.v=a;this.m=b;this.a=c;this.F=d};g.$=function(a,b){b||Va();return!0};g.Z=function(){return!0};
|
||||
function Wa(a,b,c,d){if(a.s[b]){void 0===c&&(a.i.error=!0,a.I("Value for "+b+" is invalid"),Xa(a.a));var e=a.F&&a.F.b||8;c=!a.a.i.U||a.i.kb?8==e?ia(c,d):ja(c,d):"--------".substr(0,d||4);a.s[b].textContent!=c&&(a.s[b].textContent=c)}}function Ya(a,b,c,d){for(var e=0;e<d;e++){var f=a.s[b+e];f&&(f.style.backgroundColor=c&1<<e?"#ff0000":"#000000")}}
|
||||
g.fa=function(a){if(this.b&&(a||!this.a.i.U||this.i.kb)){for(a=0;a<this.a.f.length;a++)Wa(this,"R"+a,this.a.f[a]);a=Za(this.a);Wa(this,"PS",a);Wa(this,"NF",a&8?1:0,1);Wa(this,"ZF",a&4?1:0,1);Wa(this,"VF",a&2?1:0,1);Wa(this,"CF",a&1?1:0,1);Ya(this,"D",this.a.f[0],16);Ya(this,"A",this.a.f[7],22)}};function Va(){for(var a=!1,b=A(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=y(d),f=Qa(e.id);f||(a=!0,f=new Ua(e));z(f,d);a&&B(f)}}q(Va);
|
||||
function $a(a,b,c){u.call(this,"Bus",a,$a);this.a=b;this.F=c;this.H=a.busWidth||16;this.j=0;this.C=[];this.u=null;this.A=Math.pow(2,this.H);this.h=this.A-1|0;this.c=C;this.m=Math.log2(this.c);this.B=this.c>>2;this.g=this.c-1;this.v=this.A/this.c|0;this.ka=[];this.T=0;this.o=[];this.Bb=[ab,bb,cb,db];a=new E(this);eb(a,this.F);this.b=Array(this.v);for(b=0;b<this.v;b++)this.b[b]=a;B(this)}w($a);var C=8192,fb=C-1;
|
||||
function ab(a,b){var c=-1,d=this.controller,e=d.ka[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.ka[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);return 0<=c?c:c=gb(d,b)}function bb(a,b,c){var d=!1,e=this.controller,f=e.ka[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.ka[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d||gb(e,c)}
|
||||
function cb(a,b){var c=-1,d=this.controller;(a=d.ka[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));return 0<=c?c:c=gb(d,b)}function db(a,b,c){var d=!1,e=this.controller;if(a=e.ka[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||gb(e,c)}function hb(a,b){if(b!=a.j){var c;a.j&&(c=(1<<a.j)-C,ib(a,c,C,a.C),a.j=0);b&&(a.j=b,c=(1<<b)-C,a.C=jb(a,c,C),a.u?ib(a,c,C,a.u):(kb(a,c,C,lb,a),a.u=jb(a,c,C)))}}
|
||||
$a.prototype.reset=function(){for(var a=0;a<this.o.length;a++)this.o[a]();hb(this,16)};function gb(a,b){a.T||F(a.a,4,b);return 0}$a.prototype.$=function(a,b){b||this.reset();return!0};
|
||||
function kb(a,b,c,d,e){for(var f=b,h=c,l=f>>>a.m;0<h&&l<a.b.length;){var n=a.b[l],r=l*a.c,t=a.c-(f-r);t>h&&(t=h);if(!e&&n&&n.size){if(n.type==d){if(f+h<=n.Ca)return n.Ua+=n.Ca-f,n.Ca=f,!0;if(f>=n.Ca+n.Ua){t=n.size-(f-r);t>h&&(t=h);n.Ua=f-n.Ca+t;f=r+a.c;h-=t;l++;continue}}return mb(1,f,h)}f=new E(a,f,t,a.c,d,e);eb(f,a.F,n);a.b[l++]=f;f=r+a.c;h-=t}if(0>=h){c/=1024;var D;e="";D?10<D&&(D=10):D=c&-65536?10:5;if(null==c||isNaN(c))for(;0<D--;)e="?"+e;else for(;0<D--;)e=String.fromCharCode(c%10+48)+e,c/=
|
||||
10;a.status(e+"Kb "+nb[d]+" at "+ia(b));return!0}return mb(2,b,c)}function jb(a,b,c){var d=[];for(b>>>=a.m;0<c&&b<a.b.length;)d.push(a.b[b++]),c-=a.c;return d}function ib(a,b,c,d){var e=0;for(b>>>=a.m;0<c&&b<a.b.length;){var f=d[e++];if(!f)break;a.b[b++]=f;c-=a.c}}function ob(a,b){return a.b[(b&a.h)>>>a.m].eb(b&a.g,b)}function pb(a,b){return a.b[(b&a.h)>>>a.m].R(b&a.g,b)}$a.prototype.Ga=function(a,b){this.T++;this.b[(a&this.h)>>>this.m].yb(a&this.g,b&255,a);this.T--};
|
||||
function qb(a,b,c){a.b[(b&a.h)>>>a.m].Va(b&a.g,c&65535,b)}function rb(a){for(var b=0,c=[],d=0;d<a.v;d++){var e=a.b[d];if(e.la||e.Db){c[b++]=d;var f=b++;if(e=e.save()){for(var h=0,l=0,n=[];h<e.length;){for(var r=e[h],t=h+1;t<e.length&&e[t]===r;)t++;n[l++]=t-h;n[l++]=r;h=t}n.length<e.length&&(e=n)}c[f]=e}}return c}function sb(a,b,c,d,e,f,h,l){for(;b<=c;b+=2){var n=b&fb;void 0!==a.ka[n]?m("I/O address already registered: "+ja(b,8,!0)):a.ka[n]=[d,e,f,h,l||"unknown",!1]}}
|
||||
function tb(a,b,c){for(var d in c){var e=+d,f=c[d];if(!(f[5]&&f[5]>a.a.Ha)){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,r=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&&r&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(r)));sb(a,e,e,h,l,n,r,f[4])}}}function ub(a,b){a.o.push(b)}function vb(a,b){a.T||F(a.a,4,b)}
|
||||
function mb(a,b,c){m("Memory block error ("+a+": "+ja(b)+","+ja(c)+")");return!1}function G(a){u.call(this,"Device",a,G);this.c={data:0,fd:0,Ta:20,uc:0};this.b={hd:0,ib:-1}}w(G);g=G.prototype;g.ea=function(a,b,c,d){this.m=b;this.a=c;this.F=d;var e=this;this.b.ib=wb(c,function(){e.b.na|=128;e.b.na&64&&(xb(e.a,e.b.vc),yb(e.a,e.b.ib,1E3/60))});this.b.vc=zb(64,6);tb(b,this,H);ub(b,this.reset.bind(this));B(this)};g.reset=function(){this.c.Ta=this.c.Ta&-120|20;this.b.na=0};
|
||||
g.Qb=function(){var a=this.b.na;this.b.na&=-129;return a};g.Ec=function(a){this.b.na=a;a&64&&yb(this.a,this.b.ib,1E3/60);this.b.na=a&-129};g.Jb=function(a){return(a?this.c.uc:this.c.data)&65535};g.xc=function(a){this.c.data=a};g.Sb=function(){var a=this.a;return a.A&62337|a.Ja<<5|a.Ka<<1};g.Gc=function(a){var b=this.a;a&=62337;if(b.A!=a){b.A=a;b.Ja=a>>5&3;b.Ka=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ea!=c&&(b.Ea=c,Ab(b))}Bb(this)};
|
||||
g.Tb=function(){var a=this.a.oa;a&65280&&(a=(a<<8|a>>8)&65535);return a};g.Ub=function(){return this.a.gb};g.Vb=function(){return this.a.pa};g.Hc=function(a){var b=this.a;1170>b.Ha&&(a&=-49);b.pa!=a&&(b.pa=a,a&16?(b.$a=4194303,b.La=3915776):(b.$a=262143,b.La=253952),Ab(b));Bb(this)};function Bb(a){a.c.Ta=a.c.Ta&-8|(a.a.Ea?a.a.pa&16?1:2:4)}g.ic=function(a){return this.a.D[1][a>>1&7]};g.Vc=function(a,b){this.a.D[1][b>>1&7]=a&65295};g.gc=function(a){return this.a.D[1][(a>>1&7)+8]};
|
||||
g.V=function(a,b,c,d){if(this.w&&this.w.V(a,b,c,d)||this.a&&this.a.V(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.s[b]=c,this.b++,!0;default:return"rled"==a?(this.s[b]=c,this.b++,!0):this.parent.V.call(this,a,b,c,d)}};g.fa=function(a,b,c,d){this.w=a;this.m=b;this.a=c;this.F=d};g.$=function(a,b){b||Va();return!0};g.Z=function(){return!0};
|
||||
function Wa(a,b,c,d){if(a.s[b]){void 0===c&&(a.i.error=!0,a.K("Value for "+b+" is invalid"),D(a.a));var e=a.F&&a.F.b||8;c=!a.a.i.U||a.i.kb?8==e?ia(c,d):ja(c,d):"--------".substr(0,d||4);a.s[b].textContent!=c&&(a.s[b].textContent=c)}}function Xa(a,b,c,d){for(var e=0;e<d;e++){var f=a.s[b+e];f&&(f.style.backgroundColor=c&1<<e?"#ff0000":"#000000")}}
|
||||
g.ba=function(a){if(this.b&&(a||!this.a.i.U||this.i.kb)){for(a=0;a<this.a.f.length;a++)Wa(this,"R"+a,this.a.f[a]);a=Ya(this.a);Wa(this,"PS",a);Wa(this,"NF",a&8?1:0,1);Wa(this,"ZF",a&4?1:0,1);Wa(this,"VF",a&2?1:0,1);Wa(this,"CF",a&1?1:0,1);Xa(this,"D",this.a.f[0],16);Xa(this,"A",this.a.f[7],22)}};function Va(){for(var a=!1,b=B(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=z(d),f=Qa(e.id);f||(a=!0,f=new Ua(e));A(f,d);a&&C(f)}}q(Va);
|
||||
function Za(a,b,c){u.call(this,"Bus",a,Za);this.a=b;this.F=c;this.G=a.busWidth||16;this.j=0;this.C=[];this.u=null;this.A=Math.pow(2,this.G);this.h=this.A-1|0;this.c=E;this.m=Math.log2(this.c);this.B=this.c>>2;this.g=this.c-1;this.w=this.A/this.c|0;this.ka=[];this.T=0;this.o=[];this.Bb=[$a,ab,bb,cb];a=new F(this);db(a,this.F);this.b=Array(this.w);for(b=0;b<this.w;b++)this.b[b]=a;C(this)}w(Za);var E=8192,eb=E-1;
|
||||
function $a(a,b){var c=-1,d=this.controller,e=d.ka[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.ka[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);return 0<=c?c:c=fb(d,b)}function ab(a,b,c){var d=!1,e=this.controller,f=e.ka[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.ka[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d||fb(e,c)}
|
||||
function bb(a,b){var c=-1,d=this.controller;(a=d.ka[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));return 0<=c?c:c=fb(d,b)}function cb(a,b,c){var d=!1,e=this.controller;if(a=e.ka[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||fb(e,c)}function gb(a,b){if(b!=a.j){var c;a.j&&(c=(1<<a.j)-E,hb(a,c,E,a.C),a.j=0);b&&(a.j=b,c=(1<<b)-E,a.C=ib(a,c,E),a.u?hb(a,c,E,a.u):(jb(a,c,E,kb,a),a.u=ib(a,c,E)))}}
|
||||
Za.prototype.reset=function(){for(var a=0;a<this.o.length;a++)this.o[a]();gb(this,16)};function fb(a,b){a.T||G(a.a,4,b);return 0}Za.prototype.$=function(a,b){b||this.reset();return!0};
|
||||
function jb(a,b,c,d,e){for(var f=b,h=c,l=f>>>a.m;0<h&&l<a.b.length;){var n=a.b[l],r=l*a.c,t=a.c-(f-r);t>h&&(t=h);if(!e&&n&&n.size){if(n.type==d){if(f+h<=n.Ea)return n.Wa+=n.Ea-f,n.Ea=f,!0;if(f>=n.Ea+n.Wa){t=n.size-(f-r);t>h&&(t=h);n.Wa=f-n.Ea+t;f=r+a.c;h-=t;l++;continue}}return lb(1,f,h)}f=new F(a,f,t,a.c,d,e);db(f,a.F,n);a.b[l++]=f;f=r+a.c;h-=t}if(0>=h){c/=1024;var y;e="";y?10<y&&(y=10):y=c&-65536?10:5;if(null==c||isNaN(c))for(;0<y--;)e="?"+e;else for(;0<y--;)e=String.fromCharCode(c%10+48)+e,c/=
|
||||
10;a.status(e+"Kb "+mb[d]+" at "+ia(b));return!0}return lb(2,b,c)}function ib(a,b,c){var d=[];for(b>>>=a.m;0<c&&b<a.b.length;)d.push(a.b[b++]),c-=a.c;return d}function hb(a,b,c,d){var e=0;for(b>>>=a.m;0<c&&b<a.b.length;){var f=d[e++];if(!f)break;a.b[b++]=f;c-=a.c}}function nb(a,b){return a.b[(b&a.h)>>>a.m].eb(b&a.g,b)}function ob(a,b){return a.b[(b&a.h)>>>a.m].R(b&a.g,b)}Za.prototype.Ia=function(a,b){this.T++;this.b[(a&this.h)>>>this.m].yb(a&this.g,b&255,a);this.T--};
|
||||
function pb(a,b,c){a.b[(b&a.h)>>>a.m].Xa(b&a.g,c&65535,b)}function qb(a){for(var b=0,c=[],d=0;d<a.w;d++){var e=a.b[d];if(e.la||e.Db){c[b++]=d;var f=b++;if(e=e.save()){for(var h=0,l=0,n=[];h<e.length;){for(var r=e[h],t=h+1;t<e.length&&e[t]===r;)t++;n[l++]=t-h;n[l++]=r;h=t}n.length<e.length&&(e=n)}c[f]=e}}return c}function rb(a,b,c,d,e,f,h,l){for(;b<=c;b+=2){var n=b&eb;void 0!==a.ka[n]?m("I/O address already registered: "+ja(b,8,!0)):a.ka[n]=[d,e,f,h,l||"unknown",!1]}}
|
||||
function sb(a,b,c){for(var d in c){var e=+d,f=c[d];if(!(f[5]&&f[5]>a.a.Ja)){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,r=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&&r&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(r)));rb(a,e,e,h,l,n,r,f[4])}}}function tb(a,b){a.o.push(b)}function ub(a,b){a.T||G(a.a,4,b)}
|
||||
function lb(a,b,c){m("Memory block error ("+a+": "+ja(b)+","+ja(c)+")");return!1}function H(a){u.call(this,"Device",a,H);this.c={data:0,fd:0,Va:20,uc:0};this.b={hd:0,ib:-1}}w(H);g=H.prototype;g.fa=function(a,b,c,d){this.m=b;this.a=c;this.F=d;var e=this;this.b.ib=vb(c,function(){e.b.na|=128;e.b.na&64&&(wb(e.a,e.b.vc),xb(e.a,e.b.ib,1E3/60))});this.b.vc=yb(64,6);sb(b,this,I);tb(b,this.reset.bind(this));C(this)};g.reset=function(){this.c.Va=this.c.Va&-120|20;this.b.na=0};
|
||||
g.Qb=function(){var a=this.b.na;this.b.na&=-129;return a};g.Ec=function(a){this.b.na=a;a&64&&xb(this.a,this.b.ib,1E3/60);this.b.na=a&-129};g.Jb=function(a){return(a?this.c.uc:this.c.data)&65535};g.xc=function(a){this.c.data=a};g.Sb=function(){var a=this.a;return a.A&62337|a.La<<5|a.Ma<<1};g.Gc=function(a){var b=this.a;a&=62337;if(b.A!=a){b.A=a;b.La=a>>5&3;b.Ma=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ga!=c&&(b.Ga=c,zb(b))}Ab(this)};
|
||||
g.Tb=function(){var a=this.a.oa;a&65280&&(a=(a<<8|a>>8)&65535);return a};g.Ub=function(){return this.a.gb};g.Vb=function(){return this.a.pa};g.Hc=function(a){var b=this.a;1170>b.Ja&&(a&=-49);b.pa!=a&&(b.pa=a,a&16?(b.bb=4194303,b.Na=3915776):(b.bb=262143,b.Na=253952),zb(b));Ab(this)};function Ab(a){a.c.Va=a.c.Va&-8|(a.a.Ga?a.a.pa&16?1:2:4)}g.ic=function(a){return this.a.D[1][a>>1&7]};g.Vc=function(a,b){this.a.D[1][b>>1&7]=a&65295};g.gc=function(a){return this.a.D[1][(a>>1&7)+8]};
|
||||
g.Tc=function(a,b){this.a.D[1][(b>>1&7)+8]=a&65295};g.hc=function(a){return this.a.S[1][a>>1&7]};g.Uc=function(a,b){b=b>>1&7;this.a.S[1][b]=a;this.a.D[1][b]&=65295};g.fc=function(a){return this.a.S[1][(a>>1&7)+8]};g.Sc=function(a,b){b=(b>>1&7)+8;this.a.S[1][b]=a;this.a.D[1][b]&=65295};g.Pb=function(a){return this.a.D[0][a>>1&7]};g.Dc=function(a,b){this.a.D[0][b>>1&7]=a&65295};g.Nb=function(a){return this.a.D[0][(a>>1&7)+8]};g.Bc=function(a,b){this.a.D[0][(b>>1&7)+8]=a&65295};
|
||||
g.Ob=function(a){return this.a.S[0][a>>1&7]};g.Cc=function(a,b){b=b>>1&7;this.a.S[0][b]=a;this.a.D[0][b]&=65295};g.Mb=function(a){return this.a.S[0][(a>>1&7)+8]};g.Ac=function(a,b){b=(b>>1&7)+8;this.a.S[0][b]=a;this.a.D[0][b]&=65295};g.oc=function(a){return this.a.D[3][a>>1&7]};g.ad=function(a,b){this.a.D[3][b>>1&7]=a&65295};g.mc=function(a){return this.a.D[3][(a>>1&7)+8]};g.Zc=function(a,b){this.a.D[3][(b>>1&7)+8]=a&65295};g.nc=function(a){return this.a.S[3][a>>1&7]};
|
||||
g.$c=function(a,b){b=b>>1&7;this.a.S[3][b]=a;this.a.D[3][b]&=65295};g.lc=function(a){return this.a.S[3][(a>>1&7)+8]};g.Yc=function(a,b){b=(b>>1&7)+8;this.a.S[3][b]=a;this.a.D[3][b]&=65295};g.wa=function(a){a&=7;return this.a.w&2048?this.a.ua[a]:this.a.f[a]};g.ya=function(a,b){b&=7;this.a.w&2048?this.a.ua[b]=a:this.a.f[b]=a};g.$b=function(){return this.a.w&49152?this.a.aa[0]:this.a.f[6]};g.Mc=function(a){this.a.w&49152?this.a.aa[0]=a:this.a.f[6]=a};g.cc=function(){return this.a.f[7]};
|
||||
g.Pc=function(a){this.a.f[7]=a};g.xa=function(a){a&=7;return this.a.w&2048?this.a.f[a]:this.a.ua[a]};g.za=function(a,b){b&=7;this.a.w&2048?this.a.f[b]=a:this.a.ua[b]=a};g.ac=function(){return 1==(this.a.w&49152)>>14?this.a.f[6]:this.a.aa[1]};g.Nc=function(a){1==(this.a.w&49152)>>14?this.a.f[6]=a:this.a.aa[1]=a};g.bc=function(){return 3==(this.a.w&49152)>>14?this.a.f[6]:this.a.aa[3]};g.Oc=function(a){3==(this.a.w&49152)>>14?this.a.f[6]=a:this.a.aa[3]=a};g.Lb=function(a){return this.a.vb[a-65504>>1]};
|
||||
g.zc=function(a,b){this.a.vb[b-65504>>1]=a};g.tb=function(a){return 65520==a?61183:0};g.Ab=function(){};g.kc=function(){return 1};g.Xc=function(){};g.Kb=function(){return this.a.G};g.yc=function(){this.a.G=0};g.Rb=function(){return this.a.ub};g.Fc=function(a,b){b&1||(a&=255);this.a.ub=a};g.Wb=function(a){return a?this.a.hb:0};g.Ic=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.hb=a;b.l|=2};g.jc=function(a){return a?this.a.qa&65280:0};g.Wc=function(a){this.a.qa=a|255};
|
||||
g.Zb=function(){return Za(this.a)};g.Lc=function(a){Cb(this.a,a&-1809|Za(this.a)&1808);this.a.l|=128};g.zb=function(){};
|
||||
var I={},H=(I[62592]=[null,null,G.prototype.ic,G.prototype.Vc,"SISDR",1145],I[62608]=[null,null,G.prototype.gc,G.prototype.Tc,"SDSDR",1145],I[62624]=[null,null,G.prototype.hc,G.prototype.Uc,"SISAR",1145],I[62640]=[null,null,G.prototype.fc,G.prototype.Sc,"SDSAR",1145],I[62656]=[null,null,G.prototype.Pb,G.prototype.Dc,"KISDR",1145],I[62672]=[null,null,G.prototype.Nb,G.prototype.Bc,"KDSDR",1145],I[62688]=[null,null,G.prototype.Ob,G.prototype.Cc,"KISAR",1145],I[62704]=[null,null,G.prototype.Mb,G.prototype.Ac,
|
||||
"KDSAR",1145],I[62798]=[null,null,G.prototype.Vb,G.prototype.Hc,"MMR3",1145],I[65382]=[null,null,G.prototype.Qb,G.prototype.Ec,"LKS"],I[65400]=[null,null,G.prototype.Jb,G.prototype.xc,"CNSL"],I[65402]=[null,null,G.prototype.Sb,G.prototype.Gc,"MMR0",1145],I[65404]=[null,null,G.prototype.Tb,G.prototype.zb,"MMR1",1145],I[65406]=[null,null,G.prototype.Ub,G.prototype.zb,"MMR2",1145],I[65408]=[null,null,G.prototype.oc,G.prototype.ad,"UISDR",1145],I[65424]=[null,null,G.prototype.mc,G.prototype.Zc,"UDSDR",
|
||||
1145],I[65440]=[null,null,G.prototype.nc,G.prototype.$c,"UISAR",1145],I[65456]=[null,null,G.prototype.lc,G.prototype.Yc,"UDSAR",1145],I[65472]=[null,null,G.prototype.wa,G.prototype.ya,"R0SET0"],I[65473]=[null,null,G.prototype.wa,G.prototype.ya,"R1SET0"],I[65474]=[null,null,G.prototype.wa,G.prototype.ya,"R2SET0"],I[65475]=[null,null,G.prototype.wa,G.prototype.ya,"R3SET0"],I[65476]=[null,null,G.prototype.wa,G.prototype.ya,"R4SET0"],I[65477]=[null,null,G.prototype.wa,G.prototype.ya,"R5SET0"],I[65478]=
|
||||
[null,null,G.prototype.$b,G.prototype.Mc,"R6KERNEL"],I[65479]=[null,null,G.prototype.cc,G.prototype.Pc,"R7KERNEL"],I[65480]=[null,null,G.prototype.xa,G.prototype.za,"R0SET1",1145],I[65481]=[null,null,G.prototype.xa,G.prototype.za,"R1SET1",1145],I[65482]=[null,null,G.prototype.xa,G.prototype.za,"R2SET1",1145],I[65483]=[null,null,G.prototype.xa,G.prototype.za,"R3SET1",1145],I[65484]=[null,null,G.prototype.xa,G.prototype.za,"R4SET1",1145],I[65485]=[null,null,G.prototype.xa,G.prototype.za,"R5SET1",1145],
|
||||
I[65486]=[null,null,G.prototype.ac,G.prototype.Nc,"R6SUPER",1145],I[65487]=[null,null,G.prototype.bc,G.prototype.Oc,"R6USER",1145],I[65504]=[null,null,G.prototype.Lb,G.prototype.zc,"CTRL",1170],I[65520]=[null,null,G.prototype.tb,G.prototype.Ab,"LSIZE",1170],I[65522]=[null,null,G.prototype.tb,G.prototype.Ab,"HSIZE",1170],I[65524]=[null,null,G.prototype.kc,G.prototype.Xc,"SYSID",1170],I[65526]=[null,null,G.prototype.Kb,G.prototype.yc,"CPUERR",1170],I[65528]=[null,null,G.prototype.Rb,G.prototype.Fc,
|
||||
"MB",1170],I[65530]=[null,null,G.prototype.Wb,G.prototype.Ic,"PIR"],I[65532]=[null,null,G.prototype.jc,G.prototype.Wc,"SL"],I[65534]=[null,null,G.prototype.Zb,G.prototype.Lc,"PSW"],I);H[62594]=H[62592];H[62596]=H[62592];H[62598]=H[62592];H[62600]=H[62592];H[62602]=H[62592];H[62604]=H[62592];H[62606]=H[62592];H[62610]=H[62608];H[62612]=H[62608];H[62614]=H[62608];H[62616]=H[62608];H[62618]=H[62608];H[62620]=H[62608];H[62622]=H[62608];H[62626]=H[62624];H[62628]=H[62624];H[62630]=H[62624];H[62632]=H[62624];
|
||||
H[62634]=H[62624];H[62636]=H[62624];H[62638]=H[62624];H[62642]=H[62640];H[62644]=H[62640];H[62646]=H[62640];H[62648]=H[62640];H[62650]=H[62640];H[62652]=H[62640];H[62654]=H[62640];H[62658]=H[62656];H[62660]=H[62656];H[62662]=H[62656];H[62664]=H[62656];H[62666]=H[62656];H[62668]=H[62656];H[62670]=H[62656];H[62674]=H[62672];H[62676]=H[62672];H[62678]=H[62672];H[62680]=H[62672];H[62682]=H[62672];H[62684]=H[62672];H[62686]=H[62672];H[62690]=H[62688];H[62692]=H[62688];H[62694]=H[62688];H[62696]=H[62688];
|
||||
H[62698]=H[62688];H[62700]=H[62688];H[62702]=H[62688];H[62706]=H[62704];H[62708]=H[62704];H[62710]=H[62704];H[62712]=H[62704];H[62714]=H[62704];H[62716]=H[62704];H[62718]=H[62704];H[65410]=H[65408];H[65412]=H[65408];H[65414]=H[65408];H[65416]=H[65408];H[65418]=H[65408];H[65420]=H[65408];H[65422]=H[65408];H[65426]=H[65424];H[65428]=H[65424];H[65430]=H[65424];H[65432]=H[65424];H[65434]=H[65424];H[65436]=H[65424];H[65438]=H[65424];H[65442]=H[65440];H[65444]=H[65440];H[65446]=H[65440];H[65448]=H[65440];
|
||||
H[65450]=H[65440];H[65452]=H[65440];H[65454]=H[65440];H[65458]=H[65456];H[65460]=H[65456];H[65462]=H[65456];H[65464]=H[65456];H[65466]=H[65456];H[65468]=H[65456];H[65470]=H[65456];H[65506]=H[65504];H[65508]=H[65504];H[65510]=H[65504];H[65512]=H[65504];H[65514]=H[65504];H[65516]=H[65504];H[65518]=H[65504];q(function(){for(var a=A(document,"pdp11","device"),b=0;b<a.length;b++){var c,d=a[b];c=y(d);switch(c.type){case "default":c=new G(c);z(c,d);break;case "pc11":c=new J(c),z(c,d)}}});var Db;
|
||||
if(Ta){var Eb=new ArrayBuffer(2);(new DataView(Eb)).setUint16(0,256,!0);Db=256===(new Uint16Array(Eb))[0]}else Db=!1;var Fb=Db;
|
||||
function E(a,b,c,d,e,f){this.m=a;this.id=Gb+=2;this.a=null;this.Ca=b;this.Ua=c;this.size=d||0;this.type=e||Hb;this.g=e==Ib;this.controller=null;eb(this);this.la=this.Db=!1;if(d)if(f)this.controller=f,this.a=null,Jb(this,f.Bb);else if(Ta)this.b=new ArrayBuffer(d),this.s=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),Jb(this,Fb?Kb:Lb);else{this.a=Array(d>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;Jb(this,Mb)}else Jb(this)}
|
||||
var Hb=0,Ib=2,lb=4,nb=["NONE","RAM","ROM","VID","H/W"],Gb=0;
|
||||
E.prototype={constructor:E,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Ta)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.s.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(Ta)for(b=0;b<a.length;b++)this.s.setInt32(b<<2,a[b],!0);else this.a=a;return this.la=!0}return!1},v:function(){return 255},A:function(){},u:function(a,b){return this.eb(a++,b++)|this.eb(a,b)<<8},B:function(a,b,c){this.jb(a++,
|
||||
b&255,c++);this.jb(a,b>>8,c)},N:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ba:function(a,b){a&1&&vb(this.m,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},ha:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.la=!0},ta:function(a,b,c){a&1&&vb(this.m,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.la=!0},H:function(a,b){return this.J(a,b)},
|
||||
T:function(a,b){return this.W(a,b)},da:function(a,b,c){this.g||this.yb(a,b,c)},ja:function(a,b,c){this.g||this.ra(a,b,c)},C:function(a){return this.c[a]},K:function(a){return this.c[a]},O:function(a,b){a&1&&vb(this.m,b);return this.s.getUint16(a,!0)},X:function(a,b){a&1&&vb(this.m,b);return this.o[a>>1]},ca:function(a,b){this.c[a]=b;this.la=!0},ga:function(a,b){this.c[a]=b;this.la=!0},ia:function(a,b,c){a&1&&vb(this.m,c);this.s.setUint16(a,b,!0);this.la=!0},sa:function(a,b,c){a&1&&vb(this.m,c);this.o[a>>
|
||||
1]=b;this.la=!0}};function eb(a,b,c){a.F=b;a.h=a.j=0;c&&((a.h=c.h)&&Nb(a,Ob,!1),(a.j=c.j)&&Pb(a,Ob,!1))}function Pb(a,b,c){c&&a.j||(a.jb=!a.g&&b[1]||a.A,a.Va=!a.g&&b[3]||a.B);if(c||void 0===c)a.yb=b[1]||a.A,a.ra=b[3]||a.B}function Nb(a,b,c){c&&a.h||(a.eb=b[0]||a.v,a.R=b[2]||a.u);if(c||void 0===c)a.J=b[0]||a.v,a.W=b[2]||a.u}function Jb(a,b){b||(b=Qb);Nb(a,b,void 0);Pb(a,b,void 0)}
|
||||
var Qb=[],Mb=[E.prototype.N,E.prototype.ha,E.prototype.ba,E.prototype.ta],Ob=[E.prototype.H,E.prototype.da,E.prototype.T,E.prototype.ja];if(Ta)var Lb=[E.prototype.C,E.prototype.ca,E.prototype.O,E.prototype.ia],Kb=[E.prototype.K,E.prototype.ga,E.prototype.X,E.prototype.sa];
|
||||
function Rb(a,b){u.call(this,"CPU",a,Rb);var c=a.multiplier||1;this.Qa=a.cycles||b;this.da=c;this.Za=Math.round(this.Qa/1E4)/100;this.ga=this.Za*this.da;this.i.U=!1;this.i.wb=!1;this.i.Da=a.autoStart;this.i.Pa=!1;this.Na=this.ia=0;this.Oa=a.csStart;this.sa=a.csInterval;this.ta=a.csStop;this.H=[];this.sb=this.tc.bind(this);B(this)}w(Rb);var Sb=["power","reset"];g=Rb.prototype;
|
||||
g.ea=function(a,b,c,d){this.v=a;this.m=b;this.F=d;for(b=0;b<Sb.length;b++)(c=this.s[Sb[b]])&&this.v.V(null,Sb[b],c);a=Tb(a,"autoStart");null!=a&&(this.i.Da="true"==a?!0:"false"==a?!1:!!a);B(this)};g.reset=function(){};g.save=function(){return null};g.restore=function(){return!1};g.$=function(a,b){if(!b){if(a&&this.restore){Ub(this);if(!this.restore(a))return!1;Vb(this)}else this.reset();this.P("No debugger detected")}this.v.fa();return!0};g.Z=function(a){return a?this.save():!0};
|
||||
g.Da=function(){return this.i.Da||void 0===this.s.run?(Wb(this),!0):!1};g.mb=function(){return 0};function Vb(a){void 0===a.Oa&&(a.Oa=0);void 0===a.sa&&(a.sa=-1);void 0===a.ta&&(a.ta=-1);a.i.Pa=0<=a.Oa&&0<a.sa;a.i.Pa&&(a.Na=0,a.ia=a.Oa-a.K)}
|
||||
g.V=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.s[b]=c,!0;case "run":return this.s[b]=c,c.onclick=function(){var a;if(a=d.v)if(a=d.v,a.i.M)a=!0;else{var b=null,c,l=x(a.id);for(c=0;c<l.length&&(b=l[c],b===a||b.i.ready);c++);if(c==l.length)for(c=0;c<l.length&&(b=l[c],b===a||b.i.M);c++);c==l.length&&(b=a);m("The "+b.type+" component ("+b.id+") is not "+(b.i.ready?"powered yet":"ready yet"+(b.Sa?" (waiting for notification)":""))+".");a=!1}a&&(d.i.U?Xa(d):Wb(d))},!0;case "speed":return this.s[b]=
|
||||
c,!0;case "setSpeed":return this.s[b]=c,c.onclick=function(){Xb(d,d.da<<1)},c.textContent=this.ga.toFixed(2)+"Mhz",!0}return!1};g.fa=function(){var a=this.s.speed;a&&(a.textContent=this.i.U&&this.ba?this.ba.toFixed(2)+"Mhz":"Stopped")};function Yb(a,b){var c=1;b&&1<a.da&&a.ba&&(c=a.ba/a.Za);a.qb=Math.round(1E3/30);a.Ra=Math.floor(a.Qa/30*c);b||(a.Aa=a.Ra);a.ab=0}function Zb(a){return a.K+a.W+a.ha-a.a}function Ub(a){a.ba=0;a.rb=0;a.K=a.W=a.ha=a.a=0;Vb(a);Xb(a,1)}
|
||||
function Xb(a,b){if(void 0!==b&&(.8>a.ba/a.ga&&(b=1),a.da=b,b=a.Za*a.da,a.ga!=b)){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var c=a.s.setSpeed;c&&(c.textContent=b);a.P("target speed: "+b)}a.K+=a.W;a.W=0;a.O=sa();a.ca=0;Yb(a)}function wb(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function yb(a,b,c,d){0<=b&&b<a.H.length&&(d||0>a.H[b][0])&&(c=a.Qa*a.da/1E3*c|0,a.H[b][0]=c+$b(a))}function $b(a,b){var c=a.ha-=a.a;a.a=0;b&&(a.ha=0);return c}
|
||||
g.tc=function(){if(this.i.U){this.ab>=this.Qa&&Yb(this,!0);this.Ba=0;this.Ma=sa();if(this.ca){var a=this.Ma-this.ca;a>this.qb&&(this.O+=a,this.O>this.Ma&&(this.O=this.Ma))}try{do{for(var b,c=this.i.Pa?1:this.Ra,d=this.H.length-1;0<=d;d--){var e=this.H[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.xb(b)}catch(n){if("number"!=typeof n)throw n;}b=$b(this,!0);this.Ba+=b;this.W+=b;a=b;if(this.i.Pa){var f=!1;this.Na=this.Na+this.mb()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.sa,f=!0);0<=this.ta&&this.ta<=Zb(this)&&
|
||||
(this.sa=this.ta=-1,Vb(this),Xa(this),f=!0);f&&this.P(Zb(this)+" cycles: checksum="+ja(this.Na))}for(var a=b,h=this.H.length-1;0<=h;h--){var l=this.H[h];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.Aa-=b;if(0>=this.Aa){this.Aa+=this.Ra;15<=++this.rb&&(this.v&&this.v.fa(),this.rb=0);break}}while(this.i.U)}catch(n){Xa(this);this.v&&this.v.stop(sa(),Zb(this));b=n.stack||n.message;this.i.error=!0;this.I(b);return}if(this.i.U){b=setTimeout;c=this.sb;this.ca=sa();d=this.qb;this.Ba&&(d=Math.round(d*
|
||||
this.Ba/this.Ra));d-=this.ca-this.Ma;if(e=this.ca-this.O)this.ba=Math.round(this.W/(10*e))/100,864E5<=e&&(this.K=0,Xb(this));if(0>d||this.ba<this.ga)-1E3>d&&(this.O-=d),d=0;this.ab+=this.Ba;this.ca+=d;b(c,d)}}};function Wb(a){var b;a.i.error?(a.P(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.U)a.P(a.toString()+" busy");else{Xb(a);a.i.U=!0;a.i.wb=!0;if(b=a.s.run)b.textContent="Halt";a.v&&a.v.start(a.O,Zb(a));setTimeout(a.sb,0)}}g.xb=function(){return 0};
|
||||
function Xa(a){if(a.i.U){$b(a);a.K+=a.W;a.W=0;a.i.U=!1;var b=a.s.run;b&&(b.textContent="Run");a.v&&a.v.stop(sa(),Zb(a))}a.i.complete=void 0}function ac(a){this.Ha=+a.model||1170;this.ob=a.addrReset||0;Rb.call(this,a,6666667);this.decode=1120==this.Ha?bc.bind(this):cc.bind(this);dc(this);this.T=0;this.X=null;this.i.complete=this.i.Cb=!1}w(ac,Rb);g=ac.prototype;g.reset=function(){this.status("model "+this.Ha);this.i.U&&Xa(this);dc(this);Ub(this);this.i.error=!1;this.parent.reset.call(this)};
|
||||
function dc(a){a.j=65536;a.g=32768;a.h=65535;a.o=32768;a.w=15;a.f=[0,0,0,0,0,0,0,a.ob];a.ua=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.u=0;a.Ka=0;a.Gb=[4,2,0,1];a.D=[[0,0,0,0,0,0,0,0,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]];a.S=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.vb=[0,0,0,0,0,0,0,0];a.ub=0;a.l=0;a.B=a.C=0;a.c=a.b=a.Ya=0;a.ja=-1;ec(a)}function ec(a){a.qa=255;a.G=0;a.hb=0;a.A=0;a.oa=0;a.gb=0;a.pa=0;a.Ea=0;a.Ja=0;a.$a=262143;a.La=253952;a.l|=2;a.m&&Ab(a)}function Ab(a){a.Ea?(a.N=65536,a.J=a.Fb,a.R=a.qc,a.Va=a.cd,hb(a.m,a.pa&16?22:18)):(a.N=0,a.J=a.Eb,a.R=a.pc,a.Va=a.bd,hb(a.m,16))}g.mb=function(){return 0};
|
||||
g.save=function(){var a=new K(this);a.set(0,[]);a.set(1,[this.K,this.da]);a.set(2,rb(this.m));return a.data()};g.restore=function(a){var b=a[1];this.K=b[1];Xb(this,b[3]);a:{b=this.m;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.B){for(var f=0,h=Array(b.B),l=0;l<e.length-1;)for(var n=e[l++],r=e[l++];n--;)h[f++]=r;e=h}f=b.b[d];if(!f||!f.restore(e)){m("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function L(a){return a.j&65536?1:0}
|
||||
g.ma=function(){return this.o&32768?8:0};function fc(a){var b=a.f[7];a.A&57344||(a.oa=0,a.gb=b);a.f[7]=b+2&65535;return a.R(b)}function gc(a,b){var c=a.f[7];a.f[7]=c+b&65535;return c}function M(a,b){a.f[7]=b&65535}function zb(a,b){return{wc:a,va:b,next:null}}function xb(a,b){if(b!=a.X){var c=a.X;if(!c||c.va<=b.va)b.next=c,a.X=b;else{do{var d=c.next;if(!d||d.va<=b.va){b.next=d;c.next=b;break}c=d}while(c)}}a.l|=2}function Za(a){return a.w=a.w&63728|a.ma()|(a.h&65535?0:4)|(a.g&32768?2:0)|L(a)}
|
||||
function Cb(a,b){a.o=b<<12;a.h=~b&4;a.g=b<<14;a.j=b<<16;if((b^a.w)&2048)for(var c=a.ua.length;0<=--c;){var d=a.f[c];a.f[c]=a.ua[c];a.ua[c]=d}a.u=b>>14&3;c=a.w>>14&3;a.u!=c&&(a.aa[c]=a.f[6],a.f[6]=a.aa[a.u]);a.w=b;a.l|=2}function N(a,b){a.l&128||(a.o=a.h=b,a.g=0)}function O(a,b,c){a.l&128||(a.o=a.h=a.j=b,a.g=c||0)}function hc(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^b)&(d^b))}function P(a,b){a.l&128||(a.o=a.h=a.j=b,a.g=a.o^a.j>>1)}function ic(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^d)&(d^b))}
|
||||
function F(a,b,c){if(!a.T){var d=!1;0>a.ja?a.ja=Za(a):a.u||(b=4,d=!0);a.A&57344||(a.oa=63222,a.gb=b);a.u=0;var e=a.R(b|a.N),f=a.R(b+2&65535|a.N);Cb(a,f&-12289|a.ja>>2&12288);d&&(a.G|=4,a.f[6]=4);jc(a,a.ja);jc(a,a.f[7]);M(a,e);a.l&=-113;a.ja=-1;if(26!=c)throw b;}}function kc(a){var b=lc(a),c=lc(a)&-1793;a.w&49152&&(c=c&-225|a.w&63712);M(a,b);Cb(a,c);a.l&=-17}
|
||||
function mc(a,b,c){var d,e,f,h=0;d=b>>13;a.pa&a.Gb[a.u]||(d&=7);e=a.D[a.u][d];f=(a.S[a.u][d]<<6)+(b&8191)&a.$a;if(f<a.La)f&1&&!(c&1)&&(a.G|=64,F(a,4,10));else if(a.pa&16||253952<=f&&(f|=4186112),4186112>f){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.pa&32&&(f=a.Ib[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.La&&4186112>f&&(a.G|=32,F(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.D[a.u][d]=e;if(4194170!==f||a.u)a.Ja=a.u,a.Ka=d;h&&(h&57344&&(0<=a.ja&&(h|=128),a.A&57344||(a.A=a.A|h|a.Ja<<5|a.Ka<<1),F(a,168,16)),a.A&61440||!(4191360>f||4194239<f)||(a.A|=4096,a.A&512&&(a.l|=32)));return f}function nc(a,b,c){b&1&&a.a--;a=a.m;a.b[(b&a.h)>>>a.m].jb(b&a.g,c&255,b)}function lc(a){var b=a.R(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b}
|
||||
function jc(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.oa=a.oa<<8|246);!a.u&&c<=a.qa&&4<c&&(c<=a.qa-32?(a.G|=4,a.f[6]=4,F(a,4,18)):(a.G|=8,a.l|=4));a.Va(c,b)}
|
||||
function oc(a,b,c,d){var e,f,h=d&8?0:a.N;switch(b){case 0:return F(a,4,20),0;case 1:return 6===c&&!a.u&&d&4&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32||65534<=a.f[6]?(a.G|=4,a.f[6]=4,F(a,4,22)):(a.G|=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.R(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.R(e)|h;a.a-=
|
||||
8;break;case 6:return e=a.R(gc(a,2)),e=e+a.f[c]&65535|h,a.a-=6,e;case 7:return e=a.R(gc(a,2)),e=e+a.f[c]&65535,e=a.R(e|a.N)|h,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!h||a.A&57344||(a.oa=a.oa<<8|f<<3&248|c);6==c&&!a.u&&d&4&&0>=f&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32?(a.G|=4,a.f[6]=4,F(a,4,24)):(a.G|=8,a.l|=64));return e}g.Ga=function(a,b){this.Ea?(this.T++,nc(this,mc(this,a,5),b),this.T--):this.m.Ga(a,b)};g.Eb=function(a,b,c){return oc(this,a,b,c)};
|
||||
g.Fb=function(a,b,c){return mc(this,oc(this,a,b,c),c)};g.pc=function(a){return pb(this.m,a)};g.qc=function(a){return pb(this.m,mc(this,a,2))};g.bd=function(a,b){qb(this.m,a,b&65535)};g.cd=function(a,b){qb(this.m,mc(this,a,4),b)};function pc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=oc(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.u=a.w>>12&3,c=a.R(d|c&a.N),a.u=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.f[d]:a.aa[a.w>>12&3];return c}
|
||||
function qc(a,b,c,d){a.A&57344||(a.oa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=oc(a,b,e,4),c&65536||(e&=65535),a.u=a.w>>12&3,e=mc(a,e|c&65536,4),a.u=a.w>>14&3,qb(a.m,e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.f[e]=d:a.aa[a.w>>12&3]=d}function rc(a,b){b>>=6;var c=a.C=b&7;(b=a.B=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function Q(a,b){b>>=6;var c=a.C=b&7;return(b=a.B=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function sc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return oc(a,b,c,8)}
|
||||
function tc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function uc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function R(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.Ya=a.J(b,e,7),nc(a,e,d.call(a,c,ob(a.m,e)))):a.f[e]=a.f[e]&65280|d.call(a,c,a.f[e])}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.J(b,e,6),qb(a.m,e,d.call(a,c,pb(a.m,e)))):a.f[e]=d.call(a,c,a.f[e])}
|
||||
function vc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?nc(a,a.J(b,e,5),c):a.f[e]=c?d&1?c<<24>>24&65535:a.f[e]&-256|c&255:a.f[e]&-256;return c}function wc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?qb(a.m,a.J(b,d,4),c):a.f[d]=c&65535;return c}function T(a,b,c){c&&(M(a,a.f[7]+(b<<24>>23)),a.a-=2);a.a-=3}
|
||||
g.xb=function(a){this.i.complete=!0;this.i.Cb=!1;this.i.wb=!1;this.ha=this.a=a;do{if(this.l&&(this.l&112&&(this.l&32?F(this,168,28):this.l&64?F(this,4,30):this.l&16&&F(this,12,32),this.l&=-113),this.l&7))if(this.l&2){this.l&=-3;var b=160,c=(this.hb&224)>>5;if(a=this.X&&this.X.va>c?this.X:null)b=a.wc,c=a.va;c>(this.w&224)>>5?(this.l&4&&(gc(this,2),this.l&=-5),F(this,b,26),c=!0):c=!1;if(c&&a)if(c=this.X,c==a)this.X=a.next;else for(;c;){b=c.next;if(b==a){c.next=b.next;break}c=b}}else this.l&1&&this.l++;
|
||||
this.l=this.l&7|this.w&16;this.decode(fc(this))}while(0<this.a);return this.i.complete?this.ha-this.a:void 0===this.i.complete?0:-1};q(function(){for(var a=A(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new ac(d);z(d,c)}});function xc(a,b){var c=b+a;hc(this,c,a,b);return c&65535}function yc(a,b){var c=b+a;hc(this,c<<8,a<<8,b<<8);return c&255}function zc(a,b){a=b<<1;P(this,a);return a&65535}function Ac(a,b){a=b<<1;P(this,a<<8);return a&255}
|
||||
function Bc(a,b){a=b&32768|b>>1|b<<16;P(this,a);return a&65535}function Cc(a,b){a=b&2048|b>>1|b<<8;P(this,a<<8);return a&255}function Dc(a,b){a=b&~a;N(this,a);return a}function Ec(a,b){a=b&~a;N(this,a<<8);return a}function Fc(a,b){a|=b;N(this,a);return a}function Gc(a,b){a|=b;N(this,a<<8);return a}function Hc(a,b){a=~b|65536;O(this,a);return a&65535}function Ic(a,b){a=~b|256;O(this,a<<8);return a&255}function Jc(a,b){a=b-a;this.l&128||(this.o=this.h=a,this.g=b&(b^a));return a&65535}
|
||||
function Kc(a,b){a=b-a;var c=a<<8;b<<=8;this.l&128||(this.o=this.h=c,this.g=b&(b^c));return a&255}function Lc(a,b){a=b+a;this.l&128||(this.o=this.h=a,this.g=a&(b^a));return a&65535}function Mc(a,b){a=b+a;var c=a<<8;this.l&128||(this.o=this.h=c,this.g=c&(b<<8^c));return a&255}function Nc(a,b){a=-b;O(this,a,a&b&32768);return a&65535}function Oc(a,b){a=-b;O(this,a<<8,(a&b&128)<<8);return a&255}function Pc(a,b){a=b<<1|this.j>>16&1;P(this,a);return a&65535}
|
||||
function Qc(a,b){a=b<<1|this.j>>16&1;P(this,a<<8);return a&255}function Rc(a,b){a=(this.j&65536|b)>>1|b<<16;P(this,a);return a&65535}function Sc(a,b){a=((this.j&65536)>>8|b)>>1|b<<8;P(this,a<<8);return a&255}function Tc(a,b){var c=b-a;ic(this,c,a,b);return c&65535}function Uc(a,b){var c=b-a;ic(this,c<<8,a<<8,b<<8);return c&255}function Vc(a,b){this.l&128||(this.o=this.h=b&65280,this.g=this.j=0);return(b<<8|b>>8)&65535}function Wc(a,b){a^=b;N(this,a);return a&65535}
|
||||
function Xc(a){S(this,a,Q(this,a),xc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Yc(a){var b=uc(this,a);a=a>>6&7;var c=this.f[a];c&32768&&(c|=4294901760);this.j=this.g=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.j=c<<17-b,c>>=b;else if(b)if(16<b)this.g=c,c=0;else{this.j=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.g=32768)}this.f[a]=c&65535;this.o=this.h=c;this.a-=(this.c?6:7)+b}
|
||||
function Zc(a){var b=uc(this,a);a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.j=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.j=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.h=d>>16|d;this.a-=(this.c?6:7)+b}function $c(a){T(this,a,!L(this))}function ad(a){T(this,a,L(this))}
|
||||
function bd(a){S(this,a,Q(this,a),Dc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function cd(a){R(this,a,rc(this,a),Ec);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function dd(a){S(this,a,Q(this,a),Fc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function ed(a){R(this,a,rc(this,a),Gc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}
|
||||
function fd(a){N(this,Q(this,a)&uc(this,a));this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function gd(a){N(this,(rc(this,a)&tc(this,a))<<8);this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function hd(a){T(this,a,this.h&65535?0:4)}function id(a){T(this,a,!this.ma()==!(this.g&32768))}function jd(a){T(this,a,!!(this.h&65535)&&!this.ma()==!(this.g&32768))}function kd(a){T(this,a,!L(this)&&!!(this.h&65535))}
|
||||
function ld(a){T(this,a,(this.h&65535?0:4)||!this.ma()!=!(this.g&32768))}function md(a){T(this,a,L(this)||(this.h&65535?0:4))}function nd(a){T(this,a,!this.ma()!=!(this.g&32768))}function od(a){T(this,a,this.ma())}function pd(a){T(this,a,!!(this.h&65535))}function qd(a){T(this,a,!this.ma())}function rd(){F(this,12,1);this.a-=5}function sd(a){T(this,a,!0)}function td(a){T(this,a,!(this.g&32768))}function ud(a){T(this,a,this.g&32768?2:0)}
|
||||
function U(a){a&1&&(this.j=0);a&2&&(this.g=0);a&4&&(this.h=1);a&8&&(this.o=0);this.a-=5}function vd(a){var b=Q(this,a);a=uc(this,a);ic(this,b-a,a,b);this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function wd(a){var b=rc(this,a)<<8;a=tc(this,a)<<8;ic(this,b-a,a,b);this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}
|
||||
function xd(a){var b=uc(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=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.h=d>>16|d,this.o=d>>16):(this.g=32768,this.h=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.h=this.o=0,this.g=32768,this.j=65536,this.a-=7}function yd(){F(this,24,2);this.a-=25}
|
||||
function zd(){this.w&49152?(this.G|=128,F(this,4,3)):this.F?this.F.c():Xa(this);this.a-=7}function Ad(){F(this,16,4);this.a-=25}var Bd=[0,7,7,10,7,11,9,13];function V(a){var b=this.a;M(this,sc(this,a));this.a=b-Bd[this.c]}var Cd=[0,14,14,17,14,18,16,20];function Dd(a){var b=this.a,c=sc(this,a);a=a>>6&7;jc(this,this.f[a]);this.f[a]=this.f[7];M(this,c);this.a=b-Cd[this.c]}var Ed=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
|
||||
function Fd(a){var b=Q(this,a),c=this.a;N(this,wc(this,a,b));this.a=c-Ed[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)}function Gd(a){var b=rc(this,a);N(this,vc(this,a,b,1)<<8);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Hd=[7,13,13,17,14,18,17,21];
|
||||
function Id(a){var b=uc(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.h=this.o|b,this.g=0,this.j=-32768>b||32767<b?65536:0);this.a-=23}function Jd(){this.a-=5}function Kd(){this.w&49152||(ec(this),this.m.reset());this.a-=667}function Ld(){kc(this);this.l|=this.w&16;this.a-=13}function Md(a){if(a&8)F(this,8,6);else{var b=lc(this);a&=7;M(this,this.f[a]);this.f[a]=b;this.a-=9}}
|
||||
function W(a){a&1&&(this.j=65536);a&2&&(this.g=32768);a&4&&(this.h=0);a&8&&(this.o=32768);this.a-=5}function Nd(a){var b=(a&448)>>6;if(this.f[b]=this.f[b]-1&65535)M(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Od(a){S(this,a,Q(this,a),Tc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function X(a){S(this,a,0,Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Pd(){F(this,28,5);this.a-=5}function Qd(){this.l&4||this.v.fa();this.l|=4;gc(this,-2);this.a-=3}
|
||||
function Rd(a){S(this,a,Q(this,a),Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){F(this,8,6)}function bc(a){Sd[a>>12].call(this,a)}function Td(a){Ud[a>>6&3].call(this,a)}function Vd(a){Wd[a>>6&3].call(this,a)}function Xd(a){Zd[a>>6&3].call(this,a)}function $d(a){ae[a&15].call(this,a)}function be(a){ce[a&15].call(this,a)}function de(a){ee[a>>6&3].call(this,a)}function fe(a){ge[a>>6&3].call(this,a)}function he(a){ie[a>>6&3].call(this,a)}
|
||||
var Sd=[function(a){je[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,Y,function(a){ke[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],je=[function(a){le[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Td,Vd,Xd,Y,Y,Y],Ud=[function(a){O(this,wc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],Wd=[function(a){S(this,a,0,Nc);
|
||||
this.a-=this.c?11:6},function(a){S(this,a,L(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,L(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=uc(this,a);O(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Zd=[function(a){S(this,a,0,Rc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Bc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}],le=[function(a){me[a&
|
||||
15].call(this,a)},Y,Y,Y,V,V,V,V,Md,Y,$d,be,X,X,X,X],me=[zd,Qd,Ld,rd,Ad,Kd,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],ae=[Jd,function(){this.j=0;this.a-=5},function(){this.g=0;this.a-=5},U,function(){this.h=1;this.a-=5},U,U,U,function(){this.o=0;this.a-=5},U,U,U,U,U,U,U],ce=[Jd,function(){this.j=65536;this.a-=5},function(){this.g=32768;this.a-=5},W,function(){this.h=0;this.a-=5},W,W,W,function(){this.o=32768;this.a-=5},W,W,W,W,W,W,W],ke=[qd,od,kd,md,td,ud,$c,ad,yd,Pd,de,fe,he,Y,Y,Y],ee=[function(a){O(this,vc(this,a,0));
|
||||
this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Ic);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Mc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)}],ge=[function(a){R(this,a,0,Oc);this.a-=this.c?11:6},function(a){R(this,a,L(this)?1:0,yc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,L(this)?1:0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=tc(this,a);O(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}],ie=
|
||||
[function(a){R(this,a,0,Sc);this.a-=this.c?9+(this.Ya&1):3+(7==this.b?2:0)},function(a){R(this,a,0,Qc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Cc);this.a-=this.c?9+(this.Ya&1):3+(7==this.b?2:0)},function(a){R(this,a,0,Ac);this.a-=this.c?9:3+(7==this.b?2:0)}];function cc(a){ne[a>>12].call(this,a)}
|
||||
var ne=[function(a){oe[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,function(a){pe[a>>8&15].call(this,a)},function(a){qe[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],oe=[function(a){re[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Td,Vd,Xd,function(a){se[a>>6&3].call(this,a)},Y,Y],se=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.R(a|this.N);M(this,this.f[5]);this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=pc(this,a,0);jc(this,a);N(this,a);this.a-=11},function(a){var b=lc(this),c=this.a;
|
||||
qc(this,a,0,b);N(this,b);this.a=c-Hd[this.c]},function(a){N(this,wc(this,a,this.ma?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],re=[function(a){te[a&15].call(this,a)},Y,Y,Y,V,V,V,V,Md,function(a){a&8?(this.w&49152||(this.w=this.w&-2017|(a&7)<<5,this.l|=1),this.a-=5):F(this,8,6)},$d,be,X,X,X,X],te=[zd,Qd,Ld,rd,Ad,Kd,function(){kc(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],pe=[Id,Id,xd,xd,Yc,Yc,Zc,Zc,Rd,Rd,Y,Y,Y,Y,Nd,Nd],qe=[qd,od,kd,md,td,ud,$c,ad,yd,Pd,de,fe,he,function(a){ue[a>>6&3].call(this,a)},Y,
|
||||
Y],ue=[Y,function(a){a=pc(this,a,65536);jc(this,a);N(this,a);this.a-=11},function(a){var b=lc(this),c=this.a;qc(this,a,65536,b);N(this,b);this.a=c-Hd[this.c]},Y];
|
||||
function ve(a){u.call(this,"ROM",a,ve);this.Y=this.b=null;this.j=a.addr;this.c=a.size;this.h=a.alias;this.g=a.file;this.o=ka(this.g);if(this.g){a=this.g;var b=la(this.o);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;k(a,null,!0,function(a,b,f){f?c.I("Unable to load ROM resource (error "+f+": "+a+")"):(Pa(c.ra,a,b),(a=ua(a,b))?(c.b=a.L,c.Y=a.Y):c.g=null,we(c))})}}w(ve);ve.prototype.ea=function(a,b,c,d){this.m=b;this.a=c;this.F=d;we(this)};
|
||||
ve.prototype.$=function(){this.Y&&(this.F&&this.F.a(this.id,this.j,this.c,this.Y),delete this.Y);return!0};ve.prototype.Z=function(){return!0};
|
||||
function we(a){if(!Sa(a)){if(a.g){if(!a.b||!a.m)return;a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+ja(a.b.length,8,!0)+") does not match specified size ("+ja(a.c,8,!0)+")";a.i.error=!0;a.I(b)}else{b=a.j;if(kb(a.m,b,a.c,Ib)){var c;for(c=0;c<a.b.length;c++)a.m.Ga(b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.h?b.push(a.h):null!=a.h&&a.h.length&&(b=a.h);for(c=0;c<b.length;c++){var d=a,e=b[c],f=jb(d.m,d.j,d.c);ib(d.m,e,d.c,f)}delete a.b}}}B(a)}}
|
||||
q(function(){for(var a=A(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new ve(d);z(d,c)}});
|
||||
function xe(a){u.call(this,"RAM",a,xe);this.Y=this.c=null;this.o=a.addr;this.v=a.size;this.h=a.load;this.g=a.exec;this.j=!1;this.b=a.file;this.u=ka(this.b);if(this.b){a=this.b;var b=la(this.u);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;k(a,null,!0,function(a,b,f){f?c.I("Unable to load RAM resource (error "+f+": "+a+")"):(Pa(c.ra,a,b),(a=ua(a,b))?(c.c=a.L,c.Y=a.Y,null==c.h&&null!=a.cb&&(c.h=a.cb),null==c.g&&null!=a.bb&&(c.g=a.bb)):c.b=null,ye(c))})}}
|
||||
w(xe);xe.prototype.ea=function(a,b,c,d){this.m=b;this.a=c;this.F=d;ye(this)};xe.prototype.$=function(){return!0};xe.prototype.Z=function(){return!0};function ye(a){!a.j&&a.v&&kb(a.m,a.o,a.v,1)&&(a.j=!0);if(!Sa(a)){if(!a.j)m("No RAM allocated");else if(a.b){if(!a.c||!a.m)return;var b=a.o;null!==a.h&&(b=a.h);for(var c=0;c<a.c.length;c++)a.m.Ga(b+c,a.c[c]);null!==a.g&&(b=a.a,c=a.g,b.ob=c,M(b,c));delete a.c}B(a)}}xe.prototype.reset=function(){};
|
||||
q(function(){for(var a=A(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new xe(d);z(d,c)}});function ze(a){u.call(this,"Keyboard",a,ze);B(this)}w(ze);ze.prototype.V=function(){return!1};ze.prototype.ea=function(a,b,c,d){this.v=a;this.a=c;this.F=d};q(function(){for(var a=A(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new ze(d);z(d,c)}});
|
||||
function Z(a){this.g=this.j=null;this.H=a.tabSize;this.B=a.charBOL;this.o=0;u.call(this,"SerialPort",a,Z);var b=a.binding;if("console"==b)this.j="";else{var c;a=Ae;b&&(void 0===c&&(c="Panel"),(c=Ra(c,this.id))&&(b=c.s[b])&&this.V(null,a,b))}this.u=this.A=null;this.exports={connect:this.nb,receiveData:this.fb}}w(Z);var Ae="buffer";g=Z.prototype;
|
||||
g.V=function(a,b,c){var d=this;switch(b){case Ae:return this.s[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.fb(b);return!0},c.onkeypress=function(a){a=a||window.event;d.fb(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
|
||||
g.ea=function(a,b,c,d){this.v=a;this.m=b;this.a=c;this.F=d;var e=this;this.N=zb(48,4);this.J=wb(this.a,function(){e.b&128||!e.h.length||(e.C=e.h.shift(),e.b|=128,e.b&64&&xb(e.a,e.N))});this.O=zb(52,4);this.K=wb(this.a,function(){e.c|=128;e.c&64&&xb(e.a,e.O)});tb(b,this,Be);B(this)};
|
||||
g.nb=function(){if(!this.u){var a=Tb(this.v,"connection");if(a){var b=a.split("->");if(2==b.length){var c=qa(b[0]);if(c!=this.Ia)return;b=qa(b[1]);if(this.u=Qa(b)){var d=this.u.exports;if(d){var e=d.connect;e&&e.call(this.u);if(this.A=d.receiveData){this.status(this.ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.$=function(a,b){if(!b)if(this.nb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
g.Z=function(a){return a?this.save():!0};g.reset=function(){Ce(this)};g.save=function(){var a=new K(this);a.set(0,[]);return a.data()};g.restore=function(){return Ce(this)};function Ce(a){a.C=0;a.b=0;a.c=128;a.h=[];return!0}g.fb=function(a){if("number"==typeof a)this.h.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.h.push(a.charCodeAt(b));else this.h=this.h.concat(a);yb(this.a,this.J,1);return!0};g.ec=function(){return this.b&65535};g.Rc=function(a){this.b=this.b&-112|a&111};
|
||||
g.dc=function(){this.b&=-129;0<this.h.length&&yb(this.a,this.J,1);return this.C};g.Qc=function(){};g.sc=function(){return this.c};g.ed=function(a){128==(this.c&192)&&a&64&&yb(this.a,this.K,1);this.c=this.c&-70|a&69};g.rc=function(){return 0};
|
||||
g.dd=function(a){if(a&=255){this.A&&this.A.call(this.u,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=ra[a])?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.H||8,c=a-this.o%a,this.H&&(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.j){if(10==a||1024<=this.j.length)this.P(this.j),
|
||||
this.j="";10!=a&&(this.j+=String.fromCharCode(a))}this.c&=-129;yb(this.a,this.K,1)}};var De={},Be=(De[65392]=[null,null,Z.prototype.ec,Z.prototype.Rc,"RCSR"],De[65394]=[null,null,Z.prototype.dc,Z.prototype.Qc,"RBUF"],De[65396]=[null,null,Z.prototype.sc,Z.prototype.ed,"XCSR"],De[65398]=[null,null,Z.prototype.rc,Z.prototype.dd,"XBUF"],De);q(function(){for(var a=A(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Z(d);z(d,c)}});
|
||||
function J(a){u.call(this,"PC11",a,J);this.c=a.autoMount||null;this.B=this.u=this.b=this.g=0;this.A=[];this.j=Ee;this.o=Fe;this.h="";this.C=!Aa("Mobi")&&window&&"FileReader"in window}w(J);var Ee="",Fe=0;g=J.prototype;
|
||||
g.V=function(a,b,c){var d=this,e=Fe;switch(b){case "listTapes":return this.s[b]=c,c.onchange=function(){var a=d.s.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(n){m("PC11 option error: "+n.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.s[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.s[b]=c,c.onclick=function(){var a=
|
||||
d.s.listTapes;a&&Ge(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(this.C)return this.s[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ge(d,ka(b,!0),b,1,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
|
||||
g.ea=function(a,b,c,d){this.v=a;this.m=b;this.a=c;this.F=d;var e=this;if((this.c=Tb(this.v,"autoMount")||this.c)&&"string"==typeof this.c)try{this.c=eval("("+this.c+")")}catch(f){m("PC11 auto-mount error: "+f.message+" ("+this.c+")"),this.c=null}this.J=zb(56,4);this.H=wb(this.a,function(){He(e)});tb(b,this,Ie);Je(this,"None",Ee,!0);this.C&&Je(this,"Local Tape","?");Je(this,"Remote Tape","??");Ke(this)||B(this)};
|
||||
g.$=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};g.Z=function(a){return a?this.save():!0};g.reset=function(){this.b&=-2241;this.u=0};function Ke(a){a.g=0;if(a.c){var b=a.c.path,c;if(!(c=a.c.name))a:{if((c=a.s.listTapes)&&c.options)for(var d=0;d<c.options.length;d++){var e=c.options[d];if(e.value==b){c=e.text;break a}}c=ka(b,!0)}b&&c?Le(a,c,b,1,!0):a.I("Incorrect auto-mount settings for PC11 ("+JSON.stringify(a.c)+")")}return!!a.g}
|
||||
function Ge(a,b,c,d,e){if(c)if("?"==c)a.I('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=ka(c);a.j="??"}else a.j=c;Le(a,b,c,d,!1,e)}else Me(a,!1)}function Le(a,b,c,d,e,f){var h=-1;if(a.h.toLowerCase()!=c.toLowerCase()||a.o!=d)h++,Me(a,!0),a.i.Wa?a.I("PC11 busy"):(e&&a.g++,Ne(a,b,c,d,f)?h++:a.i.Wa=!0)}
|
||||
function Ne(a,b,c,d,e){var f=c;if(e){var h=new FileReader;h.onload=function(){var b=h.result;b&&(b=new Uint8Array(b,0,b.byteLength),Oe(a,c,d,b),a.j="?");Pe(a)};h.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!k(f,null,!0,function(e,f,h){var l=0>h&&a.v&&!a.v.i.M;h?a.I('Unable to load tape "'+b+'" (error '+h+": "+e+")",l):(Pa(a.ra,e,f),(e=ua(e,f))&&Oe(a,c,d,e.L));a.i.Wa=!1;
|
||||
a.g&&(a.g--,a.g||B(a));Pe(a)})}function Je(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}function Pe(a){var b=a.s.listTapes;if(b&&b.options){a=a.j||a.h;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}
|
||||
function Oe(a,b,c,d){a.h=b;a.o=c;if(2==c){b=0;c=!1;for(var e=0;b<d.length-1;){var f=d[b]&255|(d[b+1]&255)<<8;if(f)if(f&255){if(1!=f){e||(c=!0);break}if(b+6>=d.length){c=!0;break}b+=2;for(var h=d[b++]&255|(d[b++]&255)<<8,l=d[b++]&255|(d[b++]&255)<<8,f=f+((h&255)+(h>>8)+(l&255)+(l>>8)),n=b,r=h-=6;0<h&&b<d.length-1;)f+=d[b++]&255,h--;if(h||b>=d.length){c=!0;break}f+=d[b++]&255;if(f&255){c=!0;break}if(r)for(;r--;)a.a.Ga(l++,d[n++]&255);else l&1||M(a.a,l);e++}else b++;else b+=2}c&&(a.h="",a.j=Ee,a.o=Fe)}else a.B=
|
||||
0,a.A=d}function Me(a,b){if(a.h||!1===b)a.h="",b||(a.j=Ee,a.o=Fe,Pe(a))}g.save=function(){return(new K(this)).data()};g.restore=function(){return!0};function He(a){1==(a.b&32769)&&!(a.b&128)&&a.B<a.A.length&&(a.u=a.A[a.B++]&255,a.b|=128,a.b&=-2049,a.b&64&&xb(a.a,a.J),yb(a.a,a.H,1E3/300,!0))}g.Yb=function(){return this.b&65534};g.Kc=function(a){a&1&&(this.b&32768?a&=-2:(this.b&=-129,this.b|=2048,this.u=0));this.b=this.b&-66|a&65;He(this)};g.Xb=function(){this.b&=-129;this.b|=2048;return this.u};
|
||||
g.Jc=function(){};var Qe={},Ie=(Qe[65384]=[null,null,J.prototype.Yb,J.prototype.Kc,"PRS"],Qe[65386]=[null,null,J.prototype.Xb,J.prototype.Jc,"PRB"],Qe);
|
||||
function Re(a,b,c){u.call(this,"Computer",a,Re);this.i.M=!1;Se(this,b);this.B=Tb(this,"autoPower",a);this.g=0;this.N=a.busWidth||a.buswidth;this.b=Te;this.u=null;this.o=this.J=!1;this.O=Tb(this,"url")||"";(Math.random()+.1).toString(36);this.c=Ue(this);if(this.a=Ra("CPU",this.id)){this.F=Ra("Debugger",this.id);this.m=new $a({id:this.ra+".bus",busWidth:this.N},this.a,this.F);var d,e=x(this.id);if((this.h=Ra("Panel",this.id))&&this.h.Xa)for(b=0;b<e.length;b++)d=e[b],d.I=this.h.I,d.P=this.h.P,d.Xa=this.h.Xa;
|
||||
this.P("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.P("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.ea&&d.ea(this,this.m,this.a,this.F);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.v=d:this.b=parseInt(d,10));var f;if(a=Tb(this,"state")||(f=!0,a.state))b=this.C=a,f||(this.o=!0,this.b=Te),this.b&&(this.A=new K(this,
|
||||
"1.30.1"),Ve(this.A)?b=null:delete this.A);!b&&this.b&&(b=We(this))&&(this.o=!0);if(b){var h=this;k(b,null,!0,function(a,b,c){c?(h.v=null,h.o=!1,h.I("Unable to load machine state from server (error "+c+(b?": "+qa(b):"")+")")):(h.u=b,h.J=!0);B(h)})}else B(this);this.s.power||(this.B=!0);!c&&this.B&&Xe(this,this.Fa)}else m("Unable to find CPU component")}w(Re);var Te=0;
|
||||
function Se(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){m(d.message+" ("+c+")")}}a.K=b}function Tb(a,b,c){var d=b.toLowerCase(),d=Ja[b]||Ja[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 Xe(a,b,c){for(var d=x(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Sa(f)){Sa(f,function(){Xe(a,b,c)});return}}b.call(a,c)}
|
||||
function Ye(a,b){var c=new K(a,"1.30.1","validate");if(Ve(c)&&Ze(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.I("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}g=Re.prototype;
|
||||
g.Fa=function(a){void 0===a&&(a=this.b||(this.u?1:Te));if(!this.g){this.g++;var b=!1,c=!1;this.H=!1;var d=this.A||new K(this,"1.30.1");if(-1==a)b=!0;else if(a>Te){if(Ve(d,this.u)){this.j=new K(this,"1.30.1","failsafe");Ve(this.j)&&($e(this,d),a=2,af(this.j));this.j.set("timestamp",ta());bf(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ze(d)){var f=d.get("code"),h=d.get("data");f&&("ok"==f?Ve(d,h):("error"==
|
||||
f&&"no machine state"!=h?(this.I("Error: "+h),"unable to verify user"==h&&(za("user",""),this.c=null)):this.P(f+": "+h),af(d),Ve(d)?(c=Ze(d),e=!0):c=!1))}e&&Ye(this,c?d:null)}else 2==a&&d.clear()}else Ye(this);delete this.u;delete this.A}e=x(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=cf(this,h,d,b,c));b=[d,a,c];-1!=a?Xe(this,this.lb,b):this.lb(b)}};
|
||||
function cf(a,b,c,d,e){if(!b.i.M){b.i.M=!0;if(b.$){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.$(f,d)&&f&&(m("Unable to restore state for "+b.type),a.C&&!a.J?(c.clear(),a.b=Te,window&&window.location.reload()):a.H=!0,b.$(null),e=!1)}if(!d&&b.pb)for(a=b.pb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
g.lb=function(a){var b=a[0],c=0>a[1];a=a[2];this.T=!0;this.i.M=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(cf(this,this.a,b,c,a),this.a.Da());this.H&&($e(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0};
|
||||
function $e(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.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;k("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function df(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new K(a,"1.30.1"),h=new K(a,"1.30.1","validate"),l=ta();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.Z&&(c&&Xa(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.M=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;n<l.length;n++){var r=l[n];r.i.M&&(r.Z&&(d=r.Z(b,c),"object"===typeof d&&f.set(r.id,
|
||||
d)),c&&(r.i.M=!1,!1===d&&(e=null)))}e&&(c?(l=d=!1,b?(a.c&&ef(a,a.c,f.toString()),bf(h)&&bf(f)||(e=null,d=l=!0)):a.b&&(d=!0,l=3==a.b),d&&f.clear(l)):e=f.toString());c&&(a.i.M=!1,b=a.s.power)&&(b.textContent="Power");a.g=0;return e}g.reset=function(){this.m&&this.m.reset&&this.m.reset();for(var a=x(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.m&&c.reset&&c.reset()}};g.start=function(a,b){for(var c=x(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.fa(!0)};
|
||||
g.stop=function(a,b){for(var c=x(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}this.fa(!0)};
|
||||
g.V=function(a,b,c){var d=this;switch(b){case "power":return this.s[b]=c,c.onclick=function(){d.g||(d.i.M?df(d,!1,!0):Xe(d,d.Fa))},!0;case "reset":return this.s[b]=c,c.onclick=function(){if(d.i.M&&!d.g)if(d.b&&!d.v){var a=va("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");df(d,a,!0);!a&&d.C?window&&window.location.reload():d.Fa(Te)}else d.reset(),d.a&&d.a.Da()},!0;case "save":if(ma())c.parentNode.removeChild(c);else return this.s[b]=
|
||||
c,c.onclick=function(){var a=Ue(d,!0);if(a){var b=!!(d.b&&!d.v||d.C),c=df(d,b);b?ef(d,a,c):d.I("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Ue(a,b){var c=a.c;c||((c=ya("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=ff(a,c))||a.I("The user ID is invalid.")):b&&a.I("Browser local storage is not available"));return c}
|
||||
function ff(a,b){a.c=null;b=k(na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(za("user",b.data),a.c=b.data)}catch(d){m(d.message+" ("+c+")")}return a.c}function We(a){var b=null;a.c&&(b=na()+"/api/v1/user?req=load&user="+a.c+"&state="+gf(a,"1.30.1"));return b}
|
||||
function ef(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=gf(a,"1.30.1");d.data=c;b=k(na()+"/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.I("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.I(c),za("user",""),a.c=null)}}
|
||||
g.fa=function(a){this.a&&this.a.fa(a);this.h&&this.h.fa(a)};q(function(){for(var a=A(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=A(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],h=y(f),h=new Re(h,d,!0);z(h,f);h.B&&Xe(h,h.Fa)}});p.show.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=Ra("Computer",c.id))&&c.T&&!c.i.M&&c.Fa(-1)}});
|
||||
p.exit.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=Ra("Computer",c.id))&&c.i.M&&df(c,!(!c.b||c.v),!0)}});function K(a,b,c){this.id=a.id;this.key=gf(a,b,c);this.F=a.F;af(this,a.Hb)}function gf(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}
|
||||
K.prototype={constructor:K,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){af(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 af(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function bf(a){var b=!0;if(xa()){var c=JSON.stringify(a[a.id]);za(a.key,c)||(m("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Ze(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){m(c.message||c),b=!1}return b}function Ve(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:xa()&&(b=ya(a.key))?(a[a.id]=b,a.a=!0):!1}var hf=0;
|
||||
function jf(a,b,c,d,e,f){e("Loading "+a+"...");k(a,null,!0,function(h,l,n){n?(l||(l="unable to load "+a+" ("+n+")"),f(l,null)):kf(l,a,b,c,d,e,f)})}
|
||||
function kf(a,b,c,d,e,f,h){function l(a,f){if(f)h(f,null);else{c&&(Pa(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?lf(a,f,l):l(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function lf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");k(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],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[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);lf(a,b,c)}})}else c(a,null)}
|
||||
function mf(a,b,c,d){function e(a){if(void 0===l){var b=h&&A(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--hf||Ga(!0));n=!1}var h,l,n=!0;hf++;Oa[a]={};try{if(h=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=r:D.appendChild(document.createTextNode(r));t.appendChild(D)}c||
|
||||
(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?jf(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(h.outerHTML=n,--hf||Ga(!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),--hf||Ga(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?jf(b,a,d,!0,e,r):kf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Yd){f(Yd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return mf(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map
|
||||
g.$c=function(a,b){b=b>>1&7;this.a.S[3][b]=a;this.a.D[3][b]&=65295};g.lc=function(a){return this.a.S[3][(a>>1&7)+8]};g.Yc=function(a,b){b=(b>>1&7)+8;this.a.S[3][b]=a;this.a.D[3][b]&=65295};g.ya=function(a){a&=7;return this.a.v&2048?this.a.wa[a]:this.a.f[a]};g.Aa=function(a,b){b&=7;this.a.v&2048?this.a.wa[b]=a:this.a.f[b]=a};g.$b=function(){return this.a.v&49152?this.a.aa[0]:this.a.f[6]};g.Mc=function(a){this.a.v&49152?this.a.aa[0]=a:this.a.f[6]=a};g.cc=function(){return this.a.f[7]};
|
||||
g.Pc=function(a){this.a.f[7]=a};g.za=function(a){a&=7;return this.a.v&2048?this.a.f[a]:this.a.wa[a]};g.Ba=function(a,b){b&=7;this.a.v&2048?this.a.f[b]=a:this.a.wa[b]=a};g.ac=function(){return 1==(this.a.v&49152)>>14?this.a.f[6]:this.a.aa[1]};g.Nc=function(a){1==(this.a.v&49152)>>14?this.a.f[6]=a:this.a.aa[1]=a};g.bc=function(){return 3==(this.a.v&49152)>>14?this.a.f[6]:this.a.aa[3]};g.Oc=function(a){3==(this.a.v&49152)>>14?this.a.f[6]=a:this.a.aa[3]=a};g.Lb=function(a){return this.a.vb[a-65504>>1]};
|
||||
g.zc=function(a,b){this.a.vb[b-65504>>1]=a};g.tb=function(a){return 65520==a?61183:0};g.Ab=function(){};g.kc=function(){return 1};g.Xc=function(){};g.Kb=function(){return this.a.H};g.yc=function(){this.a.H=0};g.Rb=function(){return this.a.ub};g.Fc=function(a,b){b&1||(a&=255);this.a.ub=a};g.Wb=function(a){return a?this.a.hb:0};g.Ic=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.hb=a;b.l|=2};g.jc=function(a){return a?this.a.qa&65280:0};g.Wc=function(a){this.a.qa=a|255};
|
||||
g.Zb=function(){return Ya(this.a)};g.Lc=function(a){Bb(this.a,a&-1809|Ya(this.a)&1808);this.a.l|=128};g.zb=function(){};
|
||||
var J={},I=(J[62592]=[null,null,H.prototype.ic,H.prototype.Vc,"SISDR",1145],J[62608]=[null,null,H.prototype.gc,H.prototype.Tc,"SDSDR",1145],J[62624]=[null,null,H.prototype.hc,H.prototype.Uc,"SISAR",1145],J[62640]=[null,null,H.prototype.fc,H.prototype.Sc,"SDSAR",1145],J[62656]=[null,null,H.prototype.Pb,H.prototype.Dc,"KISDR",1145],J[62672]=[null,null,H.prototype.Nb,H.prototype.Bc,"KDSDR",1145],J[62688]=[null,null,H.prototype.Ob,H.prototype.Cc,"KISAR",1145],J[62704]=[null,null,H.prototype.Mb,H.prototype.Ac,
|
||||
"KDSAR",1145],J[62798]=[null,null,H.prototype.Vb,H.prototype.Hc,"MMR3",1145],J[65382]=[null,null,H.prototype.Qb,H.prototype.Ec,"LKS"],J[65400]=[null,null,H.prototype.Jb,H.prototype.xc,"CNSL"],J[65402]=[null,null,H.prototype.Sb,H.prototype.Gc,"MMR0",1145],J[65404]=[null,null,H.prototype.Tb,H.prototype.zb,"MMR1",1145],J[65406]=[null,null,H.prototype.Ub,H.prototype.zb,"MMR2",1145],J[65408]=[null,null,H.prototype.oc,H.prototype.ad,"UISDR",1145],J[65424]=[null,null,H.prototype.mc,H.prototype.Zc,"UDSDR",
|
||||
1145],J[65440]=[null,null,H.prototype.nc,H.prototype.$c,"UISAR",1145],J[65456]=[null,null,H.prototype.lc,H.prototype.Yc,"UDSAR",1145],J[65472]=[null,null,H.prototype.ya,H.prototype.Aa,"R0SET0"],J[65473]=[null,null,H.prototype.ya,H.prototype.Aa,"R1SET0"],J[65474]=[null,null,H.prototype.ya,H.prototype.Aa,"R2SET0"],J[65475]=[null,null,H.prototype.ya,H.prototype.Aa,"R3SET0"],J[65476]=[null,null,H.prototype.ya,H.prototype.Aa,"R4SET0"],J[65477]=[null,null,H.prototype.ya,H.prototype.Aa,"R5SET0"],J[65478]=
|
||||
[null,null,H.prototype.$b,H.prototype.Mc,"R6KERNEL"],J[65479]=[null,null,H.prototype.cc,H.prototype.Pc,"R7KERNEL"],J[65480]=[null,null,H.prototype.za,H.prototype.Ba,"R0SET1",1145],J[65481]=[null,null,H.prototype.za,H.prototype.Ba,"R1SET1",1145],J[65482]=[null,null,H.prototype.za,H.prototype.Ba,"R2SET1",1145],J[65483]=[null,null,H.prototype.za,H.prototype.Ba,"R3SET1",1145],J[65484]=[null,null,H.prototype.za,H.prototype.Ba,"R4SET1",1145],J[65485]=[null,null,H.prototype.za,H.prototype.Ba,"R5SET1",1145],
|
||||
J[65486]=[null,null,H.prototype.ac,H.prototype.Nc,"R6SUPER",1145],J[65487]=[null,null,H.prototype.bc,H.prototype.Oc,"R6USER",1145],J[65504]=[null,null,H.prototype.Lb,H.prototype.zc,"CTRL",1170],J[65520]=[null,null,H.prototype.tb,H.prototype.Ab,"LSIZE",1170],J[65522]=[null,null,H.prototype.tb,H.prototype.Ab,"HSIZE",1170],J[65524]=[null,null,H.prototype.kc,H.prototype.Xc,"SYSID",1170],J[65526]=[null,null,H.prototype.Kb,H.prototype.yc,"CPUERR",1170],J[65528]=[null,null,H.prototype.Rb,H.prototype.Fc,
|
||||
"MB",1170],J[65530]=[null,null,H.prototype.Wb,H.prototype.Ic,"PIR"],J[65532]=[null,null,H.prototype.jc,H.prototype.Wc,"SL"],J[65534]=[null,null,H.prototype.Zb,H.prototype.Lc,"PSW"],J);I[62594]=I[62592];I[62596]=I[62592];I[62598]=I[62592];I[62600]=I[62592];I[62602]=I[62592];I[62604]=I[62592];I[62606]=I[62592];I[62610]=I[62608];I[62612]=I[62608];I[62614]=I[62608];I[62616]=I[62608];I[62618]=I[62608];I[62620]=I[62608];I[62622]=I[62608];I[62626]=I[62624];I[62628]=I[62624];I[62630]=I[62624];I[62632]=I[62624];
|
||||
I[62634]=I[62624];I[62636]=I[62624];I[62638]=I[62624];I[62642]=I[62640];I[62644]=I[62640];I[62646]=I[62640];I[62648]=I[62640];I[62650]=I[62640];I[62652]=I[62640];I[62654]=I[62640];I[62658]=I[62656];I[62660]=I[62656];I[62662]=I[62656];I[62664]=I[62656];I[62666]=I[62656];I[62668]=I[62656];I[62670]=I[62656];I[62674]=I[62672];I[62676]=I[62672];I[62678]=I[62672];I[62680]=I[62672];I[62682]=I[62672];I[62684]=I[62672];I[62686]=I[62672];I[62690]=I[62688];I[62692]=I[62688];I[62694]=I[62688];I[62696]=I[62688];
|
||||
I[62698]=I[62688];I[62700]=I[62688];I[62702]=I[62688];I[62706]=I[62704];I[62708]=I[62704];I[62710]=I[62704];I[62712]=I[62704];I[62714]=I[62704];I[62716]=I[62704];I[62718]=I[62704];I[65410]=I[65408];I[65412]=I[65408];I[65414]=I[65408];I[65416]=I[65408];I[65418]=I[65408];I[65420]=I[65408];I[65422]=I[65408];I[65426]=I[65424];I[65428]=I[65424];I[65430]=I[65424];I[65432]=I[65424];I[65434]=I[65424];I[65436]=I[65424];I[65438]=I[65424];I[65442]=I[65440];I[65444]=I[65440];I[65446]=I[65440];I[65448]=I[65440];
|
||||
I[65450]=I[65440];I[65452]=I[65440];I[65454]=I[65440];I[65458]=I[65456];I[65460]=I[65456];I[65462]=I[65456];I[65464]=I[65456];I[65466]=I[65456];I[65468]=I[65456];I[65470]=I[65456];I[65506]=I[65504];I[65508]=I[65504];I[65510]=I[65504];I[65512]=I[65504];I[65514]=I[65504];I[65516]=I[65504];I[65518]=I[65504];q(function(){for(var a=B(document,"pdp11","device"),b=0;b<a.length;b++){var c,d=a[b];c=z(d);switch(c.type){case "default":c=new H(c);A(c,d);break;case "pc11":c=new K(c),A(c,d)}}});var Cb;
|
||||
if(Ta){var Db=new ArrayBuffer(2);(new DataView(Db)).setUint16(0,256,!0);Cb=256===(new Uint16Array(Db))[0]}else Cb=!1;var Eb=Cb;
|
||||
function F(a,b,c,d,e,f){this.m=a;this.id=Fb+=2;this.a=null;this.Ea=b;this.Wa=c;this.size=d||0;this.type=e||Gb;this.g=e==Hb;this.controller=null;db(this);this.la=this.Db=!1;if(d)if(f)this.controller=f,this.a=null,Ib(this,f.Bb);else if(Ta)this.b=new ArrayBuffer(d),this.s=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),Ib(this,Eb?Jb:Kb);else{this.a=Array(d>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;Ib(this,Lb)}else Ib(this)}
|
||||
var Gb=0,Hb=2,kb=4,mb=["NONE","RAM","ROM","VID","H/W"],Fb=0;
|
||||
F.prototype={constructor:F,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Ta)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.s.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(Ta)for(b=0;b<a.length;b++)this.s.setInt32(b<<2,a[b],!0);else this.a=a;return this.la=!0}return!1},w:function(){return 255},A:function(){},u:function(a,b){return this.eb(a++,b++)|this.eb(a,b)<<8},B:function(a,b,c){this.jb(a++,
|
||||
b&255,c++);this.jb(a,b>>8,c)},N:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ca:function(a,b){a&1&&ub(this.m,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},ha:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.la=!0},ta:function(a,b,c){a&1&&ub(this.m,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.la=!0},G:function(a,b){return this.I(a,b)},
|
||||
T:function(a,b){return this.W(a,b)},ea:function(a,b,c){this.g||this.yb(a,b,c)},ja:function(a,b,c){this.g||this.ra(a,b,c)},C:function(a){return this.c[a]},J:function(a){return this.c[a]},O:function(a,b){a&1&&ub(this.m,b);return this.s.getUint16(a,!0)},X:function(a,b){a&1&&ub(this.m,b);return this.o[a>>1]},da:function(a,b){this.c[a]=b;this.la=!0},ga:function(a,b){this.c[a]=b;this.la=!0},ia:function(a,b,c){a&1&&ub(this.m,c);this.s.setUint16(a,b,!0);this.la=!0},sa:function(a,b,c){a&1&&ub(this.m,c);this.o[a>>
|
||||
1]=b;this.la=!0}};function db(a,b,c){a.F=b;a.h=a.j=0;c&&((a.h=c.h)&&Mb(a,Nb,!1),(a.j=c.j)&&Ob(a,Nb,!1))}function Ob(a,b,c){c&&a.j||(a.jb=!a.g&&b[1]||a.A,a.Xa=!a.g&&b[3]||a.B);if(c||void 0===c)a.yb=b[1]||a.A,a.ra=b[3]||a.B}function Mb(a,b,c){c&&a.h||(a.eb=b[0]||a.w,a.R=b[2]||a.u);if(c||void 0===c)a.I=b[0]||a.w,a.W=b[2]||a.u}function Ib(a,b){b||(b=Pb);Mb(a,b,void 0);Ob(a,b,void 0)}
|
||||
var Pb=[],Lb=[F.prototype.N,F.prototype.ha,F.prototype.ca,F.prototype.ta],Nb=[F.prototype.G,F.prototype.ea,F.prototype.T,F.prototype.ja];if(Ta)var Kb=[F.prototype.C,F.prototype.da,F.prototype.O,F.prototype.ia],Jb=[F.prototype.J,F.prototype.ga,F.prototype.X,F.prototype.sa];
|
||||
function Qb(a,b){u.call(this,"CPU",a,Qb);var c=a.multiplier||1;this.Sa=a.cycles||b;this.ea=c;this.ab=Math.round(this.Sa/1E4)/100;this.ga=this.ab*this.ea;this.i.U=!1;this.i.wb=!1;this.i.Fa=a.autoStart;this.i.Ra=!1;this.Pa=this.ia=0;this.Qa=a.csStart;this.sa=a.csInterval;this.ta=a.csStop;this.G=[];this.sb=this.tc.bind(this);C(this)}w(Qb);var Rb=["power","reset"];g=Qb.prototype;
|
||||
g.fa=function(a,b,c,d){this.w=a;this.m=b;this.F=d;for(b=0;b<Rb.length;b++)(c=this.s[Rb[b]])&&this.w.V(null,Rb[b],c);a=Sb(a,"autoStart");null!=a&&(this.i.Fa="true"==a?!0:"false"==a?!1:!!a);C(this)};g.reset=function(){};g.save=function(){return null};g.restore=function(){return!1};g.$=function(a,b){if(!b){if(a&&this.restore){Tb(this);if(!this.restore(a))return!1;Ub(this)}else this.reset();this.P("No debugger detected")}this.w.ba();return!0};g.Z=function(a){return a?this.save():!0};
|
||||
g.Fa=function(){return this.i.Fa||void 0===this.s.run?(Vb(this),!0):!1};g.mb=function(){return 0};function Ub(a){void 0===a.Qa&&(a.Qa=0);void 0===a.sa&&(a.sa=-1);void 0===a.ta&&(a.ta=-1);a.i.Ra=0<=a.Qa&&0<a.sa;a.i.Ra&&(a.Pa=0,a.ia=a.Qa-a.J)}
|
||||
g.V=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.s[b]=c,!0;case "run":return this.s[b]=c,c.onclick=function(){var a;if(a=d.w)if(a=d.w,a.i.M)a=!0;else{var b=null,c,l=x(a.id);for(c=0;c<l.length&&(b=l[c],b===a||b.i.ready);c++);if(c==l.length)for(c=0;c<l.length&&(b=l[c],b===a||b.i.M);c++);c==l.length&&(b=a);m("The "+b.type+" component ("+b.id+") is not "+(b.i.ready?"powered yet":"ready yet"+(b.Ua?" (waiting for notification)":""))+".");a=!1}a&&(d.i.U?D(d):Vb(d))},!0;case "speed":return this.s[b]=
|
||||
c,!0;case "setSpeed":return this.s[b]=c,c.onclick=function(){Wb(d,d.ea<<1)},c.textContent=this.ga.toFixed(2)+"Mhz",!0}return!1};g.ba=function(){var a=this.s.speed;a&&(a.textContent=this.i.U&&this.ca?this.ca.toFixed(2)+"Mhz":"Stopped")};function Xb(a,b){var c=1;b&&1<a.ea&&a.ca&&(c=a.ca/a.ab);a.qb=Math.round(1E3/30);a.Ta=Math.floor(a.Sa/30*c);b||(a.Ca=a.Ta);a.cb=0}function Yb(a){return a.J+a.W+a.ha-a.a}function Tb(a){a.ca=0;a.rb=0;a.J=a.W=a.ha=a.a=0;Ub(a);Wb(a,1)}
|
||||
function Wb(a,b){if(void 0!==b&&(.8>a.ca/a.ga&&(b=1),a.ea=b,b=a.ab*a.ea,a.ga!=b)){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var c=a.s.setSpeed;c&&(c.textContent=b);a.P("target speed: "+b)}a.J+=a.W;a.W=0;a.O=sa();a.da=0;Xb(a)}function vb(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function xb(a,b,c,d){0<=b&&b<a.G.length&&(d||0>a.G[b][0])&&(c=a.Sa*a.ea/1E3*c|0,a.G[b][0]=c+Zb(a))}function Zb(a,b){var c=a.ha-=a.a;a.a=0;b&&(a.ha=0);return c}
|
||||
g.tc=function(){if(this.i.U){this.cb>=this.Sa&&Xb(this,!0);this.Da=0;this.Oa=sa();if(this.da){var a=this.Oa-this.da;a>this.qb&&(this.O+=a,this.O>this.Oa&&(this.O=this.Oa))}try{do{for(var b,c=this.i.Ra?1:this.Ta,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.xb(b)}catch(n){if("number"!=typeof n)throw n;}b=Zb(this,!0);this.Da+=b;this.W+=b;a=b;if(this.i.Ra){var f=!1;this.Pa=this.Pa+this.mb()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.sa,f=!0);0<=this.ta&&this.ta<=Yb(this)&&
|
||||
(this.sa=this.ta=-1,Ub(this),D(this),f=!0);f&&this.P(Yb(this)+" cycles: checksum="+ja(this.Pa))}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.Ca-=b;if(0>=this.Ca){this.Ca+=this.Ta;15<=++this.rb&&(this.w&&this.w.ba(),this.rb=0);break}}while(this.i.U)}catch(n){D(this);this.w&&this.w.stop(sa(),Yb(this));b=n.stack||n.message;this.i.error=!0;this.K(b);return}if(this.i.U){b=setTimeout;c=this.sb;this.da=sa();d=this.qb;this.Da&&(d=Math.round(d*this.Da/
|
||||
this.Ta));d-=this.da-this.Oa;if(e=this.da-this.O)this.ca=Math.round(this.W/(10*e))/100,864E5<=e&&(this.J=0,Wb(this));if(0>d||this.ca<this.ga)-1E3>d&&(this.O-=d),d=0;this.cb+=this.Da;this.da+=d;b(c,d)}}};function Vb(a){var b;a.i.error?(a.P(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.U)a.P(a.toString()+" busy");else{Wb(a);a.i.U=!0;a.i.wb=!0;if(b=a.s.run)b.textContent="Halt";a.w&&a.w.start(a.O,Yb(a));setTimeout(a.sb,0)}}g.xb=function(){return 0};
|
||||
function D(a){if(a.i.U){Zb(a);a.J+=a.W;a.W=0;a.i.U=!1;var b=a.s.run;b&&(b.textContent="Run");a.w&&a.w.stop(sa(),Yb(a))}a.i.complete=void 0}function $b(a){this.Ja=+a.model||1170;this.ob=a.addrReset||0;Qb.call(this,a,6666667);this.decode=1120==this.Ja?ac.bind(this):bc.bind(this);cc(this);this.T=0;this.X=null;this.i.complete=this.i.Cb=!1}w($b,Qb);g=$b.prototype;g.reset=function(){this.status("model "+this.Ja);this.i.U&&D(this);cc(this);Tb(this);this.i.error=!1;this.parent.reset.call(this)};
|
||||
function cc(a){a.j=65536;a.g=32768;a.h=65535;a.o=32768;a.v=15;a.f=[0,0,0,0,0,0,0,a.ob];a.wa=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.u=0;a.Ma=0;a.Gb=[4,2,0,1];a.D=[[0,0,0,0,0,0,0,0,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]];a.S=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.vb=[0,0,0,0,0,0,0,0];a.ub=0;a.l=0;a.B=a.C=0;a.c=a.b=a.$a=0;a.ja=-1;dc(a)}function dc(a){a.qa=255;a.H=0;a.hb=0;a.A=0;a.oa=0;a.gb=0;a.pa=0;a.Ga=0;a.La=0;a.bb=262143;a.Na=253952;a.l|=2;a.m&&zb(a)}function zb(a){a.Ga?(a.N=65536,a.I=a.Fb,a.R=a.qc,a.Xa=a.cd,gb(a.m,a.pa&16?22:18)):(a.N=0,a.I=a.Eb,a.R=a.pc,a.Xa=a.bd,gb(a.m,16))}function ec(a,b){a.ob=b;L(a,b);a.F&&(D(a),a.F.ba())}g.mb=function(){return 0};
|
||||
g.save=function(){var a=new M(this);a.set(0,[]);a.set(1,[this.J,this.ea]);a.set(2,qb(this.m));return a.data()};g.restore=function(a){var b=a[1];this.J=b[1];Wb(this,b[3]);a:{b=this.m;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.B){for(var f=0,h=Array(b.B),l=0;l<e.length-1;)for(var n=e[l++],r=e[l++];n--;)h[f++]=r;e=h}f=b.b[d];if(!f||!f.restore(e)){m("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function N(a){return a.j&65536?1:0}
|
||||
g.ma=function(){return this.o&32768?8:0};function fc(a){var b=a.f[7];a.A&57344||(a.oa=0,a.gb=b);a.f[7]=b+2&65535;return a.R(b)}function gc(a,b){var c=a.f[7];a.f[7]=c+b&65535;return c}function L(a,b){a.f[7]=b&65535}function yb(a,b){return{wc:a,xa:b,next:null}}function wb(a,b){if(b!=a.X){var c=a.X;if(!c||c.xa<=b.xa)b.next=c,a.X=b;else{do{var d=c.next;if(!d||d.xa<=b.xa){b.next=d;c.next=b;break}c=d}while(c)}}a.l|=2}function Ya(a){return a.v=a.v&63728|a.ma()|(a.h&65535?0:4)|(a.g&32768?2:0)|N(a)}
|
||||
function Bb(a,b){a.o=b<<12;a.h=~b&4;a.g=b<<14;a.j=b<<16;if((b^a.v)&2048)for(var c=a.wa.length;0<=--c;){var d=a.f[c];a.f[c]=a.wa[c];a.wa[c]=d}a.u=b>>14&3;c=a.v>>14&3;a.u!=c&&(a.aa[c]=a.f[6],a.f[6]=a.aa[a.u]);a.v=b;a.l|=2}function O(a,b){a.l&128||(a.o=a.h=b,a.g=0)}function P(a,b,c){a.l&128||(a.o=a.h=a.j=b,a.g=c||0)}function hc(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^b)&(d^b))}function Q(a,b){a.l&128||(a.o=a.h=a.j=b,a.g=a.o^a.j>>1)}function ic(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^d)&(d^b))}
|
||||
function G(a,b,c){if(!a.T){var d=!1;0>a.ja?a.ja=Ya(a):a.u||(b=4,d=!0);a.A&57344||(a.oa=63222,a.gb=b);a.u=0;var e=a.R(b|a.N),f=a.R(b+2&65535|a.N);Bb(a,f&-12289|a.ja>>2&12288);d&&(a.H|=4,a.f[6]=4);jc(a,a.ja);jc(a,a.f[7]);L(a,e);a.l&=-113;a.ja=-1;if(26!=c)throw b;}}function kc(a){var b=lc(a),c=lc(a)&-1793;a.v&49152&&(c=c&-225|a.v&63712);L(a,b);Bb(a,c);a.l&=-17}
|
||||
function mc(a,b,c){var d,e,f,h=0;d=b>>13;a.pa&a.Gb[a.u]||(d&=7);e=a.D[a.u][d];f=(a.S[a.u][d]<<6)+(b&8191)&a.bb;if(f<a.Na)f&1&&!(c&1)&&(a.H|=64,G(a,4,10));else if(a.pa&16||253952<=f&&(f|=4186112),4186112>f){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.pa&32&&(f=a.Ib[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Na&&4186112>f&&(a.H|=32,G(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.D[a.u][d]=e;if(4194170!==f||a.u)a.La=a.u,a.Ma=d;h&&(h&57344&&(0<=a.ja&&(h|=128),a.A&57344||(a.A=a.A|h|a.La<<5|a.Ma<<1),G(a,168,16)),a.A&61440||!(4191360>f||4194239<f)||(a.A|=4096,a.A&512&&(a.l|=32)));return f}function nc(a,b,c){b&1&&a.a--;a=a.m;a.b[(b&a.h)>>>a.m].jb(b&a.g,c&255,b)}function lc(a){var b=a.R(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b}
|
||||
function jc(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.oa=a.oa<<8|246);!a.u&&c<=a.qa&&4<c&&(c<=a.qa-32?(a.H|=4,a.f[6]=4,G(a,4,18)):(a.H|=8,a.l|=4));a.Xa(c,b)}
|
||||
function oc(a,b,c,d){var e,f,h=d&8?0:a.N;switch(b){case 0:return G(a,4,20),0;case 1:return 6===c&&!a.u&&d&4&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32||65534<=a.f[6]?(a.H|=4,a.f[6]=4,G(a,4,22)):(a.H|=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.R(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.R(e)|h;a.a-=
|
||||
8;break;case 6:return e=a.R(gc(a,2)),e=e+a.f[c]&65535|h,a.a-=6,e;case 7:return e=a.R(gc(a,2)),e=e+a.f[c]&65535,e=a.R(e|a.N)|h,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!h||a.A&57344||(a.oa=a.oa<<8|f<<3&248|c);6==c&&!a.u&&d&4&&0>=f&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32?(a.H|=4,a.f[6]=4,G(a,4,24)):(a.H|=8,a.l|=64));return e}g.Ia=function(a,b){this.Ga?(this.T++,nc(this,mc(this,a,5),b),this.T--):this.m.Ia(a,b)};g.Eb=function(a,b,c){return oc(this,a,b,c)};
|
||||
g.Fb=function(a,b,c){return mc(this,oc(this,a,b,c),c)};g.pc=function(a){return ob(this.m,a)};g.qc=function(a){return ob(this.m,mc(this,a,2))};g.bd=function(a,b){pb(this.m,a,b&65535)};g.cd=function(a,b){pb(this.m,mc(this,a,4),b)};function pc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=oc(a,b,d,2),c&65536||61440!==(a.v&61440)&&(d&=65535),a.u=a.v>>12&3,c=a.R(d|c&a.N),a.u=a.v>>14&3):c=6!=d||(a.v>>2&12288)===(a.v&12288)?a.f[d]:a.aa[a.v>>12&3];return c}
|
||||
function qc(a,b,c,d){a.A&57344||(a.oa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=oc(a,b,e,4),c&65536||(e&=65535),a.u=a.v>>12&3,e=mc(a,e|c&65536,4),a.u=a.v>>14&3,pb(a.m,e,d)):6!=e||(a.v>>2&12288)===(a.v&12288)?a.f[e]=d:a.aa[a.v>>12&3]=d}function rc(a,b){b>>=6;var c=a.C=b&7;(b=a.B=(b&56)>>3)?(c=a.I(b,c,3),a=nb(a.m,c)):a=a.f[c]&255;return a}function R(a,b){b>>=6;var c=a.C=b&7;return(b=a.B=(b&56)>>3)?ob(a.m,a.I(b,c,2)):a.f[c]}function sc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return oc(a,b,c,8)}
|
||||
function tc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.I(b,c,3),a=nb(a.m,c)):a=a.f[c]&255;return a}function uc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?ob(a.m,a.I(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.$a=a.I(b,e,7),nc(a,e,d.call(a,c,nb(a.m,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.I(b,e,6),pb(a.m,e,d.call(a,c,ob(a.m,e)))):a.f[e]=d.call(a,c,a.f[e])}
|
||||
function vc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?nc(a,a.I(b,e,5),c):a.f[e]=c?d&1?c<<24>>24&65535:a.f[e]&-256|c&255:a.f[e]&-256;return c}function wc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?pb(a.m,a.I(b,d,4),c):a.f[d]=c&65535;return c}function U(a,b,c){c&&(L(a,a.f[7]+(b<<24>>23)),a.a-=2);a.a-=3}
|
||||
g.xb=function(a){this.i.complete=!0;this.i.Cb=!1;this.i.wb=!1;this.ha=this.a=a;do{if(this.l&&(this.l&112&&(this.l&32?G(this,168,28):this.l&64?G(this,4,30):this.l&16&&G(this,12,32),this.l&=-113),this.l&7))if(this.l&2){this.l&=-3;var b=160,c=(this.hb&224)>>5;if(a=this.X&&this.X.xa>c?this.X:null)b=a.wc,c=a.xa;c>(this.v&224)>>5?(this.l&4&&(gc(this,2),this.l&=-5),G(this,b,26),c=!0):c=!1;if(c&&a)if(c=this.X,c==a)this.X=a.next;else for(;c;){b=c.next;if(b==a){c.next=b.next;break}c=b}}else this.l&1&&this.l++;
|
||||
this.l=this.l&7|this.v&16;this.decode(fc(this))}while(0<this.a);return this.i.complete?this.ha-this.a:void 0===this.i.complete?0:-1};q(function(){for(var a=B(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new $b(d);A(d,c)}});function xc(a,b){var c=b+a;hc(this,c,a,b);return c&65535}function yc(a,b){var c=b+a;hc(this,c<<8,a<<8,b<<8);return c&255}function zc(a,b){a=b<<1;Q(this,a);return a&65535}function Ac(a,b){a=b<<1;Q(this,a<<8);return a&255}
|
||||
function Bc(a,b){a=b&32768|b>>1|b<<16;Q(this,a);return a&65535}function Cc(a,b){a=b&2048|b>>1|b<<8;Q(this,a<<8);return a&255}function Dc(a,b){a=b&~a;O(this,a);return a}function Ec(a,b){a=b&~a;O(this,a<<8);return a}function Fc(a,b){a|=b;O(this,a);return a}function Gc(a,b){a|=b;O(this,a<<8);return a}function Hc(a,b){a=~b|65536;P(this,a);return a&65535}function Ic(a,b){a=~b|256;P(this,a<<8);return a&255}function Jc(a,b){a=b-a;this.l&128||(this.o=this.h=a,this.g=b&(b^a));return a&65535}
|
||||
function Kc(a,b){a=b-a;var c=a<<8;b<<=8;this.l&128||(this.o=this.h=c,this.g=b&(b^c));return a&255}function Lc(a,b){a=b+a;this.l&128||(this.o=this.h=a,this.g=a&(b^a));return a&65535}function Mc(a,b){a=b+a;var c=a<<8;this.l&128||(this.o=this.h=c,this.g=c&(b<<8^c));return a&255}function Nc(a,b){a=-b;P(this,a,a&b&32768);return a&65535}function Oc(a,b){a=-b;P(this,a<<8,(a&b&128)<<8);return a&255}function Pc(a,b){a=b<<1|this.j>>16&1;Q(this,a);return a&65535}
|
||||
function Qc(a,b){a=b<<1|this.j>>16&1;Q(this,a<<8);return a&255}function Rc(a,b){a=(this.j&65536|b)>>1|b<<16;Q(this,a);return a&65535}function Sc(a,b){a=((this.j&65536)>>8|b)>>1|b<<8;Q(this,a<<8);return a&255}function Tc(a,b){var c=b-a;ic(this,c,a,b);return c&65535}function Uc(a,b){var c=b-a;ic(this,c<<8,a<<8,b<<8);return c&255}function Vc(a,b){this.l&128||(this.o=this.h=b&65280,this.g=this.j=0);return(b<<8|b>>8)&65535}function Wc(a,b){a^=b;O(this,a);return a&65535}
|
||||
function Xc(a){T(this,a,R(this,a),xc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Yc(a){var b=uc(this,a);a=a>>6&7;var c=this.f[a];c&32768&&(c|=4294901760);this.j=this.g=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.j=c<<17-b,c>>=b;else if(b)if(16<b)this.g=c,c=0;else{this.j=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.g=32768)}this.f[a]=c&65535;this.o=this.h=c;this.a-=(this.c?6:7)+b}
|
||||
function Zc(a){var b=uc(this,a);a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.j=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.j=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.h=d>>16|d;this.a-=(this.c?6:7)+b}function $c(a){U(this,a,!N(this))}function ad(a){U(this,a,N(this))}
|
||||
function bd(a){T(this,a,R(this,a),Dc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function cd(a){S(this,a,rc(this,a),Ec);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function dd(a){T(this,a,R(this,a),Fc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function ed(a){S(this,a,rc(this,a),Gc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}
|
||||
function fd(a){O(this,R(this,a)&uc(this,a));this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function gd(a){O(this,(rc(this,a)&tc(this,a))<<8);this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function hd(a){U(this,a,this.h&65535?0:4)}function id(a){U(this,a,!this.ma()==!(this.g&32768))}function jd(a){U(this,a,!!(this.h&65535)&&!this.ma()==!(this.g&32768))}function kd(a){U(this,a,!N(this)&&!!(this.h&65535))}
|
||||
function ld(a){U(this,a,(this.h&65535?0:4)||!this.ma()!=!(this.g&32768))}function md(a){U(this,a,N(this)||(this.h&65535?0:4))}function nd(a){U(this,a,!this.ma()!=!(this.g&32768))}function od(a){U(this,a,this.ma())}function pd(a){U(this,a,!!(this.h&65535))}function qd(a){U(this,a,!this.ma())}function rd(){G(this,12,1);this.a-=5}function sd(a){U(this,a,!0)}function td(a){U(this,a,!(this.g&32768))}function ud(a){U(this,a,this.g&32768?2:0)}
|
||||
function V(a){a&1&&(this.j=0);a&2&&(this.g=0);a&4&&(this.h=1);a&8&&(this.o=0);this.a-=5}function vd(a){var b=R(this,a);a=uc(this,a);ic(this,b-a,a,b);this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function wd(a){var b=rc(this,a)<<8;a=tc(this,a)<<8;ic(this,b-a,a,b);this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}
|
||||
function xd(a){var b=uc(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=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.h=d>>16|d,this.o=d>>16):(this.g=32768,this.h=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.h=this.o=0,this.g=32768,this.j=65536,this.a-=7}function yd(){G(this,24,2);this.a-=25}
|
||||
function zd(){this.v&49152?(this.H|=128,G(this,4,3)):this.F?this.F.c():D(this);this.a-=7}function Ad(){G(this,16,4);this.a-=25}var Bd=[0,7,7,10,7,11,9,13];function W(a){var b=this.a;L(this,sc(this,a));this.a=b-Bd[this.c]}var Cd=[0,14,14,17,14,18,16,20];function Dd(a){var b=this.a,c=sc(this,a);a=a>>6&7;jc(this,this.f[a]);this.f[a]=this.f[7];L(this,c);this.a=b-Cd[this.c]}var Ed=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
|
||||
function Fd(a){var b=R(this,a),c=this.a;O(this,wc(this,a,b));this.a=c-Ed[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)}function Gd(a){var b=rc(this,a);O(this,vc(this,a,b,1)<<8);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Hd=[7,13,13,17,14,18,17,21];
|
||||
function Id(a){var b=uc(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.h=this.o|b,this.g=0,this.j=-32768>b||32767<b?65536:0);this.a-=23}function Jd(){this.a-=5}function Kd(){this.v&49152||(dc(this),this.m.reset());this.a-=667}function Ld(){kc(this);this.l|=this.v&16;this.a-=13}function Md(a){if(a&8)G(this,8,6);else{var b=lc(this);a&=7;L(this,this.f[a]);this.f[a]=b;this.a-=9}}
|
||||
function X(a){a&1&&(this.j=65536);a&2&&(this.g=32768);a&4&&(this.h=0);a&8&&(this.o=32768);this.a-=5}function Nd(a){var b=(a&448)>>6;if(this.f[b]=this.f[b]-1&65535)L(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Od(a){T(this,a,R(this,a),Tc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Pd(a){T(this,a,0,Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Qd(){G(this,28,5);this.a-=5}function Rd(){this.l&4||this.w.ba();this.l|=4;gc(this,-2);this.a-=3}
|
||||
function Sd(a){T(this,a,R(this,a),Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){G(this,8,6)}function ac(a){Td[a>>12].call(this,a)}function Ud(a){Vd[a>>6&3].call(this,a)}function Wd(a){Xd[a>>6&3].call(this,a)}function Yd(a){Zd[a>>6&3].call(this,a)}function ae(a){be[a&15].call(this,a)}function ce(a){de[a&15].call(this,a)}function ee(a){fe[a>>6&3].call(this,a)}function ge(a){he[a>>6&3].call(this,a)}function ie(a){je[a>>6&3].call(this,a)}
|
||||
var Td=[function(a){ke[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,Y,function(a){le[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],ke=[function(a){me[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Ud,Wd,Yd,Y,Y,Y],Vd=[function(a){P(this,wc(this,a,0));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)},function(a){T(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],Xd=[function(a){T(this,a,0,Nc);
|
||||
this.a-=this.c?11:6},function(a){T(this,a,N(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,N(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=uc(this,a);P(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Zd=[function(a){T(this,a,0,Rc);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,0,Bc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}],me=[function(a){ne[a&
|
||||
15].call(this,a)},Y,Y,Y,W,W,W,W,Md,Y,ae,ce,Pd,Pd,Pd,Pd],ne=[zd,Rd,Ld,rd,Ad,Kd,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],be=[Jd,function(){this.j=0;this.a-=5},function(){this.g=0;this.a-=5},V,function(){this.h=1;this.a-=5},V,V,V,function(){this.o=0;this.a-=5},V,V,V,V,V,V,V],de=[Jd,function(){this.j=65536;this.a-=5},function(){this.g=32768;this.a-=5},X,function(){this.h=0;this.a-=5},X,X,X,function(){this.o=32768;this.a-=5},X,X,X,X,X,X,X],le=[qd,od,kd,md,td,ud,$c,ad,yd,Qd,ee,ge,ie,Y,Y,Y],fe=[function(a){P(this,vc(this,a,
|
||||
0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Ic);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Mc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)}],he=[function(a){S(this,a,0,Oc);this.a-=this.c?11:6},function(a){S(this,a,N(this)?1:0,yc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,N(this)?1:0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=tc(this,a);P(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}],
|
||||
je=[function(a){S(this,a,0,Sc);this.a-=this.c?9+(this.$a&1):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,0,Cc);this.a-=this.c?9+(this.$a&1):3+(7==this.b?2:0)},function(a){S(this,a,0,Ac);this.a-=this.c?9:3+(7==this.b?2:0)}];function bc(a){oe[a>>12].call(this,a)}
|
||||
var oe=[function(a){pe[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,function(a){qe[a>>8&15].call(this,a)},function(a){re[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],pe=[function(a){se[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Ud,Wd,Yd,function(a){te[a>>6&3].call(this,a)},Y,Y],te=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.R(a|this.N);L(this,this.f[5]);this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=pc(this,a,0);jc(this,a);O(this,a);this.a-=11},function(a){var b=lc(this),c=this.a;
|
||||
qc(this,a,0,b);O(this,b);this.a=c-Hd[this.c]},function(a){O(this,wc(this,a,this.ma?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],se=[function(a){ue[a&15].call(this,a)},Y,Y,Y,W,W,W,W,Md,function(a){a&8?(this.v&49152||(this.v=this.v&-2017|(a&7)<<5,this.l|=1),this.a-=5):G(this,8,6)},ae,ce,Pd,Pd,Pd,Pd],ue=[zd,Rd,Ld,rd,Ad,Kd,function(){kc(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],qe=[Id,Id,xd,xd,Yc,Yc,Zc,Zc,Sd,Sd,Y,Y,Y,Y,Nd,Nd],re=[qd,od,kd,md,td,ud,$c,ad,yd,Qd,ee,ge,ie,function(a){ve[a>>6&3].call(this,a)},
|
||||
Y,Y],ve=[Y,function(a){a=pc(this,a,65536);jc(this,a);O(this,a);this.a-=11},function(a){var b=lc(this),c=this.a;qc(this,a,65536,b);O(this,b);this.a=c-Hd[this.c]},Y];
|
||||
function we(a){u.call(this,"ROM",a,we);this.Y=this.b=null;this.j=a.addr;this.c=a.size;this.h=a.alias;this.g=a.file;this.o=ka(this.g);if(this.g){a=this.g;var b=la(this.o);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;k(a,null,!0,function(a,b,f){f?c.K("Unable to load ROM resource (error "+f+": "+a+")"):(Pa(c.ra,a,b),(a=ua(a,b))?(c.b=a.L,c.Y=a.Y):c.g=null,xe(c))})}}w(we);we.prototype.fa=function(a,b,c,d){this.m=b;this.a=c;this.F=d;xe(this)};
|
||||
we.prototype.$=function(){this.Y&&(this.F&&this.F.a(this.id,this.j,this.c,this.Y),delete this.Y);return!0};we.prototype.Z=function(){return!0};
|
||||
function xe(a){if(!Sa(a)){if(a.g){if(!a.b||!a.m)return;a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+ja(a.b.length,8,!0)+") does not match specified size ("+ja(a.c,8,!0)+")";a.i.error=!0;a.K(b)}else{b=a.j;if(jb(a.m,b,a.c,Hb)){var c;for(c=0;c<a.b.length;c++)a.m.Ia(b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.h?b.push(a.h):null!=a.h&&a.h.length&&(b=a.h);for(c=0;c<b.length;c++){var d=a,e=b[c],f=ib(d.m,d.j,d.c);hb(d.m,e,d.c,f)}delete a.b}}}C(a)}}
|
||||
q(function(){for(var a=B(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new we(d);A(d,c)}});
|
||||
function ye(a){u.call(this,"RAM",a,ye);this.Y=this.c=null;this.h=a.addr;this.j=a.size;this.va=a.load;this.ua=a.exec;this.g=!1;this.b=a.file;this.o=ka(this.b);if(this.b){a=this.b;var b=la(this.o);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;k(a,null,!0,function(a,b,f){f?c.K("Unable to load RAM resource (error "+f+": "+a+")"):(Pa(c.ra,a,b),(a=ua(a,b))?(c.c=a.L,c.Y=a.Y,null==c.va&&(c.va=a.va),null==c.ua&&(c.ua=a.ua)):c.b=null,ze(c))})}}w(ye);
|
||||
ye.prototype.fa=function(a,b,c,d){this.m=b;this.a=c;this.F=d;ze(this)};ye.prototype.$=function(){return!0};ye.prototype.Z=function(){return!0};function ze(a){if(a.m&&(!a.g&&a.j&&jb(a.m,a.h,a.j,1)&&(a.g=!0),!Sa(a))){if(!a.g)m("No RAM allocated");else if(a.b){if(!a.c||!a.m)return;Ae(a,a.c,a.va,a.ua,a.h);delete a.c}C(a)}}ye.prototype.reset=function(){};
|
||||
function Ae(a,b,c,d,e){var f=!1;if(null==c)for(var h=0;h<b.length-1;){var l=b[h]&255|(b[h+1]&255)<<8;if(l)if(l&255){if(1!=l)break;if(h+6>=b.length)break;for(var h=h+2,n=b[h++]&255|(b[h++]&255)<<8,r=b[h++]&255|(b[h++]&255)<<8,l=l+((n&255)+(n>>8)+(r&255)+(r>>8)),t=h,y=n-=6;0<n&&h<b.length;)l+=b[h++]&255,n--;if(n||h>=b.length)break;l+=b[h++]&255;if(l&255)break;if(y)for(;y--;)a.a.Ia(r++,b[t++]&255);else r&1?D(a.a):ec(a.a,r);f=!0}else h++;else h+=2}if(!f&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)a.a.Ia(c+
|
||||
e,b[e]);null!=d&&ec(a.a,d);f=!0}return f}q(function(){for(var a=B(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new ye(d);A(d,c)}});function Be(a){u.call(this,"Keyboard",a,Be);C(this)}w(Be);Be.prototype.V=function(){return!1};Be.prototype.fa=function(a,b,c,d){this.w=a;this.a=c;this.F=d};q(function(){for(var a=B(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Be(d);A(d,c)}});
|
||||
function Z(a){this.g=this.j=null;this.G=a.tabSize;this.B=a.charBOL;this.o=0;u.call(this,"SerialPort",a,Z);var b=a.binding;if("console"==b)this.j="";else{var c;a=Ce;b&&(void 0===c&&(c="Panel"),(c=Ra(c,this.id))&&(b=c.s[b])&&this.V(null,a,b))}this.u=this.A=null;this.exports={connect:this.nb,receiveData:this.fb}}w(Z);var Ce="buffer";g=Z.prototype;
|
||||
g.V=function(a,b,c){var d=this;switch(b){case Ce:return this.s[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.fb(b);return!0},c.onkeypress=function(a){a=a||window.event;d.fb(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
|
||||
g.fa=function(a,b,c,d){this.w=a;this.m=b;this.a=c;this.F=d;var e=this;this.N=yb(48,4);this.I=vb(this.a,function(){e.b&128||!e.h.length||(e.C=e.h.shift(),e.b|=128,e.b&64&&wb(e.a,e.N))});this.O=yb(52,4);this.J=vb(this.a,function(){e.c|=128;e.c&64&&wb(e.a,e.O)});sb(b,this,De);C(this)};
|
||||
g.nb=function(){if(!this.u){var a=Sb(this.w,"connection");if(a){var b=a.split("->");if(2==b.length){var c=qa(b[0]);if(c!=this.Ka)return;b=qa(b[1]);if(this.u=Qa(b)){var d=this.u.exports;if(d){var e=d.connect;e&&e.call(this.u);if(this.A=d.receiveData){this.status(this.ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.$=function(a,b){if(!b)if(this.nb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
g.Z=function(a){return a?this.save():!0};g.reset=function(){Ee(this)};g.save=function(){var a=new M(this);a.set(0,[]);return a.data()};g.restore=function(){return Ee(this)};function Ee(a){a.C=0;a.b=0;a.c=128;a.h=[];return!0}g.fb=function(a){if("number"==typeof a)this.h.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.h.push(a.charCodeAt(b));else this.h=this.h.concat(a);xb(this.a,this.I,1);return!0};g.ec=function(){return this.b&65535};g.Rc=function(a){this.b=this.b&-112|a&111};
|
||||
g.dc=function(){this.b&=-129;0<this.h.length&&xb(this.a,this.I,1);return this.C};g.Qc=function(){};g.sc=function(){return this.c};g.ed=function(a){128==(this.c&192)&&a&64&&xb(this.a,this.J,1);this.c=this.c&-70|a&69};g.rc=function(){return 0};
|
||||
g.dd=function(a){if(a&=255){this.A&&this.A.call(this.u,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=ra[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.j){if(10==a||1024<=this.j.length)this.P(this.j),
|
||||
this.j="";10!=a&&(this.j+=String.fromCharCode(a))}this.c&=-129;xb(this.a,this.J,1)}};var Fe={},De=(Fe[65392]=[null,null,Z.prototype.ec,Z.prototype.Rc,"RCSR"],Fe[65394]=[null,null,Z.prototype.dc,Z.prototype.Qc,"RBUF"],Fe[65396]=[null,null,Z.prototype.sc,Z.prototype.ed,"XCSR"],Fe[65398]=[null,null,Z.prototype.rc,Z.prototype.dd,"XBUF"],Fe);q(function(){for(var a=B(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Z(d);A(d,c)}});
|
||||
function K(a){u.call(this,"PC11",a,K);this.c=a.autoMount||null;this.B=this.u=this.b=this.h=0;this.A=[];this.o=Ge;this.g=He;this.j="";this.C=!Aa("Mobi")&&window&&"FileReader"in window}w(K);var Ge="",He=0;g=K.prototype;
|
||||
g.V=function(a,b,c){var d=this,e=He;switch(b){case "listTapes":return this.s[b]=c,c.onchange=function(){var a=d.s.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(n){m("PC11 option error: "+n.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.s[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.s[b]=c,c.onclick=function(){var a=
|
||||
d.s.listTapes;a&&Ie(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(this.C)return this.s[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ie(d,ka(b,!0),b,1,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
|
||||
g.fa=function(a,b,c,d){this.w=a;this.m=b;this.a=c;this.F=d;this.G=Je(a);var e=this;if((this.c=Sb(this.w,"autoMount")||this.c)&&"string"==typeof this.c)try{this.c=eval("("+this.c+")")}catch(f){m("PC11 auto-mount error: "+f.message+" ("+this.c+")"),this.c=null}this.J=yb(56,4);this.I=vb(this.a,function(){Ke(e)});sb(b,this,Le);Me(this,"None",Ge,!0);this.C&&Me(this,"Local Tape","?");Me(this,"Remote Tape","??");Ne(this)||C(this)};
|
||||
g.$=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};g.Z=function(a){return a?this.save():!0};g.reset=function(){this.b&=-2241;this.u=0};function Ne(a){a.h=0;if(a.c){var b=a.c.path||"",c;if(!(c=a.c.name))a:{if((c=a.s.listTapes)&&c.options)for(var d=0;d<c.options.length;d++){var e=c.options[d];if(e.value==b){c=e.text;break a}}c=ka(b,!0)}b&&c?Oe(a,c,b,1,!0):Pe(a)}return!!a.h}
|
||||
function Ie(a,b,c,d,e){if(c)if("?"==c)a.K('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=ka(c);a.status("Attempting to load "+c+' as "'+b+'"');a.o="??"}else a.o=c;Oe(a,b,c,d,!1,e)}else Qe(a,!1)}
|
||||
function Oe(a,b,c,d,e,f){var h=-1;if(a.j.toLowerCase()!=c.toLowerCase()||a.g!=d)h++,Qe(a,!0),a.i.Ya?a.K("PC11 busy"):(e&&a.h++,Re(a,b,c,d,f)?h++:a.i.Ya=!0);h&&a.status(1==a.g?"tape attached":"tape loaded")}
|
||||
function Re(a,b,c,d,e){var f=c;if(e){var h=new FileReader;h.onload=function(){var e=h.result;e&&(e=new Uint8Array(e,0,e.byteLength),Se(a,b,c,d,e),a.o="?");Pe(a)};h.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!k(f,null,!0,function(e,f,h){var l=0>h&&a.w&&!a.w.i.M;h?a.K('Unable to load tape "'+b+'" (error '+h+": "+e+")",l):(Pa(a.ra,e,f),(e=ua(e,f))&&Se(a,b,c,d,e.L,e.va,e.ua));
|
||||
a.i.Ya=!1;a.h&&(a.h--,a.h||C(a));Pe(a)})}function Me(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}function Pe(a){var b=a.s.listTapes;if(b&&b.options){a=a.o||a.j;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}
|
||||
function Se(a,b,c,d,e,f,h){a.j=c;a.g=d;2==d?a.G&&Ae(a.G,e,f,h)?a.status("tape loaded: "+b):(a.j="",a.o=Ge,a.g=He,a.status("error loading tape: "+b)):(a.B=0,a.A=e,a.status("tape attached: "+b))}function Qe(a,b){if(a.j||!1===b)a.j="",b||(a.g&&a.status(1==a.g?"tape detached":"tape unloaded"),a.o=Ge,a.g=He,Pe(a))}g.save=function(){return(new M(this)).data()};g.restore=function(){return!0};
|
||||
function Ke(a){1==(a.b&32769)&&!(a.b&128)&&a.B<a.A.length&&(a.u=a.A[a.B++]&255,a.b|=128,a.b&=-2049,a.b&64&&wb(a.a,a.J),xb(a.a,a.I,1E3/300,!0))}g.Yb=function(){return this.b&65534};g.Kc=function(a){a&1&&(this.b&32768?a&=-2:(this.b&=-129,this.b|=2048,this.u=0));this.b=this.b&-66|a&65;Ke(this)};g.Xb=function(){this.b&=-129;this.b|=2048;return this.u};g.Jc=function(){};var Te={},Le=(Te[65384]=[null,null,K.prototype.Yb,K.prototype.Kc,"PRS"],Te[65386]=[null,null,K.prototype.Xb,K.prototype.Jc,"PRB"],Te);
|
||||
function Ue(a,b,c){u.call(this,"Computer",a,Ue);this.i.M=!1;Ve(this,b);this.B=Sb(this,"autoPower",a);this.g=0;this.N=a.busWidth||a.buswidth;this.b=We;this.u=null;this.o=this.I=!1;this.O=Sb(this,"url")||"";(Math.random()+.1).toString(36);this.c=Xe(this);if(this.a=Ra("CPU",this.id)){this.F=Ra("Debugger",this.id);this.m=new Za({id:this.ra+".bus",busWidth:this.N},this.a,this.F);var d,e=x(this.id);if((this.h=Ra("Panel",this.id))&&this.h.Za)for(b=0;b<e.length;b++)d=e[b],d.K=this.h.K,d.P=this.h.P,d.Za=this.h.Za;
|
||||
this.P("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.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.fa&&d.fa(this,this.m,this.a,this.F);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.w=d:this.b=parseInt(d,10));var f;if(a=Sb(this,"state")||(f=!0,a.state))b=this.C=a,f||(this.o=!0,this.b=We),this.b&&(this.A=new M(this,
|
||||
"1.30.1"),Ye(this.A)?b=null:delete this.A);!b&&this.b&&(b=Ze(this))&&(this.o=!0);if(b){var h=this;k(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?": "+qa(b):"")+")")):(h.u=b,h.I=!0);C(h)})}else C(this);this.s.power||(this.B=!0);!c&&this.B&&$e(this,this.Ha)}else m("Unable to find CPU component")}w(Ue);var We=0;
|
||||
function Ve(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){m(d.message+" ("+c+")")}}a.J=b}function Sb(a,b,c){var d=b.toLowerCase(),d=Ja[b]||Ja[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 $e(a,b,c){for(var d=x(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Sa(f)){Sa(f,function(){$e(a,b,c)});return}}b.call(a,c)}
|
||||
function af(a,b){var c=new M(a,"1.30.1","validate");if(Ye(c)&&bf(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=Ue.prototype;
|
||||
g.Ha=function(a){void 0===a&&(a=this.b||(this.u?1:We));if(!this.g){this.g++;var b=!1,c=!1;this.G=!1;var d=this.A||new M(this,"1.30.1");if(-1==a)b=!0;else if(a>We){if(Ye(d,this.u)){this.j=new M(this,"1.30.1","failsafe");Ye(this.j)&&(cf(this,d),a=2,df(this.j));this.j.set("timestamp",ta());ef(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=bf(d)){var f=d.get("code"),h=d.get("data");f&&("ok"==f?Ye(d,h):("error"==
|
||||
f&&"no machine state"!=h?(this.K("Error: "+h),"unable to verify user"==h&&(za("user",""),this.c=null)):this.P(f+": "+h),df(d),Ye(d)?(c=bf(d),e=!0):c=!1))}e&&af(this,c?d:null)}else 2==a&&d.clear()}else af(this);delete this.u;delete this.A}e=x(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=ff(this,h,d,b,c));b=[d,a,c];-1!=a?$e(this,this.lb,b):this.lb(b)}};
|
||||
function ff(a,b,c,d,e){if(!b.i.M){b.i.M=!0;if(b.$){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.$(f,d)&&f&&(m("Unable to restore state for "+b.type),a.C&&!a.I?(c.clear(),a.b=We,window&&window.location.reload()):a.G=!0,b.$(null),e=!1)}if(!d&&b.pb)for(a=b.pb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
g.lb=function(a){var b=a[0],c=0>a[1];a=a[2];this.T=!0;this.i.M=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(ff(this,this.a,b,c,a),this.a.Fa());this.G&&(cf(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0};
|
||||
function cf(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.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;k("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function gf(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new M(a,"1.30.1"),h=new M(a,"1.30.1","validate"),l=ta();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.Z&&(c&&D(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.M=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;n<l.length;n++){var r=l[n];r.i.M&&(r.Z&&(d=r.Z(b,c),"object"===typeof d&&f.set(r.id,
|
||||
d)),c&&(r.i.M=!1,!1===d&&(e=null)))}e&&(c?(l=d=!1,b?(a.c&&hf(a,a.c,f.toString()),ef(h)&&ef(f)||(e=null,d=l=!0)):a.b&&(d=!0,l=3==a.b),d&&f.clear(l)):e=f.toString());c&&(a.i.M=!1,b=a.s.power)&&(b.textContent="Power");a.g=0;return e}g.reset=function(){this.m&&this.m.reset&&this.m.reset();for(var a=x(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.m&&c.reset&&c.reset()}};g.start=function(a,b){for(var c=x(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=x(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.V=function(a,b,c){var d=this;switch(b){case "power":return this.s[b]=c,c.onclick=function(){d.g||(d.i.M?gf(d,!1,!0):$e(d,d.Ha))},!0;case "reset":return this.s[b]=c,c.onclick=function(){if(d.i.M&&!d.g)if(d.b&&!d.w){var a=va("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");gf(d,a,!0);!a&&d.C?window&&window.location.reload():d.Ha(We)}else d.reset(),d.a&&d.a.Fa()},!0;case "save":if(ma())c.parentNode.removeChild(c);else return this.s[b]=
|
||||
c,c.onclick=function(){var a=Xe(d,!0);if(a){var b=!!(d.b&&!d.w||d.C),c=gf(d,b);b?hf(d,a,c):d.K("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Xe(a,b){var c=a.c;c||((c=ya("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=jf(a,c))||a.K("The user ID is invalid.")):b&&a.K("Browser local storage is not available"));return c}
|
||||
function jf(a,b){a.c=null;b=k(na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(za("user",b.data),a.c=b.data)}catch(d){m(d.message+" ("+c+")")}return a.c}function Ze(a){var b=null;a.c&&(b=na()+"/api/v1/user?req=load&user="+a.c+"&state="+kf(a,"1.30.1"));return b}
|
||||
function hf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=kf(a,"1.30.1");d.data=c;b=k(na()+"/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),za("user",""),a.c=null)}}
|
||||
function Je(a){var b;a=x(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}g.ba=function(a){this.a&&this.a.ba(a);this.h&&this.h.ba(a)};q(function(){for(var a=B(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=B(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],h=z(f),h=new Ue(h,d,!0);A(h,f);h.B&&$e(h,h.Ha)}});
|
||||
p.show.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ra("Computer",c.id))&&c.T&&!c.i.M&&c.Ha(-1)}});p.exit.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ra("Computer",c.id))&&c.i.M&&gf(c,!(!c.b||c.w),!0)}});function M(a,b,c){this.id=a.id;this.key=kf(a,b,c);this.F=a.F;df(this,a.Hb)}function kf(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
||||
M.prototype={constructor:M,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){df(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 df(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function ef(a){var b=!0;if(xa()){var c=JSON.stringify(a[a.id]);za(a.key,c)||(m("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function bf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){m(c.message||c),b=!1}return b}function Ye(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:xa()&&(b=ya(a.key))?(a[a.id]=b,a.a=!0):!1}var lf=0;
|
||||
function mf(a,b,c,d,e,f){e("Loading "+a+"...");k(a,null,!0,function(h,l,n){n?(l||(l="unable to load "+a+" ("+n+")"),f(l,null)):nf(l,a,b,c,d,e,f)})}
|
||||
function nf(a,b,c,d,e,f,h){function l(a,f){if(f)h(f,null);else{c&&(Pa(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?of(a,f,l):l(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function of(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");k(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],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[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);of(a,b,c)}})}else c(a,null)}
|
||||
function pf(a,b,c,d){function e(a){if(void 0===l){var b=h&&B(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--lf||Ga(!0));n=!1}var h,l,n=!0;lf++;Oa[a]={};try{if(h=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=r:y.appendChild(document.createTextNode(r));t.appendChild(y)}c||
|
||||
(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?mf(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(h.outerHTML=n,--lf||Ga(!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),--lf||Ga(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?mf(b,a,d,!0,e,r):nf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch($d){f($d.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return pf(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map
|
||||
|
|
|
|||
Loading…
Reference in a new issue