Factored parseAddrReference()

This commit is contained in:
Jeff Parsons 2016-09-15 09:15:43 -07:00
commit 375ddc12f3
4 changed files with 671 additions and 590 deletions

View file

@ -839,13 +839,13 @@ if (DEBUGGER) {
/* 0x8F */ [DebuggerX86.INS.POP, DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_OUT], /* 0x8F */ [DebuggerX86.INS.POP, DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_OUT],
/* 0x90 */ [DebuggerX86.INS.NOP], /* 0x90 */ [DebuggerX86.INS.NOP],
/* 0x91 */ [DebuggerX86.INS.XCHG, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_CX | DebuggerX86.TYPE_BOTH], /* 0x91 */ [DebuggerX86.INS.XCHG, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_CX | DebuggerX86.TYPE_BOTH],
/* 0x92 */ [DebuggerX86.INS.XCHG, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_DX | DebuggerX86.TYPE_BOTH], /* 0x92 */ [DebuggerX86.INS.XCHG, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_DX | DebuggerX86.TYPE_BOTH],
/* 0x93 */ [DebuggerX86.INS.XCHG, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_BX | DebuggerX86.TYPE_BOTH], /* 0x93 */ [DebuggerX86.INS.XCHG, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_BX | DebuggerX86.TYPE_BOTH],
/* 0x94 */ [DebuggerX86.INS.XCHG, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_SP | DebuggerX86.TYPE_BOTH], /* 0x94 */ [DebuggerX86.INS.XCHG, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_SP | DebuggerX86.TYPE_BOTH],
/* 0x95 */ [DebuggerX86.INS.XCHG, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_BP | DebuggerX86.TYPE_BOTH], /* 0x95 */ [DebuggerX86.INS.XCHG, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_BP | DebuggerX86.TYPE_BOTH],
/* 0x96 */ [DebuggerX86.INS.XCHG, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_SI | DebuggerX86.TYPE_BOTH], /* 0x96 */ [DebuggerX86.INS.XCHG, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_SI | DebuggerX86.TYPE_BOTH],
/* 0x97 */ [DebuggerX86.INS.XCHG, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_DI | DebuggerX86.TYPE_BOTH], /* 0x97 */ [DebuggerX86.INS.XCHG, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_DI | DebuggerX86.TYPE_BOTH],
/* 0x98 */ [DebuggerX86.INS.CBW], /* 0x98 */ [DebuggerX86.INS.CBW],
/* 0x99 */ [DebuggerX86.INS.CWD], /* 0x99 */ [DebuggerX86.INS.CWD],
@ -874,34 +874,34 @@ if (DEBUGGER) {
/* 0xAE */ [DebuggerX86.INS.SCASB, DebuggerX86.TYPE_AL | DebuggerX86.TYPE_IN, DebuggerX86.TYPE_ESDI | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xAE */ [DebuggerX86.INS.SCASB, DebuggerX86.TYPE_AL | DebuggerX86.TYPE_IN, DebuggerX86.TYPE_ESDI | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xAF */ [DebuggerX86.INS.SCASW, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_IN, DebuggerX86.TYPE_ESDI | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN], /* 0xAF */ [DebuggerX86.INS.SCASW, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_IN, DebuggerX86.TYPE_ESDI | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN],
/* 0xB0 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_AL | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xB0 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_AL | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xB1 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_CL | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xB1 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_CL | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xB2 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_DL | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xB2 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_DL | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xB3 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_BL | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xB3 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_BL | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xB4 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_AH | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xB4 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_AH | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xB5 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_CH | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xB5 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_CH | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xB6 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_DH | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xB6 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_DH | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xB7 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_BH | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xB7 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_BH | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xB8 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN], /* 0xB8 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN],
/* 0xB9 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_CX | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN], /* 0xB9 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_CX | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN],
/* 0xBA */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_DX | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN], /* 0xBA */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_DX | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN],
/* 0xBB */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_BX | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN], /* 0xBB */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_BX | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN],
/* 0xBC */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_SP | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN], /* 0xBC */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_SP | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN],
/* 0xBD */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_BP | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN], /* 0xBD */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_BP | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN],
/* 0xBE */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_SI | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN], /* 0xBE */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_SI | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN],
/* 0xBF */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_DI | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN], /* 0xBF */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_DI | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN],
/* 0xC0 */ [DebuggerX86.INS.GRP2B, DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_BOTH | DebuggerX86.TYPE_80186, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xC0 */ [DebuggerX86.INS.GRP2B, DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_BOTH | DebuggerX86.TYPE_80186, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xC1 */ [DebuggerX86.INS.GRP2W, DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_BOTH | DebuggerX86.TYPE_80186, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xC1 */ [DebuggerX86.INS.GRP2W, DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_BOTH | DebuggerX86.TYPE_80186, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xC2 */ [DebuggerX86.INS.RET, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_SHORT | DebuggerX86.TYPE_IN], /* 0xC2 */ [DebuggerX86.INS.RET, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_SHORT | DebuggerX86.TYPE_IN],
/* 0xC3 */ [DebuggerX86.INS.RET], /* 0xC3 */ [DebuggerX86.INS.RET],
/* 0xC4 */ [DebuggerX86.INS.LES, DebuggerX86.TYPE_REG | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_MODMEM | DebuggerX86.TYPE_SEGP | DebuggerX86.TYPE_IN], /* 0xC4 */ [DebuggerX86.INS.LES, DebuggerX86.TYPE_REG | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_MODMEM | DebuggerX86.TYPE_SEGP | DebuggerX86.TYPE_IN],
/* 0xC5 */ [DebuggerX86.INS.LDS, DebuggerX86.TYPE_REG | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_MODMEM | DebuggerX86.TYPE_SEGP | DebuggerX86.TYPE_IN], /* 0xC5 */ [DebuggerX86.INS.LDS, DebuggerX86.TYPE_REG | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_MODMEM | DebuggerX86.TYPE_SEGP | DebuggerX86.TYPE_IN],
/* 0xC6 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xC6 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xC7 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN], /* 0xC7 */ [DebuggerX86.INS.MOV, DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN],
/* 0xC8 */ [DebuggerX86.INS.ENTER, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_SHORT | DebuggerX86.TYPE_IN | DebuggerX86.TYPE_80286, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xC8 */ [DebuggerX86.INS.ENTER, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_SHORT | DebuggerX86.TYPE_IN | DebuggerX86.TYPE_80286, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xC9 */ [DebuggerX86.INS.LEAVE, DebuggerX86.TYPE_NONE | DebuggerX86.TYPE_80286], /* 0xC9 */ [DebuggerX86.INS.LEAVE, DebuggerX86.TYPE_NONE | DebuggerX86.TYPE_80286],
/* 0xCA */ [DebuggerX86.INS.RETF, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_SHORT | DebuggerX86.TYPE_IN], /* 0xCA */ [DebuggerX86.INS.RETF, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_SHORT | DebuggerX86.TYPE_IN],
/* 0xCB */ [DebuggerX86.INS.RETF], /* 0xCB */ [DebuggerX86.INS.RETF],
@ -910,10 +910,10 @@ if (DEBUGGER) {
/* 0xCE */ [DebuggerX86.INS.INTO], /* 0xCE */ [DebuggerX86.INS.INTO],
/* 0xCF */ [DebuggerX86.INS.IRET], /* 0xCF */ [DebuggerX86.INS.IRET],
/* 0xD0 */ [DebuggerX86.INS.GRP2B1,DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_ONE | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xD0 */ [DebuggerX86.INS.GRP2B1,DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_ONE | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xD1 */ [DebuggerX86.INS.GRP2W1,DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_ONE | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xD1 */ [DebuggerX86.INS.GRP2W1,DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_ONE | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xD2 */ [DebuggerX86.INS.GRP2BC,DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_CL | DebuggerX86.TYPE_IN], /* 0xD2 */ [DebuggerX86.INS.GRP2BC,DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_CL | DebuggerX86.TYPE_IN],
/* 0xD3 */ [DebuggerX86.INS.GRP2WC,DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_CL | DebuggerX86.TYPE_IN], /* 0xD3 */ [DebuggerX86.INS.GRP2WC,DebuggerX86.TYPE_MODRM | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_BOTH, DebuggerX86.TYPE_CL | DebuggerX86.TYPE_IN],
/* 0xD4 */ [DebuggerX86.INS.AAM, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE], /* 0xD4 */ [DebuggerX86.INS.AAM, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE],
/* 0xD5 */ [DebuggerX86.INS.AAD, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE], /* 0xD5 */ [DebuggerX86.INS.AAD, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE],
/* 0xD6 */ [DebuggerX86.INS.SALC], /* 0xD6 */ [DebuggerX86.INS.SALC],
@ -932,19 +932,19 @@ if (DEBUGGER) {
/* 0xE1 */ [DebuggerX86.INS.LOOPZ, DebuggerX86.TYPE_IMMREL | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xE1 */ [DebuggerX86.INS.LOOPZ, DebuggerX86.TYPE_IMMREL | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xE2 */ [DebuggerX86.INS.LOOP, DebuggerX86.TYPE_IMMREL | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xE2 */ [DebuggerX86.INS.LOOP, DebuggerX86.TYPE_IMMREL | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xE3 */ [DebuggerX86.INS.JCXZ, DebuggerX86.TYPE_IMMREL | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xE3 */ [DebuggerX86.INS.JCXZ, DebuggerX86.TYPE_IMMREL | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xE4 */ [DebuggerX86.INS.IN, DebuggerX86.TYPE_AL | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xE4 */ [DebuggerX86.INS.IN, DebuggerX86.TYPE_AL | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xE5 */ [DebuggerX86.INS.IN, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xE5 */ [DebuggerX86.INS.IN, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xE6 */ [DebuggerX86.INS.OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN, DebuggerX86.TYPE_AL | DebuggerX86.TYPE_IN], /* 0xE6 */ [DebuggerX86.INS.OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN, DebuggerX86.TYPE_AL | DebuggerX86.TYPE_IN],
/* 0xE7 */ [DebuggerX86.INS.OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_IN], /* 0xE7 */ [DebuggerX86.INS.OUT, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_IN],
/* 0xE8 */ [DebuggerX86.INS.CALL, DebuggerX86.TYPE_IMMREL | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN], /* 0xE8 */ [DebuggerX86.INS.CALL, DebuggerX86.TYPE_IMMREL | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN],
/* 0xE9 */ [DebuggerX86.INS.JMP, DebuggerX86.TYPE_IMMREL | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN], /* 0xE9 */ [DebuggerX86.INS.JMP, DebuggerX86.TYPE_IMMREL | DebuggerX86.TYPE_WORD | DebuggerX86.TYPE_IN],
/* 0xEA */ [DebuggerX86.INS.JMP, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_FARP | DebuggerX86.TYPE_IN], /* 0xEA */ [DebuggerX86.INS.JMP, DebuggerX86.TYPE_IMM | DebuggerX86.TYPE_FARP | DebuggerX86.TYPE_IN],
/* 0xEB */ [DebuggerX86.INS.JMP, DebuggerX86.TYPE_IMMREL | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN], /* 0xEB */ [DebuggerX86.INS.JMP, DebuggerX86.TYPE_IMMREL | DebuggerX86.TYPE_BYTE | DebuggerX86.TYPE_IN],
/* 0xEC */ [DebuggerX86.INS.IN, DebuggerX86.TYPE_AL | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_DX | DebuggerX86.TYPE_SHORT | DebuggerX86.TYPE_IN], /* 0xEC */ [DebuggerX86.INS.IN, DebuggerX86.TYPE_AL | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_DX | DebuggerX86.TYPE_SHORT | DebuggerX86.TYPE_IN],
/* 0xED */ [DebuggerX86.INS.IN, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_DX | DebuggerX86.TYPE_SHORT | DebuggerX86.TYPE_IN], /* 0xED */ [DebuggerX86.INS.IN, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_OUT, DebuggerX86.TYPE_DX | DebuggerX86.TYPE_SHORT | DebuggerX86.TYPE_IN],
/* 0xEE */ [DebuggerX86.INS.OUT, DebuggerX86.TYPE_DX | DebuggerX86.TYPE_SHORT | DebuggerX86.TYPE_IN, DebuggerX86.TYPE_AL | DebuggerX86.TYPE_IN], /* 0xEE */ [DebuggerX86.INS.OUT, DebuggerX86.TYPE_DX | DebuggerX86.TYPE_SHORT | DebuggerX86.TYPE_IN, DebuggerX86.TYPE_AL | DebuggerX86.TYPE_IN],
/* 0xEF */ [DebuggerX86.INS.OUT, DebuggerX86.TYPE_DX | DebuggerX86.TYPE_SHORT | DebuggerX86.TYPE_IN, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_IN], /* 0xEF */ [DebuggerX86.INS.OUT, DebuggerX86.TYPE_DX | DebuggerX86.TYPE_SHORT | DebuggerX86.TYPE_IN, DebuggerX86.TYPE_AX | DebuggerX86.TYPE_IN],
/* 0xF0 */ [DebuggerX86.INS.LOCK, DebuggerX86.TYPE_PREFIX], /* 0xF0 */ [DebuggerX86.INS.LOCK, DebuggerX86.TYPE_PREFIX],
/* 0xF1 */ [DebuggerX86.INS.NONE], /* 0xF1 */ [DebuggerX86.INS.NONE],
@ -2588,6 +2588,22 @@ if (DEBUGGER) {
} }
}; };
/**
* parseAddrReference(s, sAddr)
*
* Returns the given string with the given address references replaced with the contents of the address.
*
* @this {Debugger}
* @param {string} s
* @param {string} sAddr
* @return {string}
*/
DebuggerX86.prototype.parseAddrReference = function(s, sAddr)
{
var dbgAddr = this.parseAddr(sAddr);
return s.replace('[' + sAddr + ']', dbgAddr? str.toHex(this.getWord(dbgAddr), dbgAddr.fData32? 8 : 4) : "undefined");
};
/** /**
* incAddr(dbgAddr, inc) * incAddr(dbgAddr, inc)
* *
@ -3375,7 +3391,7 @@ if (DEBUGGER) {
{ {
var cch = 0; var cch = 0;
var n = this.getRegValue(iReg); var n = this.getRegValue(iReg);
if (n !== undefined) { if (n != null) {
switch(iReg) { switch(iReg) {
case DebuggerX86.REG_AL: case DebuggerX86.REG_AL:
case DebuggerX86.REG_CL: case DebuggerX86.REG_CL:

View file

@ -38,6 +38,25 @@ if (DEBUGGER) {
} }
} }
/**
* Debugger Address Object
*
* This is the basic structure; other debuggers may extend it.
*
* addr address
* fTemporary true if this is a temporary breakpoint address
* sCmd set for breakpoint addresses if there's an associated command string
* aCmds preprocessed commands (from sCmd)
*
* @typedef {{
* addr:(number|undefined),
* fTemporary:(boolean|undefined),
* sCmd:(string|undefined),
* aCmds:(Array.<string>|undefined)
* }} DbgAddr
*/
var DbgAddr;
/** /**
* Debugger(parmsDbg) * Debugger(parmsDbg)
* *
@ -85,11 +104,11 @@ function Debugger(parmsDbg)
* digits, or underscores) and the property value is the variable's numeric value. See doVar() * digits, or underscores) and the property value is the variable's numeric value. See doVar()
* and setVariable() for details. * and setVariable() for details.
* *
* Note that parseValue(), through its reliance on str.parseInt(), assumes a default base of 16 * Note that parseValue() parses variables before numbers, so any variable that looks like a
* if no base is explicitly indicated (eg, a trailing decimal period), and if you define variable * unprefixed hex value (eg, "a5" as opposed to "0xa5") will trump the numeric value. Unprefixed
* names containing exclusively hex alpha characters (a-f), those variables will take precedence * hex values are a convenience of parseValue(), which always calls str.parseInt() with a default
* over the corresponding hex values. In other words, if you define variables "a" and "b", you * base of 16; however, that default be overridden with a variety of explicit prefixes or suffixes
* will no longer be able to simply type "a" or "b" to specify the decimal values 10 or 11. * (eg, a trailing period to indicate a decimal number).
*/ */
this.aVariables = {}; this.aVariables = {};
@ -220,21 +239,6 @@ if (DEBUGGER) {
return true; return true;
}; };
/**
* getPrevCommand()
*
* @this {Debugger}
* @return {string|null}
*/
Debugger.prototype.getPrevCommand = function()
{
var sCmd = null;
if (this.iPrevCmd < this.aPrevCmds.length - 1) {
sCmd = this.aPrevCmds[++this.iPrevCmd];
}
return sCmd;
};
/** /**
* getNextCommand() * getNextCommand()
* *
@ -253,6 +257,50 @@ if (DEBUGGER) {
return sCmd; return sCmd;
}; };
/**
* getPrevCommand()
*
* @this {Debugger}
* @return {string|null}
*/
Debugger.prototype.getPrevCommand = function()
{
var sCmd = null;
if (this.iPrevCmd < this.aPrevCmds.length - 1) {
sCmd = this.aPrevCmds[++this.iPrevCmd];
}
return sCmd;
};
/**
* getRegIndex(sReg, off)
*
* NOTE: This must be implemented by the individual debuggers.
*
* @this {Debugger}
* @param {string} sReg
* @param {number} [off] optional offset into sReg
* @return {number} register index, or -1 if not found
*/
Debugger.prototype.getRegIndex = function(sReg, off)
{
return -1;
};
/**
* getRegValue(iReg)
*
* NOTE: This must be implemented by the individual debuggers.
*
* @this {Debugger}
* @param {number} iReg
* @return {number|undefined}
*/
Debugger.prototype.getRegValue = function(iReg)
{
return undefined;
};
/** /**
* parseCommand(sCmd, fSave, chSep) * parseCommand(sCmd, fSave, chSep)
* *
@ -425,6 +473,23 @@ if (DEBUGGER) {
return value; return value;
}; };
/**
* parseAddrReference(s, sAddr)
*
* Returns the given string with the given address references replaced with the contents of the address.
*
* NOTE: This must be implemented by the individual debuggers.
*
* @this {Debugger}
* @param {string} s
* @param {string} sAddr
* @return {string}
*/
Debugger.prototype.parseAddrReference = function(s, sAddr)
{
return s.replace('[' + sAddr + ']', "unimplemented");
};
/** /**
* parseReference(s) * parseReference(s)
* *
@ -447,8 +512,7 @@ if (DEBUGGER) {
} }
while (a = s.match(/\[(.*?)]/)) { while (a = s.match(/\[(.*?)]/)) {
if (a[1].indexOf('[') >= 0) break; // unsupported nested bracket(s) if (a[1].indexOf('[') >= 0) break; // unsupported nested bracket(s)
var dbgAddr = this.parseAddr(a[1]); s = this.parseAddrReference(s, a[1]);
s = s.replace('[' + a[1] + ']', dbgAddr? str.toHex(this.getWord(dbgAddr), dbgAddr.fData32? 8 : 4) : "undefined");
} }
return this.parseSysVars(s); return this.parseSysVars(s);
}; };
@ -492,15 +556,15 @@ if (DEBUGGER) {
Debugger.prototype.parseValue = function(sValue, sName, fQuiet) Debugger.prototype.parseValue = function(sValue, sName, fQuiet)
{ {
var value; var value;
if (sValue !== undefined) { if (sValue != null) {
var iReg = this.getRegIndex(sValue); var iReg = this.getRegIndex(sValue);
if (iReg >= 0) { if (iReg >= 0) {
value = this.getRegValue(iReg); value = this.getRegValue(iReg);
} else { } else {
value = this.getVariable(sValue); value = this.getVariable(sValue);
if (value === undefined) value = str.parseInt(sValue, 16); if (value == null) value = str.parseInt(sValue, 16);
} }
if (value === undefined && !fQuiet) this.println("invalid " + (sName? sName : "value") + ": " + sValue); if (value == null && !fQuiet) this.println("invalid " + (sName? sName : "value") + ": " + sValue);
} else { } else {
if (!fQuiet) this.println("missing " + (sName || "value")); if (!fQuiet) this.println("missing " + (sName || "value"));
} }

View file

@ -1,8 +1,8 @@
(function(){var l,n={ke:1,le:3,me:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Sb:65,Gc:66,Ic:67,Vb:68,E:69,Lc:70,Mc:71,Nc:72,Oc:73,Vc:74,Wc:75,Xb:76,cd:77,dd:78,fd:79,gd:80,Q:81,nd:82,qd:83,wd:84,xd:85,yd:86,zd:87,Bd:88,Cd:89,Dd:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Te:97,Ue:98,Ve:99,d:100,e:101,We:102,Ye:103,Ze:104,$e:105,af:106,k:107,bf:108, (function(){var l,n={me:1,ne:3,oe:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ub:65,Ic:66,Kc:67,Xb:68,E:69,Nc:70,Oc:71,Pc:72,Qc:73,Xc:74,Yc:75,Zb:76,ed:77,fd:78,hd:79,jd:80,Q:81,pd:82,sd:83,yd:84,zd:85,Ad:86,Bd:87,Dd:88,Ed:89,Fd:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Ve:97,We:98,Xe:99,d:100,e:101,Ye:102,Ze:103,$e:104,af:105,bf:106,k:107,cf:108,
cf:109,n:110,df:111,p:112,q:113,r:114,ef:115,t:116,gf:117,hf:118,jf:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126}; df:109,n:110,ef:111,p:112,q:113,r:114,ff:115,t:116,hf:117,jf:118,kf:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126};
function aa(a){var b=16,c;if(a){b||(b=10);if("$"==a.charAt(0))b=16,a=a.substr(1);else if("0x"==a.substr(0,2))b=16,a=a.substr(2);else{var d=a.charAt(a.length-1).toLowerCase();"h"==d?(b=16,d=null):"."==d&&(b=10,d=null);null==d&&(a=a.substr(0,a.length-1))}var e,d=a,f=b;(f&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):2==f&&null!==d.match(/^[01]+$/i):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c} function aa(a){var b=16,c;if(a){b||(b=10);if("$"==a.charAt(0))b=16,a=a.substr(1);else if("0x"==a.substr(0,2))b=16,a=a.substr(2);else{var d=a.charAt(a.length-1).toLowerCase();"h"==d?(b=16,d=null):"."==d&&(b=10,d=null);null==d&&(a=a.substr(0,a.length-1))}var e,d=a,f=b;(f&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):2==f&&null!==d.match(/^[01]+$/i):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}
function t(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function ba(a){return"0x"+t(a,2)}function v(a){return"0x"+t(a,4)}function ea(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 fa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b} function t(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function ba(a){return"0x"+t(a,2)}function v(a){return"0x"+t(a,4)}function ea(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 fa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
function ga(){var a=ha();return-1!==a.indexOf("pcjs.org",a.length-8)}var ia={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ka(a){return a.replace(/[&<>"']/g,function(a){return ia[a]})}function la(a,b){return(a+" ").slice(0,b)}function ma(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")} function ga(){var a=ha();return-1!==a.indexOf("pcjs.org",a.length-8)}var ja={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ka(a){return a.replace(/[&<>"']/g,function(a){return ja[a]})}function la(a,b){return(a+" ").slice(0,b)}function ma(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var na={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};function oa(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var h=d+e>>1,g;g=c(b,a[h]);0<g?d=h+1:(e=h,f=!g)}return f?d:~d}var pa=Date.now||function(){return+new Date}; var na={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};function oa(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var h=d+e>>1,g;g=c(b,a[h]);0<g?d=h+1:(e=h,f=!g)}return f?d:~d}var pa=Date.now||function(){return+new Date};
function qa(){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 ra(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1} function qa(){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 ra(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1}
function sa(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"== function sa(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"==
@ -11,58 +11,58 @@ function ta(){return window?window.navigator.userAgent:""}function w(a){window&&
function ya(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function za(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Aa(a){if(window){var b=ta();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 Ba(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()} function ya(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function za(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Aa(a){if(window){var b=ta();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 Ba(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Ca(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Da={init:[],show:[],exit:[]},Ea=!1,Fa=!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){Da.init.push(a)} function Ca(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Da={init:[],show:[],exit:[]},Ea=!1,Fa=!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){Da.init.push(a)}
function Na(a){if(Ka)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Oa("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Pa(a){!Ka&&a?(Ka=!0,Ea&&Qa("init"),Fa&&Qa("show")):Ka=a}function Qa(a){Da[a]&&Na(Da[a])}La("onload",function(){Ea=!0;Na(Da.init)});La("onpageshow",function(){Fa=!0;Na(Da.show)});La(Aa("Opera")||Aa("iOS")?"onunload":"onbeforeunload",function(){Na(Da.exit)}); function Na(a){if(Ka)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Oa("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Pa(a){!Ka&&a?(Ka=!0,Ea&&Qa("init"),Fa&&Qa("show")):Ka=a}function Qa(a){Da[a]&&Na(Da[a])}La("onload",function(){Ea=!0;Na(Da.init)});La("onpageshow",function(){Fa=!0;Na(Da.show)});La(Aa("Opera")||Aa("iOS")?"onunload":"onbeforeunload",function(){Na(Da.exit)});
function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.cc=b.comment;this.Kd=b;b=this.id.indexOf(".");0>b?this.cb=this.id:(this.Ab=this.id.substr(0,b),this.cb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,eb:!1,Kb:!1,xa:!1,error:!1};this.Db=null;this.C.error=!1;this.N={};this.H=null;this.ta=d||0;Ra.push(this)}var Sa=void 0,Va={}; function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.ec=b.comment;this.Md=b;b=this.id.indexOf(".");0>b?this.cb=this.id:(this.Ab=this.id.substr(0,b),this.cb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,eb:!1,Kb:!1,xa:!1,error:!1};this.Db=null;this.C.error=!1;this.N={};this.H=null;this.ta=d||0;Ra.push(this)}var Sa=void 0,Va={};
if(window){Sa||(Sa=window.location.search.substr(1));for(var Wa,Xa=/\+/g,$a=/([^&=]+)=?([^&]*)/g;Wa=$a.exec(Sa);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function ab(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} if(window){Sa||(Sa=window.location.search.substr(1));for(var Wa,Xa=/\+/g,$a=/([^&=]+)=?([^&]*)/g;Wa=$a.exec(Sa);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function ab(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function bb(a,b){b||(b=z);a.prototype=ab(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var cb=window.PCjs.Machines||(window.PCjs.Machines={}),Ra=window.PCjs.Components||(window.PCjs.Components=[])}else cb={},Ra=[];function db(a,b,c){cb[a]&&b&&(cb[a][b]=c)}function Oa(a,b,c){b||w((c?c+": ":"")+a)} function bb(a,b){b||(b=z);a.prototype=ab(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var cb=window.PCjs.Machines||(window.PCjs.Machines={}),Ra=window.PCjs.Components||(window.PCjs.Components=[])}else cb={},Ra=[];function db(a,b,c){cb[a]&&b&&(cb[a][b]=c)}function Oa(a,b,c){b||w((c?c+": ":"")+a)}
function eb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ra.length;b++){var d=Ra[b];a&&d.id.indexOf(a)||c.push(d)}return c}function fb(a){if(void 0!==a){var b;for(b=0;b<Ra.length;b++)if(Ra[b].id===a)return Ra[b]}return null}function gb(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<Ra.length;d++)if(c)c==Ra[d]&&(c=null);else if(!(a!=Ra[d].type||b&&Ra[d].id.indexOf(b)))return Ra[d]}return null} function eb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ra.length;b++){var d=Ra[b];a&&d.id.indexOf(a)||c.push(d)}return c}function fb(a){if(void 0!==a){var b;for(b=0;b<Ra.length;b++)if(Ra[b].id===a)return Ra[b]}return null}function gb(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<Ra.length;d++)if(c)c==Ra[d]&&(c=null);else if(!(a!=Ra[d].type||b&&Ra[d].id.indexOf(b)))return Ra[d]}return null}
function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){w(c.message+" ("+a+")")}return b}function hb(a,b){for(var c=D(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),m=0;m<k.length;m++)switch(g=k[m],g){case "pc8080-binding":(g=A(h))&&g.binding&&a.oa(g.type,g.binding,h,g.value),m=k.length}}}} function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){w(c.message+" ("+a+")")}return b}function hb(a,b){for(var c=D(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),m=0;m<k.length;m++)switch(g=k[m],g){case "pc8080-binding":(g=A(h))&&g.binding&&a.oa(g.type,g.binding,h,g.value),m=k.length}}}}
function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c} function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
z.prototype={constructor:z,parent:null,toString:function(){return this.name?this.name:this.id||this.type},oa:function(a,b,c){switch(b){case "clear":return this.N[b]||(this.N[b]=c,c.onclick=function(a){return function(){a.N.print&&(a.N.print.value="")}}(this)),!0;case "print":return this.N[b]||(this.Ga=this.N[b]=c,c.value="",this.g=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c), z.prototype={constructor:z,parent:null,toString:function(){return this.name?this.name:this.id||this.type},oa:function(a,b,c){switch(b){case "clear":return this.N[b]||(this.N[b]=c,c.onclick=function(a){return function(){a.N.print&&(a.N.print.value="")}}(this)),!0;case "print":return this.N[b]||(this.Ga=this.N[b]=c,c.value="",this.g=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
this.ja=function(a){this.g(a,this.cb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.cb+": "+a)},ja:function(a,b,c){Oa(a,b,c||this.type)},Ea:function(){return this.C.xa=!0},Ia:function(a,b){b&&(this.C.xa=!1);return!0}};function E(a,b,c,d,e,f,h){a.H&&(!0===h?h=0:null==h&&(h=a.ta),ib(a.H,a,b,c,d,e,f,h))}function jb(a,b){a.H&&kb(a,0)&&a.H.message(b,void 0)}function kb(a,b){if(a.H){a===a.H?b|=0:b=b||a.ta;var c=a.H.ta&b;return!!b&&c===b||!!(c&a.H.Hd)}return!1} this.ja=function(a){this.g(a,this.cb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.cb+": "+a)},ja:function(a,b,c){Oa(a,b,c||this.type)},Ea:function(){return this.C.xa=!0},Ia:function(a,b){b&&(this.C.xa=!1);return!0}};function E(a,b,c,d,e,f,h){a.H&&(!0===h?h=0:null==h&&(h=a.ta),ib(a.H,a,b,c,d,e,f,h))}function jb(a,b){a.H&&kb(a,0)&&a.H.message(b,void 0)}function kb(a,b){if(a.H){a===a.H?b|=0:b=b||a.ta;var c=a.H.ta&b;return!!b&&c===b||!!(c&a.H.Jd)}return!1}
function lb(a,b){if(a.C.Kb)return a.C.eb&&(a.C.eb=!1),a.C.Kb=!1;if(a.C.error)return a.g(a.toString()+" error"),!1;a.C.eb=b;return a.C.eb}function mb(a,b){a.C.eb&&(b?a.C.Kb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.C.eb}function F(a){if(!a.C.error&&(a.C.ready=!0,a.C.ready)){var b=a.Db;a.Db=null;b&&b()}}function nb(a,b){b&&(a.C.ready?b():a.Db=b);return a.C.ready}function qb(a,b){a.C.error=!0;a.ja(b)} function lb(a,b){if(a.C.Kb)return a.C.eb&&(a.C.eb=!1),a.C.Kb=!1;if(a.C.error)return a.g(a.toString()+" error"),!1;a.C.eb=b;return a.C.eb}function mb(a,b){a.C.eb&&(b?a.C.Kb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.C.eb}function F(a){if(!a.C.error&&(a.C.ready=!0,a.C.ready)){var b=a.Db;a.Db=null;b&&b()}}function nb(a,b){b&&(a.C.ready?b():a.Db=b);return a.C.ready}function ob(a,b){a.C.error=!0;a.ja(b)}
var rb="undefined"!==typeof ArrayBuffer,sb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1, var rb="undefined"!==typeof ArrayBuffer,sb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1],tb={cpu:1,bus:64,mem:128,port:256,nvr:16384,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){z.call(this,"Panel",a,ub)}bb(ub);l=ub.prototype; 0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1],tb={cpu:1,bus:64,mem:128,port:256,nvr:16384,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){z.call(this,"Panel",a,ub)}bb(ub);l=ub.prototype;
l.oa=function(a,b,c,d){return this.B&&this.B.oa(a,b,c,d)||this.b&&this.b.oa(a,b,c,d)||this.K&&this.K.oa(a,b,c,d)||this.H&&this.H.oa(a,b,c,d)?!0:this.parent.oa.call(this,a,b,c,d)};l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;this.K=vb(a,"Keyboard")};l.Ea=function(a,b){b||wb();return!0};l.Ia=function(){return!0};l.Ja=function(){};function wb(){for(var a=!1,b=D(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=A(d),f=fb(e.id);f||(a=!0,f=new ub(e));hb(f,d);a&&F(f)}}Ma(wb); l.oa=function(a,b,c,d){return this.B&&this.B.oa(a,b,c,d)||this.b&&this.b.oa(a,b,c,d)||this.K&&this.K.oa(a,b,c,d)||this.H&&this.H.oa(a,b,c,d)?!0:this.parent.oa.call(this,a,b,c,d)};l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;this.K=vb(a,"Keyboard")};l.Ea=function(a,b){b||wb();return!0};l.Ia=function(){return!0};l.Ja=function(){};function wb(){for(var a=!1,b=D(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=A(d),f=fb(e.id);f||(a=!0,f=new ub(e));hb(f,d);a&&F(f)}}Ma(wb);
function xb(a,b,c){z.call(this,"Bus",a,xb);this.b=b;this.H=c;this.G=a.busWidth||16;this.L=Math.pow(2,this.G);this.w=this.L-1|0;this.sa=16>=this.G?10:20>=this.G?12:24>=this.G?14:15;this.Ha=1<<this.sa;this.M=this.Ha>>2;this.u=this.Ha-1;this.J=this.L/this.Ha|0;this.K=this.J-1;this.B=[];this.j=[];this.I=this.D=!1;this.O=[];this.P=[];a=new G;yb(a,this.H);this.X=Array(this.J);for(b=0;b<this.J;b++)this.X[b]=a;F(this)}bb(xb);l=xb.prototype;l.reset=function(){};l.Ea=function(a,b){b||this.reset();return!0}; function xb(a,b,c){z.call(this,"Bus",a,xb);this.b=b;this.H=c;this.G=a.busWidth||16;this.L=Math.pow(2,this.G);this.w=this.L-1|0;this.sa=16>=this.G?10:20>=this.G?12:24>=this.G?14:15;this.Ha=1<<this.sa;this.M=this.Ha>>2;this.u=this.Ha-1;this.J=this.L/this.Ha|0;this.K=this.J-1;this.B=[];this.j=[];this.I=this.D=!1;this.O=[];this.P=[];a=new G;yb(a,this.H);this.X=Array(this.J);for(b=0;b<this.J;b++)this.X[b]=a;F(this)}bb(xb);l=xb.prototype;l.reset=function(){};l.Ea=function(a,b){b||this.reset();return!0};
function zb(a,b,c,d){for(var e=b,f=c,h=e>>>a.sa;0<f&&h<a.X.length;){var g=a.X[h],k=h*a.Ha,m=a.Ha-(e-k);m>f&&(m=f);if(g&&g.size){if(g.type==d){if(e+f<=g.F)return g.xb+=g.F-e,g.F=e,!0;if(e>=g.F+g.xb){m=g.size-(e-k);m>f&&(m=f);g.xb=e-g.F+m;e=k+a.Ha;f-=m;h++;continue}}return Ab(1,e,f)}e=new G(e,m,a.Ha,d);yb(e,a.H,g);a.X[h++]=e;e=k+a.Ha;f-=m}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Bb[d]+" at "+v(b)),!0):Ab(2,b,c)}l.aa=function(a){return this.X[(a&this.w)>>>this.sa].jb(a&this.u,a)}; function zb(a,b,c,d){for(var e=b,f=c,h=e>>>a.sa;0<f&&h<a.X.length;){var g=a.X[h],k=h*a.Ha,m=a.Ha-(e-k);m>f&&(m=f);if(g&&g.size){if(g.type==d){if(e+f<=g.F)return g.xb+=g.F-e,g.F=e,!0;if(e>=g.F+g.xb){m=g.size-(e-k);m>f&&(m=f);g.xb=e-g.F+m;e=k+a.Ha;f-=m;h++;continue}}return Ab(1,e,f)}e=new G(e,m,a.Ha,d);yb(e,a.H,g);a.X[h++]=e;e=k+a.Ha;f-=m}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Bb[d]+" at "+v(b)),!0):Ab(2,b,c)}l.aa=function(a){return this.X[(a&this.w)>>>this.sa].jb(a&this.u,a)};
function Cb(a,b){return a.X[(b&a.w)>>>a.sa].vb(b&a.u,b)}l.Sa=function(a){var b=a&this.u,c=(a&this.w)>>>this.sa;return b!=this.u?this.X[c].zc(b,a):this.X[c++].jb(b,a)|this.X[c&this.K].jb(0,a+1)<<8};function Db(a,b){var c=b&a.u,d=(b&a.w)>>>a.sa;return c!=a.u?a.X[d].Nb(c,b):a.X[d++].vb(c,b)|a.X[d&a.K].vb(0,b+1)<<8}l.va=function(a,b){this.X[(a&this.w)>>>this.sa].lb(a&this.u,b&255,a)};function Eb(a,b,c){a.X[(b&a.w)>>>a.sa].yb(b&a.u,c&255,b)} function Cb(a,b){return a.X[(b&a.w)>>>a.sa].vb(b&a.u,b)}l.$a=function(a){var b=a&this.u,c=(a&this.w)>>>this.sa;return b!=this.u?this.X[c].Bc(b,a):this.X[c++].jb(b,a)|this.X[c&this.K].jb(0,a+1)<<8};function Db(a,b){var c=b&a.u,d=(b&a.w)>>>a.sa;return c!=a.u?a.X[d].Pb(c,b):a.X[d++].vb(c,b)|a.X[d&a.K].vb(0,b+1)<<8}l.va=function(a,b){this.X[(a&this.w)>>>this.sa].lb(a&this.u,b&255,a)};function Eb(a,b,c){a.X[(b&a.w)>>>a.sa].yb(b&a.u,c&255,b)}
l.Hb=function(a,b){var c=a&this.u,d=(a&this.w)>>>this.sa;c!=this.u?this.X[d].Bc(c,b&65535,a):(this.X[d++].lb(c,b&255,a),this.X[d&this.K].lb(0,b>>8&255,a+1))};function Fb(a,b){if(void 0===b)return a.I=!a.I,a.I;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}function Hb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.B[k]?w("Input port "+v(k)+" already registered"):f.B[k]=[g,!1]}} l.Hb=function(a,b){var c=a&this.u,d=(a&this.w)>>>this.sa;c!=this.u?this.X[d].Dc(c,b&65535,a):(this.X[d++].lb(c,b&255,a),this.X[d&this.K].lb(0,b>>8&255,a+1))};function Fb(a,b){if(void 0===b)return a.I=!a.I,a.I;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}function Gb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.B[k]?w("Input port "+v(k)+" already registered"):f.B[k]=[g,!1]}}
function Ib(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.B[b],g=a.O[b]||1,k=1==g?255:2==g?65535:-1,m=k;void 0!==h?(h[0]&&(m=h[0](b,c),void 0===m?m=k:m&=k),a.H&&a.I!=h[1]&&Jb(a.H,b,m)):a.H&&(ib(a.H,a,b,null,c),a.I&&Jb(a.H,b,m));e|=m<<f;f+=g<<3;b+=g;d-=g}return e}function Sb(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.j[b]&&(a.j[b]=[null,!1]);a.j[b][1]=!a.j[b][1];return a.j[b][1]} function Ib(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.B[b],g=a.O[b]||1,k=1==g?255:2==g?65535:-1,m=k;void 0!==h?(h[0]&&(m=h[0](b,c),void 0===m?m=k:m&=k),a.H&&a.I!=h[1]&&Jb(a.H,b,m)):a.H&&(ib(a.H,a,b,null,c),a.I&&Jb(a.H,b,m));e|=m<<f;f+=g<<3;b+=g;d-=g}return e}function Kb(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.j[b]&&(a.j[b]=[null,!1]);a.j[b][1]=!a.j[b][1];return a.j[b][1]}
function Tb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.j[k]?w("Output port "+v(k)+" already registered"):f.j[k]=[g,!1]}}function Ub(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.j[b],g=a.P[b]||1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h){if(h[0])h[0](b,k,d);a.H&&a.D!=h[1]&&Vb(a.H,b,k)}else a.H&&(ib(a.H,a,b,k,d),a.D&&Vb(a.H,b,k));f+=g<<3;b+=g;e-=g}} function Tb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.j[k]?w("Output port "+v(k)+" already registered"):f.j[k]=[g,!1]}}function Ub(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.j[b],g=a.P[b]||1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h){if(h[0])h[0](b,k,d);a.H&&a.D!=h[1]&&Vb(a.H,b,k)}else a.H&&(ib(a.H,a,b,k,d),a.D&&Vb(a.H,b,k));f+=g<<3;b+=g;e-=g}}
function Ab(a,b,c){w("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Wb;if(rb){var Xb=new ArrayBuffer(2);(new DataView(Xb)).setUint16(0,256,!0);Wb=256===(new Uint16Array(Xb))[0]}else Wb=!1;var Yb=Wb; function Ab(a,b,c){w("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Wb;if(rb){var Xb=new ArrayBuffer(2);(new DataView(Xb)).setUint16(0,256,!0);Wb=256===(new Uint16Array(Xb))[0]}else Wb=!1;var Yb=Wb;
function G(a,b,c,d){this.id=Zb+=2;this.b=null;this.F=a;this.xb=b;this.size=c||0;this.type=d||$b;this.N=d==ac;yb(this);this.Na=this.vc=!1;if(c)if(rb)this.I=new ArrayBuffer(c),this.D=new DataView(this.I,0,c),this.u=new Uint8Array(this.I,0,c),this.K=new Uint16Array(this.I,0,c>>1),this.b=new Int32Array(this.I,0,c>>2),bc(this,Yb?cc:dc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;bc(this,ec)}else bc(this)}var $b=0,ac=2,Bb=["NONE","RAM","ROM","VID","H/W"],Zb=0; function G(a,b,c,d){this.id=Zb+=2;this.b=null;this.F=a;this.xb=b;this.size=c||0;this.type=d||$b;this.N=d==ac;yb(this);this.Na=this.xc=!1;if(c)if(rb)this.I=new ArrayBuffer(c),this.D=new DataView(this.I,0,c),this.u=new Uint8Array(this.I,0,c),this.K=new Uint16Array(this.I,0,c>>1),this.b=new Int32Array(this.I,0,c>>2),bc(this,Yb?cc:dc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;bc(this,ec)}else bc(this)}var $b=0,ac=2,Bb=["NONE","RAM","ROM","VID","H/W"],Zb=0;
G.prototype={constructor:G,parent:null,save:function(){var a,b;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(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.Na=!0}return!1},$a:function(a,b){b?0===this.j++&&fc(this,gc,!1):0===this.B++&&hc(this,gc,!1)},J:function(){this.H&&kb(this.H,129)&&this.H.message("attempt to read invalid block %"+t(this.F),!0); G.prototype={constructor:G,parent:null,save:function(){var a,b;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(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.Na=!0}return!1},Za:function(a,b){b?0===this.j++&&fc(this,gc,!1):0===this.B++&&hc(this,gc,!1)},J:function(){this.H&&kb(this.H,129)&&this.H.message("attempt to read invalid block %"+t(this.F),!0);
return 255},w:function(a,b){this.H&&kb(this.H,129)&&this.H.message("attempt to write "+v(b)+" to invalid block %"+t(this.F),!0)},L:function(a,b){return this.jb(a++,b++)|this.jb(a,b)<<8},G:function(a,b,c){this.lb(a++,b&255,c++);this.lb(a,b>>8,c)},Y:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},fa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},ka:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.Na=!0},za:function(a, return 255},w:function(a,b){this.H&&kb(this.H,129)&&this.H.message("attempt to write "+v(b)+" to invalid block %"+t(this.F),!0)},L:function(a,b){return this.jb(a++,b++)|this.jb(a,b)<<8},G:function(a,b,c){this.lb(a++,b&255,c++);this.lb(a,b>>8,c)},Y:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},fa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},ka:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.Na=!0},za:function(a,
b){var c=a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Na=!0},O:function(a,b){if(this.H&&null!=this.F){var c=this.H;ic(c,this.F+a,1,c.O)&&c.pa(!0)}return this.vb(a,b)},ca:function(a,b){if(this.H&&null!=this.F){var c=this.H;ic(c,this.F+a,2,c.O)&&c.pa(!0)}return this.Nb(a,b)},ia:function(a,b,c){if(this.H&&null!=this.F){var d=this.H;ic(d,this.F+a,1,d.D)&&d.pa(!0)}this.N?this.w(a,b,c):this.yb(a,b,c)},la:function(a, b){var c=a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Na=!0},O:function(a,b){if(this.H&&null!=this.F){var c=this.H;ic(c,this.F+a,1,c.O)&&c.pa(!0)}return this.vb(a,b)},ca:function(a,b){if(this.H&&null!=this.F){var c=this.H;ic(c,this.F+a,2,c.O)&&c.pa(!0)}return this.Pb(a,b)},ia:function(a,b,c){if(this.H&&null!=this.F){var d=this.H;ic(d,this.F+a,1,d.D)&&d.pa(!0)}this.N?this.w(a,b,c):this.yb(a,b,c)},la:function(a,
b,c){if(this.H&&null!=this.F){var d=this.H;ic(d,this.F+a,2,d.D)&&d.pa(!0)}this.N?this.w(a,b,c):this.Rb(a,b,c)},M:function(a){return this.u[a]},P:function(a){return this.u[a]},ba:function(a){return this.D.getUint16(a,!0)},ea:function(a){return a&1?this.u[a]|this.u[a+1]<<8:this.K[a>>1]},ha:function(a,b){this.u[a]=b;this.Na=!0},cb:function(a,b){this.u[a]=b;this.Na=!0},qa:function(a,b){this.D.setUint16(a,b,!0);this.Na=!0},wa:function(a,b){a&1?(this.u[a]=b,this.u[a+1]=b>>8):this.K[a>>1]=b;this.Na=!0}}; b,c){if(this.H&&null!=this.F){var d=this.H;ic(d,this.F+a,2,d.D)&&d.pa(!0)}this.N?this.w(a,b,c):this.Tb(a,b,c)},M:function(a){return this.u[a]},P:function(a){return this.u[a]},ba:function(a){return this.D.getUint16(a,!0)},ea:function(a){return a&1?this.u[a]|this.u[a+1]<<8:this.K[a>>1]},ha:function(a,b){this.u[a]=b;this.Na=!0},cb:function(a,b){this.u[a]=b;this.Na=!0},qa:function(a,b){this.D.setUint16(a,b,!0);this.Na=!0},wa:function(a,b){a&1?(this.u[a]=b,this.u[a+1]=b>>8):this.K[a>>1]=b;this.Na=!0}};
function yb(a,b,c){a.H=b;a.B=a.j=0;c&&((a.B=c.B)&&hc(a,gc,!1),(a.j=c.j)&&fc(a,gc,!1))}function jc(a,b){b?0===--a.j&&(a.lb=a.N?a.w:a.yb,a.Bc=a.N?a.G:a.Rb):0===--a.B&&(a.jb=a.vb,a.zc=a.Nb)}function fc(a,b,c){c&&a.j||(a.lb=!a.N&&b[2]||a.w,a.Bc=!a.N&&b[3]||a.G);if(c||void 0===c)a.yb=b[2]||a.w,a.Rb=b[3]||a.G}function hc(a,b,c){c&&a.B||(a.jb=b[0]||a.J,a.zc=b[1]||a.L);if(c||void 0===c)a.vb=b[0]||a.J,a.Nb=b[1]||a.L}function bc(a,b){b||(b=kc);hc(a,b,void 0);fc(a,b,void 0)} function yb(a,b,c){a.H=b;a.B=a.j=0;c&&((a.B=c.B)&&hc(a,gc,!1),(a.j=c.j)&&fc(a,gc,!1))}function jc(a,b){b?0===--a.j&&(a.lb=a.N?a.w:a.yb,a.Dc=a.N?a.G:a.Tb):0===--a.B&&(a.jb=a.vb,a.Bc=a.Pb)}function fc(a,b,c){c&&a.j||(a.lb=!a.N&&b[2]||a.w,a.Dc=!a.N&&b[3]||a.G);if(c||void 0===c)a.yb=b[2]||a.w,a.Tb=b[3]||a.G}function hc(a,b,c){c&&a.B||(a.jb=b[0]||a.J,a.Bc=b[1]||a.L);if(c||void 0===c)a.vb=b[0]||a.J,a.Pb=b[1]||a.L}function bc(a,b){b||(b=kc);hc(a,b,void 0);fc(a,b,void 0)}
var kc=[],ec=[G.prototype.Y,G.prototype.fa,G.prototype.ka,G.prototype.za],gc=[G.prototype.O,G.prototype.ca,G.prototype.ia,G.prototype.la];if(rb)var dc=[G.prototype.M,G.prototype.ba,G.prototype.ha,G.prototype.qa],cc=[G.prototype.P,G.prototype.ea,G.prototype.cb,G.prototype.wa]; var kc=[],ec=[G.prototype.Y,G.prototype.fa,G.prototype.ka,G.prototype.za],gc=[G.prototype.O,G.prototype.ca,G.prototype.ia,G.prototype.la];if(rb)var dc=[G.prototype.M,G.prototype.ba,G.prototype.ha,G.prototype.qa],cc=[G.prototype.P,G.prototype.ea,G.prototype.cb,G.prototype.wa];
function lc(a,b){z.call(this,"CPU",a,lc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Ra=c;this.ha=Math.round(this.Y/1E4)/100;this.ab=this.ha*this.Ra;this.C.Aa=!1;this.C.Qb=!1;this.C.rb=a.autoStart;this.C.tc=!1;this.C.fb=!1;this.sb=this.O=0;this.tb=a.csStart;this.hb=a.csInterval;this.ib=a.csStop;this.w=[];this.Fa=this.bb.bind(this);F(this)}bb(lc);var mc=["power","reset"];l=lc.prototype; function lc(a,b){z.call(this,"CPU",a,lc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Ra=c;this.ha=Math.round(this.Y/1E4)/100;this.ab=this.ha*this.Ra;this.C.Aa=!1;this.C.Sb=!1;this.C.rb=a.autoStart;this.C.vc=!1;this.C.fb=!1;this.sb=this.O=0;this.tb=a.csStart;this.hb=a.csInterval;this.ib=a.csStop;this.w=[];this.Fa=this.bb.bind(this);F(this)}bb(lc);var mc=["power","reset"];l=lc.prototype;
l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.H=d;for(b=0;b<mc.length;b++)(c=this.N[mc[b]])&&this.B.oa(null,mc[b],c);this.I=vb(a,"ChipSet");a=nc(a,"autoStart");null!=a&&(this.C.rb="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1}; l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.H=d;for(b=0;b<mc.length;b++)(c=this.N[mc[b]])&&this.B.oa(null,mc[b],c);this.I=vb(a,"ChipSet");a=nc(a,"autoStart");null!=a&&(this.C.rb="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.Ea=function(a,b){if(!b){if(a&&this.restore){oc(this);if(!this.restore(a))return!1;pc(this)}else this.reset();if(this.H){var c=this.H;c.g("Type ? for help with PC8080 Debugger commands");c.Ja();if(c.za){var d=c.za;c.za=null;qc(c,d)}}else this.g("No debugger detected")}rc(this);return!0};l.Ia=function(a){return a?this.save():!0};l.rb=function(){return this.C.rb||!this.H&&void 0===this.N.run?(this.bb(!0),!0):!1};l.wc=function(){return 0}; l.Ea=function(a,b){if(!b){if(a&&this.restore){oc(this);if(!this.restore(a))return!1;pc(this)}else this.reset();if(this.H){var c=this.H;c.g("Type ? for help with PC8080 Debugger commands");c.Ja();if(c.za){var d=c.za;c.za=null;qc(c,d)}}else this.g("No debugger detected")}rc(this);return!0};l.Ia=function(a){return a?this.save():!0};l.rb=function(){return this.C.rb||!this.H&&void 0===this.N.run?(this.bb(!0),!0):!1};l.yc=function(){return 0};
function pc(a){void 0===a.tb&&(a.tb=0);void 0===a.hb&&(a.hb=-1);void 0===a.ib&&(a.ib=-1);a.C.fb=0<=a.tb&&0<a.hb;a.C.fb&&(a.sb=0,a.O=a.tb-a.M)}function sc(a,b){if(a.C.fb){var c=!1;a.sb=a.sb+a.wc()|0;a.O-=b;0>=a.O&&(a.O+=a.hb,c=!0);0<=a.ib&&a.ib<=Fc(a)&&(a.hb=a.ib=-1,pc(a),a.pa(),c=!0);c&&a.g(Fc(a)+" cycles: checksum="+t(a.sb))}} function pc(a){void 0===a.tb&&(a.tb=0);void 0===a.hb&&(a.hb=-1);void 0===a.ib&&(a.ib=-1);a.C.fb=0<=a.tb&&0<a.hb;a.C.fb&&(a.sb=0,a.O=a.tb-a.M)}function sc(a,b){if(a.C.fb){var c=!1;a.sb=a.sb+a.yc()|0;a.O-=b;0>=a.O&&(a.O+=a.hb,c=!0);0<=a.ib&&a.ib<=Fc(a)&&(a.hb=a.ib=-1,pc(a),a.pa(),c=!0);c&&a.g(Fc(a)+" cycles: checksum="+t(a.sb))}}
l.oa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.C.xa)a=!0;else{var b=null,c,g=eb(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.C.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.C.xa);c++);c==g.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.C.ready?"powered yet":"ready yet"+(b.Db?" (waiting for notification)":""))+".");a=!1}a&&(d.C.Aa?d.pa():d.bb())}; l.oa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.C.xa)a=!0;else{var b=null,c,g=eb(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.C.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.C.xa);c++);c==g.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.C.ready?"powered yet":"ready yet"+(b.Db?" (waiting for notification)":""))+".");a=!1}a&&(d.C.Aa?d.pa():d.bb())};
a=!0;break;case "speed":this.N[b]=c;a=!0;break;case "setSpeed":this.N[b]=c,c.onclick=function(){Gc(d,d.Ra<<1,!0)},c.textContent=this.ab.toFixed(2)+"Mhz",a=!0}return a};function Hc(a,b,c){a.M+=b;c&&(a.L=a.b=0)}function Ic(a,b){var c=1;b&&1<a.Ra&&a.K&&(c=a.K/a.ha);a.wa=Math.round(1E3/30);a.fa=Math.floor(a.Y/30*c);b||(a.P=a.fa);a.ia=0}function Fc(a){return a.M+a.G+a.L-a.b}function oc(a){a.K=0;a.za=0;a.M=a.G=a.L=a.b=0;pc(a);Gc(a,1)} a=!0;break;case "speed":this.N[b]=c;a=!0;break;case "setSpeed":this.N[b]=c,c.onclick=function(){Gc(d,d.Ra<<1,!0)},c.textContent=this.ab.toFixed(2)+"Mhz",a=!0}return a};function Hc(a,b,c){a.M+=b;c&&(a.L=a.b=0)}function Ic(a,b){var c=1;b&&1<a.Ra&&a.K&&(c=a.K/a.ha);a.wa=Math.round(1E3/30);a.fa=Math.floor(a.Y/30*c);b||(a.P=a.fa);a.ia=0}function Fc(a){return a.M+a.G+a.L-a.b}function oc(a){a.K=0;a.za=0;a.M=a.G=a.L=a.b=0;pc(a);Gc(a,1)}
function Gc(a,b,c){var d=!1;if(void 0!==b){.8>a.K/a.ab?b=1:d=!0;a.Ra=b;b=a.ha*a.Ra;if(a.ab!=b){a.ab=b;b=a.ab.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.wb()}Hc(a,a.G);a.G=0;a.D=pa();a.J=0;Ic(a);return d}function Jc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Kc(a,b,c){var d=-1;0<=b&&b<a.w.length&&(d=a.Y*a.Ra/1E3*c,a.w[b][0]=d)}function Lc(a){a.L-=a.b;a.b=0} function Gc(a,b,c){var d=!1;if(void 0!==b){.8>a.K/a.ab?b=1:d=!0;a.Ra=b;b=a.ha*a.Ra;if(a.ab!=b){a.ab=b;b=a.ab.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.wb()}Hc(a,a.G);a.G=0;a.D=pa();a.J=0;Ic(a);return d}function Jc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Kc(a,b,c){var d=-1;0<=b&&b<a.w.length&&(d=a.Y*a.Ra/1E3*c,a.w[b][0]=d)}function Lc(a){a.L-=a.b;a.b=0}
l.bb=function(a){if(lb(this,!0)){if(!this.C.Aa){Gc(this);this.B&&this.B.start(this.D,Fc(this));this.C.Aa=!0;this.C.Qb=!0;this.I&&this.I.start();var b=this.N.run;b&&(b.textContent="Halt");this.B&&(this.B.Ja(!0),a&&this.B.wb(!0))}this.ia>=this.Y&&Ic(this,!0);this.ba=0;this.ea=pa();this.J&&(a=this.ea-this.J,a>this.wa&&(this.D+=a,this.D>this.ea&&(this.D=this.ea)));try{do{for(var c=this.C.fb?1:this.fa,d=this.w.length-1;0<=d;d--){var e=this.w[d];0>e[0]||c>e[0]&&(c=e[0])}this.kb(c);var f=this.L-this.b;a= l.bb=function(a){if(lb(this,!0)){if(!this.C.Aa){Gc(this);this.B&&this.B.start(this.D,Fc(this));this.C.Aa=!0;this.C.Sb=!0;this.I&&this.I.start();var b=this.N.run;b&&(b.textContent="Halt");this.B&&(this.B.Ja(!0),a&&this.B.wb(!0))}this.ia>=this.Y&&Ic(this,!0);this.ba=0;this.ea=pa();this.J&&(a=this.ea-this.J,a>this.wa&&(this.D+=a,this.D>this.ea&&(this.D=this.ea)));try{do{for(var c=this.C.fb?1:this.fa,d=this.w.length-1;0<=d;d--){var e=this.w[d];0>e[0]||c>e[0]&&(c=e[0])}this.kb(c);var f=this.L-this.b;a=
f;for(var h=this.w.length-1;0<=h;h--){var g=this.w[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.ba+=f;this.G+=f;Hc(this,0,!0);sc(this,f);this.P-=f;if(0>=this.P){this.P+=this.fa;15<=++this.za&&(this.B&&this.B.Ja(),this.za=0);break}}while(this.C.Aa)}catch(k){this.pa();rc(this);this.B&&this.B.stop(pa(),Fc(this));lb(this,!1);qb(this,k.stack||k.message);return}c=setTimeout;d=this.Fa;this.J=pa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e=e-(this.J-this.ea);if(f=this.J-this.D)this.K=Math.round(this.G/ f;for(var h=this.w.length-1;0<=h;h--){var g=this.w[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.ba+=f;this.G+=f;Hc(this,0,!0);sc(this,f);this.P-=f;if(0>=this.P){this.P+=this.fa;15<=++this.za&&(this.B&&this.B.Ja(),this.za=0);break}}while(this.C.Aa)}catch(k){this.pa();rc(this);this.B&&this.B.stop(pa(),Fc(this));lb(this,!1);ob(this,k.stack||k.message);return}c=setTimeout;d=this.Fa;this.J=pa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e=e-(this.J-this.ea);if(f=this.J-this.D)this.K=Math.round(this.G/
(10*f))/100,864E5<=f&&(this.M=0,Gc(this));if(0>e||this.K<this.ab)-1E3>e&&(this.D-=e),e=0;this.ia+=this.ba;this.J+=e;c(d,e)}else rc(this),this.B&&this.B.stop(pa(),Fc(this))};l.kb=function(){return 0};l.pa=function(a){mb(this,!0);Lc(this);Hc(this,this.G);this.G=0;if(this.C.Aa){this.C.Aa=!1;this.I&&this.I.stop();var b=this.N.run;b&&(b.textContent="Run")}this.C.complete=a};function rc(a,b){if(a.B){for(var c=a.B,d=0;d<c.G.length;d++)Mc(c.G[d],b);a.B.Ja(b)}} (10*f))/100,864E5<=f&&(this.M=0,Gc(this));if(0>e||this.K<this.ab)-1E3>e&&(this.D-=e),e=0;this.ia+=this.ba;this.J+=e;c(d,e)}else rc(this),this.B&&this.B.stop(pa(),Fc(this))};l.kb=function(){return 0};l.pa=function(a){mb(this,!0);Lc(this);Hc(this,this.G);this.G=0;if(this.C.Aa){this.C.Aa=!1;this.I&&this.I.stop();var b=this.N.run;b&&(b.textContent="Run")}this.C.complete=a};function rc(a,b){if(a.B){for(var c=a.B,d=0;d<c.G.length;d++)Mc(c.G[d],b);a.B.Ja(b)}}
function Nc(a){this.yc=+a.model||8080;lc.call(this,a,1E6);this.ka=Oc;oc(this);this.C.complete=this.C.Jd=!1;this.la=0;this.ca=[];this.qa=0;Pc(this)}bb(Nc,lc);function Qc(a,b){a.ca.push(b)}l=Nc.prototype;l.reset=function(){this.C.Aa&&this.pa();Pc(this);oc(this);this.C.error=!1;this.parent.reset.call(this)};function Pc(a){a.i=0;a.S=0;a.T=0;a.U=0;a.V=0;a.W=0;a.Z=0;a.na=0;H(a,a.qa);Rc(a,0);a.j=0}function Sc(a,b){a.qa=b;H(a,b)} function Nc(a){this.Ac=+a.model||8080;lc.call(this,a,1E6);this.ka=Oc;oc(this);this.C.complete=this.C.Ld=!1;this.la=0;this.ca=[];this.qa=0;Pc(this)}bb(Nc,lc);function Qc(a,b){a.ca.push(b)}l=Nc.prototype;l.reset=function(){this.C.Aa&&this.pa();Pc(this);oc(this);this.C.error=!1;this.parent.reset.call(this)};function Pc(a){a.i=0;a.S=0;a.T=0;a.U=0;a.V=0;a.W=0;a.Z=0;a.na=0;H(a,a.qa);Rc(a,0);a.j=0}function Sc(a,b){a.qa=b;H(a,b)}
l.wc=function(){var a=this.i+this.S+this.T+this.U+this.V+this.W+this.Z|0;return a=a+this.na+this.R+Tc(this)|0}; l.yc=function(){var a=this.i+this.S+this.T+this.U+this.V+this.W+this.Z|0;return a=a+this.na+this.R+Tc(this)|0};
l.save=function(){var a=new Uc(this);I(a,0,[this.i,this.S,this.T,this.U,this.V,this.W,this.Z,this.na,this.R,Tc(this)]);I(a,1,[this.j,this.M,this.Ra]);for(var b=this.u,c=0,d=[],e=0;e<b.J;e++){var f=b.X[e];if(f.Na||f.vc){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,m=[];g<f.length;){for(var p=f[g],q=g+1;q<f.length&&f[q]===p;)q++;m[k++]=q-g;m[k++]=p;g=q}if(m.length<f.length){f=m;break a}}d[h]=f}}I(a,2,d);return a.data()}; l.save=function(){var a=new Uc(this);I(a,0,[this.i,this.S,this.T,this.U,this.V,this.W,this.Z,this.na,this.R,Tc(this)]);I(a,1,[this.j,this.M,this.Ra]);for(var b=this.u,c=0,d=[],e=0;e<b.J;e++){var f=b.X[e];if(f.Na||f.xc){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,m=[];g<f.length;){for(var p=f[g],q=g+1;q<f.length&&f[q]===p;)q++;m[k++]=q-g;m[k++]=p;g=q}if(m.length<f.length){f=m;break a}}d[h]=f}}I(a,2,d);return a.data()};
l.restore=function(a){var b=a[0];this.i=b[0];this.S=b[1];this.T=b[2];this.U=b[3];this.V=b[4];this.W=b[5];this.Z=b[6];this.na=b[7]&65535;H(this,b[8]);Rc(this,b[9]);b=a[1];this.j=b[0];this.M=b[1];Gc(this,b[3]);a:{b=this.u;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.M){for(var f=0,h=Array(b.M),g=0;g<e.length-1;)for(var k=e[g++],m=e[g++];k--;)h[f++]=m;e=h}f=b.X[d];if(!f||!f.restore(e)){w("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b}; l.restore=function(a){var b=a[0];this.i=b[0];this.S=b[1];this.T=b[2];this.U=b[3];this.V=b[4];this.W=b[5];this.Z=b[6];this.na=b[7]&65535;H(this,b[8]);Rc(this,b[9]);b=a[1];this.j=b[0];this.M=b[1];Gc(this,b[3]);a:{b=this.u;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.M){for(var f=0,h=Array(b.M),g=0;g<e.length-1;)for(var k=e[g++],m=e[g++];k--;)h[f++]=m;e=h}f=b.X[d];if(!f||!f.restore(e)){w("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.oa=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.N[b]=c;this.la++;d=!0;break;default:d=this.parent.oa.call(this,a,b,c)}return d};function Vc(a){return a.S<<8|a.T}function Wc(a,b){a.S=b>>8&255;a.T=b&255}function Xc(a){return a.U<<8|a.V}function Yc(a,b){a.U=b>>8&255;a.V=b&255}function J(a){return a.W<<8|a.Z} l.oa=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.N[b]=c;this.la++;d=!0;break;default:d=this.parent.oa.call(this,a,b,c)}return d};function Vc(a){return a.S<<8|a.T}function Wc(a,b){a.S=b>>8&255;a.T=b&255}function Xc(a){return a.U<<8|a.V}function Yc(a,b){a.U=b>>8&255;a.V=b&255}function J(a){return a.W<<8|a.Z}
function Zc(a,b){a.W=b>>8&255;a.Z=b&255}function H(a,b){a.R=b&65535}function $c(a){return a.da&256?1:0}function ad(a,b){a.da=a.da&255|b}function bd(a){return sb[a.ga&255]?4:0}function cd(a){return(a.ga^a.ya)&16?16:0}function dd(a){return a.da&255?0:64}function ed(a){return a.ga&128?128:0}function Tc(a){return a.ua&-214|ed(a)|dd(a)|cd(a)|bd(a)|$c(a)}function Rc(a,b){a.da=a.ga=a.ya=0;b&1&&(a.da|=256);b&4||(a.ga|=1);b&16&&(a.ya|=16);b&64||(a.da|=255);b&128&&(a.ga^=192);a.ua=a.ua&-726|b&512|2} function Zc(a,b){a.W=b>>8&255;a.Z=b&255}function H(a,b){a.R=b&65535}function $c(a){return a.da&256?1:0}function ad(a,b){a.da=a.da&255|b}function bd(a){return sb[a.ga&255]?4:0}function cd(a){return(a.ga^a.ya)&16?16:0}function dd(a){return a.da&255?0:64}function ed(a){return a.ga&128?128:0}function Tc(a){return a.ua&-214|ed(a)|dd(a)|cd(a)|bd(a)|$c(a)}function Rc(a,b){a.da=a.ga=a.ya=0;b&1&&(a.da|=256);b&4||(a.ga|=1);b&16&&(a.ya|=16);b&64||(a.da|=255);b&128&&(a.ga^=192);a.ua=a.ua&-726|b&512|2}
function fd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b)&255}function gd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?1:0))&255}function hd(a,b){a.da=a.ga=a.ya=a.i&b;(a.i|b)&8&&(a.ya^=16);return a.da}function id(a,b){a.ya=b^255;b=a.ga=b+255&255;a.da=a.da&-256|b;return b}function jd(a,b){a.ya=b;b=a.ga=b+1&255;a.da=a.da&-256|b;return b}function kd(a,b){return a.ga=a.da=a.ya=a.i|b}function K(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+1^256)&255} function fd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b)&255}function gd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?1:0))&255}function hd(a,b){a.da=a.ga=a.ya=a.i&b;(a.i|b)&8&&(a.ya^=16);return a.da}function id(a,b){a.ya=b^255;b=a.ga=b+255&255;a.da=a.da&-256|b;return b}function jd(a,b){a.ya=b;b=a.ga=b+1&255;a.da=a.da&-256|b;return b}function kd(a,b){return a.ga=a.da=a.ya=a.i|b}function K(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+1^256)&255}
function ld(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?0:1)^256)&255}function md(a,b){return a.ga=a.da=a.ya=a.i^b}l.aa=function(a){return this.u.aa(a)};l.va=function(a,b){this.u.va(a,b)};function L(a){var b=a.aa(a.R);H(a,a.R+1);return b}function M(a){var b=a.u.Sa(a.R);H(a,a.R+2);return b}function N(a){var b=a.u.Sa(a.na);a.na=a.na+2&65535;return b}function P(a,b){a.na=a.na-2&65535;a.u.Hb(a.na,b)} function ld(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?0:1)^256)&255}function md(a,b){return a.ga=a.da=a.ya=a.i^b}l.aa=function(a){return this.u.aa(a)};l.va=function(a,b){this.u.va(a,b)};function L(a){var b=a.aa(a.R);H(a,a.R+1);return b}function M(a){var b=a.u.$a(a.R);H(a,a.R+2);return b}function N(a){var b=a.u.$a(a.na);a.na=a.na+2&65535;return b}function P(a,b){a.na=a.na-2&65535;a.u.Hb(a.na,b)}
function Gd(a){if(a.b&&a.j&255&&a.ua&512){for(var b=0;8>b&&!(a.j&1<<b);b++);a.j&=~(0>b?255:1<<b);a.ua&=-513;a.j&=-257;a.ka[199|b<<3].call(a)}return a.j&256?(Lc(a),!1):!0}function Hd(a,b){a.j|=1<<b;a.ua&512&&Lc(a)}function Q(a,b,c,d){d=d||2;a.N[b]&&(void 0===c&&(qb(a,"Value for "+b+" is invalid"),a.pa()),c=!a.C.Aa||a.C.tc?t(c,d):"--------".substr(0,d),a.N[b].textContent!=c&&(a.N[b].textContent=c))} function Gd(a){if(a.b&&a.j&255&&a.ua&512){for(var b=0;8>b&&!(a.j&1<<b);b++);a.j&=~(0>b?255:1<<b);a.ua&=-513;a.j&=-257;a.ka[199|b<<3].call(a)}return a.j&256?(Lc(a),!1):!0}function Hd(a,b){a.j|=1<<b;a.ua&512&&Lc(a)}function Q(a,b,c,d){d=d||2;a.N[b]&&(void 0===c&&(ob(a,"Value for "+b+" is invalid"),a.pa()),c=!a.C.Aa||a.C.vc?t(c,d):"--------".substr(0,d),a.N[b].textContent!=c&&(a.N[b].textContent=c))}
l.Ja=function(a){this.la&&(a||!this.C.Aa||this.C.tc)&&(Q(this,"A",this.i),Q(this,"B",this.S),Q(this,"C",this.T),Q(this,"BC",Vc(this),4),Q(this,"D",this.U),Q(this,"E",this.V),Q(this,"DE",Xc(this),4),Q(this,"H",this.W),Q(this,"L",this.Z),Q(this,"HL",J(this),4),Q(this,"SP",this.na,4),Q(this,"PC",this.R,4),a=Tc(this),Q(this,"PS",a,4),Q(this,"IF",a&512?1:0,1),Q(this,"SF",a&128?1:0,1),Q(this,"ZF",a&64?1:0,1),Q(this,"AF",a&16?1:0,1),Q(this,"PF",a&4?1:0,1),Q(this,"CF",a&1?1:0,1));if(a=this.N.speed)a.textContent= l.Ja=function(a){this.la&&(a||!this.C.Aa||this.C.vc)&&(Q(this,"A",this.i),Q(this,"B",this.S),Q(this,"C",this.T),Q(this,"BC",Vc(this),4),Q(this,"D",this.U),Q(this,"E",this.V),Q(this,"DE",Xc(this),4),Q(this,"H",this.W),Q(this,"L",this.Z),Q(this,"HL",J(this),4),Q(this,"SP",this.na,4),Q(this,"PC",this.R,4),a=Tc(this),Q(this,"PS",a,4),Q(this,"IF",a&512?1:0,1),Q(this,"SF",a&128?1:0,1),Q(this,"ZF",a&64?1:0,1),Q(this,"AF",a&16?1:0,1),Q(this,"PF",a&4?1:0,1),Q(this,"CF",a&1?1:0,1));if(a=this.N.speed)a.textContent=
this.C.Aa&&this.K?this.K.toFixed(2)+"Mhz":"Stopped"};l.kb=function(a){this.C.complete=!0;var b=this.C.Jd=this.H&&Id(this.H),c=a?this.C.Qb?0:1:-1;this.C.Qb=!1;this.L=this.b=a;if(Gd(this)){do{if(b){if(Jd(this.H,this.R,c)){this.pa();break}c=1}this.ka[L(this)].call(this)}while(0<this.b)}return this.C.complete?this.L-this.b:void 0===this.C.complete?0:-1};Ma(function(){for(var a=D(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Nc(d);hb(d,c)}});function Kd(){this.b-=4} this.C.Aa&&this.K?this.K.toFixed(2)+"Mhz":"Stopped"};l.kb=function(a){this.C.complete=!0;var b=this.C.Ld=this.H&&Id(this.H),c=a?this.C.Sb?0:1:-1;this.C.Sb=!1;this.L=this.b=a;if(Gd(this)){do{if(b){if(Jd(this.H,this.R,c)){this.pa();break}c=1}this.ka[L(this)].call(this)}while(0<this.b)}return this.C.complete?this.L-this.b:void 0===this.C.complete?0:-1};Ma(function(){for(var a=D(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Nc(d);hb(d,c)}});function Kd(){this.b-=4}
function Ld(){H(this,M(this));this.b-=10}function Md(){H(this,N(this));this.b-=10}function Nd(){var a=M(this);P(this,this.R);H(this,a);this.b-=17} function Ld(){H(this,M(this));this.b-=10}function Md(){H(this,N(this));this.b-=10}function Nd(){var a=M(this);P(this,this.R);H(this,a);this.b-=17}
var Oc=[Kd,function(){Wc(this,M(this));this.b-=10},function(){this.va(Vc(this),this.i);this.b-=7},function(){Wc(this,Vc(this)+1);this.b-=5},function(){this.S=jd(this,this.S);this.b-=5},function(){this.S=id(this,this.S);this.b-=5},function(){this.S=L(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255|a>>8;ad(this,a&256);this.b-=4},Kd,function(){var a;Zc(this,a=J(this)+Vc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Vc(this));this.b-=7},function(){Wc(this,Vc(this)-1);this.b-= var Oc=[Kd,function(){Wc(this,M(this));this.b-=10},function(){this.va(Vc(this),this.i);this.b-=7},function(){Wc(this,Vc(this)+1);this.b-=5},function(){this.S=jd(this,this.S);this.b-=5},function(){this.S=id(this,this.S);this.b-=5},function(){this.S=L(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255|a>>8;ad(this,a&256);this.b-=4},Kd,function(){var a;Zc(this,a=J(this)+Vc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Vc(this));this.b-=7},function(){Wc(this,Vc(this)-1);this.b-=
5},function(){this.T=jd(this,this.T);this.b-=5},function(){this.T=id(this,this.T);this.b-=5},function(){this.T=L(this);this.b-=7},function(){var a=this.i<<8&256;this.i=(a|this.i)>>1;ad(this,a);this.b-=4},Kd,function(){Yc(this,M(this));this.b-=10},function(){this.va(Xc(this),this.i);this.b-=7},function(){Yc(this,Xc(this)+1);this.b-=5},function(){this.U=jd(this,this.U);this.b-=5},function(){this.U=id(this,this.U);this.b-=5},function(){this.U=L(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255| 5},function(){this.T=jd(this,this.T);this.b-=5},function(){this.T=id(this,this.T);this.b-=5},function(){this.T=L(this);this.b-=7},function(){var a=this.i<<8&256;this.i=(a|this.i)>>1;ad(this,a);this.b-=4},Kd,function(){Yc(this,M(this));this.b-=10},function(){this.va(Xc(this),this.i);this.b-=7},function(){Yc(this,Xc(this)+1);this.b-=5},function(){this.U=jd(this,this.U);this.b-=5},function(){this.U=id(this,this.U);this.b-=5},function(){this.U=L(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255|
$c(this);ad(this,a&256);this.b-=4},Kd,function(){var a;Zc(this,a=J(this)+Xc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Xc(this));this.b-=7},function(){Yc(this,Xc(this)-1);this.b-=5},function(){this.V=jd(this,this.V);this.b-=5},function(){this.V=id(this,this.V);this.b-=5},function(){this.V=L(this);this.b-=7},function(){var a=this.i<<8;this.i=($c(this)<<8|this.i)>>1;ad(this,a&256);this.b-=4},Kd,function(){Zc(this,M(this));this.b-=10},function(){var a=M(this);this.u.Hb(a,J(this)); $c(this);ad(this,a&256);this.b-=4},Kd,function(){var a;Zc(this,a=J(this)+Xc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Xc(this));this.b-=7},function(){Yc(this,Xc(this)-1);this.b-=5},function(){this.V=jd(this,this.V);this.b-=5},function(){this.V=id(this,this.V);this.b-=5},function(){this.V=L(this);this.b-=7},function(){var a=this.i<<8;this.i=($c(this)<<8|this.i)>>1;ad(this,a&256);this.b-=4},Kd,function(){Zc(this,M(this));this.b-=10},function(){var a=M(this);this.u.Hb(a,J(this));
this.b-=16},function(){Zc(this,J(this)+1);this.b-=5},function(){this.W=jd(this,this.W);this.b-=5},function(){this.W=id(this,this.W);this.b-=5},function(){this.W=L(this);this.b-=7},function(){var a=0,b=$c(this);if(cd(this)||9<(this.i&15))a|=6;if(b||154<=this.i)a|=96,b=1;this.i=fd(this,a);ad(this,b?256:0);this.b-=4},Kd,function(){var a;Zc(this,a=J(this)+J(this));ad(this,a>>8&256);this.b-=10},function(){var a;a=M(this);a=this.u.Sa(a);Zc(this,a);this.b-=16},function(){Zc(this,J(this)-1);this.b-=5},function(){this.Z= this.b-=16},function(){Zc(this,J(this)+1);this.b-=5},function(){this.W=jd(this,this.W);this.b-=5},function(){this.W=id(this,this.W);this.b-=5},function(){this.W=L(this);this.b-=7},function(){var a=0,b=$c(this);if(cd(this)||9<(this.i&15))a|=6;if(b||154<=this.i)a|=96,b=1;this.i=fd(this,a);ad(this,b?256:0);this.b-=4},Kd,function(){var a;Zc(this,a=J(this)+J(this));ad(this,a>>8&256);this.b-=10},function(){var a;a=M(this);a=this.u.$a(a);Zc(this,a);this.b-=16},function(){Zc(this,J(this)-1);this.b-=5},function(){this.Z=
jd(this,this.Z);this.b-=5},function(){this.Z=id(this,this.Z);this.b-=5},function(){this.Z=L(this);this.b-=7},function(){this.i=~this.i&255;this.b-=4},Kd,function(){this.na=M(this)&65535;this.b-=10},function(){this.va(M(this),this.i);this.b-=13},function(){this.na=this.na+1&65535;this.b-=5},function(){var a=J(this);this.va(a,jd(this,this.aa(a)));this.b-=10},function(){var a=J(this);this.va(a,id(this,this.aa(a)));this.b-=10},function(){this.va(J(this),L(this));this.b-=10},function(){this.da|=256;this.b-= jd(this,this.Z);this.b-=5},function(){this.Z=id(this,this.Z);this.b-=5},function(){this.Z=L(this);this.b-=7},function(){this.i=~this.i&255;this.b-=4},Kd,function(){this.na=M(this)&65535;this.b-=10},function(){this.va(M(this),this.i);this.b-=13},function(){this.na=this.na+1&65535;this.b-=5},function(){var a=J(this);this.va(a,jd(this,this.aa(a)));this.b-=10},function(){var a=J(this);this.va(a,id(this,this.aa(a)));this.b-=10},function(){this.va(J(this),L(this));this.b-=10},function(){this.da|=256;this.b-=
4},Kd,function(){var a;Zc(this,a=J(this)+this.na);ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(M(this));this.b-=13},function(){this.na=this.na-1&65535;this.b-=5},function(){this.i=jd(this,this.i);this.b-=5},function(){this.i=id(this,this.i);this.b-=5},function(){this.i=L(this);this.b-=7},function(){ad(this,$c(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.U;this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.W; 4},Kd,function(){var a;Zc(this,a=J(this)+this.na);ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(M(this));this.b-=13},function(){this.na=this.na-1&65535;this.b-=5},function(){this.i=jd(this,this.i);this.b-=5},function(){this.i=id(this,this.i);this.b-=5},function(){this.i=L(this);this.b-=7},function(){ad(this,$c(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.U;this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.W;
this.b-=5},function(){this.S=this.Z;this.b-=5},function(){this.S=this.aa(J(this));this.b-=7},function(){this.S=this.i;this.b-=5},function(){this.T=this.S;this.b-=5},function(){this.b-=5},function(){this.T=this.U;this.b-=5},function(){this.T=this.V;this.b-=5},function(){this.T=this.W;this.b-=5},function(){this.T=this.Z;this.b-=5},function(){this.T=this.aa(J(this));this.b-=7},function(){this.T=this.i;this.b-=5},function(){this.U=this.S;this.b-=5},function(){this.U=this.T;this.b-=5},function(){this.b-= this.b-=5},function(){this.S=this.Z;this.b-=5},function(){this.S=this.aa(J(this));this.b-=7},function(){this.S=this.i;this.b-=5},function(){this.T=this.S;this.b-=5},function(){this.b-=5},function(){this.T=this.U;this.b-=5},function(){this.T=this.V;this.b-=5},function(){this.T=this.W;this.b-=5},function(){this.T=this.Z;this.b-=5},function(){this.T=this.aa(J(this));this.b-=7},function(){this.T=this.i;this.b-=5},function(){this.U=this.S;this.b-=5},function(){this.U=this.T;this.b-=5},function(){this.b-=
@ -83,166 +83,166 @@ function(){P(this,J(this));this.b-=11},function(){this.i=hd(this,L(this));this.b
this.R);H(this,40);this.b-=11},function(){ed(this)||(H(this,N(this)),this.b-=6);this.b-=5},function(){var a=N(this);Rc(this,a&255|this.ua&-256);this.i=a>>8;this.b-=10},function(){var a=M(this);ed(this)||H(this,a);this.b-=10},function(){this.ua&=-513;this.b-=4},function(){var a=M(this);ed(this)||(P(this,this.R),H(this,a),this.b-=6);this.b-=11},function(){P(this,Tc(this)&255|this.i<<8);this.b-=11},function(){this.i=kd(this,L(this));this.b-=7},function(){P(this,this.R);H(this,48);this.b-=11},function(){ed(this)&& this.R);H(this,40);this.b-=11},function(){ed(this)||(H(this,N(this)),this.b-=6);this.b-=5},function(){var a=N(this);Rc(this,a&255|this.ua&-256);this.i=a>>8;this.b-=10},function(){var a=M(this);ed(this)||H(this,a);this.b-=10},function(){this.ua&=-513;this.b-=4},function(){var a=M(this);ed(this)||(P(this,this.R),H(this,a),this.b-=6);this.b-=11},function(){P(this,Tc(this)&255|this.i<<8);this.b-=11},function(){this.i=kd(this,L(this));this.b-=7},function(){P(this,this.R);H(this,48);this.b-=11},function(){ed(this)&&
(H(this,N(this)),this.b-=6);this.b-=5},function(){this.na=J(this)&65535;this.b-=5},function(){var a=M(this);ed(this)&&H(this,a);this.b-=10},function(){this.ua|=512;this.b-=4;Gd(this)},function(){var a=M(this);ed(this)&&(P(this,this.R),H(this,a),this.b-=6);this.b-=11},Nd,function(){K(this,L(this));this.b-=7},function(){P(this,this.R);H(this,56);this.b-=11}]; (H(this,N(this)),this.b-=6);this.b-=5},function(){this.na=J(this)&65535;this.b-=5},function(){var a=M(this);ed(this)&&H(this,a);this.b-=10},function(){this.ua|=512;this.b-=4;Gd(this)},function(){var a=M(this);ed(this)&&(P(this,this.R),H(this,a),this.b-=6);this.b-=11},Nd,function(){K(this,L(this));this.b-=7},function(){P(this,this.R);H(this,56);this.b-=11}];
function S(a){z.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!Od[b]&&Oa("Unrecognized ChipSet model: "+b);this.w=Od[b]||{};a.sound&&(this.fa=null,window&&(this.fa=window.AudioContext||window.webkitAudioContext),this.fa&&new this.fa);F(this)}bb(S); function S(a){z.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!Od[b]&&Oa("Unrecognized ChipSet model: "+b);this.w=Od[b]||{};a.sound&&(this.fa=null,window&&(this.fa=window.AudioContext||window.webkitAudioContext),this.fa&&new this.fa);F(this)}bb(S);
var T={Ba:1978.1,ud:{Ca:0,oe:1,se:16,ze:32,Ie:64,He:128,mb:14},Za:{Ca:1,Jc:1,md:2,hd:4,jd:16,kd:32,ld:64,mb:8},vd:{Ca:2,ne:3,Qe:4,pe:8,De:16,Ee:32,Fe:64,qe:128,mb:0},Me:{Ca:3},Ke:{Ca:2,Ae:7},Oe:{Ca:3,Re:1,Ne:2,Ge:4,xe:8,re:16,he:32},Le:{Ca:4},Pe:{Ca:5,te:1,ue:2,ve:4,we:8,Se:16}},U={Ba:100,Ka:{Ca:66,kc:1,$b:2,ed:4,Ce:8,Be:16,bc:32,ac:64,Wb:128},Hc:{Ca:66,INIT:0},Ua:{Ca:194,je:0,Ub:16,od:32,gc:48,Rc:0,Sc:32},zb:{Ca:162,Je:0,Uc:0,Qc:0,Tc:0,Pc:0},La:{ye:{Ca:98},Ta:{Ec:0,Dc:1,rd:2,Ad:4,Kc:5,pd:6,sd:7}, var T={Ba:1978.1,wd:{Ca:0,qe:1,ue:16,Be:32,Ke:64,Je:128,mb:14},Ya:{Ca:1,Lc:1,od:2,kd:4,ld:16,md:32,nd:64,mb:8},xd:{Ca:2,pe:3,Se:4,re:8,Fe:16,Ge:32,He:64,se:128,mb:0},Oe:{Ca:3},Me:{Ca:2,Ce:7},Qe:{Ca:3,Te:1,Pe:2,Ie:4,ze:8,te:16,je:32},Ne:{Ca:4},Re:{Ca:5,ve:1,we:2,xe:4,ye:8,Ue:16}},U={Ba:100,Ka:{Ca:66,mc:1,bc:2,gd:4,Ee:8,De:16,dc:32,cc:64,Yb:128},Jc:{Ca:66,INIT:0},Ta:{Ca:194,le:0,Wb:16,qd:32,ic:48,Tc:0,Uc:32},zb:{Ca:162,Le:0,Wc:0,Sc:0,Vc:0,Rc:0},La:{Ae:{Ca:98},Sa:{Gc:0,Fc:1,td:2,Cd:4,Mc:5,rd:6,ud:7},
Bb:16383}},Od={SI1978:T,VT100:U};S.prototype.oa=function(){return!1};S.prototype.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;this.B=a;this.K=vb(a,"Keyboard");this.Fa=vb(a,"SerialPort");this.video=vb(a,"Video");Hb(b,this,this.w.Fb);Tb(b,this,this.w.Gb);if(d){var e=this;Pd(d,16384,function(){for(var a="",b=0;b<e.I.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=v(e.I[b]);e.H.g(a)})}};S.prototype.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0}; Bb:16383}},Od={SI1978:T,VT100:U};S.prototype.oa=function(){return!1};S.prototype.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;this.B=a;this.K=vb(a,"Keyboard");this.Fa=vb(a,"SerialPort");this.video=vb(a,"Video");Gb(b,this,this.w.Fb);Tb(b,this,this.w.Gb);if(d){var e=this;Pd(d,16384,function(){for(var a="",b=0;b<e.I.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=v(e.I[b]);e.H.g(a)})}};S.prototype.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
S.prototype.Ia=function(a){return a?this.save():!0};T.INIT=[[T.ud.mb,T.Za.mb,T.vd.mb,0,0,0,0]]; S.prototype.Ia=function(a){return a?this.save():!0};T.INIT=[[T.wd.mb,T.Ya.mb,T.xd.mb,0,0,0,0]];
U.INIT=[[U.Hc.INIT,U.Ka.$b|U.Ka.ed],[U.Ua.Rc,U.Ua.Sc],[U.zb.Uc,U.zb.Qc,U.zb.Tc,U.zb.Pc],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], U.INIT=[[U.Jc.INIT,U.Ka.bc|U.Ka.gd],[U.Ta.Tc,U.Ta.Uc],[U.zb.Wc,U.zb.Sc,U.zb.Vc,U.zb.Rc],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];l=S.prototype;l.reset=function(){this.w.INIT&&!this.restore(this.w.INIT)&&this.ja("reset error")}; [11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];l=S.prototype;l.reset=function(){this.w.INIT&&!this.restore(this.w.INIT)&&this.ja("reset error")};
l.save=function(){var a=new Uc(this);switch(this.w.Ba){case T.Ba:I(a,0,[this.wa,this.G,this.za,this.Y,this.ea,this.qa,this.la]);break;case U.Ba:I(a,0,[this.ha,this.J]),I(a,1,[this.L,this.M]),I(a,2,[this.D,this.ba,this.ka,this.ia]),I(a,3,[this.P,this.j,this.O,this.ca,this.I])}return a.data()}; l.save=function(){var a=new Uc(this);switch(this.w.Ba){case T.Ba:I(a,0,[this.wa,this.G,this.za,this.Y,this.ea,this.qa,this.la]);break;case U.Ba:I(a,0,[this.ha,this.J]),I(a,1,[this.L,this.M]),I(a,2,[this.D,this.ba,this.ka,this.ia]),I(a,3,[this.P,this.j,this.O,this.ca,this.I])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.w.Ba){case T.Ba:return this.wa=b[0],this.G=b[1],this.za=b[2],this.Y=b[3],this.ea=b[4],this.qa=b[5],this.la=b[6],!0;case U.Ba:return this.ha=b[0],this.J=b[1],b=a[1],this.L=b[0],this.M=b[1],b=a[2],this.D=b[0],this.ba=b[1],this.ka=b[2],this.ia=b[3],b=a[3],this.P=b[0],this.j=b[1],this.O=b[2],this.ca=b[3],this.I=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Pd=function(a,b){var c=this.wa;E(this,a,null,b,"STATUS0",c,!0);return c}; l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.w.Ba){case T.Ba:return this.wa=b[0],this.G=b[1],this.za=b[2],this.Y=b[3],this.ea=b[4],this.qa=b[5],this.la=b[6],!0;case U.Ba:return this.ha=b[0],this.J=b[1],b=a[1],this.L=b[0],this.M=b[1],b=a[2],this.D=b[0],this.ba=b[1],this.ka=b[2],this.ia=b[3],b=a[3],this.P=b[0],this.j=b[1],this.O=b[2],this.ca=b[3],this.I=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Rd=function(a,b){var c=this.wa;E(this,a,null,b,"STATUS0",c,!0);return c};
l.Qd=function(a,b){var c=this.G;E(this,a,null,b,"STATUS1",c,!0);return c};l.Rd=function(a,b){var c=this.za;E(this,a,null,b,"STATUS2",c,!0);return c};l.Od=function(a,b){var c=this.Y>>8-this.ea&255;E(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.Yd=function(a,b,c){E(this,a,b,c,"SHIFT.COUNT",null,!0);this.ea=b};l.$d=function(a,b,c){E(this,a,b,c,"SOUND1",null,!0);this.qa=b};l.Zd=function(a,b,c){E(this,a,b,c,"SHIFT.DATA",null,!0);this.Y=b<<8|this.Y>>8}; l.Sd=function(a,b){var c=this.G;E(this,a,null,b,"STATUS1",c,!0);return c};l.Td=function(a,b){var c=this.za;E(this,a,null,b,"STATUS2",c,!0);return c};l.Qd=function(a,b){var c=this.Y>>8-this.ea&255;E(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.$d=function(a,b,c){E(this,a,b,c,"SHIFT.COUNT",null,!0);this.ea=b};l.be=function(a,b,c){E(this,a,b,c,"SOUND1",null,!0);this.qa=b};l.ae=function(a,b,c){E(this,a,b,c,"SHIFT.DATA",null,!0);this.Y=b<<8|this.Y>>8};
l.ae=function(a,b,c){E(this,a,b,c,"SOUND2",null,!0);this.la=b};l.be=function(a,b,c){E(this,a,b,c,"WATCHDOG",null,!0)};function Qd(a){var b=0,c=0,d=~a.P;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c} l.ce=function(a,b,c){E(this,a,b,c,"SOUND2",null,!0);this.la=b};l.de=function(a,b,c){E(this,a,b,c,"WATCHDOG",null,!0)};function Qd(a){var b=0,c=0,d=~a.P;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
l.Sd=function(a,b){var c=this.J,c=c&~U.Ka.ac;if((Fc(this.b)&64)<<1&&(c|=U.Ka.ac,c!=this.J)){var d,e;d=this.O&1;e=this.O>>1&7;switch(e){case U.La.Ta.sd:break;case U.La.Ta.Dc:this.P=this.P<<1|d;break;case U.La.Ta.Kc:d=Qd(this);this.I[d]=U.La.Bb;jb(this,"doNVRCommand(): erase data at addr "+v(d));break;case U.La.Ta.Ec:this.j=this.j<<1|d;break;case U.La.Ta.Ad:d=Qd(this);e=this.j&U.La.Bb;this.I[d]=e;jb(this,"doNVRCommand(): write data "+v(e)+" to addr "+v(d));break;case U.La.Ta.pd:d=Qd(this);e=this.I[d]; l.Ud=function(a,b){var c=this.J,c=c&~U.Ka.cc;if((Fc(this.b)&64)<<1&&(c|=U.Ka.cc,c!=this.J)){var d,e;d=this.O&1;e=this.O>>1&7;switch(e){case U.La.Sa.ud:break;case U.La.Sa.Fc:this.P=this.P<<1|d;break;case U.La.Sa.Mc:d=Qd(this);this.I[d]=U.La.Bb;jb(this,"doNVRCommand(): erase data at addr "+v(d));break;case U.La.Sa.Gc:this.j=this.j<<1|d;break;case U.La.Sa.Cd:d=Qd(this);e=this.j&U.La.Bb;this.I[d]=e;jb(this,"doNVRCommand(): write data "+v(e)+" to addr "+v(d));break;case U.La.Sa.rd:d=Qd(this);e=this.I[d];
null==e&&(e=U.La.Bb);this.j=e;jb(this,"doNVRCommand(): read data "+v(e)+" from addr "+v(d));break;case U.La.Ta.rd:this.j<<=1;this.ca=this.j&U.La.Bb+1;break;default:jb(this,"doNVRCommand(): unrecognized command "+ba(e))}}c&=~U.Ka.bc;this.ca&&(c|=U.Ka.bc);c&=~U.Ka.Wb;if(d=this.K){d=this.K;if(e=d.D)e=d.b,e=Fc(d.b)>=d.J+e.Y*e.Ra/1E3*1.2731488;e&&(d.D=!1);d=!d.D}d&&(c|=U.Ka.Wb);c&=~U.Ka.kc;this.Fa&&this.Fa.Da&1&&(c|=U.Ka.kc);this.J=c;E(this,a,null,b,"FLAGS",c);return c}; null==e&&(e=U.La.Bb);this.j=e;jb(this,"doNVRCommand(): read data "+v(e)+" from addr "+v(d));break;case U.La.Sa.td:this.j<<=1;this.ca=this.j&U.La.Bb+1;break;default:jb(this,"doNVRCommand(): unrecognized command "+ba(e))}}c&=~U.Ka.dc;this.ca&&(c|=U.Ka.dc);c&=~U.Ka.Yb;if(d=this.K){d=this.K;if(e=d.D)e=d.b,e=Fc(d.b)>=d.J+e.Y*e.Ra/1E3*1.2731488;e&&(d.D=!1);d=!d.D}d&&(c|=U.Ka.Yb);c&=~U.Ka.mc;this.Fa&&this.Fa.Da&1&&(c|=U.Ka.mc);this.J=c;E(this,a,null,b,"FLAGS",c);return c};
l.ce=function(a,b,c){E(this,a,b,c,"BRIGHTNESS");this.ha=b};l.fe=function(a,b,c){E(this,a,b,c,"NVR.LATCH");this.O=b};l.ee=function(a,b,c){E(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.D=this.D&-4|a;break;case 1:this.D=this.D&-13|a<<2;this.video&&(b=this.video,a=this.D,jb(b,"updateScrollOffset("+a+")"),b.nb!==a&&((b.nb=a)?Mc(b,!0):b.pb=!0));break;case 2:switch(a){case 0:this.ba=~this.ba;break;case 2:case 3:this.ka=3-a}break;case 3:this.ia=a}}; l.ee=function(a,b,c){E(this,a,b,c,"BRIGHTNESS");this.ha=b};l.he=function(a,b,c){E(this,a,b,c,"NVR.LATCH");this.O=b};l.ge=function(a,b,c){E(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.D=this.D&-4|a;break;case 1:this.D=this.D&-13|a<<2;this.video&&(b=this.video,a=this.D,jb(b,"updateScrollOffset("+a+")"),b.nb!==a&&((b.nb=a)?Mc(b,!0):b.pb=!0));break;case 2:switch(a){case 0:this.ba=~this.ba;break;case 2:case 3:this.ka=3-a}break;case 3:this.ia=a}};
l.de=function(a,b,c){E(this,a,b,c,"DC011");b&U.Ua.od?(b&=U.Ua.gc,this.M!=b&&(this.M=b,this.video&&(a=this.video,b=this.M==U.Ua.gc?50:60,jb(a,"updateRate("+b+")"),a.oc=b))):(b&=U.Ua.Ub,this.L!=b&&(this.L=b,this.video&&(a=this.L==U.Ua.Ub?132:80,b=this.video,jb(b,"updateDimensions("+a+","+(80<a&&this.J&U.Ka.$b?14:24)+")"),b.ca=a,b.ra=b.dc,80<a&&b.ra--,Rd(b)&&Sd(b))))};T.Fb={0:S.prototype.Pd,1:S.prototype.Qd,2:S.prototype.Rd,3:S.prototype.Od}; l.fe=function(a,b,c){E(this,a,b,c,"DC011");b&U.Ta.qd?(b&=U.Ta.ic,this.M!=b&&(this.M=b,this.video&&(a=this.video,b=this.M==U.Ta.ic?50:60,jb(a,"updateRate("+b+")"),a.qc=b))):(b&=U.Ta.Wb,this.L!=b&&(this.L=b,this.video&&(a=this.L==U.Ta.Wb?132:80,b=this.video,jb(b,"updateDimensions("+a+","+(80<a&&this.J&U.Ka.bc?14:24)+")"),b.ca=a,b.ra=b.fc,80<a&&b.ra--,Rd(b)&&Sd(b))))};T.Fb={0:S.prototype.Rd,1:S.prototype.Sd,2:S.prototype.Td,3:S.prototype.Qd};
T.Gb={2:S.prototype.Yd,3:S.prototype.$d,4:S.prototype.Zd,5:S.prototype.ae,6:S.prototype.be};U.Fb={66:S.prototype.Sd};U.Gb={66:S.prototype.ce,98:S.prototype.fe,162:S.prototype.ee,194:S.prototype.de};Ma(function(){for(var a=D(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new S(d);hb(d,c)}}); T.Gb={2:S.prototype.$d,3:S.prototype.be,4:S.prototype.ae,5:S.prototype.ce,6:S.prototype.de};U.Fb={66:S.prototype.Ud};U.Gb={66:S.prototype.ee,98:S.prototype.he,162:S.prototype.ge,194:S.prototype.fe};Ma(function(){for(var a=D(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new S(d);hb(d,c)}});
function Td(a){z.call(this,"ROM",a,Td);this.B=null;this.D=a.addr;this.j=a.size;this.G=a.writable;this.w=a.alias;this.I=a.file;this.K=ea(this.I);if(this.I){a=this.I;var b=fa(this.K);"json"!=b&&"hex"!=b&&(a=ha()+"/api/v1/dump?file="+this.I+"&format=bytes&decimal=true");var c=this;sa(a,null,!0,function(a,b,f){Ud(c,a,b,f)})}}bb(Td);var Vd=[0,5];Td.prototype.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;Wd(this)}; function Td(a){z.call(this,"ROM",a,Td);this.B=null;this.D=a.addr;this.j=a.size;this.G=a.writable;this.w=a.alias;this.I=a.file;this.K=ea(this.I);if(this.I){a=this.I;var b=fa(this.K);"json"!=b&&"hex"!=b&&(a=ha()+"/api/v1/dump?file="+this.I+"&format=bytes&decimal=true");var c=this;sa(a,null,!0,function(a,b,f){Ud(c,a,b,f)})}}bb(Td);var Vd=[0,5];Td.prototype.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;Wd(this)};
Td.prototype.Ea=function(){if(this.Qa){if(this.H){var a=this.H,b=this.id,c=this.D,d=this.j,e=this.Qa,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,m=g.a;if(void 0!==k){var p=f,k=[k>>>0,h],q=oa(p,k,a.sc);0>q&&p.splice(-(q+1),0,k)}m&&(g.a=m.replace(/''/g,'"'))}a.G.push({ff:b,F:c,Ud:d,Qa:e,rc:f})}delete this.Qa}return!0};Td.prototype.Ia=function(){return!0}; Td.prototype.Ea=function(){if(this.Qa){if(this.H){var a=this.H,b=this.id,c=this.D,d=this.j,e=this.Qa,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,m=g.a;if(void 0!==k){var p=f,k=[k>>>0,h],q=oa(p,k,a.uc);0>q&&p.splice(-(q+1),0,k)}m&&(g.a=m.replace(/''/g,'"'))}a.G.push({gf:b,F:c,Wd:d,Qa:e,tc:f})}delete this.Qa}return!0};Td.prototype.Ia=function(){return!0};
function Ud(a,b,c,d){if(d)a.ja("Unable to load system ROM (error "+d+": "+b+")");else{db(a.Ab,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.B=f;else if(h)for(a.B=Array(4*h.length),d=c=0;c<h.length;c++)a.B[d++]=h[c]&255,a.B[d++]=h[c]>>8&255,a.B[d++]=h[c]>>16&255,a.B[d++]=h[c]>>24&255;else a.B=e;a.Qa=e.symbols;if(!a.B.length){w("Empty ROM: "+b);return}if(1==a.B.length){w(a.B[0]);return}}catch(g){a.ja("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm, function Ud(a,b,c,d){if(d)a.ja("Unable to load system ROM (error "+d+": "+b+")");else{db(a.Ab,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.B=f;else if(h)for(a.B=Array(4*h.length),d=c=0;c<h.length;c++)a.B[d++]=h[c]&255,a.B[d++]=h[c]>>8&255,a.B[d++]=h[c]>>16&255,a.B[d++]=h[c]>>24&255;else a.B=e;a.Qa=e.symbols;if(!a.B.length){w("Empty ROM: "+b);return}if(1==a.B.length){w(a.B[0]);return}}catch(g){a.ja("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.B=Array(b.length),e=0;e<b.length;e++)a.B[e]=aa(b[e]);Wd(a)}} " ").replace(/ +$/,"").split(" "),a.B=Array(b.length),e=0;e<b.length;e++)a.B[e]=aa(b[e]);Wd(a)}}
function Wd(a){if(!nb(a))if(!a.I)F(a);else if(a.B&&a.u){a.j||(a.j=a.B.length);if(a.B.length!=a.j)qb(a,"ROM size (0x"+t(a.B.length)+") does not match specified size ("+("0x"+t(a.j))+")");else if(Xd(a,a.D)){var b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,h=d.j,g=[],k=d.D>>>f.sa;0<h&&k<f.X.length;)g.push(f.X[k++]),h-=f.Ha;f=d.u;d=d.j;h=0;for(e>>>=f.sa;0<d&&e<f.X.length;){k=g[h++];if(!k)break;f.X[e++]=k;d-=f.Ha}}delete a.B}F(a)}} function Wd(a){if(!nb(a))if(!a.I)F(a);else if(a.B&&a.u){a.j||(a.j=a.B.length);if(a.B.length!=a.j)ob(a,"ROM size (0x"+t(a.B.length)+") does not match specified size ("+("0x"+t(a.j))+")");else if(Xd(a,a.D)){var b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,h=d.j,g=[],k=d.D>>>f.sa;0<h&&k<f.X.length;)g.push(f.X[k++]),h-=f.Ha;f=d.u;d=d.j;h=0;for(e>>>=f.sa;0<d&&e<f.X.length;){k=g[h++];if(!k)break;f.X[e++]=k;d-=f.Ha}}delete a.B}F(a)}}
function Xd(a,b){if(zb(a.u,b,a.j,a.G?1:ac)){var c;for(c=0;c<a.B.length;c++)Eb(a.u,b+c,a.B[c]);if(a.G&&256==b){for(c=0;c<Vd.length;c++)Eb(a.u,Vd[c],118);Qc(a.b,function(a){return function(b){if(0<=Vd.indexOf(b)){var c=!1,h=a.b,g=a.H;if(5==b)switch(c=!0,h.T){case 2:Yd(a,String.fromCharCode(h.V));break;case 9:for(var k=Xc(h),m="",p=255;p--;){var q=a.b.aa(k++);if(36==q)break;m+=String.fromCharCode(q)}Yd(a,m);break;default:c=!1}c?Md.call(h):g&&(a.g("\nCP/M vector "+v(b)),H(h,b),g.pa());b=!0}else b=!1; function Xd(a,b){if(zb(a.u,b,a.j,a.G?1:ac)){var c;for(c=0;c<a.B.length;c++)Eb(a.u,b+c,a.B[c]);if(a.G&&256==b){for(c=0;c<Vd.length;c++)Eb(a.u,Vd[c],118);Qc(a.b,function(a){return function(b){if(0<=Vd.indexOf(b)){var c=!1,h=a.b,g=a.H;if(5==b)switch(c=!0,h.T){case 2:Yd(a,String.fromCharCode(h.V));break;case 9:for(var k=Xc(h),m="",p=255;p--;){var q=a.b.aa(k++);if(36==q)break;m+=String.fromCharCode(q)}Yd(a,m);break;default:c=!1}c?Md.call(h):g&&(a.g("\nCP/M vector "+v(b)),H(h,b),g.pa());b=!0}else b=!1;
return b}}(a));Sc(a.b,b)}return!0}return!1}function Yd(a,b){b=b.replace(/\r/g,"");a.Ga&&(a.Ga.value+=b,a.Ga.scrollTop=a.Ga.scrollHeight)}Ma(function(){for(var a=D(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Td(d);hb(d,c)}});function Zd(a){z.call(this,"RAM",a,Zd);this.w=a.addr;this.j=a.size;this.B=!1}bb(Zd);l=Zd.prototype;l.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;F(this)};l.Ea=function(a,b){b||this.reset();return!0};l.Ia=function(a){return a?this.save():!0}; return b}}(a));Sc(a.b,b)}return!0}return!1}function Yd(a,b){b=b.replace(/\r/g,"");a.Ga&&(a.Ga.value+=b,a.Ga.scrollTop=a.Ga.scrollHeight)}Ma(function(){for(var a=D(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Td(d);hb(d,c)}});function Zd(a){z.call(this,"RAM",a,Zd);this.w=a.addr;this.j=a.size;this.B=!1}bb(Zd);l=Zd.prototype;l.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;F(this)};l.Ea=function(a,b){b||this.reset();return!0};l.Ia=function(a){return a?this.save():!0};
l.reset=function(){!this.B&&this.j&&zb(this.u,this.w,this.j,1)&&(this.B=!0);this.B||w("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};Ma(function(){for(var a=D(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Zd(d);hb(d,c)}});function $d(a){z.call(this,"Keyboard",a,$d,65536);(a=a.model)&&!ae[a]&&Oa("Unrecognized Keyboard8080 model: "+a);this.u=ae[a]||{};this.reset();F(this)}bb($d);var be={};be[n.Sb]=37;be[n.Vb]=39;be[n.Xb]=32; l.reset=function(){!this.B&&this.j&&zb(this.u,this.w,this.j,1)&&(this.B=!0);this.B||w("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};Ma(function(){for(var a=D(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Zd(d);hb(d,c)}});function $d(a){z.call(this,"Keyboard",a,$d,65536);(a=a.model)&&!ae[a]&&Oa("Unrecognized Keyboard8080 model: "+a);this.u=ae[a]||{};this.reset();F(this)}bb($d);var be={};be[n.Ub]=37;be[n.Xb]=39;be[n.Zb]=32;
var ce={Ba:1978.1,A:{},Tb:be,qb:{},Ya:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},V={Ba:100,A:{},Tb:{},qb:{},Ya:{setup:120},Fc:{Ca:130,INIT:127},Ma:{Ca:130,ad:1,$c:2,Zc:4,Yc:8,bd:16,Zb:32,Yb:63,td:64,ie:128,INIT:0},Xc:127};V.A[46]=3;V.A[n.gd]=5;V.A[n.fd]=6;V.A[n.Cd]=7;V.A[n.wd]=8;V.A[n.zd]=9;V.A[n.Q]=10;V.A[39]=16;V.A[221]=20;V.A[219]=21;V.A[n.Oc]=22;V.A[n.xd]=23;V.A[n.nd]=24;V.A[n.E]=25;V.A[49]=26;V.A[37]=32;V.A[40]=34;V.A[117]=35;V.A[19]=35;V.A[192]=36;V.A[189]=37;V.A[57]=38;V.A[55]=39; var ce={Ba:1978.1,A:{},Vb:be,qb:{},Xa:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},V={Ba:100,A:{},Vb:{},qb:{},Xa:{setup:120},Hc:{Ca:130,INIT:127},Ma:{Ca:130,cd:1,bd:2,ad:4,$c:8,dd:16,ac:32,$b:63,vd:64,ke:128,INIT:0},Zc:127};V.A[46]=3;V.A[n.jd]=5;V.A[n.hd]=6;V.A[n.Ed]=7;V.A[n.yd]=8;V.A[n.Bd]=9;V.A[n.Q]=10;V.A[39]=16;V.A[221]=20;V.A[219]=21;V.A[n.Qc]=22;V.A[n.zd]=23;V.A[n.pd]=24;V.A[n.E]=25;V.A[49]=26;V.A[37]=32;V.A[40]=34;V.A[117]=35;V.A[19]=35;V.A[192]=36;V.A[189]=37;V.A[57]=38;V.A[55]=39;
V.A[52]=40;V.A[51]=41;V.A[27]=42;V.A[38]=48;V.A[114]=49;V.A[112]=50;V.A[8]=51;V.A[187]=52;V.A[48]=53;V.A[56]=54;V.A[54]=55;V.A[53]=56;V.A[50]=57;V.A[9]=58;V.A[103]=64;V.A[115]=65;V.A[113]=66;V.A[96]=67;V.A[118]=68;V.A[220]=69;V.A[n.Xb]=70;V.A[n.Wc]=71;V.A[n.Mc]=72;V.A[n.Lc]=73;V.A[n.Sb]=74;V.A[104]=80;V.A[2013]=81;V.A[98]=82;V.A[97]=83;V.A[222]=85;V.A[186]=86;V.A[n.Vc]=87;V.A[n.Nc]=88;V.A[n.Vb]=89;V.A[n.qd]=90;V.A[110]=96;V.A[116]=97;V.A[101]=98;V.A[100]=99;V.A[13]=100;V.A[190]=101;V.A[188]=102; V.A[52]=40;V.A[51]=41;V.A[27]=42;V.A[38]=48;V.A[114]=49;V.A[112]=50;V.A[8]=51;V.A[187]=52;V.A[48]=53;V.A[56]=54;V.A[54]=55;V.A[53]=56;V.A[50]=57;V.A[9]=58;V.A[103]=64;V.A[115]=65;V.A[113]=66;V.A[96]=67;V.A[118]=68;V.A[220]=69;V.A[n.Zb]=70;V.A[n.Yc]=71;V.A[n.Oc]=72;V.A[n.Nc]=73;V.A[n.Ub]=74;V.A[104]=80;V.A[2013]=81;V.A[98]=82;V.A[97]=83;V.A[222]=85;V.A[186]=86;V.A[n.Xc]=87;V.A[n.Pc]=88;V.A[n.Xb]=89;V.A[n.sd]=90;V.A[110]=96;V.A[116]=97;V.A[101]=98;V.A[100]=99;V.A[13]=100;V.A[190]=101;V.A[188]=102;
V.A[n.dd]=103;V.A[n.Gc]=104;V.A[n.Bd]=105;V.A[119]=106;V.A[105]=112;V.A[99]=113;V.A[102]=114;V.A[109]=115;V.A[191]=117;V.A[n.cd]=118;V.A[n[" "]]=119;V.A[n.yd]=120;V.A[n.Ic]=121;V.A[n.Dd]=122;V.A[120]=123;V.A[17]=124;V.A[16]=125;V.A[20]=126;V.qb={l4:V.Ma.ad,l3:V.Ma.$c,l2:V.Ma.Zc,l1:V.Ma.Yc,locked:V.Ma.bd,local:V.Ma.Zb,online:~V.Ma.Zb};var ae={SI1978:ce,VT100:V}; V.A[n.fd]=103;V.A[n.Ic]=104;V.A[n.Dd]=105;V.A[119]=106;V.A[105]=112;V.A[99]=113;V.A[102]=114;V.A[109]=115;V.A[191]=117;V.A[n.ed]=118;V.A[n[" "]]=119;V.A[n.Ad]=120;V.A[n.Kc]=121;V.A[n.Fd]=122;V.A[120]=123;V.A[17]=124;V.A[16]=125;V.A[20]=126;V.qb={l4:V.Ma.cd,l3:V.Ma.bd,l2:V.Ma.ad,l1:V.Ma.$c,locked:V.Ma.dd,local:V.Ma.ac,online:~V.Ma.ac};var ae={SI1978:ce,VT100:V};
$d.prototype.oa=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.N[e]){if("led"==a&&this.u.qb[b])return this.N[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return de(d,a,!0)},c.onkeyup=function(a){return de(d,a,!1)},!0;default:if(this.u.Ya&&void 0!==this.u.Ya[b])return this.N[e]=c,a=function(a,b){return function(c){c.preventDefault();ee(a,b,!0)}}(this,this.u.Ya[b]),b=function(a,b){return function(){ee(a,b,!1)}}(this,this.u.Ya[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend= $d.prototype.oa=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.N[e]){if("led"==a&&this.u.qb[b])return this.N[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return de(d,a,!0)},c.onkeyup=function(a){return de(d,a,!1)},!0;default:if(this.u.Xa&&void 0!==this.u.Xa[b])return this.N[e]=c,a=function(a,b){return function(c){c.preventDefault();ee(a,b,!0)}}(this,this.u.Xa[b]),b=function(a,b){return function(){ee(a,b,!1)}}(this,this.u.Xa[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=
b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};$d.prototype.Pa=function(a,b,c,d){this.B=a;this.b=c;this.H=d;this.I=vb(a,"ChipSet");Hb(b,this,this.u.Fb);Tb(b,this,this.u.Gb)};$d.prototype.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};$d.prototype.Ia=function(a){return a?this.save():!0};V.INIT=[[V.Ma.INIT,V.Fc.INIT,!1,0,-1]];l=$d.prototype;l.reset=function(){this.j=[];this.u.INIT&&!this.restore(this.u.INIT)&&this.ja("reset error")}; b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};$d.prototype.Pa=function(a,b,c,d){this.B=a;this.b=c;this.H=d;this.I=vb(a,"ChipSet");Gb(b,this,this.u.Fb);Tb(b,this,this.u.Gb)};$d.prototype.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};$d.prototype.Ia=function(a){return a?this.save():!0};V.INIT=[[V.Ma.INIT,V.Hc.INIT,!1,0,-1]];l=$d.prototype;l.reset=function(){this.j=[];this.u.INIT&&!this.restore(this.u.INIT)&&this.ja("reset error")};
l.save=function(){var a=new Uc(this);switch(this.u.Ba){case V.Ba:I(a,0,[this.K,this.G,this.D,this.J,-1])}return a.data()};l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.u.Ba){case ce.Ba:return!0;case V.Ba:return this.K=b[0],fe(this,this.K&V.Ma.Yb),this.G=b[1],this.D=b[2],this.J=b[3],this.w=b[4],!0}return!1};function fe(a,b){for(var c in a.u.qb){var d=a.N["led-"+c];if(d){var e=a.u.qb[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}} l.save=function(){var a=new Uc(this);switch(this.u.Ba){case V.Ba:I(a,0,[this.K,this.G,this.D,this.J,-1])}return a.data()};l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.u.Ba){case ce.Ba:return!0;case V.Ba:return this.K=b[0],fe(this,this.K&V.Ma.$b),this.G=b[1],this.D=b[2],this.J=b[3],this.w=b[4],!0}return!1};function fe(a,b){for(var c in a.u.qb){var d=a.N["led-"+c];if(d){var e=a.u.qb[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}}
function de(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=a.u.Tb[e]||e,!a.u.A[e]){for(var f in a.u.Ya)if(a.u.Ya[f]===e){e=f;break a}e=null}e&&(d=ee(a,e,c),b.preventDefault());return d} function de(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=a.u.Vb[e]||e,!a.u.A[e]){for(var f in a.u.Xa)if(a.u.Xa[f]===e){e=f;break a}e=null}e&&(d=ee(a,e,c),b.preventDefault());return d}
function ee(a,b,c){var d;a:{for(d=0;d<a.j.length;d++)if(a.j[d].Pb==b)break a;d=-1}if(c)0>d?a.j.push({Pb:b,Mb:Date.now(),Cb:!1}):(a.j[d].Mb=Date.now(),a.j[d].Cb=!1);else if(0<=d){if(!a.j[d].Cb){var e=a.j[d].Mb;if(e&&100>Date.now()-e)return a.j[d].Cb=!0,ge(a),!0}a.j.splice(d,1)}if(a.I){d=0;switch(b){case "1p":d=T.Za.hd;break;case "2p":d=T.Za.md;break;case "coin":d=T.Za.Jc;break;case "left":d=T.Za.kd;break;case "right":d=T.Za.ld;break;case "fire":d=T.Za.jd}d&&(a=a.I,b=d,a.G&=~b,c&&(a.G|=b))}return!0} function ee(a,b,c){var d;a:{for(d=0;d<a.j.length;d++)if(a.j[d].Rb==b)break a;d=-1}if(c)0>d?a.j.push({Rb:b,Ob:Date.now(),Cb:!1}):(a.j[d].Ob=Date.now(),a.j[d].Cb=!1);else if(0<=d){if(!a.j[d].Cb){var e=a.j[d].Ob;if(e&&100>Date.now()-e)return a.j[d].Cb=!0,ge(a),!0}a.j.splice(d,1)}if(a.I){d=0;switch(b){case "1p":d=T.Ya.kd;break;case "2p":d=T.Ya.od;break;case "coin":d=T.Ya.Lc;break;case "left":d=T.Ya.md;break;case "right":d=T.Ya.nd;break;case "fire":d=T.Ya.ld}d&&(a=a.I,b=d,a.G&=~b,c&&(a.G|=b))}return!0}
function ge(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].Cb){var d=a.j[b].Pb,e=100-(Date.now()-a.j[b].Mb);if(0<e){if(0>c||c>e)c=e}else{ee(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){ge(a)},c)}l.Td=function(a,b){var c=this.G;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=V.A[c.Pb],c&128&&(c&=127)):(this.w=-1,c=V.Xc),this.G=c,Hd(this.b,1));E(this,a,null,b,"KBDUART.ADDRESS",c);return c}; function ge(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].Cb){var d=a.j[b].Rb,e=100-(Date.now()-a.j[b].Ob);if(0<e){if(0>c||c>e)c=e}else{ee(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){ge(a)},c)}l.Vd=function(a,b){var c=this.G;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=V.A[c.Rb],c&128&&(c&=127)):(this.w=-1,c=V.Zc),this.G=c,Hd(this.b,1));E(this,a,null,b,"KBDUART.ADDRESS",c);return c};
l.ge=function(a,b,c){E(this,a,b,c,"KBDUART.STATUS");this.K=b;this.D=!0;this.J=Fc(this.b);fe(this,b&V.Ma.Yb);b&V.Ma.td&&(this.w=0,Hd(this.b,1))};V.Fb={130:$d.prototype.Td};V.Gb={130:$d.prototype.ge};Ma(function(){for(var a=D(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new $d(d);hb(d,c)}}); l.ie=function(a,b,c){E(this,a,b,c,"KBDUART.STATUS");this.K=b;this.D=!0;this.J=Fc(this.b);fe(this,b&V.Ma.$b);b&V.Ma.vd&&(this.w=0,Hd(this.b,1))};V.Fb={130:$d.prototype.Vd};V.Gb={130:$d.prototype.ie};Ma(function(){for(var a=D(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new $d(d);hb(d,c)}});
function he(a,b,c,d,e){var f=this;this.ic=Aa("Gecko/");var h=["","moz","ms","webkit"];z.call(this,"Video",a,he,262144);this.Y=a.screenWidth;this.O=a.screenHeight;this.Va=a.bufferAddr;this.Gd=a.bufferRAM;var g=a.bufferFormat;this.la=g&&ie[g.toUpperCase()]||je;this.ca=a.bufferCols;this.wa=a.bufferRows;this.dc=this.ra=a.cellWidth||1;this.ma=a.cellHeight||1;this.za=null;this.hc=!1;this.Wa=a.bufferBits||1;this.Id=a.bufferLeft||0;if(this.w=a.bufferRotate)this.w=this.w%360,0<this.w&&(this.w-=360),-90!=this.w&& function he(a,b,c,d,e){var f=this;this.kc=Aa("Gecko/");var h=["","moz","ms","webkit"];z.call(this,"Video",a,he,262144);this.Y=a.screenWidth;this.O=a.screenHeight;this.Ua=a.bufferAddr;this.Id=a.bufferRAM;var g=a.bufferFormat;this.la=g&&ie[g.toUpperCase()]||je;this.ca=a.bufferCols;this.wa=a.bufferRows;this.fc=this.ra=a.cellWidth||1;this.ma=a.cellHeight||1;this.za=null;this.jc=!1;this.Va=a.bufferBits||1;this.Kd=a.bufferLeft||0;if(this.w=a.bufferRotate)this.w=this.w%360,0<this.w&&(this.w-=360),-90!=this.w&&
(this.ja("unsupported buffer rotation: "+this.w),this.w=0);this.Xa=a.interruptRate;this.pc=a.refreshRate||60;this.M=b;this.I=c;this.ka=(this.Ld=d)||b||null;this.Cc=this.Y;this.Fd=this.O;this.ec=this.Y/this.ca|0;this.fc=this.O/this.wa|0;1<this.ma&&(this.wa++,this.nb=0,this.pb=!1);b=a.smoothing;(c=Va.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.I[d]){this.I[d]=b;break}if(this.D=a.screenRotate)this.D=this.D% (this.ja("unsupported buffer rotation: "+this.w),this.w=0);this.Wa=a.interruptRate;this.rc=a.refreshRate||60;this.M=b;this.I=c;this.ka=(this.Nd=d)||b||null;this.Ec=this.Y;this.Hd=this.O;this.gc=this.Y/this.ca|0;this.hc=this.O/this.wa|0;1<this.ma&&(this.wa++,this.nb=0,this.pb=!1);b=a.smoothing;(c=Va.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.I[d]){this.I[d]=b;break}if(this.D=a.screenRotate)this.D=this.D%
360,0<this.D&&(this.D-=360),-90!=this.D?(this.ja("unsupported screen rotation: "+this.D),this.D=0):(this.I.translate(0,this.O),this.I.rotate(this.D*Math.PI/180),this.I.scale(this.O/this.Y,this.Y/this.O));if(this.j=e)if(this.j.gb=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.j.gb){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){ke(f,document.fullscreenElement||document.msFullscreenElement|| 360,0<this.D&&(this.D-=360),-90!=this.D?(this.ja("unsupported screen rotation: "+this.D),this.D=0):(this.I.translate(0,this.O),this.I.rotate(this.D*Math.PI/180),this.I.scale(this.O/this.Y,this.Y/this.O));if(this.j=e)if(this.j.gb=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.j.gb){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){ke(f,document.fullscreenElement||document.msFullscreenElement||
document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1);break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){ke(f,null)},!1);break}}if(this.ea=a.fontROM)"json"!=fa(this.ea)&&(this.ea=ha()+"/api/v1/dump?file="+this.ea+"&format=bytes"),sa(this.ea,null,!0,function(a,b,c){le(f,a,b,c)});this.Jb={}}bb(he);var je=0,ie={SI1978:1,VT100:2}; document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1);break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){ke(f,null)},!1);break}}if(this.ea=a.fontROM)"json"!=fa(this.ea)&&(this.ea=ha()+"/api/v1/dump?file="+this.ea+"&format=bytes"),sa(this.ea,null,!0,function(a,b,c){le(f,a,b,c)});this.Jb={}}bb(he);var je=0,ie={SI1978:1,VT100:2};
function Rd(a){a.J=a.ca*a.ra;a.ba=a.wa*a.ma;var b=a.J,c=a.ba;a.w&&(b=a.ba,c=a.J);a.P=0;if(!a.Gd&&(a.P=(a.J*a.Wa>>3)*a.ba,!zb(a.u,a.Va,a.P,3)))return!1;a.P?(a.jc=a.I.createImageData(b,c),a.mc=16/a.Wa|0,me(a,a.P>>1)):me(a,(a.ca+1)*a.wa);a.L=document.createElement("canvas");a.L.width=b;a.L.height=c;a.ob=a.L.getContext("2d");a.fa={};a.qa=1<<a.Wa;a.ha=Array(a.qa+2);a.ha[0]=[0,0,0,255];a.ha[1]=[255,255,255,255];1==a.la&&(a.ha[a.qa+0]=[255,255,0,255],a.ha[a.qa+1]=[0,255,0,255]);2==a.la&&(a.oc=60,a.Ib=!1, function Rd(a){a.J=a.ca*a.ra;a.ba=a.wa*a.ma;var b=a.J,c=a.ba;a.w&&(b=a.ba,c=a.J);a.P=0;if(!a.Id&&(a.P=(a.J*a.Va>>3)*a.ba,!zb(a.u,a.Ua,a.P,3)))return!1;a.P?(a.lc=a.I.createImageData(b,c),a.oc=16/a.Va|0,me(a,a.P>>1)):me(a,(a.ca+1)*a.wa);a.L=document.createElement("canvas");a.L.width=b;a.L.height=c;a.ob=a.L.getContext("2d");a.fa={};a.qa=1<<a.Va;a.ha=Array(a.qa+2);a.ha[0]=[0,0,0,255];a.ha[1]=[255,255,255,255];1==a.la&&(a.ha[a.qa+0]=[255,255,0,255],a.ha[a.qa+1]=[0,255,0,255]);2==a.la&&(a.qc=60,a.Ib=!1,
a.Fa=Array(a.ca));return!0}he.prototype.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;Rd(this);if(this.K=vb(a,"Keyboard")){for(var e in this.Jb)this.K.oa("led",e,this.Jb[e]);this.M&&this.K.oa(this.Ld?"textarea":"canvas","kbd",this.ka)}var f=this;this.qc=Jc(this.b,function(){Mc(f)});Kc(this.b,this.qc,1E3/Math.max(this.pc,this.Xa));this.nc=0;this.ea||F(this)}; a.Fa=Array(a.ca));return!0}he.prototype.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;Rd(this);if(this.K=vb(a,"Keyboard")){for(var e in this.Jb)this.K.oa("led",e,this.Jb[e]);this.M&&this.K.oa(this.Nd?"textarea":"canvas","kbd",this.ka)}var f=this;this.sc=Jc(this.b,function(){Mc(f)});Kc(this.b,this.sc,1E3/Math.max(this.rc,this.Wa));this.pc=0;this.ea||F(this)};
function le(a,b,c,d){if(d)a.ja("Unable to load font ROM (error "+d+": "+b+")");else{db(a.Ab,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){w("Empty font ROM: "+b);return}if(1==f.length){w(f[0]);return}if(2048==f.length)a.za=f,Sd(a);else{a.ja("Unrecognized font data length ("+f.length+")");return}}catch(h){a.ja("Font ROM data error: "+h.message);return}(a.I||a.H)&&F(a)}} function le(a,b,c,d){if(d)a.ja("Unable to load font ROM (error "+d+": "+b+")");else{db(a.Ab,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){w("Empty font ROM: "+b);return}if(1==f.length){w(f[0]);return}if(2048==f.length)a.za=f,Sd(a);else{a.ja("Unrecognized font data length ("+f.length+")");return}}catch(h){a.ja("Font ROM data error: "+h.message);return}(a.I||a.H)&&F(a)}}
function Sd(a){a.za&&(a.hc=2==a.la,a.fa[96]=[ne(a,a.ra,a.ma),ne(a,a.ra,a.ma,a.Ib)],a.fa[64]=[ne(a,2*a.ra,a.ma),ne(a,2*a.ra,a.ma,a.Ib)],a.fa[32]=a.fa[0]=[ne(a,2*a.ra,2*a.ma),ne(a,2*a.ra,2*a.ma,a.Ib)])} function Sd(a){a.za&&(a.jc=2==a.la,a.fa[96]=[ne(a,a.ra,a.ma),ne(a,a.ra,a.ma,a.Ib)],a.fa[64]=[ne(a,2*a.ra,a.ma),ne(a,2*a.ra,a.ma,a.Ib)],a.fa[32]=a.fa[0]=[ne(a,2*a.ra,2*a.ma),ne(a,2*a.ra,2*a.ma,a.Ib)])}
function ne(a,b,c,d){var e=8>=a.dc?8:16,f=8<e?15:0,h=a.za.length/e,g=!1===d,k={ra:b,ma:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=h/16*c;k.context=k.canvas.getContext("2d");for(var m=k.context.createImageData(b,c),p=0;p<h;p++){for(var q=0,x=q;q<a.ma;q++)for(var u=p*e+(f+q&e-1),u=d&&8==q?255:a.za[u],r=0;r<c/a.ma;r++){for(var C=0,y=0,Y=y;y<a.ra;y++){for(var B=u&128>>(7<y?7:y),C=a.hc&&!B&&C?C:B,R=0;R<b/a.ra;R++)g&&(C=!C),oe(a,m,Y,x,C?1:0),Y++;C=B}x++}k.context.putImageData(m, function ne(a,b,c,d){var e=8>=a.fc?8:16,f=8<e?15:0,h=a.za.length/e,g=!1===d,k={ra:b,ma:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=h/16*c;k.context=k.canvas.getContext("2d");for(var m=k.context.createImageData(b,c),p=0;p<h;p++){for(var q=0,x=q;q<a.ma;q++)for(var u=p*e+(f+q&e-1),u=d&&8==q?255:a.za[u],r=0;r<c/a.ma;r++){for(var C=0,y=0,Y=y;y<a.ra;y++){for(var B=u&128>>(7<y?7:y),C=a.jc&&!B&&C?C:B,R=0;R<b/a.ra;R++)g&&(C=!C),oe(a,m,Y,x,C?1:0),Y++;C=B}x++}k.context.putImageData(m,
(p&15)*b,(p>>4)*c)}return k}he.prototype.Ea=function(){return!0};he.prototype.oa=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Jb[b]=c,!0;switch(b){case "fullScreen":return this.N[b]=c,this.j&&this.j.gb?c.onclick=function(){d.gb()}:c.parentNode.removeChild(c),!0}return!1}; (p&15)*b,(p>>4)*c)}return k}he.prototype.Ea=function(){return!0};he.prototype.oa=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Jb[b]=c,!0;switch(b){case "fullScreen":return this.N[b]=c,this.j&&this.j.gb?c.onclick=function(){d.gb()}:c.parentNode.removeChild(c),!0}return!1};
he.prototype.gb=function(){var a=!1;if(this.j){if(this.j.gb){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Y/this.O;b>c&&(a=Math.round(c/b*100)+"%")}this.ic?(this.M.style.width=a,this.M.style.width=a,this.M.style.display="block",this.M.style.margin="auto"):(this.j.style.width=a,this.j.style.height="auto");this.j.style.backgroundColor="black";this.j.gb();a=!0}this.ka&&this.ka.focus()}return a}; he.prototype.gb=function(){var a=!1;if(this.j){if(this.j.gb){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Y/this.O;b>c&&(a=Math.round(c/b*100)+"%")}this.kc?(this.M.style.width=a,this.M.style.width=a,this.M.style.display="block",this.M.style.margin="auto"):(this.j.style.width=a,this.j.style.height="auto");this.j.style.backgroundColor="black";this.j.gb();a=!0}this.ka&&this.ka.focus()}return a};
function ke(a,b){!b&&a.j&&(a.ic?a.M.style.width=a.M.style.height="":a.j.style.width=a.j.style.height="");jb(a,"notifyFullScreen("+b+")")}function me(a,b){a.lc=b;a.ia=!1;if(void 0===a.G||a.G.length!=a.lc)a.G=Array(a.lc)}function oe(a,b,c,d,e){d=a.w?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.la&&(208<=c&&236>c?e=a.qa+0:28<=c&&72>c&&(e=a.qa+1));a=a.ha[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} function ke(a,b){!b&&a.j&&(a.kc?a.M.style.width=a.M.style.height="":a.j.style.width=a.j.style.height="");jb(a,"notifyFullScreen("+b+")")}function me(a,b){a.nc=b;a.ia=!1;if(void 0===a.G||a.G.length!=a.nc)a.G=Array(a.nc)}function oe(a,b,c,d,e){d=a.w?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.la&&(208<=c&&236>c?e=a.qa+0:28<=c&&72>c&&(e=a.qa+1));a=a.ha[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
function Mc(a,b){var c=!0;if(!b){a.Xa&&(120==a.Xa?a.nc&1?(Hd(a.b,2),c=!1):Hd(a.b,1):Hd(a.b,4));if(c&&a.ia&&a.P){for(var d=a.u,e=a.P,f=!0,h=a.Va>>>d.sa;0<e&&h<d.X.length;)d.X[h].Na&&(d.X[h].Na=f=!1,d.X[h].vc=!0),e-=d.Ha,h++;f&&(c=!1)}Kc(a.b,a.qc,1E3/Math.max(a.pc,a.Xa));a.nc++}if(c)if(1<a.ra)switch(a.la){case 2:for(var c=a.Va,d=-1,e=0,f=60==a.oc?2:5,g=h=0,k=-1;e<a.wa;){var m=0,p=c,q=d,x=a.ca;for(96!=q&&(x>>=1);;){var u=Cb(a.u,p++);if(127==(u&127)){var r=Cb(a.u,p++),d=r&96,c=(r&15)<<8|Cb(a.u,p),c=c+ function Mc(a,b){var c=!0;if(!b){a.Wa&&(120==a.Wa?a.pc&1?(Hd(a.b,2),c=!1):Hd(a.b,1):Hd(a.b,4));if(c&&a.ia&&a.P){for(var d=a.u,e=a.P,f=!0,h=a.Ua>>>d.sa;0<e&&h<d.X.length;)d.X[h].Na&&(d.X[h].Na=f=!1,d.X[h].xc=!0),e-=d.Ha,h++;f&&(c=!1)}Kc(a.b,a.sc,1E3/Math.max(a.rc,a.Wa));a.pc++}if(c)if(1<a.ra)switch(a.la){case 2:for(var c=a.Ua,d=-1,e=0,f=60==a.qc?2:5,g=h=0,k=-1;e<a.wa;){var m=0,p=c,q=d,x=a.ca;for(96!=q&&(x>>=1);;){var u=Cb(a.u,p++);if(127==(u&127)){var r=Cb(a.u,p++),d=r&96,c=(r&15)<<8|Cb(a.u,p),c=c+
(r&16?8192:16384);break}if(m<x)a.Fa[m++]=u;else break}if(f)f--;else{for(;m<a.Fa.length;)a.Fa[m++]=0;if(0<=q)for(p=a.ia&&a.G[h]==x,a.G[h++]=x,x=0;x<m;x++){u=a.Fa[x];if(!p||u!==a.G[h]){a.G[k=h]=u;var r=a,C=a.ob,y=u&127;if(u=r.fa[q][u&128?1:0]){var Y=(y&15)*u.ra,y=(y>>4)*u.ma,B=void 0,R=void 0,ca=void 0,Z=void 0,va=u.ra,Gb=u.ma;C?(B=x*r.ra,R=e*r.ma,ca=r.ra,Z=r.ma):(B=x*r.ec,R=e*r.fc,ca=r.ec,Z=r.fc);u.ra>r.ra&&(B*=2,ca*=2);u.ma>r.ma&&(0==q&&(y+=r.ma),Gb=r.ma);C?C.drawImage(u.canvas,Y,y,va,Gb,B,R,ca,Z): (r&16?8192:16384);break}if(m<x)a.Fa[m++]=u;else break}if(f)f--;else{for(;m<a.Fa.length;)a.Fa[m++]=0;if(0<=q)for(p=a.ia&&a.G[h]==x,a.G[h++]=x,x=0;x<m;x++){u=a.Fa[x];if(!p||u!==a.G[h]){a.G[k=h]=u;var r=a,C=a.ob,y=u&127;if(u=r.fa[q][u&128?1:0]){var Y=(y&15)*u.ra,y=(y>>4)*u.ma,B=void 0,R=void 0,ca=void 0,Z=void 0,va=u.ra,Hb=u.ma;C?(B=x*r.ra,R=e*r.ma,ca=r.ra,Z=r.ma):(B=x*r.gc,R=e*r.hc,ca=r.gc,Z=r.hc);u.ra>r.ra&&(B*=2,ca*=2);u.ma>r.ma&&(0==q&&(y+=r.ma),Hb=r.ma);C?C.drawImage(u.canvas,Y,y,va,Hb,B,R,ca,Z):
(B+=0,R+=0,r.I.drawImage(u.canvas,Y,y,va,Gb,B,R,ca,Z))}g++}h++}e++}}a.ia=!0;!b&&a.pb&&1==g&&(a.G[k]=-1,g=0);a.pb=!1;(g||b)&&a.ob&&a.I.drawImage(a.L,0,a.nb,a.J,a.ba-a.ma,0,0,a.Cc,a.Fd)}else{f=a.Va;h=f+a.P;m=k=g=0;c=a.J;q=0;d=a.ba;p=e=0;x=a.Wa;r=(1<<x)-1;a.Id&&(x=-x,p=16+x);for(;f<h;){C=Db(a.u,f);if(a.ia&&C===a.G[g])k+=a.mc;else{a.G[g]=C;(u=p)&&(C=C>>8|(C&255)<<8);k<c&&(c=k);for(Y=a.mc;Y--;)y=C>>u&r,oe(a,a.jc,k++,m,y),u+=x;k>q&&(q=k);m<d&&(d=m);m>=e&&(e=m+1)}f+=2;g++;if(k>=a.J&&(k=0,m++,m>a.ba))break}a.ia= (B+=0,R+=0,r.I.drawImage(u.canvas,Y,y,va,Hb,B,R,ca,Z))}g++}h++}e++}}a.ia=!0;!b&&a.pb&&1==g&&(a.G[k]=-1,g=0);a.pb=!1;(g||b)&&a.ob&&a.I.drawImage(a.L,0,a.nb,a.J,a.ba-a.ma,0,0,a.Ec,a.Hd)}else{f=a.Ua;h=f+a.P;m=k=g=0;c=a.J;q=0;d=a.ba;p=e=0;x=a.Va;r=(1<<x)-1;a.Kd&&(x=-x,p=16+x);for(;f<h;){C=Db(a.u,f);if(a.ia&&C===a.G[g])k+=a.oc;else{a.G[g]=C;(u=p)&&(C=C>>8|(C&255)<<8);k<c&&(c=k);for(Y=a.oc;Y--;)y=C>>u&r,oe(a,a.lc,k++,m,y),u+=x;k>q&&(q=k);m<d&&(d=m);m>=e&&(e=m+1)}f+=2;g++;if(k>=a.J&&(k=0,m++,m>a.ba))break}a.ia=
!0;c<a.J&&(f=q-c,e-=d,a.w&&(h=c,g=f,c=d,f=e,d=a.J-(h+g),e=g),a.ob.putImageData(a.jc,0,0,c,d,f,e),a.I.drawImage(a.L,0,0,a.L.width,a.L.height,0,0,a.Y,a.O))}} !0;c<a.J&&(f=q-c,e-=d,a.w&&(h=c,g=f,c=d,f=e,d=a.J-(h+g),e=g),a.ob.putImageData(a.lc,0,0,c,d,f,e),a.I.drawImage(a.L,0,0,a.L.width,a.L.height,0,0,a.Y,a.O))}}
Ma(function(){for(var a=D(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=ta().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= Ma(function(){for(var a=D(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=ta().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Va.aspect);f&&.3<=f&&3.33>=f&&(La("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Aa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new he(d,e,h,f,c);hb(d,c)}}); (a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Va.aspect);f&&.3<=f&&3.33>=f&&(La("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Aa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new he(d,e,h,f,c);hb(d,c)}});
function pe(a){this.fa=+a.adapter;switch(this.fa){case 0:this.ha=0;this.ka=2;break;default:w("Unrecognized serial adapter #"+this.fa);return}this.j=this.w=null;this.ia=a.tabSize;this.ea=a.charBOL;this.D=0;this.ba=!1;z.call(this,"SerialPort",a,pe,8388608);var b=a.binding;if("console"==b)this.w="";else{var c;a=qe;b&&(void 0===c&&(c="Panel"),(c=gb(c,this.id))&&(b=c.N[b])&&this.oa(null,a,b))}this.G="";this.K=this.M=null;this.exports={connect:this.xc,receiveData:this.Ob}}bb(pe); function pe(a){this.fa=+a.adapter;switch(this.fa){case 0:this.ha=0;this.ka=2;break;default:w("Unrecognized serial adapter #"+this.fa);return}this.j=this.w=null;this.ia=a.tabSize;this.ea=a.charBOL;this.D=0;this.ba=!1;z.call(this,"SerialPort",a,pe,8388608);var b=a.binding;if("console"==b)this.w="";else{var c;a=qe;b&&(void 0===c&&(c="Panel"),(c=gb(c,this.id))&&(b=c.N[b])&&this.oa(null,a,b))}this.G="";this.K=this.M=null;this.exports={connect:this.zc,receiveData:this.Qb}}bb(pe);
var re=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],se=[!1,0,0,133,142,39,238],qe="buffer";l=pe.prototype; var re=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],se=[!1,0,0,133,142,39,238],qe="buffer";l=pe.prototype;
l.oa=function(a,b,c,d){var e=this;switch(b){case qe:return this.N[b]=this.j=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),te(e,b);return!0},c.onkeypress=function(a){a=a||window.event;te(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.N[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.Ob(d);return!0}, l.oa=function(a,b,c,d){var e=this;switch(b){case qe:return this.N[b]=this.j=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),te(e,b);return!0},c.onkeypress=function(a){a=a||window.event;te(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.N[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.Qb(d);return!0},
!0}return!1};l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;var e=this;this.qa=Jc(this.b,function(){e.Ob()});this.la=Jc(this.b,function(){e.Da|=5});this.I=vb(a,"ChipSet");Hb(b,this,ue,this.ha);Tb(b,this,ve,this.ha);F(this)}; !0}return!1};l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;var e=this;this.qa=Jc(this.b,function(){e.Qb()});this.la=Jc(this.b,function(){e.Da|=5});this.I=vb(a,"ChipSet");Gb(b,this,ue,this.ha);Tb(b,this,ve,this.ha);F(this)};
l.xc=function(){if(!this.K){var a=nc(this.B,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ma(b[0]);if(c!=this.cb)return;b=ma(b[1]);if(this.K=fb(b)){var d=this.K.exports;if(d){var e=d.connect;e&&e.call(this.K);if(this.M=d.receiveData){this.status(this.Ab+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};l.Ea=function(a,b){if(!b)if(this.xc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; l.zc=function(){if(!this.K){var a=nc(this.B,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ma(b[0]);if(c!=this.cb)return;b=ma(b[1]);if(this.K=fb(b)){var d=this.K.exports;if(d){var e=d.connect;e&&e.call(this.K);if(this.M=d.receiveData){this.status(this.Ab+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};l.Ea=function(a,b){if(!b)if(this.zc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
l.Ia=function(a){return a?this.save():!0};l.reset=function(){we(this)};l.save=function(){var a=new Uc(this),b=0,c=[];c[b++]=this.L;c[b++]=this.Y;c[b++]=this.ca;c[b++]=this.Da;c[b++]=this.J;c[b++]=this.P;c[b]=this.O;I(a,0,c);return a.data()};l.restore=function(a){return we(this,a[0])};function we(a,b){var c=0;void 0===b&&(b=se);a.L=b[c++];a.Y=b[c++];a.ca=b[c++];a.Da=b[c++];a.J=b[c++];a.P=b[c++];a.O=b[c];return!0} l.Ia=function(a){return a?this.save():!0};l.reset=function(){we(this)};l.save=function(){var a=new Uc(this),b=0,c=[];c[b++]=this.L;c[b++]=this.Y;c[b++]=this.ca;c[b++]=this.Da;c[b++]=this.J;c[b++]=this.P;c[b]=this.O;I(a,0,c);return a.data()};l.restore=function(a){return we(this,a[0])};function we(a,b){var c=0;void 0===b&&(b=se);a.L=b[c++];a.Y=b[c++];a.ca=b[c++];a.Da=b[c++];a.J=b[c++];a.P=b[c++];a.O=b[c];return!0}
function xe(a,b){var c=a.O&b;b&15||(c>>=4);var c=re[c],d=((a.J&12)>>2)+6;a.J&16&&d++;d+=((a.J&192)>>6)+1>>1;return 1E3/Math.round(c/d)}function te(a,b){jb(a,"receiveByte("+ba(b)+"), status="+ba(a.Da));return a.ba||a.Da&2?!1:(a.Y=b,a.Da|=2,Hd(a.b,a.ka),!0)}l.Ob=function(a){null!=a&&(this.G="number"!=typeof a?a:this.G+String.fromCharCode(a));this.G&&(te(this,this.G.charCodeAt(0))&&(this.G=this.G.substr(1)),this.G&&this.b&&Kc(this.b,this.qa,xe(this,15)));return!0}; function xe(a,b){var c=a.O&b;b&15||(c>>=4);var c=re[c],d=((a.J&12)>>2)+6;a.J&16&&d++;d+=((a.J&192)>>6)+1>>1;return 1E3/Math.round(c/d)}function te(a,b){jb(a,"receiveByte("+ba(b)+"), status="+ba(a.Da));return a.ba||a.Da&2?!1:(a.Y=b,a.Da|=2,Hd(a.b,a.ka),!0)}l.Qb=function(a){null!=a&&(this.G="number"!=typeof a?a:this.G+String.fromCharCode(a));this.G&&(te(this,this.G.charCodeAt(0))&&(this.G=this.G.substr(1)),this.G&&this.b&&Kc(this.b,this.qa,xe(this,15)));return!0};
l.Nd=function(a,b){var c=this.Y;E(this,a,null,b,"DATA",c);this.Da&=-3;return c};l.Md=function(a,b){var c=this.Da;E(this,a,null,b,"STATUS",c);return c}; l.Pd=function(a,b){var c=this.Y;E(this,a,null,b,"DATA",c);this.Da&=-3;return c};l.Od=function(a,b){var c=this.Da;E(this,a,null,b,"STATUS",c);return c};
l.Xd=function(a,b,c){E(this,a,b,c,"DATA");this.ca=b;this.Da&=-6;jb(this,"transmitByte("+ba(b)+")");if(19==b)this.ba=!0;else if(17==b)this.ba=!1;else if(this.M&&this.M.call(this.K,b),this.j)8==b?(this.j.value=this.j.value.slice(0,-1),0<this.D&&this.D--):(a=(a=na[b])?"<"+a+">":String.fromCharCode(b),c=a.length,9==b?(b=this.ia||8,c=b-this.D%b,this.ia&&(a=la("",c))):13==b&&(this.D=c=0,a="\n"),this.ea&&!this.D&&c&&(a=String.fromCharCode(this.ea)+a),this.j.value+=a,this.j.scrollTop=this.j.scrollHeight, l.Zd=function(a,b,c){E(this,a,b,c,"DATA");this.ca=b;this.Da&=-6;jb(this,"transmitByte("+ba(b)+")");if(19==b)this.ba=!0;else if(17==b)this.ba=!1;else if(this.M&&this.M.call(this.K,b),this.j)8==b?(this.j.value=this.j.value.slice(0,-1),0<this.D&&this.D--):(a=(a=na[b])?"<"+a+">":String.fromCharCode(b),c=a.length,9==b?(b=this.ia||8,c=b-this.D%b,this.ia&&(a=la("",c))):13==b&&(this.D=c=0,a="\n"),this.ea&&!this.D&&c&&(a=String.fromCharCode(this.ea)+a),this.j.value+=a,this.j.scrollTop=this.j.scrollHeight,
this.D+=c);else if(null!=this.w){if(10==b||1024<=this.w.length)this.g(this.w),this.w="";10!=b&&(this.w+=String.fromCharCode(b))}this.b&&Kc(this.b,this.la,xe(this,240))};l.Wd=function(a,b,c){E(this,a,b,c,"CONTROL");this.L?(this.P=b,this.P&64&&(this.L=!1)):(this.J=b,this.L=!0)};l.Vd=function(a,b,c){E(this,a,b,c,"BAUDRATES");this.O=b};var ue={0:pe.prototype.Nd,1:pe.prototype.Md},ve={0:pe.prototype.Xd,1:pe.prototype.Wd,2:pe.prototype.Vd}; this.D+=c);else if(null!=this.w){if(10==b||1024<=this.w.length)this.g(this.w),this.w="";10!=b&&(this.w+=String.fromCharCode(b))}this.b&&Kc(this.b,this.la,xe(this,240))};l.Yd=function(a,b,c){E(this,a,b,c,"CONTROL");this.L?(this.P=b,this.P&64&&(this.L=!1)):(this.J=b,this.L=!0)};l.Xd=function(a,b,c){E(this,a,b,c,"BAUDRATES");this.O=b};var ue={0:pe.prototype.Pd,1:pe.prototype.Od},ve={0:pe.prototype.Zd,1:pe.prototype.Yd,2:pe.prototype.Xd};
Ma(function(){for(var a=D(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new pe(d);hb(d,c)}});function ye(a){z.call(this,"Debugger",a,ye);this.ba=this.la=this.J=0;this.P=!1;this.j=-1;this.w=[];this.ea={}}bb(ye);var ze={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; Ma(function(){for(var a=D(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new pe(d);hb(d,c)}});function ye(a){z.call(this,"Debugger",a,ye);this.ba=this.la=this.J=0;this.P=!1;this.j=-1;this.w=[];this.ea={}}bb(ye);var ze={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function Ae(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; function Ae(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}ye.prototype.Mb=function(){return-1};ye.prototype.Nb=function(){};
ye.prototype.Eb=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 h=a.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==c&&!e||!h)b.push(ma(a.substring(d,f))),d=f+1}}return b}; ye.prototype.Eb=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 h=a.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==c&&!e||!h)b.push(ma(a.substring(d,f))),d=f+1}}return b};
function Be(a,b,c){var d;if(b){b=Ce(a,b);for(var e=0,f=!1,h=b,g=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var p=m[e++],q=p.length,p=ma(p);if(!p){f=!0;break}p=De(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}g.push(p);if(e==m.length)break;var p=m[e++],x=p.length;k.length&&ze[p]<ze[k[k.length-1]]&&Ae(g,k,1);k.push(p);b=b.substr(q+x)}Ae(g,k)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&Ee(a,null, function Be(a,b,c){var d;if(b){b=Ce(a,b);for(var e=0,f=!1,h=b,g=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var p=m[e++],q=p.length,p=ma(p);if(!p){f=!0;break}p=De(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}g.push(p);if(e==m.length)break;var p=m[e++],x=p.length;k.length&&ze[p]<ze[k[k.length-1]]&&Ae(g,k,1);k.push(p);b=b.substr(q+x)}Ae(g,k)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.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?t(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=Fe(a,c[1]),b=b.replace("["+c[1]+"]",d?t(a.Sa(d,0),d.Xe?8:4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.ba-a.la}if(null==e)break;c=c.replace(d[0],e.toString())}return c} 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?t(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.ba-a.la}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
function De(a,b,c,d){var e;void 0!==b?(e=Ge(b),0<=e?e=He(a,e):(e=a.ea[b],void 0===e&&(e=aa(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e} function De(a,b,c,d){var e;null!=b?(e=a.Mb(b),0<=e?e=a.Nb(e):(e=a.ea[b],null==e&&(e=aa(b))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
function Ee(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var k=d&255,m=8,p="";void 0===m?m=32:32<m&&(m=32);if(null==k||isNaN(k))for(;0<m--;)p="?"+p;else for(;0<m--;)p=(k&1?"1":"0")+p,k>>=1;h=p+"b"+h;d>>=8}d="0x"+t(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function Ie(a,b){if(b)return Ee(a,b,a.ea[b]);var c=0;for(b in a.ea)Ee(a,b,a.ea[b]),c++;return 0<c} function Ee(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var k=d&255,m=8,p="";void 0===m?m=32:32<m&&(m=32);if(null==k||isNaN(k))for(;0<m--;)p="?"+p;else for(;0<m--;)p=(k&1?"1":"0")+p,k>>=1;h=p+"b"+h;d>>=8}d="0x"+t(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function Fe(a,b){if(b)return Ee(a,b,a.ea[b]);var c=0;for(b in a.ea)Ee(a,b,a.ea[b]),c++;return 0<c}
function Je(a){z.call(this,"Debugger",a,Je);this.style=Ke;this.M=W();this.Va=W();this.ca=W();this.G=[];this.I=this.O=this.D=[];Le(this);this.ia=0;Me(this);this.wa=[];Ne(this,a.messages);this.za=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return qc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return qc(b,a)})}bb(Je,ye); function Ge(a){z.call(this,"Debugger",a,Ge);this.style=He;this.M=W();this.Ua=W();this.ca=W();this.G=[];this.I=this.O=this.D=[];Ie(this);this.ia=0;Je(this);this.wa=[];Ke(this,a.messages);this.za=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return qc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return qc(b,a)})}bb(Ge,ye);
var Oe={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"}, var Le={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},
Ke=8080,Pe="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),Qe="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "), He=8080,Me="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),Ne="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),
Re="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Se=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963, Oe="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Pe=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,
2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617],[44,1617,32],[72],[45,32768],[21,18963,2835],[39,18193,115],[23,2835],[28,1809],[22,1809],[44,1809,32],[17],[43,17,17],[43,17,273],[43,17,529],[43,17,785],[43,17,1041],[43,17,1297],[43,17,1617],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1617],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529, 2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617],[44,1617,32],[72],[45,32768],[21,18963,2835],[39,18193,115],[23,2835],[28,1809],[22,1809],[44,1809,32],[17],[43,17,17],[43,17,273],[43,17,529],[43,17,785],[43,17,1041],[43,17,1297],[43,17,1617],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1617],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529,
785],[43,529,1041],[43,529,1297],[43,529,1617],[43,529,1809],[43,785,17],[43,785,273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43,785,1617],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1617],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1617],[43,1297,1809],[43,1617,17],[43,1617,273],[43,1617,529],[43,1617,785],[43,1617,1041],[43,1617,1297],[26],[43,1617,1809], 785],[43,529,1041],[43,529,1297],[43,529,1617],[43,529,1809],[43,785,17],[43,785,273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43,785,1617],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1617],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1617],[43,1297,1809],[43,1617,17],[43,1617,273],[43,1617,529],[43,1617,785],[43,1617,1041],[43,1617,1297],[26],[43,1617,1809],
[43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],[43,1809,1297],[43,1809,1617],[43,1809,1809],[3,18193,17],[3,18193,273],[3,18193,529],[3,18193,785],[3,18193,1041],[3,18193,1297],[3,18193,1617],[3,18193,1809],[2,18193,17],[2,18193,273],[2,18193,529],[2,18193,785],[2,18193,1041],[2,18193,1297],[2,18193,1617],[2,18193,1809],[73,18193,17],[73,18193,273],[73,18193,529],[73,18193,785],[73,18193,1041],[73,18193,1297],[73,18193,1617],[73,18193,1809],[66,18193,17],[66,18193,273],[66, [43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],[43,1809,1297],[43,1809,1617],[43,1809,1809],[3,18193,17],[3,18193,273],[3,18193,529],[3,18193,785],[3,18193,1041],[3,18193,1297],[3,18193,1617],[3,18193,1809],[2,18193,17],[2,18193,273],[2,18193,529],[2,18193,785],[2,18193,1041],[2,18193,1297],[2,18193,1617],[2,18193,1809],[73,18193,17],[73,18193,273],[73,18193,529],[73,18193,785],[73,18193,1041],[73,18193,1297],[73,18193,1617],[73,18193,1809],[66,18193,17],[66,18193,273],[66,
18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785],[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193, 18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785],[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,
785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62],[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77, 785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62],[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77,
18193,33],[65,128],[59],[50,3603],[35,51],[24],[12,51],[51,3603],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19,18193,33],[65,128]];l=Je.prototype; 18193,33],[65,128],[59],[50,3603],[35,51],[24],[12,51],[51,3603],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19,18193,33],[65,128]];l=Ge.prototype;
l.Pa=function(a,b,c,d){this.u=b;this.b=c;this.B=a;(a=nc(a,"messages"))&&Ne(this,a);this.Fa=Se;Pd(this,64,function(a){a:{var b=d.u.X,c=a[0],g=a=0,k=b.length;if(c){a=Te(Fe(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.u.sa;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;k--;){var p=b[g];p.type==c?m++||d.g("..."):(c=p.type,m=Bb[c],p&&d.g(t(p.id)+" %"+t(g<<d.u.sa)+" %%"+t(p.F)+" "+v(p.xb)+" "+ l.Pa=function(a,b,c,d){this.u=b;this.b=c;this.B=a;(a=nc(a,"messages"))&&Ke(this,a);this.Fa=Pe;Pd(this,64,function(a){a:{var b=d.u.X,c=a[0],g=a=0,k=b.length;if(c){a=Qe(Re(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.u.sa;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;k--;){var p=b[g];p.type==c?m++||d.g("..."):(c=p.type,m=Bb[c],p&&d.g(t(p.id)+" %"+t(g<<d.u.sa)+" %%"+t(p.F)+" "+v(p.xb)+" "+
v(p.size)+" "+m),c!=$b&&(c=-1),m=0);a+=d.u.Ha;g++}}});F(this)}; v(p.size)+" "+m),c!=$b&&(c=-1),m=0);a+=d.u.Ha;g++}}});F(this)};
l.oa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ha=this.N[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",qc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.j<d.w.length-1&&(b=d.w[++d.j])):40==a.keyCode&&(0<d.j?b=d.w[--d.j]:(b="",d.j=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.N[b]=c,Ca(c,function(){if(d.ha){var a=d.ha.value; l.oa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ha=this.N[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",qc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.j<d.w.length-1&&(b=d.w[++d.j])):40==a.keyCode&&(0<d.j?b=d.w[--d.j]:(b="",d.j=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.N[b]=c,Ca(c,function(){if(d.ha){var a=d.ha.value;
d.ha.value="";qc(d,a,!0);return!0}return!1}),!0;case "step":return this.N[b]=c,Ca(c,function(a){var b=!1;mb(d,!0)||(lb(d,!0),b=d.kb(a?1:0),lb(d,!1));return b}),!0}return!1};l.wb=function(){this.ha&&this.ha.focus()};function Te(a){a=a&&a.F;null==a&&(a=-1);return a}l.aa=function(a,b){var c=255,d=Te(a);-1!==d&&(c=Cb(this.u,d),b&&Ue(a,b));return c};l.Sa=function(a,b){var c=65535,d=Te(a);-1!==d&&(c=Db(this.u,d),b&&Ue(a,b));return c}; d.ha.value="";qc(d,a,!0);return!0}return!1}),!0;case "step":return this.N[b]=c,Ca(c,function(a){var b=!1;mb(d,!0)||(lb(d,!0),b=d.kb(a?1:0),lb(d,!1));return b}),!0}return!1};l.wb=function(){this.ha&&this.ha.focus()};function Qe(a){a=a&&a.F;null==a&&(a=-1);return a}l.aa=function(a,b){var c=255,d=Qe(a);-1!==d&&(c=Cb(this.u,d),b&&Se(a,b));return c};l.$a=function(a,b){var c=65535,d=Qe(a);-1!==d&&(c=Db(this.u,d),b&&Se(a,b));return c};
l.va=function(a,b,c){var d=Te(a);-1!==d&&(Eb(this.u,d,b),c&&Ue(a,c),rc(this.b,!0))};l.Hb=function(a,b,c){var d=Te(a);if(-1!==d){var e=this.u,f=d&e.u,h=(d&e.w)>>>e.sa;f!=e.u?e.X[h].Rb(f,b&65535,d):(e.X[h++].yb(f,b&255,d),e.X[h&e.K].yb(0,b>>8&255,d+1));c&&Ue(a,c);rc(this.b,!0)}};function W(a){return{F:a,Oa:!1}}function Ve(a){return[a.F,a.Oa]}function We(a){return{F:a[0],Oa:a[1]}} l.va=function(a,b,c){var d=Qe(a);-1!==d&&(Eb(this.u,d,b),c&&Se(a,c),rc(this.b,!0))};l.Hb=function(a,b,c){var d=Qe(a);if(-1!==d){var e=this.u,f=d&e.u,h=(d&e.w)>>>e.sa;f!=e.u?e.X[h].Tb(f,b&65535,d):(e.X[h++].yb(f,b&255,d),e.X[h&e.K].yb(0,b>>8&255,d+1));c&&Se(a,c);rc(this.b,!0)}};function W(a){return{F:a,Oa:!1}}function Te(a){return[a.F,a.Oa]}function Ue(a){return{F:a[0],Oa:a[1]}}
function Fe(a,b,c){var d;c=(c?a.M:a.Va).F;if(void 0!==b){d=b=Ce(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.G.length;c++){var f=a.G[c].Qa[d];if(void 0!==f){d=f.o;void 0!==d&&(e=W(d));break}}if(d=e)return d;c=Be(a,b,void 0)}null!=c&&(d=W(c));return d}function Xe(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Ed=a.Eb(b.Ac=c[2]))}function Ue(a,b){null!=a.F&&(a.F+=b||1)}function X(a){return t(a,4)} function Re(a,b,c){var d;c=(c?a.M:a.Ua).F;if(void 0!==b){d=b=Ce(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.G.length;c++){var f=a.G[c].Qa[d];if(void 0!==f){d=f.o;void 0!==d&&(e=W(d));break}}if(d=e)return d;c=Be(a,b,void 0)}null!=c&&(d=W(c));return d}function Ve(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Gd=a.Eb(b.Cc=c[2]))}function Se(a,b){null!=a.F&&(a.F+=b||1)}function X(a){return t(a,4)}
function wf(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.aa(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Ne(a,b){a.H=a;a.ta=a.Hd=536870912;a.ka=null;a.qa=[];var c=a.Eb(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in tb)0<=ra(c,d)&&(a.ta|=tb[d],a.g(d+" messages enabled"))}function Pd(a,b,c){for(var d in tb)if(b==tb[d]){a.wa[d]=c;break}} function uf(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.aa(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Ke(a,b){a.H=a;a.ta=a.Jd=536870912;a.ka=null;a.qa=[];var c=a.Eb(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in tb)0<=ra(c,d)&&(a.ta|=tb[d],a.g(d+" messages enabled"))}function Pd(a,b,c){for(var d in tb)if(b==tb[d]){a.wa[d]=c;break}}
function Ge(a,b){var c;a=a.toUpperCase();null==b?c=ra(Re,a):(c=ra(Re,a.substr(b,2)),0>c&&(c=ra(Re,a.substr(b,1))));return c}function xf(a,b){var c=0,d=He(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?t(d,c):"??"} l.Mb=function(a,b){var c;a=a.toUpperCase();null==b?c=ra(Oe,a):(c=ra(Oe,a.substr(b,2)),0>c&&(c=ra(Oe,a.substr(b,1))));return c};function vf(a,b){var c=0,d=a.Nb(b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?t(d,c):"??"}
function He(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.i;break;case 0:c=d.S;break;case 1:c=d.T;break;case 8:c=Vc(d);break;case 2:c=d.U;break;case 3:c=d.V;break;case 9:c=Xc(d);break;case 4:c=d.W;break;case 5:c=d.Z;break;case 10:c=J(d);break;case 6:c=d.aa(J(d));break;case 11:c=d.na;break;case 12:c=d.R;break;case 13:c=Tc(d);break;case 14:c=Tc(d)&255|d.i<<8}}return c} l.Nb=function(a){var b;if(0<=a){var c=this.b;switch(a){case 7:b=c.i;break;case 0:b=c.S;break;case 1:b=c.T;break;case 8:b=Vc(c);break;case 2:b=c.U;break;case 3:b=c.V;break;case 9:b=Xc(c);break;case 4:b=c.W;break;case 5:b=c.Z;break;case 10:b=J(c);break;case 6:b=c.aa(J(c));break;case 11:b=c.na;break;case 12:b=c.R;break;case 13:b=Tc(c);break;case 14:b=Tc(c)&255|c.i<<8}}return b};
function yf(a,b){b=Ce(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=Ge(b,c+1),0<=e&&(b=b.substr(0,c)+xf(a,e)+b.substr(c+1+Re[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Fe(a,e))?(d=e+' "'+wf(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Fe(a,e))?(Ue(d),d=e+' "'+ function wf(a,b){b=Ce(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Mb(b,c+1),0<=e&&(b=b.substr(0,c)+vf(a,e)+b.substr(c+1+Oe[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Re(a,e))?(d=e+' "'+uf(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Re(a,e))?(Se(d),d=e+' "'+
wf(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+X(W(this.b.R).F));if(this.ta&1073741824)this.qa.push(a);else if(!this.ka||a!=this.ka)if(this.ka=a,this.ta&-2147483648&&(this.pa(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;Lc(c);c.P=0;rc(c)}}; uf(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+X(W(this.b.R).F));if(this.ta&1073741824)this.qa.push(a);else if(!this.ka||a!=this.ka)if(this.ka=a,this.ta&-2147483648&&(this.pa(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;Lc(c);c.P=0;rc(c)}};
function ib(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.ta&g)!=g||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+v(c)+","+(f?f:"unknown")+(null!=d?","+ba(d):"")+")"+(null!=h?": "+ba(h):"")+(null!=e?" at "+X(e):""))} function ib(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.ta&g)!=g||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+v(c)+","+(f?f:"unknown")+(null!=d?","+ba(d):"")+")"+(null!=h?": "+ba(h):"")+(null!=e?" at "+X(e):""))}
function Me(a){var b;if(Id(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b<a.L.length;b++)a.L[b]=W();a.fa=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.L&&a.L.length&&a.g("instruction history buffer freed"),a.fa=0,a.L=[],a.K=[]}l.bb=function(a){if(!zf(this))return!1;this.b.bb(a);return!0}; function Je(a){var b;if(Id(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b<a.L.length;b++)a.L[b]=W();a.fa=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.L&&a.L.length&&a.g("instruction history buffer freed"),a.fa=0,a.L=[],a.K=[]}l.bb=function(a){if(!xf(this))return!1;this.b.bb(a);return!0};
l.kb=function(a,b,c){if(!zf(this))return!1;this.J=0;a||Id(this)&&Jd(this,this.b.R,0);try{var d=this.b.kb(a);0<d&&(this.J+=d,Hc(this.b,d,!0),sc(this.b,d),this.ba++)}catch(e){"number"!=typeof e&&(this.J=0,qb(this.b,e.stack||e.message))}!1!==c&&rc(this.b);this.Ja(b||!1);return 0<this.J};l.pa=function(a){this.b&&this.b.pa(a)};l.Ja=function(a){void 0===a&&(a=!0);this.M=W(this.b.R);a&&1!=this.Y?Af(this):Bf(this)}; l.kb=function(a,b,c){if(!xf(this))return!1;this.J=0;a||Id(this)&&Jd(this,this.b.R,0);try{var d=this.b.kb(a);0<d&&(this.J+=d,Hc(this.b,d,!0),sc(this.b,d),this.ba++)}catch(e){"number"!=typeof e&&(this.J=0,ob(this.b,e.stack||e.message))}!1!==c&&rc(this.b);this.Ja(b||!1);return 0<this.J};l.pa=function(a){this.b&&this.b.pa(a)};l.Ja=function(a){void 0===a&&(a=!0);this.M=W(this.b.R);a&&1!=this.Y?yf(this):zf(this)};
function zf(a){var b;if(b=a.b&&nb(a.b))b=a.b,b.C.xa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!mb(a.b)?(a=a.b,a.C.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ea=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Ia=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Me(this);this.ba=this.la=0;this.ka=null;this.J=0;this.M=W(this.b.R);this.C.Aa=!1;Cf(this);a||this.Ja()}; function xf(a){var b;if(b=a.b&&nb(a.b))b=a.b,b.C.xa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!mb(a.b)?(a=a.b,a.C.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ea=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Ia=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Je(this);this.ba=this.la=0;this.ka=null;this.J=0;this.M=W(this.b.R);this.C.Aa=!1;Af(this);a||this.Ja()};
l.save=function(){var a=new Uc(this);I(a,0,Ve(this.M));I(a,1,Ve(this.ca));I(a,2,[this.w,this.P,this.ta]);I(a,3,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.M=We(a[b++]),this.ca=We(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.P=a[b][1],this.ta|=a[b][2]);a[3]&&(this.G=a[3]);return!0};l.start=function(a,b){this.Y||this.g("running");this.C.Aa=!0;this.nb=a;this.ob=b}; l.save=function(){var a=new Uc(this);I(a,0,Te(this.M));I(a,1,Te(this.ca));I(a,2,[this.w,this.P,this.ta]);I(a,3,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.M=Ue(a[b++]),this.ca=Ue(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.P=a[b][1],this.ta|=a[b][2]);a[3]&&(this.G=a[3]);return!0};l.start=function(a,b){this.Y||this.g("running");this.C.Aa=!0;this.nb=a;this.ob=b};
l.stop=function(a,b){if(this.C.Aa){this.C.Aa=!1;this.J=b-this.ob;if(!this.Y){var c="stopped";if(this.J){var d=a-this.nb,e=0<d?Math.round(1E3*this.J/d):0,c=c+" (";Id(this)&&(c+=this.ba+" opcodes, ",this.la-=this.ba,this.ba=0);c+=this.J+" cycles, "+d+" ms, "+e+" hz)"}else kb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.Ja(!0);this.wb();Cf(this,this.b.R)}};function Id(a){return 1<a.I.length||!!a.ia} l.stop=function(a,b){if(this.C.Aa){this.C.Aa=!1;this.J=b-this.ob;if(!this.Y){var c="stopped";if(this.J){var d=a-this.nb,e=0<d?Math.round(1E3*this.J/d):0,c=c+" (";Id(this)&&(c+=this.ba+" opcodes, ",this.la-=this.ba,this.ba=0);c+=this.J+" cycles, "+d+" ms, "+e+" hz)"}else kb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.Ja(!0);this.wb();Af(this,this.b.R)}};function Id(a){return 1<a.I.length||!!a.ia}
function Jd(a,b,c){var d=a.b;if(0<c&&(a.ia&&!--a.ia||ic(a,b,1,a.I)))return!0;0<=c&&a.K.length&&(a.ba++,b=Cb(a.u,b),null!=b&&(a.K[b][1]++,b=a.L[a.fa],b.F=d.R,b.Oa=!1,++a.fa==a.L.length&&(a.fa=0)));return!1}function Jb(a,b,c){a.g("break on input from port "+v(b)+": "+t(c));a.pa(!0)}function Vb(a,b,c){a.g("break on output to port "+v(b)+": "+t(c));a.pa(!0)} function Jd(a,b,c){var d=a.b;if(0<c&&(a.ia&&!--a.ia||ic(a,b,1,a.I)))return!0;0<=c&&a.K.length&&(a.ba++,b=Cb(a.u,b),null!=b&&(a.K[b][1]++,b=a.L[a.fa],b.F=d.R,b.Oa=!1,++a.fa==a.L.length&&(a.fa=0)));return!1}function Jb(a,b,c){a.g("break on input from port "+v(b)+": "+t(c));a.pa(!0)}function Vb(a,b,c){a.g("break on output to port "+v(b)+": "+t(c));a.pa(!0)}
function Le(a){var b,c;a.I=["bp"];if(void 0!==a.O)for(b=1;b<a.O.length;b++){c=a.O[b];var d=a.u;jc(d.X[Te(c)>>>d.sa],!1)}a.O=["br"];if(void 0!==a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.u,jc(d.X[Te(c)>>>d.sa],!0);a.D=["bw"];a.Wa=0}l.$a=function(a,b,c){var d=!0;c||Df(this,a,b,!1,!0);if(a!=this.I){var e=Te(b);if(-1===e)this.g("invalid address: "+X(b.F)),d=!1;else{var f=this.u;f.X[e>>>f.sa].$a(e&f.u,a==this.D)}}d&&(a.push(b),c?b.Oa=!0:(Ef(this,a,a.length-1,"set"),Me(this)));return d}; function Ie(a){var b,c;a.I=["bp"];if(void 0!==a.O)for(b=1;b<a.O.length;b++){c=a.O[b];var d=a.u;jc(d.X[Qe(c)>>>d.sa],!1)}a.O=["br"];if(void 0!==a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.u,jc(d.X[Qe(c)>>>d.sa],!0);a.D=["bw"];a.Va=0}l.Za=function(a,b,c){var d=!0;c||Bf(this,a,b,!1,!0);if(a!=this.I){var e=Qe(b);if(-1===e)this.g("invalid address: "+X(b.F)),d=!1;else{var f=this.u;f.X[e>>>f.sa].Za(e&f.u,a==this.D)}}d&&(a.push(b),c?b.Oa=!0:(Cf(this,a,a.length-1,"set"),Je(this)));return d};
function Df(a,b,c,d,e){var f=!1;c=Te(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==Te(g)&&(!d||g.Oa)){f=!0;g.Oa||e||Ef(a,b,h,"cleared");b.splice(h,1);b!=a.I&&(d=a.u,jc(d.X[c>>>d.sa],b==a.D));g.Oa||Me(a);break}}return f}function Ff(a,b){for(var c=1;c<b.length;c++)Ef(a,b,c);return b.length-1}function Ef(a,b,c,d){c=b[c];a.g(b[0]+" "+X(c.F)+(d?" "+d:c.Ac?' "'+c.Ac+'"':""))} function Bf(a,b,c,d,e){var f=!1;c=Qe(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==Qe(g)&&(!d||g.Oa)){f=!0;g.Oa||e||Cf(a,b,h,"cleared");b.splice(h,1);b!=a.I&&(d=a.u,jc(d.X[c>>>d.sa],b==a.D));g.Oa||Je(a);break}}return f}function Df(a,b){for(var c=1;c<b.length;c++)Cf(a,b,c);return b.length-1}function Cf(a,b,c,d){c=b[c];a.g(b[0]+" "+X(c.F)+(d?" "+d:c.Cc?' "'+c.Cc+'"':""))}
function Cf(a,b){if(void 0!==b)ic(a,b,1,a.I,!0),a.Y=0;else for(var c=1;c<a.I.length;c++){var d=a.I[c];if(d.Oa){if(!Df(a,a.I,d,!0))break;c=0}}} function Af(a,b){if(void 0!==b)ic(a,b,1,a.I,!0),a.Y=0;else for(var c=1;c<a.I.length;c++){var d=a.I[c];if(d.Oa){if(!Bf(a,a.I,d,!0))break;c=0}}}
function ic(a,b,c,d,e){var f=!1;if(!a.Wa++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.Oa)for(var k=Te(g),m=0;m<c;m++)if(b+m==k){var p,f=!0;g.Oa&&(Df(a,d,g,!0),e=!0);if(p=g.Ed){for(var f=!1,q=0;q<p.length;q++)if(!Gf(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var x=q+1;x<p.length&&p[x].indexOf("else");x++)q++;if(x==p.length){f=!0;break}}a.b.C.Aa||(f=!0)}if(f){e||Ef(a,d,h,"hit");break}}}a.Wa--;return f} function ic(a,b,c,d,e){var f=!1;if(!a.Va++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.Oa)for(var k=Qe(g),m=0;m<c;m++)if(b+m==k){var p,f=!0;g.Oa&&(Bf(a,d,g,!0),e=!0);if(p=g.Gd){for(var f=!1,q=0;q<p.length;q++)if(!Ef(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var x=q+1;x<p.length&&p[x].indexOf("else");x++)q++;if(x==p.length){f=!0;break}}a.b.C.Aa||(f=!0)}if(f){e||Cf(a,d,h,"hit");break}}}a.Va--;return f}
function Hf(a,b,c,d){for(var e=W(b.F),f=a.aa(b,1),h=a.Fa[f],g="",k=(8086!=a.style?Pe:Qe)[h[0]],m=h.length-1,p=0,q,x=1;x<=m;x++){var u="";q=h[x];if(void 0!==q&&!(q&16384&&a.style==Ke)){var r=q&240;if(r){var C=q&15;C?p=C:q|=p;q&61440||(q|=1==x?8192:4096);if(r&32)a:{var u=a,r=q,C=b,y=" ";switch(r&15){case 1:y=t(u.aa(C,1),2);break;case 2:y=t(u.aa(C,1)<<24>>24,4);break;case 3:y=t(u.Sa(C,2),4);break;default:u="imm("+v(r)+")";break a}8086==u.style&&r&64?y="["+y+"]":r&16||(y=(u.style==Ke?"$":"0x")+y);u=y}else r& function Ff(a,b,c,d){for(var e=W(b.F),f=a.aa(b,1),h=a.Fa[f],g="",k=(8086!=a.style?Me:Ne)[h[0]],m=h.length-1,p=0,q,x=1;x<=m;x++){var u="";q=h[x];if(void 0!==q&&!(q&16384&&a.style==He)){var r=q&240;if(r){var C=q&15;C?p=C:q|=p;q&61440||(q|=1==x?8192:4096);if(r&32)a:{var u=a,r=q,C=b,y=" ";switch(r&15){case 1:y=t(u.aa(C,1),2);break;case 2:y=t(u.aa(C,1)<<24>>24,4);break;case 3:y=t(u.$a(C,2),4);break;default:u="imm("+v(r)+")";break a}8086==u.style&&r&64?y="["+y+"]":r&16||(y=(u.style==He?"$":"0x")+y);u=y}else r&
16?(u=(q&3840)>>8,r=Re[u],8086==a.style&&q&64&&(6==u&&(r="HL"),r="["+r+"]"),u=r):r&128&&(u=(f>>3&7).toString());if(!u||!u.length){g="INVALID";break}0<g.length&&(g+=",");g+=u||"???"}}}f="";h=X(e.F)+" ";if(-1!==e.F&&-1!==b.F){do if(f+=t(a.aa(e,1),2),null==e.F)break;while(e.F!=b.F)}h+=la(f,10);h=h+(q&32768?"*":" ")+la(k,7);g&&(h+=" "+g);c&&(h=la(h,40)+";"+c,h=a.b.C.fb?h+("cycles="+Fc(a.b).toString()+" cs="+t(a.b.sb)):h+(null!=d?"="+d.toString():""));return h} 16?(u=(q&3840)>>8,r=Oe[u],8086==a.style&&q&64&&(6==u&&(r="HL"),r="["+r+"]"),u=r):r&128&&(u=(f>>3&7).toString());if(!u||!u.length){g="INVALID";break}0<g.length&&(g+=",");g+=u||"???"}}}f="";h=X(e.F)+" ";if(-1!==e.F&&-1!==b.F){do if(f+=t(a.aa(e,1),2),null==e.F)break;while(e.F!=b.F)}h+=la(f,10);h=h+(q&32768?"*":" ")+la(k,7);g&&(h+=" "+g);c&&(h=la(h,40)+";"+c,h=a.b.C.fb?h+("cycles="+Fc(a.b).toString()+" cs="+t(a.b.sb)):h+(null!=d?"="+d.toString():""));return h}
function If(a,b){var c;switch(b){case "IF":c=a.b.ua&512;break;case "SF":c=ed(a.b);break;case "ZF":c=dd(a.b);break;case "AF":c=cd(a.b);break;case "PF":c=bd(a.b);break;case "CF":c=$c(a.b);break;default:c=0}return b.charAt(0)+(c?"1":"0")+" "}function Jf(a,b){return Re[b]+"="+xf(a,b)+" "}function Kf(a){return Jf(a,7)+Jf(a,8)+Jf(a,9)+Jf(a,10)+Jf(a,11)+If(a,"IF")+If(a,"SF")+If(a,"ZF")+If(a,"AF")+If(a,"PF")+If(a,"CF")}l.sc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0}; function Gf(a,b){var c;switch(b){case "IF":c=a.b.ua&512;break;case "SF":c=ed(a.b);break;case "ZF":c=dd(a.b);break;case "AF":c=cd(a.b);break;case "PF":c=bd(a.b);break;case "CF":c=$c(a.b);break;default:c=0}return b.charAt(0)+(c?"1":"0")+" "}function Hf(a,b){return Oe[b]+"="+vf(a,b)+" "}function If(a){return Hf(a,7)+Hf(a,8)+Hf(a,9)+Hf(a,10)+Hf(a,11)+Gf(a,"IF")+Gf(a,"SF")+Gf(a,"ZF")+Gf(a,"AF")+Gf(a,"PF")+Gf(a,"CF")}l.uc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Lf(a,b,c){var d=[],e=Te(b)>>>0;for(b=0;b<a.G.length;b++){var f=a.G[b],h=f.F>>>0,g=f.Ud;if(e>=h&&e<h+g){e=oa(f.rc,[e-h],a.sc);0<=e?Mf(a,b,e,d):c&&(e=~e,Mf(a,b,e-1,d),Mf(a,b,e,d));break}}return d}function Mf(a,b,c,d){var e={},f=a.G[b].rc,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.G[b].Qa[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)} function Jf(a,b,c){var d=[],e=Qe(b)>>>0;for(b=0;b<a.G.length;b++){var f=a.G[b],h=f.F>>>0,g=f.Wd;if(e>=h&&e<h+g){e=oa(f.tc,[e-h],a.uc);0<=e?Kf(a,b,e,d):c&&(e=~e,Kf(a,b,e-1,d),Kf(a,b,e,d));break}}return d}function Kf(a,b,c,d){var e={},f=a.G[b].tc,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.G[b].Qa[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)}
function Nf(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.K)if("clear"==b){for(c=0;c<a.K.length;c++)a.K[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.K.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.style?Pe:Qe;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.Fa[h][0]]+" ").substr(0,5)+" ("+ba(h)+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}} function Lf(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.K)if("clear"==b){for(c=0;c<a.K.length;c++)a.K[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.K.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.style?Me:Ne;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.Fa[h][0]]+" ").substr(0,5)+" ("+ba(h)+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}}
function Of(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ie(a)||a.g("no variables"),!0;if(!c[2])return Ie(a,c[1]);if(!c[3])return delete a.ea[c[1]],!0;var d=Be(a,c[3]);return void 0!==d?(a.ea[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1} function Mf(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.ea[c[1]],!0;var d=Be(a,c[3]);return void 0!==d?(a.ea[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1}
function Pf(a,b,c){var d=null;if(b=Fe(a,b,!0)){var e=Lf(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.F-e[1])&&(h=" + "+v(f)),f=e[0]+" ("+X(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.F)&&(h=" - "+v(f)),f=e[4]+" ("+X(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d} function Nf(a,b,c){var d=null;if(b=Re(a,b,!0)){var e=Jf(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.F-e[1])&&(h=" + "+v(f)),f=e[0]+" ("+X(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.F)&&(h=" - "+v(f)),f=e[4]+" ("+X(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
function Qf(a,b){switch(b[1]){case "8080":a.style=Ke;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.tb=c;break;case "stop":a.b.ib=c;break;default:a.g("unknown cs option");return}void 0!==c&&pc(a.b);a.g("checksums "+(a.b.C.fb?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Gc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.ab.toFixed(2)+"Mhz")+" ("+ function Of(a,b){switch(b[1]){case "8080":a.style=He;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.tb=c;break;case "stop":a.b.ib=c;break;default:a.g("unknown cs option");return}void 0!==c&&pc(a.b);a.g("checksums "+(a.b.C.fb?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Gc(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")} 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 Af(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(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=Be(a,f);if(void 0!==g)switch(h=!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= 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(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=Be(a,f);if(void 0!==g)switch(h=!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.na=g&65535;break;case "PC":H(d,g);a.M=W(d.R);break;case "PS":Rc(d,g);break;case "PSW":Rc(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?bd(d)||(d.ga^=1):bd(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?ed(d)||(d.ga^=192):ed(d)&&(d.ga^= 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.na=g&65535;break;case "PC":H(d,g);a.M=W(d.R);break;case "PS":Rc(d,g);break;case "PSW":Rc(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?bd(d)||(d.ga^=1):bd(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?ed(d)||(d.ga^=192):ed(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(!h){a.g("invalid value: "+f);return}rc(d);a.g("updated registers:")}a.g(Kf(a));c&&(a.M=W(d.R),Bf(a,X(a.M.F)))}}function Rf(a,b){b=ma(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(yf(a,c[2])):Be(a,b,!0)}function Sf(a,b,c){var d="t"!=b;c=De(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ba(c,function(){return lb(a,!0)&&a.kb(e,d,!1)},function(){rc(a.b);lb(a,!1)})} 192);break;case "IF":d.ua=g?d.ua|512:d.ua&-513;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}rc(d);a.g("updated registers:")}a.g(If(a));c&&(a.M=W(d.R),zf(a,X(a.M.F)))}}function Pf(a,b){b=ma(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(wf(a,c[2])):Be(a,b,!0)}function Qf(a,b,c){var d="t"!=b;c=De(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ba(c,function(){return lb(a,!0)&&a.kb(e,d,!1)},function(){rc(a.b);lb(a,!1)})}
function Bf(a,b,c,d){if(b=Fe(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Fe(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=mb(a,!1)||a.Y?a.J:null;var h=null!=f?"cycles":null,g=Lf(a,b),k=b.F;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var m=g[0]+":";g[2]&&(m+=" "+g[2]);a.g(m)}g[3]&&(h=g[3],f=null);f=Hf(a,b,h,f);a.g(f);a.M=b;e-=b.F-k;c++}}} function zf(a,b,c,d){if(b=Re(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Re(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=mb(a,!1)||a.Y?a.J:null;var h=null!=f?"cycles":null,g=Jf(a,b),k=b.F;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var m=g[0]+":";g[2]&&(m+=" "+g[2]);a.g(m)}g[3]&&(h=g[3],f=null);f=Ff(a,b,h,f);a.g(f);a.M=b;e-=b.F-k;c++}}}
l.Eb=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 h=a.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==c&&!e||!h)b.push(ma(a.substring(d,f))),d=f+1}}return b}; l.Eb=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 h=a.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==c&&!e||!h)b.push(ma(a.substring(d,f))),d=f+1}}return b};
function Gf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.P&&(a.g("ended assemble at "+X(a.ca.F)),a.M=a.ca,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ka=null;if(nb(a)&&0<b.length){a.P&&(b="a "+X(a.ca.F)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var m=h.charAt(k);if("?"==g||"r"==g||"a">m||"z"<m){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var p=Fe(a,f[1],!0);if(p)if(a.ca= function Ef(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.P&&(a.g("ended assemble at "+X(a.ca.F)),a.M=a.ca,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ka=null;if(nb(a)&&0<b.length){a.P&&(b="a "+X(a.ca.F)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var m=h.charAt(k);if("?"==g||"r"==g||"a">m||"z"<m){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var p=Re(a,f[1],!0);if(p)if(a.ca=
p,void 0===f[2])a.g("begin assemble at "+X(p.F)),a.P=!0,rc(a.b);else{var q;a.g("not supported yet");q=[];if(q.length){for(var x=0;x<q.length;x++)a.va(p,q[x],1);a.g(Hf(a,a.ca))}}break;case "b":a:{var u=f[0],r=f[1],C=b;if("?"==r)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"), p,void 0===f[2])a.g("begin assemble at "+X(p.F)),a.P=!0,rc(a.b);else{var q;a.g("not supported yet");q=[];if(q.length){for(var x=0;x<q.length;x++)a.va(p,q[x],1);a.g(Ff(a,a.ca))}}break;case "b":a:{var u=f[0],r=f[1],C=b;if("?"==r)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),
a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");else{var y=u.charAt(1);if("l"==y){var Y=0,Y=Y+Ff(a,a.I),Y=Y+Ff(a,a.O);(Y+=Ff(a,a.D))||a.g("no breakpoints")}else if("n"==y)a.ia=De(a,r),a.g("break after "+a.ia+" instruction(s)");else if(void 0===r)a.g("missing breakpoint address");else{var B=W();if("*"!=r&&(B=Fe(a,r,!0),!B))break a;r=v(B.F);"c"==y?null==B.F?(Le(a),a.g("all breakpoints cleared")):Df(a,a.I,B)||Df(a,a.O,B)||Df(a,a.D,B)||a.g("breakpoint missing: "+X(B.F)): a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");else{var y=u.charAt(1);if("l"==y){var Y=0,Y=Y+Df(a,a.I),Y=Y+Df(a,a.O);(Y+=Df(a,a.D))||a.g("no breakpoints")}else if("n"==y)a.ia=De(a,r),a.g("break after "+a.ia+" instruction(s)");else if(void 0===r)a.g("missing breakpoint address");else{var B=W();if("*"!=r&&(B=Re(a,r,!0),!B))break a;r=v(B.F);"c"==y?null==B.F?(Ie(a),a.g("all breakpoints cleared")):Bf(a,a.I,B)||Bf(a,a.O,B)||Bf(a,a.D,B)||a.g("breakpoint missing: "+X(B.F)):
"i"==y?a.g("breakpoint "+(Fb(a.u,B.F)?"enabled":"cleared")+": port "+r+" (input)"):"o"==y?a.g("breakpoint "+(Sb(a.u,B.F)?"enabled":"cleared")+": port "+r+" (output)"):null!=B.F&&(Xe(a,B,C),"p"==y?a.$a(a.I,B):"r"==y?a.$a(a.O,B):"w"==y?a.$a(a.D,B):a.g("unknown breakpoint command: "+y))}}}break;case "c":a.Ga&&(a.Ga.value="");break;case "d":a:{var R,ca=f[0],Z=f[1],va=f[2],Gb=f[3];if("?"==Z){var Ga="";for(R in tb)a.wa[R]&&(Ga&&(Ga+=","),Ga+=R);Ga+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a"); "i"==y?a.g("breakpoint "+(Fb(a.u,B.F)?"enabled":"cleared")+": port "+r+" (input)"):"o"==y?a.g("breakpoint "+(Kb(a.u,B.F)?"enabled":"cleared")+": port "+r+" (output)"):null!=B.F&&(Ve(a,B,C),"p"==y?a.Za(a.I,B):"r"==y?a.Za(a.O,B):"w"==y?a.Za(a.D,B):a.g("unknown breakpoint command: "+y))}}}break;case "c":a.Ga&&(a.Ga.value="");break;case "d":a:{var R,ca=f[0],Z=f[1],va=f[2],Hb=f[3];if("?"==Z){var Ga="";for(R in tb)a.wa[R]&&(Ga&&(Ga+=","),Ga+=R);Ga+=",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");Ga.length&&a.g("dump extension commands:\n\t"+Ga)}else if("state"==Z){var Ye=Tf(a.B,!0);"console"==va?console.log(Ye):(a.Ga&&(a.Ga.value=""),a.g(Ye))}else if("symbols"==Z)for(var nd=0;nd<a.G.length;nd++){var od=a.G[nd],ob;for(ob in od.Qa)if("."!=ob.charAt(0)){var Ze=od.Qa[ob].o;if(void 0!==Ze){var $e=od.Qa[ob].l;$e&&(ob=$e);a.g(X(Ze)+" "+ob)}}}else{if("d"== 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");Ga.length&&a.g("dump extension commands:\n\t"+Ga)}else if("state"==Z){var We=Rf(a.B,!0);"console"==va?console.log(We):(a.Ga&&(a.Ga.value=""),a.g(We))}else if("symbols"==Z)for(var nd=0;nd<a.G.length;nd++){var od=a.G[nd],pb;for(pb in od.Qa)if("."!=pb.charAt(0)){var Xe=od.Qa[pb].o;if(void 0!==Xe){var Ye=od.Qa[pb].l;Ye&&(pb=Ye);a.g(X(Xe)+" "+pb)}}}else{if("d"==
ca){for(R in tb)if(f[1]==R){var af=a.wa[R];af?(f.shift(),f.shift(),af(f)):a.g("no dump registered for "+Z);break a}Z||(ca=a.pb||"db")}else a.pb=ca;if("dh"==ca){var bf=Z,cf=va,df="",ef=0,da=a.fa,Ha=a.L;if(Ha.length){var ja=+bf||a.Xa,pb=+cf||10;isNaN(ja)?ja=pb:df="more ";ja>Ha.length&&(a.g("note: only "+Ha.length+" available"),ja=Ha.length);da-=ja;0>da&&(null==Ha[Ha.length-1].F?(ja=da+ja,da=0):da+=Ha.length);var pd=[];"call"==cf&&(pb=1E5,pd=["CALL"]);for(void 0!==bf&&a.g(ja+" instructions earlier:");0< ca){for(R in tb)if(f[1]==R){var Ze=a.wa[R];Ze?(f.shift(),f.shift(),Ze(f)):a.g("no dump registered for "+Z);break a}Z||(ca=a.pb||"db")}else a.pb=ca;if("dh"==ca){var $e=Z,af=va,bf="",cf=0,da=a.fa,Ha=a.L;if(Ha.length){var ia=+$e||a.Wa,qb=+af||10;isNaN(ia)?ia=qb:bf="more ";ia>Ha.length&&(a.g("note: only "+Ha.length+" available"),ia=Ha.length);da-=ia;0>da&&(null==Ha[Ha.length-1].F?(ia=da+ia,da=0):da+=Ha.length);var pd=[];"call"==af&&(qb=1E5,pd=["CALL"]);for(void 0!==$e&&a.g(ia+" instructions earlier:");0<
pb&&da!=a.fa;){var ff=Ha[da++];if(null==ff.F)break;var Kb=W(ff.F),lg=ja--,gf=Hf(a,Kb,"history",lg);(!pd.length||0<=gf.indexOf(pd[0]))&&a.g(gf);Kb.Lb&&(da+=Kb.Lb,pb-=Kb.Lb,ja-=Kb.Lb);da>=Ha.length&&(da=0);a.Xa=ja;ef++;pb--}}ef||(a.g("no "+df+"history available"),a.Xa=void 0)}else{var tc=Fe(a,Z);if(tc){var uc=0;va&&("l"==va.charAt(0)&&(va=va.substr(1)||Gb),uc=De(a,va)>>>0,65536<uc&&(uc=65536));for(var Ya="",vc="dd"==ca?4:"dw"==ca?2:1,wc=vc*uc||128,mg=wc+15>>4||1;mg--&&0<wc;){var xc=0,qd=0,Lb,Mb="", qb&&da!=a.fa;){var df=Ha[da++];if(null==df.F)break;var Lb=W(df.F),jg=ia--,ef=Ff(a,Lb,"history",jg);(!pd.length||0<=ef.indexOf(pd[0]))&&a.g(ef);Lb.Lb&&(da+=Lb.Lb,qb-=Lb.Lb,ia-=Lb.Lb);da>=Ha.length&&(da=0);a.Wa=ia;cf++;qb--}}cf||(a.g("no "+bf+"history available"),a.Wa=void 0)}else{var tc=Re(a,Z);if(tc){var uc=0;va&&("l"==va.charAt(0)&&(va=va.substr(1)||Hb),uc=De(a,va)>>>0,65536<uc&&(uc=65536));for(var Ya="",vc="dd"==ca?4:"dw"==ca?2:1,wc=vc*uc||128,kg=wc+15>>4||1;kg--&&0<wc;){var xc=0,qd=0,Mb,Nb="",
rd="",Z=X(tc.F);for(Lb=16;0<Lb&&0<wc;Lb--){var yc=a.aa(tc,1),xc=xc|yc<<(qd++<<3);qd==vc&&(Mb+=t(xc,2*vc),Mb+=1==vc?9==Lb?"-":" ":" ",xc=qd=0);rd+=32<=yc&&128>yc?String.fromCharCode(yc):".";wc--}Ya&&(Ya+="\n");Ya+=Z+" "+Mb+(0==Lb?" "+rd:"")}Ya&&a.g(Ya);a.Va=tc}}}}break;case "e":if("else"==f[0])break;var zc=1,hf=255,jf=a.aa,kf=a.va;"ew"==f[0]&&(zc=2,hf=65535,jf=a.Sa,kf=a.Hb);var lf=zc<<1,mf=f[1];if(null==mf)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a"); rd="",Z=X(tc.F);for(Mb=16;0<Mb&&0<wc;Mb--){var yc=a.aa(tc,1),xc=xc|yc<<(qd++<<3);qd==vc&&(Nb+=t(xc,2*vc),Nb+=1==vc?9==Mb?"-":" ":" ",xc=qd=0);rd+=32<=yc&&128>yc?String.fromCharCode(yc):".";wc--}Ya&&(Ya+="\n");Ya+=Z+" "+Nb+(0==Mb?" "+rd:"")}Ya&&a.g(Ya);a.Ua=tc}}}}break;case "e":if("else"==f[0])break;var zc=1,ff=255,gf=a.aa,hf=a.va;"ew"==f[0]&&(zc=2,ff=65535,gf=a.$a,hf=a.Hb);var jf=zc<<1,kf=f[1];if(null==kf)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");
else{var Ac=Fe(a,mf);if(Ac)for(var Bc=2;Bc<f.length;Bc++){var Nb=Be(a,f[Bc]);if(void 0===Nb){a.g("unrecognized value: "+f[Bc]);break}Nb&~hf&&a.g("warning: "+t(Nb)+" exceeds "+zc+"-byte value");var ng=jf.call(a,Ac);a.g("changing "+X(Ac.F)+" from 0x"+t(ng,lf)+" to 0x"+t(Nb,lf));kf.call(a,Ac,Nb,zc)}}break;case "f":Nf(a,f[1]);break;case "g":a:{var nf=f[1],og=b;if(void 0!==nf){var sd=Fe(a,nf,!0);if(!sd)break a;Xe(a,sd,og);a.$a(a.I,sd,!0)}a.bb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break; else{var Ac=Re(a,kf);if(Ac)for(var Bc=2;Bc<f.length;Bc++){var Ob=Be(a,f[Bc]);if(void 0===Ob){a.g("unrecognized value: "+f[Bc]);break}Ob&~ff&&a.g("warning: "+t(Ob)+" exceeds "+zc+"-byte value");var lg=gf.call(a,Ac);a.g("changing "+X(Ac.F)+" from 0x"+t(lg,jf)+" to 0x"+t(Ob,jf));hf.call(a,Ac,Ob,zc)}}break;case "f":Lf(a,f[1]);break;case "g":a:{var lf=f[1],mg=b;if(void 0!==lf){var sd=Re(a,lf,!0);if(!sd)break a;Ve(a,sd,mg);a.Za(a.I,sd,!0)}a.bb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var td;if(a.C.Aa)td="halting",a.pa();else{if(mb(a,!0))break a;td="already halted"}c||a.g(td)}break;case "i":if("if"==f[0]){var ud;var Ob=b.substr(2),Ob=ma(Ob);Be(a,Ob)?(c||a.g("true: "+Ob),ud=!0):(c||a.g("false: "+Ob),ud=!1);ud||(d=!1);break}if("int"==f[0]){var Cc;var pg=f[1];if(a.b.ua&512){var vd=Be(a,pg);null==vd?Cc=!1:(a.g("requesting interrupt level "+vd),Hd(a.b,vd),Cc=!0)}else a.g("interrupts disabled (use rif=1 to enable)"),Cc=!1;Cc||(d=!1);break}var wd=f[1];if(wd&&"?"!=wd){var xd= case "h":a:{var td;if(a.C.Aa)td="halting",a.pa();else{if(mb(a,!0))break a;td="already halted"}c||a.g(td)}break;case "i":if("if"==f[0]){var ud;var Pb=b.substr(2),Pb=ma(Pb);Be(a,Pb)?(c||a.g("true: "+Pb),ud=!0):(c||a.g("false: "+Pb),ud=!1);ud||(d=!1);break}if("int"==f[0]){var Cc;var ng=f[1];if(a.b.ua&512){var vd=Be(a,ng);null==vd?Cc=!1:(a.g("requesting interrupt level "+vd),Hd(a.b,vd),Cc=!0)}else a.g("interrupts disabled (use rif=1 to enable)"),Cc=!1;Cc||(d=!1);break}var wd=f[1];if(wd&&"?"!=wd){var xd=
De(a,wd);if(void 0!==xd){var qg=Ib(a.u,xd);a.g(v(xd)+": "+ba(qg))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var rg=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var yd=0,of=W(),Pb=W(a.b.na);for(a.g("stack trace for "+X(Pb.F));10>yd;){for(var Za=null,sg=256;65536>Pb.F>>>0;){of.F=a.Sa(Pb,2);if(null==Pb.F||!sg--)break;for(var tg=a,Dc=of,pf= De(a,wd);if(void 0!==xd){var og=Ib(a.u,xd);a.g(v(xd)+": "+ba(og))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var pg=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var yd=0,mf=W(),Qb=W(a.b.na);for(a.g("stack trace for "+X(Qb.F));10>yd;){for(var Za=null,qg=256;65536>Qb.F>>>0;){mf.F=a.$a(Qb,2);if(null==Qb.F||!qg--)break;for(var rg=a,Dc=mf,nf=
null,Qb=Dc.F,qf=Qb,zd=1;6>=zd&&Qb;zd++){if(2<zd){Dc.F=Qb;var Ec=Hf(tg,Dc);if(0<=Ec.indexOf("CALL")){var rf=Ec.indexOf(" ");if(Qb+(Ec.indexOf(" ",rf+1)-rf-1)/2==qf){pf=Ec;break}}}Qb--}Dc.F=qf;if(Za=pf)break}if(!Za||null==Za)break;var sf=null;if("ks"==rg){var tf=Za.match(/[0-9A-F]+$/);tf&&(sf=Pf(a,tf[0]))}Za=la(Za,50)+" ;"+(sf||"stack="+X(Pb.F));a.g(Za);yd++}yd||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){Pf(a,f[1],!0);break}break;case "m":a:{var Ia,Ja=null,O=f[1];"?"==O&&(O=void 0); null,Rb=Dc.F,of=Rb,zd=1;6>=zd&&Rb;zd++){if(2<zd){Dc.F=Rb;var Ec=Ff(rg,Dc);if(0<=Ec.indexOf("CALL")){var pf=Ec.indexOf(" ");if(Rb+(Ec.indexOf(" ",pf+1)-pf-1)/2==of){nf=Ec;break}}}Rb--}Dc.F=of;if(Za=nf)break}if(!Za||null==Za)break;var qf=null;if("ks"==pg){var rf=Za.match(/[0-9A-F]+$/);rf&&(qf=Nf(a,rf[0]))}Za=la(Za,50)+" ;"+(qf||"stack="+X(Qb.F));a.g(Za);yd++}yd||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){Nf(a,f[1],!0);break}break;case "m":a:{var Ia,Ja=null,O=f[1];"?"==O&&(O=void 0);
if(void 0!==O){var Ta=0;if("all"==O)Ta=1878917119,O=null;else if("on"==O)Ja=!0,O=null;else if("off"==O)Ja=!1,O=null;else{"keys"==O&&(O="key");"kbd"==O&&(O="keyboard");for(Ia in tb)if(O==Ia){Ta=tb[Ia];Ja=!!(a.ta&Ta);break}if(!Ta){a.g("unknown message category: "+O);break a}}if(Ta)if("on"==f[2])a.ta|=Ta,Ja=!0;else if("off"==f[2]&&(a.ta&=~Ta,Ja=!1,1073741824==Ta)){for(var Ad=0;Ad<a.qa.length;Ad++)a.g(a.qa[Ad]);a.qa=[]}}var ug=0,Ua="";for(Ia in tb)if(!O||O==Ia){var vg=!!(a.ta&tb[Ia]);if(null===Ja||Ja== if(void 0!==O){var Ta=0;if("all"==O)Ta=1878917119,O=null;else if("on"==O)Ja=!0,O=null;else if("off"==O)Ja=!1,O=null;else{"keys"==O&&(O="key");"kbd"==O&&(O="keyboard");for(Ia in tb)if(O==Ia){Ta=tb[Ia];Ja=!!(a.ta&Ta);break}if(!Ta){a.g("unknown message category: "+O);break a}}if(Ta)if("on"==f[2])a.ta|=Ta,Ja=!0;else if("off"==f[2]&&(a.ta&=~Ta,Ja=!1,1073741824==Ta)){for(var Ad=0;Ad<a.qa.length;Ad++)a.g(a.qa[Ad]);a.qa=[]}}var sg=0,Ua="";for(Ia in tb)if(!O||O==Ia){var tg=!!(a.ta&tb[Ia]);if(null===Ja||Ja==
vg)Ua&&(Ua+=","),++ug%10||(Ua+="\n\t"),"key"==Ia&&(Ia="keys"),Ua+=Ia}void 0===O&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Ja?Ja?"messages on: ":"messages off: ":"message categories:\n\t")+(Ua||"none"));Me(a)}break;case "o":var Bd=f[1],wg=f[2];if(Bd&&"?"!=Bd){var Cd=De(a,Bd,"port #"),Dd=De(a,wg);void 0!==Cd&&void 0!==Dd&&(Ub(a.u,Cd,Dd),a.g(v(Cd)+": "+ba(Dd)))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state"); tg)Ua&&(Ua+=","),++sg%10||(Ua+="\n\t"),"key"==Ia&&(Ia="keys"),Ua+=Ia}void 0===O&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Ja?Ja?"messages on: ":"messages off: ":"message categories:\n\t")+(Ua||"none"));Je(a)}break;case "o":var Bd=f[1],ug=f[2];if(Bd&&"?"!=Bd){var Cd=De(a,Bd,"port #"),Dd=De(a,ug);void 0!==Cd&&void 0!==Dd&&(Ub(a.u,Cd,Dd),a.g(v(Cd)+": "+ba(Dd)))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){Rf(a,b.substr(5));break}var uf="pr"==f[0]?1:0,xg=1+uf;if(a.Y)a.g("step in progress");else{var Ed=W(a.b.R);switch(a.aa(Ed)){case 205:a.Y=xg,Ue(Ed,3)}a.Y?(a.$a(a.I,Ed,!0),a.bb()||(a.B&&a.B.wb(),a.Y=0)):Sf(a,uf?"tr":"t")}break;case "r":if("reset"==b){a.B&&a.B.reset();break}Af(a,f);break;case "s":Qf(a,f);break;case "t":Sf(a,f[0],f[1]);break;case "u":Bf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Of(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.30.0 ("+a.b.yc+",RELEASE"+ break;case "p":if("print"==f[0]){Pf(a,b.substr(5));break}var sf="pr"==f[0]?1:0,vg=1+sf;if(a.Y)a.g("step in progress");else{var Ed=W(a.b.R);switch(a.aa(Ed)){case 205:a.Y=vg,Se(Ed,3)}a.Y?(a.Za(a.I,Ed,!0),a.bb()||(a.B&&a.B.wb(),a.Y=0)):Qf(a,sf?"tr":"t")}break;case "r":if("reset"==b){a.B&&a.B.reset();break}yf(a,f);break;case "s":Of(a,f);break;case "t":Qf(a,f[0],f[1]);break;case "u":zf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Mf(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.30.0 ("+a.b.Ac+",RELEASE"+
(rb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(ta());break;case "?":if(f[1]){Rf(a,b.substr(1));break}var Rb="commands:",Fd;for(Fd in Oe)Rb+="\n"+la(Fd,9)+Oe[Fd];Id(a)||(Rb+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Rb);break;default:a.g("unknown command: "+b),d=!1}}}catch(vf){a.g("debugger error: "+(vf.stack||vf.message)),d=!1}return d}function qc(a,b,c){b=a.Eb(b,c);for(var d in b)if(!Gf(a,b[d]))return!1;return!0} (rb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(ta());break;case "?":if(f[1]){Pf(a,b.substr(1));break}var Sb="commands:",Fd;for(Fd in Le)Sb+="\n"+la(Fd,9)+Le[Fd];Id(a)||(Sb+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Sb);break;default:a.g("unknown command: "+b),d=!1}}}catch(tf){a.g("debugger error: "+(tf.stack||tf.message)),d=!1}return d}function qc(a,b,c){b=a.Eb(b,c);for(var d in b)if(!Ef(a,b[d]))return!1;return!0}
Ma(function(){for(var a=D(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Je(d);hb(d,c)}}); Ma(function(){for(var a=D(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Ge(d);hb(d,c)}});
function Uf(a,b,c){z.call(this,"Computer",a,Uf,67108864);this.C.xa=!1;Vf(this,b);this.O=nc(this,"autoPower",a);this.w=0;this.ea=a.busWidth||a.buswidth;this.B=Wf;this.L=null;this.K=this.ba=!1;this.fa=nc(this,"url")||"";(Math.random()+.1).toString(36);this.j=Xf(this);if(this.b=gb("CPU",this.id)){this.H=gb("Debugger",this.id);this.G=[];for(b=null;b=vb(this,"Video",b);)this.G.push(b);this.u=new xb({id:this.Ab+".bus",busWidth:this.ea},this.b,this.H);var d,e=eb(this.id);if((this.I=gb("Panel",this.id))&& function Sf(a,b,c){z.call(this,"Computer",a,Sf,67108864);this.C.xa=!1;Tf(this,b);this.O=nc(this,"autoPower",a);this.w=0;this.ea=a.busWidth||a.buswidth;this.B=Uf;this.L=null;this.K=this.ba=!1;this.fa=nc(this,"url")||"";(Math.random()+.1).toString(36);this.j=Vf(this);if(this.b=gb("CPU",this.id)){this.H=gb("Debugger",this.id);this.G=[];for(b=null;b=vb(this,"Video",b);)this.G.push(b);this.u=new xb({id:this.Ab+".bus",busWidth:this.ea},this.b,this.H);var d,e=eb(this.id);if((this.I=gb("Panel",this.id))&&
this.I.Ga)for(b=0;b<e.length;b++)d=e[b],d.ja=this.I.ja,d.g=this.I.g,d.Ga=this.I.Ga;this.g("PC8080 v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Pa&&d.Pa(this,this.u,this.b,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.J=d:this.B=parseInt(d,10));var f;if(a=nc(this,"state")||(f=!0,a.state))b=this.P=a,f||(this.K=!0,this.B=Wf),this.B&&(this.M=new Uc(this,"1.30.0"),Yf(this.M)? this.I.Ga)for(b=0;b<e.length;b++)d=e[b],d.ja=this.I.ja,d.g=this.I.g,d.Ga=this.I.Ga;this.g("PC8080 v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Pa&&d.Pa(this,this.u,this.b,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.J=d:this.B=parseInt(d,10));var f;if(a=nc(this,"state")||(f=!0,a.state))b=this.P=a,f||(this.K=!0,this.B=Uf),this.B&&(this.M=new Uc(this,"1.30.0"),Wf(this.M)?
b=null:delete this.M);!b&&this.B&&(b=Zf(this))&&(this.K=!0);if(b){var h=this;sa(b,null,!0,function(a,b,c){c?(h.J=null,h.K=!1,h.ja("Unable to load machine state from server (error "+c+(b?": "+ma(b):"")+")")):(h.L=b,h.ba=!0);F(h)})}else F(this);this.N.power||(this.O=!0);!c&&this.O&&$f(this,this.ub)}else w("Unable to find CPU component")}bb(Uf);var Wf=0;function Vf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.ca=b} b=null:delete this.M);!b&&this.B&&(b=Xf(this))&&(this.K=!0);if(b){var h=this;sa(b,null,!0,function(a,b,c){c?(h.J=null,h.K=!1,h.ja("Unable to load machine state from server (error "+c+(b?": "+ma(b):"")+")")):(h.L=b,h.ba=!0);F(h)})}else F(this);this.N.power||(this.O=!0);!c&&this.O&&Yf(this,this.ub)}else w("Unable to find CPU component")}bb(Sf);var Uf=0;function Tf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.ca=b}
function nc(a,b,c){var d=b.toLowerCase(),d=Va[b]||Va[d];void 0===d&&a.ca&&(d=a.ca[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function $f(a,b,c){for(var d=eb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!nb(f)){nb(f,function(){$f(a,b,c)});return}}b.call(a,c)} function nc(a,b,c){var d=b.toLowerCase(),d=Va[b]||Va[d];void 0===d&&a.ca&&(d=a.ca[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Yf(a,b,c){for(var d=eb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!nb(f)){nb(f,function(){Yf(a,b,c)});return}}b.call(a,c)}
function ag(a,b){var c=new Uc(a,"1.30.0","validate");if(Yf(c)&&bg(c)){var d=cg(c,"timestamp"),e=b?cg(b,"timestamp"):"unknown";d!=e&&(a.ja("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Uf.prototype; function Zf(a,b){var c=new Uc(a,"1.30.0","validate");if(Wf(c)&&$f(c)){var d=ag(c,"timestamp"),e=b?ag(b,"timestamp"):"unknown";d!=e&&(a.ja("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Sf.prototype;
l.ub=function(a){void 0===a&&(a=this.B||(this.L?1:Wf));if(!this.w){this.w++;var b=!1,c=!1;this.Y=!1;var d=this.M||new Uc(this,"1.30.0");if(-1==a)b=!0;else if(a>Wf){if(Yf(d,this.L)){this.D=new Uc(this,"1.30.0","failsafe");Yf(this.D)&&(dg(this,d),a=2,eg(this.D));I(this.D,"timestamp",qa());fg(this.D);var e=this.B&&!this.K;if(1==a||ua("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=bg(d)){var f=cg(d,"code"),h=cg(d,"data");f&&("ok"==f?Yf(d,h):("error"==f&& l.ub=function(a){void 0===a&&(a=this.B||(this.L?1:Uf));if(!this.w){this.w++;var b=!1,c=!1;this.Y=!1;var d=this.M||new Uc(this,"1.30.0");if(-1==a)b=!0;else if(a>Uf){if(Wf(d,this.L)){this.D=new Uc(this,"1.30.0","failsafe");Wf(this.D)&&(bg(this,d),a=2,cg(this.D));I(this.D,"timestamp",qa());dg(this.D);var e=this.B&&!this.K;if(1==a||ua("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=$f(d)){var f=ag(d,"code"),h=ag(d,"data");f&&("ok"==f?Wf(d,h):("error"==f&&
"no machine state"!=h?(this.ja("Error: "+h),"unable to verify user"==h&&(za("user",""),this.j=null)):this.g(f+": "+h),eg(d),Yf(d)?(c=bg(d),e=!0):c=!1))}e&&ag(this,c?d:null)}else 2==a&&d.clear()}else ag(this);delete this.L;delete this.M}e=eb(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=gg(this,h,d,b,c));b=[d,a,c];-1!=a?$f(this,this.uc,b):this.uc(b)}}; "no machine state"!=h?(this.ja("Error: "+h),"unable to verify user"==h&&(za("user",""),this.j=null)):this.g(f+": "+h),cg(d),Wf(d)?(c=$f(d),e=!0):c=!1))}e&&Zf(this,c?d:null)}else 2==a&&d.clear()}else Zf(this);delete this.L;delete this.M}e=eb(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=eg(this,h,d,b,c));b=[d,a,c];-1!=a?Yf(this,this.wc,b):this.wc(b)}};
function gg(a,b,c,d,e){if(!b.C.xa){b.C.xa=!0;if(b.Ea){var f=null;e&&((f=cg(c,b.id))||(f=cg(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Ea(f,d)&&f&&(w("Unable to restore state for "+b.type),a.P&&!a.ba?(c.clear(),a.B=Wf,window&&window.location.reload()):a.Y=!0,b.Ea(null),e=!1)}if(!d&&b.cc)for(a=b.cc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e} function eg(a,b,c,d,e){if(!b.C.xa){b.C.xa=!0;if(b.Ea){var f=null;e&&((f=ag(c,b.id))||(f=ag(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Ea(f,d)&&f&&(w("Unable to restore state for "+b.type),a.P&&!a.ba?(c.clear(),a.B=Uf,window&&window.location.reload()):a.Y=!0,b.Ea(null),e=!1)}if(!d&&b.ec)for(a=b.ec.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.uc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ha=!0;this.C.xa=!0;var d=this.N.power;d&&(d.textContent="Shutdown");this.b&&(gg(this,this.b,b,c,a),this.b.rb());this.Y&&(dg(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.w=0}; l.wc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ha=!0;this.C.xa=!0;var d=this.N.power;d&&(d.textContent="Shutdown");this.b&&(eg(this,this.b,b,c,a),this.b.rb());this.Y&&(bg(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.w=0};
function dg(a,b){if(ua("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.j||"",d=b.toString(),e={app:"PC8080",ver:"1.30.0"};e.url=a.fa;e.user=c;e.type="bug";e.data=d;sa("http://www.pcjs.org/api/v1/report",e,!0)}} function bg(a,b){if(ua("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.j||"",d=b.toString(),e={app:"PC8080",ver:"1.30.0"};e.url=a.fa;e.user=c;e.type="bug";e.data=d;sa("http://www.pcjs.org/api/v1/report",e,!0)}}
function Tf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new Uc(a,"1.30.0"),h=new Uc(a,"1.30.0","validate"),g=qa();I(h,"timestamp",g);I(f,"timestamp",g);I(f,"version","1.30.0");I(f,"url",window?window.location.href:null);I(f,"browser",ta());a.b&&a.b.Ia&&(c&&a.b.pa(),d=a.b.Ia(b,c),"object"===typeof d&&I(f,a.b.id,d),c&&(a.b.C.xa=!1,!1===d&&(e=null)));for(var g=eb(a.id),k=0;k<g.length;k++){var m=g[k];m.C.xa&&(m.Ia&&(d=m.Ia(b,c),"object"===typeof d&&I(f,m.id,d)),c&&(m.C.xa=!1,!1===d&&(e=null)))}e&& function Rf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new Uc(a,"1.30.0"),h=new Uc(a,"1.30.0","validate"),g=qa();I(h,"timestamp",g);I(f,"timestamp",g);I(f,"version","1.30.0");I(f,"url",window?window.location.href:null);I(f,"browser",ta());a.b&&a.b.Ia&&(c&&a.b.pa(),d=a.b.Ia(b,c),"object"===typeof d&&I(f,a.b.id,d),c&&(a.b.C.xa=!1,!1===d&&(e=null)));for(var g=eb(a.id),k=0;k<g.length;k++){var m=g[k];m.C.xa&&(m.Ia&&(d=m.Ia(b,c),"object"===typeof d&&I(f,m.id,d)),c&&(m.C.xa=!1,!1===d&&(e=null)))}e&&
(c?(g=d=!1,b?(a.j&&hg(a,a.j,f.toString()),fg(h)&&fg(f)||(e=null,d=g=!0)):a.B&&(d=!0,g=3==a.B),d&&f.clear(g)):e=f.toString());c&&(a.C.xa=!1,b=a.N.power)&&(b.textContent="Power");a.w=0;return e}l.reset=function(){this.u&&this.u.reset&&(jb(this,"Resetting "+this.u.type),this.u.reset());for(var a=eb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&(jb(this,"Resetting "+c.type),c.reset())}}; (c?(g=d=!1,b?(a.j&&fg(a,a.j,f.toString()),dg(h)&&dg(f)||(e=null,d=g=!0)):a.B&&(d=!0,g=3==a.B),d&&f.clear(g)):e=f.toString());c&&(a.C.xa=!1,b=a.N.power)&&(b.textContent="Power");a.w=0;return e}l.reset=function(){this.u&&this.u.reset&&(jb(this,"Resetting "+this.u.type),this.u.reset());for(var a=eb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&(jb(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=eb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};l.stop=function(a,b){for(var c=eb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}}; l.start=function(a,b){for(var c=eb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};l.stop=function(a,b){for(var c=eb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.oa=function(a,b,c){var d=this;switch(b){case "power":return this.N[b]=c,c.onclick=function(){d.w||(d.C.xa?Tf(d,!1,!0):$f(d,d.ub))},!0;case "reset":return this.N[b]=c,c.onclick=function(){if(d.C.xa&&!d.w)if(d.B&&!d.J){var a=ua("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Tf(d,a,!0);!a&&d.P?window&&window.location.reload():d.ub(Wf)}else d.reset(),d.b&&d.b.rb()},!0;case "save":if(ga()){c.parentNode.removeChild(c);break}this.N[b]= l.oa=function(a,b,c){var d=this;switch(b){case "power":return this.N[b]=c,c.onclick=function(){d.w||(d.C.xa?Rf(d,!1,!0):Yf(d,d.ub))},!0;case "reset":return this.N[b]=c,c.onclick=function(){if(d.C.xa&&!d.w)if(d.B&&!d.J){var a=ua("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Rf(d,a,!0);!a&&d.P?window&&window.location.reload():d.ub(Uf)}else d.reset(),d.b&&d.b.rb()},!0;case "save":if(ga()){c.parentNode.removeChild(c);break}this.N[b]=
c;c.onclick=function(){var a=Xf(d,!0);if(a){var b=!!(d.B&&!d.J||d.P),c=Tf(d,b);b?hg(d,a,c):d.ja("Resume disabled, machine state not saved")}};return!0}return!1}; c;c.onclick=function(){var a=Vf(d,!0);if(a){var b=!!(d.B&&!d.J||d.P),c=Rf(d,b);b?fg(d,a,c):d.ja("Resume disabled, machine state not saved")}};return!0}return!1};
function Xf(a,b){var c=a.j;c||(c=ya("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=ig(a,c))||a.ja("The user ID is invalid."))):b&&a.ja("Browser local storage is not available"));return c} function Vf(a,b){var c=a.j;c||(c=ya("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=gg(a,c))||a.ja("The user ID is invalid."))):b&&a.ja("Browser local storage is not available"));return c}
function ig(a,b){a.j=null;var c=sa(ha()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(za("user",c.data),a.j=c.data)}catch(e){w(e.message+" ("+d+")")}return a.j}function Zf(a){var b=null;a.j&&(b=ha()+"/api/v1/user?req=load&user="+a.j+"&state="+jg(a,"1.30.0"));return b} function gg(a,b){a.j=null;var c=sa(ha()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(za("user",c.data),a.j=c.data)}catch(e){w(e.message+" ("+d+")")}return a.j}function Xf(a){var b=null;a.j&&(b=ha()+"/api/v1/user?req=load&user="+a.j+"&state="+hg(a,"1.30.0"));return b}
function hg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=jg(a,"1.30.0");d.data=c;b=sa(ha()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ja("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.ja(c),za("user",""),a.j=null)}} function fg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=hg(a,"1.30.0");d.data=c;b=sa(ha()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ja("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.ja(c),za("user",""),a.j=null)}}
function vb(a,b,c){a=eb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}l.wb=function(a){if(this.G.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.G[0];d.ka&&d.ka.focus();!a&&window&&window.scrollTo(b,c)}};l.Ja=function(a){this.b&&this.b.Ja(a);this.I&&this.I.Ja(a)}; function vb(a,b,c){a=eb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}l.wb=function(a){if(this.G.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.G[0];d.ka&&d.ka.focus();!a&&window&&window.scrollTo(b,c)}};l.Ja=function(a){this.b&&this.b.Ja(a);this.I&&this.I.Ja(a)};
Ma(function(){for(var a=D(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=D(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=A(f),h=new Uf(h,d,!0);hb(h,f);h.O&&$f(h,h.ub)}});Da.show.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=gb("Computer",c.id))&&c.ha&&!c.C.xa&&c.ub(-1)}}); Ma(function(){for(var a=D(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=D(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=A(f),h=new Sf(h,d,!0);hb(h,f);h.O&&Yf(h,h.ub)}});Da.show.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=gb("Computer",c.id))&&c.ha&&!c.C.xa&&c.ub(-1)}});
Da.exit.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=gb("Computer",c.id))&&c.C.xa&&Tf(c,!(!c.B||c.J),!0)}});function Uc(a,b,c){this.id=a.id;this.key=jg(a,b,c);this.H=a.H;eg(this,a.Kd)}function jg(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a} Da.exit.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=gb("Computer",c.id))&&c.C.xa&&Rf(c,!(!c.B||c.J),!0)}});function Uc(a,b,c){this.id=a.id;this.key=hg(a,b,c);this.H=a.H;cg(this,a.Md)}function hg(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}
Uc.prototype={constructor:Uc,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){eg(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}}; Uc.prototype={constructor:Uc,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){cg(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};
function eg(a,b){a[a.id]={};b&&I(a,"parms",b);a.b=!1}function fg(a){var b=!0;if(xa()){var c=JSON.stringify(a[a.id]);za(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function bg(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){w(c.message||c),b=!1}return b}function Yf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:xa()&&(b=ya(a.key))?(a[a.id]=b,a.b=!0):!1}function cg(a,b){return a[a.id][b]||null}function I(a,b,c){try{a[a.id][b]=c}catch(d){}}var kg=0; function cg(a,b){a[a.id]={};b&&I(a,"parms",b);a.b=!1}function dg(a){var b=!0;if(xa()){var c=JSON.stringify(a[a.id]);za(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function $f(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){w(c.message||c),b=!1}return b}function Wf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:xa()&&(b=ya(a.key))?(a[a.id]=b,a.b=!0):!1}function ag(a,b){return a[a.id][b]||null}function I(a,b,c){try{a[a.id][b]=c}catch(d){}}var ig=0;
function yg(a,b,c,d,e,f){e("Loading "+a+"...");sa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):zg(g,a,b,c,d,e,f)})} function wg(a,b,c,d,e,f){e("Loading "+a+"...");sa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):xg(g,a,b,c,d,e,f)})}
function zg(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){db(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PC8080$2"), function xg(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){db(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PC8080$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Ag(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""), a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?yg(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),
null)} null)}
function Ag(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");sa(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,""); function yg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");sa(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,"");
a=a.replace(d[0],h);Ag(a,b,c)}})}else c(a,null)} a=a.replace(d[0],h);yg(a,b,c)}})}else c(a,null)}
function Bg(a,b,c,d){function e(a){if(void 0===g){var b=h&&D(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ka(a))}function f(a){e("Error: "+a);k&&(--kg||Pa(!0));k=!1}var h,g,k=!0;kg++;cb[a]={};try{if(h=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=m:q.appendChild(document.createTextNode(m));p.appendChild(q)}c|| function zg(a,b,c,d){function e(a){if(void 0===g){var b=h&&D(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ka(a))}function f(a){e("Error: "+a);k&&(--ig||Pa(!0));k=!1}var h,g,k=!0;ig++;cb[a]={};try{if(h=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=m:q.appendChild(document.createTextNode(m));p.appendChild(q)}c||
(c="/versions/pc8080/1.30.0/components.xsl");m=function(d,g){g?yg(c,null,null,!1,e,function(d,k){if(k)if(db(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=g.transformNode(k);m?(h.outerHTML=m,--kg||Pa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(k),(m=m.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(m,h),--kg||Pa(!0)):f("invalid machine element: "+ (c="/versions/pc8080/1.30.0/components.xsl");m=function(d,g){g?wg(c,null,null,!1,e,function(d,k){if(k)if(db(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=g.transformNode(k);m?(h.outerHTML=m,--ig||Pa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(k),(m=m.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(m,h),--ig||Pa(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?yg(b,a,d,!0,e,m):zg(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(x){f(x.message)}return k}window.embedPC8080=function(a,b,c,d){Pa(!1);return Bg(a,b,c,d)};window.enableEvents=Pa;window.sendEvent=Qa;})(); a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?wg(b,a,d,!0,e,m):xg(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(x){f(x.message)}return k}window.embedPC8080=function(a,b,c,d){Pa(!1);return zg(a,b,c,d)};window.enableEvents=Pa;window.sendEvent=Qa;})();

File diff suppressed because it is too large Load diff