diff --git a/devices/pdp11/loader/README.md b/devices/pdp11/loader/README.md new file mode 100644 index 000000000..1def583b0 --- /dev/null +++ b/devices/pdp11/loader/README.md @@ -0,0 +1,57 @@ +--- +layout: page +title: PDP-11 Loaders +permalink: /devices/pdp11/loader/ +--- + +PDP-11 Loaders +-------------- + +The blog post "[PDP-11 Paper Tape BASIC](http://avitech.com.au/?page_id=709)" describes the *Bootstrap Loader*, +a small program used to load the *Absolute Loader*, which in turn loads the *PDP-11 BASIC Paper Tape*. + +Here's what the *Bootstrap Loader* looks like: + + Location Instruction + 037744 016701 + 037746 000026 + 037750 012702 + 037752 000352 + 037754 005211 + 037756 105711 + 037760 100376 + 037762 116162 + 037764 000002 + 037766 037400 + 037770 005267 + 037772 177756 + 037774 000765 + 037776 177550 + +Using a [PDPjs](/modules/pdpjs/) machine such as the [PDP-11/20 Test Machine with Debugger](/devices/pdp11/machine/1120/test/debugger/), +the *Bootstrap Loader* is easily entered with a single Debugger "edit" command: + + e 037744 016701 000026 012702 000352 005211 105711 100376 116162 000002 037400 005267 177756 000765 177550 + +You can immediately disassemble the code using `u 037744 040000`: + + 037744: 016701 000026 MOV 26(PC),R1 ; @037776 + 037750: 012702 000352 MOV #352,R2 + 037754: 005211 INC @R1 + 037756: 105711 TSTB @R1 + 037760: 100376 BPL 037756 + 037762: 116162 000002 037400 MOVB 2(R1),37400(R2) + 037770: 005267 177756 INC 177756(PC) ; @037752 + 037774: 000765 BR 037750 + 037776: 177550 .WORD 177550 + +I also pasted the disassembled code into a listing file, [bootstrap.lst](bootstrap.lst), and ran [FileDump](/modules/filedump) +to produce a [bootstrap.json](bootstrap.json) that can be pre-loaded into any machine: + + filedump --file=bootstrap.lst --format=octal --output=bootstrap.json + +To run the *Bootstrap Loader*, set the PC to 037744 and start the machine: + + r pc=037744 + g + diff --git a/devices/pdp11/loader/bootstrap.json b/devices/pdp11/loader/bootstrap.json new file mode 100644 index 000000000..edc54ec3e --- /dev/null +++ b/devices/pdp11/loader/bootstrap.json @@ -0,0 +1,4 @@ +{"words":[ +0x1DC1 /*016701*/,0x0016 /*000026*/,0x15C2 /*012702*/,0x00EA /*000352*/,0x0A89 /*005211*/,0x8BC9 /*105711*/,0x80FE /*100376*/,0x9C72 /*116162*/, +0x0002 /*000002*/,0x3F00 /*037400*/,0x0AB7 /*005267*/,0xFFEE /*177756*/,0x01F5 /*000765*/,0xFF68 /*177550*/] +} \ No newline at end of file diff --git a/devices/pdp11/loader/bootstrap.lst b/devices/pdp11/loader/bootstrap.lst new file mode 100644 index 000000000..dc7acb522 --- /dev/null +++ b/devices/pdp11/loader/bootstrap.lst @@ -0,0 +1,9 @@ +037744: 016701 000026 MOV 26(PC),R1 ; @037776 +037750: 012702 000352 MOV #352,R2 +037754: 005211 INC @R1 +037756: 105711 TSTB @R1 +037760: 100376 BPL 037756 +037762: 116162 000002 037400 MOVB 2(R1),37400(R2) +037770: 005267 177756 INC 177756(PC) ; @037752 +037774: 000765 BR 037750 +037776: 177550 .WORD 177550 diff --git a/modules/filedump/lib/filedump.js b/modules/filedump/lib/filedump.js index a9b6f197b..3ecab298d 100644 --- a/modules/filedump/lib/filedump.js +++ b/modules/filedump/lib/filedump.js @@ -115,8 +115,7 @@ FileDump.asBadExts = [ * in "strict" mode. Prefixing them with "0o" is the new convention for ES6 and up, which is great, but we still * have no octal format that works across the board. We can use the new octal format in code, because we always * compile browser-based code back to ES5 (converting all numeric constants to decimal), and current versions of - * Node support it as well (we don't care about old versions of Node). But what we store in data files is more - * problematic. + * Node supported the new format for quite a while. But what we store in data files is more problematic. * * When a second file is "merged", the first file sets all even bytes and the second file sets all odd bytes. * In fact, any number of files can be merged: if there are N files, file #1 sets bytes at "offset mod N == 0", @@ -297,7 +296,7 @@ FileDump.prototype.parseListing = function(sListing) { var ab = []; var matchLine; - var re = /^([0-9 ]{9})([0-7]{6})[ ]+([0-7]+)[ ]*([0-7']+|)[ ]+([0-7']+|)[ ]+(.*)$/gm; + var re = /^( [0-9 ]{8}|)([0-7]{6})[: ]+([0-7]+)[ ]*([0-7']+|)[ ]+([0-7']+|)[ ]+(.*)$/gm; var addrStart = null; while (matchLine = re.exec(sListing)) { /* diff --git a/modules/pdp11/lib/debugger.js b/modules/pdp11/lib/debugger.js index cb915839f..d66741a2f 100644 --- a/modules/pdp11/lib/debugger.js +++ b/modules/pdp11/lib/debugger.js @@ -245,7 +245,7 @@ if (DEBUGGER) { * CPU opcode names, indexed by CPU opcode ordinal (above) */ DebuggerPDP11.OPNAMES = [ - "NONE", "ADC", "ADCB", "ADD", "ASL", "ASLB", "ASR", "ASRB", + ".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", @@ -282,7 +282,7 @@ if (DEBUGGER) { DebuggerPDP11.OP_OTHER = 0xF000; /* - * The opTable contains opcode masks, and each mask refers to table of possible values, and each + * The OPTABLE contains opcode masks, and each mask refers to table of possible values, and each * value refers to an array that contains: * * [0]: {number} of the opcode name (see OP.*) @@ -298,7 +298,7 @@ if (DEBUGGER) { * that the opcode's destination operand is being listed first, but rather that the bits describing the source * operand are in the opcode's OP_DST field. */ - DebuggerPDP11.opTable = { + DebuggerPDP11.OPTABLE = { 0xF000: { 0x1000: [DebuggerPDP11.OPS.MOV, DebuggerPDP11.OP_SRC, DebuggerPDP11.OP_DST], // 01SSDD 0x2000: [DebuggerPDP11.OPS.CMP, DebuggerPDP11.OP_SRC, DebuggerPDP11.OP_DST], // 02SSDD @@ -425,6 +425,28 @@ if (DEBUGGER) { } }; + DebuggerPDP11.OPNONE = [DebuggerPDP11.OPS.NONE]; + + /* + * Table of opcodes that are specific to the 11/45 and higher + */ + DebuggerPDP11.OP1145 = [ + DebuggerPDP11.OPS.MARK, + DebuggerPDP11.OPS.MFPI, + DebuggerPDP11.OPS.MTPI, + DebuggerPDP11.OPS.SXT, + DebuggerPDP11.OPS.SPL, + DebuggerPDP11.OPS.RTT, + DebuggerPDP11.OPS.MUL, + DebuggerPDP11.OPS.DIV, + DebuggerPDP11.OPS.ASH, + DebuggerPDP11.OPS.ASHC, + DebuggerPDP11.OPS.XOR, + DebuggerPDP11.OPS.SOB, + DebuggerPDP11.OPS.MFPD, + DebuggerPDP11.OPS.MTPD + ]; + DebuggerPDP11.HISTORY_LIMIT = DEBUG? 100000 : 1000; /** @@ -448,7 +470,8 @@ if (DEBUGGER) { var sMessages = cmp.getMachineParm('messages'); if (sMessages) this.messageInit(sMessages); - this.opTable = DebuggerPDP11.opTable; + this.opTable = DebuggerPDP11.OPTABLE; + this.aOpReserved = this.cpu.model < PDP11.MODEL_1145? DebuggerPDP11.OP1145 : []; this.messageDump(MessagesPDP11.BUS, function onDumpBus(asArgs) { dbg.dumpBus(asArgs); }); @@ -2016,12 +2039,24 @@ if (DEBUGGER) { if (opDesc) break; } - if (!opDesc) opDesc = [DebuggerPDP11.OPS.NONE]; + if (!opDesc) { + opDesc = DebuggerPDP11.OPNONE; + } + + var opNum = opDesc[0]; + if (this.aOpReserved.indexOf(opNum) >= 0) { + opDesc = DebuggerPDP11.OPNONE; + opNum = opDesc[0]; + } var sOperands = "", sTarget = ""; - var sOpName = opNames[opDesc[0]]; + var sOpName = opNames[opNum]; var cOperands = opDesc.length - 1; + if (!opNum && !cOperands) { + sOperands = this.toStrBase(opCode); + } + for (var iOperand = 1; iOperand <= cOperands; iOperand++) { var opType = opDesc[iOperand]; @@ -3550,43 +3585,49 @@ if (DEBUGGER) { }; /** - * doUnassemble(sAddr, sAddrEnd, n) + * doUnassemble(sAddr, sAddrEnd, nLines) * * @this {DebuggerPDP11} * @param {string} [sAddr] * @param {string} [sAddrEnd] - * @param {number} [n] + * @param {number} [nLines] */ - DebuggerPDP11.prototype.doUnassemble = function(sAddr, sAddrEnd, n) + DebuggerPDP11.prototype.doUnassemble = function(sAddr, sAddrEnd, nLines) { var dbgAddr = this.parseAddr(sAddr, true); if (!dbgAddr) return; - if (n === undefined) n = 1; + if (nLines === undefined) nLines = 1; var nBytes = 0x100; if (sAddrEnd !== undefined) { - var dbgAddrEnd = this.parseAddr(sAddrEnd, true); - if (!dbgAddrEnd || dbgAddrEnd.addr < dbgAddr.addr) return; - - nBytes = dbgAddrEnd.addr - dbgAddr.addr; - if (!DEBUG && nBytes > 0x100) { - /* - * Limiting the amount of disassembled code to 256 bytes in non-DEBUG builds is partly to - * prevent the user from wedging the browser by dumping too many lines, but also a recognition - * that, in non-DEBUG builds, this.println() keeps print output buffer truncated to 8Kb anyway. - */ - this.println("range too large"); - return; + if (sAddrEnd.charAt(0) == 'l') { + var n = this.parseValue(sAddrEnd.substr(1)); + if (n != null) nLines = n; + } + else { + var dbgAddrEnd = this.parseAddr(sAddrEnd, true); + if (!dbgAddrEnd || dbgAddrEnd.addr < dbgAddr.addr) return; + + nBytes = dbgAddrEnd.addr - dbgAddr.addr; + if (!DEBUG && nBytes > 0x100) { + /* + * Limiting the amount of disassembled code to 256 bytes in non-DEBUG builds is partly to + * prevent the user from wedging the browser by dumping too many lines, but also a recognition + * that, in non-DEBUG builds, this.println() keeps print output buffer truncated to 8Kb anyway. + */ + this.println("range too large"); + return; + } + nLines = -1; } - n = -1; } - var nLines = 0; + var nPrinted = 0; var sInstruction; - while (nBytes > 0 && n--) { + while (nBytes > 0 && nLines--) { var nSequence = (this.isBusy(false) || this.nStep)? this.nCycles : null; var sComment = (nSequence != null? "cycles" : null); @@ -3594,8 +3635,8 @@ if (DEBUGGER) { var addr = dbgAddr.addr; // we snap dbgAddr.addr *after* calling findSymbol(), which re-evaluates it - if (aSymbol[0] && n) { - if (!nLines && n || aSymbol[0].indexOf('+') < 0) { + if (aSymbol[0] && nLines) { + if (!nPrinted && nLines || aSymbol[0].indexOf('+') < 0) { var sLabel = aSymbol[0] + ':'; if (aSymbol[2]) sLabel += ' ' + aSymbol[2]; this.println(sLabel); @@ -3612,7 +3653,7 @@ if (DEBUGGER) { this.println(sInstruction); this.dbgAddrNextCode = dbgAddr; nBytes -= dbgAddr.addr - addr; - nLines++; + nPrinted++; } }; diff --git a/versions/pdpjs/1.30.1/pdp11-dbg.js b/versions/pdpjs/1.30.1/pdp11-dbg.js index 7828be6d7..7209829a3 100644 --- a/versions/pdpjs/1.30.1/pdp11-dbg.js +++ b/versions/pdpjs/1.30.1/pdp11-dbg.js @@ -40,7 +40,7 @@ function n(a){window&&window.alert(a)}function Ga(a){var b=!1;window&&(b=window. 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));0b?this.Ua=this.id:(this.Fb=this.id.substr(0,b),this.Ua=this.id.substr(b+1));this[a]=c;this.v={ready:!1,ib:!1,Gb:!1,ha:!1,error:!1};this.xb=null;this.v.error=!1;this.J={};this.i=null;this.ia=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.Vb=b.comment;this.pc=b;b=this.id.indexOf(".");0>b?this.Ua=this.id:(this.Gb=this.id.substr(0,b),this.Ua=this.id.substr(b+1));this[a]=c;this.v={ready:!1,jb:!1,Hb:!1,ha:!1,error:!1};this.xb=null;this.v.error=!1;this.J={};this.i=null;this.ia=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>2;this.A=this.sa-1;this.D=this.H/this.sa|0;this.Ga=[];this.C=0;this.B=[];this.ic=[Ob,Pb,Qb,Rb];a=new I(this);Sb(a,this.i);this.W=Array(this.D);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.Ga[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.i&&E(this.i,64)&&B(this.i,e[4]+".readByte("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!0);this.i&&E(this.i,64)&&B(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.Ga[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.Ga[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d?this.i&&E(this.i,64)&&B(this.i,f[4]+".writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!0,b),this.i&&E(this.i,64)&&B(this.i,"warning: unconverted write access to byte @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} @@ -62,23 +62,23 @@ function Qb(a,b){var c=-1,d=this.controller;(a=d.Ga[a])&&(a[2]?c=a[2](b):a[0]&&( function Rb(a,b,c){var d=!1,e=this.controller;if(a=e.Ga[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d?this.i&&E(this.i,64)&&B(this.i,a[4]+".writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!1,b),this.i&&E(this.i,64)&&B(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.j){var c;a.j&&(c=(1<>>a.ga;0g&&(q=g);if(!e&&m&&m.size){if(m.type==d){if(f+g<=m.w)return m.tb+=m.w-f,m.w=f,!0;if(f>=m.w+m.tb){q=m.size-(f-p);q>g&&(q=g);m.tb=f-m.w+q;f=p+a.sa;g-=q;l++;continue}}return ac(1,f,g)}f=new I(a,f,q,a.sa,d,e);Sb(f,a.i,m);a.W[l++]=f;f=p+a.sa;g-=q}if(0>=g){c/=1024;var v;e="";v?10>>=a.ga;0>>=a.ga;0>>this.ga].Bb(a&this.A,a)};h.zb=function(a){this.C++;a=this.W[(a&this.f)>>>this.ga].Ib(a&this.A,a);this.C--;return a};h.ka=function(a){return this.W[(a&this.f)>>>this.ga].qa(a&this.A,a)}; -h.lb=function(a){var b=a&this.A,c=(a&this.f)>>>this.ga;this.C++;a=this.W[c].Jb(b,a);this.C--;return a};h.Cb=function(a,b){this.W[(a&this.f)>>>this.ga].Eb(a&this.A,b&255,a)};h.rb=function(a,b){this.C++;this.W[(a&this.f)>>>this.ga].Ob(a&this.A,b&255,a);this.C--};h.Sa=function(a,b){this.W[(a&this.f)>>>this.ga].ub(a&this.A,b&65535,a)};h.Db=function(a,b){var c=a&this.A,d=(a&this.f)>>>this.ga;this.C++;this.W[d].Pb(c,b&65535,a);this.C--}; +10;a.status(e+"Kb "+jc[d]+" at "+oa(b));return!0}return ac(2,b,c)}function Xb(a,b,c){var d=[];for(b>>>=a.ga;0>>=a.ga;0>>this.ga].Cb(a&this.A,a)};h.zb=function(a){this.C++;a=this.W[(a&this.f)>>>this.ga].Jb(a&this.A,a);this.C--;return a};h.ka=function(a){return this.W[(a&this.f)>>>this.ga].qa(a&this.A,a)}; +h.mb=function(a){var b=a&this.A,c=(a&this.f)>>>this.ga;this.C++;a=this.W[c].Kb(b,a);this.C--;return a};h.Db=function(a,b){this.W[(a&this.f)>>>this.ga].Fb(a&this.A,b&255,a)};h.rb=function(a,b){this.C++;this.W[(a&this.f)>>>this.ga].Pb(a&this.A,b&255,a);this.C--};h.Sa=function(a,b){this.W[(a&this.f)>>>this.ga].ub(a&this.A,b&65535,a)};h.Eb=function(a,b){var c=a&this.A,d=(a&this.f)>>>this.ga;this.C++;this.W[d].Qb(c,b&65535,a);this.C--}; function kc(a){for(var b=0,c=[],d=0;da.b.mb)){var g=f[0]?f[0].bind(b):null,l=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)),!l&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));lc(a,e,e,g,l,m,p,f[4])}}}function nc(a,b){a.B.push(b)} -function oc(a,b){a.C||(a.i&&E(a.i,536870912)&&B(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+": "+k(b)+","+k(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.j={data:0,Ld:0,Ab:20,bd:0};this.f={Md:0,Nb:-1}}u(K);h=K.prototype; -h.Da=function(a,b,c,d){this.A=b;this.b=c;this.i=d;var e=this;this.f.Nb=pc(c,function(){e.f.Ia|=128;e.f.Ia&64&&(qc(e.b,e.f.cd),rc(e.b,e.f.Nb,1E3/60))});this.f.cd=sc(64,6);mc(b,this,L);nc(b,this.reset.bind(this));G(this)};h.Ac=function(){var a=this.f.Ia;this.f.Ia&=-129;return a};h.md=function(a){this.f.Ia=a;a&64&&rc(this.b,this.f.Nb,1E3/60);this.f.Ia=a&-129};h.tc=function(a){return(a?this.j.bd:this.j.data)&65535};h.ed=function(a){this.j.data=a}; -h.Cc=function(){var a=this.b;return a.G&62337|a.ua<<5|a.va<<1};h.od=function(a){var b=this.b;a&=62337;if(b.G!=a){b.G=a;b.ua=a>>5&3;b.va=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ja!=c&&(b.Ja=c,tc(b))}uc(this)};h.Dc=function(){var a=this.b.La;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Ec=function(){return this.b.qb};h.Fc=function(){return this.b.Ma};h.pd=function(a){var b=this.b;1170>b.mb&&(a&=-49);b.Ma!=a&&(b.Ma=a,a&16?(b.Wa=4194303,b.wa=3915776):(b.Wa=262143,b.wa=253952),tc(b));uc(this)}; -function uc(a){a.j.Ab=a.j.Ab&-8|(a.b.Ja?a.b.Ma&16?1:2:4)}h.Rc=function(a){return this.b.P[1][a>>1&7]};h.Bd=function(a,b){this.b.P[1][b>>1&7]=a&65295};h.Pc=function(a){return this.b.P[1][(a>>1&7)+8]};h.zd=function(a,b){this.b.P[1][(b>>1&7)+8]=a&65295};h.Qc=function(a){return this.b.pa[1][a>>1&7]};h.Ad=function(a,b){b=b>>1&7;this.b.pa[1][b]=a;this.b.P[1][b]&=65295};h.Oc=function(a){return this.b.pa[1][(a>>1&7)+8]};h.yd=function(a,b){b=(b>>1&7)+8;this.b.pa[1][b]=a;this.b.P[1][b]&=65295}; +function mc(a,b,c){for(var d in c){var e=+d,f=c[d];if(!(f[5]&&f[5]>a.b.Ya)){var g=f[0]?f[0].bind(b):null,l=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)),!l&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));lc(a,e,e,g,l,m,p,f[4])}}}function nc(a,b){a.B.push(b)} +function oc(a,b){a.C||(a.i&&E(a.i,536870912)&&B(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+": "+k(b)+","+k(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.j={data:0,Ld:0,Bb:20,bd:0};this.f={Md:0,Ob:-1}}u(K);h=K.prototype; +h.Da=function(a,b,c,d){this.A=b;this.b=c;this.i=d;var e=this;this.f.Ob=pc(c,function(){e.f.Ia|=128;e.f.Ia&64&&(qc(e.b,e.f.cd),rc(e.b,e.f.Ob,1E3/60))});this.f.cd=sc(64,6);mc(b,this,L);nc(b,this.reset.bind(this));G(this)};h.Ac=function(){var a=this.f.Ia;this.f.Ia&=-129;return a};h.md=function(a){this.f.Ia=a;a&64&&rc(this.b,this.f.Ob,1E3/60);this.f.Ia=a&-129};h.tc=function(a){return(a?this.j.bd:this.j.data)&65535};h.ed=function(a){this.j.data=a}; +h.Cc=function(){var a=this.b;return a.G&62337|a.ua<<5|a.va<<1};h.od=function(a){var b=this.b;a&=62337;if(b.G!=a){b.G=a;b.ua=a>>5&3;b.va=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ja!=c&&(b.Ja=c,tc(b))}uc(this)};h.Dc=function(){var a=this.b.La;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Ec=function(){return this.b.qb};h.Fc=function(){return this.b.Ma};h.pd=function(a){var b=this.b;1170>b.Ya&&(a&=-49);b.Ma!=a&&(b.Ma=a,a&16?(b.Wa=4194303,b.wa=3915776):(b.Wa=262143,b.wa=253952),tc(b));uc(this)}; +function uc(a){a.j.Bb=a.j.Bb&-8|(a.b.Ja?a.b.Ma&16?1:2:4)}h.Rc=function(a){return this.b.P[1][a>>1&7]};h.Bd=function(a,b){this.b.P[1][b>>1&7]=a&65295};h.Pc=function(a){return this.b.P[1][(a>>1&7)+8]};h.zd=function(a,b){this.b.P[1][(b>>1&7)+8]=a&65295};h.Qc=function(a){return this.b.pa[1][a>>1&7]};h.Ad=function(a,b){b=b>>1&7;this.b.pa[1][b]=a;this.b.P[1][b]&=65295};h.Oc=function(a){return this.b.pa[1][(a>>1&7)+8]};h.yd=function(a,b){b=(b>>1&7)+8;this.b.pa[1][b]=a;this.b.P[1][b]&=65295}; h.zc=function(a){return this.b.P[0][a>>1&7]};h.ld=function(a,b){this.b.P[0][b>>1&7]=a&65295};h.xc=function(a){return this.b.P[0][(a>>1&7)+8]};h.jd=function(a,b){this.b.P[0][(b>>1&7)+8]=a&65295};h.yc=function(a){return this.b.pa[0][a>>1&7]};h.kd=function(a,b){b=b>>1&7;this.b.pa[0][b]=a;this.b.P[0][b]&=65295};h.wc=function(a){return this.b.pa[0][(a>>1&7)+8]};h.hd=function(a,b){b=(b>>1&7)+8;this.b.pa[0][b]=a;this.b.P[0][b]&=65295};h.Xc=function(a){return this.b.P[3][a>>1&7]}; -h.Hd=function(a,b){this.b.P[3][b>>1&7]=a&65295};h.Vc=function(a){return this.b.P[3][(a>>1&7)+8]};h.Fd=function(a,b){this.b.P[3][(b>>1&7)+8]=a&65295};h.Wc=function(a){return this.b.pa[3][a>>1&7]};h.Gd=function(a,b){b=b>>1&7;this.b.pa[3][b]=a;this.b.P[3][b]&=65295};h.Uc=function(a){return this.b.pa[3][(a>>1&7)+8]};h.Ed=function(a,b){b=(b>>1&7)+8;this.b.pa[3][b]=a;this.b.P[3][b]&=65295};h.ab=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]}; -h.fb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};h.Ic=function(){return this.b.L&49152?this.b.ta[0]:this.b.u[6]};h.sd=function(a){this.b.L&49152?this.b.ta[0]=a:this.b.u[6]=a};h.Lc=function(){return this.b.u[7]};h.vd=function(a){this.b.u[7]=a};h.bb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]};h.gb=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};h.Jc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.ta[1]}; +h.Hd=function(a,b){this.b.P[3][b>>1&7]=a&65295};h.Vc=function(a){return this.b.P[3][(a>>1&7)+8]};h.Fd=function(a,b){this.b.P[3][(b>>1&7)+8]=a&65295};h.Wc=function(a){return this.b.pa[3][a>>1&7]};h.Gd=function(a,b){b=b>>1&7;this.b.pa[3][b]=a;this.b.P[3][b]&=65295};h.Uc=function(a){return this.b.pa[3][(a>>1&7)+8]};h.Ed=function(a,b){b=(b>>1&7)+8;this.b.pa[3][b]=a;this.b.P[3][b]&=65295};h.bb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]}; +h.gb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};h.Ic=function(){return this.b.L&49152?this.b.ta[0]:this.b.u[6]};h.sd=function(a){this.b.L&49152?this.b.ta[0]=a:this.b.u[6]=a};h.Lc=function(){return this.b.u[7]};h.vd=function(a){this.b.u[7]=a};h.cb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]};h.hb=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};h.Jc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.ta[1]}; h.td=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.ta[1]=a};h.Kc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.ta[3]};h.ud=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.ta[3]=a};h.vc=function(a){return this.b.cc[a-65504>>1]};h.gd=function(a,b){this.b.cc[b-65504>>1]=a};h.$b=function(a){return 65520==a?61183:0};h.fc=function(){};h.Tc=function(){return 1};h.Dd=function(){};h.uc=function(){return this.b.Z};h.fd=function(){this.b.Z=0};h.Bc=function(){return this.b.bc}; -h.nd=function(a,b){b&1||(a&=255);this.b.bc=a};h.Gc=function(a){return a?this.b.Lb:0};h.qd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Lb=a;b.F|=2};h.Sc=function(a){return a?this.b.Na&65280:0};h.Cd=function(a){this.b.Na=a|255};h.Hc=function(){return Lb(this.b)};h.rd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.F|=128};h.ec=function(a,b){E(this)&&B(this,"writeIgnored("+oa(b)+"): "+oa(a),!0,!0)};h.reset=function(){this.j.Ab=this.j.Ab&-120|20;this.f.Ia=0}; +h.nd=function(a,b){b&1||(a&=255);this.b.bc=a};h.Gc=function(a){return a?this.b.Mb:0};h.qd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Mb=a;b.F|=2};h.Sc=function(a){return a?this.b.Na&65280:0};h.Cd=function(a){this.b.Na=a|255};h.Hc=function(){return Lb(this.b)};h.rd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.F|=128};h.ec=function(a,b){E(this)&&B(this,"writeIgnored("+oa(b)+"): "+oa(a),!0,!0)};h.reset=function(){this.j.Bb=this.j.Bb&-120|20;this.f.Ia=0}; var M={},L=(M[62592]=[null,null,K.prototype.Rc,K.prototype.Bd,"SISDR",1145],M[62608]=[null,null,K.prototype.Pc,K.prototype.zd,"SDSDR",1145],M[62624]=[null,null,K.prototype.Qc,K.prototype.Ad,"SISAR",1145],M[62640]=[null,null,K.prototype.Oc,K.prototype.yd,"SDSAR",1145],M[62656]=[null,null,K.prototype.zc,K.prototype.ld,"KISDR",1145],M[62672]=[null,null,K.prototype.xc,K.prototype.jd,"KDSDR",1145],M[62688]=[null,null,K.prototype.yc,K.prototype.kd,"KISAR",1145],M[62704]=[null,null,K.prototype.wc,K.prototype.hd, "KDSAR",1145],M[62798]=[null,null,K.prototype.Fc,K.prototype.pd,"MMR3",1145],M[65382]=[null,null,K.prototype.Ac,K.prototype.md,"LKS"],M[65400]=[null,null,K.prototype.tc,K.prototype.ed,"CNSL"],M[65402]=[null,null,K.prototype.Cc,K.prototype.od,"MMR0",1145],M[65404]=[null,null,K.prototype.Dc,K.prototype.ec,"MMR1",1145],M[65406]=[null,null,K.prototype.Ec,K.prototype.ec,"MMR2",1145],M[65408]=[null,null,K.prototype.Xc,K.prototype.Hd,"UISDR",1145],M[65424]=[null,null,K.prototype.Vc,K.prototype.Fd,"UDSDR", -1145],M[65440]=[null,null,K.prototype.Wc,K.prototype.Gd,"UISAR",1145],M[65456]=[null,null,K.prototype.Uc,K.prototype.Ed,"UDSAR",1145],M[65472]=[null,null,K.prototype.ab,K.prototype.fb,"R0SET0"],M[65473]=[null,null,K.prototype.ab,K.prototype.fb,"R1SET0"],M[65474]=[null,null,K.prototype.ab,K.prototype.fb,"R2SET0"],M[65475]=[null,null,K.prototype.ab,K.prototype.fb,"R3SET0"],M[65476]=[null,null,K.prototype.ab,K.prototype.fb,"R4SET0"],M[65477]=[null,null,K.prototype.ab,K.prototype.fb,"R5SET0"],M[65478]= -[null,null,K.prototype.Ic,K.prototype.sd,"R6KERNEL"],M[65479]=[null,null,K.prototype.Lc,K.prototype.vd,"R7KERNEL"],M[65480]=[null,null,K.prototype.bb,K.prototype.gb,"R0SET1",1145],M[65481]=[null,null,K.prototype.bb,K.prototype.gb,"R1SET1",1145],M[65482]=[null,null,K.prototype.bb,K.prototype.gb,"R2SET1",1145],M[65483]=[null,null,K.prototype.bb,K.prototype.gb,"R3SET1",1145],M[65484]=[null,null,K.prototype.bb,K.prototype.gb,"R4SET1",1145],M[65485]=[null,null,K.prototype.bb,K.prototype.gb,"R5SET1",1145], +1145],M[65440]=[null,null,K.prototype.Wc,K.prototype.Gd,"UISAR",1145],M[65456]=[null,null,K.prototype.Uc,K.prototype.Ed,"UDSAR",1145],M[65472]=[null,null,K.prototype.bb,K.prototype.gb,"R0SET0"],M[65473]=[null,null,K.prototype.bb,K.prototype.gb,"R1SET0"],M[65474]=[null,null,K.prototype.bb,K.prototype.gb,"R2SET0"],M[65475]=[null,null,K.prototype.bb,K.prototype.gb,"R3SET0"],M[65476]=[null,null,K.prototype.bb,K.prototype.gb,"R4SET0"],M[65477]=[null,null,K.prototype.bb,K.prototype.gb,"R5SET0"],M[65478]= +[null,null,K.prototype.Ic,K.prototype.sd,"R6KERNEL"],M[65479]=[null,null,K.prototype.Lc,K.prototype.vd,"R7KERNEL"],M[65480]=[null,null,K.prototype.cb,K.prototype.hb,"R0SET1",1145],M[65481]=[null,null,K.prototype.cb,K.prototype.hb,"R1SET1",1145],M[65482]=[null,null,K.prototype.cb,K.prototype.hb,"R2SET1",1145],M[65483]=[null,null,K.prototype.cb,K.prototype.hb,"R3SET1",1145],M[65484]=[null,null,K.prototype.cb,K.prototype.hb,"R4SET1",1145],M[65485]=[null,null,K.prototype.cb,K.prototype.hb,"R5SET1",1145], M[65486]=[null,null,K.prototype.Jc,K.prototype.td,"R6SUPER",1145],M[65487]=[null,null,K.prototype.Kc,K.prototype.ud,"R6USER",1145],M[65504]=[null,null,K.prototype.vc,K.prototype.gd,"CTRL",1170],M[65520]=[null,null,K.prototype.$b,K.prototype.fc,"LSIZE",1170],M[65522]=[null,null,K.prototype.$b,K.prototype.fc,"HSIZE",1170],M[65524]=[null,null,K.prototype.Tc,K.prototype.Dd,"SYSID",1170],M[65526]=[null,null,K.prototype.uc,K.prototype.fd,"CPUERR",1170],M[65528]=[null,null,K.prototype.Bc,K.prototype.nd, "MB",1170],M[65530]=[null,null,K.prototype.Gc,K.prototype.qd,"PIR"],M[65532]=[null,null,K.prototype.Sc,K.prototype.Cd,"SL"],M[65534]=[null,null,K.prototype.Hc,K.prototype.rd,"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]; @@ -88,41 +88,41 @@ if(Gb){var xc=new ArrayBuffer(2);(new DataView(xc)).setUint16(0,256,!0);wc=256== function I(a,b,c,d,e,f){this.A=a;this.id=zc+=2;this.b=null;this.w=b;this.tb=c;this.size=d||0;this.type=e||Ac;this.f=e==Bc;this.controller=null;Sb(this);this.Ha=this.lc=!1;if(d)if(f)this.controller=f,this.b=null,Cc(this,f.ic);else if(Gb)this.C=new ArrayBuffer(d),this.G=new DataView(this.C,0,d),this.D=new Uint8Array(this.C,0,d),this.I=new Uint16Array(this.C,0,d>>1),this.b=new Int32Array(this.C,0,d>>2),Cc(this,yc?Dc:Ec);else{this.b=Array(d>>2);for(a=0;a>2),b=0;b>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ja:function(a,b){a&1&&oc(this.A,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},ua:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= -this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ha=!0},T:function(a,b){if(this.i&&null!=this.w){var c=this.i;Jc(c,this.w+a,1,c.M)&&c.da(!0)}return this.Ib(a,b)},ba:function(a,b){if(this.i&&null!=this.w){var c=this.i;Jc(c,this.w+a,2,c.M)&&c.da(!0)}return this.Jb(a,b)},ma:function(a,b,c){if(this.i&&null!=this.w){var d=this.i;Jc(d,this.w+a, -1,d.D)&&d.da(!0)}this.f?this.J(a,b,c):this.Ob(a,b,c)},wa:function(a,b,c){if(this.i&&null!=this.w){var d=this.i;Jc(d,this.w+a,2,d.D)&&d.da(!0)}this.f?this.J(a,b,c):this.Pb(a,b,c)},R:function(a){return this.D[a]},U:function(a,b){a=this.D[a];this.i&&E(this.i,128)&&B(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},aa:function(a,b){a&1&&oc(this.A,b);return this.G.getUint16(a,!0)},fa:function(a,b){a&1&&oc(this.A,b);a=this.I[a>>1];this.i&&E(this.i,128)&&B(this.i,"Memory.readWord("+ +k(this.w),!0),this.i.da());return 255},J:function(a,b){this.i&&E(this.i,128)&&(B(this.i,"attempt to write "+k(b,4,!0)+" to invalid block %"+k(this.w),!0),this.i.da())},M:function(a,b){return this.Cb(a++,b++)|this.Cb(a,b)<<8},H:function(a,b,c){this.Fb(a++,b&255,c++);this.Fb(a,b>>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ja:function(a,b){a&1&&oc(this.A,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},ua:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= +this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ha=!0},T:function(a,b){if(this.i&&null!=this.w){var c=this.i;Jc(c,this.w+a,1,c.M)&&c.da(!0)}return this.Jb(a,b)},ba:function(a,b){if(this.i&&null!=this.w){var c=this.i;Jc(c,this.w+a,2,c.M)&&c.da(!0)}return this.Kb(a,b)},ma:function(a,b,c){if(this.i&&null!=this.w){var d=this.i;Jc(d,this.w+a, +1,d.D)&&d.da(!0)}this.f?this.J(a,b,c):this.Pb(a,b,c)},wa:function(a,b,c){if(this.i&&null!=this.w){var d=this.i;Jc(d,this.w+a,2,d.D)&&d.da(!0)}this.f?this.J(a,b,c):this.Qb(a,b,c)},R:function(a){return this.D[a]},U:function(a,b){a=this.D[a];this.i&&E(this.i,128)&&B(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},aa:function(a,b){a&1&&oc(this.A,b);return this.G.getUint16(a,!0)},fa:function(a,b){a&1&&oc(this.A,b);a=this.I[a>>1];this.i&&E(this.i,128)&&B(this.i,"Memory.readWord("+ J(this.i,b)+"): "+J(this.i,a),!0);return a},la:function(a,b){this.D[a]=b;this.Ha=!0},oa:function(a,b,c){this.D[a]=b;this.Ha=!0;this.i&&E(this.i,128)&&B(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},va:function(a,b,c){a&1&&oc(this.A,c);this.G.setUint16(a,b,!0);this.Ha=!0},Ua:function(a,b,c){a&1&&oc(this.A,c);this.I[a>>1]=b;this.Ha=!0;this.i&&E(this.i,128)&&B(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}}; -function Sb(a,b,c){a.i=b;a.j=a.B=0;c&&((a.j=c.j)&&Ic(a,Hc,!1),(a.B=c.B)&&Gc(a,Hc,!1))}function Kc(a,b){b?--a.B||(a.Eb=a.f?a.J:a.Ob,a.ub=a.f?a.H:a.Pb):--a.j||(a.Bb=a.Ib,a.qa=a.Jb)}function Gc(a,b,c){c&&a.B||(a.Eb=!a.f&&b[1]||a.J,a.ub=!a.f&&b[3]||a.H);if(c||void 0===c)a.Ob=b[1]||a.J,a.Pb=b[3]||a.H}function Ic(a,b,c){c&&a.j||(a.Bb=b[0]||a.K,a.qa=b[2]||a.M);if(c||void 0===c)a.Ib=b[0]||a.K,a.Jb=b[2]||a.M}function Cc(a,b){b||(b=Lc);Ic(a,b,void 0);Gc(a,b,void 0)} +function Sb(a,b,c){a.i=b;a.j=a.B=0;c&&((a.j=c.j)&&Ic(a,Hc,!1),(a.B=c.B)&&Gc(a,Hc,!1))}function Kc(a,b){b?--a.B||(a.Fb=a.f?a.J:a.Pb,a.ub=a.f?a.H:a.Qb):--a.j||(a.Cb=a.Jb,a.qa=a.Kb)}function Gc(a,b,c){c&&a.B||(a.Fb=!a.f&&b[1]||a.J,a.ub=!a.f&&b[3]||a.H);if(c||void 0===c)a.Pb=b[1]||a.J,a.Qb=b[3]||a.H}function Ic(a,b,c){c&&a.j||(a.Cb=b[0]||a.K,a.qa=b[2]||a.M);if(c||void 0===c)a.Jb=b[0]||a.K,a.Kb=b[2]||a.M}function Cc(a,b){b||(b=Lc);Ic(a,b,void 0);Gc(a,b,void 0)} var Lc=[],Fc=[I.prototype.V,I.prototype.ua,I.prototype.ja,I.prototype.xa],Hc=[I.prototype.T,I.prototype.ma,I.prototype.ba,I.prototype.wa];if(Gb)var Ec=[I.prototype.R,I.prototype.la,I.prototype.aa,I.prototype.va],Dc=[I.prototype.U,I.prototype.oa,I.prototype.fa,I.prototype.Ua]; -function Mc(a,b){r.call(this,"CPU",a,Mc,1);var c=a.multiplier||1;this.Fa=a.cycles||b;this.Ka=c;this.Va=Math.round(this.Fa/1E4)/100;this.Ra=this.Va*this.Ka;this.v.ca=!1;this.v.Mb=!1;this.v.hb=a.autoStart;this.v.Xa=!1;this.nb=this.ja=0;this.ob=a.csStart;this.Ya=a.csInterval;this.Za=a.csStop;this.K=[];this.Yb=this.ad.bind(this);G(this)}u(Mc);var Nc=["power","reset"];h=Mc.prototype; -h.Da=function(a,b,c,d){this.B=a;this.A=b;this.i=d;for(b=0;b=a.ja&&(a.ja+=a.Ya,c=!0);0<=a.Za&&a.Za<=Tc(a)&&(a.Ya=a.Za=-1,Qc(a),a.da(),c=!0);c&&a.g(Tc(a)+" cycles: checksum="+k(a.nb))}} -h.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.B)if(a=d.B,a.v.ha)a=!0;else{var b=null,c,l=kb(a.id);for(c=0;c=a.ja&&(a.ja+=a.Za,c=!0);0<=a.$a&&a.$a<=Tc(a)&&(a.Za=a.$a=-1,Qc(a),a.da(),c=!0);c&&a.g(Tc(a)+" cycles: checksum="+k(a.nb))}} +h.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.B)if(a=d.B,a.v.ha)a=!0;else{var b=null,c,l=kb(a.id);for(c=0;ca.V/a.Ra?b=1:d=!0;a.Ka=b;b=a.Va*a.Ka;if(a.Ra!=b){a.Ra=b;b=a.Ra.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.sb()}Vc(a,a.T);a.T=0;a.R=Aa();a.aa=0;Wc(a);return d}function pc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function rc(a,b,c){0<=b&&ba.K[b][0]&&(c=a.Fa*a.Ka/1E3*c|0,a.K[b][0]=c+Xc(a))} function Yc(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 rd(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 Xc(a,b){var c=a.ba-=a.b;a.b=0;b&&(a.ba=0);return c} -h.ad=function(){if(this.v.ca){this.jb>=this.Fa&&Wc(this,!0);this.oa=0;this.xa=Aa();if(this.aa){var a=this.xa-this.aa;a>this.wb&&(this.R+=a,this.R>this.xa&&(this.R=this.xa))}try{do{var b=Yc(this,this.v.Xa?1:this.Oa);try{this.eb(b)}catch(e){if("number"!=typeof e)throw e;}b=Xc(this,!0);this.oa+=b;this.T+=b;Sc(this,b);rd(this,b);this.la-=b;if(0>=this.la){this.la+=this.Oa;15<=++this.yb&&(this.B&&this.B.$(),this.yb=0);break}}while(this.v.ca)}catch(e){this.da();this.B&&this.B.stop(Aa(),Tc(this));Fb(this, -e.stack||e.message);return}if(this.v.ca){a=setTimeout;b=this.Yb;this.aa=Aa();var c=this.wb;this.oa&&(c=Math.round(c*this.oa/this.Oa));var c=c-(this.aa-this.xa),d=this.aa-this.R;d&&(this.V=Math.round(this.T/(10*d))/100,864E5<=d&&(this.fa=0,Uc(this)));if(0>c||this.Vc&&(this.R-=c),c=0;this.jb+=this.oa;this.aa+=c;a(b,c)}}}; -h.cb=function(a){if(Eb(this))return!1;if(this.v.ca)return this.g(this.toString()+" busy"),!1;Uc(this);this.v.ca=!0;this.v.Mb=!0;var b=this.J.run;b&&(b.textContent="Halt");this.B&&(a&&this.B.sb(!0),this.B.start(this.R,Tc(this)));setTimeout(this.Yb,0);return!0};h.eb=function(){return 0};h.da=function(a){if(this.v.ca){Xc(this);Vc(this,this.T);this.T=0;this.v.ca=!1;var b=this.J.run;b&&(b.textContent="Run");this.B&&this.B.stop(Aa(),Tc(this))}this.v.complete=a}; -function sd(a){this.mb=+a.model||1170;this.qc=a.resetAddr||0;Mc.call(this,a,6666667);this.decode=1120==this.mb?td.bind(this):ud.bind(this);vd(this);this.C=0;this.U=null;this.v.complete=this.v.kc=!1}u(sd,Mc);h=sd.prototype;h.reset=function(){this.status("model "+this.mb);this.v.ca&&this.da();vd(this);Pc(this);this.v.error=!1;this.parent.reset.call(this)}; +h.ad=function(){if(this.v.ca){this.kb>=this.Fa&&Wc(this,!0);this.oa=0;this.xa=Aa();if(this.aa){var a=this.xa-this.aa;a>this.wb&&(this.R+=a,this.R>this.xa&&(this.R=this.xa))}try{do{var b=Yc(this,this.v.Xa?1:this.Oa);try{this.fb(b)}catch(e){if("number"!=typeof e)throw e;}b=Xc(this,!0);this.oa+=b;this.T+=b;Sc(this,b);rd(this,b);this.la-=b;if(0>=this.la){this.la+=this.Oa;15<=++this.yb&&(this.B&&this.B.$(),this.yb=0);break}}while(this.v.ca)}catch(e){this.da();this.B&&this.B.stop(Aa(),Tc(this));Fb(this, +e.stack||e.message);return}if(this.v.ca){a=setTimeout;b=this.Ab;this.aa=Aa();var c=this.wb;this.oa&&(c=Math.round(c*this.oa/this.Oa));var c=c-(this.aa-this.xa),d=this.aa-this.R;d&&(this.V=Math.round(this.T/(10*d))/100,864E5<=d&&(this.fa=0,Uc(this)));if(0>c||this.Vc&&(this.R-=c),c=0;this.kb+=this.oa;this.aa+=c;a(b,c)}}}; +h.eb=function(a){if(rb(this))return!1;if(this.v.ca)return this.g(this.toString()+" busy"),!1;Uc(this);this.v.ca=!0;this.v.Nb=!0;var b=this.J.run;b&&(b.textContent="Halt");this.B&&(a&&this.B.sb(!0),this.B.start(this.R,Tc(this)));setTimeout(this.Ab,0);return!0};h.fb=function(){return 0};h.da=function(a){if(this.v.ca){Xc(this);Vc(this,this.T);this.T=0;this.v.ca=!1;var b=this.J.run;b&&(b.textContent="Run");this.B&&this.B.stop(Aa(),Tc(this))}this.v.complete=a}; +function sd(a){this.Ya=+a.model||1170;this.qc=a.resetAddr||0;Mc.call(this,a,6666667);this.decode=1120==this.Ya?td.bind(this):ud.bind(this);vd(this);this.C=0;this.U=null;this.v.complete=this.v.kc=!1}u(sd,Mc);h=sd.prototype;h.reset=function(){this.status("model "+this.Ya);this.v.ca&&this.da();vd(this);Pc(this);this.v.error=!1;this.parent.reset.call(this)}; function vd(a){a.N=65536;a.O=32768;a.X=65535;a.S=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.qc];a.Ea=[0,0,0,0,0,0];a.ta=[0,0,0,0];a.D=0;a.va=0;a.oc=[4,2,0,1];a.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.pa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.rc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.cc=[0,0,0,0,0,0,0,0];a.bc=0;a.F=0;a.H=a.I=0;a.j=a.f=a.Ta=0;a.ma=-1;wd(a)}function wd(a){a.Na=255;a.Z=0;a.Lb=0;a.G=0;a.La=0;a.qb=0;a.Ma=0;a.Ja=0;a.ua=0;a.Wa=262143;a.wa=253952;a.F|=2;a.A&&tc(a)}function tc(a){a.Ja?(a.M=65536,a.Y=a.nc,a.qa=a.Yc,a.ub=a.Id,Vb(a.A,a.Ma&16?22:18)):(a.M=0,a.Y=a.mc,a.qa=a.ac,a.ub=a.gc,Vb(a.A,16))}h.Vb=function(){return 0}; +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.cc=[0,0,0,0,0,0,0,0];a.bc=0;a.F=0;a.H=a.I=0;a.j=a.f=a.Ta=0;a.ma=-1;wd(a)}function wd(a){a.Na=255;a.Z=0;a.Mb=0;a.G=0;a.La=0;a.qb=0;a.Ma=0;a.Ja=0;a.ua=0;a.Wa=262143;a.wa=253952;a.F|=2;a.A&&tc(a)}function tc(a){a.Ja?(a.M=65536,a.Y=a.nc,a.qa=a.Yc,a.ub=a.Id,Vb(a.A,a.Ma&16?22:18)):(a.M=0,a.Y=a.mc,a.qa=a.ac,a.ub=a.gc,Vb(a.A,16))}h.Wb=function(){return 0}; h.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.fa,this.Ka]);a.set(2,kc(this.A));return a.data()};h.restore=function(a){var b=a[1];this.fa=b[1];Uc(this,b[3]);a:{b=this.A;a=a[2];var c;for(c=0;c>14&3;c=a.L>>14&3;a.D!=c&&(a.ta[c]=a.u[6],a.u[6]=a.ta[a.D]);a.L=b;a.F|=2}function P(a,b){a.F&128||(a.S=a.X=b,a.O=0)}function Bd(a,b,c){a.F&128||(a.S=a.X=a.N=b,a.O=c||0)}function Cd(a,b,c,d){a.F&128||(a.S=a.X=a.N=b,a.O=(c^b)&(d^b))}function Dd(a,b){a.F&128||(a.S=a.X=a.N=b,a.O=a.S^a.N>>1)}function Ed(a,b,c,d){a.F&128||(a.S=a.X=a.N=b,a.O=(c^d)&(d^b))} h.ea=function(a,b){if(!this.C){var c=!1;0>this.ma?this.ma=Lb(this):this.D||(a=4,c=!0);this.G&57344||(this.La=63222,this.qb=a);this.D=0;var d=this.qa(a|this.M),e=this.qa(a+2&65535|this.M);vc(this,e&-12289|this.ma>>2&12288);c&&(this.Z|=4,this.u[6]=4);Fd(this,this.ma);Fd(this,this.u[7]);Ad(this,d);this.F&=-113;this.ma=-1;if(26!=b)throw a;}};function Gd(a){var b=Hd(a),c=Hd(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);Ad(a,b);vc(a,c);a.F&=-17} function Id(a,b,c){var d,e,f,g=0;d=b>>13;a.Ma&a.oc[a.D]||(d&=7);e=a.P[a.D][d];f=(a.pa[a.D][d]<<6)+(b&8191)&a.Wa;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.Ma&32&&(f=a.rc[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.wa&&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.P[a.D][d]=e;if(4194170!==f||a.D)a.ua=a.D,a.va=d;g&&(g&57344&&(0<=a.ma&&(g|=128),a.G&57344||(a.G=a.G|g|a.ua<<5|a.va<<1),a.ea(168,16)),a.G&61440||!(4191360>f||4194239>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.P[a.D][d]=e;if(4194170!==f||a.D)a.ua=a.D,a.va=d;g&&(g&57344&&(0<=a.ma&&(g|=128),a.G&57344||(a.G=a.G|g|a.ua<<5|a.va<<1),a.ea(168,16)),a.G&61440||!(4191360>f||4194239c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.qa(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.qa(e)|g; a.b-=8;break;case 6:return e=zd(a),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=zd(a),e=e+a.u[c]&65535,e=a.qa(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.G&57344||(a.La=a.La<<8|f<<3&248|c);6==c&&!a.D&&d&4&&0>=f&&(a.u[6]<=a.Na||65534<=a.u[6])&&(a.u[6]<=a.Na-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.F|=64));return e}h.zb=function(a){if(!this.Ja)return this.A.zb(a);this.C++;a=Jd(this,Id(this,a,3));this.C--;return a}; -h.lb=function(a){if(!this.Ja)return this.A.lb(a);this.C++;a=this.ac(Id(this,a,2));this.C--;return a};h.rb=function(a,b){this.Ja?(this.C++,Kd(this,Id(this,a,5),b),this.C--):this.A.rb(a,b)};h.Db=function(a,b){this.Ja?(this.C++,this.gc(Id(this,a,4),b),this.C--):this.A.Db(a,b)};h.mc=function(a,b,c){return Ld(this,a,b,c)};h.nc=function(a,b,c){return Id(this,Ld(this,a,b,c),c)};h.ac=function(a){return this.A.ka(a)};h.Yc=function(a){return this.A.ka(Id(this,a,2))};h.gc=function(a,b){this.A.Sa(a,b&65535)}; +h.mb=function(a){if(!this.Ja)return this.A.mb(a);this.C++;a=this.ac(Id(this,a,2));this.C--;return a};h.rb=function(a,b){this.Ja?(this.C++,Kd(this,Id(this,a,5),b),this.C--):this.A.rb(a,b)};h.Eb=function(a,b){this.Ja?(this.C++,this.gc(Id(this,a,4),b),this.C--):this.A.Eb(a,b)};h.mc=function(a,b,c){return Ld(this,a,b,c)};h.nc=function(a,b,c){return Id(this,Ld(this,a,b,c),c)};h.ac=function(a){return this.A.ka(a)};h.Yc=function(a){return this.A.ka(Id(this,a,2))};h.gc=function(a,b){this.A.Sa(a,b&65535)}; h.Id=function(a,b){this.A.Sa(Id(this,a,4),b)};function Md(a,b,c){var d=a.f=b&7;(b=a.j=(b&56)>>3)?(d=Ld(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.D=a.L>>12&3,c=a.qa(d|c&a.M),a.D=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.ta[a.L>>12&3];return c}function Nd(a,b,c,d){a.G&57344||(a.La=22);var e=a.f=b&7;(b=a.j=(b&56)>>3)?(e=Ld(a,b,e,4),c&65536||(e&=65535),a.D=a.L>>12&3,e=Id(a,e|c&65536,4),a.D=a.L>>14&3,a.A.Sa(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.ta[a.L>>12&3]=d} function Od(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?Jd(a,a.Y(b,c,3)):a.u[c]&255}function Pd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?a.A.ka(a.Y(b,c,2)):a.u[c]}function Qd(a,b){var c=a.f=b&7;b=a.j=(b&56)>>3;return Ld(a,b,c,8)}function Rd(a,b){var c=a.f=b&7;return(b=a.j=(b&56)>>3)?Jd(a,a.Y(b,c,3)):a.u[c]&255}function Sd(a,b){var c=a.f=b&7;return(b=a.j=(b&56)>>3)?a.A.ka(a.Y(b,c,2)):a.u[c]} function Q(a,b,c,d){var e=a.f=b&7;(b=a.j=(b&56)>>3)?(e=a.Ta=a.Y(b,e,7),Kd(a,e,d.call(a,c,Jd(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.j=(b&56)>>3)?(e=a.Y(b,e,6),a.A.Sa(e,d.call(a,c,a.A.ka(e)))):a.u[e]=d.call(a,c,a.u[e])}function Td(a,b,c,d){var e=a.f=b&7;(b=a.j=(b&56)>>3)?Kd(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 Ud(a,b,c){var d=a.f=b&7;(b=a.j=(b&56)>>3)?a.A.Sa(a.Y(b,d,4),c):a.u[d]=c&65535;return c} function S(a,b,c){c&&(Ad(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3} -h.eb=function(a){this.v.complete=!0;var b=this.v.kc=this.i&&Vd(this.i),c=a?this.v.Mb?0:1:-1;this.v.Mb=!1;this.ba=this.b=a;do{if(b){if(Wd(this.i,this.u[7],c)){this.da();break}c=1}if(this.F&&(this.F&112&&(this.F&32?this.ea(168,28):this.F&64?this.ea(4,30):this.F&16&&this.ea(12,32),this.F&=-113),this.F&7))if(this.F&2){this.F&=-3;var d=160,e=(this.Lb&224)>>5;if(a=this.U&&this.U.$a>e?this.U:null)d=a.dd,e=a.$a;e>(this.L&224)>>5?(this.F&4&&(this.u[7]=this.u[7]+2&65535,this.F&=-5),this.ea(d,26),e=!0):e=!1; +h.fb=function(a){this.v.complete=!0;var b=this.v.kc=this.i&&Vd(this.i),c=a?this.v.Nb?0:1:-1;this.v.Nb=!1;this.ba=this.b=a;do{if(b){if(Wd(this.i,this.u[7],c)){this.da();break}c=1}if(this.F&&(this.F&112&&(this.F&32?this.ea(168,28):this.F&64?this.ea(4,30):this.F&16&&this.ea(12,32),this.F&=-113),this.F&7))if(this.F&2){this.F&=-3;var d=160,e=(this.Mb&224)>>5;if(a=this.U&&this.U.ab>e?this.U:null)d=a.dd,e=a.ab;e>(this.L&224)>>5?(this.F&4&&(this.u[7]=this.u[7]+2&65535,this.F&=-5),this.ea(d,26),e=!0):e=!1; if(e&&a)if(e=this.U,e==a)this.U=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.F&1&&this.F++;this.G&57344||(this.La=0,this.qb=this.u[7]);this.F=this.F&7|this.L&16;this.decode(zd(this))}while(0>1|b<<16;Dd(this,a);return a&65535}function be(a,b){a=b&2048|b>>1|b<<8;Dd(this,a<<8);return a&255}function ce(a,b){a=b&~a;P(this,a);return a}function de(a,b){a=b&~a;P(this,a<<8);return a}function ee(a,b){a|=b;P(this,a);return a}function fe(a,b){a|=b;P(this,a<<8);return a} function ge(a,b){a=~b|65536;Bd(this,a);return a&65535}function he(a,b){a=~b|256;Bd(this,a<<8);return a&255}function ie(a,b){a=b-a;this.F&128||(this.S=this.X=a,this.O=b&(b^a));return a&65535}function je(a,b){a=b-a;var c=a<<8;b<<=8;this.F&128||(this.S=this.X=c,this.O=b&(b^c));return a&255}function ke(a,b){a=b+a;this.F&128||(this.S=this.X=a,this.O=a&(b^a));return a&65535}function le(a,b){a=b+a;var c=a<<8;this.F&128||(this.S=this.X=c,this.O=c&(b<<8^c));return a&255} @@ -139,116 +139,117 @@ function $e(){this.ea(16,4);this.b-=25}var af=[0,7,7,10,7,11,9,13];function bf(a function gf(a){var b=Od(this,a);P(this,Td(this,a,b,1)<<8);this.b-=this.j?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var hf=[7,13,13,17,14,18,17,21];function jf(a){var b=Sd(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.F&128||(this.S=b>>16,this.X=this.S|b,this.O=0,this.N=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)Ad(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function pf(a){R(this,a,Pd(this,a),se);this.b-=this.j?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} function qf(a){R(this,a,0,ue);this.b-=this.j?9:3+(7==this.f?2:0)}function rf(){this.ea(28,5);this.b-=5}function sf(){this.F&4||this.B.$();this.F|=4;this.u[7]=this.u[7]+-2&65535;this.b-=3}function tf(a){R(this,a,Pd(this,a),ve);this.b-=this.j?9:3+(7==this.f?2:0)}function V(a){var b;if(b=this.i)b=this.i,B(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function td(a){uf[a>>12].call(this,a)}function vf(a){wf[a>>6&3].call(this,a)}function xf(a){yf[a>>6&3].call(this,a)} -function zf(a){Af[a>>6&3].call(this,a)}function Uf(a){Vf[a&15].call(this,a)}function Wf(a){Xf[a&15].call(this,a)}function Yf(a){Zf[a>>6&3].call(this,a)}function $f(a){ag[a>>6&3].call(this,a)}function bg(a){cg[a>>6&3].call(this,a)} +function zf(a){Af[a>>6&3].call(this,a)}function Bf(a){Vf[a&15].call(this,a)}function Wf(a){Xf[a&15].call(this,a)}function Yf(a){Zf[a>>6&3].call(this,a)}function $f(a){ag[a>>6&3].call(this,a)}function bg(a){cg[a>>6&3].call(this,a)} var uf=[function(a){dg[a>>8&15].call(this,a)},ff,Ve,Fe,Be,De,we,V,function(a){eg[a>>8&15].call(this,a)},gf,We,Ge,Ce,Ee,pf,V],dg=[function(a){fg[a>>4&15].call(this,a)},Se,Pe,He,Ie,Ne,Je,Le,df,df,vf,xf,zf,V,V,V],wf=[function(a){Bd(this,Ud(this,a,0));this.b-=this.j?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ge);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){R(this,a,1,ke);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){R(this,a,1,ie);this.b-=this.j?9:3+(7==this.f?2:0)}],yf=[function(a){R(this,a,0, me);this.b-=this.j?11:6},function(a){R(this,a,O(this)?1:0,Xd);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){R(this,a,O(this)?1:0,se);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){a=Sd(this,a);Bd(this,a);this.b-=this.j?4:3+(7==this.f?2:0)}],Af=[function(a){R(this,a,0,qe);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){R(this,a,0,oe);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ae);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){R(this,a,0,Zd);this.b-=this.j?9:3+(7==this.f?2:0)}], -fg=[function(a){gg[a&15].call(this,a)},V,V,V,bf,bf,bf,bf,nf,V,Uf,Wf,qf,qf,qf,qf],gg=[Ze,sf,mf,Re,$e,lf,V,V,V,V,V,V,V,V,V,V],Vf=[kf,function(){this.N=0;this.b-=5},function(){this.O=0;this.b-=5},U,function(){this.X=1;this.b-=5},U,U,U,function(){this.S=0;this.b-=5},U,U,U,U,U,U,U],Xf=[kf,function(){this.N=65536;this.b-=5},function(){this.O=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.S=32768;this.b-=5},W,W,W,W,W,W,W],eg=[Qe,Oe,Ke,Me,Te,Ue,ze,Ae,Ye,rf,Yf,$f,bg,V,V,V],Zf=[function(a){Bd(this, +fg=[function(a){gg[a&15].call(this,a)},V,V,V,bf,bf,bf,bf,nf,V,Bf,Wf,qf,qf,qf,qf],gg=[Ze,sf,mf,Re,$e,lf,V,V,V,V,V,V,V,V,V,V],Vf=[kf,function(){this.N=0;this.b-=5},function(){this.O=0;this.b-=5},U,function(){this.X=1;this.b-=5},U,U,U,function(){this.S=0;this.b-=5},U,U,U,U,U,U,U],Xf=[kf,function(){this.N=65536;this.b-=5},function(){this.O=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.S=32768;this.b-=5},W,W,W,W,W,W,W],eg=[Qe,Oe,Ke,Me,Te,Ue,ze,Ae,Ye,rf,Yf,$f,bg,V,V,V],Zf=[function(a){Bd(this, Td(this,a,0));this.b-=this.j?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,he);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,le);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,je);this.b-=this.j?9:3+(7==this.f?2:0)}],ag=[function(a){Q(this,a,0,ne);this.b-=this.j?11:6},function(a){Q(this,a,O(this)?1:0,Yd);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){Q(this,a,O(this)?1:0,te);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){a=Rd(this,a);Bd(this,a<<8);this.b-=this.j?4:3+(7==this.f? 2:0)}],cg=[function(a){Q(this,a,0,re);this.b-=this.j?9+(this.Ta&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,pe);this.b-=this.j?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,be);this.b-=this.j?9+(this.Ta&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,$d);this.b-=this.j?9:3+(7==this.f?2:0)}];function ud(a){hg[a>>12].call(this,a)} var hg=[function(a){ig[a>>8&15].call(this,a)},ff,Ve,Fe,Be,De,we,function(a){jg[a>>8&15].call(this,a)},function(a){kg[a>>8&15].call(this,a)},gf,We,Ge,Ce,Ee,pf,V],ig=[function(a){lg[a>>4&15].call(this,a)},Se,Pe,He,Ie,Ne,Je,Le,df,df,vf,xf,zf,function(a){mg[a>>6&3].call(this,a)},V,V],mg=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.qa(a|this.M);Ad(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Md(this,a,0);Fd(this,a);P(this,a);this.b-=11},function(a){var b=Hd(this),c= -this.b;Nd(this,a,0,b);P(this,b);this.b=c-hf[this.j]},function(a){P(this,Ud(this,a,this.Ca?65535:0));this.b-=this.j?9:3+(7==this.f?2:0)}],lg=[function(a){ng[a&15].call(this,a)},V,V,V,bf,bf,bf,bf,nf,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.F|=1),this.b-=5):V.call(this,a)},Uf,Wf,qf,qf,qf,qf],ng=[Ze,sf,mf,Re,$e,lf,function(){Gd(this);this.b-=13},V,V,V,V,V,V,V,V,V],jg=[jf,jf,Xe,Xe,xe,xe,ye,ye,tf,tf,V,V,V,V,of,of],kg=[Qe,Oe,Ke,Me,Te,Ue,ze,Ae,Ye,rf,Yf,$f,bg,function(a){og[a>>6&3].call(this, +this.b;Nd(this,a,0,b);P(this,b);this.b=c-hf[this.j]},function(a){P(this,Ud(this,a,this.Ca?65535:0));this.b-=this.j?9:3+(7==this.f?2:0)}],lg=[function(a){ng[a&15].call(this,a)},V,V,V,bf,bf,bf,bf,nf,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.F|=1),this.b-=5):V.call(this,a)},Bf,Wf,qf,qf,qf,qf],ng=[Ze,sf,mf,Re,$e,lf,function(){Gd(this);this.b-=13},V,V,V,V,V,V,V,V,V],jg=[jf,jf,Xe,Xe,xe,xe,ye,ye,tf,tf,V,V,V,V,of,of],kg=[Qe,Oe,Ke,Me,Te,Ue,ze,Ae,Ye,rf,Yf,$f,bg,function(a){og[a>>6&3].call(this, a)},V,V],og=[V,function(a){a=Md(this,a,65536);Fd(this,a);P(this,a);this.b-=11},function(a){var b=Hd(this),c=this.b;Nd(this,a,65536,b);P(this,b);this.b=c-hf[this.j]},V];function pg(a){r.call(this,"ROM",a,pg);this.f=null;this.D=a.addr;this.j=a.size;this.G=a.writable;this.B=a.alias;this.C=a.file;this.H=pa(this.C);if(this.C){a=this.C;var b=qa(this.H);"json"!=b&&"hex"!=b&&(a=sa()+"/api/v1/dump?file="+this.C+"&format=bytes&decimal=true");var c=this;Fa(a,null,!0,function(a,b,f){qg(c,a,b,f)})}}u(pg); -pg.prototype.Da=function(a,b,c,d){this.A=b;this.b=c;this.i=d;rg(this)};pg.prototype.Aa=function(){if(this.Ba){if(this.i){var a=this.i,b=this.id,c=this.D,d=this.j,e=this.Ba,f=[],g;for(g in e){var l=e[g];"number"==typeof l&&(e[g]=l={o:l});var m=l.o,p=l.a;if(void 0!==m){var q=f,m=[m>>>0,g],v=za(q,m,a.Rb);0>v&&q.splice(-(v+1),0,m)}p&&(l.a=p.replace(/''/g,'"'))}a.G.push({Nd:b,w:c,sc:d,Ba:e,Qb:f})}delete this.Ba}return!0};pg.prototype.za=function(){return!0}; -function qg(a,b,c,d){if(d)a.na("Unable to load system ROM (error "+d+": "+b+")");else{jb(a.Fb,b,c);var e;if("["==c.charAt(0)||"{"==c.charAt(0))try{var f,g,l=eval("("+c+")");if(f=l.bytes)a.f=f;else if(f=l.words)for(a.f=Array(2*f.length),g=e=0;e>8&255;else if(f=l.data)for(a.f=Array(4*f.length),g=e=0;e>8&255,a.f[g++]=f[e]>>16&255,a.f[g++]=f[e]>>24&255;else a.f=l;a.Ba=l.symbols;if(!a.f.length){n("Empty ROM: "+ +pg.prototype.Da=function(a,b,c,d){this.A=b;this.b=c;this.i=d;rg(this)};pg.prototype.Aa=function(){if(this.Ba){if(this.i){var a=this.i,b=this.id,c=this.D,d=this.j,e=this.Ba,f=[],g;for(g in e){var l=e[g];"number"==typeof l&&(e[g]=l={o:l});var m=l.o,p=l.a;if(void 0!==m){var q=f,m=[m>>>0,g],v=za(q,m,a.Sb);0>v&&q.splice(-(v+1),0,m)}p&&(l.a=p.replace(/''/g,'"'))}a.G.push({Nd:b,w:c,sc:d,Ba:e,Rb:f})}delete this.Ba}return!0};pg.prototype.za=function(){return!0}; +function qg(a,b,c,d){if(d)a.na("Unable to load system ROM (error "+d+": "+b+")");else{jb(a.Gb,b,c);var e;if("["==c.charAt(0)||"{"==c.charAt(0))try{var f,g,l=eval("("+c+")");if(f=l.bytes)a.f=f;else if(f=l.words)for(a.f=Array(2*f.length),g=e=0;e>8&255;else if(f=l.data)for(a.f=Array(4*f.length),g=e=0;e>8&255,a.f[g++]=f[e]>>16&255,a.f[g++]=f[e]>>24&255;else a.f=l;a.Ba=l.symbols;if(!a.f.length){n("Empty ROM: "+ b);return}if(1==a.f.length){n(a.f[0]);return}}catch(m){a.na("ROM data error: "+m.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.f=Array(b.length),e=0;e=b)a.preventDefault&&a.preventDefault(),64=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=xa(b[0]);if(c!=this.Ua)return;b=xa(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.Fb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.Aa=function(a,b){if(!b)if(this.Zb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -h.za=function(a){return a?this.save():!0};h.reset=function(){wg(this)};h.save=function(){var a=new N(this);a.set(0,[]);return a.data()};h.restore=function(){return wg(this)};function wg(a){a.R=0;a.f=0;a.j=128;a.D=[];return!0}h.Kb=function(a){if("number"==typeof a)this.D.push(a);else if("string"==typeof a)for(var b=0;b");if(2==b.length){var c=xa(b[0]);if(c!=this.Ua)return;b=xa(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.Gb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.Aa=function(a,b){if(!b)if(this.Zb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; +h.za=function(a){return a?this.save():!0};h.reset=function(){wg(this)};h.save=function(){var a=new N(this);a.set(0,[]);return a.data()};h.restore=function(){return wg(this)};function wg(a){a.R=0;a.f=0;a.j=128;a.D=[];return!0}h.Lb=function(a){if("number"==typeof a)this.D.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.T||8,c=a-this.H%a,this.T&&(b=wa("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.C.value+=b;this.C.scrollTop=this.C.scrollHeight;this.H+=c}else if(null!=this.G){if(10==a||1024<=this.G.length)this.g(this.G), this.G="";10!=a&&(this.G+=String.fromCharCode(a))}this.j&=-129;rc(this.b,this.V,1)}};var xg={},vg=(xg[65392]=[null,null,Y.prototype.Nc,Y.prototype.xd,"RCSR"],xg[65394]=[null,null,Y.prototype.Mc,Y.prototype.wd,"RBUF"],xg[65396]=[null,null,Y.prototype.$c,Y.prototype.Kd,"XCSR"],xg[65398]=[null,null,Y.prototype.Zc,Y.prototype.Jd,"XBUF"],xg);Ta(function(){for(var a=A(document,"pdp11","serial"),b=0;b=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};yg.prototype.Wb=function(){return-1};yg.prototype.Xb=function(){}; +function yg(a){r.call(this,"Debugger",a,yg);this.ja=a.base||16;this.wa=!1;this.R=this.va=this.H=0;this.U=!1;this.C=-1;this.j=[];this.aa={}}u(yg);var zg={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};yg.prototype.Xb=function(){return-1};yg.prototype.Yb=function(){}; function Ag(a,b,c,d){if(c)if(b){0>a.C&&a.j.length&&(a.C=0);if(0>a.C||b!=a.j[a.C])a.j.splice(0,0,b),a.C=0;a.C--}else a.U?b="end":b=a.j[a.C+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(xa(b.substring(c,f))),c=f+1}}return a} function Bg(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<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":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 Cg(a,b,c){var d;if(b){b=Dg(a,b);for(var e=0,f=!1,g=b,l=[],m=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=q+g;d>>=8}d=k(c,0,!0)+" "+c+". "+oa(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.g((null!=b?b+": ":"")+d);return e}function Gg(a,b){if(b)return Fg(a,b,a.aa[b]);var c=0;for(b in a.aa)Fg(a,b,a.aa[b]),c++;return 0>>d.A.ga;m=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.g("..."):(c=q.type,p=jc[c],q&&d.g(k(q.id,8)+" %"+k(e<this.b.Ya?Pg:[];Qg(this,function(a){a:{var b=d.A.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(Rg(d,c));if(-1===a){d.g("invalid address: "+c);break a}e=a>>>d.A.ga;m=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.g("..."):(c=q.type,p=jc[c],q&&d.g(k(q.id,8)+" %"+k(e<d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}h.Xb=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.ta[a-16]:20==a&&(b=Lb(this.b)));return b}; +d.la.value="";Rc(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Na(c,function(a){var b=!1;pb(d,!0)||(ob(d,!0),b=d.fb(a?1:0),ob(d,!1));return b}),!0}return!1};h.sb=function(){this.la&&this.la.focus()};h.Y=function(a){a=a&&a.w;null==a&&(a=-1);return a};h.lb=function(a,b){var c=255,d=this.Y(a,!1,1);-1!==d&&(c=a.vb?this.A.zb(d):this.b.zb(d),b&&Sg(a,b));return c};h.ka=function(a,b){var c=65535,d=this.Y(a,!1,2);-1!==d&&(c=a.vb?this.A.mb(d):this.b.mb(d),b&&Sg(a,b));return c}; +h.Db=function(a,b,c){var d=this.Y(a,!0,1);-1!==d&&(a.vb?this.A.rb(d,b):this.b.rb(d,b),c&&Sg(a,c),this.B.$(!0))};h.Sa=function(a,b,c){var d=this.Y(a,!0,2);-1!==d&&(a.vb?this.A.Eb(d,b):this.b.Eb(d,b),c&&Sg(a,c),this.B.$(!0))};function Z(a,b){return{w:a,vb:b,ya:!1}}function Tg(a){return[a.w,a.ya]}function Ug(a){return{w:a[0],ya:a[1]}} +function Rg(a,b,c){var d,e=(c?a.K:a.Oa).w;c=!1;if(void 0!==b){b=Dg(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;ed&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}h.Yb=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.ta[a-16]:20==a&&(b=Lb(this.b)));return b}; h.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.qb).w));this.ia&1073741824?this.ua.push(a):this.oa&&a==this.oa||(this.oa=a,this.ia&-2147483648&&(this.da(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,Xc(a),a.la=0,a.B.$()))}; -function Jg(a){var b;if(Vd(a)){if(!a.I||!a.I.length){a.I=Array(1E3);for(b=0;b>>d.ga],!1)}a.M=["br"];if(a.D)for(b=1;b>>d.ga],!0);a.D=["bw"];a.Ta=0} -h.Pa=function(a,b,c){var d=!0;c||Zg(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.g("invalid address: "+J(this,b.w)),d=!1;else{var f=this.A;f.W[e>>>f.ga].Pa(e&f.A,a==this.D)}}d&&(a.push(b),c?b.ya=!0:($g(this,a,a.length-1,"set"),Jg(this)));return d};function Zg(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ga],b==a.D));l.ya||Jg(a);break}}return f} -function ah(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==D)w=w.w-((f&63)<<1)&65535,y=J(x,w);else if(12288==D)y=J(x,f&7,1);else if(24576==D)y=J(x,f&63,1);else if(D=f&C,C&4032&&(D>>=6,C>>=6),C&63)switch(C=D&7,D&56){case 0:y=Ug(C);break;case 8:y="@"+Ug(C);break;case 16:7>C?y="("+Ug(C)+ -")+":(D=x.ka(w,2),y="#"+J(x,D,0,!0));break;case 24:7>C?y="@("+Ug(C)+")+":(D=x.ka(w,2),y="@#"+J(x,D,0,!0));break;case 32:y="-("+Ug(C)+")";break;case 40:y="@-("+Ug(C)+")";break;case 48:D=x.ka(w,2);y=J(x,D,0,!0)+"("+Ug(C)+")";7==C&&(y=[y,J(x,D+w.w&65535)]);break;case 56:D=x.ka(w,2),y="@"+J(x,D)+"("+Ug(C)+")",7==C&&(y=[y,J(x,D+w.w&65535)])}x=y;if(!x||!x.length){l="INVALID";break}"string"!=typeof x&&(m=x[1],x=x[0]);0b?(c=Ug(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.ta[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function fh(a){var b,c="";for(b=0;6>b;b++)c+=eh(a,b);c=c+"\n"+(eh(a,6)+eh(a,7)+eh(a,20));return c+=dh(a,"T")+dh(a,"N")+dh(a,"Z")+dh(a,"V")+dh(a,"C")}h.Rb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,l=f.sc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.g("unknown register: "+e);return}a.B.$();a.g("updated registers:")}a.g(fh(a));c&&(a.K=Z(d.u[7]),Xg(a,J(a,a.K.w)))}}function kh(a,b){b=xa(b);var c=b.match(/^(['"])(.*?)\1$/);c?1l[0].indexOf("+"))){var p=l[0]+":";l[2]&&(p+=" "+l[2]);a.g(p)}l[3]&&(g=l[3],f=null);f=ch(a,b,g,f);a.g(f);a.K=b;e-=b.w-m;c++}}} -function bh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.U&&(a.g("ended assemble at "+J(a,a.T.w)),a.K=a.T,a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.oa=null;if(qb(a)&&0q||"z"ia.length&&(a.g("note: only "+ia.length+" available"),X=ia.length);ba-=X;0>ba&&(null==ia[ia.length-1].w?(X=ba+X,ba=0):ba+=ia.length);var bd=[];"call"==Gf&&(rb=1E5,bd=["CALL"]);for(void 0!==Ff&&a.g(X+" instructions earlier:");0=ia.length&&(ba=0);a.Va=X;If++;rb--}}If||(a.g("no "+Hf+"history available"),a.Va=void 0)}else{var tb=Pg(a,ha);if(tb){var bc=0;Ca&&("l"==Ca.charAt(0)&&(Ca=Ca.substr(1)||Eh),bc=Eg(a,Ca)>>>0,65536>4||1;Gh--&&0ec?String.fromCharCode(ec):".";cc--}ub&&(ub+="\n");ub+=ha+" "+cd+(0==wb?" "+Lf:"")}ub&&a.g(ub);a.Oa=tb}}}}break;case "e":if("else"==g[0])break;var Za,ed,fd,gd,hd=g[0],id=g[1];"eb"==hd?(Za=1,ed=255,fd=a.kb,gd=a.Cb):"e"==hd||"ew"==hd?(Za=2,ed=65535,fd=a.ka,gd=a.Sa):id=null;if(null==id)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 fc=Pg(a,id);if(fc)for(var gc=2;gc< -g.length;gc++){var xb=Cg(a,g[gc]);if(void 0===xb){a.g("unrecognized value: "+g[gc]);break}xb&~ed&&a.g("warning: "+k(xb)+" exceeds "+Za+"-byte value");var Hh=fd.call(a,fc);a.g("changing "+J(a,fc.w)+" from "+J(a,Hh,Za)+" to "+J(a,xb,Za));gd.call(a,fc,xb,Za)}}break;case "g":a:{var Mf=g[1],Ih=b;if(void 0!==Mf){var jd=Pg(a,Mf,!0);if(!jd)break a;Tg(a,jd,Ih);a.Pa(a.f,jd,!0)}a.cb(!0,c)}break;case "h":a.v.ca?(c||a.g("halting"),a.da()):pb(a,!0)||c||a.g("already halted");break;case "i":if("if"==g[0]){var kd; -var yb=b.substr(2),yb=xa(yb);Cg(a,yb)?(c||a.g("true: "+yb),kd=!0):(c||a.g("false: "+yb),kd=!1);kd||(d=!1);break}f=!0;break;case "k":var Jh=g[0];if("?"==g[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var ld=0,md=Z(),zb=Z(a.b.u[6]);for(a.g("stack trace for "+J(a,zb.w));10>ld;){for(var Da=null,Kh=256;65536>zb.w>>>0;){md.w=a.ka(zb,2);if(null==zb.w||!Kh--)break;if(!(md.w&1)){for(var Lh=a,hc=md,Nf=null,Ab=hc.w,Of=Ab,nd=1;6>=nd&&Ab;nd++){if(2< -nd){hc.w=Ab;var ic=ch(Lh,hc);if(0<=ic.indexOf("JSR")){var Pf=ic.indexOf(" ");if(Ab+(ic.indexOf(" ",Pf+1)-Pf-1)/2==Of){Nf=ic;break}}}Ab-=2}hc.w=Of;if(Da=Nf)break}}if(!Da||null==Da)break;var Qf=null;if("ks"==Jh){var Rf=Da.match(/[0-9A-F]+$/);Rf&&(Qf=jh(a,Rf[0]))}Da=wa(Da,50)+" ;"+(Qf||"stack="+J(a,zb.w));a.g(Da);ld++}ld||a.g("no return addresses found")}break;case "l":if("ln"==g[0]){jh(a,g[1],!0);break}f=!0;break;case "m":a:{var ja,ka=null,F=g[1];"?"==F&&(F=void 0);if(void 0!==F){var va=0;if("all"== -F)va=1878917119,F=null;else if("on"==F)ka=!0,F=null;else if("off"==F)ka=!1,F=null;else{"keys"==F&&(F="key");"kbd"==F&&(F="keyboard");for(ja in H)if(F==ja){va=H[ja];ka=!!(a.ia&va);break}if(!va){a.g("unknown message category: "+F);break a}}if(va)if("on"==g[2])a.ia|=va,ka=!0;else if("off"==g[2]&&(a.ia&=~va,ka=!1,1073741824==va)){for(var od=0;od\nLicense: GPL version 3 or later ");this.g("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bph){if(rh(d,this.I)){this.D=new N(this,"1.30.1","failsafe");rh(this.D)&&(wh(this,d),a=2,xh(this.D));this.D.set("timestamp",Ea());yh(this.D);var e=this.f&&!this.G;if(1==a||Ga("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=vh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?rh(d,g):("error"== -f&&"no machine state"!=g?(this.na("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.j=null)):this.g(f+": "+g),xh(d),rh(d)?(c=vh(d),e=!0):c=!1))}e&&uh(this,c?d:null)}else 2==a&&d.clear()}else uh(this);delete this.I;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ha=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.b&&(zh(this,this.b,b,c,a),this.b.hb());this.T&&(wh(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.B=0}; -function wh(a,b){if(Ga("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.j||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Fa("http://www.pcjs.org/api/v1/report",d,!0)}} -function mh(a,b,c){var d,e="none";if(a.B)return null;a.B--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),l=Ea();g.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.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 l=kb(a.id),m=0;m>>d.ga],!1)}a.M=["br"];if(a.D)for(b=1;b>>d.ga],!0);a.D=["bw"];a.Ta=0} +h.Pa=function(a,b,c){var d=!0;c||ah(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.g("invalid address: "+J(this,b.w)),d=!1;else{var f=this.A;f.W[e>>>f.ga].Pa(e&f.A,a==this.D)}}d&&(a.push(b),c?b.ya=!0:(bh(this,a,a.length-1,"set"),Jg(this)));return d};function ah(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ga],b==a.D));l.ya||Jg(a);break}}return f} +function ch(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==D)w=w.w-((f&63)<<1)&65535,y=J(x,w);else if(12288==D)y=J(x,f&7,1);else if(24576==D)y=J(x,f&63,1);else if(D=f&C,C&4032&&(D>>=6,C>>=6),C&63)switch(C=D&7,D&56){case 0:y= +Wg(C);break;case 8:y="@"+Wg(C);break;case 16:7>C?y="("+Wg(C)+")+":(D=x.ka(w,2),y="#"+J(x,D,0,!0));break;case 24:7>C?y="@("+Wg(C)+")+":(D=x.ka(w,2),y="@#"+J(x,D,0,!0));break;case 32:y="-("+Wg(C)+")";break;case 40:y="@-("+Wg(C)+")";break;case 48:D=x.ka(w,2);y=J(x,D,0,!0)+"("+Wg(C)+")";7==C&&(y=[y,J(x,D+w.w&65535)]);break;case 56:D=x.ka(w,2),y="@"+J(x,D)+"("+Wg(C)+")",7==C&&(y=[y,J(x,D+w.w&65535)])}x=y;if(!x||!x.length){l="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=Wg(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.ta[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function hh(a){var b,c="";for(b=0;6>b;b++)c+=gh(a,b);c=c+"\n"+(gh(a,6)+gh(a,7)+gh(a,20));return c+=fh(a,"T")+fh(a,"N")+fh(a,"Z")+fh(a,"V")+fh(a,"C")}h.Sb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,l=f.sc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.g("unknown register: "+e);return}a.B.$();a.g("updated registers:")}a.g(hh(a));c&&(a.K=Z(d.u[7]),Zg(a,J(a,a.K.w)))}}function mh(a,b){b=xa(b);var c=b.match(/^(['"])(.*?)\1$/);c?1l[0].indexOf("+"))){var p=l[0]+":";l[2]&&(p+=" "+l[2]);a.g(p)}l[3]&&(g=l[3],f=null);f=eh(a,b,g,f);a.g(f);a.K=b;e-=b.w-m;c++}}} +function dh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.U&&(a.g("ended assemble at "+J(a,a.T.w)),a.K=a.T,a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.oa=null;if(qb(a)&&0q||"z"ia.length&&(a.g("note: only "+ia.length+" available"),X=ia.length);ba-=X;0>ba&&(null==ia[ia.length-1].w?(X=ba+X,ba=0):ba+=ia.length);var bd=[];"call"==Hf&&(sb=1E5,bd=["CALL"]);for(void 0!==Gf&&a.g(X+" instructions earlier:");0=ia.length&&(ba=0);a.Va=X;Jf++;sb--}}Jf||(a.g("no "+If+"history available"),a.Va=void 0)}else{var ub=Rg(a,ha);if(ub){var bc=0;Ca&&("l"==Ca.charAt(0)&&(Ca=Ca.substr(1)||Gh),bc=Eg(a,Ca)>>>0,65536>4||1;Ih--&&0ec?String.fromCharCode(ec):".";cc--}vb&&(vb+="\n");vb+=ha+" "+cd+(0==xb?" "+Mf:"")}vb&&a.g(vb);a.Oa=ub}}}}break;case "e":if("else"==g[0])break;var Za,ed,fd,gd,hd=g[0],id=g[1];"eb"==hd?(Za=1,ed=255,fd=a.lb,gd=a.Db):"e"==hd||"ew"==hd?(Za=2,ed=65535,fd=a.ka,gd=a.Sa):id=null;if(null==id)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 fc=Rg(a,id);if(fc)for(var gc=2;gc< +g.length;gc++){var yb=Cg(a,g[gc]);if(void 0===yb){a.g("unrecognized value: "+g[gc]);break}yb&~ed&&a.g("warning: "+k(yb)+" exceeds "+Za+"-byte value");var Jh=fd.call(a,fc);a.g("changing "+J(a,fc.w)+" from "+J(a,Jh,Za)+" to "+J(a,yb,Za));gd.call(a,fc,yb,Za)}}break;case "g":a:{var Nf=g[1],Kh=b;if(void 0!==Nf){var jd=Rg(a,Nf,!0);if(!jd)break a;Vg(a,jd,Kh);a.Pa(a.f,jd,!0)}a.eb(!0,c)}break;case "h":a.v.ca?(c||a.g("halting"),a.da()):pb(a,!0)||c||a.g("already halted");break;case "i":if("if"==g[0]){var kd; +var zb=b.substr(2),zb=xa(zb);Cg(a,zb)?(c||a.g("true: "+zb),kd=!0):(c||a.g("false: "+zb),kd=!1);kd||(d=!1);break}f=!0;break;case "k":var Lh=g[0];if("?"==g[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var ld=0,md=Z(),Ab=Z(a.b.u[6]);for(a.g("stack trace for "+J(a,Ab.w));10>ld;){for(var Da=null,Mh=256;65536>Ab.w>>>0;){md.w=a.ka(Ab,2);if(null==Ab.w||!Mh--)break;if(!(md.w&1)){for(var Nh=a,hc=md,Of=null,Bb=hc.w,Pf=Bb,nd=1;6>=nd&&Bb;nd++){if(2< +nd){hc.w=Bb;var ic=eh(Nh,hc);if(0<=ic.indexOf("JSR")){var Qf=ic.indexOf(" ");if(Bb+(ic.indexOf(" ",Qf+1)-Qf-1)/2==Pf){Of=ic;break}}}Bb-=2}hc.w=Pf;if(Da=Of)break}}if(!Da||null==Da)break;var Rf=null;if("ks"==Lh){var Sf=Da.match(/[0-9A-F]+$/);Sf&&(Rf=lh(a,Sf[0]))}Da=wa(Da,50)+" ;"+(Rf||"stack="+J(a,Ab.w));a.g(Da);ld++}ld||a.g("no return addresses found")}break;case "l":if("ln"==g[0]){lh(a,g[1],!0);break}f=!0;break;case "m":a:{var ja,ka=null,F=g[1];"?"==F&&(F=void 0);if(void 0!==F){var va=0;if("all"== +F)va=1878917119,F=null;else if("on"==F)ka=!0,F=null;else if("off"==F)ka=!1,F=null;else{"keys"==F&&(F="key");"kbd"==F&&(F="keyboard");for(ja in H)if(F==ja){va=H[ja];ka=!!(a.ia&va);break}if(!va){a.g("unknown message category: "+F);break a}}if(va)if("on"==g[2])a.ia|=va,ka=!0;else if("off"==g[2]&&(a.ia&=~va,ka=!1,1073741824==va)){for(var od=0;od\nLicense: GPL version 3 or later ");this.g("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;brh){if(th(d,this.I)){this.D=new N(this,"1.30.1","failsafe");th(this.D)&&(yh(this,d),a=2,zh(this.D));this.D.set("timestamp",Ea());Ah(this.D);var e=this.f&&!this.G;if(1==a||Ga("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=xh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?th(d,g):("error"== +f&&"no machine state"!=g?(this.na("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.j=null)):this.g(f+": "+g),zh(d),th(d)?(c=xh(d),e=!0):c=!1))}e&&wh(this,c?d:null)}else 2==a&&d.clear()}else wh(this);delete this.I;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ha=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.b&&(Bh(this,this.b,b,c,a),this.b.ib());this.T&&(yh(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.B=0}; +function yh(a,b){if(Ga("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.j||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Fa("http://www.pcjs.org/api/v1/report",d,!0)}} +function oh(a,b,c){var d,e="none";if(a.B)return null;a.B--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),l=Ea();g.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.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 l=kb(a.id),m=0;mf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\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/g.exec(a)){var e=d[2];b("Loading "+e+"...");Fa(e,null,!0,function(f,g,l){if(l||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=l[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);l[0]!=m&&(g=g.replace(l[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],g);Rh(a,b,c)}})}else c(a,null)} -function Sh(a,b,c,d){function e(a){if(void 0===l){var b=g&&A(g,"machine-warning");l=b&&b[0]||g}l&&(l.innerHTML=ua(a))}function f(a){e("Error: "+a);m&&(--Dh||ab(!0));m=!1}var g,l,m=!0;Dh++;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,l){l?Ph(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=l.transformNode(m))?(g.outerHTML=m,--Dh||ab(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(l,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Dh||ab(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Ph(b,a,d,!0,e,p):Qh(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){ab(!1);return Sh(a,b,c,d)};window.enableEvents=ab;window.sendEvent=bb;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map +h.ra=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.B||(d.v.ha?oh(d,!1,!0):vh(d,d.pb))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.v.ha&&!d.B)if(d.f&&!d.H){var a=Ga("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");oh(d,a,!0);!a&&d.R?window&&window.location.reload():d.pb(rh)}else d.reset(),d.b&&d.b.ib()},!0;case "save":if(ra())c.parentNode.removeChild(c);else return this.J[b]= +c,c.onclick=function(){var a=sh(d,!0);if(a){var b=!!(d.f&&!d.H||d.R),c=oh(d,b);b?Ch(d,a,c):d.na("Resume disabled, machine state not saved")}},!0}return!1}; +function sh(a,b){var c=a.j;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=Dh(a,c))||a.na("The user ID is invalid.")):b&&a.na("Browser local storage is not available"));return c} +function Dh(a,b){a.j=null;b=Fa(sa()+"/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.j=b.data)}catch(d){n(d.message+" ("+c+")")}return a.j}function uh(a){var b=null;a.j&&(b=sa()+"/api/v1/user?req=load&user="+a.j+"&state="+Eh(a,"1.30.1"));return b} +function Ch(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Eh(a,"1.30.1");d.data=c;b=Fa(sa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\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/g.exec(a)){var e=d[2];b("Loading "+e+"...");Fa(e,null,!0,function(f,g,l){if(l||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=l[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);l[0]!=m&&(g=g.replace(l[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],g);Th(a,b,c)}})}else c(a,null)} +function Uh(a,b,c,d){function e(a){if(void 0===l){var b=g&&A(g,"machine-warning");l=b&&b[0]||g}l&&(l.innerHTML=ua(a))}function f(a){e("Error: "+a);m&&(--Fh||ab(!0));m=!1}var g,l,m=!0;Fh++;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,l){l?Rh(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=l.transformNode(m))?(g.outerHTML=m,--Fh||ab(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(l,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Fh||ab(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Rh(b,a,d,!0,e,p):Sh(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){ab(!1);return Uh(a,b,c,d)};window.enableEvents=ab;window.sendEvent=bb;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map