Strip leading zeros from selected debugger constants (typically immediate values)
This commit is contained in:
parent
15fe831fc7
commit
eb5aaa5d66
10 changed files with 348 additions and 335 deletions
|
|
@ -3,7 +3,7 @@
|
|||
; REBASE HIGHER LINK/BOT:140000
|
||||
; WANT PERFORMANCE COUNTER - CLOCK TICKS TO DO SOMETHING?
|
||||
|
||||
START: RESET
|
||||
START: RESET ; 140000
|
||||
CLR @#177776
|
||||
MOV #START,SP
|
||||
CLR @#177564
|
||||
|
|
@ -29,18 +29,20 @@ START: RESET
|
|||
|
||||
LGHTON: .WORD 0
|
||||
CLKTIC: .WORD 0
|
||||
CLKAST:
|
||||
|
||||
CLKAST: ; 140124
|
||||
INC CLKTIC
|
||||
RTT
|
||||
|
||||
ONECHR:
|
||||
TSTB @#177564
|
||||
TSTB @#177564 ; 140132
|
||||
BPL ONECHR
|
||||
MOVB R0,@#177566
|
||||
RTS PC
|
||||
|
||||
PRTPTR: .WORD 0
|
||||
PRINT:
|
||||
|
||||
PRINT: ; 140150
|
||||
BITB #100,@#177564
|
||||
BNE PRINT
|
||||
MOV R0,PRTPTR
|
||||
|
|
@ -49,7 +51,7 @@ PRINT:
|
|||
BISB #100,@#177564
|
||||
RTS PC
|
||||
|
||||
PRTAST:
|
||||
PRTAST: ; 140210
|
||||
TSTB @PRTPTR
|
||||
BEQ 2$
|
||||
MOVB @PRTPTR,@#177566
|
||||
|
|
@ -62,14 +64,14 @@ BUFFER: .WORD 0 ; INPUT BUFFER POINTER
|
|||
LENGTH: .WORD 0 ; INPUT BUFFER LENGTH
|
||||
|
||||
INPUT:
|
||||
MOV R0,BUFFER
|
||||
MOV R0,BUFFER ; 140244
|
||||
CLR LENGTH
|
||||
MOV #INPAST,@#60
|
||||
MOV #200,@#62
|
||||
BISB #100,@#177560
|
||||
RTS PC
|
||||
|
||||
INPAST:
|
||||
INPAST: ; 140300
|
||||
MOV R0,-(SP)
|
||||
MOVB @#177562,R0
|
||||
CMPB R0,#15
|
||||
|
|
@ -112,7 +114,7 @@ INPAST:
|
|||
9$: MOV (SP)+,R0
|
||||
RTT
|
||||
|
||||
CMD:
|
||||
CMD: ; 140506
|
||||
CLR @#177772 ; NO MORE PIR CALLS
|
||||
MOV R0,-(SP)
|
||||
MOV R1,-(SP)
|
||||
|
|
@ -152,7 +154,7 @@ CMD:
|
|||
13$: MOV #UNKMSG,R0
|
||||
JSR PC,PRINT
|
||||
|
||||
15$:CLR LENGTH
|
||||
15$: CLR LENGTH
|
||||
MOV #PROMPT,R0
|
||||
JSR PC,PRINT
|
||||
MOV (SP)+,R4
|
||||
|
|
@ -160,7 +162,7 @@ CMD:
|
|||
MOV (SP)+,R2
|
||||
MOV (SP)+,R1
|
||||
MOV (SP)+,R0
|
||||
RTT
|
||||
RTT
|
||||
|
||||
|
||||
CMDTBL: .WORD BOOT,HALT,TEST,LIGHTS,HELP
|
||||
|
|
@ -181,18 +183,18 @@ PERMSG: .ASCIZ ' CLOCK TICKS'<12><15>
|
|||
|
||||
.EVEN
|
||||
|
||||
HELP:
|
||||
HELP: ; 141244
|
||||
MOV #HLPMSG,R0
|
||||
JSR PC,PRINT
|
||||
RTS PC
|
||||
|
||||
HALT:
|
||||
HALT: ; 141260
|
||||
HALT
|
||||
MOV #EOL,R0
|
||||
JSR PC,PRINT
|
||||
RTS PC
|
||||
|
||||
TEST:
|
||||
TEST: ; 141272
|
||||
CLR CLKTIC
|
||||
|
||||
MOV #15000,R5
|
||||
|
|
@ -207,14 +209,14 @@ TEST:
|
|||
ADD R3,R1
|
||||
CMP R1,R5
|
||||
BEQ 20$
|
||||
HALT
|
||||
20$:SOB R4,15$
|
||||
HALT
|
||||
20$: SOB R4,15$
|
||||
SOB R5,10$
|
||||
|
||||
MOV #PERMSG+5,R0
|
||||
MOV CLKTIC,R3
|
||||
|
||||
25$:CLR R2
|
||||
25$: CLR R2 ; 141350
|
||||
DIV #10,R2
|
||||
ADD #'0,R3
|
||||
MOVB R3,-(R0)
|
||||
|
|
@ -230,7 +232,7 @@ MMR1=177574
|
|||
MMR2=177576
|
||||
MMR3=172516
|
||||
|
||||
LIGHTS:
|
||||
LIGHTS: ; 141376
|
||||
MOV #77406,R3 ; DEFAULT PDR
|
||||
CLR R2
|
||||
CLR R1
|
||||
|
|
@ -274,7 +276,7 @@ LIGHTS:
|
|||
; TO BE COPIED TO SUPER #40200 AT PHYSICAL #170000
|
||||
; #40000 TO #40200 FOR WAIT & JMP INSTRUCTIONS
|
||||
;
|
||||
SUPERS:
|
||||
SUPERS: ; 141616
|
||||
MOV #37,R0 ; LOAD PATTERN
|
||||
MOV #174000,R1
|
||||
BIT #1,@#177570
|
||||
|
|
@ -321,7 +323,7 @@ SUPERS:
|
|||
ADD @#177570,R4
|
||||
MOV #2,R3
|
||||
ADD PC,R3
|
||||
40$:JMP (R2)
|
||||
40$: JMP (R2)
|
||||
SOB R4,40$
|
||||
MOV R0,R2
|
||||
ROR R2 ; ROTATE PATTERN
|
||||
|
|
@ -330,8 +332,7 @@ SUPERS:
|
|||
BR 10$
|
||||
SUPERE:
|
||||
|
||||
|
||||
BOOT:
|
||||
BOOT: ; 142062
|
||||
CLR R3 ; UNIT
|
||||
1$: MOVB (R2)+,R1
|
||||
BEQ BOOTRK ; DEFAULT DEVICE IS RK0
|
||||
|
|
@ -375,7 +376,7 @@ BOOT:
|
|||
RTS PC
|
||||
|
||||
RLCS=174400
|
||||
BOOTRL:
|
||||
BOOTRL: ; 142234
|
||||
RESET
|
||||
SWAB R3 ; UNIT NUMBER
|
||||
MOV #RLCS,R1 ; CSR
|
||||
|
|
@ -416,7 +417,7 @@ BOOTRL:
|
|||
RKDA=177412
|
||||
READGO=5
|
||||
BOOTRK:
|
||||
RESET
|
||||
RESET ; 142402
|
||||
SWAB R3 ; UNIT NUMBER
|
||||
ASL R3
|
||||
ASL R3
|
||||
|
|
@ -438,7 +439,7 @@ BOOTRK:
|
|||
CLR PC
|
||||
|
||||
RPCSR=0176700
|
||||
BOOTRP:
|
||||
BOOTRP: ; 142460
|
||||
RESET
|
||||
MOV #RPCSR, R1
|
||||
MOV #0000040, 10(R1) ; RESET
|
||||
|
|
|
|||
|
|
@ -750,7 +750,7 @@ function Kr(a,b,c){var d=null;if(b=jr(a,b,!0)){a.cc(b);var e=zr(a,b,!0);if(e.len
|
|||
function Lr(a,b){if(b[1]&&"?"!=b[1]){var c="json"==b[1],d,e=0,f=0,g=c?{}:jr(a,b[1]);if(g&&(d=rq(a,b[2],"drive #"),void 0!==d)){if(!c){e=rq(a,b[3],"sector #");if(void 0===e)return;f=rq(a,b[4],"# of sectors");void 0===f&&(f=1)}var h=a.tc;2<=d&&a.Jb&&(d-=2,h=a.Jb);if(h){var k=h.mj(d);if(k)if(k.za)if(c)Hr(a),a.O(k.za.toJSON());else if(h.Uk(k,e,f)){var m=0,n=!1;for(b=cr(g);!n&&0<k.Hb--;)(function(a,b){h.Le(k,function(c){0>c?(a.O("out of data at address "+cr(b)),n=!0):(a.qc(b,c,1,!0),m++)})})(a,g);ad(a.F,
|
||||
!0);a.O(m+" bytes read at "+b)}else a.O("sector "+e+" request out of range");else a.O("drive "+d+" not loaded");else a.O("invalid drive: "+d)}else a.O("disk controller not present")}}else a.O("load commands:"),a.O("\tl [address] [drive #] [sector #] [# sectors]")}
|
||||
function pr(a,b){var c;if(b&&"?"==b[1])a.O("register commands:"),a.O("\tr\tdump registers"),a.Tb&&a.O("\trfp\tdump floating-point registers"),a.O("\trp\tdump all registers"),a.O("\trx [#]\tset flag or register x to [#]");else{var d;null==c&&(c=!0);if(b&&1<b.length){var e=b[1];if(a.Tb&&"fp"==e){c=a.Tb;d=gg(c);b=c.jc;for(var f=0;8>f;f++){var g=c,e=null;if(f<g.X.length){var e=[],h=g.B+f&7;e[0]=h;e[1]=Fg(g,h);e[2]=g.X[h];h<<=1;e[3]=g.aa[h];e[4]=g.aa[h+1];g=Jg(g,e[3],e[4]);e[5]=g[0];e[6]=g[1];e[7]=g[2]}if(!e)break;
|
||||
a.O("ST"+f+": "+pa(e[2].toFixed(15),24,!0)+" "+r(e[4])+","+r(e[3])+" ["+e[0]+":"+Fq[e[1]]+"]")}a.O(" B3SSS210ESPUOZDI xxxIRRPPIxPUOZDI");a.O("SW: "+fa(d,16)+" ("+v(d)+") CW: "+fa(b,16)+" ("+v(b)+")");return}if("p"==e)d=80286<=a.F.ja;else{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.O("missing value for "+b[1]);return}f=!1;g=pq(a,b);if(void 0!==g)switch(f=!0,h=e.toUpperCase(),"E"==h.charAt(0)&&4>=a.Ja&&(h=null),h){case "AL":a.F.G=a.F.G&
|
||||
a.O("ST"+f+": "+pa(e[2].toFixed(15),24,!0)+" "+r(e[4])+","+r(e[3])+" ["+e[0]+":"+Fq[e[1]]+"]")}a.O(" B3SSS210ESPUOZDI xxxIRRPPIxPUOZDI");a.O("SW: "+fa(d,16)+" ("+v(d)+") CW: "+fa(b,16)+" ("+v(b)+")");return}if("p"==e)d=80286<=a.F.ja;else{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.O("missing value for "+b[1]);return}g=pq(a,b);if(void 0===g)return;f=!0;h=e.toUpperCase();"E"==h.charAt(0)&&4>=a.Ja&&(h=null);switch(h){case "AL":a.F.G=a.F.G&
|
||||
-256|g&255;break;case "AH":a.F.G=a.F.G&-65281|g<<8&255;break;case "AX":a.F.G=a.F.G&-65536|g&65535;break;case "BL":a.F.H=a.F.H&-256|g&255;break;case "BH":a.F.H=a.F.H&-65281|g<<8&255;break;case "BX":a.F.H=a.F.H&-65536|g&65535;break;case "CL":a.F.I=a.F.I&-256|g&255;break;case "CH":a.F.I=a.F.I&-65281|g<<8&255;break;case "CX":a.F.I=a.F.I&-65536|g&65535;break;case "DL":a.F.M=a.F.M&-256|g&255;break;case "DH":a.F.M=a.F.M&-65281|g<<8&255;break;case "DX":a.F.M=a.F.M&-65536|g&65535;break;case "SP":I(a.F,J(a.F)&
|
||||
-65536|g&65535);break;case "BP":a.F.P=a.F.P&-65536|g&65535;break;case "SI":a.F.K=a.F.K&-65536|g&65535;break;case "DI":a.F.J=a.F.J&-65536|g&65535;break;case "DS":Ad(a.F,g);break;case "ES":Bd(a.F,g);break;case "SS":ud(a.F,g);break;case "CS":sf(a.F,g);a.aa=vq(a,M(a.F),a.F.wa.Z);break;case "IP":case "EIP":O(a.F,g);a.aa=vq(a,M(a.F),a.F.wa.Z);break;case "PC":case "PS":Dd(a.F,g);break;case "C":g?Ef(a.F):Ff(a.F);break;case "P":g?(e=a.F,e.resultType&=-3,e.ca|=4):(e=a.F,e.resultType&=-3,e.ca&=-5);break;case "A":g?
|
||||
Mf(a.F):Kf(a.F);break;case "Z":g?Nf(a.F):Lf(a.F);break;case "S":g?(e=a.F,e.resultType&=-17,e.ca|=128):(e=a.F,e.resultType&=-17,e.ca&=-129);break;case "I":g?(e=a.F,e.ca|=512):(e=a.F,e.ca&=-513);break;case "D":g?(e=a.F,e.ca|=1024):(e=a.F,e.ca&=-1025);break;case "V":g?Gf(a.F):Hf(a.F);break;default:var k=!0;if(80286<=a.F.ja)switch(k=!1,h){case "MS":Of(a.F,g);break;case "TR":-1===a.F.Sa.load(g)&&(f=!1);break;default:if(k=!0,80386<=a.F.ja)switch(k=!1,h){case "EAX":a.F.G=g;break;case "EBX":a.F.H=g;break;
|
||||
|
|
|
|||
|
|
@ -879,7 +879,7 @@ CPUStatePDP11.prototype.trap = function(vector, reason)
|
|||
this.opFlags &= ~PDP11.OPFLAG.TRAP_MASK; // lose interest in traps after an abort
|
||||
this.trapPSW = -1; // reset flag that we have a trap within a trap
|
||||
|
||||
if (DEBUG && this.dbg) this.dbg.println("trap to vector " + this.dbg.toStrBase(vector) + (reason? " (reason " + reason + ")" : ""));
|
||||
if (DEBUG && this.dbg) this.dbg.println("trap to vector " + this.dbg.toBase(vector) + (reason? " (reason " + reason + ")" : ""));
|
||||
|
||||
throw vector;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -215,6 +215,8 @@ if (DEBUGGER) {
|
|||
|
||||
/*
|
||||
* CPU opcode IDs
|
||||
*
|
||||
* Not listed: BLO (same as BCS) and BHIS (same as BCC).
|
||||
*/
|
||||
DebuggerPDP11.OPS = {
|
||||
NONE: 0, ADC: 1, ADCB: 2, ADD: 3, ASL: 4, ASLB: 5, ASR: 6, ASRB: 7,
|
||||
|
|
@ -256,8 +258,6 @@ if (DEBUGGER) {
|
|||
/*
|
||||
* Register numbers 0-7 are reserved for cpu.regsGen, 8-15 are reserved for cpu.regsAlt, and 16-19 for cpu.regsStack.
|
||||
*/
|
||||
DebuggerPDP11.REG_SP = 6; // aka R6
|
||||
DebuggerPDP11.REG_PC = 7; // aka R7
|
||||
DebuggerPDP11.REG_PSW = 20;
|
||||
|
||||
/*
|
||||
|
|
@ -777,7 +777,7 @@ if (DEBUGGER) {
|
|||
*/
|
||||
DebuggerPDP11.prototype.toStrOffset = function(off)
|
||||
{
|
||||
return this.toStrBase(off);
|
||||
return this.toBase(off);
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -1929,7 +1929,7 @@ if (DEBUGGER) {
|
|||
var sLine = this.toStrAddr(dbgAddrOp) + ":";
|
||||
if (dbgAddrOp.addr !== PDP11.ADDR_INVALID && dbgAddr.addr !== PDP11.ADDR_INVALID) {
|
||||
do {
|
||||
sOpcodes += ' ' + this.toStrBase(this.getWord(dbgAddrOp, 2));
|
||||
sOpcodes += ' ' + this.toBase(this.getWord(dbgAddrOp, 2));
|
||||
if (dbgAddrOp.addr == null) break;
|
||||
} while (dbgAddrOp.addr != dbgAddr.addr);
|
||||
}
|
||||
|
|
@ -1973,20 +1973,20 @@ if (DEBUGGER) {
|
|||
if (opTypeOther == DebuggerPDP11.OP_BRANCH) {
|
||||
disp = ((opCode & 0xff) << 24) >> 23;
|
||||
addr = (dbgAddr.addr + disp) & 0xffff;
|
||||
sOperand = this.toStrBase(addr);
|
||||
sOperand = this.toBase(addr);
|
||||
}
|
||||
else if (opTypeOther == DebuggerPDP11.OP_DSTOFF) {
|
||||
disp = (opCode & 0x3f) << 1;
|
||||
addr = (dbgAddr.addr - disp) & 0xffff;
|
||||
sOperand = this.toStrBase(addr);
|
||||
sOperand = this.toBase(addr);
|
||||
}
|
||||
else if (opTypeOther == DebuggerPDP11.OP_DSTNUM3) {
|
||||
disp = (opCode & 0x7);
|
||||
sOperand = this.toStrBase(disp, 1);
|
||||
sOperand = this.toBase(disp, 1);
|
||||
}
|
||||
else if (opTypeOther == DebuggerPDP11.OP_DSTNUM6) {
|
||||
disp = (opCode & 0x3f);
|
||||
sOperand = this.toStrBase(disp, 1);
|
||||
sOperand = this.toBase(disp, 1);
|
||||
}
|
||||
else {
|
||||
/*
|
||||
|
|
@ -2022,7 +2022,7 @@ if (DEBUGGER) {
|
|||
* When using R7 (aka PC), POST-INCREMENT is known as IMMEDIATE
|
||||
*/
|
||||
wIndex = this.getWord(dbgAddr, 2);
|
||||
sOperand = "#" + this.toStrBase(wIndex);
|
||||
sOperand = '#' + this.toBase(wIndex, 0, true);
|
||||
}
|
||||
break;
|
||||
case PDP11.OPMODE.POSTINCD: // 0x3: POST-INCREMENT DEFERRED
|
||||
|
|
@ -2033,7 +2033,7 @@ if (DEBUGGER) {
|
|||
* When using R7 (aka PC), POST-INCREMENT DEFERRED is known as ABSOLUTE
|
||||
*/
|
||||
wIndex = this.getWord(dbgAddr, 2);
|
||||
sOperand = "@#" + this.toStrBase(wIndex);
|
||||
sOperand = "@#" + this.toBase(wIndex, 0, true);
|
||||
}
|
||||
break;
|
||||
case PDP11.OPMODE.PREDEC: // 0x4: PRE-DECREMENT
|
||||
|
|
@ -2044,22 +2044,22 @@ if (DEBUGGER) {
|
|||
break;
|
||||
case PDP11.OPMODE.INDEX: // 0x6: INDEX
|
||||
wIndex = this.getWord(dbgAddr, 2);
|
||||
sOperand = this.toStrBase(wIndex) + '(' + this.getRegName(reg) + ')';
|
||||
sOperand = this.toBase(wIndex, 0, true) + '(' + this.getRegName(reg) + ')';
|
||||
if (reg == 7) {
|
||||
/*
|
||||
* When using R7 (aka PC), INDEX is known as RELATIVE
|
||||
*/
|
||||
sOperand = [sOperand, this.toStrBase((wIndex + dbgAddr.addr) & 0xffff)];
|
||||
sOperand = [sOperand, this.toBase((wIndex + dbgAddr.addr) & 0xffff)];
|
||||
}
|
||||
break;
|
||||
case PDP11.OPMODE.INDEXD: // 0x7: INDEX DEFERRED
|
||||
wIndex = this.getWord(dbgAddr, 2);
|
||||
sOperand = '@' + this.toStrBase(wIndex) + '(' + this.getRegName(reg) + ')';
|
||||
sOperand = '@' + this.toBase(wIndex) + '(' + this.getRegName(reg) + ')';
|
||||
if (reg == 7) {
|
||||
/*
|
||||
* When using R7 (aka PC), INDEX DEFERRED is known as RELATIVE DEFERRED
|
||||
*/
|
||||
sOperand = [sOperand, this.toStrBase((wIndex + dbgAddr.addr) & 0xffff)];
|
||||
sOperand = [sOperand, this.toBase((wIndex + dbgAddr.addr) & 0xffff)];
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
@ -2148,16 +2148,16 @@ if (DEBUGGER) {
|
|||
|
||||
if (iReg < 8) {
|
||||
sReg = this.getRegName(iReg);
|
||||
sReg += '=' + this.toStrBase(cpu.regsGen[iReg]);
|
||||
sReg += '=' + this.toBase(cpu.regsGen[iReg]);
|
||||
}
|
||||
else if (iReg < 13) {
|
||||
sReg = "A" + (iReg - 8) + '=' + this.toStrBase(cpu.regsAlt[iReg - 8]);
|
||||
sReg = "A" + (iReg - 8) + '=' + this.toBase(cpu.regsAlt[iReg - 8]);
|
||||
}
|
||||
else if (iReg >= 16 && iReg < 20) {
|
||||
sReg = "S" + (iReg - 16) + '=' + this.toStrBase(cpu.regsAltStack[iReg - 16]);
|
||||
sReg = "S" + (iReg - 16) + '=' + this.toBase(cpu.regsAltStack[iReg - 16]);
|
||||
}
|
||||
else if (iReg == DebuggerPDP11.REG_PSW) {
|
||||
sReg = "PS=" + this.toStrBase(cpu.getPSW());
|
||||
sReg = "PS=" + this.toBase(cpu.getPSW());
|
||||
}
|
||||
if (sReg) sReg += ' ';
|
||||
return sReg;
|
||||
|
|
@ -2178,11 +2178,11 @@ if (DEBUGGER) {
|
|||
{
|
||||
var i;
|
||||
var sDump = "";
|
||||
for (i = 0; i < DebuggerPDP11.REG_SP; i++) {
|
||||
for (i = 0; i < PDP11.REG.SP; i++) {
|
||||
sDump += this.getRegOutput(i);
|
||||
}
|
||||
sDump += '\n';
|
||||
sDump += this.getRegOutput(DebuggerPDP11.REG_SP) + this.getRegOutput(DebuggerPDP11.REG_PC) + this.getRegOutput(DebuggerPDP11.REG_PSW);
|
||||
sDump += this.getRegOutput(PDP11.REG.SP) + this.getRegOutput(PDP11.REG.PC) + this.getRegOutput(DebuggerPDP11.REG_PSW);
|
||||
sDump += this.getFlagOutput('T') + this.getFlagOutput('N') + this.getFlagOutput('Z') + this.getFlagOutput('V') + this.getFlagOutput('C');
|
||||
return sDump;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -179,10 +179,10 @@ var PDP11 = {
|
|||
OPMODE: {
|
||||
REG: 0x00, // REGISTER (register is operand)
|
||||
REGD: 0x08, // REGISTER DEFERRED (register is address of operand)
|
||||
POSTINC: 0x10, // POST-INCREMENT (register is address of operand, register incremented)
|
||||
POSTINCD: 0x18, // POST-INCREMENT DEFERRED (register is address of address of operand, register incremented)
|
||||
PREDEC: 0x20, // PRE-DECREMENT (register decremented, register is address of operand)
|
||||
PREDECD: 0x28, // PRE-DECREMENT DEFERRED (register decremented, register is address of address of operand)
|
||||
POSTINC: 0x10, // AUTO-INCREMENT (register is address of operand, register incremented)
|
||||
POSTINCD: 0x18, // AUTO-INCREMENT DEFERRED (register is address of address of operand, register incremented)
|
||||
PREDEC: 0x20, // AUTO-DECREMENT (register decremented, register is address of operand)
|
||||
PREDECD: 0x28, // AUTO-DECREMENT DEFERRED (register decremented, register is address of address of operand)
|
||||
INDEX: 0x30, // INDEX (register + next word is address of operand)
|
||||
INDEXD: 0x38, // INDEX DEFERRED (register + next word is address of address of operand)
|
||||
MASK: 0x38
|
||||
|
|
|
|||
|
|
@ -659,26 +659,35 @@ if (DEBUGGER) {
|
|||
};
|
||||
|
||||
/**
|
||||
* toStrBase(n, nBytes)
|
||||
* toBase(n, nBytes, fStripLeadingZeros)
|
||||
*
|
||||
* Use this instead of str.toHex() or str.toOct() to convert bytes/words to the Debugger's default base.
|
||||
*
|
||||
* @this {Debugger}
|
||||
* @param {number|null|undefined} n
|
||||
* @param {number} [nBytes] is the number of bytes to display, which we translate into a number of characters
|
||||
* @param {boolean} [fStripLeadingZeros]
|
||||
* @return {string}
|
||||
*/
|
||||
Debugger.prototype.toStrBase = function(n, nBytes)
|
||||
Debugger.prototype.toBase = function(n, nBytes, fStripLeadingZeros)
|
||||
{
|
||||
var s;
|
||||
switch(this.nBase) {
|
||||
case 8:
|
||||
return str.toOct(n, nBytes * 3);
|
||||
s = str.toOct(n, nBytes * 3);
|
||||
break;
|
||||
case 10:
|
||||
return n.toString();
|
||||
s = n.toString();
|
||||
break;
|
||||
case 16:
|
||||
default:
|
||||
return str.toHex(n, nBytes * 2);
|
||||
s = str.toHex(n, nBytes * 2);
|
||||
break;
|
||||
}
|
||||
if (fStripLeadingZeros && s.charAt(0) == '0') {
|
||||
s = s.replace(/^0+([0-9A-F]+)$/i, "$1");
|
||||
}
|
||||
return s;
|
||||
};
|
||||
|
||||
} // endif DEBUGGER
|
||||
|
|
|
|||
|
|
@ -192,9 +192,9 @@ function Mf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){
|
|||
function Nf(a,b,c){var d=null;if(b=Qe(a,b,!0)){var e=Jf(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.F-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.F)&&(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 Of(a,b){switch(b[1]){case "8080":a.style=Ge;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.hb=c;break;case "start":a.b.ub=c;break;case "stop":a.b.ib=c;break;default:a.g("unknown cs option");return}void 0!==c&&Ac(a.b);a.g("checksums "+(a.b.C.fb?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Fc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.ab.toFixed(2)+"Mhz")+" ("+
|
||||
a.b.Ra+"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 yf(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}var f=!1,g=Ae(a,b);if(void 0!==g)switch(f=!0,e.toUpperCase()){case "A":d.i=g&255;break;case "B":d.S=g&255;break;case "BC":d.S=g>>8&255;case "C":d.T=g&255;break;case "D":d.U=g&255;
|
||||
break;case "DE":d.U=g>>8&255;case "E":d.V=g&255;break;case "H":d.W=g&255;break;case "HL":d.W=g>>8&255;case "L":d.Z=g&255;break;case "SP":d.oa=g&65535;break;case "PC":I(d,g);a.M=Y(d.R);break;case "PS":Qc(d,g);break;case "PSW":Qc(d,g&255|d.ua&-256);d.i=g>>8;break;case "CF":d.da=g?d.da|256:d.da&255;break;case "PF":g?$c(d)||(d.ga^=1):$c(d)&&(d.ga^=1);break;case "AF":d.ya=g?~d.ga&16|d.ya&-17:d.ga&16|d.ya&-17;break;case "ZF":d.da=g?d.da&-256:d.da|255;break;case "SF":g?cd(d)||(d.ga^=192):cd(d)&&(d.ga^=192);
|
||||
break;case "IF":d.ua=g?d.ua|512:d.ua&-513;break;default:a.g("unknown register: "+e);return}if(!f){a.g("invalid value: "+b);return}Cc(d);a.g("updated registers:")}a.g(If(a));c&&(a.M=Y(d.R),zf(a,Z(a.M.F)))}}function Pf(a,b){b=ma(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(wf(a,c[2])):Ae(a,b,!0)}function Qf(a,b,c){var d="t"!=b;c=Ce(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ca(c,function(){return ib(a,!0)&&a.kb(e,d,!1)},function(){Cc(a.b);ib(a,!1)})}
|
||||
function yf(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=Ae(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.oa=f&65535;break;case "PC":I(d,f);a.M=Y(d.R);break;case "PS":Qc(d,f);break;case "PSW":Qc(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?$c(d)||(d.ga^=1):$c(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?cd(d)||(d.ga^=192):cd(d)&&(d.ga^=192);break;
|
||||
case "IF":d.ua=f?d.ua|512:d.ua&-513;break;default:a.g("unknown register: "+e);return}Cc(d);a.g("updated registers:")}a.g(If(a));c&&(a.M=Y(d.R),zf(a,Z(a.M.F)))}}function Pf(a,b){b=ma(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(wf(a,c[2])):Ae(a,b,!0)}function Qf(a,b,c){var d="t"!=b;c=Ce(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ca(c,function(){return ib(a,!0)&&a.kb(e,d,!1)},function(){Cc(a.b);ib(a,!1)})}
|
||||
function zf(a,b,c,d){if(b=Qe(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Qe(a,c,!0);if(!d||d.F<b.F)return;e=d.F-b.F;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=jb(a,!1)||a.Y?a.K:null;var g=null!=f?"cycles":null,h=Jf(a,b),k=b.F;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.g(n)}h[3]&&(g=h[3],f=null);f=Ff(a,b,g,f);a.g(f);a.M=b;e-=b.F-k;c++}}}
|
||||
l.Fb=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.P?a="end":a=this.w[this.j+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(ma(a.substring(d,f))),d=f+1}}return b};
|
||||
function Ef(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.P&&(a.g("ended assemble at "+Z(a.ca.F)),a.M=a.ca,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.la=null;if(kb(a)&&0<b.length){a.P&&(b="a "+Z(a.ca.F)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var n=g.charAt(k);if("?"==h||"r"==h||"a">n||"z"<n){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var p=Qe(a,f[1],!0);if(p)if(a.ca=
|
||||
|
|
|
|||
|
|
@ -750,7 +750,7 @@ function Kr(a,b,c){var d=null;if(b=jr(a,b,!0)){a.cc(b);var e=zr(a,b,!0);if(e.len
|
|||
function Lr(a,b){if(b[1]&&"?"!=b[1]){var c="json"==b[1],d,e=0,f=0,g=c?{}:jr(a,b[1]);if(g&&(d=rq(a,b[2],"drive #"),void 0!==d)){if(!c){e=rq(a,b[3],"sector #");if(void 0===e)return;f=rq(a,b[4],"# of sectors");void 0===f&&(f=1)}var h=a.tc;2<=d&&a.Jb&&(d-=2,h=a.Jb);if(h){var k=h.mj(d);if(k)if(k.za)if(c)Hr(a),a.O(k.za.toJSON());else if(h.Uk(k,e,f)){var m=0,n=!1;for(b=cr(g);!n&&0<k.Hb--;)(function(a,b){h.Le(k,function(c){0>c?(a.O("out of data at address "+cr(b)),n=!0):(a.qc(b,c,1,!0),m++)})})(a,g);ad(a.F,
|
||||
!0);a.O(m+" bytes read at "+b)}else a.O("sector "+e+" request out of range");else a.O("drive "+d+" not loaded");else a.O("invalid drive: "+d)}else a.O("disk controller not present")}}else a.O("load commands:"),a.O("\tl [address] [drive #] [sector #] [# sectors]")}
|
||||
function pr(a,b){var c;if(b&&"?"==b[1])a.O("register commands:"),a.O("\tr\tdump registers"),a.Tb&&a.O("\trfp\tdump floating-point registers"),a.O("\trp\tdump all registers"),a.O("\trx [#]\tset flag or register x to [#]");else{var d;null==c&&(c=!0);if(b&&1<b.length){var e=b[1];if(a.Tb&&"fp"==e){c=a.Tb;d=gg(c);b=c.jc;for(var f=0;8>f;f++){var g=c,e=null;if(f<g.X.length){var e=[],h=g.B+f&7;e[0]=h;e[1]=Fg(g,h);e[2]=g.X[h];h<<=1;e[3]=g.aa[h];e[4]=g.aa[h+1];g=Jg(g,e[3],e[4]);e[5]=g[0];e[6]=g[1];e[7]=g[2]}if(!e)break;
|
||||
a.O("ST"+f+": "+pa(e[2].toFixed(15),24,!0)+" "+r(e[4])+","+r(e[3])+" ["+e[0]+":"+Fq[e[1]]+"]")}a.O(" B3SSS210ESPUOZDI xxxIRRPPIxPUOZDI");a.O("SW: "+fa(d,16)+" ("+v(d)+") CW: "+fa(b,16)+" ("+v(b)+")");return}if("p"==e)d=80286<=a.F.ja;else{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.O("missing value for "+b[1]);return}f=!1;g=pq(a,b);if(void 0!==g)switch(f=!0,h=e.toUpperCase(),"E"==h.charAt(0)&&4>=a.Ja&&(h=null),h){case "AL":a.F.G=a.F.G&
|
||||
a.O("ST"+f+": "+pa(e[2].toFixed(15),24,!0)+" "+r(e[4])+","+r(e[3])+" ["+e[0]+":"+Fq[e[1]]+"]")}a.O(" B3SSS210ESPUOZDI xxxIRRPPIxPUOZDI");a.O("SW: "+fa(d,16)+" ("+v(d)+") CW: "+fa(b,16)+" ("+v(b)+")");return}if("p"==e)d=80286<=a.F.ja;else{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.O("missing value for "+b[1]);return}g=pq(a,b);if(void 0===g)return;f=!0;h=e.toUpperCase();"E"==h.charAt(0)&&4>=a.Ja&&(h=null);switch(h){case "AL":a.F.G=a.F.G&
|
||||
-256|g&255;break;case "AH":a.F.G=a.F.G&-65281|g<<8&255;break;case "AX":a.F.G=a.F.G&-65536|g&65535;break;case "BL":a.F.H=a.F.H&-256|g&255;break;case "BH":a.F.H=a.F.H&-65281|g<<8&255;break;case "BX":a.F.H=a.F.H&-65536|g&65535;break;case "CL":a.F.I=a.F.I&-256|g&255;break;case "CH":a.F.I=a.F.I&-65281|g<<8&255;break;case "CX":a.F.I=a.F.I&-65536|g&65535;break;case "DL":a.F.M=a.F.M&-256|g&255;break;case "DH":a.F.M=a.F.M&-65281|g<<8&255;break;case "DX":a.F.M=a.F.M&-65536|g&65535;break;case "SP":I(a.F,J(a.F)&
|
||||
-65536|g&65535);break;case "BP":a.F.P=a.F.P&-65536|g&65535;break;case "SI":a.F.K=a.F.K&-65536|g&65535;break;case "DI":a.F.J=a.F.J&-65536|g&65535;break;case "DS":Ad(a.F,g);break;case "ES":Bd(a.F,g);break;case "SS":ud(a.F,g);break;case "CS":sf(a.F,g);a.aa=vq(a,M(a.F),a.F.wa.Z);break;case "IP":case "EIP":O(a.F,g);a.aa=vq(a,M(a.F),a.F.wa.Z);break;case "PC":case "PS":Dd(a.F,g);break;case "C":g?Ef(a.F):Ff(a.F);break;case "P":g?(e=a.F,e.resultType&=-3,e.ca|=4):(e=a.F,e.resultType&=-3,e.ca&=-5);break;case "A":g?
|
||||
Mf(a.F):Kf(a.F);break;case "Z":g?Nf(a.F):Lf(a.F);break;case "S":g?(e=a.F,e.resultType&=-17,e.ca|=128):(e=a.F,e.resultType&=-17,e.ca&=-129);break;case "I":g?(e=a.F,e.ca|=512):(e=a.F,e.ca&=-513);break;case "D":g?(e=a.F,e.ca|=1024):(e=a.F,e.ca&=-1025);break;case "V":g?Gf(a.F):Hf(a.F);break;default:var k=!0;if(80286<=a.F.ja)switch(k=!1,h){case "MS":Of(a.F,g);break;case "TR":-1===a.F.Sa.load(g)&&(f=!1);break;default:if(k=!0,80386<=a.F.ja)switch(k=!1,h){case "EAX":a.F.G=g;break;case "EBX":a.F.H=g;break;
|
||||
|
|
|
|||
|
|
@ -6,37 +6,37 @@ function ma(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
|
|||
function ta(a,b,c,d){var f=0,e=null,g=null;if("object"==typeof resources&&(e=resources[a]))return d&&d(a,e,f),[e,f];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(e=h.responseText,200==h.status||!h.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=h.status||-1),d&&d(a,e,f))});if(b&&"object"==
|
||||
typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(e=h.responseText,200!=h.status&&(f=h.status||-1),d&&d(a,e,f),g=[e,f]);return g}function ha(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||
function t(a){window&&window.alert(a)}function ua(a){var b=!1;window&&(b=window.confirm(a));return b}var va=null;function wa(){if(null==va){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}va=a}return va}function xa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function ya(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function za(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Fa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function ya(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function za(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Aa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function Ga(a,b){function c(){b(100===d)&&(f=setTimeout(c,d),d=100)}var d=0,f=null,e=!1;a.onmousedown=function(){e||f||(d=500,c())};a.ontouchstart=function(){f||(d=500,c())};a.onmouseup=a.onmouseout=function(){f&&(clearTimeout(f),f=null)};a.ontouchend=a.ontouchcancel=function(){f&&(clearTimeout(f),f=null);e=!0}}var Ha={init:[],show:[],exit:[]},Ia=!1,Ja=!1,Ka=!0;function La(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ma(a){Ha.init.push(a)}
|
||||
function Na(a){if(Ka)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Oa(a){!Ka&&a?(Ka=!0,Ia&&Pa("init"),Ja&&Pa("show")):Ka=a}function Pa(a){Ha[a]&&Na(Ha[a])}La("onload",function(){Ia=!0;Na(Ha.init)});La("onpageshow",function(){Ja=!0;Na(Ha.show)});La(za("Opera")||za("iOS")?"onunload":"onbeforeunload",function(){Na(Ha.exit)});
|
||||
function u(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.rc=b.comment;this.Nc=b;b=this.id.indexOf(".");0>b?this.Ab=this.id:(this.tc=this.id.substr(0,b),this.Ab=this.id.substr(b+1));this[a]=c;this.j={ready:!1,ob:!1,fc:!1,ba:!1,error:!1};this.Xb=null;this.j.error=!1;this.I={};this.F=null;this.da=d||0;v.push(this)}var Qa=void 0,Ra={};
|
||||
if(window){Qa||(Qa=window.location.search.substr(1));for(var Sa,Ta=/\+/g,Ua=/([^&=]+)=?([^&]*)/g;Sa=Ua.exec(Qa);)Ra[decodeURIComponent(Sa[1].replace(Ta," "))]=decodeURIComponent(Sa[2].replace(Ta," "))}function Va(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
||||
function w(a,b){b||(b=u);a.prototype=Va(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Wa=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Wa={},v=[];function Xa(a,b,c){Wa[a]&&b&&(Wa[a][b]=c)}function Ya(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||
function Za(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
|
||||
function lb(a,b){b=C(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,f=0;f<d.length;f++){var e=d[f];if(1===e.nodeType){var g=e.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pdp11-binding":(g=y(e))&&g.binding&&a.qa(g.type,g.binding,e,g.value),k=h.length}}}}
|
||||
function $a(a,b){b=C(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,f=0;f<d.length;f++){var e=d[f];if(1===e.nodeType){var g=e.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pdp11-binding":(g=y(e))&&g.binding&&a.ta(g.type,g.binding,e,g.value),k=h.length}}}}
|
||||
function C(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
|
||||
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},qa:function(a,b,c){switch(b){case "clear":return this.I[b]||(this.I[b]=c,c.onclick=function(a){return function(){a.I.print&&(a.I.print.value="")}}(this)),!0;case "print":return this.I[b]||(this.ib=this.I[b]=c,c.value="",this.g=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
||||
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ta: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.ib=this.I[b]=c,c.value="",this.g=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
||||
this.ma=function(a){this.g(a,this.Ab)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Ab+": "+a)},ma:function(a,b,c){c=c||this.type;b||t((c?c+": ":"")+a)},Ma:function(){return this.j.ba=!0},La:function(a,b){b&&(this.j.ba=!1);return!0}};function mb(a,b){if(a.F){a===a.F?b|=0:b=b||a.da;var c=a.F.da&b;return!!b&&c===b||!!(c&a.F.Jc)}return!1}
|
||||
function nb(a,b){if(a.j.fc)return a.j.ob&&(a.j.ob=!1),a.j.fc=!1;if(a.j.error)return a.g(a.toString()+" error"),!1;a.j.ob=b;return a.j.ob}function ob(a,b){a.j.ob&&(b?a.j.fc=!0:void 0===b&&a.g(a.toString()+" busy"));return a.j.ob}function D(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.Xb;a.Xb=null;b&&b()}}function pb(a,b){b&&(a.j.ready?b():a.Xb=b);return a.j.ready}function qb(a,b){a.j.error=!0;a.ma(b)}
|
||||
var rb="undefined"!==typeof ArrayBuffer,E={cpu:1,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function sb(a){u.call(this,"Panel",a,sb)}w(sb);l=sb.prototype;l.qa=function(a,b,c,d){return this.u&&this.u.qa(a,b,c,d)||this.b&&this.b.qa(a,b,c,d)||this.F&&this.F.qa(a,b,c,d)?!0:this.parent.qa.call(this,a,b,c,d)};l.Va=function(a,b,c,d){this.u=a;this.C=b;this.b=c;this.F=d};
|
||||
l.Ma=function(a,b){b||tb();return!0};l.La=function(){return!0};l.va=function(){};function tb(){for(var a=!1,b=C(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=y(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<v.length;g++)if(v[g].id===e){e=v[g];break a}}e=null}e||(a=!0,e=new sb(f));lb(e,d);a&&D(e)}}Ma(tb);
|
||||
function ub(a,b,c){u.call(this,"Bus",a,ub);this.b=b;this.F=c;this.G=a.busWidth||16;this.B=Math.pow(2,this.G);this.C=this.B-1|0;this.S=(this.G>>1)+2;10>this.S&&(this.S=10);15<this.S&&(this.S=15);this.Aa=1<<this.S;this.J=this.Aa>>2;this.f=this.Aa-1;this.w=this.B/this.Aa|0;this.u=this.w-1;this.Qa=[];this.D=null;this.Ib=this.Fc;a=new F;vb(a,this.F);this.L=Array(this.w);for(b=0;b<this.w;b++)this.L[b]=a;this.Cb=Array(4);this.Cb[0]=wb;this.Cb[1]=xb;this.Cb[2]=yb;this.Cb[3]=zb;Ab(this,this.B-8192,8192,Bb,
|
||||
var rb="undefined"!==typeof ArrayBuffer,E={cpu:1,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function sb(a){u.call(this,"Panel",a,sb)}w(sb);l=sb.prototype;l.ta=function(a,b,c,d){return this.u&&this.u.ta(a,b,c,d)||this.b&&this.b.ta(a,b,c,d)||this.F&&this.F.ta(a,b,c,d)?!0:this.parent.ta.call(this,a,b,c,d)};l.Va=function(a,b,c,d){this.u=a;this.C=b;this.b=c;this.F=d};
|
||||
l.Ma=function(a,b){b||tb();return!0};l.La=function(){return!0};l.ya=function(){};function tb(){for(var a=!1,b=C(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=y(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<v.length;g++)if(v[g].id===e){e=v[g];break a}}e=null}e||(a=!0,e=new sb(f));$a(e,d);a&&D(e)}}Ma(tb);
|
||||
function ub(a,b,c){u.call(this,"Bus",a,ub);this.b=b;this.F=c;this.G=a.busWidth||16;this.B=Math.pow(2,this.G);this.C=this.B-1|0;this.T=(this.G>>1)+2;10>this.T&&(this.T=10);15<this.T&&(this.T=15);this.Aa=1<<this.T;this.J=this.Aa>>2;this.f=this.Aa-1;this.w=this.B/this.Aa|0;this.u=this.w-1;this.Qa=[];this.D=null;this.Ib=this.Fc;a=new F;vb(a,this.F);this.L=Array(this.w);for(b=0;b<this.w;b++)this.L[b]=a;this.Cb=Array(4);this.Cb[0]=wb;this.Cb[1]=xb;this.Cb[2]=yb;this.Cb[3]=zb;Ab(this,this.B-8192,8192,Bb,
|
||||
this);Ab(this,57344,8192,Bb,this);D(this)}w(ub);function wb(a,b){var c=this.controller,d=c.Qa[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=c.Qa[a&-2],d[2]))return d[2](b&-2)>>8;c.g("warning: unconverted read access to byte @"+da(b));return c.Ib(b,-1,1)}
|
||||
function xb(a,b,c){var d=this.controller,f=d.Qa[a];if(f){if(f[1]){f[1](b,c);return}if(f[3]){a=f[2]?f[2](c):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);return}}else if(c&1&&(f=d.Qa[a&-2],f[3])){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.g("warning: unconverted write access to byte @"+da(c));d.Ib(c,b,1)}
|
||||
function yb(a,b){var c=this.controller;if(a=c.Qa[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.g("warning: unconverted read access to word @"+da(b));return c.Ib(b,-1,0)}function zb(a,b,c){var d=this.controller;if(a=d.Qa[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}d.g("warning: unconverted write access to word @"+da(c));d.Ib(c,b,0)}l=ub.prototype;l.reset=function(){this.D&&this.D()};l.Fc=function(){return 0};l.Ma=function(a,b){b||this.reset();return!0};
|
||||
function Ab(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.S;0<g&&h<a.L.length;){var k=a.L[h],m=h*a.Aa,n=a.Aa-(e-m);n>g&&(n=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.A)return k.Ub+=k.A-e,k.A=e,!0;if(e>=k.A+k.Ub){n=k.size-(e-m);n>g&&(n=g);k.Ub=e-k.A+n;e=m+a.Aa;g-=n;h++;continue}}return Cb(1,e,g)}e=new F(e,n,a.Aa,d,f);vb(e,a.F,k);a.L[h++]=e;e=m+a.Aa;g-=n}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Db[d]+" at "+r(b,8,!0)),!0):Cb(2,b,c)}
|
||||
l.Jb=function(a){return this.L[(a&this.C)>>>this.S].tb(a&this.f,a)};l.Fa=function(a){var b=a&this.f,c=(a&this.C)>>>this.S;return b!=this.f?this.L[c].Ob(b,a):this.L[c++].tb(b,a)|this.L[c&this.u].tb(0,a+1)<<8};function Eb(a,b){var c=b&a.f,d=(b&a.C)>>>a.S;return c!=a.f?a.L[d].kc(c,b):a.L[d++].Nb(c,b)|a.L[d&a.u].Nb(0,b+1)<<8}l.dc=function(a,b){this.L[(a&this.C)>>>this.S].yb(a&this.f,b&255,a)};
|
||||
l.nc=function(a,b){var c=a&this.f,d=(a&this.C)>>>this.S;c!=this.f?this.L[d].Ec(c,b&65535,a):(this.L[d++].yb(c,b&255,a),this.L[d&this.u].yb(0,b>>8&255,a+1))};function Fb(a){for(var b=0,c=[],d=0;d<a.w;d++){var f=a.L[d];if(f.Ua||f.Mc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],n=g+1;n<f.length&&f[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<f.length&&(f=k)}c[e]=f}}return c}
|
||||
function Ab(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.T;0<g&&h<a.L.length;){var k=a.L[h],m=h*a.Aa,n=a.Aa-(e-m);n>g&&(n=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.A)return k.Ub+=k.A-e,k.A=e,!0;if(e>=k.A+k.Ub){n=k.size-(e-m);n>g&&(n=g);k.Ub=e-k.A+n;e=m+a.Aa;g-=n;h++;continue}}return Cb(1,e,g)}e=new F(e,n,a.Aa,d,f);vb(e,a.F,k);a.L[h++]=e;e=m+a.Aa;g-=n}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Db[d]+" at "+r(b,8,!0)),!0):Cb(2,b,c)}
|
||||
l.Jb=function(a){return this.L[(a&this.C)>>>this.T].tb(a&this.f,a)};l.Fa=function(a){var b=a&this.f,c=(a&this.C)>>>this.T;return b!=this.f?this.L[c].Ob(b,a):this.L[c++].tb(b,a)|this.L[c&this.u].tb(0,a+1)<<8};function Eb(a,b){var c=b&a.f,d=(b&a.C)>>>a.T;return c!=a.f?a.L[d].kc(c,b):a.L[d++].Nb(c,b)|a.L[d&a.u].Nb(0,b+1)<<8}l.dc=function(a,b){this.L[(a&this.C)>>>this.T].yb(a&this.f,b&255,a)};
|
||||
l.nc=function(a,b){var c=a&this.f,d=(a&this.C)>>>this.T;c!=this.f?this.L[d].Ec(c,b&65535,a):(this.L[d++].yb(c,b&255,a),this.L[d&this.u].yb(0,b>>8&255,a+1))};function Fb(a){for(var b=0,c=[],d=0;d<a.w;d++){var f=a.L[d];if(f.Ua||f.Mc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],n=g+1;n<f.length&&f[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<f.length&&(f=k)}c[e]=f}}return c}
|
||||
function Gb(a,b){var c=Hb,d;for(d in c)for(var f=c[d],e=a,g=+d,h=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,f=f[3]?f[3].bind(b):null,n=+d;n<=g;n+=2){var p=n&8191;void 0!==e.Qa[p]?t("I/O address already registered: "+r(n,8,!0)):e.Qa[p]=[h,k,m,f,!1]}}function Rb(a,b,c){a.D=b;a.Ib=c}function Cb(a,b,c){t("Memory block error ("+a+": "+r(b)+","+r(c)+")");return!1}
|
||||
function G(a){u.call(this,"Device",a,G);this.u={jc:[],Ga:0,ra:128,F:127,Lc:0};this.w={data:0,pd:0,qb:20,jd:0};this.f={K:0,pc:-1};this.B={Qb:2496,ia:0,M:128,Rb:0,Pb:0,pa:0,zc:0,la:[],gb:[406,406,406,406],V:[12,12,12,12]};this.D={K:129,Fb:0,$:0,Xa:0,Ra:0,bb:0,la:[],V:[40,40,40,40],gb:[1024,1024,512,512],Hc:[157,157,29,29]};this.G={b:[8210,8208,8210,8226],V:[22,22,22,50],fb:[19,19,19,32],ec:[815,411,815,630],la:[],N:2176,wb:0,ub:0,Ca:[0,0,0,0,0,0,0,0],Ba:0,na:[4544,4544,4544,4544,4544,4544,4544,4544],
|
||||
function G(a){u.call(this,"Device",a,G);this.u={jc:[],Ga:0,ua:128,F:127,Lc:0};this.w={data:0,pd:0,qb:20,jd:0};this.f={K:0,pc:-1};this.B={Qb:2496,ia:0,M:128,Rb:0,Pb:0,sa:0,zc:0,la:[],gb:[406,406,406,406],V:[12,12,12,12]};this.D={K:129,Fb:0,$:0,Xa:0,Ra:0,bb:0,la:[],V:[40,40,40,40],gb:[1024,1024,512,512],Hc:[157,157,29,29]};this.G={b:[8210,8208,8210,8226],V:[22,22,22,50],fb:[19,19,19,32],ec:[815,411,815,630],la:[],N:2176,wb:0,ub:0,Ca:[0,0,0,0,0,0,0,0],Ba:0,na:[4544,4544,4544,4544,4544,4544,4544,4544],
|
||||
vb:[0,0,0,0,0,0,0,0],lb:0,gd:[0,0,0,0,0,0,0,0],Ac:0,Bc:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],hd:[1,2,3,4,5,6,7,8],Cc:[0,0,0,0,0,0,0,0],Pa:[0,0,0,0,0,0,0,0],cc:[0,0,0,0,0,0,0,0],ed:[0,0,0,0,0,0,0,0],fd:[0,0,0,0,0,0,0,0],cd:[0,0,0,0,0,0,0,0],dd:[0,0,0,0,0,0,0,0],ab:0,mc:0}}w(G);
|
||||
var Sb=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
|
||||
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
|
||||
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=G.prototype;l.Va=function(a,b,c,d){this.C=b;this.b=c;this.F=d;var f=this;this.f.pc=Tb(this.b,function(){f.f.Wa|=128;f.f.Wa&64&&(H(f.b,0,6,64),Ub(f.b,f.f.pc))});Gb(b,this);Rb(b,this.reset.bind(this),this.Gc.bind(this));D(this)};l.Wc=function(){var a=this.f.Wa;this.f.Wa&=-129;return a};
|
||||
l.ld=function(a){this.f.Wa=a;a&64&&Ub(this.b,this.f.pc);this.f.Wa=a&-129};l.Xc=function(){var a=this.b;return a.B&62337|a.oa<<5|a.sa<<1};l.md=function(a){var b=4,c=this.b;c.B=a&=62337;c.oa=a>>5&3;c.sa=a>>1&15;c.Yb=a&257?a&1?6:4:0;Vb(c);a=c.B;a&1|256&&(b=this.b.eb&16?1:2);this.w.qb=this.w.qb&-8|b};l.Zc=function(){return this.u.ra};l.od=function(a){if(128==(this.u.ra&192)&&a&64){var b=this;H(this.b,8,4,52,function(){b.u.ra|=128;return!!(b.u.ra&64)})}this.u.ra=this.u.ra&128|a&-129};l.Yc=function(){return Wb(this.b)};
|
||||
l.nd=function(a){Xb(this.b,a&-1809|Wb(this.b)&1808);this.b.T|=128};
|
||||
function Yb(a){var b=a.B,c,d,f,e=b.pa>>13&7;"undefined"===typeof b.la[e]&&(b.la[e]={cache:[],postProcess:a.$c,drive:e,blocksize:256,mapped:0,maxblock:b.gb[e]*b.V[e],url:"rk"+e+".dsk"});b.M&=-129;switch(b.M>>1&7){case 0:b.Qb=2496;b.ia=0;b.M=128;b.pa=0;break;case 1:if((b.pa>>4&511)>=b.gb[e]){b.ia|=32832;b.M|=49152;break}if((b.pa&15)>=b.V[e]){b.ia|=32800;b.M|=49152;break}c=(b.pa>>4&511)*b.V[e]+(b.pa&15);d=(b.M&48)<<12|b.Pb;f=65536-b.Rb&65535;Zb(a,b.la[e],c,d,f);return;case 2:if((b.pa>>4&511)>=b.gb[e])b.ia|=
|
||||
32832,b.M|=49152;else if((b.pa&15)>=b.V[e])b.ia|=32800,b.M|=49152;else{c=(b.pa>>4&511)*b.V[e]+(b.pa&15);d=(b.M&48)<<12|b.Pb;f=65536-b.Rb&65535;a.ac(b.la[e],c,d,f);return}}b.Qb=e<<13|b.Qb&8176|b.pa%9&15;H(a.b,20,5,144,function(){b.M=b.M&65534|128;return!!(b.M&64)})}l.$c=function(a,b,c,d,f){var e=this.B;e.Pb=d&65535;e.M=e.M&-49|d>>12&48;e.Rb=65536-f&65535;switch(a){case 1:e.ia|=33024;e.M|=49152;break;case 2:e.ia|=33792,e.M|=49152}H(this.b,20,5,144,function(){e.M=e.M&65534|128;return!!(e.M&64)})};
|
||||
l.ld=function(a){this.f.Wa=a;a&64&&Ub(this.b,this.f.pc);this.f.Wa=a&-129};l.Xc=function(){var a=this.b;return a.B&62337|a.oa<<5|a.va<<1};l.md=function(a){var b=4,c=this.b;c.B=a&=62337;c.oa=a>>5&3;c.va=a>>1&15;c.Yb=a&257?a&1?6:4:0;Vb(c);a=c.B;a&1|256&&(b=this.b.eb&16?1:2);this.w.qb=this.w.qb&-8|b};l.Zc=function(){return this.u.ua};l.od=function(a){if(128==(this.u.ua&192)&&a&64){var b=this;H(this.b,8,4,52,function(){b.u.ua|=128;return!!(b.u.ua&64)})}this.u.ua=this.u.ua&128|a&-129};l.Yc=function(){return Wb(this.b)};
|
||||
l.nd=function(a){Xb(this.b,a&-1809|Wb(this.b)&1808);this.b.R|=128};
|
||||
function Yb(a){var b=a.B,c,d,f,e=b.sa>>13&7;"undefined"===typeof b.la[e]&&(b.la[e]={cache:[],postProcess:a.$c,drive:e,blocksize:256,mapped:0,maxblock:b.gb[e]*b.V[e],url:"rk"+e+".dsk"});b.M&=-129;switch(b.M>>1&7){case 0:b.Qb=2496;b.ia=0;b.M=128;b.sa=0;break;case 1:if((b.sa>>4&511)>=b.gb[e]){b.ia|=32832;b.M|=49152;break}if((b.sa&15)>=b.V[e]){b.ia|=32800;b.M|=49152;break}c=(b.sa>>4&511)*b.V[e]+(b.sa&15);d=(b.M&48)<<12|b.Pb;f=65536-b.Rb&65535;Zb(a,b.la[e],c,d,f);return;case 2:if((b.sa>>4&511)>=b.gb[e])b.ia|=
|
||||
32832,b.M|=49152;else if((b.sa&15)>=b.V[e])b.ia|=32800,b.M|=49152;else{c=(b.sa>>4&511)*b.V[e]+(b.sa&15);d=(b.M&48)<<12|b.Pb;f=65536-b.Rb&65535;a.ac(b.la[e],c,d,f);return}}b.Qb=e<<13|b.Qb&8176|b.sa%9&15;H(a.b,20,5,144,function(){b.M=b.M&65534|128;return!!(b.M&64)})}l.$c=function(a,b,c,d,f){var e=this.B;e.Pb=d&65535;e.M=e.M&-49|d>>12&48;e.Rb=65536-f&65535;switch(a){case 1:e.ia|=33024;e.M|=49152;break;case 2:e.ia|=33792,e.M|=49152}H(this.b,20,5,144,function(){e.M=e.M&65534|128;return!!(e.M&64)})};
|
||||
function $b(a){var b=a.D,c,d,f,e=b.K>>8&3;b.K&=-2;"undefined"===typeof b.la[e]&&(b.la[e]={cache:[],postProcess:a.ad,drive:e,blocksize:128,mapped:1,maxblock:b.gb[e]*b.V[e],url:"rl"+e+".dsk"});switch(b.K>>1&7){case 2:b.Xa&8&&(b.K&=63);b.Xa=b.Hc[e]|b.bb&64;break;case 3:1==(b.$&3)&&(b.bb=b.$&4?b.bb+(b.$&65408)&65408|b.$<<2&64:b.bb-(b.$&65408)&65408|b.$<<2&64,b.$=b.bb);break;case 4:b.Xa=b.bb;break;case 5:if(b.$>>6>=b.gb[e]){b.K|=37888;break}if((b.$&63)>=b.V[e]){b.K|=37888;break}c=(b.$>>6)*b.V[e]+(b.$&
|
||||
63);d=(b.Ra&63)<<16|b.Fb;f=65536-b.Xa&65535;Zb(a,b.la[e],c,d,f);return;case 6:if(b.$>>6>=b.gb[e])b.K|=37888;else if((b.$&63)>=b.V[e])b.K|=37888;else{c=(b.$>>6)*b.V[e]+(b.$&63);d=(b.Ra&63)<<16|b.Fb;f=65536-b.Xa&65535;a.ac(b.la[e],c,d,f);return}}H(a.b,20,5,112,function(){b.K|=129;return!!(b.K&64)})}
|
||||
l.ad=function(a,b,c,d,f){var e=this.D;e.Fb=d&65535;e.K=e.K&-49|d>>12&48;e.Ra=d>>16&63;e.$=~~(c/e.V[b.Ka])<<6|c%e.V[b.Ka];e.bb=e.$;e.Xa=65536-f&65535;switch(a){case 1:e.K|=33792;break;case 2:e.K|=40960}H(this.b,20,5,112,function(){e.K|=129;return!!(e.K&64)})};function ac(a){a=a.G;a.N=2176;a.Ba=0;a.na=[4544,4544,4544,4544,4544,4544,4544,4544];a.vb=[0,0,0,0,0,0,0,0];a.lb=a.wb=a.ub=a.ab=a.mc=0}
|
||||
|
|
@ -45,158 +45,160 @@ function bc(a,b){var c=a.G,d,f,e;c.N&=-16513;c.Ba&=-2049;c.na[b]&=-1153;H(a.b,-1
|
|||
l.bd=function(a,b,c,d,f){var e=this.G;e.wb=65536-f&65535;e.ub=d&65535;e.N=e.N&-769|d>>8&768;e.ab=d>>16&63;f=~~(c/e.V[0]);d=~~(f/e.fb[0]);e.Ca[b.Ka]=f%e.fb[0]<<8|c%e.V[0];e.cc[b.Ka]=e.Pa[b.Ka]=d;e.lb|=1<<b.Ka;c>=b.Tc-1&&(e.na[b.Ka]|=1024);switch(a){case 1:e.Ba|=512;e.N|=49152;break;case 2:e.Ba|=2048,e.N|=49152}H(this.b,20,5,172,function(){e.na[b.Ka]|=128;e.N=e.N&65534|128;return!!(e.N&64)})};
|
||||
function cc(a,b,c,d,f,e){var g=~~((e+c.Sa-1)/c.Sa),h=new XMLHttpRequest;2048>g&&d+2048<c.Tc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.Sa<<1)+"-"+(((d+g)*c.Sa<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,n,p,q;m=h.response;if(h.status&&206!=h.status||!m)c.$b(1,c,d,f,e);else{m=new Uint8Array(m);n=d;for(q=0;q<m.length;){if("undefined"===typeof c.cache[n])for(c.cache[n]=[],p=0;p<c.Sa;p++)c.cache[n][p]=q<m.length?
|
||||
m[q]&255|m[q+1]<<8&65280:0,q+=2;else q+=c.Sa<<1;n++}g(c,d,f,e)}}};h.send(null)}function I(a,b,c,d,f){c&1?f?d=0<=d?d<<8&65280|b&255:b:J(a.b,4):0<=d?f&&(d=b&65280|d&255):d=b;return d}l.ac=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){cc(this,this.ac,a,b,c,d);return}for(f=0;f<a.Sa&&0<d;f++){if(0>dc(this.b,a.Sc?ec(this.b,c):c,a.cache[b][f])){a.$b(2,a,b,c,d);return}c+=2;--d}b++}a.$b(0,a,b,c,d)};
|
||||
function Zb(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.Sa;e++)b.cache[c][e]=0;for(e=0;e<b.Sa&&0<f;e++){g=a.b.bc(b.Sc?ec(a.b,d):d);if(0>g){b.$b(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.$b(0,b,c,d,f)}l.reset=function(){this.w.qb=this.w.qb&-120|20;this.u.Ga=0;this.u.ra=128;this.f.Wa=0;this.B.M=128;this.D.K=128;ac(this)};
|
||||
function Zb(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.Sa;e++)b.cache[c][e]=0;for(e=0;e<b.Sa&&0<f;e++){g=a.b.bc(b.Sc?ec(a.b,d):d);if(0>g){b.$b(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.$b(0,b,c,d,f)}l.reset=function(){this.w.qb=this.w.qb&-120|20;this.u.Ga=0;this.u.ua=128;this.f.Wa=0;this.B.M=128;this.D.K=128;ac(this)};
|
||||
l.Gc=function(a,b,c){var d,f,e=this.b;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.Za&65280:(a&1&&(b<<=8),e.Za=b|255,d=0);break;case 4194298:if(0>b)d=e.lc;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.lc=d;e.Na=2}break;case 4194294:if(70!==e.jb)return J(e,4);0>b?d=e.H:d=e.H=0;break;case 4194292:if(70!==e.jb)return J(e,4);d=1;break;case 4194290:if(70!==e.jb)return J(e,4);d=0;break;case 4194288:if(70!==e.jb)return J(e,4);d=61183;break;case 4194296:0<=b&&!(a&1)&&(b&=
|
||||
255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.jb)return J(e,4);f=a-4194272>>1;0>b?d=e.hc[f]:(d=I(this,e.hc[f],a,b,c),0<=d&&(e.hc[f]=d));break;case 4194254:return a&1?e.fa>>14&1?(0<=b&&(e.i[6]=b),d=e.i[6]):(0<=b&&(e.Oa[3]=b),d=e.Oa[3]):e.fa>>14&0?(0<=b&&(e.i[6]=b),d=e.i[6]):(0<=b&&(e.Oa[1]=b),d=e.Oa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.fa&2048?(0<=b&&(e.i[f]=b),d=e.i[f]):(0<=b&&(e.$a[f]=b),d=e.$a[f]),d;
|
||||
case 4194246:return a&1?(0<=b&&(e.i[7]=b),d=e.i[7]):e.fa>>14&0?(0<=b&&(e.i[6]=b),d=e.i[6]):(0<=b&&(e.Oa[0]=b),d=e.Oa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.fa&2048?(0<=b&&(e.$a[f]=b),d=e.$a[f]):(0<=b&&(e.i[f]=b),d=e.i[f]),d;default:return e.H|=16,J(e,4)}break;case 4194176:f=a>>1&31;d=I(this,e.ha[3][f],a,b,c);0<=d&&(e.ha[3][f]=d,e.ha[3][f&15]&=65295);break;case 4194112:var g=this.u;switch(a&-2){case 4194174:d=I(this,e.Vb,a,b,c);0<=d&&(e.Vb=d);break;case 4194172:d=e.cb;d&65280&&
|
||||
(d=(d<<8|d>>8)&65535);break;case 4194168:0>b?d=this.w.jd&65535:(d=I(this,this.w.data,a,b,c),0<=d&&(this.w.data=d));break;case 4194166:0<=b&&(b&127&&(g.Lc=0),g.ra&=-129,H(e,100,4,52,function(){g.ra|=128;return!!(g.ra&64)}));d=0;break;case 4194162:d=0;0>b&&(g.Ga&=-129,0<g.jc.length&&(d=g.jc.shift(),0<g.jc.length&&setTimeout(function(){g.Ga|=128;g.Ga&64&&H(e,40,4,48)},50)));break;case 4194160:0>b?d=g.Ga:(d=I(this,g.Ga,a,b,c),0<=d&&(g.Ga=g.Ga&128|d&-129));break;default:return e.H|=16,J(e,4)}break;case 4194048:f=
|
||||
this.B;switch(a&-2){case 4194048:d=I(this,f.Qb,a,b,c);0<=d&&(f.Qb=d);break;case 4194050:d=I(this,f.ia,a,b,c);0<=d&&(f.ia=d);break;case 4194052:d=I(this,f.M,a,b,c);0<=b&&0<=d&&(f.M=d&-36993|f.M&36992,f.M&1&&Yb(this));break;case 4194054:d=I(this,f.Rb,a,b,c);0<=d&&(f.Rb=d);break;case 4194056:d=I(this,f.Pb,a,b,c);0<=d&&(f.Pb=d);break;case 4194058:d=I(this,f.pa,a,b,c);0<=d&&(f.pa=d);break;case 4194060:break;case 4194062:d=I(this,f.zc,a,b,c);0<=d&&(f.zc=d);break;default:return e.H|=16,J(e,4)}break;case 4193728:var h=
|
||||
(d=(d<<8|d>>8)&65535);break;case 4194168:0>b?d=this.w.jd&65535:(d=I(this,this.w.data,a,b,c),0<=d&&(this.w.data=d));break;case 4194166:0<=b&&(b&127&&(g.Lc=0),g.ua&=-129,H(e,100,4,52,function(){g.ua|=128;return!!(g.ua&64)}));d=0;break;case 4194162:d=0;0>b&&(g.Ga&=-129,0<g.jc.length&&(d=g.jc.shift(),0<g.jc.length&&setTimeout(function(){g.Ga|=128;g.Ga&64&&H(e,40,4,48)},50)));break;case 4194160:0>b?d=g.Ga:(d=I(this,g.Ga,a,b,c),0<=d&&(g.Ga=g.Ga&128|d&-129));break;default:return e.H|=16,J(e,4)}break;case 4194048:f=
|
||||
this.B;switch(a&-2){case 4194048:d=I(this,f.Qb,a,b,c);0<=d&&(f.Qb=d);break;case 4194050:d=I(this,f.ia,a,b,c);0<=d&&(f.ia=d);break;case 4194052:d=I(this,f.M,a,b,c);0<=b&&0<=d&&(f.M=d&-36993|f.M&36992,f.M&1&&Yb(this));break;case 4194054:d=I(this,f.Rb,a,b,c);0<=d&&(f.Rb=d);break;case 4194056:d=I(this,f.Pb,a,b,c);0<=d&&(f.Pb=d);break;case 4194058:d=I(this,f.sa,a,b,c);0<=d&&(f.sa=d);break;case 4194060:break;case 4194062:d=I(this,f.zc,a,b,c);0<=d&&(f.zc=d);break;default:return e.H|=16,J(e,4)}break;case 4193728:var h=
|
||||
this.G;f=h.Ba&7;switch(a&-2){case 4193728:d=I(this,h.N,a,b,c);0<=b&&0<=d&&(h.ab=h.ab&60|d>>8&3,h.N=d&17279|h.N&34944|2048,d&1&&h.N&128?bc(this,f):192==(d&192)&&H(e,0,5,172));break;case 4193730:d=I(this,h.wb,a,b,c);0<=d&&(h.wb=d);break;case 4193732:d=I(this,h.ub,a,b,c);0<=d&&(h.ub=d&65534);break;case 4193734:d=I(this,h.Ca[f],a,b,c);0<=d&&(h.Ca[f]=d&7967);break;case 4193736:d=I(this,h.Ba,a,b,c);0<=d&&(h.Ba=d&63|h.Ba&65472,d&128&&ac(this));break;case 4193738:d=h.na[f];break;case 4193740:d=h.vb[f];break;
|
||||
case 4193742:d=I(this,h.lb,a,b,c);0<=d&&(h.lb=d&255);break;case 4193744:d=h.gd[f];break;case 4193746:d=I(this,h.Ac,a,b,c);0<=d&&(h.Ac=d);break;case 4193748:d=I(this,h.Bc[f],a,b,c);0<=d&&(h.Bc[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.hd[f];break;case 4193754:d=I(this,h.Cc[f],a,b,c);0<=d&&(h.Cc[f]=d);break;case 4193756:d=I(this,h.Pa[f],a,b,c);0<=d&&(h.Pa[f]=d&511);break;case 4193758:h.cc[f]=h.Pa[f];d=h.cc[f];break;case 4193760:d=h.ed[f];break;case 4193762:d=h.fd[f];break;case 4193764:d=
|
||||
h.cd[f];break;case 4193766:d=h.dd[f];break;case 4193768:d=I(this,h.ab,a,b,c);0<=d&&(h.ab=d&63,h.N=h.N&-769|(d&3)<<8);break;case 4193770:d=I(this,h.mc,a,b,c);0<=d&&(h.mc=d);break;default:return e.H|=16,J(e,4)}break;case 4192512:f=this.D;switch(a&-2){case 4192512:d=I(this,f.K,a,b,c);0<=b&&0<=d&&(f.Ra=f.Ra&60|d>>4&3,f.K=f.K&-1023|d&1022,f.K&128||$b(this));break;case 4192514:d=I(this,f.Fb,a,b,c);0<=d&&(f.Fb=d&65534);break;case 4192516:d=I(this,f.$,a,b,c);0<=d&&(f.$=d);break;case 4192518:d=I(this,f.Xa,
|
||||
a,b,c);0<=d&&(f.Xa=d);break;case 4192520:d=I(this,f.Ra,a,b,c);0<=d&&(f.Ra=d&63,f.K=f.K&-49|(f.Ra&3)<<4);break;default:return e.H|=16,J(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.eb:(d=I(this,e.eb,a,b,c),0<=d&&(70!==e.jb&&(d&=-49),e.eb=d,e.Zb[0]=d&4?15:7,e.Zb[1]=d&2?15:7,e.Zb[3]=d&1?15:7,e.Yb&&(f=2,e.eb&16&&(f=1),this.w.qb=this.w.qb&-8|f)));break;default:return e.H|=16,J(e,4)}break;case 4191424:f=a>>1&31;d=I(this,e.ha[0][f],a,b,c);0<=d&&(e.ha[0][f]=d,e.ha[0][f&15]&=65295);break;case 4191360:f=
|
||||
a>>1&31;d=I(this,e.ha[1][f],a,b,c);0<=d&&(e.ha[1][f]=d,e.ha[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.jb)return J(e,4);f=a>>2&31;d=e.Sb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=I(this,d,a,b,c),0<=d&&(e.Sb[f]=a&2?d<<16|e.Sb[f]&65535:e.Sb[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Sb[a>>1&255];else return e.H|=16,J(e,4);break;default:return e.H|=16,J(e,4)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===
|
||||
typeof d&&console.log("panic(76)");return d};var fc={},Hb=(fc[65382]=[null,null,G.prototype.Wc,G.prototype.ld],fc[65402]=[null,null,G.prototype.Xc,G.prototype.md],fc[65396]=[null,null,G.prototype.Zc,G.prototype.od],fc[65534]=[null,null,G.prototype.Yc,G.prototype.nd],fc);Ma(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new G(d);lb(d,c)}});var gc;
|
||||
typeof d&&console.log("panic(76)");return d};var fc={},Hb=(fc[65382]=[null,null,G.prototype.Wc,G.prototype.ld],fc[65402]=[null,null,G.prototype.Xc,G.prototype.md],fc[65396]=[null,null,G.prototype.Zc,G.prototype.od],fc[65534]=[null,null,G.prototype.Yc,G.prototype.nd],fc);Ma(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new G(d);$a(d,c)}});var gc;
|
||||
if(rb){var hc=new ArrayBuffer(2);(new DataView(hc)).setUint16(0,256,!0);gc=256===(new Uint16Array(hc))[0]}else gc=!1;var ic=gc;
|
||||
function F(a,b,c,d,f){this.id=jc+=2;this.b=null;this.A=a;this.Ub=b;this.size=c||0;this.type=d||kc;this.C=d==lc;this.controller=null;vb(this);this.Ua=this.Mc=!1;if(c)if(f)this.controller=f,this.b=null,mc(this,f.Cb);else if(rb)this.B=new ArrayBuffer(c),this.D=new DataView(this.B,0,c),this.f=new Uint8Array(this.B,0,c),this.J=new Uint16Array(this.B,0,c>>1),this.b=new Int32Array(this.B,0,c>>2),mc(this,ic?nc:oc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;mc(this,pc)}else mc(this)}
|
||||
var kc=0,lc=2,Bb=4,Db=["NONE","RAM","ROM","VID","H/W"],jc=0;
|
||||
F.prototype={constructor:F,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(rb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.D.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(rb)for(b=0;b<a.length;b++)this.D.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ua=!0}return!1},hb:function(a,b){b?this.u++||qc(this,rc,!1):this.I++||sc(this,rc,!1)},O:function(){this.F&&mb(this.F,129)&&this.F.message("attempt to read invalid block %"+
|
||||
r(this.A),!0);return 255},w:function(a,b){this.F&&mb(this.F,129)&&this.F.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.A),!0)},P:function(a,b){return this.tb(a++,b++)|this.tb(a,b)<<8},G:function(a,b,c){this.yb(a++,b&255,c++);this.yb(a,b>>8,c)},Y:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ka:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},ua:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ua=
|
||||
!0},Ab:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ua=!0},U:function(a,b){if(this.F&&null!=this.A){var c=this.F;tc(c,this.A+a,1,c.R)&&c.ja(!0)}return this.Nb(a,b)},aa:function(a,b){if(this.F&&null!=this.A){var c=this.F;tc(c,this.A+a,2,c.R)&&c.ja(!0)}return this.kc(a,b)},sa:function(a,b,c){if(this.F&&null!=this.A){var d=this.F;tc(d,this.A+a,1,d.D)&&d.ja(!0)}this.C?this.w(a,b,c):this.zb(a,b,
|
||||
c)},Da:function(a,b,c){if(this.F&&null!=this.A){var d=this.F;tc(d,this.A+a,2,d.D)&&d.ja(!0)}this.C?this.w(a,b,c):this.qc(a,b,c)},R:function(a){return this.f[a]},W:function(a){return this.f[a]},Z:function(a){return this.D.getUint16(a,!0)},ca:function(a){return a&1?this.f[a]|this.f[a+1]<<8:this.J[a>>1]},oa:function(a,b){this.f[a]=b;this.Ua=!0},ta:function(a,b){this.f[a]=b;this.Ua=!0},wa:function(a,b){this.D.setUint16(a,b,!0);this.Ua=!0},Ia:function(a,b){a&1?(this.f[a]=b,this.f[a+1]=b>>8):this.J[a>>
|
||||
r(this.A),!0);return 255},w:function(a,b){this.F&&mb(this.F,129)&&this.F.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.A),!0)},P:function(a,b){return this.tb(a++,b++)|this.tb(a,b)<<8},G:function(a,b,c){this.yb(a++,b&255,c++);this.yb(a,b>>8,c)},Y:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ka: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},xa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ua=
|
||||
!0},Ab:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ua=!0},U:function(a,b){if(this.F&&null!=this.A){var c=this.F;tc(c,this.A+a,1,c.S)&&c.ja(!0)}return this.Nb(a,b)},aa:function(a,b){if(this.F&&null!=this.A){var c=this.F;tc(c,this.A+a,2,c.S)&&c.ja(!0)}return this.kc(a,b)},va:function(a,b,c){if(this.F&&null!=this.A){var d=this.F;tc(d,this.A+a,1,d.D)&&d.ja(!0)}this.C?this.w(a,b,c):this.zb(a,b,
|
||||
c)},Da:function(a,b,c){if(this.F&&null!=this.A){var d=this.F;tc(d,this.A+a,2,d.D)&&d.ja(!0)}this.C?this.w(a,b,c):this.qc(a,b,c)},S:function(a){return this.f[a]},W:function(a){return this.f[a]},Z:function(a){return this.D.getUint16(a,!0)},ca:function(a){return a&1?this.f[a]|this.f[a+1]<<8:this.J[a>>1]},oa:function(a,b){this.f[a]=b;this.Ua=!0},wa:function(a,b){this.f[a]=b;this.Ua=!0},za:function(a,b){this.D.setUint16(a,b,!0);this.Ua=!0},Ia:function(a,b){a&1?(this.f[a]=b,this.f[a+1]=b>>8):this.J[a>>
|
||||
1]=b;this.Ua=!0}};function vb(a,b,c){a.F=b;a.I=a.u=0;c&&((a.I=c.I)&&sc(a,rc,!1),(a.u=c.u)&&qc(a,rc,!1))}function uc(a,b){b?--a.u||(a.yb=a.C?a.w:a.zb,a.Ec=a.C?a.G:a.qc):--a.I||(a.tb=a.Nb,a.Ob=a.kc)}function qc(a,b,c){c&&a.u||(a.yb=!a.C&&b[1]||a.w,a.Ec=!a.C&&b[3]||a.G);if(c||void 0===c)a.zb=b[1]||a.w,a.qc=b[3]||a.G}function sc(a,b,c){c&&a.I||(a.tb=b[0]||a.O,a.Ob=b[2]||a.P);if(c||void 0===c)a.Nb=b[0]||a.O,a.kc=b[2]||a.P}function mc(a,b){b||(b=Jc);sc(a,b,void 0);qc(a,b,void 0)}
|
||||
var Jc=[],pc=[F.prototype.Y,F.prototype.ua,F.prototype.ka,F.prototype.Ab],rc=[F.prototype.U,F.prototype.sa,F.prototype.aa,F.prototype.Da];if(rb)var oc=[F.prototype.R,F.prototype.oa,F.prototype.Z,F.prototype.wa],nc=[F.prototype.W,F.prototype.ta,F.prototype.ca,F.prototype.Ia];
|
||||
function Kc(a,b){u.call(this,"CPU",a,Kc,1);var c=a.multiplier||1;this.ua=a.cycles||b;this.Ya=c;this.Da=Math.round(this.ua/1E4)/100;this.kb=this.Da*this.Ya;this.j.ea=!1;this.j.oc=!1;this.j.Db=a.autoStart;this.j.wc=!1;this.j.pb=!1;this.Kb=this.Y=0;this.Lb=a.csStart;this.rb=a.csInterval;this.sb=a.csStop;this.G=[];this.Hb=this.mb.bind(this);D(this)}w(Kc);var Lc=["power","reset"];l=Kc.prototype;
|
||||
l.Va=function(a,b,c,d){this.u=a;this.C=b;this.F=d;for(b=0;b<Lc.length;b++)(c=this.I[Lc[b]])&&this.u.qa(null,Lc[b],c);this.ca=null;a=Mc(a,"autoStart");null!=a&&(this.j.Db="true"==a?!0:"false"==a?!1:!!a);D(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.Ma=function(a,b){if(!b){if(a&&this.restore){Nc(this);if(!this.restore(a))return!1;Oc(this)}else this.reset();this.F?(a=this.F,a.g("Type ? for help with PDP11 Debugger commands"),a.va(),a.nb&&(b=a.nb,a.nb=null,Pc(a,b))):this.g("No debugger detected")}K(this);return!0};l.La=function(a){return a?this.save():!0};l.Db=function(){return this.j.Db||!this.F&&void 0===this.I.run?(this.mb(!0),!0):!1};l.yc=function(){return 0};
|
||||
var Jc=[],pc=[F.prototype.Y,F.prototype.xa,F.prototype.ka,F.prototype.Ab],rc=[F.prototype.U,F.prototype.va,F.prototype.aa,F.prototype.Da];if(rb)var oc=[F.prototype.S,F.prototype.oa,F.prototype.Z,F.prototype.za],nc=[F.prototype.W,F.prototype.wa,F.prototype.ca,F.prototype.Ia];
|
||||
function Kc(a,b){u.call(this,"CPU",a,Kc,1);var c=a.multiplier||1;this.xa=a.cycles||b;this.Ya=c;this.Da=Math.round(this.xa/1E4)/100;this.kb=this.Da*this.Ya;this.j.ea=!1;this.j.oc=!1;this.j.Db=a.autoStart;this.j.wc=!1;this.j.pb=!1;this.Kb=this.Y=0;this.Lb=a.csStart;this.rb=a.csInterval;this.sb=a.csStop;this.G=[];this.Hb=this.mb.bind(this);D(this)}w(Kc);var Lc=["power","reset"];l=Kc.prototype;
|
||||
l.Va=function(a,b,c,d){this.u=a;this.C=b;this.F=d;for(b=0;b<Lc.length;b++)(c=this.I[Lc[b]])&&this.u.ta(null,Lc[b],c);this.ca=null;a=Mc(a,"autoStart");null!=a&&(this.j.Db="true"==a?!0:"false"==a?!1:!!a);D(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.Ma=function(a,b){if(!b){if(a&&this.restore){Nc(this);if(!this.restore(a))return!1;Oc(this)}else this.reset();this.F?(a=this.F,a.g("Type ? for help with PDP11 Debugger commands"),a.ya(),a.nb&&(b=a.nb,a.nb=null,Pc(a,b))):this.g("No debugger detected")}K(this);return!0};l.La=function(a){return a?this.save():!0};l.Db=function(){return this.j.Db||!this.F&&void 0===this.I.run?(this.mb(!0),!0):!1};l.yc=function(){return 0};
|
||||
function Oc(a){void 0===a.Lb&&(a.Lb=0);void 0===a.rb&&(a.rb=-1);void 0===a.sb&&(a.sb=-1);a.j.pb=0<=a.Lb&&0<a.rb;a.j.pb&&(a.Kb=0,a.Y=a.Lb-a.W)}function Qc(a,b){if(a.j.pb){var c=!1;a.Kb=a.Kb+a.yc()|0;a.Y-=b;0>=a.Y&&(a.Y+=a.rb,c=!0);0<=a.sb&&a.sb<=Rc(a)&&(a.rb=a.sb=-1,Oc(a),a.ja(),c=!0);c&&a.g(Rc(a)+" cycles: checksum="+r(a.Kb))}}
|
||||
function Sc(a,b,c,d){if(a.I[b]){void 0===c&&(qb(a,"Value for "+b+" is invalid"),a.ja());var f=a.F&&a.F.Z||8;c=!a.j.ea||a.j.wc?8==f?da(c,d):r(c,d):"--------".substr(0,d||4);a.I[b].textContent!=c&&(a.I[b].textContent=c)}}
|
||||
l.qa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.I[b]=c;a=!0;break;case "run":this.I[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.j.ba)a=!0;else{var b=null,c,h=Ya(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.ba);c++);c==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.Xb?" (waiting for notification)":""))+".");a=!1}a&&(d.j.ea?d.ja():d.mb())};
|
||||
a=!0;break;case "speed":this.I[b]=c;a=!0;break;case "setSpeed":this.I[b]=c,c.onclick=function(){Tc(d,d.Ya<<1,!0)},c.textContent=this.kb.toFixed(2)+"Mhz",a=!0}return a};function Uc(a,b,c){a.W+=b;c&&(a.J=a.b=0)}function Vc(a,b){var c=1;b&&1<a.Ya&&a.R&&(c=a.R/a.Da);a.Eb=Math.round(1E3/30);a.wa=Math.floor(a.ua/30*c);b||(a.Z=a.wa);a.Ia=0}function Rc(a){return a.W+a.P+a.J-a.b}function Nc(a){a.R=0;a.Gb=0;a.W=a.P=a.J=a.b=0;Oc(a);Tc(a,1)}
|
||||
function Tc(a,b,c){var d=!1;if(void 0!==b){.8>a.R/a.kb?b=1:d=!0;a.Ya=b;b=a.Da*a.Ya;if(a.kb!=b){a.kb=b;b=a.kb.toFixed(2)+"Mhz";var f=a.I.setSpeed;f&&(f.textContent=b);a.g("target speed: "+b)}c&&a.u&&a.u.Tb()}Uc(a,a.P);a.P=0;a.O=oa();a.U=0;Vc(a);return d}function Tb(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function Ub(a,b){var c;0<=b&&b<a.G.length&&0>a.G[b][0]&&(c=a.ua*a.Ya/1E3*(1E3/60),a.G[b][0]=c)}
|
||||
l.mb=function(a){if(nb(this,!0)){if(!this.j.ea){Tc(this);this.u&&this.u.start(this.O,Rc(this));this.j.ea=!0;this.j.oc=!0;this.ca&&this.ca.start();var b=this.I.run;b&&(b.textContent="Halt");this.u&&(this.u.va(!0),a&&this.u.Tb(!0))}this.Ia>=this.ua&&Vc(this,!0);this.ka=0;this.ta=oa();this.U&&(a=this.ta-this.U,a>this.Eb&&(this.O+=a,this.O>this.ta&&(this.O=this.ta)));try{do{for(var c,d=this.j.pb?1:this.wa,f=this.G.length-1;0<=f;f--){var e=this.G[f];0>e[0]||d>e[0]&&(d=e[0])}c=d;try{this.xb(c)}catch(m){if("number"!=
|
||||
typeof m)throw m;}var g=this.J-this.b;a=g;for(var h=this.G.length-1;0<=h;h--){var k=this.G[h];0>k[0]||(k[0]-=a,0>=k[0]&&(k[0]=-1,k[1]()))}this.ka+=g;this.P+=g;Uc(this,0,!0);Qc(this,g);this.Z-=g;if(0>=this.Z){this.Z+=this.wa;15<=++this.Gb&&(this.u&&this.u.va(),this.Gb=0);break}}while(this.j.ea)}catch(m){this.ja();K(this);this.u&&this.u.stop(oa(),Rc(this));nb(this,!1);qb(this,m.stack||m.message);return}c=setTimeout;d=this.Hb;this.U=oa();f=this.Eb;this.ka&&(f=Math.round(f*this.ka/this.wa));f-=this.U-
|
||||
this.ta;if(e=this.U-this.O)this.R=Math.round(this.P/(10*e))/100,864E5<=e&&(this.W=0,Tc(this));if(0>f||this.R<this.kb)-1E3>f&&(this.O-=f),f=0;this.Ia+=this.ka;this.U+=f;c(d,f)}else K(this),this.u&&this.u.stop(oa(),Rc(this))};l.xb=function(){return 0};l.ja=function(a){ob(this,!0);this.J-=this.b;this.b=0;Uc(this,this.P);this.P=0;if(this.j.ea){this.j.ea=!1;this.ca&&this.ca.stop();var b=this.I.run;b&&(b.textContent="Run")}this.j.complete=a};function K(a,b){a.u&&a.u.va(b)}
|
||||
function Wc(a){this.Uc=+a.model||1170;this.ic=a.resetAddr||0;Kc.call(this,a,1E6);this.Bb=0;this.decode=Xc.bind(this);this.ga=65536;this.ya=32768;this.za=65535;this.xa=32768;this.i=[0,0,0,0,0,0,0,this.ic];this.$a=[0,0,0,0,0,0];this.Oa=[0,0,0,0];this.sa=this.D=0;this.ha=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Sb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.hc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.f=-1;this.T=0;this.jb=70;this.aa=-1;this.Wb=0;Yc(this);this.j.complete=this.j.Kc=!1}w(Wc,Kc);l=Wc.prototype;l.reset=function(){this.j.ea&&this.ja();Yc(this);Nc(this);this.j.error=!1;this.parent.reset.call(this)};
|
||||
l.ta=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.I[b]=c;a=!0;break;case "run":this.I[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.j.ba)a=!0;else{var b=null,c,h=Ya(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.ba);c++);c==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.Xb?" (waiting for notification)":""))+".");a=!1}a&&(d.j.ea?d.ja():d.mb())};
|
||||
a=!0;break;case "speed":this.I[b]=c;a=!0;break;case "setSpeed":this.I[b]=c,c.onclick=function(){Tc(d,d.Ya<<1,!0)},c.textContent=this.kb.toFixed(2)+"Mhz",a=!0}return a};function Uc(a,b,c){a.W+=b;c&&(a.J=a.b=0)}function Vc(a,b){var c=1;b&&1<a.Ya&&a.S&&(c=a.S/a.Da);a.Eb=Math.round(1E3/30);a.za=Math.floor(a.xa/30*c);b||(a.Z=a.za);a.Ia=0}function Rc(a){return a.W+a.P+a.J-a.b}function Nc(a){a.S=0;a.Gb=0;a.W=a.P=a.J=a.b=0;Oc(a);Tc(a,1)}
|
||||
function Tc(a,b,c){var d=!1;if(void 0!==b){.8>a.S/a.kb?b=1:d=!0;a.Ya=b;b=a.Da*a.Ya;if(a.kb!=b){a.kb=b;b=a.kb.toFixed(2)+"Mhz";var f=a.I.setSpeed;f&&(f.textContent=b);a.g("target speed: "+b)}c&&a.u&&a.u.Tb()}Uc(a,a.P);a.P=0;a.O=oa();a.U=0;Vc(a);return d}function Tb(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function Ub(a,b){var c;0<=b&&b<a.G.length&&0>a.G[b][0]&&(c=a.xa*a.Ya/1E3*(1E3/60),a.G[b][0]=c)}
|
||||
l.mb=function(a){if(nb(this,!0)){if(!this.j.ea){Tc(this);this.u&&this.u.start(this.O,Rc(this));this.j.ea=!0;this.j.oc=!0;this.ca&&this.ca.start();var b=this.I.run;b&&(b.textContent="Halt");this.u&&(this.u.ya(!0),a&&this.u.Tb(!0))}this.Ia>=this.xa&&Vc(this,!0);this.ka=0;this.wa=oa();this.U&&(a=this.wa-this.U,a>this.Eb&&(this.O+=a,this.O>this.wa&&(this.O=this.wa)));try{do{for(var c,d=this.j.pb?1:this.za,f=this.G.length-1;0<=f;f--){var e=this.G[f];0>e[0]||d>e[0]&&(d=e[0])}c=d;try{this.xb(c)}catch(m){if("number"!=
|
||||
typeof m)throw m;}var g=this.J-this.b;a=g;for(var h=this.G.length-1;0<=h;h--){var k=this.G[h];0>k[0]||(k[0]-=a,0>=k[0]&&(k[0]=-1,k[1]()))}this.ka+=g;this.P+=g;Uc(this,0,!0);Qc(this,g);this.Z-=g;if(0>=this.Z){this.Z+=this.za;15<=++this.Gb&&(this.u&&this.u.ya(),this.Gb=0);break}}while(this.j.ea)}catch(m){this.ja();K(this);this.u&&this.u.stop(oa(),Rc(this));nb(this,!1);qb(this,m.stack||m.message);return}c=setTimeout;d=this.Hb;this.U=oa();f=this.Eb;this.ka&&(f=Math.round(f*this.ka/this.za));f-=this.U-
|
||||
this.wa;if(e=this.U-this.O)this.S=Math.round(this.P/(10*e))/100,864E5<=e&&(this.W=0,Tc(this));if(0>f||this.S<this.kb)-1E3>f&&(this.O-=f),f=0;this.Ia+=this.ka;this.U+=f;c(d,f)}else K(this),this.u&&this.u.stop(oa(),Rc(this))};l.xb=function(){return 0};l.ja=function(a){ob(this,!0);this.J-=this.b;this.b=0;Uc(this,this.P);this.P=0;if(this.j.ea){this.j.ea=!1;this.ca&&this.ca.stop();var b=this.I.run;b&&(b.textContent="Run")}this.j.complete=a};function K(a,b){a.u&&a.u.ya(b)}
|
||||
function Wc(a){this.Uc=+a.model||1170;this.ic=a.resetAddr||0;Kc.call(this,a,1E6);this.Bb=0;this.decode=Xc.bind(this);this.ga=65536;this.qa=32768;this.ra=65535;this.pa=32768;this.i=[0,0,0,0,0,0,0,this.ic];this.$a=[0,0,0,0,0,0];this.Oa=[0,0,0,0];this.va=this.D=0;this.ha=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Sb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.hc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.f=-1;this.R=0;this.jb=70;this.aa=-1;this.Wb=0;Yc(this);this.j.complete=this.j.Kc=!1}w(Wc,Kc);l=Wc.prototype;l.reset=function(){this.j.ea&&this.ja();Yc(this);Nc(this);this.j.error=!1;this.parent.reset.call(this)};
|
||||
function Yc(a){a.Za=255;a.H=0;a.lc=0;a.B=0;a.cb=0;a.Vb=0;a.eb=0;a.Yb=0;a.oa=0;a.Zb=[7,7,7,7];a.w=[];a.Na=2;Vb(a)}function Vb(a){a.Yb?(a.nb=65536,a.X=a.Pc,a.Ob=a.Ha):(a.nb=0,a.X=a.Oc,a.Ob=a.bc)}l.yc=function(){return 0};l.save=function(){var a=new L(this);a.set(0,[]);a.set(1,[this.W,this.Ya]);a.set(2,Fb(this.C));return a.data()};
|
||||
l.restore=function(a){var b=a[1];this.W=b[1];Tc(this,b[3]);a:{b=this.C;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.J){for(var e=0,g=Array(b.J),h=0;h<f.length-1;)for(var k=f[h++],m=f[h++];k--;)g[e++]=m;f=g}e=b.L[d];if(!e||!e.restore(f)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
l.qa=function(a,b,c){switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.I[b]=c;this.Bb++;a=!0;break;default:a=this.parent.qa.call(this,a,b,c)}return a};
|
||||
l.va=function(a){if(this.Bb&&(a||!this.j.ea||this.j.wc)){for(a=0;a<this.i.length;a++)Sc(this,"R"+a,this.i[a]);a=Wb(this);Sc(this,"PS",a);Sc(this,"NF",a&8?1:0,1);Sc(this,"ZF",a&4?1:0,1);Sc(this,"VF",a&2?1:0,1);Sc(this,"CF",a&1?1:0,1)}if(a=this.I.speed)a.textContent=this.j.ea&&this.R?this.R.toFixed(2)+"Mhz":"Stopped"};function Zc(a){return a.ya&32768?2:0}function $c(a){return a.za&65535?0:4}function ad(a){return a.xa&32768?8:0}
|
||||
l.ta=function(a,b,c){switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.I[b]=c;this.Bb++;a=!0;break;default:a=this.parent.ta.call(this,a,b,c)}return a};
|
||||
l.ya=function(a){if(this.Bb&&(a||!this.j.ea||this.j.wc)){for(a=0;a<this.i.length;a++)Sc(this,"R"+a,this.i[a]);a=Wb(this);Sc(this,"PS",a);Sc(this,"NF",a&8?1:0,1);Sc(this,"ZF",a&4?1:0,1);Sc(this,"VF",a&2?1:0,1);Sc(this,"CF",a&1?1:0,1)}if(a=this.I.speed)a.textContent=this.j.ea&&this.S?this.S.toFixed(2)+"Mhz":"Stopped"};function Zc(a){return a.qa&32768?2:0}function $c(a){return a.ra&65535?0:4}function ad(a){return a.pa&32768?8:0}
|
||||
function H(a,b,c,d,f){for(var e=a.w.length;0<e--;)if(a.w[e].kd===d){0<e&&(a.w[e-1].Ta+=a.w[e].Ta);a.w.splice(e,1);break}if(0<=b){2===a.Wb&&(b=0,a.Wb=0,setTimeout(a.Hb,0));for(e=a.w.length;0<e--;){if(a.w[e].Ta>b){a.w[e].Ta-=b;break}b-=a.w[e].Ta}a.w.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.Na=2}function Wb(a){return a.fa=a.fa&63728|ad(a)|$c(a)|Zc(a)|(a.ga&65536?1:0)}
|
||||
function Xb(a,b){a.xa=b<<12;a.za=~b&4;a.ya=b<<14;a.ga=b<<16;if((b^a.fa)&2048)for(var c=a.$a.length;0<=--c;){var d=a.i[c];a.i[c]=a.$a[c];a.$a[c]=d}a.D=b>>14&3;c=a.fa>>14&3;a.D!=c&&(a.Oa[c]=a.i[6],a.i[6]=a.Oa[a.D]);a.Na=2;a.fa=b}function bd(a,b){a.T&128||(a.xa=a.za=a.ga=b,a.ya=0)}function cd(a,b){a.T&128||(a.xa=a.za=b,a.ya=0)}function dd(a,b,c,d){a.T&128||(a.xa=a.za=a.ga=b,a.ya=(c^d)&(d^b))}
|
||||
function J(a,b){var c=!1;0>a.aa?a.aa=Wb(a):a.D||(b=4,c=!0);a.B&57344||(a.cb=63222,a.Vb=b);a.D=0;var d=a.Ha(b|65536),f=a.Ha(b+2&65535|65536);Xb(a,f&53247|a.aa>>2&12288);c&&(a.H|=4,a.i[6]=4);ed(a,a.aa);ed(a,a.i[7]);a.i[7]=d;a.T&=-113;a.aa=-1;throw b;}function ec(a,b){var c=b>>13&31;31>c?a.eb&32&&(b=a.Sb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
|
||||
function Xb(a,b){a.pa=b<<12;a.ra=~b&4;a.qa=b<<14;a.ga=b<<16;if((b^a.fa)&2048)for(var c=a.$a.length;0<=--c;){var d=a.i[c];a.i[c]=a.$a[c];a.$a[c]=d}a.D=b>>14&3;c=a.fa>>14&3;a.D!=c&&(a.Oa[c]=a.i[6],a.i[6]=a.Oa[a.D]);a.Na=2;a.fa=b}function bd(a,b){a.R&128||(a.pa=a.ra=a.ga=b,a.qa=0)}function cd(a,b){a.R&128||(a.pa=a.ra=b,a.qa=0)}function dd(a,b,c,d){a.R&128||(a.pa=a.ra=a.ga=b,a.qa=(c^d)&(d^b))}
|
||||
function J(a,b){var c=!1;0>a.aa?a.aa=Wb(a):a.D||(b=4,c=!0);a.B&57344||(a.cb=63222,a.Vb=b);a.D=0;var d=a.Ha(b|65536),f=a.Ha(b+2&65535|65536);Xb(a,f&53247|a.aa>>2&12288);c&&(a.H|=4,a.i[6]=4);ed(a,a.aa);ed(a,a.i[7]);a.i[7]=d;a.R&=-113;a.aa=-1;throw b;}function ec(a,b){var c=b>>13&31;31>c?a.eb&32&&(b=a.Sb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
|
||||
function fd(a,b,c){var d,f,e,g=0;if(c&a.Yb){d=b>>13&a.Zb[a.D];f=a.ha[a.D][d];e=(a.ha[a.D][d+16]<<6)+(b&8191)&4194303;a.eb&16?3932160<=e&&4186112>e&&(e=ec(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.H|=32,J(a,4)),e&1&&!(c&1)&&(a.H|=64,J(a,4)));switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?192:128;break;default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&8128)&&
|
||||
(g|=16384));a.ha[a.D][d]=f;if(4194170!==e||a.D)a.oa=a.D,a.sa=d;g&&(g&57344&&(0<=a.aa&&(g|=128),a.B&57344||(a.B=a.B|g|a.oa<<5|a.sa<<1),J(a,168)),a.B&61440||!(4191360>e||4194239<e)||(a.B|=4096,a.B&512&&(a.T|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.H|=64,J(a,4));return e}l.bc=function(a){return 4194304<=a?this.i[a-4194304]:0<=a?this.C.Fa(a):a};l.Ha=function(a){return this.bc(fd(this,a,2))};function dc(a,b,c){c&=65535;return 4194304<=b?a.i[b-4194304]=c:0<=b?(a.C.nc(b,c),c):b}
|
||||
function gd(a,b){return 4194304<=b?a.i[b-4194304]&255:0<=b?a.C.Jb(b):b}function hd(a,b,c){c&=255;4194304<=b?a.i[b-4194304]=a.i[b-4194304]&65280|c:0<=b&&a.C.dc(b,c)}function ed(a,b){var c=a.i[6]-2&65535;a.i[6]=c;a.B&57344||(a.cb=a.cb<<8|246);!a.D&&c<=a.Za&&4<c&&(c<=a.Za-32?(a.H|=4,a.i[6]=4,J(a,4)):(a.H|=8,a.T|=4));c=fd(a,c|65536,4);dc(a,c,b)}
|
||||
function id(a,b,c){var d,f,e=b&7,g=c&8?0:a.nb;switch(b>>3&7){case 0:J(a,4);break;case 1:return 6===e&&!a.D&&c&4&&(a.i[6]<=a.Za||65534<=a.i[6])&&(a.i[6]<=a.Za-32||65534<=a.i[6]?(a.H|=4,a.i[6]=4,J(a,4)):(a.H|=8,a.T|=64)),7===e?a.i[e]:a.i[e]|g;case 2:f=2;d=a.i[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.i[e];7!==e&&(d|=g);if(0>(d=a.Ha(d)))return d;d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.i[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.i[e]-2&65535;7!==e&&(d|=g);if(0>(d=a.Ha(d)))return d;
|
||||
d|=g;break;case 6:if(0>(d=a.Ha(a.i[7])))return d;a.i[7]=a.i[7]+2&65535;d=d+a.i[e]&65535;return d|g;case 7:if(0>(d=a.Ha(a.i[7])))return d;a.i[7]=a.i[7]+2&65535;d=d+a.i[e]&65535;return 0>(d=a.Ha(d|65536))?d:d|g}a.i[e]=a.i[e]+f&65535;!g||a.B&57344||(a.cb=a.cb<<8|f<<3&248|e);6===e&&!a.D&&c&4&&0>=f&&(a.i[6]<=a.Za||65534<=a.i[6])&&(a.i[6]<=a.Za-32?(a.H|=4,a.i[6]=4,J(a,4)):(a.H|=8,a.T|=64));return d}l.Oc=function(a,b){return id(this,a,b)};l.Pc=function(a,b){return fd(this,id(this,a,b),b)};
|
||||
(g|=16384));a.ha[a.D][d]=f;if(4194170!==e||a.D)a.oa=a.D,a.va=d;g&&(g&57344&&(0<=a.aa&&(g|=128),a.B&57344||(a.B=a.B|g|a.oa<<5|a.va<<1),J(a,168)),a.B&61440||!(4191360>e||4194239<e)||(a.B|=4096,a.B&512&&(a.R|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.H|=64,J(a,4));return e}l.bc=function(a){return 4194304<=a?this.i[a-4194304]:0<=a?this.C.Fa(a):a};l.Ha=function(a){return this.bc(fd(this,a,2))};function dc(a,b,c){c&=65535;return 4194304<=b?a.i[b-4194304]=c:0<=b?(a.C.nc(b,c),c):b}
|
||||
function gd(a,b){return 4194304<=b?a.i[b-4194304]&255:0<=b?a.C.Jb(b):b}function hd(a,b,c){c&=255;4194304<=b?a.i[b-4194304]=a.i[b-4194304]&65280|c:0<=b&&a.C.dc(b,c)}function ed(a,b){var c=a.i[6]-2&65535;a.i[6]=c;a.B&57344||(a.cb=a.cb<<8|246);!a.D&&c<=a.Za&&4<c&&(c<=a.Za-32?(a.H|=4,a.i[6]=4,J(a,4)):(a.H|=8,a.R|=4));c=fd(a,c|65536,4);dc(a,c,b)}
|
||||
function id(a,b,c){var d,f,e=b&7,g=c&8?0:a.nb;switch(b>>3&7){case 0:J(a,4);break;case 1:return 6===e&&!a.D&&c&4&&(a.i[6]<=a.Za||65534<=a.i[6])&&(a.i[6]<=a.Za-32||65534<=a.i[6]?(a.H|=4,a.i[6]=4,J(a,4)):(a.H|=8,a.R|=64)),7===e?a.i[e]:a.i[e]|g;case 2:f=2;d=a.i[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.i[e];7!==e&&(d|=g);if(0>(d=a.Ha(d)))return d;d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.i[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.i[e]-2&65535;7!==e&&(d|=g);if(0>(d=a.Ha(d)))return d;
|
||||
d|=g;break;case 6:if(0>(d=a.Ha(a.i[7])))return d;a.i[7]=a.i[7]+2&65535;d=d+a.i[e]&65535;return d|g;case 7:if(0>(d=a.Ha(a.i[7])))return d;a.i[7]=a.i[7]+2&65535;d=d+a.i[e]&65535;return 0>(d=a.Ha(d|65536))?d:d|g}a.i[e]=a.i[e]+f&65535;!g||a.B&57344||(a.cb=a.cb<<8|f<<3&248|e);6===e&&!a.D&&c&4&&0>=f&&(a.i[6]<=a.Za||65534<=a.i[6])&&(a.i[6]<=a.Za-32?(a.H|=4,a.i[6]=4,J(a,4)):(a.H|=8,a.R|=64));return d}l.Oc=function(a,b){return id(this,a,b)};l.Pc=function(a,b){return fd(this,id(this,a,b),b)};
|
||||
function N(a,b){return b&56?a.Ob(id(a,b,2)):a.i[b&7]}function jd(a,b){return b&56?gd(a,a.X(b,3)):a.i[b&7]&255}function kd(a,b,c,d){b&56?(b=a.X(b,6),dc(a,b,d.call(a,c,a.bc(b)))):(b&=7,a.i[b]=d.call(a,c,a.i[b])&65535)}function ld(a,b,c,d){b&56?(b=a.X(b,7),hd(a,b,d.call(a,c,gd(a,b)))):(b&=7,a.i[b]=a.i[b]&65280|d.call(a,c,a.i[b])&255)}function md(a,b,c){b&56?dc(a,a.X(b,4),c):a.i[b&7]=c&65535;return c}
|
||||
function nd(a,b,c,d){b&56?hd(a,a.X(b,5),c):(b&=7,a.i[b]=c?d&1?c<<24>>24&65535:a.i[b]&-256|c&255:a.i[b]&-256);return c}function O(a,b){return a.i[7]+(b<<24>>23)&65535}
|
||||
l.xb=function(a){this.j.complete=!0;var b=this.j.Kc=this.F&&od(this.F),c=a?this.j.oc?0:1:-1;this.j.oc=!1;this.J=this.b=a;do{if(b){if(pd(this.F,this.i[7],c)){this.ja();break}c=1}this.T&112&&(this.T&32?J(this,168):this.T&64?J(this,4):this.T&16&&J(this,12),this.T&=-113);if(this.Na)if(1==this.Na)this.Na=2;else{this.Na=0;a=null;for(var d=this.lc&224,f=this.w.length;0<=--f;){if(0<this.w[f].Ta){this.w[f].Ta--;this.Na=2;break}if(this.w[f].uc){if(!this.w[f].uc()){this.w.splice(f,1);continue}this.w[f].uc=null}this.w[f].Vc>
|
||||
d&&(d=this.w[f].Vc,a=this.w[f],this.w.splice(f,1))}d>(this.fa&224)&&(a?J(this,a.kd):J(this,160))}this.B&57344||(this.cb=0,this.Vb=this.i[7]);this.T=this.fa&16;a=this.f=this.Ha(this.i[7]);0<=a&&(this.i[7]=this.i[7]+2&65535);this.decode(a);if(0>this.f){this.i[7]=this.i[7]-2&65535;this.g("unimplemented");break}}while(0<this.b);return this.j.complete?this.J-this.b:void 0===this.j.complete?0:-1};Ma(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Wc(d);lb(d,c)}});
|
||||
function qd(a,b){var c=a+b;this.T&128||(this.xa=this.za=this.ga=c,this.ya=(a^c)&(b^c));return c&65535}function rd(a,b){a=~a&b;cd(this,a);return a}function sd(a,b){a=~a&b;cd(this,a<<8);return a}function td(a,b){a|=b;cd(this,a);return a}function ud(a,b){a|=b;cd(this,a<<8);return a}function vd(a,b){var c=b-a;dd(this,c,a,b);return c&65535}function wd(){this.f=-1;--this.b}function xd(){this.f=-1;--this.b}function P(a){a&1&&(this.ga=0);a&2&&(this.ya=0);a&4&&(this.za=1);a&8&&(this.xa=0);--this.b}
|
||||
function yd(){this.f=-1;--this.b}function zd(a){var b=id(this,a,8);a=a>>6&7;ed(this,this.i[a]);this.i[a]=this.i[7];this.i[7]=b;--this.b}function Ad(){this.f=-1;--this.b}function Bd(){--this.b}function R(a){a&1&&(this.ga=65536);a&2&&(this.ya=32768);a&4&&(this.za=0);a&8&&(this.xa=32768);--this.b}function Cd(){this.f=-1;--this.b}function Dd(){this.f=-1;--this.b}function S(){J(this,8)}function Xc(a){Ed[a>>12].call(this,a)}
|
||||
var Ed=[function(a){Fd[a>>8&15].call(this,a)},function(a){cd(this,md(this,a,N(this,a>>6)));--this.b},function(a){var b=N(this,a>>6);a=N(this,a);dd(this,b-a,a,b);--this.b},function(a){cd(this,N(this,a>>6)&N(this,a));--this.b},function(a){kd(this,a,N(this,a>>6),rd);--this.b},function(a){kd(this,a,N(this,a>>6),td);--this.b},function(a){kd(this,a,N(this,a>>6),qd);--this.b},function(a){Gd[a>>8&15].call(this,a)},function(a){Hd[a>>8&15].call(this,a)},function(a){var b=jd(this,a>>6);cd(this,nd(this,a,b,1)<<
|
||||
8);--this.b},function(a){var b=jd(this,a>>6)<<8;a=jd(this,a)<<8;dd(this,b-a,a,b);--this.b},function(a){cd(this,(jd(this,a>>6)&jd(this,a))<<8);--this.b},function(a){ld(this,a,jd(this,a>>6),sd);--this.b},function(a){ld(this,a,jd(this,a>>6),ud);--this.b},function(a){kd(this,a,N(this,a>>6),vd);--this.b},S],Fd=[function(a){Id[a>>4&15].call(this,a)},function(a){this.i[7]=O(this,a);--this.b},function(a){$c(this)||(this.i[7]=O(this,a));--this.b},function(a){$c(this)&&(this.i[7]=O(this,a));--this.b},function(a){!ad(this)==
|
||||
!Zc(this)&&(this.i[7]=O(this,a));--this.b},function(a){!ad(this)!=!Zc(this)&&(this.i[7]=O(this,a));--this.b},function(a){$c(this)||!ad(this)!=!Zc(this)||(this.i[7]=O(this,a));--this.b},function(a){if($c(this)||!ad(this)!=!Zc(this))this.i[7]=O(this,a);--this.b},zd,zd,function(a){Jd[a>>6&3].call(this,a)},function(a){Kd[a>>6&3].call(this,a)},function(a){Ld[a>>6&3].call(this,a)},function(a){Md[a>>6&3].call(this,a)},S,S],Id=[function(a){Nd[a&15].call(this,a)},S,S,S,S,S,S,S,function(a){var b=this.Ha(this.i[6]|
|
||||
65536);0<=b&&(this.i[6]=this.i[6]+2&65535);a&=7;this.i[7]=this.i[a];this.i[a]=b;--this.b},function(a){this.fa&49152||(this.fa=this.fa&-2017|(a&7)<<5,this.Na=1);--this.b},function(a){Od[a&15].call(this,a)},function(a){Pd[a&15].call(this,a)},S,S,S,S],Od=[Bd,function(){this.ga=0;--this.b},function(){this.ya=0;--this.b},P,function(){this.za=1;--this.b},P,P,P,function(){this.xa=0;--this.b},P,P,P,P,P,P,P],Pd=[Bd,function(){this.ga=65536;--this.b},function(){this.ya=32768;--this.b},R,function(){this.za=
|
||||
0;--this.b},R,R,R,function(){this.xa=32768;--this.b},R,R,R,R,R,R,R],Nd=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.fa&49152||(Yc(this),this.C.reset());--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},S,S,S,S,S,S,S,S],Gd=[Ad,Ad,yd,yd,wd,wd,xd,xd,Dd,Dd,S,S,S,S,Cd,Cd],Hd=[function(a){ad(this)||(this.i[7]=O(this,a));--this.b},function(a){ad(this)&&(this.i[7]=
|
||||
O(this,a));--this.b},function(a){this.ga&65536||$c(this)||(this.i[7]=O(this,a));--this.b},function(a){if(this.ga&65536||$c(this))this.i[7]=O(this,a);--this.b},function(a){Zc(this)||(this.i[7]=O(this,a));--this.b},function(a){Zc(this)&&(this.i[7]=O(this,a));--this.b},function(a){this.ga&65536||(this.i[7]=O(this,a));--this.b},function(a){this.ga&65536&&(this.i[7]=O(this,a));--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(a){Qd[a>>6&3].call(this,a)},function(a){pe[a>>
|
||||
6&3].call(this,a)},function(a){qe[a>>6&3].call(this,a)},function(a){re[a>>6&3].call(this,a)},S,S],Jd=[function(a){bd(this,md(this,a,0));--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Kd=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Ld=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Md=
|
||||
[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Qd=[function(a){bd(this,nd(this,a,0));--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],pe=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],qe=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=
|
||||
-1;--this.b}],re=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}];function se(a){u.call(this,"ROM",a,se);this.f=null;this.D=a.addr;this.u=a.size;this.G=a.writable;this.w=a.alias;this.B=a.file;this.J=ea(this.B);if(this.B){a=this.B;var b=fa(this.J);"json"!=b&&"hex"!=b&&(a=ha()+"/api/v1/dump?file="+this.B+"&format=bytes&decimal=true");var c=this;ta(a,null,!0,function(a,b,e){te(c,a,b,e)})}}w(se);
|
||||
se.prototype.Va=function(a,b,c,d){this.C=b;this.b=c;this.F=d;ue(this)};se.prototype.Ma=function(){if(this.Ja){if(this.F){var a=this.F,b=this.id,c=this.D,d=this.u,f=this.Ja,e=[],g;for(g in f){var h=f[g];"number"==typeof h&&(f[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=e,k=[k>>>0,g],p=na(n,k,a.vc);0>p&&n.splice(-(p+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.G.push({qd:b,A:c,Rc:d,Ja:f,sc:e})}delete this.Ja}return!0};se.prototype.La=function(){return!0};
|
||||
function te(a,b,c,d){if(d)a.ma("Unable to load system ROM (error "+d+": "+b+")");else{Xa(a.tc,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.f=e;else if(e=h.words)for(a.f=Array(2*e.length),g=f=0;f<e.length;f++)a.f[g++]=e[f]&255,a.f[g++]=e[f]>>8&255;else if(e=h.data)for(a.f=Array(4*e.length),g=f=0;f<e.length;f++)a.f[g++]=e[f]&255,a.f[g++]=e[f]>>8&255,a.f[g++]=e[f]>>16&255,a.f[g++]=e[f]>>24&255;else a.f=h;a.Ja=h.symbols;if(!a.f.length){t("Empty ROM: "+
|
||||
b);return}if(1==a.f.length){t(a.f[0]);return}}catch(k){a.ma("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.f=Array(b.length),f=0;f<b.length;f++)a.f[f]=ca(b[f],16);ue(a)}}
|
||||
function ue(a){if(!pb(a))if(!a.B)D(a);else if(a.f&&a.C){a.u||(a.u=a.f.length);if(a.f.length!=a.u)qb(a,"ROM size ("+r(a.f.length,8,!0)+") does not match specified size ("+r(a.u,8,!0)+")");else{var b;b=a.D;if(Ab(a.C,b,a.u,a.G?1:lc)){var c;for(c=0;c<a.f.length;c++){var d=a.C,f=b+c;d.L[(f&d.C)>>>d.S].zb(f&d.f,a.f[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.C,g=e.u,h=[],k=e.D>>>f.S;0<g&&k<f.L.length;)h.push(f.L[k++]),
|
||||
g-=f.Aa;f=e.C;e=e.u;g=0;for(d>>>=f.S;0<e&&d<f.L.length;){k=h[g++];if(!k)break;f.L[d++]=k;e-=f.Aa}}delete a.f}}D(a)}}Ma(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new se(d);lb(d,c)}});function ve(a){u.call(this,"RAM",a,ve);this.w=a.addr;this.u=a.size;this.f=!1}w(ve);l=ve.prototype;l.Va=function(a,b,c,d){this.C=b;this.b=c;this.F=d;D(this)};l.Ma=function(a,b){b||this.reset();return!0};l.La=function(a){return a?this.save():!0};
|
||||
l.reset=function(){!this.f&&this.u&&Ab(this.C,this.w,this.u,1)&&(this.f=!0);this.f||t("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};Ma(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new ve(d);lb(d,c)}});function we(a){u.call(this,"Keyboard",a,we,65536);D(this)}w(we);we.prototype.qa=function(){return!1};we.prototype.Va=function(a,b,c,d){this.u=a;this.b=c;this.F=d;this.ca=null};
|
||||
Ma(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new we(d);lb(d,c)}});function xe(a){u.call(this,"Debugger",a,xe);this.Z=a.base||16;this.U=this.Da=this.J=0;this.Y=!1;this.B=-1;this.w=[];this.ca={}}w(xe);var ye={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function ze(a,b,c,d){if(c)if(b){0>a.B&&a.w.length&&(a.B=0);if(0>a.B||b!=a.w[a.B])a.w.splice(0,0,b),a.B=0;a.B--}else a.Y?b="end":b=a.w[a.B+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var f=null;d=d||";";for(var e=0;e<=b.length;e++){var g=b.charAt(e);if('"'==g||"'"==g)f?g==f&&(f=null):f=g;else if(g==d&&!f||!g)a.push(ma(b.substring(c,e))),c=e+1}}return a}
|
||||
function Ae(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var f=a.pop(),e=a.pop();switch(d){case "*":d=e*f;break;case "/":if(!f)return!1;d=e/f;break;case "%":if(!f)return!1;d=e%f;break;case "+":d=e+f;break;case "-":d=e-f;break;case "<<":d=e<<f;break;case ">>":d=e>>f;break;case ">>>":d=e>>>f;break;case "<":d=e<f?1:0;break;case "<=":d=e<=f?1:0;break;case ">":d=e>f?1:0;break;case ">=":d=e>=f?1:0;break;case "==":d=e==f?1:0;break;case "!=":d=e!=f?1:0;break;case "&":d=e&f;break;
|
||||
l.xb=function(a){this.j.complete=!0;var b=this.j.Kc=this.F&&od(this.F),c=a?this.j.oc?0:1:-1;this.j.oc=!1;this.J=this.b=a;do{if(b){if(pd(this.F,this.i[7],c)){this.ja();break}c=1}this.R&112&&(this.R&32?J(this,168):this.R&64?J(this,4):this.R&16&&J(this,12),this.R&=-113);if(this.Na)if(1==this.Na)this.Na=2;else{this.Na=0;a=null;for(var d=this.lc&224,f=this.w.length;0<=--f;){if(0<this.w[f].Ta){this.w[f].Ta--;this.Na=2;break}if(this.w[f].uc){if(!this.w[f].uc()){this.w.splice(f,1);continue}this.w[f].uc=null}this.w[f].Vc>
|
||||
d&&(d=this.w[f].Vc,a=this.w[f],this.w.splice(f,1))}d>(this.fa&224)&&(a?J(this,a.kd):J(this,160))}this.B&57344||(this.cb=0,this.Vb=this.i[7]);this.R=this.fa&16;a=this.f=this.Ha(this.i[7]);0<=a&&(this.i[7]=this.i[7]+2&65535);this.decode(a);if(0>this.f){this.i[7]=this.i[7]-2&65535;this.g("unimplemented");break}}while(0<this.b);return this.j.complete?this.J-this.b:void 0===this.j.complete?0:-1};Ma(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Wc(d);$a(d,c)}});
|
||||
function qd(a,b){var c=b+a;this.R&128||(this.pa=this.ra=this.ga=c,this.qa=(a^c)&(b^c));return c&65535}function rd(a,b){a=b&~a;cd(this,a);return a}function sd(a,b){a=b&~a;cd(this,a<<8);return a}function td(a,b){a|=b;cd(this,a);return a}function ud(a,b){a|=b;cd(this,a<<8);return a}function vd(a,b){a=b-a;this.R&128||(this.pa=this.ra=a,this.qa=b&(b^a));return a&65535}function wd(a,b){a=b+a;this.R&128||(this.pa=this.ra=a,this.qa=a&(b^a));return a&65535}
|
||||
function xd(a,b){var c=b-a;dd(this,c,a,b);return c&65535}function yd(){this.f=-1;--this.b}function zd(){this.f=-1;--this.b}function P(a){a&1&&(this.ga=0);a&2&&(this.qa=0);a&4&&(this.ra=1);a&8&&(this.pa=0);--this.b}function Ad(){this.f=-1;--this.b}function Bd(a){var b=id(this,a,8);a=a>>6&7;ed(this,this.i[a]);this.i[a]=this.i[7];this.i[7]=b;--this.b}function Cd(){this.f=-1;--this.b}function Dd(){--this.b}
|
||||
function R(a){a&1&&(this.ga=65536);a&2&&(this.qa=32768);a&4&&(this.ra=0);a&8&&(this.pa=32768);--this.b}function Ed(){this.f=-1;--this.b}function Fd(){this.f=-1;--this.b}function S(){J(this,8)}function Xc(a){Gd[a>>12].call(this,a)}
|
||||
var Gd=[function(a){Hd[a>>8&15].call(this,a)},function(a){cd(this,md(this,a,N(this,a>>6)));--this.b},function(a){var b=N(this,a>>6);a=N(this,a);dd(this,b-a,a,b);--this.b},function(a){cd(this,N(this,a>>6)&N(this,a));--this.b},function(a){kd(this,a,N(this,a>>6),rd);--this.b},function(a){kd(this,a,N(this,a>>6),td);--this.b},function(a){kd(this,a,N(this,a>>6),qd);--this.b},function(a){Id[a>>8&15].call(this,a)},function(a){Jd[a>>8&15].call(this,a)},function(a){var b=jd(this,a>>6);cd(this,nd(this,a,b,1)<<
|
||||
8);--this.b},function(a){var b=jd(this,a>>6)<<8;a=jd(this,a)<<8;dd(this,b-a,a,b);--this.b},function(a){cd(this,(jd(this,a>>6)&jd(this,a))<<8);--this.b},function(a){ld(this,a,jd(this,a>>6),sd);--this.b},function(a){ld(this,a,jd(this,a>>6),ud);--this.b},function(a){kd(this,a,N(this,a>>6),xd);--this.b},S],Hd=[function(a){Kd[a>>4&15].call(this,a)},function(a){this.i[7]=O(this,a);--this.b},function(a){$c(this)||(this.i[7]=O(this,a));--this.b},function(a){$c(this)&&(this.i[7]=O(this,a));--this.b},function(a){!ad(this)==
|
||||
!Zc(this)&&(this.i[7]=O(this,a));--this.b},function(a){!ad(this)!=!Zc(this)&&(this.i[7]=O(this,a));--this.b},function(a){$c(this)||!ad(this)!=!Zc(this)||(this.i[7]=O(this,a));--this.b},function(a){if($c(this)||!ad(this)!=!Zc(this))this.i[7]=O(this,a);--this.b},Bd,Bd,function(a){Ld[a>>6&3].call(this,a)},function(a){Md[a>>6&3].call(this,a)},function(a){Nd[a>>6&3].call(this,a)},function(a){Od[a>>6&3].call(this,a)},S,S],Kd=[function(a){Pd[a&15].call(this,a)},S,S,S,S,S,S,S,function(a){var b=this.Ha(this.i[6]|
|
||||
65536);0<=b&&(this.i[6]=this.i[6]+2&65535);a&=7;this.i[7]=this.i[a];this.i[a]=b;--this.b},function(a){this.fa&49152||(this.fa=this.fa&-2017|(a&7)<<5,this.Na=1);--this.b},function(a){Qd[a&15].call(this,a)},function(a){pe[a&15].call(this,a)},S,S,S,S],Qd=[Dd,function(){this.ga=0;--this.b},function(){this.qa=0;--this.b},P,function(){this.ra=1;--this.b},P,P,P,function(){this.pa=0;--this.b},P,P,P,P,P,P,P],pe=[Dd,function(){this.ga=65536;--this.b},function(){this.qa=32768;--this.b},R,function(){this.ra=
|
||||
0;--this.b},R,R,R,function(){this.pa=32768;--this.b},R,R,R,R,R,R,R],Pd=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.fa&49152||(Yc(this),this.C.reset());--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},S,S,S,S,S,S,S,S],Id=[Cd,Cd,Ad,Ad,yd,yd,zd,zd,Fd,Fd,S,S,S,S,Ed,Ed],Jd=[function(a){ad(this)||(this.i[7]=O(this,a));--this.b},function(a){ad(this)&&(this.i[7]=
|
||||
O(this,a));--this.b},function(a){this.ga&65536||$c(this)||(this.i[7]=O(this,a));--this.b},function(a){if(this.ga&65536||$c(this))this.i[7]=O(this,a);--this.b},function(a){Zc(this)||(this.i[7]=O(this,a));--this.b},function(a){Zc(this)&&(this.i[7]=O(this,a));--this.b},function(a){this.ga&65536||(this.i[7]=O(this,a));--this.b},function(a){this.ga&65536&&(this.i[7]=O(this,a));--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(a){qe[a>>6&3].call(this,a)},function(a){re[a>>
|
||||
6&3].call(this,a)},function(a){se[a>>6&3].call(this,a)},function(a){te[a>>6&3].call(this,a)},S,S],Ld=[function(a){bd(this,md(this,a,0));--this.b},function(){this.f=-1;--this.b},function(a){kd(this,a,1,wd);--this.b},function(a){kd(this,a,1,vd);--this.b}],Md=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Nd=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;
|
||||
--this.b}],Od=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],qe=[function(a){bd(this,nd(this,a,0));--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],re=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],se=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},
|
||||
function(){this.f=-1;--this.b}],te=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}];function ue(a){u.call(this,"ROM",a,ue);this.f=null;this.D=a.addr;this.u=a.size;this.G=a.writable;this.w=a.alias;this.B=a.file;this.J=ea(this.B);if(this.B){a=this.B;var b=fa(this.J);"json"!=b&&"hex"!=b&&(a=ha()+"/api/v1/dump?file="+this.B+"&format=bytes&decimal=true");var c=this;ta(a,null,!0,function(a,b,e){ve(c,a,b,e)})}}w(ue);
|
||||
ue.prototype.Va=function(a,b,c,d){this.C=b;this.b=c;this.F=d;we(this)};ue.prototype.Ma=function(){if(this.Ja){if(this.F){var a=this.F,b=this.id,c=this.D,d=this.u,f=this.Ja,e=[],g;for(g in f){var h=f[g];"number"==typeof h&&(f[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=e,k=[k>>>0,g],p=na(n,k,a.vc);0>p&&n.splice(-(p+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.G.push({qd:b,A:c,Rc:d,Ja:f,sc:e})}delete this.Ja}return!0};ue.prototype.La=function(){return!0};
|
||||
function ve(a,b,c,d){if(d)a.ma("Unable to load system ROM (error "+d+": "+b+")");else{Xa(a.tc,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.f=e;else if(e=h.words)for(a.f=Array(2*e.length),g=f=0;f<e.length;f++)a.f[g++]=e[f]&255,a.f[g++]=e[f]>>8&255;else if(e=h.data)for(a.f=Array(4*e.length),g=f=0;f<e.length;f++)a.f[g++]=e[f]&255,a.f[g++]=e[f]>>8&255,a.f[g++]=e[f]>>16&255,a.f[g++]=e[f]>>24&255;else a.f=h;a.Ja=h.symbols;if(!a.f.length){t("Empty ROM: "+
|
||||
b);return}if(1==a.f.length){t(a.f[0]);return}}catch(k){a.ma("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.f=Array(b.length),f=0;f<b.length;f++)a.f[f]=ca(b[f],16);we(a)}}
|
||||
function we(a){if(!pb(a))if(!a.B)D(a);else if(a.f&&a.C){a.u||(a.u=a.f.length);if(a.f.length!=a.u)qb(a,"ROM size ("+r(a.f.length,8,!0)+") does not match specified size ("+r(a.u,8,!0)+")");else{var b;b=a.D;if(Ab(a.C,b,a.u,a.G?1:lc)){var c;for(c=0;c<a.f.length;c++){var d=a.C,f=b+c;d.L[(f&d.C)>>>d.T].zb(f&d.f,a.f[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.C,g=e.u,h=[],k=e.D>>>f.T;0<g&&k<f.L.length;)h.push(f.L[k++]),
|
||||
g-=f.Aa;f=e.C;e=e.u;g=0;for(d>>>=f.T;0<e&&d<f.L.length;){k=h[g++];if(!k)break;f.L[d++]=k;e-=f.Aa}}delete a.f}}D(a)}}Ma(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new ue(d);$a(d,c)}});function xe(a){u.call(this,"RAM",a,xe);this.w=a.addr;this.u=a.size;this.f=!1}w(xe);l=xe.prototype;l.Va=function(a,b,c,d){this.C=b;this.b=c;this.F=d;D(this)};l.Ma=function(a,b){b||this.reset();return!0};l.La=function(a){return a?this.save():!0};
|
||||
l.reset=function(){!this.f&&this.u&&Ab(this.C,this.w,this.u,1)&&(this.f=!0);this.f||t("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};Ma(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new xe(d);$a(d,c)}});function ye(a){u.call(this,"Keyboard",a,ye,65536);D(this)}w(ye);ye.prototype.ta=function(){return!1};ye.prototype.Va=function(a,b,c,d){this.u=a;this.b=c;this.F=d;this.ca=null};
|
||||
Ma(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new ye(d);$a(d,c)}});function ze(a){u.call(this,"Debugger",a,ze);this.Z=a.base||16;this.U=this.Da=this.J=0;this.Y=!1;this.B=-1;this.w=[];this.ca={}}w(ze);var Ae={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function Be(a,b,c,d){if(c)if(b){0>a.B&&a.w.length&&(a.B=0);if(0>a.B||b!=a.w[a.B])a.w.splice(0,0,b),a.B=0;a.B--}else a.Y?b="end":b=a.w[a.B+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var f=null;d=d||";";for(var e=0;e<=b.length;e++){var g=b.charAt(e);if('"'==g||"'"==g)f?g==f&&(f=null):f=g;else if(g==d&&!f||!g)a.push(ma(b.substring(c,e))),c=e+1}}return a}
|
||||
function Ce(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var f=a.pop(),e=a.pop();switch(d){case "*":d=e*f;break;case "/":if(!f)return!1;d=e/f;break;case "%":if(!f)return!1;d=e%f;break;case "+":d=e+f;break;case "-":d=e-f;break;case "<<":d=e<<f;break;case ">>":d=e>>f;break;case ">>>":d=e>>>f;break;case "<":d=e<f?1:0;break;case "<=":d=e<=f?1:0;break;case ">":d=e>f?1:0;break;case ">=":d=e>=f?1:0;break;case "==":d=e==f?1:0;break;case "!=":d=e!=f?1:0;break;case "&":d=e&f;break;
|
||||
case "^":d=e^f;break;case "|":d=e|f;break;case "&&":d=e&&f?1:0;break;case "||":d=e||f?1:0;break;default:return!1}a.push(d|0)}return!0}
|
||||
function Be(a,b,c){var d;if(b){b=Ce(a,b);for(var f=0,e=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<m.length;){var n=m[f++],p=n.length,n=ma(n);if(!n){e=!0;break}n=De(a,n,null,!1===c);if(void 0===n){e=!0;c=!1;break}h.push(n);if(f==m.length)break;var n=m[f++],q=n.length;k.length&&ye[n]<ye[k[k.length-1]]&&Ae(h,k,1);k.push(n);b=b.substr(p+q)}Ae(h,k)&&1==h.length||(e=!0);e?c&&a.g("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Ee(a,null,
|
||||
d))}return d}function Ce(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=Be(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?r(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.U-a.Da}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
|
||||
function De(a,b,c,d){var f;null!=b?(f=a.ca[b],null==f&&(f=ca(b,a.Z)),null!=f||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return f}function Ee(a,b,c){var d,f=!1;if(void 0!==c){f=!0;d=c;var e=0,g="";if(!e||4<e)e=4;for(var h=0;h<e;h++){g&&(g=","+g);var k=d&255,m=8,n="";m?32<m&&(m=32):m=32;if(null==k||isNaN(k))for(;0<m--;)n="?"+n;else for(;0<m--;)n=(k&1?"1":"0")+n,k>>=1;g=n+g;d>>=8}d=r(c,0,!0)+" "+c+". "+da(c,0,!0)+" "+("0b"+g)}a.g((null!=b?b+": ":"")+d);return f}
|
||||
function Fe(a,b){if(b)return Ee(a,b,a.ca[b]);var c=0;for(b in a.ca)Ee(a,b,a.ca[b]),c++;return 0<c}function T(a,b,c){switch(a.Z){case 8:return da(b,3*c);case 10:return b.toString();default:return r(b,2*c)}}
|
||||
function Ge(a){xe.call(this,a);this.P=V();this.Bb=V();this.W=V();this.G=[];this.f=this.R=this.D=[];He(this);this.ta=0;Ie(this);this.Ia={};Je(this,a.messages);this.nb=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Pc(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Pc(b,a)})}w(Ge,xe);
|
||||
var Ke={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},Le="NONE ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
|
||||
Me={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032,63],20480:[16,4032,63],24576:[3,4032,63],36864:[63,4032,63],40960:[48,4032,63],45056:[19,4032,63],49152:[15,4032,63],53248:[17,4032,63],57344:[94,4032,63]},65024:{2048:[57,448,63],28672:[100,63,448],29184:[101,63,448],29696:[102,63,448],30208:[103,63,448],30720:[104,448,63],32256:[105,448,8192]},65280:{256:[27,4096],512:[24,4096],768:[10,4096],1024:[11,4096],1280:[22,4096],1536:[12,4096],1792:[20,4096],32768:[25,4096],
|
||||
function De(a,b,c){var d;if(b){b=Ee(a,b);for(var f=0,e=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<m.length;){var n=m[f++],p=n.length,n=ma(n);if(!n){e=!0;break}n=Fe(a,n,null,!1===c);if(void 0===n){e=!0;c=!1;break}h.push(n);if(f==m.length)break;var n=m[f++],q=n.length;k.length&&Ae[n]<Ae[k[k.length-1]]&&Ce(h,k,1);k.push(n);b=b.substr(p+q)}Ce(h,k)&&1==h.length||(e=!0);e?c&&a.g("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Ge(a,null,
|
||||
d))}return d}function Ee(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=De(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?r(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.U-a.Da}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
|
||||
function Fe(a,b,c,d){var f;null!=b?(f=a.ca[b],null==f&&(f=ca(b,a.Z)),null!=f||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return f}function Ge(a,b,c){var d,f=!1;if(void 0!==c){f=!0;d=c;var e=0,g="";if(!e||4<e)e=4;for(var h=0;h<e;h++){g&&(g=","+g);var k=d&255,m=8,n="";m?32<m&&(m=32):m=32;if(null==k||isNaN(k))for(;0<m--;)n="?"+n;else for(;0<m--;)n=(k&1?"1":"0")+n,k>>=1;g=n+g;d>>=8}d=r(c,0,!0)+" "+c+". "+da(c,0,!0)+" "+("0b"+g)}a.g((null!=b?b+": ":"")+d);return f}
|
||||
function He(a,b){if(b)return Ge(a,b,a.ca[b]);var c=0;for(b in a.ca)Ge(a,b,a.ca[b]),c++;return 0<c}function T(a,b,c){switch(a.Z){case 8:return da(b,3*c);case 10:return b.toString();default:return r(b,2*c)}}
|
||||
function Ie(a){ze.call(this,a);this.P=V();this.Bb=V();this.W=V();this.G=[];this.f=this.S=this.D=[];Je(this);this.wa=0;Ke(this);this.Ia={};Le(this,a.messages);this.nb=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Pc(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Pc(b,a)})}w(Ie,ze);
|
||||
var Me={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},Ne="NONE ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
|
||||
Oe={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032,63],20480:[16,4032,63],24576:[3,4032,63],36864:[63,4032,63],40960:[48,4032,63],45056:[19,4032,63],49152:[15,4032,63],53248:[17,4032,63],57344:[94,4032,63]},65024:{2048:[57,448,63],28672:[100,63,448],29184:[101,63,448],29696:[102,63,448],30208:[103,63,448],30720:[104,448,63],32256:[105,448,8192]},65280:{256:[27,4096],512:[24,4096],768:[10,4096],1024:[11,4096],1280:[22,4096],1536:[12,4096],1792:[20,4096],32768:[25,4096],
|
||||
33024:[23,4096],33280:[13,4096],33536:[21,4096],33792:[28,4096],34048:[29,4096],34304:[8,4096],34560:[9,4096],34816:[106],35072:[107]},65472:{64:[56,63],192:[95,63],2560:[39,63],2624:[49,63],2688:[53,63],2752:[51,63],2816:[67,63],2880:[1,63],2944:[77,63],3008:[97,63],3072:[73,63],3136:[71,63],3200:[6,63],3264:[4,63],3328:[58,24576],3392:[60,63],3456:[65,63],3520:[96,63],35328:[40,63],35392:[50,63],35456:[54,63],35520:[52,63],35584:[68,63],35648:[2,63],35712:[78,63],35776:[98,63],35840:[74,63],35904:[72,
|
||||
63],35968:[7,63],36032:[5,63],36096:[66,63],36160:[59,63],36224:[64,63],36288:[61,63]},65528:{128:[76,7],152:[108,12288]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}};l=Ge.prototype;
|
||||
l.Va=function(a,b,c,d){this.C=b;this.b=c;this.u=a;(a=Mc(a,"messages"))&&Je(this,a);this.Hb=Me;Ne(this,function(a){a:{var b=d.C.L,c=a[0],f=a=0,k=b.length;if(c){a=d.X(W(d,c));if(-1===a){d.g("invalid address: "+c);break a}f=a>>>d.C.S;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[f];n.type==c?m++||d.g("..."):(c=n.type,m=Db[c],n&&d.g(r(n.id,8)+" %"+r(f<<d.C.S,8)+" %%"+r(n.A,8)+" "+r(n.Ub,4,
|
||||
63],35968:[7,63],36032:[5,63],36096:[66,63],36160:[59,63],36224:[64,63],36288:[61,63]},65528:{128:[76,7],152:[108,12288]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}};l=Ie.prototype;
|
||||
l.Va=function(a,b,c,d){this.C=b;this.b=c;this.u=a;(a=Mc(a,"messages"))&&Le(this,a);this.Hb=Oe;Pe(this,function(a){a:{var b=d.C.L,c=a[0],f=a=0,k=b.length;if(c){a=d.X(W(d,c));if(-1===a){d.g("invalid address: "+c);break a}f=a>>>d.C.T;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[f];n.type==c?m++||d.g("..."):(c=n.type,m=Db[c],n&&d.g(r(n.id,8)+" %"+r(f<<d.C.T,8)+" %%"+r(n.A,8)+" "+r(n.Ub,4,
|
||||
!0)+" "+r(n.size,4,!0)+" "+m),c!=kc&&(c=-1),m=0);a+=d.C.Aa;f++}}});D(this)};
|
||||
l.qa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.sa=this.I[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Pc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.B<d.w.length-1&&(b=d.w[++d.B])):40==a.keyCode&&(0<d.B?b=d.w[--d.B]:(b="",d.B=-1)),null!=b){var f=b.length;c.value=b;c.setSelectionRange(f,f)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.I[b]=c,Ga(c,function(){if(d.sa){var a=d.sa.value;
|
||||
d.sa.value="";Pc(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,Ga(c,function(a){var b=!1;ob(d,!0)||(nb(d,!0),b=d.xb(a?1:0),nb(d,!1));return b}),!0}return!1};l.Tb=function(){this.sa&&this.sa.focus()};l.X=function(a){a=a&&a.A;null==a&&(a=-1);return a};l.Jb=function(a,b){var c=255,d=this.X(a,!1,1);-1!==d&&(c=this.C,c=c.L[(d&c.C)>>>c.S].Nb(d&c.f,d),b&&Oe(a,b));return c};l.Fa=function(a,b){var c=65535,d=this.X(a,!1,2);-1!==d&&(c=Eb(this.C,d),b&&Oe(a,b));return c};
|
||||
l.dc=function(a,b,c){var d=this.X(a,!0,1);if(-1!==d){var f=this.C;f.L[(d&f.C)>>>f.S].zb(d&f.f,b&255,d);c&&Oe(a,c);K(this.b,!0)}};l.nc=function(a,b,c){var d=this.X(a,!0,2);if(-1!==d){var f=this.C,e=d&f.f,g=(d&f.C)>>>f.S;e!=f.f?f.L[g].qc(e,b&65535,d):(f.L[g++].zb(e,b&255,d),f.L[g&f.u].zb(0,b>>8&255,d+1));c&&Oe(a,c);K(this.b,!0)}};function V(a){return{A:a,Ea:!1}}function Pe(a){return[a.A,a.Ea]}function Qe(a){return{A:a[0],Ea:a[1]}}
|
||||
function W(a,b,c){var d;c=(c?a.P:a.Bb).A;if(void 0!==b){d=b=Ce(a,b);var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.G.length;c++){var e=a.G[c].Ja[d];if(void 0!==e){d=e.o;void 0!==d&&(f=V(d));break}}if(d=f)return d;c=Be(a,b,void 0)}null!=c&&(d=V(c));return d}function Re(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Ic=ze(a,b.Dc=c[2]))}function Oe(a,b){null!=a.A&&(a.A+=b||1)}
|
||||
function Je(a,b){a.F=a;a.da=a.Jc=536870912;a.ua=null;a.wa=[];b=ze(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in E){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var f=b.length;d<f;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.da|=E[c],a.g(c+" messages enabled"))}}function Ne(a,b){for(var c in E)if(64==E[c]){a.Ia[c]=b;break}}
|
||||
l.message=function(a,b){b&&(a+=" at "+T(this,V(this.b.i[7]).A));this.da&1073741824?this.wa.push(a):this.ua&&a==this.ua||(this.ua=a,this.da&-2147483648&&(this.ja(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,a.J-=a.b,a.b=0,a.Z=0,K(a)))};
|
||||
function Ie(a){var b;if(od(a)){if(!a.O||!a.O.length){a.O=Array(1E3);for(b=0;b<a.O.length;b++)a.O[b]=V();a.oa=0;a.g("instruction history buffer allocated")}if(!a.ka||!a.ka.length)for(a.ka=Array(256),b=0;b<a.ka.length;b++)a.ka[b]=[b,0]}else a.O&&a.O.length&&a.g("instruction history buffer freed"),a.oa=0,a.O=[],a.ka=[]}l.mb=function(a){if(!Se(this))return!1;this.b.mb(a);return!0};
|
||||
l.xb=function(a,b,c){if(!Se(this))return!1;this.J=0;a||od(this)&&pd(this,this.b.i[7],0);try{var d=this.b.xb(a);0<d&&(this.J+=d,Uc(this.b,d,!0),Qc(this.b,d),this.U++)}catch(f){"number"!=typeof f&&(this.J=0,qb(this.b,f.stack||f.message))}!1!==c&&K(this.b);this.va(b||!1);return 0<this.J};l.ja=function(a){this.b&&this.b.ja(a)};l.va=function(a){void 0===a&&(a=!0);this.P=V(this.b.i[7]);a&&1!=this.aa?Te(this):Ue(this)};
|
||||
function Se(a){var b;if(b=a.b&&pb(a.b))b=a.b,b.j.ba?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!ob(a.b)?(a=a.b,a.j.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ma=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.La=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ie(this);this.U=this.Da=0;this.ua=null;this.J=0;this.P=V(this.b.i[7]);this.j.ea=!1;Ve(this);a||this.va()};
|
||||
l.save=function(){var a=new L(this);a.set(0,Pe(this.P));a.set(1,Pe(this.W));a.set(2,[this.w,this.Y,this.da]);a.set(3,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.P=Qe(a[b++]),this.W=Qe(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.Y=a[b][1],this.da|=a[b][2]);a[3]&&(this.G=a[3]);return!0};l.start=function(a,b){this.aa||this.g("running");this.j.ea=!0;this.Wb=a;this.ic=b};
|
||||
l.stop=function(a,b){if(this.j.ea){this.j.ea=!1;this.J=b-this.ic;if(!this.aa){b="stopped";if(this.J){a-=this.Wb;var c=0<a?Math.round(1E3*this.J/a):0;b+=" (";od(this)&&(b+=this.U+" opcodes, ",this.Da-=this.U,this.U=0);b+=this.J+" cycles, "+a+" ms, "+c+" hz)"}else mb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}this.va(!0);this.Tb();Ve(this,this.b.i[7])}};function od(a){return 1<a.f.length||!!a.ta}
|
||||
function pd(a,b,c){var d=a.b;if(0<c&&(a.ta&&!--a.ta||tc(a,b,1,a.f)))return!0;0<=c&&a.ka.length&&(a.U++,null!=Eb(a.C,b)&&(b=a.O[a.oa],b.A=d.i[7],b.Ea=!1,++a.oa==a.O.length&&(a.oa=0)));return!1}function He(a){var b,c;a.f=["bp"];if(a.R)for(b=1;b<a.R.length;b++){c=a.R[b];var d=a.C;c=a.X(c);uc(d.L[c>>>d.S],!1)}a.R=["br"];if(a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.C,c=a.X(c),uc(d.L[c>>>d.S],!0);a.D=["bw"];a.Eb=0}
|
||||
l.hb=function(a,b,c){var d=!0;c||We(this,a,b,!1,!0);if(a!=this.f){var f=this.X(b);if(-1===f)this.g("invalid address: "+T(this,b.A)),d=!1;else{var e=this.C;e.L[f>>>e.S].hb(f&e.f,a==this.D)}}d&&(a.push(b),c?b.Ea=!0:(Xe(this,a,a.length-1,"set"),Ie(this)));return d};function We(a,b,c,d,f){var e=!1;c=a.X(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.X(h)&&(!d||h.Ea)){e=!0;h.Ea||f||Xe(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.C,uc(d.L[c>>>d.S],b==a.D));h.Ea||Ie(a);break}}return e}
|
||||
function Ye(a,b){for(var c=1;c<b.length;c++)Xe(a,b,c);return b.length-1}function Xe(a,b,c,d){c=b[c];a.g(b[0]+" "+T(a,c.A)+(d?" "+d:c.Dc?' "'+c.Dc+'"':""))}function Ve(a,b){if(void 0!==b)tc(a,b,1,a.f,!0),a.aa=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.Ea){if(!We(a,a.f,c,!0))break;b=0}}}
|
||||
function tc(a,b,c,d,f){var e=!1;if(!a.Eb++)for(var g=1;!e&&g<d.length;g++){var h=d[g];if(!f||h.Ea)for(var k=a.X(h),m=0;m<c;m++)if(b+m==k){var n,e=!0;h.Ea&&(We(a,d,h,!0),f=!0);if(n=h.Ic){for(var e=!1,p=0;p<n.length;p++)if(!Ze(a,n[p],!0)){if(n[p].indexOf("if")){e=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){e=!0;break}}a.b.j.ea||(e=!0)}if(e){f||Xe(a,d,g,"hit");break}}}a.Eb--;return e}
|
||||
function $e(a,b,c,d){var f=V(b.A),e=a.Fa(b,2),g,h;for(h in a.Hb)if(g=a.Hb[h][e&h])break;g||(g=[0]);h="";for(var k=Le[g[0]],m=g.length-1,n=1;n<=m;n++){var p=g[n];if(void 0!==p){var q;q=a;var z=p,p=b,x="",A=z&61440;if(4096==A)p=p.A+((e&255)<<24>>23)&65535,x=T(q,p);else if(8192==A)p=p.A-((e&63)<<1)&65535,x=T(q,p);else if(12288==A)x=T(q,e&7,1);else if(24576==A)x=T(q,e&63,1);else if(A=e&z,z&4032&&(A>>=6,z>>=6),z&63)switch(z=A&7,A&56){case 0:x=X(z);break;case 8:x="@"+X(z);break;case 16:7>z?x="("+X(z)+")+":
|
||||
l.ta=function(a,b,c){var d=this;switch(b){case "debugInput":return this.va=this.I[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Pc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.B<d.w.length-1&&(b=d.w[++d.B])):40==a.keyCode&&(0<d.B?b=d.w[--d.B]:(b="",d.B=-1)),null!=b){var f=b.length;c.value=b;c.setSelectionRange(f,f)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.I[b]=c,Ga(c,function(){if(d.va){var a=d.va.value;
|
||||
d.va.value="";Pc(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,Ga(c,function(a){var b=!1;ob(d,!0)||(nb(d,!0),b=d.xb(a?1:0),nb(d,!1));return b}),!0}return!1};l.Tb=function(){this.va&&this.va.focus()};l.X=function(a){a=a&&a.A;null==a&&(a=-1);return a};l.Jb=function(a,b){var c=255,d=this.X(a,!1,1);-1!==d&&(c=this.C,c=c.L[(d&c.C)>>>c.T].Nb(d&c.f,d),b&&Qe(a,b));return c};l.Fa=function(a,b){var c=65535,d=this.X(a,!1,2);-1!==d&&(c=Eb(this.C,d),b&&Qe(a,b));return c};
|
||||
l.dc=function(a,b,c){var d=this.X(a,!0,1);if(-1!==d){var f=this.C;f.L[(d&f.C)>>>f.T].zb(d&f.f,b&255,d);c&&Qe(a,c);K(this.b,!0)}};l.nc=function(a,b,c){var d=this.X(a,!0,2);if(-1!==d){var f=this.C,e=d&f.f,g=(d&f.C)>>>f.T;e!=f.f?f.L[g].qc(e,b&65535,d):(f.L[g++].zb(e,b&255,d),f.L[g&f.u].zb(0,b>>8&255,d+1));c&&Qe(a,c);K(this.b,!0)}};function V(a){return{A:a,Ea:!1}}function Re(a){return[a.A,a.Ea]}function Se(a){return{A:a[0],Ea:a[1]}}
|
||||
function W(a,b,c){var d;c=(c?a.P:a.Bb).A;if(void 0!==b){d=b=Ee(a,b);var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.G.length;c++){var e=a.G[c].Ja[d];if(void 0!==e){d=e.o;void 0!==d&&(f=V(d));break}}if(d=f)return d;c=De(a,b,void 0)}null!=c&&(d=V(c));return d}function Te(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Ic=Be(a,b.Dc=c[2]))}function Qe(a,b){null!=a.A&&(a.A+=b||1)}
|
||||
function Le(a,b){a.F=a;a.da=a.Jc=536870912;a.xa=null;a.za=[];b=Be(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in E){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var f=b.length;d<f;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.da|=E[c],a.g(c+" messages enabled"))}}function Pe(a,b){for(var c in E)if(64==E[c]){a.Ia[c]=b;break}}
|
||||
l.message=function(a,b){b&&(a+=" at "+T(this,V(this.b.i[7]).A));this.da&1073741824?this.za.push(a):this.xa&&a==this.xa||(this.xa=a,this.da&-2147483648&&(this.ja(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,a.J-=a.b,a.b=0,a.Z=0,K(a)))};
|
||||
function Ke(a){var b;if(od(a)){if(!a.O||!a.O.length){a.O=Array(1E3);for(b=0;b<a.O.length;b++)a.O[b]=V();a.oa=0;a.g("instruction history buffer allocated")}if(!a.ka||!a.ka.length)for(a.ka=Array(256),b=0;b<a.ka.length;b++)a.ka[b]=[b,0]}else a.O&&a.O.length&&a.g("instruction history buffer freed"),a.oa=0,a.O=[],a.ka=[]}l.mb=function(a){if(!Ue(this))return!1;this.b.mb(a);return!0};
|
||||
l.xb=function(a,b,c){if(!Ue(this))return!1;this.J=0;a||od(this)&&pd(this,this.b.i[7],0);try{var d=this.b.xb(a);0<d&&(this.J+=d,Uc(this.b,d,!0),Qc(this.b,d),this.U++)}catch(f){"number"!=typeof f&&(this.J=0,qb(this.b,f.stack||f.message))}!1!==c&&K(this.b);this.ya(b||!1);return 0<this.J};l.ja=function(a){this.b&&this.b.ja(a)};l.ya=function(a){void 0===a&&(a=!0);this.P=V(this.b.i[7]);a&&1!=this.aa?Ve(this):We(this)};
|
||||
function Ue(a){var b;if(b=a.b&&pb(a.b))b=a.b,b.j.ba?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!ob(a.b)?(a=a.b,a.j.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ma=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.La=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ke(this);this.U=this.Da=0;this.xa=null;this.J=0;this.P=V(this.b.i[7]);this.j.ea=!1;Xe(this);a||this.ya()};
|
||||
l.save=function(){var a=new L(this);a.set(0,Re(this.P));a.set(1,Re(this.W));a.set(2,[this.w,this.Y,this.da]);a.set(3,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.P=Se(a[b++]),this.W=Se(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.Y=a[b][1],this.da|=a[b][2]);a[3]&&(this.G=a[3]);return!0};l.start=function(a,b){this.aa||this.g("running");this.j.ea=!0;this.Wb=a;this.ic=b};
|
||||
l.stop=function(a,b){if(this.j.ea){this.j.ea=!1;this.J=b-this.ic;if(!this.aa){b="stopped";if(this.J){a-=this.Wb;var c=0<a?Math.round(1E3*this.J/a):0;b+=" (";od(this)&&(b+=this.U+" opcodes, ",this.Da-=this.U,this.U=0);b+=this.J+" cycles, "+a+" ms, "+c+" hz)"}else mb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}this.ya(!0);this.Tb();Xe(this,this.b.i[7])}};function od(a){return 1<a.f.length||!!a.wa}
|
||||
function pd(a,b,c){var d=a.b;if(0<c&&(a.wa&&!--a.wa||tc(a,b,1,a.f)))return!0;0<=c&&a.ka.length&&(a.U++,null!=Eb(a.C,b)&&(b=a.O[a.oa],b.A=d.i[7],b.Ea=!1,++a.oa==a.O.length&&(a.oa=0)));return!1}function Je(a){var b,c;a.f=["bp"];if(a.S)for(b=1;b<a.S.length;b++){c=a.S[b];var d=a.C;c=a.X(c);uc(d.L[c>>>d.T],!1)}a.S=["br"];if(a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.C,c=a.X(c),uc(d.L[c>>>d.T],!0);a.D=["bw"];a.Eb=0}
|
||||
l.hb=function(a,b,c){var d=!0;c||Ye(this,a,b,!1,!0);if(a!=this.f){var f=this.X(b);if(-1===f)this.g("invalid address: "+T(this,b.A)),d=!1;else{var e=this.C;e.L[f>>>e.T].hb(f&e.f,a==this.D)}}d&&(a.push(b),c?b.Ea=!0:(Ze(this,a,a.length-1,"set"),Ke(this)));return d};function Ye(a,b,c,d,f){var e=!1;c=a.X(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.X(h)&&(!d||h.Ea)){e=!0;h.Ea||f||Ze(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.C,uc(d.L[c>>>d.T],b==a.D));h.Ea||Ke(a);break}}return e}
|
||||
function $e(a,b){for(var c=1;c<b.length;c++)Ze(a,b,c);return b.length-1}function Ze(a,b,c,d){c=b[c];a.g(b[0]+" "+T(a,c.A)+(d?" "+d:c.Dc?' "'+c.Dc+'"':""))}function Xe(a,b){if(void 0!==b)tc(a,b,1,a.f,!0),a.aa=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.Ea){if(!Ye(a,a.f,c,!0))break;b=0}}}
|
||||
function tc(a,b,c,d,f){var e=!1;if(!a.Eb++)for(var g=1;!e&&g<d.length;g++){var h=d[g];if(!f||h.Ea)for(var k=a.X(h),m=0;m<c;m++)if(b+m==k){var n,e=!0;h.Ea&&(Ye(a,d,h,!0),f=!0);if(n=h.Ic){for(var e=!1,p=0;p<n.length;p++)if(!af(a,n[p],!0)){if(n[p].indexOf("if")){e=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){e=!0;break}}a.b.j.ea||(e=!0)}if(e){f||Ze(a,d,g,"hit");break}}}a.Eb--;return e}
|
||||
function bf(a,b,c,d){var f=V(b.A),e=a.Fa(b,2),g,h;for(h in a.Hb)if(g=a.Hb[h][e&h])break;g||(g=[0]);h="";for(var k=Ne[g[0]],m=g.length-1,n=1;n<=m;n++){var p=g[n];if(void 0!==p){var q;q=a;var z=p,p=b,x="",A=z&61440;if(4096==A)p=p.A+((e&255)<<24>>23)&65535,x=T(q,p);else if(8192==A)p=p.A-((e&63)<<1)&65535,x=T(q,p);else if(12288==A)x=T(q,e&7,1);else if(24576==A)x=T(q,e&63,1);else if(A=e&z,z&4032&&(A>>=6,z>>=6),z&63)switch(z=A&7,A&56){case 0:x=X(z);break;case 8:x="@"+X(z);break;case 16:7>z?x="("+X(z)+")+":
|
||||
(A=q.Fa(p,2),x="#"+T(q,A));break;case 24:7>z?x="@("+X(z)+")+":(A=q.Fa(p,2),x="@#"+T(q,A));break;case 32:x="-("+X(z)+")";break;case 40:x="@-("+X(z)+")";break;case 48:A=q.Fa(p,2);x=T(q,A)+"("+X(z)+")";7==z&&(x=[x,T(q,A+p.A&65535)]);break;case 56:A=q.Fa(p,2),x="@"+T(q,A)+"("+X(z)+")",7==z&&(x=[x,T(q,A+p.A&65535)])}q=x;if(!q||!q.length){h="INVALID";break}"string"!=typeof q&&(c=q[1],d=null,q=q[0]);0<h.length&&(h+=",");h+=q||"???"}}e="";g=T(a,f.A)+":";if(-1!==f.A&&-1!==b.A){do if(e+=" "+T(a,a.Fa(f,2)),
|
||||
null==f.A)break;while(f.A!=b.A)}g+=ka(e,24);g+=ka(k,5);h&&(g+=" "+h);c&&(g=ka(g,60)+";"+c,g=a.b.j.pb?g+("cycles="+Rc(a.b).toString()+" cs="+r(a.b.Kb)):g+(null!=d?"="+d.toString():""));return g}function af(a,b){switch(b){case "N":a=ad(a.b);break;case "Z":a=$c(a.b);break;case "V":a=Zc(a.b);break;case "C":a=a.b.ga&65536?1:0;break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function X(a){return 6>a?"R"+a:6==a?"SP":"PC"}
|
||||
function bf(a,b){var c="",d=a.b;8>b?(c=X(b),c+="="+T(a,d.i[b])):13>b?c="A"+(b-8)+"="+T(a,d.$a[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+T(a,d.Oa[b-16]):20==b&&(c="PS="+T(a,Wb(d)));c&&(c+=" ");return c}function cf(a){var b,c="";for(b=0;6>b;b++)c+=bf(a,b);c=c+"\n"+(bf(a,6)+bf(a,7)+bf(a,20));return c+=af(a,"T")+af(a,"N")+af(a,"Z")+af(a,"V")+af(a,"C")}l.vc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function df(a,b,c){var d=[],f=a.X(b)>>>0;for(b=0;b<a.G.length;b++){var e=a.G[b],g=e.A>>>0,h=e.Rc;if(f>=g&&f<g+h){f=na(e.sc,[f-g],a.vc);0<=f?ef(a,b,f,d):c&&(f=~f,ef(a,b,f-1,d),ef(a,b,f,d));break}}return d}function ef(a,b,c,d){var f={},e=a.G[b].sc,g=0,h=null;0<=c&&c<e.length&&(g=e[c][0],h=e[c][1]);h&&(f=a.G[b].Ja[h],h="."==h.charAt(0)?null:f.l||h);d.push(h);d.push(g);d.push(f.a);d.push(f.c)}
|
||||
function ff(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Fe(a)||a.g("no variables"),!0;if(!c[2])return Fe(a,c[1]);if(!c[3])return delete a.ca[c[1]],!0;b=Be(a,c[3]);return void 0!==b?(a.ca[c[1]]=b,!0):!1}a.g("invalid assignment:"+b);return!1}
|
||||
function gf(a,b,c){var d=null;if(b=W(a,b,!0)){a.X(b);var f=df(a,b,!0);if(f.length){var e,g;f[0]&&(g="",(e=b.A-f[1])&&(g=" + "+r(e,4,!0)),e=f[0]+" ("+T(a,f[1])+")"+g,c&&a.g(e),d=e);4<f.length&&f[4]&&(g="",(e=f[5]-b.A)&&(g=" - "+r(e,4,!0)),e=f[4]+" ("+T(a,f[5])+")"+g,c&&a.g(e),d||(d=e))}else c&&a.g("no symbols")}return d}
|
||||
function Te(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(b&&1<b.length){var f=b[1],e=f.indexOf("=");if(0<e)b=f.substr(e+1),f=f.substr(0,e);else if(2<b.length)b=b[2];else{a.g("missing value for "+b[1]);return}var e=!1,g=Be(a,b);if(void 0!==g)switch(e=!0,f.toUpperCase()){case "PC":d.i[7]=g;a.P=V(d.i[7]);break;case "NF":d.xa=g?32768:0;break;case "ZF":d.za=g?0:1;break;case "VF":d.ya=g?32768:
|
||||
0;break;case "CF":d.ga=g?65536:0;break;default:a.g("unknown register: "+f);return}if(!e){a.g("invalid value: "+b);return}K(d);a.g("updated registers:")}a.g(cf(a));c&&(a.P=V(d.i[7]),Ue(a,T(a,a.P.A)))}}function hf(a,b){b=ma(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(c[2]):Be(a,b,!0)}function jf(a,b,c){var d="t"!=b;c=De(a,c,null,!0)||1;var f=1==c?0:1;"tc"==b&&(f=c,c=1);Fa(c,function(){return nb(a,!0)&&a.xb(f,d,!1)},function(){K(a.b);nb(a,!1)})}
|
||||
function Ue(a,b,c,d){if(b=W(a,b,!0)){void 0===d&&(d=1);var f=256;if(void 0!==c){d=W(a,c,!0);if(!d||d.A<b.A)return;f=d.A-b.A;if(256<f){a.g("range too large");return}d=-1}c=0;for(var e;0<f&&d--;){e=ob(a,!1)||a.aa?a.J:null;var g=null!=e?"cycles":null,h=df(a,b),k=b.A;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.g(m)}h[3]&&(g=h[3],e=null);e=$e(a,b,g,e);a.g(e);a.P=b;f-=b.A-k;c++}}}
|
||||
function Ze(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.Y&&(a.g("ended assemble at "+T(a,a.W.A)),a.P=a.W,a.Y=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.ua=null;if(pb(a)&&0<b.length){a.Y&&(b="a "+T(a,a.W.A)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var g=e[0],h=g.charAt(0),k=1;k<g.length;k++){var m=g.charAt(k);if("?"==h||"r"==h||"a">m||"z"<m){e[0]=g.substr(k);e.unshift(g.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=W(a,e[1],!0);if(n)if(a.W=
|
||||
n,void 0===e[2])a.g("begin assemble at "+T(a,n.A)),a.Y=!0,K(a.b);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.dc(n,p[q],1);a.g($e(a,a.W))}}break;case "b":a:{var z=e[0],x=e[1],A=b;if("?"==x)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");
|
||||
else{var pa=z.charAt(1);if("l"==pa){var vc;vc=0+Ye(a,a.f);vc+=Ye(a,a.R);(vc+=Ye(a,a.D))||a.g("no breakpoints")}else if("n"==pa)a.ta=De(a,x),a.g("break after "+a.ta+" instruction(s)");else if(void 0===x)a.g("missing breakpoint address");else{var M=V();if("*"!=x&&(M=W(a,x,!0),!M))break a;"c"==pa?null==M.A?(He(a),a.g("all breakpoints cleared")):We(a,a.f,M)||We(a,a.R,M)||We(a,a.D,M)||a.g("breakpoint missing: "+T(a,M.A)):null!=M.A&&(Re(a,M,A),"p"==pa?a.hb(a.f,M):"r"==pa?a.hb(a.R,M):"w"==pa?a.hb(a.D,M):
|
||||
a.g("unknown breakpoint command: "+pa))}}}break;case "c":a.ib&&(a.ib.value="");break;case "d":a:{var Aa,Ba=e[0],Y=e[1],qa=e[2],Cf=e[3];if("?"==Y){var Ca="";for(Aa in E)a.Ia[Aa]&&(Ca&&(Ca+=","),Ca+=Aa);Ca+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");Ca.length&&a.g("dump extension commands:\n\t"+
|
||||
Ca)}else if("state"==Y){var Rd=kf(a.u,!0);"console"==qa?console.log(Rd):(a.ib&&(a.ib.value=""),a.g(Rd))}else if("symbols"==Y)for(var wc=0;wc<a.G.length;wc++){var xc=a.G[wc],Da;for(Da in xc.Ja)if("."!=Da.charAt(0)){var Sd=xc.Ja[Da].o;if(void 0!==Sd){var Td=xc.Ja[Da].l;Td&&(Da=Td);a.g(T(a,Sd)+" "+Da)}}}else{if("d"==Ba){for(Aa in E)if(e[1]==Aa){var Ud=a.Ia[Aa];Ud?(e.shift(),e.shift(),Ud(e)):a.g("no dump registered for "+Y);break a}Y||(Ba=a.Qc||"db")}else a.Qc=Ba;if("dh"==Ba){var Vd=Y,Wd=qa,Xd="",Yd=
|
||||
0,U=a.oa,Z=a.O;if(Z.length){var Q=+Vd||a.Gb,$a=+Wd||10;isNaN(Q)?Q=$a:Xd="more ";Q>Z.length&&(a.g("note: only "+Z.length+" available"),Q=Z.length);U-=Q;0>U&&(null==Z[Z.length-1].A?(Q=U+Q,U=0):U+=Z.length);var yc=[];"call"==Wd&&($a=1E5,yc=["CALL"]);for(void 0!==Vd&&a.g(Q+" instructions earlier:");0<$a&&U!=a.oa;){var Zd=Z[U++];if(null==Zd.A)break;var ab=V(Zd.A),Df=Q--,$d=$e(a,ab,"history",Df);(!yc.length||0<=$d.indexOf(yc[0]))&&a.g($d);ab.gc&&(U+=ab.gc,$a-=ab.gc,Q-=ab.gc);U>=Z.length&&(U=0);a.Gb=Q;Yd++;
|
||||
$a--}}Yd||(a.g("no "+Xd+"history available"),a.Gb=void 0)}else{var Ib=W(a,Y);if(Ib){var Jb=0;qa&&("l"==qa.charAt(0)&&(qa=qa.substr(1)||Cf),Jb=De(a,qa)>>>0,65536<Jb&&(Jb=65536));for(var bb="",Ea="dd"==Ba?4:"dw"==Ba?2:1,Kb=Ea*Jb||128,Ef=Kb+15>>4||1;Ef--&&0<Kb;){var cb=0,zc=0,db,Ac="",ae="",Y=T(a,Ib.A);for(db=4==Ea?16:a.Z;0<db&&0<Kb;db--){var Lb=a.Jb(Ib,1),cb=cb|Lb<<(zc++<<3);zc==Ea&&(Ac+=8==a.Z?da(cb,3*Ea):r(cb,2*Ea),Ac+=1==Ea?9==db?"-":" ":" ",cb=zc=0);ae+=32<=Lb&&128>Lb?String.fromCharCode(Lb):".";
|
||||
Kb--}bb&&(bb+="\n");bb+=Y+" "+Ac+(0==db?" "+ae:"")}bb&&a.g(bb);a.Bb=Ib}}}}break;case "e":if("else"==e[0])break;var Mb=1,be=255,ce=a.Jb,de=a.dc;"ew"==e[0]&&(Mb=2,be=65535,ce=a.Fa,de=a.nc);var ee=Mb<<1,fe=e[1];if(null==fe)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Nb=W(a,fe);if(Nb)for(var Ob=2;Ob<e.length;Ob++){var eb=Be(a,e[Ob]);if(void 0===eb){a.g("unrecognized value: "+e[Ob]);break}eb&~be&&a.g("warning: "+r(eb)+
|
||||
" exceeds "+Mb+"-byte value");var Ff=ce.call(a,Nb);a.g("changing "+T(a,Nb.A)+" from "+r(Ff,ee,!0)+" to "+r(eb,ee,!0));de.call(a,Nb,eb,Mb)}}break;case "g":a:{var ge=e[1],Gf=b;if(void 0!==ge){var Bc=W(a,ge,!0);if(!Bc)break a;Re(a,Bc,Gf);a.hb(a.f,Bc,!0)}a.mb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Cc;if(a.j.ea)Cc="halting",a.ja();else{if(ob(a,!0))break a;Cc="already halted"}c||a.g(Cc)}break;case "i":if("if"==e[0]){var Dc;var fb=b.substr(2),fb=ma(fb);Be(a,fb)?
|
||||
(c||a.g("true: "+fb),Dc=!0):(c||a.g("false: "+fb),Dc=!1);Dc||(d=!1)}break;case "k":var Hf=e[0];if("?"==e[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Ec=0,he=V(),gb=V(a.b.i[6]);for(a.g("stack trace for "+T(a,gb.A));10>Ec;){for(var ra=null,If=256;65536>gb.A>>>0;){he.A=a.Fa(gb,2);if(null==gb.A||!If--)break;for(var Jf=a,Pb=he,ie=null,hb=Pb.A,je=hb,Fc=1;6>=Fc&&hb;Fc++){if(2<Fc){Pb.A=hb;var Qb=$e(Jf,Pb);if(0<=Qb.indexOf("JSR")){var ke=Qb.indexOf(" ");
|
||||
if(hb+(Qb.indexOf(" ",ke+1)-ke-1)/2==je){ie=Qb;break}}}hb--}Pb.A=je;if(ra=ie)break}if(!ra||null==ra)break;var le=null;if("ks"==Hf){var me=ra.match(/[0-9A-F]+$/);me&&(le=gf(a,me[0]))}ra=ka(ra,50)+" ;"+(le||"stack="+T(a,gb.A));a.g(ra);Ec++}Ec||a.g("no return addresses found")}break;case "l":"ln"==e[0]&&gf(a,e[1],!0);break;case "m":a:{var aa,ba=null,B=e[1];"?"==B&&(B=void 0);if(void 0!==B){var la=0;if("all"==B)la=1878917119,B=null;else if("on"==B)ba=!0,B=null;else if("off"==B)ba=!1,B=null;else{"keys"==
|
||||
B&&(B="key");"kbd"==B&&(B="keyboard");for(aa in E)if(B==aa){la=E[aa];ba=!!(a.da&la);break}if(!la){a.g("unknown message category: "+B);break a}}if(la)if("on"==e[2])a.da|=la,ba=!0;else if("off"==e[2]&&(a.da&=~la,ba=!1,1073741824==la)){for(var Gc=0;Gc<a.wa.length;Gc++)a.g(a.wa[Gc]);a.wa=[]}}var Kf=0,ib="";for(aa in E)if(!B||B==aa){var Lf=!!(a.da&E[aa]);if(null===ba||ba==Lf)ib&&(ib+=","),++Kf%10||(ib+="\n\t"),"key"==aa&&(aa="keys"),ib+=aa}void 0===B&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
|
||||
a.g((null!==ba?ba?"messages on: ":"messages off: ":"message categories:\n\t")+(ib||"none"));Ie(a)}break;case "p":if("print"==e[0]){hf(a,b.substr(5));break}var Mf="pr"==e[0]?1:0;if(a.aa)a.g("step in progress");else{var ne=V(a.b.i[7]);a.Jb(ne);a.aa?(a.hb(a.f,ne,!0),a.mb()||(a.u&&a.u.Tb(),a.aa=0)):jf(a,Mf?"tr":"t")}break;case "r":if("reset"==b){a.u&&a.u.reset();break}Te(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var jb=+e[2];if(8==jb||10==jb||16==jb)a.Z=jb;else{a.g("invalid base: "+jb);
|
||||
break}}a.g("default base: "+a.Z);break;case "cs":var kb;void 0!==e[3]&&(kb=+e[3]);switch(e[2]){case "int":a.b.rb=kb;break;case "start":a.b.Lb=kb;break;case "stop":a.b.sb=kb;break;default:a.g("unknown cs option");break a}void 0!==kb&&Oc(a.b);a.g("checksums "+(a.b.j.pb?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&(Tc(a.b,+e[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.kb.toFixed(2)+"Mhz")+" ("+a.b.Ya+"x)");break;case "?":a.g("debugger options:");
|
||||
a.g("\tbase #\t\tset default base to #");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:e[1]&&a.g("unknown option: "+e[1])}break;case "t":jf(a,e[0],e[1]);break;case "u":Ue(a,e[1],e[2],8);break;case "v":if("var"==e[0]){ff(a,b.substr(3))||(d=!1);break}a.g("PDP11js version 1.30.0 ("+a.b.Uc+",RELEASE"+(rb?",TYPEDARRAYS":",LONGARRAYS")+
|
||||
")");a.g(window?window.navigator.userAgent:"");break;case "?":if(e[1]){hf(a,b.substr(1));break}var Hc="commands:",Ic;for(Ic in Ke)Hc+="\n"+ka(Ic,9)+Ke[Ic];od(a)||(Hc+="\nnote: history disabled if no exec breakpoints");a.g(Hc);break;default:a.g("unknown command: "+b),d=!1}}}catch(oe){a.g("debugger error: "+(oe.stack||oe.message)),d=!1}return d}function Pc(a,b,c){b=ze(a,b,c);for(var d in b)if(!Ze(a,b[+d]))return!1;return!0}
|
||||
Ma(function(){for(var a=C(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Ge(d);lb(d,c)}});
|
||||
function lf(a,b,c){u.call(this,"Computer",a,lf,67108864);this.j.ba=!1;mf(this,b);this.R=Mc(this,"autoPower",a);this.w=0;this.aa=a.busWidth||a.buswidth;this.f=nf;this.O=null;this.G=this.Y=!1;this.url=Mc(this,"url")||"";(Math.random()+.1).toString(36);this.u=of(this);if(this.b=Za("CPU",this.id)){this.F=Za("Debugger",this.id);this.C=new ub({id:this.tc+".bus",busWidth:this.aa},this.b,this.F);var d,f=Ya(this.id);if((this.B=Za("Panel",this.id))&&this.B.ib)for(b=0;b<f.length;b++)d=f[b],d.ma=this.B.ma,d.g=
|
||||
this.B.g,d.ib=this.B.ib;this.g("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Va&&d.Va(this,this.C,this.b,this.F);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.J=d:this.f=parseInt(d,10));var e;if(a=Mc(this,"state")||(e=!0,a.state))b=this.U=a,e||(this.G=!0,this.f=nf),this.f&&
|
||||
(this.P=new L(this,"1.30.0"),pf(this.P)?b=null:delete this.P);!b&&this.f&&(b=qf(this))&&(this.G=!0);if(b){var g=this;ta(b,null,!0,function(a,b,c){c?(g.J=null,g.G=!1,g.ma("Unable to load machine state from server (error "+c+(b?": "+ma(b):"")+")")):(g.O=b,g.Y=!0);D(g)})}else D(this);this.I.power||(this.R=!0);!c&&this.R&&rf(this,this.Mb)}else t("Unable to find CPU component")}w(lf);var nf=0;
|
||||
function mf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.Z=b}function Mc(a,b,c){var d=b.toLowerCase(),d=Ra[b]||Ra[d];void 0===d&&a.Z&&(d=a.Z[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function rf(a,b,c){for(var d=Ya(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!pb(e)){pb(e,function(){rf(a,b,c)});return}}b.call(a,c)}
|
||||
function sf(a,b){var c=new L(a,"1.30.0","validate");if(pf(c)&&tf(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.ma("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=lf.prototype;
|
||||
l.Mb=function(a){void 0===a&&(a=this.f||(this.O?1:nf));if(!this.w){this.w++;var b=!1,c=!1;this.W=!1;var d=this.P||new L(this,"1.30.0");if(-1==a)b=!0;else if(a>nf){if(pf(d,this.O)){this.D=new L(this,"1.30.0","failsafe");pf(this.D)&&(uf(this,d),a=2,vf(this.D));this.D.set("timestamp",sa());wf(this.D);var f=this.f&&!this.G;if(1==a||ua("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=tf(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?pf(d,g):("error"==
|
||||
e&&"no machine state"!=g?(this.ma("Error: "+g),"unable to verify user"==g&&(ya("user",""),this.u=null)):this.g(e+": "+g),vf(d),pf(d)?(c=tf(d),f=!0):c=!1))}f&&sf(this,c?d:null)}else 2==a&&d.clear()}else sf(this);delete this.O;delete this.P}f=Ya(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.b&&(c=xf(this,g,d,b,c));b=[d,a,c];-1!=a?rf(this,this.xc,b):this.xc(b)}};
|
||||
function xf(a,b,c,d,f){if(!b.j.ba){b.j.ba=!0;if(b.Ma){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Ma(e,d)&&e&&(t("Unable to restore state for "+b.type),a.U&&!a.Y?(c.clear(),a.f=nf,window&&window.location.reload()):a.W=!0,b.Ma(null),f=!1)}if(!d&&b.rc)for(a=b.rc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
||||
l.xc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ca=!0;this.j.ba=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(xf(this,this.b,b,c,a),this.b.Db());this.W&&(uf(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.w=0};
|
||||
function uf(a,b){if(ua("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.u||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;ta("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function kf(a,b,c){var d,f="none";if(a.w)return null;a.w--;var e=new L(a,"1.30.0"),g=new L(a,"1.30.0","validate"),h=sa();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.La&&(c&&a.b.ja(),d=a.b.La(b,c),"object"===typeof d&&e.set(a.b.id,d),c&&(a.b.j.ba=!1,!1===d&&(f=null)));for(var h=Ya(a.id),k=0;k<h.length;k++){var m=h[k];m.j.ba&&(m.La&&(d=m.La(b,c),"object"===typeof d&&e.set(m.id,
|
||||
d)),c&&(m.j.ba=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.u&&yf(a,a.u,e.toString()),wf(g)&&wf(e)||(f=null,d=h=!0)):a.f&&(d=!0,h=3==a.f),d&&e.clear(h)):f=e.toString());c&&(a.j.ba=!1,b=a.I.power)&&(b.textContent="Power");a.w=0;return f}
|
||||
null==f.A)break;while(f.A!=b.A)}g+=ka(e,24);g+=ka(k,5);h&&(g+=" "+h);c&&(g=ka(g,60)+";"+c,g=a.b.j.pb?g+("cycles="+Rc(a.b).toString()+" cs="+r(a.b.Kb)):g+(null!=d?"="+d.toString():""));return g}function cf(a,b){switch(b){case "N":a=ad(a.b);break;case "Z":a=$c(a.b);break;case "V":a=Zc(a.b);break;case "C":a=a.b.ga&65536?1:0;break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function X(a){return 6>a?"R"+a:6==a?"SP":"PC"}
|
||||
function df(a,b){var c="",d=a.b;8>b?(c=X(b),c+="="+T(a,d.i[b])):13>b?c="A"+(b-8)+"="+T(a,d.$a[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+T(a,d.Oa[b-16]):20==b&&(c="PS="+T(a,Wb(d)));c&&(c+=" ");return c}function ef(a){var b,c="";for(b=0;6>b;b++)c+=df(a,b);c=c+"\n"+(df(a,6)+df(a,7)+df(a,20));return c+=cf(a,"T")+cf(a,"N")+cf(a,"Z")+cf(a,"V")+cf(a,"C")}l.vc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function ff(a,b,c){var d=[],f=a.X(b)>>>0;for(b=0;b<a.G.length;b++){var e=a.G[b],g=e.A>>>0,h=e.Rc;if(f>=g&&f<g+h){f=na(e.sc,[f-g],a.vc);0<=f?gf(a,b,f,d):c&&(f=~f,gf(a,b,f-1,d),gf(a,b,f,d));break}}return d}function gf(a,b,c,d){var f={},e=a.G[b].sc,g=0,h=null;0<=c&&c<e.length&&(g=e[c][0],h=e[c][1]);h&&(f=a.G[b].Ja[h],h="."==h.charAt(0)?null:f.l||h);d.push(h);d.push(g);d.push(f.a);d.push(f.c)}
|
||||
function hf(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.ca[c[1]],!0;b=De(a,c[3]);return void 0!==b?(a.ca[c[1]]=b,!0):!1}a.g("invalid assignment:"+b);return!1}
|
||||
function jf(a,b,c){var d=null;if(b=W(a,b,!0)){a.X(b);var f=ff(a,b,!0);if(f.length){var e,g;f[0]&&(g="",(e=b.A-f[1])&&(g=" + "+r(e,4,!0)),e=f[0]+" ("+T(a,f[1])+")"+g,c&&a.g(e),d=e);4<f.length&&f[4]&&(g="",(e=f[5]-b.A)&&(g=" - "+r(e,4,!0)),e=f[4]+" ("+T(a,f[5])+")"+g,c&&a.g(e),d||(d=e))}else c&&a.g("no symbols")}return d}
|
||||
function Ve(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(b&&1<b.length){var f=b[1],e=f.indexOf("=");if(0<e)b=f.substr(e+1),f=f.substr(0,e);else if(2<b.length)b=b[2];else{a.g("missing value for "+b[1]);return}e=De(a,b);if(void 0===e)return;b=f.toUpperCase();switch(b){case "SP":case "R6":d.i[6]=e&65535;break;case "PC":case "R7":d.i[7]=e&65535;a.P=V(d.i[7]);break;case "N":d.pa=e?32768:
|
||||
0;break;case "Z":d.ra=e?0:1;break;case "V":d.qa=e?32768:0;break;case "C":d.ga=e?65536:0;break;default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){d.i[b]=e&65535;break}a.g("unknown register: "+f);return}K(d);a.g("updated registers:")}a.g(ef(a));c&&(a.P=V(d.i[7]),We(a,T(a,a.P.A)))}}function kf(a,b){b=ma(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(c[2]):De(a,b,!0)}
|
||||
function lf(a,b,c){var d="t"!=b;c=Fe(a,c,null,!0)||1;var f=1==c?0:1;"tc"==b&&(f=c,c=1);Aa(c,function(){return nb(a,!0)&&a.xb(f,d,!1)},function(){K(a.b);nb(a,!1)})}
|
||||
function We(a,b,c,d){if(b=W(a,b,!0)){void 0===d&&(d=1);var f=256;if(void 0!==c){d=W(a,c,!0);if(!d||d.A<b.A)return;f=d.A-b.A;if(256<f){a.g("range too large");return}d=-1}c=0;for(var e;0<f&&d--;){e=ob(a,!1)||a.aa?a.J:null;var g=null!=e?"cycles":null,h=ff(a,b),k=b.A;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.g(m)}h[3]&&(g=h[3],e=null);e=bf(a,b,g,e);a.g(e);a.P=b;f-=b.A-k;c++}}}
|
||||
function af(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.Y&&(a.g("ended assemble at "+T(a,a.W.A)),a.P=a.W,a.Y=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.xa=null;if(pb(a)&&0<b.length){a.Y&&(b="a "+T(a,a.W.A)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var g=e[0],h=g.charAt(0),k=1;k<g.length;k++){var m=g.charAt(k);if("?"==h||"r"==h||"a">m||"z"<m){e[0]=g.substr(k);e.unshift(g.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=W(a,e[1],!0);if(n)if(a.W=
|
||||
n,void 0===e[2])a.g("begin assemble at "+T(a,n.A)),a.Y=!0,K(a.b);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.dc(n,p[q],1);a.g(bf(a,a.W))}}break;case "b":a:{var z=e[0],x=e[1],A=b;if("?"==x)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");
|
||||
else{var pa=z.charAt(1);if("l"==pa){var vc;vc=0+$e(a,a.f);vc+=$e(a,a.S);(vc+=$e(a,a.D))||a.g("no breakpoints")}else if("n"==pa)a.wa=Fe(a,x),a.g("break after "+a.wa+" instruction(s)");else if(void 0===x)a.g("missing breakpoint address");else{var M=V();if("*"!=x&&(M=W(a,x,!0),!M))break a;"c"==pa?null==M.A?(Je(a),a.g("all breakpoints cleared")):Ye(a,a.f,M)||Ye(a,a.S,M)||Ye(a,a.D,M)||a.g("breakpoint missing: "+T(a,M.A)):null!=M.A&&(Te(a,M,A),"p"==pa?a.hb(a.f,M):"r"==pa?a.hb(a.S,M):"w"==pa?a.hb(a.D,M):
|
||||
a.g("unknown breakpoint command: "+pa))}}}break;case "c":a.ib&&(a.ib.value="");break;case "d":a:{var Ba,Ca=e[0],Y=e[1],qa=e[2],Ef=e[3];if("?"==Y){var Da="";for(Ba in E)a.Ia[Ba]&&(Da&&(Da+=","),Da+=Ba);Da+=",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");Da.length&&a.g("dump extension commands:\n\t"+
|
||||
Da)}else if("state"==Y){var Rd=mf(a.u,!0);"console"==qa?console.log(Rd):(a.ib&&(a.ib.value=""),a.g(Rd))}else if("symbols"==Y)for(var wc=0;wc<a.G.length;wc++){var xc=a.G[wc],Ea;for(Ea in xc.Ja)if("."!=Ea.charAt(0)){var Sd=xc.Ja[Ea].o;if(void 0!==Sd){var Td=xc.Ja[Ea].l;Td&&(Ea=Td);a.g(T(a,Sd)+" "+Ea)}}}else{if("d"==Ca){for(Ba in E)if(e[1]==Ba){var Ud=a.Ia[Ba];Ud?(e.shift(),e.shift(),Ud(e)):a.g("no dump registered for "+Y);break a}Y||(Ca=a.Qc||"db")}else a.Qc=Ca;if("dh"==Ca){var Vd=Y,Wd=qa,Xd="",Yd=
|
||||
0,U=a.oa,Z=a.O;if(Z.length){var Q=+Vd||a.Gb,ab=+Wd||10;isNaN(Q)?Q=ab:Xd="more ";Q>Z.length&&(a.g("note: only "+Z.length+" available"),Q=Z.length);U-=Q;0>U&&(null==Z[Z.length-1].A?(Q=U+Q,U=0):U+=Z.length);var yc=[];"call"==Wd&&(ab=1E5,yc=["CALL"]);for(void 0!==Vd&&a.g(Q+" instructions earlier:");0<ab&&U!=a.oa;){var Zd=Z[U++];if(null==Zd.A)break;var bb=V(Zd.A),Ff=Q--,$d=bf(a,bb,"history",Ff);(!yc.length||0<=$d.indexOf(yc[0]))&&a.g($d);bb.gc&&(U+=bb.gc,ab-=bb.gc,Q-=bb.gc);U>=Z.length&&(U=0);a.Gb=Q;Yd++;
|
||||
ab--}}Yd||(a.g("no "+Xd+"history available"),a.Gb=void 0)}else{var Ib=W(a,Y);if(Ib){var Jb=0;qa&&("l"==qa.charAt(0)&&(qa=qa.substr(1)||Ef),Jb=Fe(a,qa)>>>0,65536<Jb&&(Jb=65536));for(var cb="",Fa="dd"==Ca?4:"dw"==Ca?2:1,Kb=Fa*Jb||128,Gf=Kb+15>>4||1;Gf--&&0<Kb;){var db=0,zc=0,eb,Ac="",ae="",Y=T(a,Ib.A);for(eb=4==Fa?16:a.Z;0<eb&&0<Kb;eb--){var Lb=a.Jb(Ib,1),db=db|Lb<<(zc++<<3);zc==Fa&&(Ac+=8==a.Z?da(db,3*Fa):r(db,2*Fa),Ac+=1==Fa?9==eb?"-":" ":" ",db=zc=0);ae+=32<=Lb&&128>Lb?String.fromCharCode(Lb):".";
|
||||
Kb--}cb&&(cb+="\n");cb+=Y+" "+Ac+(0==eb?" "+ae:"")}cb&&a.g(cb);a.Bb=Ib}}}}break;case "e":if("else"==e[0])break;var Mb=1,be=255,ce=a.Jb,de=a.dc;"ew"==e[0]&&(Mb=2,be=65535,ce=a.Fa,de=a.nc);var ee=Mb<<1,fe=e[1];if(null==fe)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Nb=W(a,fe);if(Nb)for(var Ob=2;Ob<e.length;Ob++){var fb=De(a,e[Ob]);if(void 0===fb){a.g("unrecognized value: "+e[Ob]);break}fb&~be&&a.g("warning: "+r(fb)+
|
||||
" exceeds "+Mb+"-byte value");var Hf=ce.call(a,Nb);a.g("changing "+T(a,Nb.A)+" from "+r(Hf,ee,!0)+" to "+r(fb,ee,!0));de.call(a,Nb,fb,Mb)}}break;case "g":a:{var ge=e[1],If=b;if(void 0!==ge){var Bc=W(a,ge,!0);if(!Bc)break a;Te(a,Bc,If);a.hb(a.f,Bc,!0)}a.mb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Cc;if(a.j.ea)Cc="halting",a.ja();else{if(ob(a,!0))break a;Cc="already halted"}c||a.g(Cc)}break;case "i":if("if"==e[0]){var Dc;var gb=b.substr(2),gb=ma(gb);De(a,gb)?
|
||||
(c||a.g("true: "+gb),Dc=!0):(c||a.g("false: "+gb),Dc=!1);Dc||(d=!1)}break;case "k":var Jf=e[0];if("?"==e[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Ec=0,he=V(),hb=V(a.b.i[6]);for(a.g("stack trace for "+T(a,hb.A));10>Ec;){for(var ra=null,Kf=256;65536>hb.A>>>0;){he.A=a.Fa(hb,2);if(null==hb.A||!Kf--)break;for(var Lf=a,Pb=he,ie=null,ib=Pb.A,je=ib,Fc=1;6>=Fc&&ib;Fc++){if(2<Fc){Pb.A=ib;var Qb=bf(Lf,Pb);if(0<=Qb.indexOf("JSR")){var ke=Qb.indexOf(" ");
|
||||
if(ib+(Qb.indexOf(" ",ke+1)-ke-1)/2==je){ie=Qb;break}}}ib--}Pb.A=je;if(ra=ie)break}if(!ra||null==ra)break;var le=null;if("ks"==Jf){var me=ra.match(/[0-9A-F]+$/);me&&(le=jf(a,me[0]))}ra=ka(ra,50)+" ;"+(le||"stack="+T(a,hb.A));a.g(ra);Ec++}Ec||a.g("no return addresses found")}break;case "l":"ln"==e[0]&&jf(a,e[1],!0);break;case "m":a:{var aa,ba=null,B=e[1];"?"==B&&(B=void 0);if(void 0!==B){var la=0;if("all"==B)la=1878917119,B=null;else if("on"==B)ba=!0,B=null;else if("off"==B)ba=!1,B=null;else{"keys"==
|
||||
B&&(B="key");"kbd"==B&&(B="keyboard");for(aa in E)if(B==aa){la=E[aa];ba=!!(a.da&la);break}if(!la){a.g("unknown message category: "+B);break a}}if(la)if("on"==e[2])a.da|=la,ba=!0;else if("off"==e[2]&&(a.da&=~la,ba=!1,1073741824==la)){for(var Gc=0;Gc<a.za.length;Gc++)a.g(a.za[Gc]);a.za=[]}}var Mf=0,jb="";for(aa in E)if(!B||B==aa){var Nf=!!(a.da&E[aa]);if(null===ba||ba==Nf)jb&&(jb+=","),++Mf%10||(jb+="\n\t"),"key"==aa&&(aa="keys"),jb+=aa}void 0===B&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
|
||||
a.g((null!==ba?ba?"messages on: ":"messages off: ":"message categories:\n\t")+(jb||"none"));Ke(a)}break;case "p":if("print"==e[0]){kf(a,b.substr(5));break}var Of="pr"==e[0]?1:0;if(a.aa)a.g("step in progress");else{var ne=V(a.b.i[7]);a.Jb(ne);a.aa?(a.hb(a.f,ne,!0),a.mb()||(a.u&&a.u.Tb(),a.aa=0)):lf(a,Of?"tr":"t")}break;case "r":if("reset"==b){a.u&&a.u.reset();break}Ve(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var kb=+e[2];if(8==kb||10==kb||16==kb)a.Z=kb;else{a.g("invalid base: "+kb);
|
||||
break}}a.g("default base: "+a.Z);break;case "cs":var lb;void 0!==e[3]&&(lb=+e[3]);switch(e[2]){case "int":a.b.rb=lb;break;case "start":a.b.Lb=lb;break;case "stop":a.b.sb=lb;break;default:a.g("unknown cs option");break a}void 0!==lb&&Oc(a.b);a.g("checksums "+(a.b.j.pb?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&(Tc(a.b,+e[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.kb.toFixed(2)+"Mhz")+" ("+a.b.Ya+"x)");break;case "?":a.g("debugger options:");
|
||||
a.g("\tbase #\t\tset default base to #");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:e[1]&&a.g("unknown option: "+e[1])}break;case "t":lf(a,e[0],e[1]);break;case "u":We(a,e[1],e[2],8);break;case "v":if("var"==e[0]){hf(a,b.substr(3))||(d=!1);break}a.g("PDP11js version 1.30.0 ("+a.b.Uc+",RELEASE"+(rb?",TYPEDARRAYS":",LONGARRAYS")+
|
||||
")");a.g(window?window.navigator.userAgent:"");break;case "?":if(e[1]){kf(a,b.substr(1));break}var Hc="commands:",Ic;for(Ic in Me)Hc+="\n"+ka(Ic,9)+Me[Ic];od(a)||(Hc+="\nnote: history disabled if no exec breakpoints");a.g(Hc);break;default:a.g("unknown command: "+b),d=!1}}}catch(oe){a.g("debugger error: "+(oe.stack||oe.message)),d=!1}return d}function Pc(a,b,c){b=Be(a,b,c);for(var d in b)if(!af(a,b[+d]))return!1;return!0}
|
||||
Ma(function(){for(var a=C(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Ie(d);$a(d,c)}});
|
||||
function nf(a,b,c){u.call(this,"Computer",a,nf,67108864);this.j.ba=!1;of(this,b);this.S=Mc(this,"autoPower",a);this.w=0;this.aa=a.busWidth||a.buswidth;this.f=pf;this.O=null;this.G=this.Y=!1;this.url=Mc(this,"url")||"";(Math.random()+.1).toString(36);this.u=qf(this);if(this.b=Za("CPU",this.id)){this.F=Za("Debugger",this.id);this.C=new ub({id:this.tc+".bus",busWidth:this.aa},this.b,this.F);var d,f=Ya(this.id);if((this.B=Za("Panel",this.id))&&this.B.ib)for(b=0;b<f.length;b++)d=f[b],d.ma=this.B.ma,d.g=
|
||||
this.B.g,d.ib=this.B.ib;this.g("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Va&&d.Va(this,this.C,this.b,this.F);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.J=d:this.f=parseInt(d,10));var e;if(a=Mc(this,"state")||(e=!0,a.state))b=this.U=a,e||(this.G=!0,this.f=pf),this.f&&
|
||||
(this.P=new L(this,"1.30.0"),rf(this.P)?b=null:delete this.P);!b&&this.f&&(b=sf(this))&&(this.G=!0);if(b){var g=this;ta(b,null,!0,function(a,b,c){c?(g.J=null,g.G=!1,g.ma("Unable to load machine state from server (error "+c+(b?": "+ma(b):"")+")")):(g.O=b,g.Y=!0);D(g)})}else D(this);this.I.power||(this.S=!0);!c&&this.S&&tf(this,this.Mb)}else t("Unable to find CPU component")}w(nf);var pf=0;
|
||||
function of(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.Z=b}function Mc(a,b,c){var d=b.toLowerCase(),d=Ra[b]||Ra[d];void 0===d&&a.Z&&(d=a.Z[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function tf(a,b,c){for(var d=Ya(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!pb(e)){pb(e,function(){tf(a,b,c)});return}}b.call(a,c)}
|
||||
function uf(a,b){var c=new L(a,"1.30.0","validate");if(rf(c)&&vf(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.ma("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=nf.prototype;
|
||||
l.Mb=function(a){void 0===a&&(a=this.f||(this.O?1:pf));if(!this.w){this.w++;var b=!1,c=!1;this.W=!1;var d=this.P||new L(this,"1.30.0");if(-1==a)b=!0;else if(a>pf){if(rf(d,this.O)){this.D=new L(this,"1.30.0","failsafe");rf(this.D)&&(wf(this,d),a=2,xf(this.D));this.D.set("timestamp",sa());yf(this.D);var f=this.f&&!this.G;if(1==a||ua("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=vf(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?rf(d,g):("error"==
|
||||
e&&"no machine state"!=g?(this.ma("Error: "+g),"unable to verify user"==g&&(ya("user",""),this.u=null)):this.g(e+": "+g),xf(d),rf(d)?(c=vf(d),f=!0):c=!1))}f&&uf(this,c?d:null)}else 2==a&&d.clear()}else uf(this);delete this.O;delete this.P}f=Ya(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.b&&(c=zf(this,g,d,b,c));b=[d,a,c];-1!=a?tf(this,this.xc,b):this.xc(b)}};
|
||||
function zf(a,b,c,d,f){if(!b.j.ba){b.j.ba=!0;if(b.Ma){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Ma(e,d)&&e&&(t("Unable to restore state for "+b.type),a.U&&!a.Y?(c.clear(),a.f=pf,window&&window.location.reload()):a.W=!0,b.Ma(null),f=!1)}if(!d&&b.rc)for(a=b.rc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
||||
l.xc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ca=!0;this.j.ba=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(zf(this,this.b,b,c,a),this.b.Db());this.W&&(wf(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.w=0};
|
||||
function wf(a,b){if(ua("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.u||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;ta("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function mf(a,b,c){var d,f="none";if(a.w)return null;a.w--;var e=new L(a,"1.30.0"),g=new L(a,"1.30.0","validate"),h=sa();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.La&&(c&&a.b.ja(),d=a.b.La(b,c),"object"===typeof d&&e.set(a.b.id,d),c&&(a.b.j.ba=!1,!1===d&&(f=null)));for(var h=Ya(a.id),k=0;k<h.length;k++){var m=h[k];m.j.ba&&(m.La&&(d=m.La(b,c),"object"===typeof d&&e.set(m.id,
|
||||
d)),c&&(m.j.ba=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.u&&Af(a,a.u,e.toString()),yf(g)&&yf(e)||(f=null,d=h=!0)):a.f&&(d=!0,h=3==a.f),d&&e.clear(h)):f=e.toString());c&&(a.j.ba=!1,b=a.I.power)&&(b.textContent="Power");a.w=0;return f}
|
||||
l.reset=function(){this.C&&this.C.reset&&(this.F&&mb(this,0)&&this.F.message("Resetting "+this.C.type,void 0),this.C.reset());for(var a=Ya(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.C&&c.reset&&(this.F&&mb(this,0)&&this.F.message("Resetting "+c.type,void 0),c.reset())}};l.start=function(a,b){for(var c=Ya(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
||||
l.stop=function(a,b){for(var c=Ya(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
||||
l.qa=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.w||(d.j.ba?kf(d,!1,!0):rf(d,d.Mb))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.j.ba&&!d.w)if(d.f&&!d.J){var a=ua("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");kf(d,a,!0);!a&&d.U?window&&window.location.reload():d.Mb(nf)}else d.reset(),d.b&&d.b.Db()},!0;case "save":if(ga())c.parentNode.removeChild(c);else return this.I[b]=
|
||||
c,c.onclick=function(){var a=of(d,!0);if(a){var b=!!(d.f&&!d.J||d.U),c=kf(d,b);b?yf(d,a,c):d.ma("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function of(a,b){var c=a.u;c||((c=xa("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=zf(a,c))||a.ma("The user ID is invalid.")):b&&a.ma("Browser local storage is not available"));return c}
|
||||
function zf(a,b){a.u=null;b=ta(ha()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ya("user",b.data),a.u=b.data)}catch(d){t(d.message+" ("+c+")")}return a.u}function qf(a){var b=null;a.u&&(b=ha()+"/api/v1/user?req=load&user="+a.u+"&state="+Af(a,"1.30.0"));return b}
|
||||
function yf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Af(a,"1.30.0");d.data=c;b=ta(ha()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ma("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.ma(c),ya("user",""),a.u=null)}}l.Tb=function(){};
|
||||
l.va=function(a){this.b&&this.b.va(a);this.B&&this.B.va(a)};Ma(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=C(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=y(e),g=new lf(g,d,!0);lb(g,e);g.R&&rf(g,g.Mb)}});Ha.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=Za("Computer",c.id))&&c.ca&&!c.j.ba&&c.Mb(-1)}});
|
||||
Ha.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=Za("Computer",c.id))&&c.j.ba&&kf(c,!(!c.f||c.J),!0)}});function L(a,b,c){this.id=a.id;this.key=Af(a,b,c);this.F=a.F;vf(this,a.Nc)}function Af(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
||||
L.prototype={constructor:L,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){vf(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(f){}b.splice(c,
|
||||
1);c=0}}};function vf(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function wf(a){var b=!0;if(wa()){var c=JSON.stringify(a[a.id]);ya(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function tf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function pf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:wa()&&(b=xa(a.key))?(a[a.id]=b,a.b=!0):!1}var Bf=0;
|
||||
function Nf(a,b,c,d,f,e){f("Loading "+a+"...");ta(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):Of(h,a,b,c,d,f,e)})}
|
||||
function Of(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&(Xa(c,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){e=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?Pf(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function Pf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");ta(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(e);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Pf(a,b,c)}})}else c(a,null)}
|
||||
function Qf(a,b,c,d){function f(a){if(void 0===h){var b=g&&C(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ja(a))}function e(a){f("Error: "+a);k&&(--Bf||Oa(!0));k=!1}var g,h,k=!0;Bf++;Wa[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=m:p.appendChild(document.createTextNode(m));n.appendChild(p)}c||
|
||||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?Nf(c,null,null,!1,f,function(d,k){k?(Xa(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Bf||Oa(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--Bf||Oa(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?Nf(b,a,d,!0,f,m):Of(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(q){e(q.message)}return k}window.embedPDP11=function(a,b,c,d){Oa(!1);return Qf(a,b,c,d)};window.enableEvents=Oa;window.sendEvent=Pa;})();
|
||||
l.ta=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.w||(d.j.ba?mf(d,!1,!0):tf(d,d.Mb))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.j.ba&&!d.w)if(d.f&&!d.J){var a=ua("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");mf(d,a,!0);!a&&d.U?window&&window.location.reload():d.Mb(pf)}else d.reset(),d.b&&d.b.Db()},!0;case "save":if(ga())c.parentNode.removeChild(c);else return this.I[b]=
|
||||
c,c.onclick=function(){var a=qf(d,!0);if(a){var b=!!(d.f&&!d.J||d.U),c=mf(d,b);b?Af(d,a,c):d.ma("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function qf(a,b){var c=a.u;c||((c=xa("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Bf(a,c))||a.ma("The user ID is invalid.")):b&&a.ma("Browser local storage is not available"));return c}
|
||||
function Bf(a,b){a.u=null;b=ta(ha()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ya("user",b.data),a.u=b.data)}catch(d){t(d.message+" ("+c+")")}return a.u}function sf(a){var b=null;a.u&&(b=ha()+"/api/v1/user?req=load&user="+a.u+"&state="+Cf(a,"1.30.0"));return b}
|
||||
function Af(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Cf(a,"1.30.0");d.data=c;b=ta(ha()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ma("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.ma(c),ya("user",""),a.u=null)}}l.Tb=function(){};
|
||||
l.ya=function(a){this.b&&this.b.ya(a);this.B&&this.B.ya(a)};Ma(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=C(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=y(e),g=new nf(g,d,!0);$a(g,e);g.S&&tf(g,g.Mb)}});Ha.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=Za("Computer",c.id))&&c.ca&&!c.j.ba&&c.Mb(-1)}});
|
||||
Ha.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=Za("Computer",c.id))&&c.j.ba&&mf(c,!(!c.f||c.J),!0)}});function L(a,b,c){this.id=a.id;this.key=Cf(a,b,c);this.F=a.F;xf(this,a.Nc)}function Cf(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
||||
L.prototype={constructor:L,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){xf(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(f){}b.splice(c,
|
||||
1);c=0}}};function xf(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function yf(a){var b=!0;if(wa()){var c=JSON.stringify(a[a.id]);ya(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function vf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function rf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:wa()&&(b=xa(a.key))?(a[a.id]=b,a.b=!0):!1}var Df=0;
|
||||
function Pf(a,b,c,d,f,e){f("Loading "+a+"...");ta(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):Qf(h,a,b,c,d,f,e)})}
|
||||
function Qf(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&(Xa(c,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){e=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?Rf(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function Rf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");ta(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(e);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Rf(a,b,c)}})}else c(a,null)}
|
||||
function Sf(a,b,c,d){function f(a){if(void 0===h){var b=g&&C(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ja(a))}function e(a){f("Error: "+a);k&&(--Df||Oa(!0));k=!1}var g,h,k=!0;Df++;Wa[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=m:p.appendChild(document.createTextNode(m));n.appendChild(p)}c||
|
||||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?Pf(c,null,null,!1,f,function(d,k){k?(Xa(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Df||Oa(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--Df||Oa(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?Pf(b,a,d,!0,f,m):Qf(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(q){e(q.message)}return k}window.embedPDP11=function(a,b,c,d){Oa(!1);return Sf(a,b,c,d)};window.enableEvents=Oa;window.sendEvent=Pa;})();
|
||||
|
|
|
|||
|
|
@ -1,141 +1,142 @@
|
|||
(function(){var l;
|
||||
function aa(a){var b=16,c;if(a){b||(b=10);var d=a.charAt(0),f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&f&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var e,d=a;((f=b)&&10!=f?16==f?d.match(/^[0-9a-f]+$/i):8==f?d.match(/^[0-7]+$/):2==
|
||||
f&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}function n(a,b){var c="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode((a&7)+48)+c,a>>=3;return""+c}function q(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var f=a&15,f=f+(0<=f&&9>=f?48:55),d=String.fromCharCode(f)+d;a>>=4}return(c?"0x":"")+d}
|
||||
function ba(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function ca(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function da(){var a=r();return-1!==a.indexOf("pcjs.org",a.length-8)}var ea={"&":"&","<":"<",">":">",'"':""","'":"'"};function fa(a){return a.replace(/[&<>"']/g,function(a){return ea[a]})}var ga=Date.now||function(){return+new Date};
|
||||
function ha(){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 t(a,b,c,d){var f=0,e=null,g=null;if("object"==typeof resources&&(e=resources[a]))return d&&d(a,e,f),[e,f];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(e=h.responseText,200==h.status||!h.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=h.status||-1),d&&d(a,e,f))});if(b&&"object"==
|
||||
typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(e=h.responseText,200!=h.status&&(f=h.status||-1),d&&d(a,e,f),g=[e,f]);return g}function r(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||
function u(a){window&&window.alert(a)}function ia(a){var b=!1;window&&(b=window.confirm(a));return b}var ja=null;function ka(){if(null==ja){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ja=a}return ja}function la(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function ma(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function na(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var v={init:[],show:[],exit:[]},oa=!1,pa=!1,qa=!0;function ra(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function x(a){v.init.push(a)}
|
||||
function sa(a){if(qa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){u(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ta(a){!qa&&a?(qa=!0,oa&&ua("init"),pa&&ua("show")):qa=a}function ua(a){v[a]&&sa(v[a])}ra("onload",function(){oa=!0;sa(v.init)});ra("onpageshow",function(){pa=!0;sa(v.show)});ra(na("Opera")||na("iOS")?"onunload":"onbeforeunload",function(){sa(v.exit)});
|
||||
function y(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Lb=b.comment;this.ic=b;b=this.id.indexOf(".");0>b?this.zb=this.id:(this.Nb=this.id.substr(0,b),this.zb=this.id.substr(b+1));this[a]=c;this.g={ready:!1,Ya:!1,Bb:!1,L:!1,error:!1};this.ob=null;this.g.error=!1;this.u={};this.H=null;z.push(this)}var va=void 0,wa={};
|
||||
if(window){va||(va=window.location.search.substr(1));for(var xa,ya=/\+/g,za=/([^&=]+)=?([^&]*)/g;xa=za.exec(va);)wa[decodeURIComponent(xa[1].replace(ya," "))]=decodeURIComponent(xa[2].replace(ya," "))}function Aa(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
||||
function A(a,b){b||(b=y);a.prototype=Aa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ba=window.PCjs.Machines||(window.PCjs.Machines={}),z=window.PCjs.Components||(window.PCjs.Components=[])}else Ba={},z=[];function Ca(a,b,c){Ba[a]&&b&&(Ba[a][b]=c)}function B(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<z.length;b++){var d=z[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||
function Da(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<z.length;d++)if(c)c==z[d]&&(c=null);else if(!(a!=z[d].type||b&&z[d].id.indexOf(b)))return z[d]}return null}function C(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){u(c.message+" ("+a+")")}return b}
|
||||
function D(a,b){b=E(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,f=0;f<d.length;f++){var e=d[f];if(1===e.nodeType){var g=e.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pdp11-binding":(g=C(e))&&g.binding&&a.ba(g.type,g.binding,e,g.value),k=h.length}}}}
|
||||
function E(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
|
||||
y.prototype={constructor:y,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ba:function(a,b,c){switch(b){case "clear":return this.u[b]||(this.u[b]=c,c.onclick=function(a){return function(){a.u.print&&(a.u.print.value="")}}(this)),!0;case "print":return this.u[b]||(this.Cb=this.u[b]=c,c.value="",this.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.K=function(a){this.J(a,this.zb)}),!0;default:return!1}},log:function(){},J:function(){},status:function(a){this.J(this.zb+": "+a)},K:function(a,b,c){c=c||this.type;b||u((c?c+": ":"")+a)},va:function(){return this.g.L=!0},ua:function(a,b){b&&(this.g.L=!1);return!0}};function Ea(a,b){if(a.g.Bb)return a.g.Ya&&(a.g.Ya=!1),a.g.Bb=!1;if(a.g.error)return a.J(a.toString()+" error"),!1;a.g.Ya=b;return a.g.Ya}function F(a){if(!a.g.error&&(a.g.ready=!0,a.g.ready)){var b=a.ob;a.ob=null;b&&b()}}
|
||||
function Fa(a,b){b&&(a.g.ready?b():a.ob=b);return a.g.ready}var Ga="undefined"!==typeof ArrayBuffer;function Ha(a){y.call(this,"Panel",a,Ha)}A(Ha);l=Ha.prototype;l.ba=function(a,b,c,d){return this.h&&this.h.ba(a,b,c,d)||this.a&&this.a.ba(a,b,c,d)?!0:this.parent.ba.call(this,a,b,c,d)};l.Ka=function(a,b,c,d){this.h=a;this.j=b;this.a=c;this.H=d};l.va=function(a,b){b||Ia();return!0};l.ua=function(){return!0};l.Na=function(){};
|
||||
function Ia(){for(var a=!1,b=E(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=C(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<z.length;g++)if(z[g].id===e){e=z[g];break a}}e=null}e||(a=!0,e=new Ha(f));D(e,d);a&&F(e)}}x(Ia);
|
||||
function G(a,b,c){y.call(this,"Bus",a,G);this.a=b;this.H=c;this.B=a.busWidth||16;this.o=Math.pow(2,this.B);this.i=this.o-1|0;this.j=(this.B>>1)+2;10>this.j&&(this.j=10);15<this.j&&(this.j=15);this.f=1<<this.j;this.C=this.f>>2;this.h=this.f-1;this.l=this.o/this.f|0;this.I=this.l-1;this.na=[];this.w=null;this.Za=this.M;a=new I;Ja(a,this.H);this.b=Array(this.l);for(b=0;b<this.l;b++)this.b[b]=a;this.Va=Array(4);this.Va[0]=Ka;this.Va[1]=La;this.Va[2]=Ma;this.Va[3]=Na;Oa(this,this.o-8192,8192,Pa,this);
|
||||
Oa(this,57344,8192,Pa,this);F(this)}A(G);function Ka(a,b){var c=this.controller,d=c.na[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=c.na[a&-2],d[2]))return d[2](b&-2)>>8;c.J("warning: unconverted read access to byte @"+n(b));return c.Za(b,-1,1)}
|
||||
function La(a,b,c){var d=this.controller,f=d.na[a];if(f){if(f[1]){f[1](b,c);return}if(f[3]){a=f[2]?f[2](c):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);return}}else if(c&1&&(f=d.na[a&-2],f[3])){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.J("warning: unconverted write access to byte @"+n(c));d.Za(c,b,1)}
|
||||
function Ma(a,b){var c=this.controller;if(a=c.na[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.J("warning: unconverted read access to word @"+n(b));return c.Za(b,-1,0)}function Na(a,b,c){var d=this.controller;if(a=d.na[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}d.J("warning: unconverted write access to word @"+n(c));d.Za(c,b,0)}G.prototype.reset=function(){this.w&&this.w()};G.prototype.M=function(){return 0};
|
||||
G.prototype.va=function(a,b){b||this.reset();return!0};function Oa(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.j;0<g&&h<a.b.length;){var k=a.b[h],m=h*a.f,p=a.f-(e-m);p>g&&(p=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.Ua)return k.wb+=k.Ua-e,k.Ua=e,!0;if(e>=k.Ua+k.wb){p=k.size-(e-m);p>g&&(p=g);k.wb=e-k.Ua+p;e=m+a.f;g-=p;h++;continue}}return Qa(1,e,g)}e=new I(e,p,a.f,d,f);Ja(e,a.H,k);a.b[h++]=e;e=m+a.f;g-=p}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Ra[d]+" at "+q(b,8,!0)),!0):Qa(2,b,c)}
|
||||
function Sa(a){for(var b=0,c=[],d=0;d<a.l;d++){var f=a.b[d];if(f.ra||f.fc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],p=g+1;p<f.length&&f[p]===m;)p++;k[h++]=p-g;k[h++]=m;g=p}k.length<f.length&&(f=k)}c[e]=f}}return c}
|
||||
function Ta(a,b){var c=Ua,d;for(d in c)for(var f=c[d],e=a,g=+d,h=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,f=f[3]?f[3].bind(b):null,p=+d;p<=g;p+=2){var w=p&8191;void 0!==e.na[w]?u("I/O address already registered: "+q(p,8,!0)):e.na[w]=[h,k,m,f,!1]}}function Va(a,b,c){a.w=b;a.Za=c}function Qa(a,b,c){u("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}
|
||||
function J(a){y.call(this,"Device",a,J);this.f={Eb:[],ca:0,V:128,b:127,ec:0};this.h={data:0,Hc:0,Qa:20,Ac:0};this.b={s:0,Ib:-1};this.i={cb:2496,P:0,v:128,eb:0,bb:0,U:0,Vb:0,R:[],Ia:[406,406,406,406],F:[12,12,12,12]};this.l={s:129,Xa:0,G:0,ta:0,oa:0,za:0,R:[],F:[40,40,40,40],Ia:[1024,1024,512,512],cc:[157,157,29,29]};this.o={a:[8210,8208,8210,8226],F:[22,22,22,50],Ha:[19,19,19,32],yb:[815,411,815,630],R:[],A:2176,Ta:0,Ra:0,aa:[0,0,0,0,0,0,0,0],$:0,S:[4544,4544,4544,4544,4544,4544,4544,4544],Sa:[0,
|
||||
0,0,0,0,0,0,0],Ma:0,yc:[0,0,0,0,0,0,0,0],Wb:0,Xb:[0,0,0,0,0,0,0,0],u:[0,0,0,0,0,0,0,0],zc:[1,2,3,4,5,6,7,8],Yb:[0,0,0,0,0,0,0,0],ia:[0,0,0,0,0,0,0,0],vb:[0,0,0,0,0,0,0,0],wc:[0,0,0,0,0,0,0,0],xc:[0,0,0,0,0,0,0,0],uc:[0,0,0,0,0,0,0,0],vc:[0,0,0,0,0,0,0,0],ya:0,Gb:0}}A(J);
|
||||
var Wa=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
|
||||
function ba(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function ca(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function da(){var a=ea();return-1!==a.indexOf("pcjs.org",a.length-8)}var fa={"&":"&","<":"<",">":">",'"':""","'":"'"};function ga(a){return a.replace(/[&<>"']/g,function(a){return fa[a]})}var ha=Date.now||function(){return+new Date};
|
||||
function ia(){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 r(a,b,c,d){var f=0,e=null,g=null;if("object"==typeof resources&&(e=resources[a]))return d&&d(a,e,f),[e,f];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(e=h.responseText,200==h.status||!h.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=h.status||-1),d&&d(a,e,f))});if(b&&"object"==
|
||||
typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(e=h.responseText,200!=h.status&&(f=h.status||-1),d&&d(a,e,f),g=[e,f]);return g}function ea(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||
function t(a){window&&window.alert(a)}function ja(a){var b=!1;window&&(b=window.confirm(a));return b}var ka=null;function la(){if(null==ka){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ka=a}return ka}function ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function na(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function oa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var u={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 v(a){u.init.push(a)}
|
||||
function ta(a){if(ra)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ua(a){!ra&&a?(ra=!0,pa&&va("init"),qa&&va("show")):ra=a}function va(a){u[a]&&ta(u[a])}sa("onload",function(){pa=!0;ta(u.init)});sa("onpageshow",function(){qa=!0;ta(u.show)});sa(oa("Opera")||oa("iOS")?"onunload":"onbeforeunload",function(){ta(u.exit)});
|
||||
function x(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Lb=b.comment;this.ic=b;b=this.id.indexOf(".");0>b?this.zb=this.id:(this.Nb=this.id.substr(0,b),this.zb=this.id.substr(b+1));this[a]=c;this.g={ready:!1,Ya:!1,Bb:!1,L:!1,error:!1};this.ob=null;this.g.error=!1;this.u={};this.H=null;y.push(this)}var wa=void 0,xa={};
|
||||
if(window){wa||(wa=window.location.search.substr(1));for(var ya,za=/\+/g,Aa=/([^&=]+)=?([^&]*)/g;ya=Aa.exec(wa);)xa[decodeURIComponent(ya[1].replace(za," "))]=decodeURIComponent(ya[2].replace(za," "))}function Ba(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
||||
function z(a,b){b||(b=x);a.prototype=Ba(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ca=window.PCjs.Machines||(window.PCjs.Machines={}),y=window.PCjs.Components||(window.PCjs.Components=[])}else Ca={},y=[];function Da(a,b,c){Ca[a]&&b&&(Ca[a][b]=c)}function A(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<y.length;b++){var d=y[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||
function Ea(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<y.length;d++)if(c)c==y[d]&&(c=null);else if(!(a!=y[d].type||b&&y[d].id.indexOf(b)))return y[d]}return null}function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
|
||||
function C(a,b){b=D(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,f=0;f<d.length;f++){var e=d[f];if(1===e.nodeType){var g=e.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pdp11-binding":(g=B(e))&&g.binding&&a.ba(g.type,g.binding,e,g.value),k=h.length}}}}
|
||||
function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
|
||||
x.prototype={constructor:x,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ba:function(a,b,c){switch(b){case "clear":return this.u[b]||(this.u[b]=c,c.onclick=function(a){return function(){a.u.print&&(a.u.print.value="")}}(this)),!0;case "print":return this.u[b]||(this.Cb=this.u[b]=c,c.value="",this.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.K=function(a){this.J(a,this.zb)}),!0;default:return!1}},log:function(){},J:function(){},status:function(a){this.J(this.zb+": "+a)},K:function(a,b,c){c=c||this.type;b||t((c?c+": ":"")+a)},va:function(){return this.g.L=!0},ua:function(a,b){b&&(this.g.L=!1);return!0}};function Fa(a,b){if(a.g.Bb)return a.g.Ya&&(a.g.Ya=!1),a.g.Bb=!1;if(a.g.error)return a.J(a.toString()+" error"),!1;a.g.Ya=b;return a.g.Ya}function E(a){if(!a.g.error&&(a.g.ready=!0,a.g.ready)){var b=a.ob;a.ob=null;b&&b()}}
|
||||
function Ga(a,b){b&&(a.g.ready?b():a.ob=b);return a.g.ready}var Ha="undefined"!==typeof ArrayBuffer;function Ia(a){x.call(this,"Panel",a,Ia)}z(Ia);l=Ia.prototype;l.ba=function(a,b,c,d){return this.h&&this.h.ba(a,b,c,d)||this.a&&this.a.ba(a,b,c,d)?!0:this.parent.ba.call(this,a,b,c,d)};l.Ka=function(a,b,c,d){this.h=a;this.l=b;this.a=c;this.H=d};l.va=function(a,b){b||Ja();return!0};l.ua=function(){return!0};l.Na=function(){};
|
||||
function Ja(){for(var a=!1,b=D(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=B(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<y.length;g++)if(y[g].id===e){e=y[g];break a}}e=null}e||(a=!0,e=new Ia(f));C(e,d);a&&E(e)}}v(Ja);
|
||||
function F(a,b,c){x.call(this,"Bus",a,F);this.a=b;this.H=c;this.B=a.busWidth||16;this.m=Math.pow(2,this.B);this.i=this.m-1|0;this.l=(this.B>>1)+2;10>this.l&&(this.l=10);15<this.l&&(this.l=15);this.f=1<<this.l;this.D=this.f>>2;this.h=this.f-1;this.j=this.m/this.f|0;this.I=this.j-1;this.na=[];this.w=null;this.Za=this.M;a=new G;Ka(a,this.H);this.b=Array(this.j);for(b=0;b<this.j;b++)this.b[b]=a;this.Va=Array(4);this.Va[0]=La;this.Va[1]=Ma;this.Va[2]=Na;this.Va[3]=Oa;Pa(this,this.m-8192,8192,Qa,this);
|
||||
Pa(this,57344,8192,Qa,this);E(this)}z(F);function La(a,b){var c=this.controller,d=c.na[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=c.na[a&-2],d[2]))return d[2](b&-2)>>8;c.J("warning: unconverted read access to byte @"+n(b));return c.Za(b,-1,1)}
|
||||
function Ma(a,b,c){var d=this.controller,f=d.na[a];if(f){if(f[1]){f[1](b,c);return}if(f[3]){a=f[2]?f[2](c):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);return}}else if(c&1&&(f=d.na[a&-2],f[3])){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.J("warning: unconverted write access to byte @"+n(c));d.Za(c,b,1)}
|
||||
function Na(a,b){var c=this.controller;if(a=c.na[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.J("warning: unconverted read access to word @"+n(b));return c.Za(b,-1,0)}function Oa(a,b,c){var d=this.controller;if(a=d.na[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}d.J("warning: unconverted write access to word @"+n(c));d.Za(c,b,0)}F.prototype.reset=function(){this.w&&this.w()};F.prototype.M=function(){return 0};
|
||||
F.prototype.va=function(a,b){b||this.reset();return!0};function Pa(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.l;0<g&&h<a.b.length;){var k=a.b[h],m=h*a.f,p=a.f-(e-m);p>g&&(p=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.Ua)return k.wb+=k.Ua-e,k.Ua=e,!0;if(e>=k.Ua+k.wb){p=k.size-(e-m);p>g&&(p=g);k.wb=e-k.Ua+p;e=m+a.f;g-=p;h++;continue}}return Ra(1,e,g)}e=new G(e,p,a.f,d,f);Ka(e,a.H,k);a.b[h++]=e;e=m+a.f;g-=p}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Sa[d]+" at "+q(b,8,!0)),!0):Ra(2,b,c)}
|
||||
function Ta(a){for(var b=0,c=[],d=0;d<a.j;d++){var f=a.b[d];if(f.ra||f.fc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],p=g+1;p<f.length&&f[p]===m;)p++;k[h++]=p-g;k[h++]=m;g=p}k.length<f.length&&(f=k)}c[e]=f}}return c}
|
||||
function Ua(a,b){var c=Va,d;for(d in c)for(var f=c[d],e=a,g=+d,h=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,f=f[3]?f[3].bind(b):null,p=+d;p<=g;p+=2){var w=p&8191;void 0!==e.na[w]?t("I/O address already registered: "+q(p,8,!0)):e.na[w]=[h,k,m,f,!1]}}function Wa(a,b,c){a.w=b;a.Za=c}function Ra(a,b,c){t("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}
|
||||
function I(a){x.call(this,"Device",a,I);this.f={Eb:[],ca:0,V:128,b:127,ec:0};this.h={data:0,Hc:0,Qa:20,Ac:0};this.b={s:0,Ib:-1};this.i={cb:2496,P:0,v:128,eb:0,bb:0,U:0,Vb:0,R:[],Ia:[406,406,406,406],F:[12,12,12,12]};this.j={s:129,Xa:0,G:0,ta:0,oa:0,za:0,R:[],F:[40,40,40,40],Ia:[1024,1024,512,512],cc:[157,157,29,29]};this.m={a:[8210,8208,8210,8226],F:[22,22,22,50],Ha:[19,19,19,32],yb:[815,411,815,630],R:[],A:2176,Ta:0,Ra:0,aa:[0,0,0,0,0,0,0,0],$:0,S:[4544,4544,4544,4544,4544,4544,4544,4544],Sa:[0,
|
||||
0,0,0,0,0,0,0],Ma:0,yc:[0,0,0,0,0,0,0,0],Wb:0,Xb:[0,0,0,0,0,0,0,0],u:[0,0,0,0,0,0,0,0],zc:[1,2,3,4,5,6,7,8],Yb:[0,0,0,0,0,0,0,0],ia:[0,0,0,0,0,0,0,0],vb:[0,0,0,0,0,0,0,0],wc:[0,0,0,0,0,0,0,0],xc:[0,0,0,0,0,0,0,0],uc:[0,0,0,0,0,0,0,0],vc:[0,0,0,0,0,0,0,0],ya:0,Gb:0}}z(I);
|
||||
var Xa=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
|
||||
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
|
||||
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=J.prototype;l.Ka=function(a,b,c,d){this.j=b;this.a=c;this.H=d;var f=this;this.b.Ib=Xa(this.a,function(){f.b.sa|=128;f.b.sa&64&&(K(f.a,0,6,64),Ya(f.a,f.b.Ib))});Ta(b,this);Va(b,this.reset.bind(this),this.bc.bind(this));F(this)};l.nc=function(){var a=this.b.sa;this.b.sa&=-129;return a};
|
||||
l.Cc=function(a){this.b.sa=a;a&64&&Ya(this.a,this.b.Ib);this.b.sa=a&-129};l.oc=function(){var a=this.a;return a.w&62337|a.Oa<<5|a.Pa<<1};l.Dc=function(a){var b=4,c=this.a;c.w=a&=62337;c.Oa=a>>5&3;c.Pa=a>>1&15;c.pb=a&257?a&1?6:4:0;Za(c);a=c.w;a&1|256&&(b=this.a.Da&16?1:2);this.h.Qa=this.h.Qa&-8|b};l.qc=function(){return this.f.V};l.Gc=function(a){if(128==(this.f.V&192)&&a&64){var b=this;K(this.a,8,4,52,function(){b.f.V|=128;return!!(b.f.V&64)})}this.f.V=this.f.V&128|a&-129};l.pc=function(){return $a(this.a)};
|
||||
l.Ec=function(a){ab(this.a,a&-1809|$a(this.a)&1808);this.a.D|=128};
|
||||
function bb(a){var b=a.i,c,d,f,e=b.U>>13&7;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.rc,drive:e,blocksize:256,mapped:0,maxblock:b.Ia[e]*b.F[e],url:"rk"+e+".dsk"});b.v&=-129;switch(b.v>>1&7){case 0:b.cb=2496;b.P=0;b.v=128;b.U=0;break;case 1:if((b.U>>4&511)>=b.Ia[e]){b.P|=32832;b.v|=49152;break}if((b.U&15)>=b.F[e]){b.P|=32800;b.v|=49152;break}c=(b.U>>4&511)*b.F[e]+(b.U&15);d=(b.v&48)<<12|b.bb;f=65536-b.eb&65535;cb(a,b.R[e],c,d,f);return;case 2:if((b.U>>4&511)>=b.Ia[e])b.P|=32832,
|
||||
b.v|=49152;else if((b.U&15)>=b.F[e])b.P|=32800,b.v|=49152;else{c=(b.U>>4&511)*b.F[e]+(b.U&15);d=(b.v&48)<<12|b.bb;f=65536-b.eb&65535;a.sb(b.R[e],c,d,f);return}}b.cb=e<<13|b.cb&8176|b.U%9&15;K(a.a,20,5,144,function(){b.v=b.v&65534|128;return!!(b.v&64)})}l.rc=function(a,b,c,d,f){var e=this.i;e.bb=d&65535;e.v=e.v&-49|d>>12&48;e.eb=65536-f&65535;switch(a){case 1:e.P|=33024;e.v|=49152;break;case 2:e.P|=33792,e.v|=49152}K(this.a,20,5,144,function(){e.v=e.v&65534|128;return!!(e.v&64)})};
|
||||
function db(a){var b=a.l,c,d,f,e=b.s>>8&3;b.s&=-2;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.sc,drive:e,blocksize:128,mapped:1,maxblock:b.Ia[e]*b.F[e],url:"rl"+e+".dsk"});switch(b.s>>1&7){case 2:b.ta&8&&(b.s&=63);b.ta=b.cc[e]|b.za&64;break;case 3:1==(b.G&3)&&(b.za=b.G&4?b.za+(b.G&65408)&65408|b.G<<2&64:b.za-(b.G&65408)&65408|b.G<<2&64,b.G=b.za);break;case 4:b.ta=b.za;break;case 5:if(b.G>>6>=b.Ia[e]){b.s|=37888;break}if((b.G&63)>=b.F[e]){b.s|=37888;break}c=(b.G>>6)*b.F[e]+(b.G&63);
|
||||
d=(b.oa&63)<<16|b.Xa;f=65536-b.ta&65535;cb(a,b.R[e],c,d,f);return;case 6:if(b.G>>6>=b.Ia[e])b.s|=37888;else if((b.G&63)>=b.F[e])b.s|=37888;else{c=(b.G>>6)*b.F[e]+(b.G&63);d=(b.oa&63)<<16|b.Xa;f=65536-b.ta&65535;a.sb(b.R[e],c,d,f);return}}K(a.a,20,5,112,function(){b.s|=129;return!!(b.s&64)})}
|
||||
l.sc=function(a,b,c,d,f){var e=this.l;e.Xa=d&65535;e.s=e.s&-49|d>>12&48;e.oa=d>>16&63;e.G=~~(c/e.F[b.ga])<<6|c%e.F[b.ga];e.za=e.G;e.ta=65536-f&65535;switch(a){case 1:e.s|=33792;break;case 2:e.s|=40960}K(this.a,20,5,112,function(){e.s|=129;return!!(e.s&64)})};function eb(a){a=a.o;a.A=2176;a.$=0;a.S=[4544,4544,4544,4544,4544,4544,4544,4544];a.Sa=[0,0,0,0,0,0,0,0];a.Ma=a.Ta=a.Ra=a.ya=a.Gb=0}
|
||||
function fb(a,b){var c=a.o,d,f,e;c.A&=-16513;c.$&=-2049;c.S[b]&=-1153;K(a.a,-1,0,172);"undefined"===typeof c.R[b]&&(c.R[b]={cache:[],postProcess:a.tc,drive:b,blocksize:256,mapped:0,maxblock:c.yb[0]*c.Ha[0]*c.F[0],url:"rp"+b+".dsk"});switch(c.A&63){case 5:c.vb[b]=c.ia[b];c.A|=32896;c.S[b]|=32896;c.Ma|=1<<b;break;case 9:eb(a);break;case 19:c.S[b]|=64;break;case 49:if(c.ia[b]>=c.yb[0]||c.aa[b]>>8>=c.Ha[0]||(c.aa[b]&255)>=c.F[0]){c.Sa[b]|=1024;c.A|=49152;break}d=(c.ia[b]*c.Ha[0]+(c.aa[b]>>8))*c.F[0]+
|
||||
(c.aa[b]&255);f=(c.ya&63)<<16|c.Ra;e=65536-c.Ta&65535;cb(a,c.R[b],d,f,e);return;case 57:if(c.ia[b]>=c.yb[0]||c.aa[b]>>8>=c.Ha[0]||(c.aa[b]&255)>=c.F[0])c.Sa[b]|=1024,c.A|=49152;else{d=(c.ia[b]*c.Ha[0]+(c.aa[b]>>8))*c.F[0]+(c.aa[b]&255);f=(c.ya&63)<<16|c.Ra;e=65536-c.Ta&65535;a.sb(c.R[b],d,f,e);return}}K(a.a,3,5,172,function(){c.A=c.A&65534|128;c.S[b]|=128;return!!(c.A&64)})}
|
||||
l.tc=function(a,b,c,d,f){var e=this.o;e.Ta=65536-f&65535;e.Ra=d&65535;e.A=e.A&-769|d>>8&768;e.ya=d>>16&63;f=~~(c/e.F[0]);d=~~(f/e.Ha[0]);e.aa[b.ga]=f%e.Ha[0]<<8|c%e.F[0];e.vb[b.ga]=e.ia[b.ga]=d;e.Ma|=1<<b.ga;c>=b.lc-1&&(e.S[b.ga]|=1024);switch(a){case 1:e.$|=512;e.A|=49152;break;case 2:e.$|=2048,e.A|=49152}K(this.a,20,5,172,function(){e.S[b.ga]|=128;e.A=e.A&65534|128;return!!(e.A&64)})};
|
||||
function gb(a,b,c,d,f,e){var g=~~((e+c.pa-1)/c.pa),h=new XMLHttpRequest;2048>g&&d+2048<c.lc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.pa<<1)+"-"+(((d+g)*c.pa<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,p,w,H;m=h.response;if(h.status&&206!=h.status||!m)c.rb(1,c,d,f,e);else{m=new Uint8Array(m);p=d;for(H=0;H<m.length;){if("undefined"===typeof c.cache[p])for(c.cache[p]=[],w=0;w<c.pa;w++)c.cache[p][w]=H<m.length?
|
||||
m[H]&255|m[H+1]<<8&65280:0,H+=2;else H+=c.pa<<1;p++}g(c,d,f,e)}}};h.send(null)}function L(a,b,c,d,f){c&1?f?d=0<=d?d<<8&65280|b&255:b:M(a.a,4):0<=d?f&&(d=b&65280|d&255):d=b;return d}l.sb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){gb(this,this.sb,a,b,c,d);return}for(f=0;f<a.pa&&0<d;f++){if(0>hb(this.a,a.kc?ib(this.a,c):c,a.cache[b][f])){a.rb(2,a,b,c,d);return}c+=2;--d}b++}a.rb(0,a,b,c,d)};
|
||||
function cb(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.pa;e++)b.cache[c][e]=0;for(e=0;e<b.pa&&0<f;e++){g=a.a.ub(b.kc?ib(a.a,d):d);if(0>g){b.rb(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.rb(0,b,c,d,f)}l.reset=function(){this.h.Qa=this.h.Qa&-120|20;this.f.ca=0;this.f.V=128;this.b.sa=0;this.i.v=128;this.l.s=128;eb(this)};
|
||||
l.bc=function(a,b,c){var d,f,e=this.a;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.wa&65280:(a&1&&(b<<=8),e.wa=b|255,d=0);break;case 4194298:if(0>b)d=e.Fb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.Fb=d;e.ha=2}break;case 4194294:if(70!==e.Ja)return M(e,4);0>b?d=e.m:d=e.m=0;break;case 4194292:if(70!==e.Ja)return M(e,4);d=1;break;case 4194290:if(70!==e.Ja)return M(e,4);d=0;break;case 4194288:if(70!==e.Ja)return M(e,4);d=61183;break;case 4194296:0<=b&&!(a&1)&&(b&=
|
||||
255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.Ja)return M(e,4);f=a-4194272>>1;0>b?d=e.Db[f]:(d=L(this,e.Db[f],a,b,c),0<=d&&(e.Db[f]=d));break;case 4194254:return a&1?e.N>>14&1?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.xa[3]=b),d=e.xa[3]):e.N>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.xa[1]=b),d=e.xa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.N&2048?(0<=b&&(e.c[f]=b),d=e.c[f]):(0<=b&&(e.La[f]=b),d=e.La[f]),d;case 4194246:return a&
|
||||
1?(0<=b&&(e.c[7]=b),d=e.c[7]):e.N>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.xa[0]=b),d=e.xa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.N&2048?(0<=b&&(e.La[f]=b),d=e.La[f]):(0<=b&&(e.c[f]=b),d=e.c[f]),d;default:return e.m|=16,M(e,4)}break;case 4194176:f=a>>1&31;d=L(this,e.O[3][f],a,b,c);0<=d&&(e.O[3][f]=d,e.O[3][f&15]&=65295);break;case 4194112:var g=this.f;switch(a&-2){case 4194174:d=L(this,e.hb,a,b,c);0<=d&&(e.hb=d);break;case 4194172:d=e.Ca;d&65280&&(d=(d<<8|d>>8)&65535);break;
|
||||
case 4194168:0>b?d=this.h.Ac&65535:(d=L(this,this.h.data,a,b,c),0<=d&&(this.h.data=d));break;case 4194166:0<=b&&(b&127&&(g.ec=0),g.V&=-129,K(e,100,4,52,function(){g.V|=128;return!!(g.V&64)}));d=0;break;case 4194162:d=0;0>b&&(g.ca&=-129,0<g.Eb.length&&(d=g.Eb.shift(),0<g.Eb.length&&setTimeout(function(){g.ca|=128;g.ca&64&&K(e,40,4,48)},50)));break;case 4194160:0>b?d=g.ca:(d=L(this,g.ca,a,b,c),0<=d&&(g.ca=g.ca&128|d&-129));break;default:return e.m|=16,M(e,4)}break;case 4194048:f=this.i;switch(a&-2){case 4194048:d=
|
||||
L(this,f.cb,a,b,c);0<=d&&(f.cb=d);break;case 4194050:d=L(this,f.P,a,b,c);0<=d&&(f.P=d);break;case 4194052:d=L(this,f.v,a,b,c);0<=b&&0<=d&&(f.v=d&-36993|f.v&36992,f.v&1&&bb(this));break;case 4194054:d=L(this,f.eb,a,b,c);0<=d&&(f.eb=d);break;case 4194056:d=L(this,f.bb,a,b,c);0<=d&&(f.bb=d);break;case 4194058:d=L(this,f.U,a,b,c);0<=d&&(f.U=d);break;case 4194060:break;case 4194062:d=L(this,f.Vb,a,b,c);0<=d&&(f.Vb=d);break;default:return e.m|=16,M(e,4)}break;case 4193728:var h=this.o;f=h.$&7;switch(a&
|
||||
-2){case 4193728:d=L(this,h.A,a,b,c);0<=b&&0<=d&&(h.ya=h.ya&60|d>>8&3,h.A=d&17279|h.A&34944|2048,d&1&&h.A&128?fb(this,f):192==(d&192)&&K(e,0,5,172));break;case 4193730:d=L(this,h.Ta,a,b,c);0<=d&&(h.Ta=d);break;case 4193732:d=L(this,h.Ra,a,b,c);0<=d&&(h.Ra=d&65534);break;case 4193734:d=L(this,h.aa[f],a,b,c);0<=d&&(h.aa[f]=d&7967);break;case 4193736:d=L(this,h.$,a,b,c);0<=d&&(h.$=d&63|h.$&65472,d&128&&eb(this));break;case 4193738:d=h.S[f];break;case 4193740:d=h.Sa[f];break;case 4193742:d=L(this,h.Ma,
|
||||
a,b,c);0<=d&&(h.Ma=d&255);break;case 4193744:d=h.yc[f];break;case 4193746:d=L(this,h.Wb,a,b,c);0<=d&&(h.Wb=d);break;case 4193748:d=L(this,h.Xb[f],a,b,c);0<=d&&(h.Xb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.zc[f];break;case 4193754:d=L(this,h.Yb[f],a,b,c);0<=d&&(h.Yb[f]=d);break;case 4193756:d=L(this,h.ia[f],a,b,c);0<=d&&(h.ia[f]=d&511);break;case 4193758:h.vb[f]=h.ia[f];d=h.vb[f];break;case 4193760:d=h.wc[f];break;case 4193762:d=h.xc[f];break;case 4193764:d=h.uc[f];break;case 4193766:d=
|
||||
h.vc[f];break;case 4193768:d=L(this,h.ya,a,b,c);0<=d&&(h.ya=d&63,h.A=h.A&-769|(d&3)<<8);break;case 4193770:d=L(this,h.Gb,a,b,c);0<=d&&(h.Gb=d);break;default:return e.m|=16,M(e,4)}break;case 4192512:f=this.l;switch(a&-2){case 4192512:d=L(this,f.s,a,b,c);0<=b&&0<=d&&(f.oa=f.oa&60|d>>4&3,f.s=f.s&-1023|d&1022,f.s&128||db(this));break;case 4192514:d=L(this,f.Xa,a,b,c);0<=d&&(f.Xa=d&65534);break;case 4192516:d=L(this,f.G,a,b,c);0<=d&&(f.G=d);break;case 4192518:d=L(this,f.ta,a,b,c);0<=d&&(f.ta=d);break;
|
||||
case 4192520:d=L(this,f.oa,a,b,c);0<=d&&(f.oa=d&63,f.s=f.s&-49|(f.oa&3)<<4);break;default:return e.m|=16,M(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.Da:(d=L(this,e.Da,a,b,c),0<=d&&(70!==e.Ja&&(d&=-49),e.Da=d,e.qb[0]=d&4?15:7,e.qb[1]=d&2?15:7,e.qb[3]=d&1?15:7,e.pb&&(f=2,e.Da&16&&(f=1),this.h.Qa=this.h.Qa&-8|f)));break;default:return e.m|=16,M(e,4)}break;case 4191424:f=a>>1&31;d=L(this,e.O[0][f],a,b,c);0<=d&&(e.O[0][f]=d,e.O[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=L(this,e.O[1][f],
|
||||
a,b,c);0<=d&&(e.O[1][f]=d,e.O[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.Ja)return M(e,4);f=a>>2&31;d=e.fb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=L(this,d,a,b,c),0<=d&&(e.fb[f]=a&2?d<<16|e.fb[f]&65535:e.fb[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Wa[a>>1&255];else return e.m|=16,M(e,4);break;default:return e.m|=16,M(e,4)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");
|
||||
return d};var jb={},Ua=(jb[65382]=[null,null,J.prototype.nc,J.prototype.Cc],jb[65402]=[null,null,J.prototype.oc,J.prototype.Dc],jb[65396]=[null,null,J.prototype.qc,J.prototype.Gc],jb[65534]=[null,null,J.prototype.pc,J.prototype.Ec],jb);x(function(){for(var a=E(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new J(d);D(d,c)}});var kb;if(Ga){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 I(a,b,c,d,f){this.id=nb+=2;this.a=null;this.Ua=a;this.wb=b;this.size=c||0;this.type=d||ob;this.f=d==pb;this.controller=null;Ja(this);this.ra=this.fc=!1;if(c)if(f)this.controller=f,this.a=null,qb(this,f.Va);else if(Ga)this.u=new ArrayBuffer(c),this.j=new DataView(this.u,0,c),this.b=new Uint8Array(this.u,0,c),this.l=new Uint16Array(this.u,0,c>>1),this.a=new Int32Array(this.u,0,c>>2),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,Pa=4,Ra=["NONE","RAM","ROM","VID","H/W"],nb=0;
|
||||
I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Ga)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.j.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Ga)for(b=0;b<a.length;b++)this.j.setInt32(b<<2,a[b],!0);else this.a=a;return this.ra=!0}return!1},o:function(){return 255},B:function(){},w:function(a,b){return this.ab(a++,b++)|this.ab(a,b)<<8},C:function(a,b,c){this.gb(a++,
|
||||
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=I.prototype;l.Ka=function(a,b,c,d){this.l=b;this.a=c;this.H=d;var f=this;this.b.Ib=Ya(this.a,function(){f.b.sa|=128;f.b.sa&64&&(J(f.a,0,6,64),Za(f.a,f.b.Ib))});Ua(b,this);Wa(b,this.reset.bind(this),this.bc.bind(this));E(this)};l.nc=function(){var a=this.b.sa;this.b.sa&=-129;return a};
|
||||
l.Cc=function(a){this.b.sa=a;a&64&&Za(this.a,this.b.Ib);this.b.sa=a&-129};l.oc=function(){var a=this.a;return a.w&62337|a.Oa<<5|a.Pa<<1};l.Dc=function(a){var b=4,c=this.a;c.w=a&=62337;c.Oa=a>>5&3;c.Pa=a>>1&15;c.pb=a&257?a&1?6:4:0;$a(c);a=c.w;a&1|256&&(b=this.a.Da&16?1:2);this.h.Qa=this.h.Qa&-8|b};l.qc=function(){return this.f.V};l.Gc=function(a){if(128==(this.f.V&192)&&a&64){var b=this;J(this.a,8,4,52,function(){b.f.V|=128;return!!(b.f.V&64)})}this.f.V=this.f.V&128|a&-129};l.pc=function(){return ab(this.a)};
|
||||
l.Ec=function(a){bb(this.a,a&-1809|ab(this.a)&1808);this.a.C|=128};
|
||||
function cb(a){var b=a.i,c,d,f,e=b.U>>13&7;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.rc,drive:e,blocksize:256,mapped:0,maxblock:b.Ia[e]*b.F[e],url:"rk"+e+".dsk"});b.v&=-129;switch(b.v>>1&7){case 0:b.cb=2496;b.P=0;b.v=128;b.U=0;break;case 1:if((b.U>>4&511)>=b.Ia[e]){b.P|=32832;b.v|=49152;break}if((b.U&15)>=b.F[e]){b.P|=32800;b.v|=49152;break}c=(b.U>>4&511)*b.F[e]+(b.U&15);d=(b.v&48)<<12|b.bb;f=65536-b.eb&65535;db(a,b.R[e],c,d,f);return;case 2:if((b.U>>4&511)>=b.Ia[e])b.P|=32832,
|
||||
b.v|=49152;else if((b.U&15)>=b.F[e])b.P|=32800,b.v|=49152;else{c=(b.U>>4&511)*b.F[e]+(b.U&15);d=(b.v&48)<<12|b.bb;f=65536-b.eb&65535;a.sb(b.R[e],c,d,f);return}}b.cb=e<<13|b.cb&8176|b.U%9&15;J(a.a,20,5,144,function(){b.v=b.v&65534|128;return!!(b.v&64)})}l.rc=function(a,b,c,d,f){var e=this.i;e.bb=d&65535;e.v=e.v&-49|d>>12&48;e.eb=65536-f&65535;switch(a){case 1:e.P|=33024;e.v|=49152;break;case 2:e.P|=33792,e.v|=49152}J(this.a,20,5,144,function(){e.v=e.v&65534|128;return!!(e.v&64)})};
|
||||
function eb(a){var b=a.j,c,d,f,e=b.s>>8&3;b.s&=-2;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.sc,drive:e,blocksize:128,mapped:1,maxblock:b.Ia[e]*b.F[e],url:"rl"+e+".dsk"});switch(b.s>>1&7){case 2:b.ta&8&&(b.s&=63);b.ta=b.cc[e]|b.za&64;break;case 3:1==(b.G&3)&&(b.za=b.G&4?b.za+(b.G&65408)&65408|b.G<<2&64:b.za-(b.G&65408)&65408|b.G<<2&64,b.G=b.za);break;case 4:b.ta=b.za;break;case 5:if(b.G>>6>=b.Ia[e]){b.s|=37888;break}if((b.G&63)>=b.F[e]){b.s|=37888;break}c=(b.G>>6)*b.F[e]+(b.G&63);
|
||||
d=(b.oa&63)<<16|b.Xa;f=65536-b.ta&65535;db(a,b.R[e],c,d,f);return;case 6:if(b.G>>6>=b.Ia[e])b.s|=37888;else if((b.G&63)>=b.F[e])b.s|=37888;else{c=(b.G>>6)*b.F[e]+(b.G&63);d=(b.oa&63)<<16|b.Xa;f=65536-b.ta&65535;a.sb(b.R[e],c,d,f);return}}J(a.a,20,5,112,function(){b.s|=129;return!!(b.s&64)})}
|
||||
l.sc=function(a,b,c,d,f){var e=this.j;e.Xa=d&65535;e.s=e.s&-49|d>>12&48;e.oa=d>>16&63;e.G=~~(c/e.F[b.ga])<<6|c%e.F[b.ga];e.za=e.G;e.ta=65536-f&65535;switch(a){case 1:e.s|=33792;break;case 2:e.s|=40960}J(this.a,20,5,112,function(){e.s|=129;return!!(e.s&64)})};function fb(a){a=a.m;a.A=2176;a.$=0;a.S=[4544,4544,4544,4544,4544,4544,4544,4544];a.Sa=[0,0,0,0,0,0,0,0];a.Ma=a.Ta=a.Ra=a.ya=a.Gb=0}
|
||||
function gb(a,b){var c=a.m,d,f,e;c.A&=-16513;c.$&=-2049;c.S[b]&=-1153;J(a.a,-1,0,172);"undefined"===typeof c.R[b]&&(c.R[b]={cache:[],postProcess:a.tc,drive:b,blocksize:256,mapped:0,maxblock:c.yb[0]*c.Ha[0]*c.F[0],url:"rp"+b+".dsk"});switch(c.A&63){case 5:c.vb[b]=c.ia[b];c.A|=32896;c.S[b]|=32896;c.Ma|=1<<b;break;case 9:fb(a);break;case 19:c.S[b]|=64;break;case 49:if(c.ia[b]>=c.yb[0]||c.aa[b]>>8>=c.Ha[0]||(c.aa[b]&255)>=c.F[0]){c.Sa[b]|=1024;c.A|=49152;break}d=(c.ia[b]*c.Ha[0]+(c.aa[b]>>8))*c.F[0]+
|
||||
(c.aa[b]&255);f=(c.ya&63)<<16|c.Ra;e=65536-c.Ta&65535;db(a,c.R[b],d,f,e);return;case 57:if(c.ia[b]>=c.yb[0]||c.aa[b]>>8>=c.Ha[0]||(c.aa[b]&255)>=c.F[0])c.Sa[b]|=1024,c.A|=49152;else{d=(c.ia[b]*c.Ha[0]+(c.aa[b]>>8))*c.F[0]+(c.aa[b]&255);f=(c.ya&63)<<16|c.Ra;e=65536-c.Ta&65535;a.sb(c.R[b],d,f,e);return}}J(a.a,3,5,172,function(){c.A=c.A&65534|128;c.S[b]|=128;return!!(c.A&64)})}
|
||||
l.tc=function(a,b,c,d,f){var e=this.m;e.Ta=65536-f&65535;e.Ra=d&65535;e.A=e.A&-769|d>>8&768;e.ya=d>>16&63;f=~~(c/e.F[0]);d=~~(f/e.Ha[0]);e.aa[b.ga]=f%e.Ha[0]<<8|c%e.F[0];e.vb[b.ga]=e.ia[b.ga]=d;e.Ma|=1<<b.ga;c>=b.lc-1&&(e.S[b.ga]|=1024);switch(a){case 1:e.$|=512;e.A|=49152;break;case 2:e.$|=2048,e.A|=49152}J(this.a,20,5,172,function(){e.S[b.ga]|=128;e.A=e.A&65534|128;return!!(e.A&64)})};
|
||||
function hb(a,b,c,d,f,e){var g=~~((e+c.pa-1)/c.pa),h=new XMLHttpRequest;2048>g&&d+2048<c.lc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.pa<<1)+"-"+(((d+g)*c.pa<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,p,w,H;m=h.response;if(h.status&&206!=h.status||!m)c.rb(1,c,d,f,e);else{m=new Uint8Array(m);p=d;for(H=0;H<m.length;){if("undefined"===typeof c.cache[p])for(c.cache[p]=[],w=0;w<c.pa;w++)c.cache[p][w]=H<m.length?
|
||||
m[H]&255|m[H+1]<<8&65280:0,H+=2;else H+=c.pa<<1;p++}g(c,d,f,e)}}};h.send(null)}function K(a,b,c,d,f){c&1?f?d=0<=d?d<<8&65280|b&255:b:L(a.a,4):0<=d?f&&(d=b&65280|d&255):d=b;return d}l.sb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){hb(this,this.sb,a,b,c,d);return}for(f=0;f<a.pa&&0<d;f++){if(0>ib(this.a,a.kc?jb(this.a,c):c,a.cache[b][f])){a.rb(2,a,b,c,d);return}c+=2;--d}b++}a.rb(0,a,b,c,d)};
|
||||
function db(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.pa;e++)b.cache[c][e]=0;for(e=0;e<b.pa&&0<f;e++){g=a.a.ub(b.kc?jb(a.a,d):d);if(0>g){b.rb(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.rb(0,b,c,d,f)}l.reset=function(){this.h.Qa=this.h.Qa&-120|20;this.f.ca=0;this.f.V=128;this.b.sa=0;this.i.v=128;this.j.s=128;fb(this)};
|
||||
l.bc=function(a,b,c){var d,f,e=this.a;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.wa&65280:(a&1&&(b<<=8),e.wa=b|255,d=0);break;case 4194298:if(0>b)d=e.Fb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.Fb=d;e.ha=2}break;case 4194294:if(70!==e.Ja)return L(e,4);0>b?d=e.o:d=e.o=0;break;case 4194292:if(70!==e.Ja)return L(e,4);d=1;break;case 4194290:if(70!==e.Ja)return L(e,4);d=0;break;case 4194288:if(70!==e.Ja)return L(e,4);d=61183;break;case 4194296:0<=b&&!(a&1)&&(b&=
|
||||
255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.Ja)return L(e,4);f=a-4194272>>1;0>b?d=e.Db[f]:(d=K(this,e.Db[f],a,b,c),0<=d&&(e.Db[f]=d));break;case 4194254:return a&1?e.N>>14&1?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.xa[3]=b),d=e.xa[3]):e.N>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.xa[1]=b),d=e.xa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.N&2048?(0<=b&&(e.c[f]=b),d=e.c[f]):(0<=b&&(e.La[f]=b),d=e.La[f]),d;case 4194246:return a&
|
||||
1?(0<=b&&(e.c[7]=b),d=e.c[7]):e.N>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.xa[0]=b),d=e.xa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.N&2048?(0<=b&&(e.La[f]=b),d=e.La[f]):(0<=b&&(e.c[f]=b),d=e.c[f]),d;default:return e.o|=16,L(e,4)}break;case 4194176:f=a>>1&31;d=K(this,e.O[3][f],a,b,c);0<=d&&(e.O[3][f]=d,e.O[3][f&15]&=65295);break;case 4194112:var g=this.f;switch(a&-2){case 4194174:d=K(this,e.hb,a,b,c);0<=d&&(e.hb=d);break;case 4194172:d=e.Ca;d&65280&&(d=(d<<8|d>>8)&65535);break;
|
||||
case 4194168:0>b?d=this.h.Ac&65535:(d=K(this,this.h.data,a,b,c),0<=d&&(this.h.data=d));break;case 4194166:0<=b&&(b&127&&(g.ec=0),g.V&=-129,J(e,100,4,52,function(){g.V|=128;return!!(g.V&64)}));d=0;break;case 4194162:d=0;0>b&&(g.ca&=-129,0<g.Eb.length&&(d=g.Eb.shift(),0<g.Eb.length&&setTimeout(function(){g.ca|=128;g.ca&64&&J(e,40,4,48)},50)));break;case 4194160:0>b?d=g.ca:(d=K(this,g.ca,a,b,c),0<=d&&(g.ca=g.ca&128|d&-129));break;default:return e.o|=16,L(e,4)}break;case 4194048:f=this.i;switch(a&-2){case 4194048:d=
|
||||
K(this,f.cb,a,b,c);0<=d&&(f.cb=d);break;case 4194050:d=K(this,f.P,a,b,c);0<=d&&(f.P=d);break;case 4194052:d=K(this,f.v,a,b,c);0<=b&&0<=d&&(f.v=d&-36993|f.v&36992,f.v&1&&cb(this));break;case 4194054:d=K(this,f.eb,a,b,c);0<=d&&(f.eb=d);break;case 4194056:d=K(this,f.bb,a,b,c);0<=d&&(f.bb=d);break;case 4194058:d=K(this,f.U,a,b,c);0<=d&&(f.U=d);break;case 4194060:break;case 4194062:d=K(this,f.Vb,a,b,c);0<=d&&(f.Vb=d);break;default:return e.o|=16,L(e,4)}break;case 4193728:var h=this.m;f=h.$&7;switch(a&
|
||||
-2){case 4193728:d=K(this,h.A,a,b,c);0<=b&&0<=d&&(h.ya=h.ya&60|d>>8&3,h.A=d&17279|h.A&34944|2048,d&1&&h.A&128?gb(this,f):192==(d&192)&&J(e,0,5,172));break;case 4193730:d=K(this,h.Ta,a,b,c);0<=d&&(h.Ta=d);break;case 4193732:d=K(this,h.Ra,a,b,c);0<=d&&(h.Ra=d&65534);break;case 4193734:d=K(this,h.aa[f],a,b,c);0<=d&&(h.aa[f]=d&7967);break;case 4193736:d=K(this,h.$,a,b,c);0<=d&&(h.$=d&63|h.$&65472,d&128&&fb(this));break;case 4193738:d=h.S[f];break;case 4193740:d=h.Sa[f];break;case 4193742:d=K(this,h.Ma,
|
||||
a,b,c);0<=d&&(h.Ma=d&255);break;case 4193744:d=h.yc[f];break;case 4193746:d=K(this,h.Wb,a,b,c);0<=d&&(h.Wb=d);break;case 4193748:d=K(this,h.Xb[f],a,b,c);0<=d&&(h.Xb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.zc[f];break;case 4193754:d=K(this,h.Yb[f],a,b,c);0<=d&&(h.Yb[f]=d);break;case 4193756:d=K(this,h.ia[f],a,b,c);0<=d&&(h.ia[f]=d&511);break;case 4193758:h.vb[f]=h.ia[f];d=h.vb[f];break;case 4193760:d=h.wc[f];break;case 4193762:d=h.xc[f];break;case 4193764:d=h.uc[f];break;case 4193766:d=
|
||||
h.vc[f];break;case 4193768:d=K(this,h.ya,a,b,c);0<=d&&(h.ya=d&63,h.A=h.A&-769|(d&3)<<8);break;case 4193770:d=K(this,h.Gb,a,b,c);0<=d&&(h.Gb=d);break;default:return e.o|=16,L(e,4)}break;case 4192512:f=this.j;switch(a&-2){case 4192512:d=K(this,f.s,a,b,c);0<=b&&0<=d&&(f.oa=f.oa&60|d>>4&3,f.s=f.s&-1023|d&1022,f.s&128||eb(this));break;case 4192514:d=K(this,f.Xa,a,b,c);0<=d&&(f.Xa=d&65534);break;case 4192516:d=K(this,f.G,a,b,c);0<=d&&(f.G=d);break;case 4192518:d=K(this,f.ta,a,b,c);0<=d&&(f.ta=d);break;
|
||||
case 4192520:d=K(this,f.oa,a,b,c);0<=d&&(f.oa=d&63,f.s=f.s&-49|(f.oa&3)<<4);break;default:return e.o|=16,L(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.Da:(d=K(this,e.Da,a,b,c),0<=d&&(70!==e.Ja&&(d&=-49),e.Da=d,e.qb[0]=d&4?15:7,e.qb[1]=d&2?15:7,e.qb[3]=d&1?15:7,e.pb&&(f=2,e.Da&16&&(f=1),this.h.Qa=this.h.Qa&-8|f)));break;default:return e.o|=16,L(e,4)}break;case 4191424:f=a>>1&31;d=K(this,e.O[0][f],a,b,c);0<=d&&(e.O[0][f]=d,e.O[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=K(this,e.O[1][f],
|
||||
a,b,c);0<=d&&(e.O[1][f]=d,e.O[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.Ja)return L(e,4);f=a>>2&31;d=e.fb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=K(this,d,a,b,c),0<=d&&(e.fb[f]=a&2?d<<16|e.fb[f]&65535:e.fb[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Xa[a>>1&255];else return e.o|=16,L(e,4);break;default:return e.o|=16,L(e,4)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");
|
||||
return d};var kb={},Va=(kb[65382]=[null,null,I.prototype.nc,I.prototype.Cc],kb[65402]=[null,null,I.prototype.oc,I.prototype.Dc],kb[65396]=[null,null,I.prototype.qc,I.prototype.Gc],kb[65534]=[null,null,I.prototype.pc,I.prototype.Ec],kb);v(function(){for(var a=D(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new I(d);C(d,c)}});var lb;if(Ha){var mb=new ArrayBuffer(2);(new DataView(mb)).setUint16(0,256,!0);lb=256===(new Uint16Array(mb))[0]}else lb=!1;var nb=lb;
|
||||
function G(a,b,c,d,f){this.id=ob+=2;this.a=null;this.Ua=a;this.wb=b;this.size=c||0;this.type=d||pb;this.f=d==qb;this.controller=null;Ka(this);this.ra=this.fc=!1;if(c)if(f)this.controller=f,this.a=null,rb(this,f.Va);else if(Ha)this.u=new ArrayBuffer(c),this.l=new DataView(this.u,0,c),this.b=new Uint8Array(this.u,0,c),this.j=new Uint16Array(this.u,0,c>>1),this.a=new Int32Array(this.u,0,c>>2),rb(this,nb?sb:tb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;rb(this,ub)}else rb(this)}
|
||||
var pb=0,qb=2,Qa=4,Sa=["NONE","RAM","ROM","VID","H/W"],ob=0;
|
||||
G.prototype={constructor:G,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Ha)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.l.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(Ha)for(b=0;b<a.length;b++)this.l.setInt32(b<<2,a[b],!0);else this.a=a;return this.ra=!0}return!1},m:function(){return 255},B:function(){},w:function(a,b){return this.ab(a++,b++)|this.ab(a,b)<<8},D:function(a,b,c){this.gb(a++,
|
||||
b&255,c++);this.gb(a,b>>8,c)},X:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ka:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},Ba:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.ra=!0},Pa:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.ra=!0},M:function(a,b){return this.T(a,b)},Z:function(a,b){return this.fa(a,
|
||||
b)},ma:function(a,b,c){this.f||this.ac(a,b,c)},Fa:function(a,b,c){this.f||this.Ga(a,b,c)},I:function(a){return this.b[a]},W:function(a){return this.b[a]},Y:function(a){return this.j.getUint16(a,!0)},ja:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.l[a>>1]},la:function(a,b){this.b[a]=b;this.ra=!0},Aa:function(a,b){this.b[a]=b;this.ra=!0},Ea:function(a,b){this.j.setUint16(a,b,!0);this.ra=!0},Oa:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.l[a>>1]=b;this.ra=!0}};
|
||||
function Ja(a,b,c){a.H=b;a.h=a.i=0;c&&((a.h=c.h)&&ub(a,vb,!1),(a.i=c.i)&&wb(a,vb,!1))}function wb(a,b,c){c&&a.i||(a.gb=!a.f&&b[1]||a.B,a.Fc=!a.f&&b[3]||a.C);if(c||void 0===c)a.ac=b[1]||a.B,a.Ga=b[3]||a.C}function ub(a,b,c){c&&a.h||(a.ab=b[0]||a.o,a.tb=b[2]||a.w);if(c||void 0===c)a.T=b[0]||a.o,a.fa=b[2]||a.w}function qb(a,b){b||(b=xb);ub(a,b,void 0);wb(a,b,void 0)}var xb=[],tb=[I.prototype.X,I.prototype.Ba,I.prototype.ka,I.prototype.Pa],vb=[I.prototype.M,I.prototype.ma,I.prototype.Z,I.prototype.Fa];
|
||||
if(Ga)var sb=[I.prototype.I,I.prototype.la,I.prototype.Y,I.prototype.Ea],rb=[I.prototype.W,I.prototype.Aa,I.prototype.ja,I.prototype.Oa];function yb(a,b){y.call(this,"CPU",a,yb);var c=a.multiplier||1;this.lb=a.cycles||b;this.Z=c;this.Ab=Math.round(this.lb/1E4)/100;this.ka=this.Ab*this.Z;this.g.ea=!1;this.g.Zb=!1;this.g.Wa=a.autoStart;this.g.Ob=!1;this.g.nb=!1;this.jb=this.la=0;this.kb=a.csStart;this.Ba=a.csInterval;this.Ea=a.csStop;this.I=[];this.Sb=this.Hb.bind(this);F(this)}A(yb);
|
||||
var zb=["power","reset"];l=yb.prototype;l.Ka=function(a,b,c,d){this.h=a;this.j=b;this.H=d;for(b=0;b<zb.length;b++)(c=this.u[zb[b]])&&this.h.ba(null,zb[b],c);this.Aa=null;a=Ab(a,"autoStart");null!=a&&(this.g.Wa="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.va=function(a,b){if(!b){if(a&&this.restore){Bb(this);if(!this.restore(a))return!1;Cb(this)}else this.reset();this.J("No debugger detected")}Db(this);return!0};
|
||||
l.ua=function(a){return a?this.save():!0};l.Wa=function(){return this.g.Wa||void 0===this.u.run?(this.Hb(),!0):!1};l.Tb=function(){return 0};function Cb(a){void 0===a.kb&&(a.kb=0);void 0===a.Ba&&(a.Ba=-1);void 0===a.Ea&&(a.Ea=-1);a.g.nb=0<=a.kb&&0<a.Ba;a.g.nb&&(a.jb=0,a.la=a.kb-a.fa)}
|
||||
function N(a,b,c,d){if(a.u[b]){void 0===c&&(a.g.error=!0,a.K("Value for "+b+" is invalid"),O(a));var f=a.H&&a.H.b||8;c=!a.g.ea||a.g.Ob?8==f?n(c,d):q(c,d):"--------".substr(0,d||4);a.u[b].textContent!=c&&(a.u[b].textContent=c)}}
|
||||
l.ba=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.u[b]=c;a=!0;break;case "run":this.u[b]=c;c.onclick=function(){var a;if(a=d.h)if(a=d.h,a.g.L)a=!0;else{var b=null,c,h=B(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.g.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.g.L);c++);c==h.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.g.ready?"powered yet":"ready yet"+(b.ob?" (waiting for notification)":""))+".");a=!1}a&&(d.g.ea?O(d):d.Hb())};a=!0;
|
||||
break;case "speed":this.u[b]=c;a=!0;break;case "setSpeed":this.u[b]=c,c.onclick=function(){Eb(d,d.Z<<1)},c.textContent=this.ka.toFixed(2)+"Mhz",a=!0}return a};function Fb(a,b,c){a.fa+=b;c&&(a.Y=a.a=0)}function Gb(a,b){var c=1;b&&1<a.Z&&a.W&&(c=a.W/a.Ab);a.Qb=Math.round(1E3/30);a.mb=Math.floor(a.lb/30*c);b||(a.Fa=a.mb);a.xb=0}function Hb(a){return a.fa+a.T+a.Y-a.a}function Bb(a){a.W=0;a.Rb=0;a.fa=a.T=a.Y=a.a=0;Cb(a);Eb(a,1)}
|
||||
function Eb(a,b){if(void 0!==b&&(.8>a.W/a.ka&&(b=1),a.Z=b,b=a.Ab*a.Z,a.ka!=b)){a.ka=b;b=a.ka.toFixed(2)+"Mhz";var c=a.u.setSpeed;c&&(c.textContent=b);a.J("target speed: "+b)}Fb(a,a.T);a.T=0;a.M=ga();a.X=0;Gb(a)}function Xa(a,b){var c=a.I.length;a.I.push([-1,b]);return c}function Ya(a,b){var c;0<=b&&b<a.I.length&&0>a.I[b][0]&&(c=a.lb*a.Z/1E3*(1E3/60),a.I[b][0]=c)}
|
||||
l.Hb=function(){if(Ea(this,!0)){if(!this.g.ea){Eb(this);this.h&&this.h.start(this.M,Hb(this));this.g.ea=!0;this.g.Zb=!0;this.Aa&&this.Aa.start();var a=this.u.run;a&&(a.textContent="Halt");this.h&&this.h.Na(!0)}this.xb>=this.lb&&Gb(this,!0);this.Ga=0;this.ib=ga();this.X&&(a=this.ib-this.X,a>this.Qb&&(this.M+=a,this.M>this.ib&&(this.M=this.ib)));try{do{for(var b,c=this.g.nb?1:this.mb,d=this.I.length-1;0<=d;d--){var f=this.I[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.$b(b)}catch(m){if("number"!=typeof m)throw m;
|
||||
}for(var e=this.Y-this.a,a=e,g=this.I.length-1;0<=g;g--){var h=this.I[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Ga+=e;this.T+=e;Fb(this,0,!0);a=e;if(this.g.nb){var k=!1;this.jb=this.jb+this.Tb()|0;this.la-=a;0>=this.la&&(this.la+=this.Ba,k=!0);0<=this.Ea&&this.Ea<=Hb(this)&&(this.Ba=this.Ea=-1,Cb(this),O(this),k=!0);k&&this.J(Hb(this)+" cycles: checksum="+q(this.jb))}this.Fa-=e;if(0>=this.Fa){this.Fa+=this.mb;15<=++this.Rb&&(this.h&&this.h.Na(),this.Rb=0);break}}while(this.g.ea)}catch(m){O(this);
|
||||
Db(this);this.h&&this.h.stop(ga(),Hb(this));Ea(this,!1);b=m.stack||m.message;this.g.error=!0;this.K(b);return}b=setTimeout;c=this.Sb;this.X=ga();d=this.Qb;this.Ga&&(d=Math.round(d*this.Ga/this.mb));d-=this.X-this.ib;if(f=this.X-this.M)this.W=Math.round(this.T/(10*f))/100,864E5<=f&&(this.fa=0,Eb(this));if(0>d||this.W<this.ka)-1E3>d&&(this.M-=d),d=0;this.xb+=this.Ga;this.X+=d;b(c,d)}else Db(this),this.h&&this.h.stop(ga(),Hb(this))};l.$b=function(){return 0};
|
||||
function O(a){a.g.Ya&&(a.g.Bb=!0);a.Y-=a.a;a.a=0;Fb(a,a.T);a.T=0;if(a.g.ea){a.g.ea=!1;a.Aa&&a.Aa.stop();var b=a.u.run;b&&(b.textContent="Run")}a.g.complete=void 0}function Db(a){a.h&&a.h.Na(void 0)}
|
||||
function Ib(a){this.jc=a.resetAddr||0;yb.call(this,a,1E6);this.Kb=0;this.decode=Jb.bind(this);this.C=65536;this.l=32768;this.o=65535;this.i=32768;this.c=[0,0,0,0,0,0,0,this.jc];this.La=[0,0,0,0,0,0];this.xa=[0,0,0,0];this.Pa=this.B=0;this.O=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.fb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.Db=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.b=-1;this.D=0;this.Ja=70;this.ma=-1;this.Ub=0;Kb(this);this.g.complete=this.g.dc=!1}A(Ib,yb);l=Ib.prototype;l.reset=function(){this.g.ea&&O(this);Kb(this);Bb(this);this.g.error=!1;this.parent.reset.call(this)};
|
||||
function Kb(a){a.wa=255;a.m=0;a.Fb=0;a.w=0;a.Ca=0;a.hb=0;a.Da=0;a.pb=0;a.Oa=0;a.qb=[7,7,7,7];a.f=[];a.ha=2;Za(a)}function Za(a){a.pb?(a.Jb=65536,a.ja=a.hc,a.tb=a.da):(a.Jb=0,a.ja=a.gc,a.tb=a.ub)}l.Tb=function(){return 0};l.save=function(){var a=new P(this);a.set(0,[]);a.set(1,[this.fa,this.Z]);a.set(2,Sa(this.j));return a.data()};
|
||||
l.restore=function(a){var b=a[1];this.fa=b[1];Eb(this,b[3]);a:{b=this.j;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.C){for(var e=0,g=Array(b.C),h=0;h<f.length-1;)for(var k=f[h++],m=f[h++];k--;)g[e++]=m;f=g}e=b.b[d];if(!e||!e.restore(f)){u("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
b)},ma:function(a,b,c){this.f||this.ac(a,b,c)},Fa:function(a,b,c){this.f||this.Ga(a,b,c)},I:function(a){return this.b[a]},W:function(a){return this.b[a]},Y:function(a){return this.l.getUint16(a,!0)},ja:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.j[a>>1]},la:function(a,b){this.b[a]=b;this.ra=!0},Aa:function(a,b){this.b[a]=b;this.ra=!0},Ea:function(a,b){this.l.setUint16(a,b,!0);this.ra=!0},Oa:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.j[a>>1]=b;this.ra=!0}};
|
||||
function Ka(a,b,c){a.H=b;a.h=a.i=0;c&&((a.h=c.h)&&vb(a,wb,!1),(a.i=c.i)&&xb(a,wb,!1))}function xb(a,b,c){c&&a.i||(a.gb=!a.f&&b[1]||a.B,a.Fc=!a.f&&b[3]||a.D);if(c||void 0===c)a.ac=b[1]||a.B,a.Ga=b[3]||a.D}function vb(a,b,c){c&&a.h||(a.ab=b[0]||a.m,a.tb=b[2]||a.w);if(c||void 0===c)a.T=b[0]||a.m,a.fa=b[2]||a.w}function rb(a,b){b||(b=yb);vb(a,b,void 0);xb(a,b,void 0)}var yb=[],ub=[G.prototype.X,G.prototype.Ba,G.prototype.ka,G.prototype.Pa],wb=[G.prototype.M,G.prototype.ma,G.prototype.Z,G.prototype.Fa];
|
||||
if(Ha)var tb=[G.prototype.I,G.prototype.la,G.prototype.Y,G.prototype.Ea],sb=[G.prototype.W,G.prototype.Aa,G.prototype.ja,G.prototype.Oa];function zb(a,b){x.call(this,"CPU",a,zb);var c=a.multiplier||1;this.lb=a.cycles||b;this.Z=c;this.Ab=Math.round(this.lb/1E4)/100;this.ka=this.Ab*this.Z;this.g.ea=!1;this.g.Zb=!1;this.g.Wa=a.autoStart;this.g.Ob=!1;this.g.nb=!1;this.jb=this.la=0;this.kb=a.csStart;this.Ba=a.csInterval;this.Ea=a.csStop;this.I=[];this.Sb=this.Hb.bind(this);E(this)}z(zb);
|
||||
var Ab=["power","reset"];l=zb.prototype;l.Ka=function(a,b,c,d){this.h=a;this.l=b;this.H=d;for(b=0;b<Ab.length;b++)(c=this.u[Ab[b]])&&this.h.ba(null,Ab[b],c);this.Aa=null;a=Bb(a,"autoStart");null!=a&&(this.g.Wa="true"==a?!0:"false"==a?!1:!!a);E(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.va=function(a,b){if(!b){if(a&&this.restore){Cb(this);if(!this.restore(a))return!1;Db(this)}else this.reset();this.J("No debugger detected")}Eb(this);return!0};
|
||||
l.ua=function(a){return a?this.save():!0};l.Wa=function(){return this.g.Wa||void 0===this.u.run?(this.Hb(),!0):!1};l.Tb=function(){return 0};function Db(a){void 0===a.kb&&(a.kb=0);void 0===a.Ba&&(a.Ba=-1);void 0===a.Ea&&(a.Ea=-1);a.g.nb=0<=a.kb&&0<a.Ba;a.g.nb&&(a.jb=0,a.la=a.kb-a.fa)}
|
||||
function M(a,b,c,d){if(a.u[b]){void 0===c&&(a.g.error=!0,a.K("Value for "+b+" is invalid"),N(a));var f=a.H&&a.H.b||8;c=!a.g.ea||a.g.Ob?8==f?n(c,d):q(c,d):"--------".substr(0,d||4);a.u[b].textContent!=c&&(a.u[b].textContent=c)}}
|
||||
l.ba=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.u[b]=c;a=!0;break;case "run":this.u[b]=c;c.onclick=function(){var a;if(a=d.h)if(a=d.h,a.g.L)a=!0;else{var b=null,c,h=A(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.g.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.g.L);c++);c==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.g.ready?"powered yet":"ready yet"+(b.ob?" (waiting for notification)":""))+".");a=!1}a&&(d.g.ea?N(d):d.Hb())};a=!0;
|
||||
break;case "speed":this.u[b]=c;a=!0;break;case "setSpeed":this.u[b]=c,c.onclick=function(){Fb(d,d.Z<<1)},c.textContent=this.ka.toFixed(2)+"Mhz",a=!0}return a};function Gb(a,b,c){a.fa+=b;c&&(a.Y=a.a=0)}function Hb(a,b){var c=1;b&&1<a.Z&&a.W&&(c=a.W/a.Ab);a.Qb=Math.round(1E3/30);a.mb=Math.floor(a.lb/30*c);b||(a.Fa=a.mb);a.xb=0}function Ib(a){return a.fa+a.T+a.Y-a.a}function Cb(a){a.W=0;a.Rb=0;a.fa=a.T=a.Y=a.a=0;Db(a);Fb(a,1)}
|
||||
function Fb(a,b){if(void 0!==b&&(.8>a.W/a.ka&&(b=1),a.Z=b,b=a.Ab*a.Z,a.ka!=b)){a.ka=b;b=a.ka.toFixed(2)+"Mhz";var c=a.u.setSpeed;c&&(c.textContent=b);a.J("target speed: "+b)}Gb(a,a.T);a.T=0;a.M=ha();a.X=0;Hb(a)}function Ya(a,b){var c=a.I.length;a.I.push([-1,b]);return c}function Za(a,b){var c;0<=b&&b<a.I.length&&0>a.I[b][0]&&(c=a.lb*a.Z/1E3*(1E3/60),a.I[b][0]=c)}
|
||||
l.Hb=function(){if(Fa(this,!0)){if(!this.g.ea){Fb(this);this.h&&this.h.start(this.M,Ib(this));this.g.ea=!0;this.g.Zb=!0;this.Aa&&this.Aa.start();var a=this.u.run;a&&(a.textContent="Halt");this.h&&this.h.Na(!0)}this.xb>=this.lb&&Hb(this,!0);this.Ga=0;this.ib=ha();this.X&&(a=this.ib-this.X,a>this.Qb&&(this.M+=a,this.M>this.ib&&(this.M=this.ib)));try{do{for(var b,c=this.g.nb?1:this.mb,d=this.I.length-1;0<=d;d--){var f=this.I[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.$b(b)}catch(m){if("number"!=typeof m)throw m;
|
||||
}for(var e=this.Y-this.a,a=e,g=this.I.length-1;0<=g;g--){var h=this.I[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Ga+=e;this.T+=e;Gb(this,0,!0);a=e;if(this.g.nb){var k=!1;this.jb=this.jb+this.Tb()|0;this.la-=a;0>=this.la&&(this.la+=this.Ba,k=!0);0<=this.Ea&&this.Ea<=Ib(this)&&(this.Ba=this.Ea=-1,Db(this),N(this),k=!0);k&&this.J(Ib(this)+" cycles: checksum="+q(this.jb))}this.Fa-=e;if(0>=this.Fa){this.Fa+=this.mb;15<=++this.Rb&&(this.h&&this.h.Na(),this.Rb=0);break}}while(this.g.ea)}catch(m){N(this);
|
||||
Eb(this);this.h&&this.h.stop(ha(),Ib(this));Fa(this,!1);b=m.stack||m.message;this.g.error=!0;this.K(b);return}b=setTimeout;c=this.Sb;this.X=ha();d=this.Qb;this.Ga&&(d=Math.round(d*this.Ga/this.mb));d-=this.X-this.ib;if(f=this.X-this.M)this.W=Math.round(this.T/(10*f))/100,864E5<=f&&(this.fa=0,Fb(this));if(0>d||this.W<this.ka)-1E3>d&&(this.M-=d),d=0;this.xb+=this.Ga;this.X+=d;b(c,d)}else Eb(this),this.h&&this.h.stop(ha(),Ib(this))};l.$b=function(){return 0};
|
||||
function N(a){a.g.Ya&&(a.g.Bb=!0);a.Y-=a.a;a.a=0;Gb(a,a.T);a.T=0;if(a.g.ea){a.g.ea=!1;a.Aa&&a.Aa.stop();var b=a.u.run;b&&(b.textContent="Run")}a.g.complete=void 0}function Eb(a){a.h&&a.h.Na(void 0)}
|
||||
function Jb(a){this.jc=a.resetAddr||0;zb.call(this,a,1E6);this.Kb=0;this.decode=Kb.bind(this);this.D=65536;this.j=32768;this.m=65535;this.i=32768;this.c=[0,0,0,0,0,0,0,this.jc];this.La=[0,0,0,0,0,0];this.xa=[0,0,0,0];this.Pa=this.B=0;this.O=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.fb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.Db=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.b=-1;this.C=0;this.Ja=70;this.ma=-1;this.Ub=0;Lb(this);this.g.complete=this.g.dc=!1}z(Jb,zb);l=Jb.prototype;l.reset=function(){this.g.ea&&N(this);Lb(this);Cb(this);this.g.error=!1;this.parent.reset.call(this)};
|
||||
function Lb(a){a.wa=255;a.o=0;a.Fb=0;a.w=0;a.Ca=0;a.hb=0;a.Da=0;a.pb=0;a.Oa=0;a.qb=[7,7,7,7];a.f=[];a.ha=2;$a(a)}function $a(a){a.pb?(a.Jb=65536,a.ja=a.hc,a.tb=a.da):(a.Jb=0,a.ja=a.gc,a.tb=a.ub)}l.Tb=function(){return 0};l.save=function(){var a=new O(this);a.set(0,[]);a.set(1,[this.fa,this.Z]);a.set(2,Ta(this.l));return a.data()};
|
||||
l.restore=function(a){var b=a[1];this.fa=b[1];Fb(this,b[3]);a:{b=this.l;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.D){for(var e=0,g=Array(b.D),h=0;h<f.length-1;)for(var k=f[h++],m=f[h++];k--;)g[e++]=m;f=g}e=b.b[d];if(!e||!e.restore(f)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
l.ba=function(a,b,c){switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.u[b]=c;this.Kb++;a=!0;break;default:a=this.parent.ba.call(this,a,b,c)}return a};
|
||||
l.Na=function(a){if(this.Kb&&(a||!this.g.ea||this.g.Ob)){for(a=0;a<this.c.length;a++)N(this,"R"+a,this.c[a]);a=$a(this);N(this,"PS",a);N(this,"NF",a&8?1:0,1);N(this,"ZF",a&4?1:0,1);N(this,"VF",a&2?1:0,1);N(this,"CF",a&1?1:0,1)}if(a=this.u.speed)a.textContent=this.g.ea&&this.W?this.W.toFixed(2)+"Mhz":"Stopped"};
|
||||
function K(a,b,c,d,f){for(var e=a.f.length;0<e--;)if(a.f[e].Bc===d){0<e&&(a.f[e-1].qa+=a.f[e].qa);a.f.splice(e,1);break}if(0<=b){2===a.Ub&&(b=0,a.Ub=0,setTimeout(a.Sb,0));for(e=a.f.length;0<e--;){if(a.f[e].qa>b){a.f[e].qa-=b;break}b-=a.f[e].qa}a.f.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.ha=2}function $a(a){return a.N=a.N&63728|(a.i&32768?8:0)|(a.o&65535?0:4)|(a.l&32768?2:0)|(a.C&65536?1:0)}
|
||||
function ab(a,b){a.i=b<<12;a.o=~b&4;a.l=b<<14;a.C=b<<16;if((b^a.N)&2048)for(var c=a.La.length;0<=--c;){var d=a.c[c];a.c[c]=a.La[c];a.La[c]=d}a.B=b>>14&3;c=a.N>>14&3;a.B!=c&&(a.xa[c]=a.c[6],a.c[6]=a.xa[a.B]);a.ha=2;a.N=b}function Lb(a,b){a.D&128||(a.i=a.o=a.C=b,a.l=0)}function Q(a,b){a.D&128||(a.i=a.o=b,a.l=0)}function Mb(a,b,c,d){a.D&128||(a.i=a.o=a.C=b,a.l=(c^d)&(d^b))}
|
||||
function M(a,b){var c=!1;0>a.ma?a.ma=$a(a):a.B||(b=4,c=!0);a.w&57344||(a.Ca=63222,a.hb=b);a.B=0;var d=a.da(b|65536),f=a.da(b+2&65535|65536);ab(a,f&53247|a.ma>>2&12288);c&&(a.m|=4,a.c[6]=4);Nb(a,a.ma);Nb(a,a.c[7]);a.c[7]=d;a.D&=-113;a.ma=-1;throw b;}function ib(a,b){var c=b>>13&31;31>c?a.Da&32&&(b=a.fb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
|
||||
function Ob(a,b,c){var d,f,e,g=0;if(c&a.pb){d=b>>13&a.qb[a.B];f=a.O[a.B][d];e=(a.O[a.B][d+16]<<6)+(b&8191)&4194303;a.Da&16?3932160<=e&&4186112>e&&(e=ib(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.m|=32,M(a,4)),e&1&&!(c&1)&&(a.m|=64,M(a,4)));switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?192:128;break;default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&8128)&&(g|=
|
||||
16384));a.O[a.B][d]=f;if(4194170!==e||a.B)a.Oa=a.B,a.Pa=d;g&&(g&57344&&(0<=a.ma&&(g|=128),a.w&57344||(a.w=a.w|g|a.Oa<<5|a.Pa<<1),M(a,168)),a.w&61440||!(4191360>e||4194239<e)||(a.w|=4096,a.w&512&&(a.D|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.m|=64,M(a,4));return e}l.ub=function(a){if(4194304<=a)a=this.c[a-4194304];else if(0<=a){var b=this.j,c=a&b.h,d=(a&b.i)>>>b.j;a=c!=b.h?b.b[d].tb(c,a):b.b[d++].ab(c,a)|b.b[d&b.I].ab(0,a+1)<<8}return a};l.da=function(a){return this.ub(Ob(this,a,2))};
|
||||
function hb(a,b,c){c&=65535;if(4194304<=b)return a.c[b-4194304]=c;if(0<=b){a=a.j;var d=c,f=b&a.h,e=(b&a.i)>>>a.j;f!=a.h?a.b[e].Fc(f,d&65535,b):(a.b[e++].gb(f,d&255,b),a.b[e&a.I].gb(0,d>>8&255,b+1));return c}return b}function Pb(a,b){4194304<=b?b=a.c[b-4194304]&255:0<=b&&(a=a.j,b=a.b[(b&a.i)>>>a.j].ab(b&a.h,b));return b}function Qb(a,b,c){c&=255;4194304<=b?a.c[b-4194304]=a.c[b-4194304]&65280|c:0<=b&&(a=a.j,a.b[(b&a.i)>>>a.j].gb(b&a.h,c&255,b))}
|
||||
function Nb(a,b){var c=a.c[6]-2&65535;a.c[6]=c;a.w&57344||(a.Ca=a.Ca<<8|246);!a.B&&c<=a.wa&&4<c&&(c<=a.wa-32?(a.m|=4,a.c[6]=4,M(a,4)):(a.m|=8,a.D|=4));c=Ob(a,c|65536,4);hb(a,c,b)}
|
||||
function Rb(a,b,c){var d,f,e=b&7,g=c&8?0:a.Jb;switch(b>>3&7){case 0:M(a,4);break;case 1:return 6===e&&!a.B&&c&4&&(a.c[6]<=a.wa||65534<=a.c[6])&&(a.c[6]<=a.wa-32||65534<=a.c[6]?(a.m|=4,a.c[6]=4,M(a,4)):(a.m|=8,a.D|=64)),7===e?a.c[e]:a.c[e]|g;case 2:f=2;d=a.c[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.c[e];7!==e&&(d|=g);if(0>(d=a.da(d)))return d;d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.c[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.c[e]-2&65535;7!==e&&(d|=g);if(0>(d=a.da(d)))return d;
|
||||
d|=g;break;case 6:if(0>(d=a.da(a.c[7])))return d;a.c[7]=a.c[7]+2&65535;d=d+a.c[e]&65535;return d|g;case 7:if(0>(d=a.da(a.c[7])))return d;a.c[7]=a.c[7]+2&65535;d=d+a.c[e]&65535;return 0>(d=a.da(d|65536))?d:d|g}a.c[e]=a.c[e]+f&65535;!g||a.w&57344||(a.Ca=a.Ca<<8|f<<3&248|e);6===e&&!a.B&&c&4&&0>=f&&(a.c[6]<=a.wa||65534<=a.c[6])&&(a.c[6]<=a.wa-32?(a.m|=4,a.c[6]=4,M(a,4)):(a.m|=8,a.D|=64));return d}l.gc=function(a,b){return Rb(this,a,b)};l.hc=function(a,b){return Ob(this,Rb(this,a,b),b)};
|
||||
function R(a,b){return b&56?a.tb(Rb(a,b,2)):a.c[b&7]}function S(a,b){return b&56?Pb(a,a.ja(b,3)):a.c[b&7]&255}function Sb(a,b,c,d){b&56?(b=a.ja(b,6),hb(a,b,d.call(a,c,a.ub(b)))):(b&=7,a.c[b]=d.call(a,c,a.c[b])&65535)}function Tb(a,b,c,d){b&56?(b=a.ja(b,7),Qb(a,b,d.call(a,c,Pb(a,b)))):(b&=7,a.c[b]=a.c[b]&65280|d.call(a,c,a.c[b])&255)}function Ub(a,b,c){b&56?hb(a,a.ja(b,4),c):a.c[b&7]=c&65535;return c}
|
||||
function Vb(a,b,c,d){b&56?Qb(a,a.ja(b,5),c):(b&=7,a.c[b]=c?d&1?c<<24>>24&65535:a.c[b]&-256|c&255:a.c[b]&-256);return c}function T(a,b){return a.c[7]+(b<<24>>23)&65535}
|
||||
l.$b=function(a){this.g.complete=!0;this.g.dc=!1;this.g.Zb=!1;this.Y=this.a=a;do{this.D&112&&(this.D&32?M(this,168):this.D&64?M(this,4):this.D&16&&M(this,12),this.D&=-113);if(this.ha)if(1==this.ha)this.ha=2;else{this.ha=0;a=null;for(var b=this.Fb&224,c=this.f.length;0<=--c;){if(0<this.f[c].qa){this.f[c].qa--;this.ha=2;break}if(this.f[c].Mb){if(!this.f[c].Mb()){this.f.splice(c,1);continue}this.f[c].Mb=null}this.f[c].mc>b&&(b=this.f[c].mc,a=this.f[c],this.f.splice(c,1))}b>(this.N&224)&&(a?M(this,a.Bc):
|
||||
M(this,160))}this.w&57344||(this.Ca=0,this.hb=this.c[7]);this.D=this.N&16;a=this.b=this.da(this.c[7]);0<=a&&(this.c[7]=this.c[7]+2&65535);this.decode(a);if(0>this.b){this.c[7]=this.c[7]-2&65535;this.J("unimplemented");break}}while(0<this.a);return this.g.complete?this.Y-this.a:void 0===this.g.complete?0:-1};x(function(){for(var a=E(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Ib(d);D(d,c)}});
|
||||
function Wb(a,b){var c=a+b;this.D&128||(this.i=this.o=this.C=c,this.l=(a^c)&(b^c));return c&65535}function Xb(a,b){a=~a&b;Q(this,a);return a}function Yb(a,b){a=~a&b;Q(this,a<<8);return a}function Zb(a,b){a|=b;Q(this,a);return a}function $b(a,b){a|=b;Q(this,a<<8);return a}function ac(a,b){var c=b-a;Mb(this,c,a,b);return c&65535}function bc(){this.b=-1;--this.a}function cc(){this.b=-1;--this.a}function U(a){a&1&&(this.C=0);a&2&&(this.l=0);a&4&&(this.o=1);a&8&&(this.i=0);--this.a}
|
||||
function dc(){this.b=-1;--this.a}function ec(a){var b=Rb(this,a,8);a=a>>6&7;Nb(this,this.c[a]);this.c[a]=this.c[7];this.c[7]=b;--this.a}function fc(){this.b=-1;--this.a}function gc(){--this.a}function V(a){a&1&&(this.C=65536);a&2&&(this.l=32768);a&4&&(this.o=0);a&8&&(this.i=32768);--this.a}function hc(){this.b=-1;--this.a}function ic(){this.b=-1;--this.a}function W(){M(this,8)}function Jb(a){jc[a>>12].call(this,a)}
|
||||
var jc=[function(a){kc[a>>8&15].call(this,a)},function(a){Q(this,Ub(this,a,R(this,a>>6)));--this.a},function(a){var b=R(this,a>>6);a=R(this,a);Mb(this,b-a,a,b);--this.a},function(a){Q(this,R(this,a>>6)&R(this,a));--this.a},function(a){Sb(this,a,R(this,a>>6),Xb);--this.a},function(a){Sb(this,a,R(this,a>>6),Zb);--this.a},function(a){Sb(this,a,R(this,a>>6),Wb);--this.a},function(a){lc[a>>8&15].call(this,a)},function(a){mc[a>>8&15].call(this,a)},function(a){var b=S(this,a>>6);Q(this,Vb(this,a,b,1)<<8);
|
||||
--this.a},function(a){var b=S(this,a>>6)<<8;a=S(this,a)<<8;Mb(this,b-a,a,b);--this.a},function(a){Q(this,(S(this,a>>6)&S(this,a))<<8);--this.a},function(a){Tb(this,a,S(this,a>>6),Yb);--this.a},function(a){Tb(this,a,S(this,a>>6),$b);--this.a},function(a){Sb(this,a,R(this,a>>6),ac);--this.a},W],kc=[function(a){nc[a>>4&15].call(this,a)},function(a){this.c[7]=T(this,a);--this.a},function(a){this.o&65535&&(this.c[7]=T(this,a));--this.a},function(a){this.o&65535||(this.c[7]=T(this,a));--this.a},function(a){!(this.i&
|
||||
32768)==!(this.l&32768)&&(this.c[7]=T(this,a));--this.a},function(a){!(this.i&32768)!=!(this.l&32768)&&(this.c[7]=T(this,a));--this.a},function(a){this.o&65535&&!(this.i&32768)==!(this.l&32768)&&(this.c[7]=T(this,a));--this.a},function(a){this.o&65535&&!(this.i&32768)==!(this.l&32768)||(this.c[7]=T(this,a));--this.a},ec,ec,function(a){oc[a>>6&3].call(this,a)},function(a){pc[a>>6&3].call(this,a)},function(a){qc[a>>6&3].call(this,a)},function(a){rc[a>>6&3].call(this,a)},W,W],nc=[function(a){sc[a&15].call(this,
|
||||
a)},W,W,W,W,W,W,W,function(a){var b=this.da(this.c[6]|65536);0<=b&&(this.c[6]=this.c[6]+2&65535);a&=7;this.c[7]=this.c[a];this.c[a]=b;--this.a},function(a){this.N&49152||(this.N=this.N&-2017|(a&7)<<5,this.ha=1);--this.a},function(a){tc[a&15].call(this,a)},function(a){uc[a&15].call(this,a)},W,W,W,W],tc=[gc,function(){this.C=0;--this.a},function(){this.l=0;--this.a},U,function(){this.o=1;--this.a},U,U,U,function(){this.i=0;--this.a},U,U,U,U,U,U,U],uc=[gc,function(){this.C=65536;--this.a},function(){this.l=
|
||||
32768;--this.a},V,function(){this.o=0;--this.a},V,V,V,function(){this.i=32768;--this.a},V,V,V,V,V,V,V],sc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.N&49152||(Kb(this),this.j.reset());--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},W,W,W,W,W,W,W,W],lc=[fc,fc,dc,dc,bc,bc,cc,cc,ic,ic,W,W,W,W,hc,hc],mc=[function(a){this.i&32768||(this.c[7]=T(this,a));
|
||||
--this.a},function(a){this.i&32768&&(this.c[7]=T(this,a));--this.a},function(a){this.C&65536||!(this.o&65535)||(this.c[7]=T(this,a));--this.a},function(a){if(this.C&65536||!(this.o&65535))this.c[7]=T(this,a);--this.a},function(a){this.l&32768||(this.c[7]=T(this,a));--this.a},function(a){this.l&32768&&(this.c[7]=T(this,a));--this.a},function(a){this.C&65536||(this.c[7]=T(this,a));--this.a},function(a){this.C&65536&&(this.c[7]=T(this,a));--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;
|
||||
--this.a},function(a){vc[a>>6&3].call(this,a)},function(a){wc[a>>6&3].call(this,a)},function(a){xc[a>>6&3].call(this,a)},function(a){yc[a>>6&3].call(this,a)},W,W],oc=[function(a){Lb(this,Ub(this,a,0));--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],pc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],qc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=
|
||||
-1;--this.a},function(){this.b=-1;--this.a}],rc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],vc=[function(a){Lb(this,Vb(this,a,0));--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],wc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],xc=[function(){this.b=-1;--this.a},function(){this.b=-1;
|
||||
--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],yc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}];
|
||||
function X(a){y.call(this,"ROM",a,X);this.b=null;this.o=a.addr;this.f=a.size;this.w=a.writable;this.h=a.alias;this.i=a.file;this.B=ba(this.i);if(this.i){a=this.i;var b=ca(this.B);"json"!=b&&"hex"!=b&&(a=r()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;t(a,null,!0,function(a,b,e){zc(c,a,b,e)})}}A(X);X.prototype.Ka=function(a,b,c,d){this.j=b;this.a=c;this.H=d;Ac(this)};X.prototype.va=function(){this.l&&(this.H&&this.H.a(this.id,this.o,this.f,this.l),delete this.l);return!0};
|
||||
l.Na=function(a){if(this.Kb&&(a||!this.g.ea||this.g.Ob)){for(a=0;a<this.c.length;a++)M(this,"R"+a,this.c[a]);a=ab(this);M(this,"PS",a);M(this,"NF",a&8?1:0,1);M(this,"ZF",a&4?1:0,1);M(this,"VF",a&2?1:0,1);M(this,"CF",a&1?1:0,1)}if(a=this.u.speed)a.textContent=this.g.ea&&this.W?this.W.toFixed(2)+"Mhz":"Stopped"};
|
||||
function J(a,b,c,d,f){for(var e=a.f.length;0<e--;)if(a.f[e].Bc===d){0<e&&(a.f[e-1].qa+=a.f[e].qa);a.f.splice(e,1);break}if(0<=b){2===a.Ub&&(b=0,a.Ub=0,setTimeout(a.Sb,0));for(e=a.f.length;0<e--;){if(a.f[e].qa>b){a.f[e].qa-=b;break}b-=a.f[e].qa}a.f.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.ha=2}function ab(a){return a.N=a.N&63728|(a.i&32768?8:0)|(a.m&65535?0:4)|(a.j&32768?2:0)|(a.D&65536?1:0)}
|
||||
function bb(a,b){a.i=b<<12;a.m=~b&4;a.j=b<<14;a.D=b<<16;if((b^a.N)&2048)for(var c=a.La.length;0<=--c;){var d=a.c[c];a.c[c]=a.La[c];a.La[c]=d}a.B=b>>14&3;c=a.N>>14&3;a.B!=c&&(a.xa[c]=a.c[6],a.c[6]=a.xa[a.B]);a.ha=2;a.N=b}function Mb(a,b){a.C&128||(a.i=a.m=a.D=b,a.j=0)}function P(a,b){a.C&128||(a.i=a.m=b,a.j=0)}function Nb(a,b,c,d){a.C&128||(a.i=a.m=a.D=b,a.j=(c^d)&(d^b))}
|
||||
function L(a,b){var c=!1;0>a.ma?a.ma=ab(a):a.B||(b=4,c=!0);a.w&57344||(a.Ca=63222,a.hb=b);a.B=0;var d=a.da(b|65536),f=a.da(b+2&65535|65536);bb(a,f&53247|a.ma>>2&12288);c&&(a.o|=4,a.c[6]=4);Ob(a,a.ma);Ob(a,a.c[7]);a.c[7]=d;a.C&=-113;a.ma=-1;throw b;}function jb(a,b){var c=b>>13&31;31>c?a.Da&32&&(b=a.fb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
|
||||
function Pb(a,b,c){var d,f,e,g=0;if(c&a.pb){d=b>>13&a.qb[a.B];f=a.O[a.B][d];e=(a.O[a.B][d+16]<<6)+(b&8191)&4194303;a.Da&16?3932160<=e&&4186112>e&&(e=jb(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.o|=32,L(a,4)),e&1&&!(c&1)&&(a.o|=64,L(a,4)));switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?192:128;break;default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&8128)&&(g|=
|
||||
16384));a.O[a.B][d]=f;if(4194170!==e||a.B)a.Oa=a.B,a.Pa=d;g&&(g&57344&&(0<=a.ma&&(g|=128),a.w&57344||(a.w=a.w|g|a.Oa<<5|a.Pa<<1),L(a,168)),a.w&61440||!(4191360>e||4194239<e)||(a.w|=4096,a.w&512&&(a.C|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.o|=64,L(a,4));return e}l.ub=function(a){if(4194304<=a)a=this.c[a-4194304];else if(0<=a){var b=this.l,c=a&b.h,d=(a&b.i)>>>b.l;a=c!=b.h?b.b[d].tb(c,a):b.b[d++].ab(c,a)|b.b[d&b.I].ab(0,a+1)<<8}return a};l.da=function(a){return this.ub(Pb(this,a,2))};
|
||||
function ib(a,b,c){c&=65535;if(4194304<=b)return a.c[b-4194304]=c;if(0<=b){a=a.l;var d=c,f=b&a.h,e=(b&a.i)>>>a.l;f!=a.h?a.b[e].Fc(f,d&65535,b):(a.b[e++].gb(f,d&255,b),a.b[e&a.I].gb(0,d>>8&255,b+1));return c}return b}function Qb(a,b){4194304<=b?b=a.c[b-4194304]&255:0<=b&&(a=a.l,b=a.b[(b&a.i)>>>a.l].ab(b&a.h,b));return b}function Rb(a,b,c){c&=255;4194304<=b?a.c[b-4194304]=a.c[b-4194304]&65280|c:0<=b&&(a=a.l,a.b[(b&a.i)>>>a.l].gb(b&a.h,c&255,b))}
|
||||
function Ob(a,b){var c=a.c[6]-2&65535;a.c[6]=c;a.w&57344||(a.Ca=a.Ca<<8|246);!a.B&&c<=a.wa&&4<c&&(c<=a.wa-32?(a.o|=4,a.c[6]=4,L(a,4)):(a.o|=8,a.C|=4));c=Pb(a,c|65536,4);ib(a,c,b)}
|
||||
function Sb(a,b,c){var d,f,e=b&7,g=c&8?0:a.Jb;switch(b>>3&7){case 0:L(a,4);break;case 1:return 6===e&&!a.B&&c&4&&(a.c[6]<=a.wa||65534<=a.c[6])&&(a.c[6]<=a.wa-32||65534<=a.c[6]?(a.o|=4,a.c[6]=4,L(a,4)):(a.o|=8,a.C|=64)),7===e?a.c[e]:a.c[e]|g;case 2:f=2;d=a.c[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.c[e];7!==e&&(d|=g);if(0>(d=a.da(d)))return d;d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.c[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.c[e]-2&65535;7!==e&&(d|=g);if(0>(d=a.da(d)))return d;
|
||||
d|=g;break;case 6:if(0>(d=a.da(a.c[7])))return d;a.c[7]=a.c[7]+2&65535;d=d+a.c[e]&65535;return d|g;case 7:if(0>(d=a.da(a.c[7])))return d;a.c[7]=a.c[7]+2&65535;d=d+a.c[e]&65535;return 0>(d=a.da(d|65536))?d:d|g}a.c[e]=a.c[e]+f&65535;!g||a.w&57344||(a.Ca=a.Ca<<8|f<<3&248|e);6===e&&!a.B&&c&4&&0>=f&&(a.c[6]<=a.wa||65534<=a.c[6])&&(a.c[6]<=a.wa-32?(a.o|=4,a.c[6]=4,L(a,4)):(a.o|=8,a.C|=64));return d}l.gc=function(a,b){return Sb(this,a,b)};l.hc=function(a,b){return Pb(this,Sb(this,a,b),b)};
|
||||
function Q(a,b){return b&56?a.tb(Sb(a,b,2)):a.c[b&7]}function R(a,b){return b&56?Qb(a,a.ja(b,3)):a.c[b&7]&255}function S(a,b,c,d){b&56?(b=a.ja(b,6),ib(a,b,d.call(a,c,a.ub(b)))):(b&=7,a.c[b]=d.call(a,c,a.c[b])&65535)}function Tb(a,b,c,d){b&56?(b=a.ja(b,7),Rb(a,b,d.call(a,c,Qb(a,b)))):(b&=7,a.c[b]=a.c[b]&65280|d.call(a,c,a.c[b])&255)}function Ub(a,b,c){b&56?ib(a,a.ja(b,4),c):a.c[b&7]=c&65535;return c}
|
||||
function Vb(a,b,c,d){b&56?Rb(a,a.ja(b,5),c):(b&=7,a.c[b]=c?d&1?c<<24>>24&65535:a.c[b]&-256|c&255:a.c[b]&-256);return c}function T(a,b){return a.c[7]+(b<<24>>23)&65535}
|
||||
l.$b=function(a){this.g.complete=!0;this.g.dc=!1;this.g.Zb=!1;this.Y=this.a=a;do{this.C&112&&(this.C&32?L(this,168):this.C&64?L(this,4):this.C&16&&L(this,12),this.C&=-113);if(this.ha)if(1==this.ha)this.ha=2;else{this.ha=0;a=null;for(var b=this.Fb&224,c=this.f.length;0<=--c;){if(0<this.f[c].qa){this.f[c].qa--;this.ha=2;break}if(this.f[c].Mb){if(!this.f[c].Mb()){this.f.splice(c,1);continue}this.f[c].Mb=null}this.f[c].mc>b&&(b=this.f[c].mc,a=this.f[c],this.f.splice(c,1))}b>(this.N&224)&&(a?L(this,a.Bc):
|
||||
L(this,160))}this.w&57344||(this.Ca=0,this.hb=this.c[7]);this.C=this.N&16;a=this.b=this.da(this.c[7]);0<=a&&(this.c[7]=this.c[7]+2&65535);this.decode(a);if(0>this.b){this.c[7]=this.c[7]-2&65535;this.J("unimplemented");break}}while(0<this.a);return this.g.complete?this.Y-this.a:void 0===this.g.complete?0:-1};v(function(){for(var a=D(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Jb(d);C(d,c)}});
|
||||
function Wb(a,b){var c=b+a;this.C&128||(this.i=this.m=this.D=c,this.j=(a^c)&(b^c));return c&65535}function Xb(a,b){a=b&~a;P(this,a);return a}function Yb(a,b){a=b&~a;P(this,a<<8);return a}function Zb(a,b){a|=b;P(this,a);return a}function $b(a,b){a|=b;P(this,a<<8);return a}function ac(a,b){a=b-a;this.C&128||(this.i=this.m=a,this.j=b&(b^a));return a&65535}function bc(a,b){a=b+a;this.C&128||(this.i=this.m=a,this.j=a&(b^a));return a&65535}function cc(a,b){var c=b-a;Nb(this,c,a,b);return c&65535}
|
||||
function dc(){this.b=-1;--this.a}function ec(){this.b=-1;--this.a}function U(a){a&1&&(this.D=0);a&2&&(this.j=0);a&4&&(this.m=1);a&8&&(this.i=0);--this.a}function fc(){this.b=-1;--this.a}function gc(a){var b=Sb(this,a,8);a=a>>6&7;Ob(this,this.c[a]);this.c[a]=this.c[7];this.c[7]=b;--this.a}function hc(){this.b=-1;--this.a}function ic(){--this.a}function V(a){a&1&&(this.D=65536);a&2&&(this.j=32768);a&4&&(this.m=0);a&8&&(this.i=32768);--this.a}function jc(){this.b=-1;--this.a}
|
||||
function kc(){this.b=-1;--this.a}function W(){L(this,8)}function Kb(a){lc[a>>12].call(this,a)}
|
||||
var lc=[function(a){mc[a>>8&15].call(this,a)},function(a){P(this,Ub(this,a,Q(this,a>>6)));--this.a},function(a){var b=Q(this,a>>6);a=Q(this,a);Nb(this,b-a,a,b);--this.a},function(a){P(this,Q(this,a>>6)&Q(this,a));--this.a},function(a){S(this,a,Q(this,a>>6),Xb);--this.a},function(a){S(this,a,Q(this,a>>6),Zb);--this.a},function(a){S(this,a,Q(this,a>>6),Wb);--this.a},function(a){nc[a>>8&15].call(this,a)},function(a){oc[a>>8&15].call(this,a)},function(a){var b=R(this,a>>6);P(this,Vb(this,a,b,1)<<8);--this.a},
|
||||
function(a){var b=R(this,a>>6)<<8;a=R(this,a)<<8;Nb(this,b-a,a,b);--this.a},function(a){P(this,(R(this,a>>6)&R(this,a))<<8);--this.a},function(a){Tb(this,a,R(this,a>>6),Yb);--this.a},function(a){Tb(this,a,R(this,a>>6),$b);--this.a},function(a){S(this,a,Q(this,a>>6),cc);--this.a},W],mc=[function(a){pc[a>>4&15].call(this,a)},function(a){this.c[7]=T(this,a);--this.a},function(a){this.m&65535&&(this.c[7]=T(this,a));--this.a},function(a){this.m&65535||(this.c[7]=T(this,a));--this.a},function(a){!(this.i&
|
||||
32768)==!(this.j&32768)&&(this.c[7]=T(this,a));--this.a},function(a){!(this.i&32768)!=!(this.j&32768)&&(this.c[7]=T(this,a));--this.a},function(a){this.m&65535&&!(this.i&32768)==!(this.j&32768)&&(this.c[7]=T(this,a));--this.a},function(a){this.m&65535&&!(this.i&32768)==!(this.j&32768)||(this.c[7]=T(this,a));--this.a},gc,gc,function(a){qc[a>>6&3].call(this,a)},function(a){rc[a>>6&3].call(this,a)},function(a){sc[a>>6&3].call(this,a)},function(a){tc[a>>6&3].call(this,a)},W,W],pc=[function(a){uc[a&15].call(this,
|
||||
a)},W,W,W,W,W,W,W,function(a){var b=this.da(this.c[6]|65536);0<=b&&(this.c[6]=this.c[6]+2&65535);a&=7;this.c[7]=this.c[a];this.c[a]=b;--this.a},function(a){this.N&49152||(this.N=this.N&-2017|(a&7)<<5,this.ha=1);--this.a},function(a){vc[a&15].call(this,a)},function(a){wc[a&15].call(this,a)},W,W,W,W],vc=[ic,function(){this.D=0;--this.a},function(){this.j=0;--this.a},U,function(){this.m=1;--this.a},U,U,U,function(){this.i=0;--this.a},U,U,U,U,U,U,U],wc=[ic,function(){this.D=65536;--this.a},function(){this.j=
|
||||
32768;--this.a},V,function(){this.m=0;--this.a},V,V,V,function(){this.i=32768;--this.a},V,V,V,V,V,V,V],uc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.N&49152||(Lb(this),this.l.reset());--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},W,W,W,W,W,W,W,W],nc=[hc,hc,fc,fc,dc,dc,ec,ec,kc,kc,W,W,W,W,jc,jc],oc=[function(a){this.i&32768||(this.c[7]=T(this,a));
|
||||
--this.a},function(a){this.i&32768&&(this.c[7]=T(this,a));--this.a},function(a){this.D&65536||!(this.m&65535)||(this.c[7]=T(this,a));--this.a},function(a){if(this.D&65536||!(this.m&65535))this.c[7]=T(this,a);--this.a},function(a){this.j&32768||(this.c[7]=T(this,a));--this.a},function(a){this.j&32768&&(this.c[7]=T(this,a));--this.a},function(a){this.D&65536||(this.c[7]=T(this,a));--this.a},function(a){this.D&65536&&(this.c[7]=T(this,a));--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;
|
||||
--this.a},function(a){xc[a>>6&3].call(this,a)},function(a){yc[a>>6&3].call(this,a)},function(a){zc[a>>6&3].call(this,a)},function(a){Ac[a>>6&3].call(this,a)},W,W],qc=[function(a){Mb(this,Ub(this,a,0));--this.a},function(){this.b=-1;--this.a},function(a){S(this,a,1,bc);--this.a},function(a){S(this,a,1,ac);--this.a}],rc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],sc=[function(){this.b=-1;--this.a},function(){this.b=-1;
|
||||
--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],tc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],xc=[function(a){Mb(this,Vb(this,a,0));--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],yc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],zc=[function(){this.b=-1;--this.a},
|
||||
function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],Ac=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}];
|
||||
function X(a){x.call(this,"ROM",a,X);this.b=null;this.m=a.addr;this.f=a.size;this.w=a.writable;this.h=a.alias;this.i=a.file;this.B=ba(this.i);if(this.i){a=this.i;var b=ca(this.B);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,e){Bc(c,a,b,e)})}}z(X);X.prototype.Ka=function(a,b,c,d){this.l=b;this.a=c;this.H=d;Cc(this)};X.prototype.va=function(){this.j&&(this.H&&this.H.a(this.id,this.m,this.f,this.j),delete this.j);return!0};
|
||||
X.prototype.ua=function(){return!0};
|
||||
function zc(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Ca(a.Nb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.b=e;else if(e=h.words)for(a.b=Array(2*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255;else if(e=h.data)for(a.b=Array(4*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255,a.b[g++]=e[f]>>16&255,a.b[g++]=e[f]>>24&255;else a.b=h;a.l=h.symbols;if(!a.b.length){u("Empty ROM: "+b);
|
||||
return}if(1==a.b.length){u(a.b[0]);return}}catch(k){a.K("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);Ac(a)}}
|
||||
function Ac(a){if(!Fa(a))if(!a.i)F(a);else if(a.b&&a.j){a.f||(a.f=a.b.length);if(a.b.length!=a.f){var b="ROM size ("+q(a.b.length,8,!0)+") does not match specified size ("+q(a.f,8,!0)+")";a.g.error=!0;a.K(b)}else{b=a.o;if(Oa(a.j,b,a.f,a.w?1:pb)){var c;for(c=0;c<a.b.length;c++){var d=a.j,f=b+c;d.b[(f&d.i)>>>d.j].ac(f&d.h,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.h?b.push(a.h):null!=a.h&&a.h.length&&(b=a.h);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.j,g=e.f,h=[],k=e.o>>>f.j;0<g&&
|
||||
k<f.b.length;)h.push(f.b[k++]),g-=f.f;f=e.j;e=e.f;g=0;for(d>>>=f.j;0<e&&d<f.b.length;){k=h[g++];if(!k)break;f.b[d++]=k;e-=f.f}}delete a.b}}F(a)}}x(function(){for(var a=E(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new X(d);D(d,c)}});function Bc(a){y.call(this,"RAM",a,Bc);this.h=a.addr;this.f=a.size;this.b=!1}A(Bc);l=Bc.prototype;l.Ka=function(a,b,c,d){this.j=b;this.a=c;this.H=d;F(this)};l.va=function(a,b){b||this.reset();return!0};l.ua=function(a){return a?this.save():!0};
|
||||
l.reset=function(){!this.b&&this.f&&Oa(this.j,this.h,this.f,1)&&(this.b=!0);this.b||u("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};x(function(){for(var a=E(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Bc(d);D(d,c)}});function Cc(a){y.call(this,"Keyboard",a,Cc);F(this)}A(Cc);Cc.prototype.ba=function(){return!1};Cc.prototype.Ka=function(a,b,c,d){this.h=a;this.a=c;this.H=d;this.Aa=null};
|
||||
x(function(){for(var a=E(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Cc(d);D(d,c)}});
|
||||
function Dc(a,b,c){y.call(this,"Computer",a,Dc);this.g.L=!1;Ec(this,b);this.I=Ab(this,"autoPower",a);this.h=0;this.Y=a.busWidth||a.buswidth;this.b=Y;this.B=null;this.o=this.W=!1;this.url=Ab(this,"url")||"";(Math.random()+.1).toString(36);this.f=Fc(this);if(this.a=Da("CPU",this.id)){this.H=Da("Debugger",this.id);this.j=new G({id:this.Nb+".bus",busWidth:this.Y},this.a,this.H);var d,f=B(this.id);if((this.i=Da("Panel",this.id))&&this.i.Cb)for(b=0;b<f.length;b++)d=f[b],d.K=this.i.K,d.J=this.i.J,d.Cb=this.i.Cb;
|
||||
this.J("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.J("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Ka&&d.Ka(this,this.j,this.a,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.w=d:this.b=parseInt(d,10));var e;if(a=Ab(this,"state")||(e=!0,a.state))b=this.M=a,e||(this.o=!0,this.b=Y),this.b&&(this.C=new P(this,
|
||||
"1.30.0"),Z(this.C)?b=null:delete this.C);!b&&this.b&&(b=Gc(this))&&(this.o=!0);if(b){var g=this;t(b,null,!0,function(a,b,c){c?(g.w=null,g.o=!1,g.K("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.B=b,g.W=!0);F(g)})}else F(this);this.u.power||(this.I=!0);!c&&this.I&&Hc(this,this.$a)}else u("Unable to find CPU component")}A(Dc);var Y=0;
|
||||
function Ec(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.X=b}function Ab(a,b,c){var d=b.toLowerCase(),d=wa[b]||wa[d];void 0===d&&a.X&&(d=a.X[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Hc(a,b,c){for(var d=B(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Fa(e)){Fa(e,function(){Hc(a,b,c)});return}}b.call(a,c)}
|
||||
function Ic(a,b){var c=new P(a,"1.30.0","validate");if(Z(c)&&Jc(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.K("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Dc.prototype;
|
||||
l.$a=function(a){void 0===a&&(a=this.b||(this.B?1:Y));if(!this.h){this.h++;var b=!1,c=!1;this.T=!1;var d=this.C||new P(this,"1.30.0");if(-1==a)b=!0;else if(a>Y){if(Z(d,this.B)){this.l=new P(this,"1.30.0","failsafe");Z(this.l)&&(Kc(this,d),a=2,Lc(this.l));this.l.set("timestamp",ha());Mc(this.l);var f=this.b&&!this.o;if(1==a||ia("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Jc(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?Z(d,g):("error"==e&&
|
||||
"no machine state"!=g?(this.K("Error: "+g),"unable to verify user"==g&&(ma("user",""),this.f=null)):this.J(e+": "+g),Lc(d),Z(d)?(c=Jc(d),f=!0):c=!1))}f&&Ic(this,c?d:null)}else 2==a&&d.clear()}else Ic(this);delete this.B;delete this.C}f=B(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.a&&(c=Nc(this,g,d,b,c));b=[d,a,c];-1!=a?Hc(this,this.Pb,b):this.Pb(b)}};
|
||||
function Nc(a,b,c,d,f){if(!b.g.L){b.g.L=!0;if(b.va){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.va(e,d)&&e&&(u("Unable to restore state for "+b.type),a.M&&!a.W?(c.clear(),a.b=Y,window&&window.location.reload()):a.T=!0,b.va(null),f=!1)}if(!d&&b.Lb)for(a=b.Lb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
||||
l.Pb=function(a){var b=a[0],c=0>a[1];a=a[2];this.Z=!0;this.g.L=!0;var d=this.u.power;d&&(d.textContent="Shutdown");this.a&&(Nc(this,this.a,b,c,a),this.a.Wa());this.T&&(Kc(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.h=0};
|
||||
function Kc(a,b){if(ia("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.f||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;t("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Oc(a,b,c){var d,f="none";if(a.h)return null;a.h--;var e=new P(a,"1.30.0"),g=new P(a,"1.30.0","validate"),h=ha();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ua&&(c&&O(a.a),d=a.a.ua(b,c),"object"===typeof d&&e.set(a.a.id,d),c&&(a.a.g.L=!1,!1===d&&(f=null)));for(var h=B(a.id),k=0;k<h.length;k++){var m=h[k];m.g.L&&(m.ua&&(d=m.ua(b,c),"object"===typeof d&&e.set(m.id,
|
||||
d)),c&&(m.g.L=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.f&&Pc(a,a.f,e.toString()),Mc(g)&&Mc(e)||(f=null,d=h=!0)):a.b&&(d=!0,h=3==a.b),d&&e.clear(h)):f=e.toString());c&&(a.g.L=!1,b=a.u.power)&&(b.textContent="Power");a.h=0;return f}l.reset=function(){this.j&&this.j.reset&&this.j.reset();for(var a=B(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.j&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=B(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
||||
l.stop=function(a,b){for(var c=B(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
||||
l.ba=function(a,b,c){var d=this;switch(b){case "power":return this.u[b]=c,c.onclick=function(){d.h||(d.g.L?Oc(d,!1,!0):Hc(d,d.$a))},!0;case "reset":return this.u[b]=c,c.onclick=function(){if(d.g.L&&!d.h)if(d.b&&!d.w){var a=ia("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Oc(d,a,!0);!a&&d.M?window&&window.location.reload():d.$a(Y)}else d.reset(),d.a&&d.a.Wa()},!0;case "save":if(da())c.parentNode.removeChild(c);else return this.u[b]=
|
||||
c,c.onclick=function(){var a=Fc(d,!0);if(a){var b=!!(d.b&&!d.w||d.M),c=Oc(d,b);b?Pc(d,a,c):d.K("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Fc(a,b){var c=a.f;c||((c=la("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Qc(a,c))||a.K("The user ID is invalid.")):b&&a.K("Browser local storage is not available"));return c}
|
||||
function Qc(a,b){a.f=null;b=t(r()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ma("user",b.data),a.f=b.data)}catch(d){u(d.message+" ("+c+")")}return a.f}function Gc(a){var b=null;a.f&&(b=r()+"/api/v1/user?req=load&user="+a.f+"&state="+Rc(a,"1.30.0"));return b}
|
||||
function Pc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Rc(a,"1.30.0");d.data=c;b=t(r()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.K("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.K(c),ma("user",""),a.f=null)}}
|
||||
l.Na=function(a){this.a&&this.a.Na(a);this.i&&this.i.Na(a)};x(function(){for(var a=E(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=C(c),c=E(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=C(e),g=new Dc(g,d,!0);D(g,e);g.I&&Hc(g,g.$a)}});v.show.push(function(){for(var a=E(document,"pdp11","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=Da("Computer",c.id))&&c.Z&&!c.g.L&&c.$a(-1)}});
|
||||
v.exit.push(function(){for(var a=E(document,"pdp11","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=Da("Computer",c.id))&&c.g.L&&Oc(c,!(!c.b||c.w),!0)}});function P(a,b,c){this.id=a.id;this.key=Rc(a,b,c);this.H=a.H;Lc(this,a.ic)}function Rc(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
||||
P.prototype={constructor:P,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Lc(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(f){}b.splice(c,
|
||||
1);c=0}}};function Lc(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function Mc(a){var b=!0;if(ka()){var c=JSON.stringify(a[a.id]);ma(a.key,c)||(u("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Jc(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){u(c.message||c),b=!1}return b}function Z(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:ka()&&(b=la(a.key))?(a[a.id]=b,a.a=!0):!1}var Sc=0;
|
||||
function Tc(a,b,c,d,f,e){f("Loading "+a+"...");t(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):Uc(h,a,b,c,d,f,e)})}
|
||||
function Uc(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&(Ca(c,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){e=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?Vc(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function Vc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");t(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(e);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Vc(a,b,c)}})}else c(a,null)}
|
||||
function Wc(a,b,c,d){function f(a){if(void 0===h){var b=g&&E(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=fa(a))}function e(a){f("Error: "+a);k&&(--Sc||ta(!0));k=!1}var g,h,k=!0;Sc++;Ba[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=m:w.appendChild(document.createTextNode(m));p.appendChild(w)}c||
|
||||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?Tc(c,null,null,!1,f,function(d,k){k?(Ca(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Sc||ta(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--Sc||ta(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?Tc(b,a,d,!0,f,m):Uc(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(H){e(H.message)}return k}window.embedPDP11=function(a,b,c,d){ta(!1);return Wc(a,b,c,d)};window.enableEvents=ta;window.sendEvent=ua;})();
|
||||
function Bc(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Da(a.Nb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.b=e;else if(e=h.words)for(a.b=Array(2*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255;else if(e=h.data)for(a.b=Array(4*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255,a.b[g++]=e[f]>>16&255,a.b[g++]=e[f]>>24&255;else a.b=h;a.j=h.symbols;if(!a.b.length){t("Empty ROM: "+b);
|
||||
return}if(1==a.b.length){t(a.b[0]);return}}catch(k){a.K("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);Cc(a)}}
|
||||
function Cc(a){if(!Ga(a))if(!a.i)E(a);else if(a.b&&a.l){a.f||(a.f=a.b.length);if(a.b.length!=a.f){var b="ROM size ("+q(a.b.length,8,!0)+") does not match specified size ("+q(a.f,8,!0)+")";a.g.error=!0;a.K(b)}else{b=a.m;if(Pa(a.l,b,a.f,a.w?1:qb)){var c;for(c=0;c<a.b.length;c++){var d=a.l,f=b+c;d.b[(f&d.i)>>>d.l].ac(f&d.h,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.h?b.push(a.h):null!=a.h&&a.h.length&&(b=a.h);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.l,g=e.f,h=[],k=e.m>>>f.l;0<g&&
|
||||
k<f.b.length;)h.push(f.b[k++]),g-=f.f;f=e.l;e=e.f;g=0;for(d>>>=f.l;0<e&&d<f.b.length;){k=h[g++];if(!k)break;f.b[d++]=k;e-=f.f}}delete a.b}}E(a)}}v(function(){for(var a=D(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new X(d);C(d,c)}});function Dc(a){x.call(this,"RAM",a,Dc);this.h=a.addr;this.f=a.size;this.b=!1}z(Dc);l=Dc.prototype;l.Ka=function(a,b,c,d){this.l=b;this.a=c;this.H=d;E(this)};l.va=function(a,b){b||this.reset();return!0};l.ua=function(a){return a?this.save():!0};
|
||||
l.reset=function(){!this.b&&this.f&&Pa(this.l,this.h,this.f,1)&&(this.b=!0);this.b||t("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};v(function(){for(var a=D(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Dc(d);C(d,c)}});function Ec(a){x.call(this,"Keyboard",a,Ec);E(this)}z(Ec);Ec.prototype.ba=function(){return!1};Ec.prototype.Ka=function(a,b,c,d){this.h=a;this.a=c;this.H=d;this.Aa=null};
|
||||
v(function(){for(var a=D(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Ec(d);C(d,c)}});
|
||||
function Fc(a,b,c){x.call(this,"Computer",a,Fc);this.g.L=!1;Gc(this,b);this.I=Bb(this,"autoPower",a);this.h=0;this.Y=a.busWidth||a.buswidth;this.b=Y;this.B=null;this.m=this.W=!1;this.url=Bb(this,"url")||"";(Math.random()+.1).toString(36);this.f=Hc(this);if(this.a=Ea("CPU",this.id)){this.H=Ea("Debugger",this.id);this.l=new F({id:this.Nb+".bus",busWidth:this.Y},this.a,this.H);var d,f=A(this.id);if((this.i=Ea("Panel",this.id))&&this.i.Cb)for(b=0;b<f.length;b++)d=f[b],d.K=this.i.K,d.J=this.i.J,d.Cb=this.i.Cb;
|
||||
this.J("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.J("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Ka&&d.Ka(this,this.l,this.a,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.w=d:this.b=parseInt(d,10));var e;if(a=Bb(this,"state")||(e=!0,a.state))b=this.M=a,e||(this.m=!0,this.b=Y),this.b&&(this.D=new O(this,
|
||||
"1.30.0"),Z(this.D)?b=null:delete this.D);!b&&this.b&&(b=Ic(this))&&(this.m=!0);if(b){var g=this;r(b,null,!0,function(a,b,c){c?(g.w=null,g.m=!1,g.K("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.B=b,g.W=!0);E(g)})}else E(this);this.u.power||(this.I=!0);!c&&this.I&&Jc(this,this.$a)}else t("Unable to find CPU component")}z(Fc);var Y=0;
|
||||
function Gc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.X=b}function Bb(a,b,c){var d=b.toLowerCase(),d=xa[b]||xa[d];void 0===d&&a.X&&(d=a.X[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Jc(a,b,c){for(var d=A(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ga(e)){Ga(e,function(){Jc(a,b,c)});return}}b.call(a,c)}
|
||||
function Kc(a,b){var c=new O(a,"1.30.0","validate");if(Z(c)&&Lc(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.K("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Fc.prototype;
|
||||
l.$a=function(a){void 0===a&&(a=this.b||(this.B?1:Y));if(!this.h){this.h++;var b=!1,c=!1;this.T=!1;var d=this.D||new O(this,"1.30.0");if(-1==a)b=!0;else if(a>Y){if(Z(d,this.B)){this.j=new O(this,"1.30.0","failsafe");Z(this.j)&&(Mc(this,d),a=2,Nc(this.j));this.j.set("timestamp",ia());Oc(this.j);var f=this.b&&!this.m;if(1==a||ja("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Lc(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?Z(d,g):("error"==e&&
|
||||
"no machine state"!=g?(this.K("Error: "+g),"unable to verify user"==g&&(na("user",""),this.f=null)):this.J(e+": "+g),Nc(d),Z(d)?(c=Lc(d),f=!0):c=!1))}f&&Kc(this,c?d:null)}else 2==a&&d.clear()}else Kc(this);delete this.B;delete this.D}f=A(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.a&&(c=Pc(this,g,d,b,c));b=[d,a,c];-1!=a?Jc(this,this.Pb,b):this.Pb(b)}};
|
||||
function Pc(a,b,c,d,f){if(!b.g.L){b.g.L=!0;if(b.va){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.va(e,d)&&e&&(t("Unable to restore state for "+b.type),a.M&&!a.W?(c.clear(),a.b=Y,window&&window.location.reload()):a.T=!0,b.va(null),f=!1)}if(!d&&b.Lb)for(a=b.Lb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
||||
l.Pb=function(a){var b=a[0],c=0>a[1];a=a[2];this.Z=!0;this.g.L=!0;var d=this.u.power;d&&(d.textContent="Shutdown");this.a&&(Pc(this,this.a,b,c,a),this.a.Wa());this.T&&(Mc(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.h=0};
|
||||
function Mc(a,b){if(ja("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.f||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;r("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Qc(a,b,c){var d,f="none";if(a.h)return null;a.h--;var e=new O(a,"1.30.0"),g=new O(a,"1.30.0","validate"),h=ia();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ua&&(c&&N(a.a),d=a.a.ua(b,c),"object"===typeof d&&e.set(a.a.id,d),c&&(a.a.g.L=!1,!1===d&&(f=null)));for(var h=A(a.id),k=0;k<h.length;k++){var m=h[k];m.g.L&&(m.ua&&(d=m.ua(b,c),"object"===typeof d&&e.set(m.id,
|
||||
d)),c&&(m.g.L=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.f&&Rc(a,a.f,e.toString()),Oc(g)&&Oc(e)||(f=null,d=h=!0)):a.b&&(d=!0,h=3==a.b),d&&e.clear(h)):f=e.toString());c&&(a.g.L=!1,b=a.u.power)&&(b.textContent="Power");a.h=0;return f}l.reset=function(){this.l&&this.l.reset&&this.l.reset();for(var a=A(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.l&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=A(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
||||
l.stop=function(a,b){for(var c=A(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
||||
l.ba=function(a,b,c){var d=this;switch(b){case "power":return this.u[b]=c,c.onclick=function(){d.h||(d.g.L?Qc(d,!1,!0):Jc(d,d.$a))},!0;case "reset":return this.u[b]=c,c.onclick=function(){if(d.g.L&&!d.h)if(d.b&&!d.w){var a=ja("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Qc(d,a,!0);!a&&d.M?window&&window.location.reload():d.$a(Y)}else d.reset(),d.a&&d.a.Wa()},!0;case "save":if(da())c.parentNode.removeChild(c);else return this.u[b]=
|
||||
c,c.onclick=function(){var a=Hc(d,!0);if(a){var b=!!(d.b&&!d.w||d.M),c=Qc(d,b);b?Rc(d,a,c):d.K("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Hc(a,b){var c=a.f;c||((c=ma("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=Sc(a,c))||a.K("The user ID is invalid.")):b&&a.K("Browser local storage is not available"));return c}
|
||||
function Sc(a,b){a.f=null;b=r(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&&(na("user",b.data),a.f=b.data)}catch(d){t(d.message+" ("+c+")")}return a.f}function Ic(a){var b=null;a.f&&(b=ea()+"/api/v1/user?req=load&user="+a.f+"&state="+Tc(a,"1.30.0"));return b}
|
||||
function Rc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Tc(a,"1.30.0");d.data=c;b=r(ea()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.K("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.K(c),na("user",""),a.f=null)}}
|
||||
l.Na=function(a){this.a&&this.a.Na(a);this.i&&this.i.Na(a)};v(function(){for(var a=D(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=B(e),g=new Fc(g,d,!0);C(g,e);g.I&&Jc(g,g.$a)}});u.show.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Ea("Computer",c.id))&&c.Z&&!c.g.L&&c.$a(-1)}});
|
||||
u.exit.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Ea("Computer",c.id))&&c.g.L&&Qc(c,!(!c.b||c.w),!0)}});function O(a,b,c){this.id=a.id;this.key=Tc(a,b,c);this.H=a.H;Nc(this,a.ic)}function Tc(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){Nc(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(f){}b.splice(c,
|
||||
1);c=0}}};function Nc(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function Oc(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Lc(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function Z(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.a=!0):!1}var Uc=0;
|
||||
function Vc(a,b,c,d,f,e){f("Loading "+a+"...");r(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):Wc(h,a,b,c,d,f,e)})}
|
||||
function Wc(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&(Da(c,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){e=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?Xc(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function Xc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");r(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(e);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Xc(a,b,c)}})}else c(a,null)}
|
||||
function Yc(a,b,c,d){function f(a){if(void 0===h){var b=g&&D(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ga(a))}function e(a){f("Error: "+a);k&&(--Uc||ua(!0));k=!1}var g,h,k=!0;Uc++;Ca[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=m:w.appendChild(document.createTextNode(m));p.appendChild(w)}c||
|
||||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?Vc(c,null,null,!1,f,function(d,k){k?(Da(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Uc||ua(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--Uc||ua(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?Vc(b,a,d,!0,f,m):Wc(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(H){e(H.message)}return k}window.embedPDP11=function(a,b,c,d){ua(!1);return Yc(a,b,c,d)};window.enableEvents=ua;window.sendEvent=va;})();
|
||||
|
|
|
|||
Loading…
Reference in a new issue