Updated the PDP-10 DAKAK diagnostic page, and verified the ability to assemble (but not run) all the original DAKAK source files, after making further improvements to the built-in MACRO-10 Mini-Assembler

This commit is contained in:
Jeff 2017-03-31 16:32:37 -07:00 committed by Jeff Parsons
commit afd621dc79
15 changed files with 2007 additions and 16361 deletions

View file

@ -1,572 +0,0 @@
;MAINDEC-10-DFKCA
DECVER=002
MCNVER=000
XLIST
DEFINE NAME (MCNVER,DECVER),<
TITLE DFKCA KL10 ADVANCED INSTRUCTION DIAGNOSTIC #1, VERSION MCNVER,DECVER >
LIST
LALL
NAME \MCNVER,\DECVER
XALL
;COPYRIGHT 1975
;DIGITAL EQUIPMENT CORPORATION
;MARLBORO, MASS. 01752
;JOHN R. KIRCHOFF
LOC 137
MCNVER,,DECVER
NOSYM
SUBTTL DIAGNOSTIC PARAMETERS
;OPERATOR DEFINITIONS
OPDEF ER1 [1B8]
OPDEF ER2 [2B8]
OPDEF ER3 [3B8]
OPDEF ER4 [4B8]
OPDEF ER5 [5B8]
OPDEF ER6 [6B8]
OPDEF ER7 [7B8]
OPDEF ER10 [10B8]
OPDEF ER11 [11B8]
OPDEF ER12 [12B8]
OPDEF ER13 [13B8]
LUUO1==ERRMES
LUUO2==ERRMES
LUUO3==ERRMES
LUUO4==ERRMES
LUUO5==ERRMES
LUUO6==ERRMES
LUUO7==ERRMES
LUUO10==ERRMES
LUUO11==ERRMES
LUUO12==ERRMES
LUUO13==ERRMES
;SUBROUTINE ASSEMBLY DEFINITIONS
DEBUG=100
EXCASB=1
USRASB=1
KI10=1
KL10=1
KL10P0=1
PGMEND=1
ERDIAG=1
KLOLD=1
MODDVU=BEGIN
MODDVL=BEGIN
;MACROS
DEFINE SAVEAC (A,B)<
MOVEI AC+2,.
MOVEM AC+2,TESTPC ;SETUP SUBTEST PC
MOVEI AC+2,<AC+2>&17 ;INFORM ERROR ROUTINE WHICH
MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION>
;BEGIN ASSEMBLY PARAMETERS
SADR1=BEGIN
SADR2=RESRT1
SADR3=RENTR1
SADR4=BEGIN
SADR5=BEGIN
SADR6=BEGIN
SADR7=HALT BEGIN
SADR8=HALT BEGIN
SADR9=HALT BEGIN
SADR10=HALT BEGIN
SADR11=HALT BEGIN
PAREA1=0
PAREA2=0
PAREA3=SIXBIT/DFKCA/
PAREA4=SIXBIT/LPT/
PAREA5=0
PAREA6=0
ITERAT=1000
DEFINE DMVE (L,A,B,C,D) <
;THIS MACRO TESTS THE DMOVE INSTRUCTION
;FIRST, AC, AC+1 ARE PRELOADED WITH DATA OTHER THAN THE TEST WORDS.
;THEN, THE DATA SPECIFIED BY [XWD A,B] AND [XWD C,D] IS MOVED
;FROM MEMORY TO AC, AC+1 VIA THE DMOVE INSTRUCTION.
;C(AC) AND C(AC+1) ARE THEN COMPARED WITH THE TEST WORDS
;[XWD A,B] AND [XWD C,D], RESPECTIVELY. THE TEST PASSES IF THESE
;COMPARISONS AGREE.
Q'L'0: MOVE AC+5,[XWD A,B] ;INITIALIZE TEST WORDS
MOVE AC+6,[XWD C,D] ;FOR COMPARISON
MOVE AC,[XWD 707070,707070]
MOVE AC+1,[XWD 070707,070707] ;INITIALIZE AC,AC+1
DMOVE AC,[XWD A,B ;*MOVE DOUBLE WORD A,B ; C,D
XWD C,D] ;FROM MEMORY TO AC, AC+1
CAME AC,<AC+5>&17 ;WAS AC LOADED CORRECTLY?
ER3 AC,L'1 ;FAIL IF CONTENTS(AC) NOT = A,B
CAME AC+1,<AC+6>&17 ;WAS AC+1 LOADED CORRECTLY?
ER4 AC+1,L'2 ;FAIL IF CONTENTS(AC+1) NOT = C,D
JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH>
DEFINE DMVE17 (L,T,A,B,C,D) <
;THIS MACRO TESTS THE DMOVE INSTRUCTION
;FIRST, AC, AC+1 ARE PRELOADED WITH DATA OTHER THAN THE TEST WORDS.
;THEN, THE DATA SPECIFIED BY [XWD A,B] AND [XWD C,D] IS MOVED
;FROM MEMORY TO AC, AC+1 VIA THE DMOVE INSTRUCTION.
;C(AC) AND C(AC+1) ARE THEN COMPARED WITH THE TEST
;WORDS [XWD A,B] AND [XWD C,D], RESPECTIVELY.
;THE TEST PASSES IF THESE COMPARISONS AGREE.
Q'T'0: MOVEM AC,%SV17# ;SAVE AC17
Q'L'0: MOVE AC+5,[XWD A,B] ;INITIALIZE TEST WORDS
MOVE AC+6,[XWD C,D] ;FOR COMPARISON
MOVE AC,[XWD 707070,707070]
MOVE AC+1,[XWD 070707,070707] ;INITIALIZE AC,AC+1
DMOVE AC,[XWD A,B ;*MOVE DOUBLE WORD A,B ; C,D
XWD C,D] ;FROM MEMORY TO AC, AC+1
Q'T'3: CAMN AC,<AC+5>&17 ;WAS AC LOADED CORRECTLY?
JRST .+4 ;HERE IF NO ERROR
MOVEM AC,AC-1 ;STORE INCORRECT RESLUTS
MOVE AC,%SV17 ;RESTORE P
ER3 AC-1,L'1 ;FAIL IF CONTENTS(AC) NOT = A,B
CAMN AC+1,<AC+6>&17 ;WAS AC+1 LOADED CORRECTLY?
JRST .+4 ;HERE IF NO ERROR
MOVEM AC+1,AC-1 ;STORE INCORRECT WORD
MOVE AC,%SV17 ;RESTORE P
ER4 AC-1,L'2
MOVE AC,%SV17 ;RESTORE AC UNCONDITIONALLY
JUMPL SAC,Q'T'0 ;LOOP ON ERROR SWITCH>
DEFINE DMVN (L,A,B,C,D) <
;THIS MACRO TESTS THE DMOVN INSTRUCTION
;FIRST, AC, AC+1 ARE PRELOADED WITH DATA OTHER THAN THE TEST WORDS.
;THEN, THE NEGATIVE (TWOS COMPLEMENT) OF THE DATA SPECIFIED BY
;[XWD A,B] AND [XWD C,D] IS MOVED FROM MEMORY TO AC, AC+1 VIA
;THE DMOVN INSTRUCTION. C(AC) AND C(AC+1) ARE THEN COMPARED
;WITH THE NEGATIVE (TWOS COMPLEMENT) OF THE TEST
;WORDS [XWD A,B] AND [XWD C,D], RESPECTIVELY.
;THE TEST PASSES IF THESE COMPARISONS AGREE.
Q'L'0: DMOVE AC,[XWD 707070,707070
XWD 070707,070707] ;INITIALIZE AC,AC+1
SETCM AC+5,[XWD A,B] ;INITIALIZE TEST WORDS FOR COMPARISON
IFIDN <C,D><0,0>,<
SETZ AC+6,
ADDI AC+5,1 >
IFIDN <C,D><400000,0>,<
SETZ AC+6,
ADDI AC+5,1 >
IFDIF <C,D><0,0>,<
IFDIF <C,D><400000,0>,<
MOVN AC+6,[XWD C,D]
TLZ AC+6,1B18 ;CLEAR SIGN BIT OF LOW ORDER WORD >>
DMOVN AC,[XWD A,B ;*MOVE NEGATIVE OF DOUBLE WORD A,B ;
XWD C,D] ;C,D FROM MEMORY TO AC, AC+1
CAME AC,<AC+5>&17 ;WAS AC LOADED CORRECTLY?
ER3 AC,L'1 ;FAIL IF CONTENTS(AC) NOT = COMPLEMENT OF A,B
CAME AC+1,<AC+6>&17 ;WAS AC+1 LOADED CORRECTLY?
ER4 AC+1,L'2 ;FAIL IF CONTENTS(AC+1) NOT = MINUS C,D
JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH>
DEFINE DMVN17 (L,A,B,C,D) <
;THIS MACRO TESTS THE DMOVN INSTRUCTION
;FIRST, AC, AC+1 ARE PRELOADED WITH DATA OTHER THAN THE TEST WORDS.
;THEN, THE NEGATIVE (TWOS COMPLEMENT) OF THE DATA SPECIFIED BY
;[XWD A,B] AND [XWD C,D] IS MOVED FROM MEMORY TO AC, AC+1 VIA
;THE DMOVN INSTRUCTION. C(AC) AND C(AC+1) ARE THEN COMPARED
;WITH THE NEGATIVE (TWOS COMPLEMENT) OF THE TEST
;WORDS [XWD A,B] AND [XWD C,D], RESPECTIVELY.
;THE TEST PASSES IF THESE COMPARISONS AGREE.
Q'L'0: MOVEM AC,%SV17 ;SAVE P
DMOVE AC,[XWD 707070,707070
XWD 070707,070707] ;INITIALIZE AC,AC+1
SETCM AC+5,[XWD A,B] ;INITIALIZE TEST WORDS FOR COMPARISON
IFIDN <C,D><0,0>,<
SETZ AC+6,
ADDI AC+5,1 >
IFIDN <C,D><400000,0>,<
SETZ AC+6,
ADDI AC+5,1 >
IFDIF <C,D><0,0>,<
IFDIF <C,D><400000,0>,<
MOVN AC+6,[XWD C,D]
TLZ AC+6,1B18 ;CLEAR SIGN BIT OF LOW ORDER WORD >>
DMOVN AC,[XWD A,B ;*MOVE NEGATIVE OF DOUBLE WORD A,B ;
XWD C,D] ;C,D FROM MEMORY TO AC, AC+1
CAMN AC,<AC+5>&17 ;WAS AC LOADED CORRECTLY?
JRST .+4 ;HERE IF TESTS OK
MOVEM AC,AC-1 ;SAVE BAD WORD
MOVE AC,%SV17 ;RESTORE P
ER3 AC-1,L'1 ;FAIL IF CONTENTS(AC) NOT = COMPLEMENT OF A,B
CAMN AC+1,<AC+6>&17 ;WAS AC+1 LOADED CORRECTLY?
JRST .+4 ;HERE IF TESTS OK
MOVEM AC,AC-1
MOVE AC,%SV17 ;RESTORE P
ER4 AC+1,L'2 ;FAIL IF CONTENTS(AC+1) NOT = MINUS C,D
MOVE AC,%SV17 ;RESTORE P UNCODITIONALLY
JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH>
DEFINE DMVNF (L,A,B,C,D,KIEF,KIUF,KLEF,KLUF) <
;**KI10**
;THIS MACRO VERIFIES THAT THE DMOVN INSTRUCTION DOES NOT SET OVERFLOW
;OR CARRY FLAGS ON THE KI10. FIRST, OVFL AND CRY0,1 FLAGS ARE CLEARED;
;THEN,DMOVN IS EXECUTED. NEXT, OVFL AND CRY0,1 FLAGS ARE EXAMINED.
;IF ANY OF THESE FLAGS ARE SET, THE TEST FAILS.
;**KL10**
;THIS MACRO VERIFIES THAT THE DMOVN INSTRUCTION DOES SET OVERFLOW
;OR CARRY FLAGS ON THE KL10. FIRST, OVFL AND CRY0,1 FLAGS ARE CLEARED;
;THEN,DMOVN IS EXECUTED. NEXT, OVFL AND CRY0,1 FLAGS ARE EXAMINED.
;IF THE PROPER FLAGS ARE NOT SET, THE TEST FAILS.
Q'L'0: JFCL 17,.+1 ;CLEAR OVFL AND CRY0,1 FLAGS
DMOVN AC+1,[XWD A,B ;*DMOVN TEST
XWD C,D]
JSP AC,.+1 ;READ FLAGS
Q'L'1: TLZ AC,027777 ;CLEAR EXTRA JUNK
TLNE AC,USERF ;IN USER MODE ?
JRST Q'L'4 ;YES
SKIPE KLFLG ;KL10 ?
JRST Q'L'3 ;YES
;KI10 EXEC MODE
CAME AC,[KIEF,,Q'L'1]
ER13 AC,L'1 ;FAIL IF OVFL OR CRY0,1 FLG SET
Q'L'2: JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH
JRST Q'L'6
;KL10 EXEC MODE
Q'L'3: CAME AC,[KLEF,,Q'L'1]
ER13 AC,L'1 ;FAIL IF FLAGS NOT SET
JRST Q'L'2
;KL10/KI10 USER MODE
Q'L'4: SKIPE KLFLG ;KL10 ?
JRST Q'L'5 ;YES
;KI10 USER MODE
CAME AC,[KIUF,,Q'L'1]
ER13 AC,L'1 ;FAIL IF ANY FLAGS SET
JRST Q'L'2
;KL10 USER MODE
Q'L'5: CAME AC,[KLUF,,Q'L'1]
ER13 AC,L'1 ;FAIL IF FLAGS NOT SET
JRST Q'L'2
Q'L'6: JRST .+1>
DEFINE DMVM (L,A,B,C,D) <
;THIS MACRO TESTS THE DMOVEM INSTRUCTION
;FIRST, TSTWD, TSTWD+1 ARE PRELOADED WITH DATA OTHER THAN THE
;TEST WORDS AND AC,AC+1 ARE LOADED WITH THE TEST WORDS.
;THEN, THE DATA SPECIFIED BY [XWD A,B] AND [XWD C,D] IS MOVED
;FROM AC, AC+1 TO MEMORY (TSTWD, TSTWD+1) VIA
;THE DMOVEM INSTRUCTION. C(TSTWD) AND C(TSTWD+1) ARE THEN
;COMPARED WITH THE TEST WORDS [XWD A,B] AND [XWD C,D], RESPECTIVELY.
;THE TEST PASSES IF THESE COMPARISONS AGREE.
Q'L'0: DMOVE AC,[XWD 707070,707070
XWD 070707,070707] ;INITIALIZE TEST WORDS
MOVEM AC,TSTWD ;TSTWD, TSTWD+1 ARE IN MEMORY JUST
MOVEM AC+1,TSTWD+1 ;AFTER THE FINAL TEST OF THIS PROGRAM
DMOVE AC,[XWD A,B
XWD C,D] ;INITIALIZE AC,AC+1
DMOVEM AC,TSTWD ;*MOVE DOUBLE WORD FROM AC, AC+1
;TO MEMORY (TSTWD, TSTWD+1)
DMOVE AC,TSTWD ;PUT RESULTS OF TEST IN AC,AC+1 FOR COMPARISON
CAME AC,[XWD A,B] ;WAS TSTWD LOADED CORRECTLY?
ER5 AC,L'1 ;FAIL IF CONTENTS(TSTWD) NOT = A,B
CAME AC+1,[XWD C,D] ;WAS TSTWD+1 LOADED CORRECTLY?
ER6 AC+1,L'2 ;FAIL IF CONTENTS(TSTWD+1) NOT = C,D
JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH>
DEFINE DMVNM (L,A,B,C,D) <
;THIS MACRO TESTS THE DMOVNM INSTRUCTION
;FIRST, TSTWD, TSTWD+1 ARE PRELOADED WITH DATA OTHER THAN THE
;TEST WORDS AND AC, AC+1 ARE LOADED WITH THE TEST WORDS.
;THEN, THE NEGATIVE (TWOS COMPLEMENT) OF THE DATA SPECIFIED BY
;[XWD A,B] AND [XWD C,D] IS MOVED FROM AC, AC+1 TO MEMORY
;(TSTWD, TSTWD+1) VIA THE DMOVNM INSTRUCTION.
;C(TSTWD) AND C(TSTWD+1) ARE THEN COMPARED WITH THE
;NEGATIVE (TWOS COMPLEMENT) OF THE TEST
;WORDS [XWD A,B] AND [XWD C,D], RESPECTIVELY.
;THE TEST PASSES IF THESE COMPARISONS AGREE.
Q'L'0: DMOVE AC,[XWD 707070,707070
XWD 070707,070707]
DMOVEM AC,TSTWD ;INITIALIZE TEST WORDS
DMOVE AC,[XWD A,B
XWD C,D] ;INITIALIZE AC,AC+1
DMOVN AC+5,[XWD A,B
XWD C,D] ;SET-UP TO CHECK RESULTS
DMOVNM AC,TSTWD ;*MOVE NEGATIVE OF DOUBLE WORD FROM AC, AC+1
;TO MEMORY (TSTWD, TSTWD+1)
DMOVE AC,TSTWD ;PUT TEST RESULTS IN AC,AC+1
CAME AC,<AC+5>&17 ;WAS TSTWD LOADED CORRECTLY?
ER5 AC,L'1 ;FAIL IF CONTENTS(TSTWD) NOT = COMPLEMENT OF A,B
CAME AC+1,<AC+6>&17 ;WAS TSTWD+1 LOADED CORRECTLY?
ER6 AC+1,L'2 ;FAIL IF CONTENTS(TSTWD) NOT = MINUS C,D
JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH>
DEFINE DMVM17 (L,A,B,C,D) <
;THIS MACRO TESTS THE DMOVEM INSTRUCTION
;FIRST, TSTWD, TSTWD+1 ARE PRELOADED WITH DATA OTHER THAN THE
;TEST WORDS AND AC,AC+1 ARE LOADED WITH THE TEST WORDS.
;THEN, THE DATA SPECIFIED BY [XWD A,B] AND [XWD C,D] IS MOVED
;FROM AC, AC+1 TO MEMORY (TSTWD, TSTWD+1) VIA THE DMOVEM INSTRUCTION.
;C(TSTWD) AND C(TSTWD+1) ARE THEN COMPARED WITH THE TEST
;WORDS [XWD A,B] AND [XWD C,D], RESPECTIVELY.
;THE TEST PASSES IF THESE COMPARISONS AGREE.
Q'L'0: MOVEM AC,%SV17 ;SAVE AC17 CAUSE IT HAS PDP
DMOVE AC,[XWD 707070,707070
XWD 070707,070707] ;INITIALIZE TEST WORDS
MOVEM AC,TSTWD ;TSTWD, TSTWD+1 ARE IN MEMORY JUST
MOVEM AC+1,TSTWD+1 ;AFTER THE FINAL TEST OF THIS PROGRAM
DMOVE AC,[XWD A,B
XWD C,D] ;INITIALIZE AC,AC+1
DMOVEM AC,TSTWD ;*MOVE DOUBLE WORD FROM AC, AC+1
;TO MEMORY (TSTWD, TSTWD+1)
DMOVE AC,TSTWD ;PUT RESULTS OF TEST IN AC,AC+1 FOR COMPARISON
CAMN AC,[XWD A,B] ;WAS TSTWD LOADED CORRECTLY?
JRST .+4 ;HERE IF TESTS OK
MOVEM AC,AC-1 ;SAVE BAD WORD
MOVE AC,%SV17 ;RESTORE P
ER5 AC-1,L'1 ;FAIL IF CONTENTS(TSTWD) NOT = A,B
CAMN AC+1,[XWD C,D] ;WAS TSTWD+1 LOADED CORRECTLY?
JRST .+4 ;HERE IF TESTS OK
MOVEM AC,AC-1 ;SAVE BAD WORD
MOVE AC,%SV17 ;RESTORE P
ER6 AC+1,L'2 ;FAIL IF CONTENTS(TSTWD+1) NOT = C,D
MOVE AC,%SV17 ;RESTORE AC UNCONDITIONALLY
JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH>
DEFINE DMVNM17 (L,A,B,C,D) <
;THIS MACRO TESTS THE DMOVNM INSTRUCTION
;FIRST, TSTWD, TSTWD+1 ARE PRELOADED WITH DATA OTHER THAN THE
;TEST WORDS AND AC, AC+1 ARE LOADED WITH THE TEST WORDS.
;THEN, THE NEGATIVE (TWOS COMPLEMENT) OF THE DATA SPECIFIED BY
;[XWD A,B] AND [XWD C,D] IS MOVED FROM AC, AC+1 TO MEMORY
;(TSTWD, TSTWD+1) VIA THE DMOVNM INSTRUCTION.
;C(TSTWD) AND C(TSTWD+1) ARE THEN COMPARED WITH THE
;NEGATIVE (TWOS COMPLEMENT) OF THE TEST
;WORDS [XWD A,B] AND [XWD C,D], RESPECTIVELY.
;THE TEST PASSES IF THESE COMPARISONS AGREE.
Q'L'0: DMOVE AC,[XWD 707070,707070
XWD 070707,070707]
DMOVEM AC,TSTWD ;INITIALIZE TEST WORDS
DMOVE AC,[XWD A,B
XWD C,D] ;INITIALIZE AC,AC+1
DMOVN AC+5,[XWD A,B
XWD C,D] ;SET-UP TO CHECK RESULTS
DMOVNM AC,TSTWD ;*MOVE NEGATIVE OF DOUBLE WORD FROM AC, AC+1
;TO MEMORY (TSTWD, TSTWD+1)
DMOVE AC,TSTWD ;PUT TEST RESULTS IN AC,AC+1
CAMN AC,<AC+5>&17 ;WAS TSTWD LOADED CORRECTLY?
JRST .+4
MOVEM AC,AC-1 ;SAVE BAD WORD
MOVE AC,%SV17 ;RESTORE P
ER5 AC-1,L'1 ;FAIL IF CONTENTS(TSTWD) NOT = COMPLEMENT OF A,B
CAMN AC+1,<AC+6>&17 ;WAS TSTWD+1 LOADED CORRECTLY?
JRST .+4 ;HERE IF TESTS OK
MOVEM AC,AC-1 ;SAVE BAD WORD
MOVE AC,%SV17
ER6 AC+1,L'2 ;FAIL IF CONTENTS(TSTWD) NOT = MINUS C,D
MOVE AC,%SV17
JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH>
DEFINE DMVNMF (L,A,B,C,D,KIEF,KIUF,KLEF,KLUF) <
;**KI10**
;THIS MACRO VERIFIES THAT THE DMOVN INSTRUCTION DOES NOT SET OVERFLOW
;OR CARRY FLAGS ON THE KI10. FIRST, OVFL AND CRY0,1 FLAGS ARE CLEARED;
;THEN,DMOVN IS EXECUTED. NEXT, OVFL AND CRY0,1 FLAGS ARE EXAMINED.
;IF ANY OF THESE FLAGS ARE SET, THE TEST FAILS.
;**KL10**
;THIS MACRO VERIFIES THAT THE DMOVN INSTRUCTION DOES SET OVERFLOW
;OR CARRY FLAGS ON THE KL10. FIRST, OVFL AND CRY0,1 FLAGS ARE CLEARED;
;THEN,DMOVN IS EXECUTED. NEXT, OVFL AND CRY0,1 FLAGS ARE EXAMINED.
;IF THE PROPER FLAGS ARE NOT SET, THE TEST FAILS.
Q'L'0: JFCL 17,.+1 ;CLEAR OVFL AND CRY0,1 FLAGS
DMOVE AC,[XWD A,B
XWD C,D] ;SETUP INITIAL
DMOVNM AC,TSTWD ;*DMOVNM TEST
JSP AC,.+1 ;READ FLAGS
Q'L'1: TLZ AC,027777 ;CLEAR EXTRA JUNK
TLNE AC,USERF ;IN USER MODE ?
JRST Q'L'4 ;YES
SKIPE KLFLG ;KL10 ?
JRST Q'L'3 ;YES
;KI10 EXEC MODE
CAME AC,[KIEF,,Q'L'1]
ER13 AC,L'1 ;FAIL IF OVFL OR CRY0,1 FLG SET
Q'L'2: JUMPL SAC,Q'L'0 ;LOOP ON ERROR SWITCH
JRST Q'L'6
;KL10 EXEC MODE
Q'L'3: CAME AC,[KLEF,,Q'L'1]
ER13 AC,L'1 ;FAIL IF FLAGS NOT SET
JRST Q'L'2
;KL10/KI10 USER MODE
Q'L'4: SKIPE KLFLG ;KL10 ?
JRST Q'L'5 ;YES
;KI10 USER MODE
CAME AC,[KIUF,,Q'L'1]
ER13 AC,L'1 ;FAIL IF ANY FLAGS SET
JRST Q'L'2
;KL10 USER MODE
Q'L'5: CAME AC,[KLUF,,Q'L'1]
ER13 AC,L'1 ;FAIL IF FLAGS NOT SET
JRST Q'L'2
Q'L'6: JRST .+1>
DEFINE DFA (T,A,B,C,D,E,F,G,H,I,M,K,L) <
R'T'00: DMOVE AC,[A,,B
C,,D]
DFAD AC,[E,,F
G,,H]
CAME AC,[I,,M]
ER3 AC,T'01
CAME AC+1,[K,,L]
ER4 AC+1,T'01
JUMPL AC+4,R'T'00 ;LOOP ON ERROR SWITCH>
DEFINE DFS (T,A,B,C,D,E,F,G,H,I,M,K,L) <
R'T'00: DMOVE AC,[A,,B
C,,D]
DFSB AC,[E,,F
G,,H]
CAME AC,[I,,M]
ER3 AC,T'01
CAME AC+1,[K,,L]
ER4 AC+1,T'01
JUMPL AC+4,R'T'00 ;LOOP ON ERROR SWITCH>
DEFINE DFM (T,A,B,C,D,E,F,G,H,I,M,K,L) <
R'T'00: DMOVE AC,[A,,B
C,,D]
DFMP AC,[E,,F
G,,H]
CAME AC,[I,,M]
ER3 AC,T'01
CAME AC+1,[K,,L]
ER4 AC+1,T'01
JUMPL AC+4,R'T'00 ;LOOP ON ERROR SWITCH>
DEFINE DFD (T,A,B,C,D,E,F,G,H,I,M,K,L) <
R'T'00: DMOVE AC,[A,,B
C,,D]
DFDV AC,[E,,F
G,,H]
CAME AC,[I,,M]
ER3 AC,T'01
CAME AC+1,[K,,L]
ER4 AC+1,T'01
JUMPL AC+4,R'T'00 ;LOOP ON ERROR SWITCH>
DEFINE DFARP (T,A,B,C,D,E,F,G,H,I,M,K,L) <
DMOVE AC,[A,,B
C,,D]
DFAD AC,[E,,F
G,,H]
CAME AC,[I,,M]
ER3 AC,T
CAME AC+1,[K,,L]
ER4 AC+1,T
JUMPL AC+4,.-^D6 ;LOOP ON ERROR SWITCH>
DEFINE SDFA (T,A,B,C,D,E,F,G,H,I,M,K,L) <
S'T'00: DMOVE AC,[A,,B
C,,D]
DFAD AC,[E,,F
G,,H]
CAME AC,[I,,M]
ER3 AC,T'01
CAME AC+1,[K,,L]
ER4 AC+1,T'01
JUMPL AC+4,S'T'00 ;LOOP ON ERROR SWITCH>
DEFINE SDFS (T,A,B,C,D,E,F,G,H,I,M,K,L) <
S'T'00: DMOVE AC,[A,,B
C,,D]
DFSB AC,[E,,F
G,,H]
CAME AC,[I,,M]
ER3 AC,T'01
CAME AC+1,[K,,L]
ER4 AC+1,T'01
JUMPL AC+4,S'T'00 ;LOOP ON ERROR SWITCH>
DEFINE SDFM (T,A,B,C,D,E,F,G,H,I,M,K,L) <
S'T'00: DMOVE AC,[A,,B
C,,D]
DFMP AC,[E,,F
G,,H]
CAME AC,[I,,M]
ER3 AC,T'01
CAME AC+1,[K,,L]
ER4 AC+1,T'01
JUMPL AC+4,S'T'00 ;LOOP ON ERROR SWITCH>
DEFINE SDFMKL (T,A,B,C,D,E,F,G,H,I,M,K,L,KL1,KL2,KL3,KL4) <
S'T'00: DMOVE AC,[A,,B
C,,D]
DFMP AC,[E,,F
G,,H]
SKIPE KLFLG
JRST S'T'05
CAME AC,[I,,M]
ER3 AC,T'01
CAME AC+1,[K,,L]
ER4 AC+1,T'01
S'T'06: JUMPL AC+4,S'T'00 ;LOOP ON ERROR SWITCH
JRST S'T'07
S'T'05: CAME AC,[KL1,,KL2]
ER3 AC,T'01
CAME AC+1,[KL3,,KL4]
ER4 AC+1,T'01
JRST S'T'06
S'T'07: JRST .+1 >
DEFINE SDFD (T,A,B,C,D,E,F,G,H,I,M,K,L) <
S'T'00: DMOVE AC,[A,,B
C,,D]
DFDV AC,[E,,F
G,,H]
CAME AC,[I,,M]
ER3 AC,T'01
CAME AC+1,[K,,L]
ER4 AC+1,T'01
JUMPL AC+4,S'T'00 ;LOOP ON ERROR SWITCH>
DEFINE SDFDKL (T,A,B,C,D,E,F,G,H,I,M,K,L,KL1,KL2,KL3,KL4) <
S'T'00: DMOVE AC,[A,,B
C,,D]
DFDV AC,[E,,F
G,,H]
SKIPE KLFLG
JRST S'T'05
CAME AC,[I,,M]
ER3 AC,T'01
CAME AC+1,[K,,L]
ER4 AC+1,T'01
S'T'06: JUMPL AC+4,S'T'00 ;LOOP ON ERROR SWITCH
JRST S'T'07
S'T'05: CAME AC,[KL1,,KL2]
ER3 AC,T'01
CAME AC+1,[KL3,,KL4]
ER4 AC+1,T'01
JRST S'T'06
S'T'07: JRST .+1 >
DEFINE SDFARP (T,A,B,C,D,E,F,G,H,I,M,K,L) <
DMOVE AC,[A,,B
C,,D]
DFAD AC,[E,,F
G,,H]
CAME AC,[I,,M]
ER3 AC,T
CAME AC+1,[K,,L]
ER4 AC+1,T
JUMPL AC+4,.-^D6 ;LOOP ON ERROR SWITCH>

File diff suppressed because it is too large Load diff

View file

@ -8,7 +8,53 @@ PDP-10 KLAD Diagnostics
-----------------------
PCjs has archived selected files from
[PDP-10 KLAD Diagnostics Sources](http://pdp-10.trailing-edge.com/klad_sources/index.html), including:
[PDP-10 KLAD Diagnostics Sources](http://pdp-10.trailing-edge.com/klad_sources/index.html) and turned them into
stand-alone PDP-10 diagnostics, using the new PCjs [MACRO-10 Mini-Assembler](/modules/pdp10/lib/macro10.js). A complete
list is provided [below](#list-of-ka10-diagnostics).
I experimented with assembling an entire diagnostic (**DAKAK**) from all its original pieces, by going to the
[DAKAK Diagnostic](dakak/) page and typing the following command:
a 'dakakt.mac;../param.klm;../fixed.klm;dakakm.mac;../uuoerr.klm;../stor.klm'
and while the MACRO-10 assembly process works:
loading dakakt.mac
loading param.klm
loading fixed.klm
loading dakakm.mac
loading uuoerr.klm
loading stor.klm
6301 words loaded at 000137-044630, start address 030000
00=000000000000 01=000000000000 02=000000000000 03=000000000000
04=000000000000 05=000000000000 06=000000000000 07=000000000000
10=000000000000 11=000000000000 12=000000000000 13=000000000000
14=000000000000 15=000000000000 16=000000000000 17=000000000000
PC=030000 RA=00000000 EA=000000 PS=000000 OV=0 C0=0 C1=0 ND=0 PD=0
030000: 254020 027776 JRST @27776
there are additional modules that must be loaded into the machine as well, which are not yet supported. So it's best
to assemble the modified files that I've placed inside each diagnostic's folder. For the [DAKAK Diagnostic](dakak/),
that's **DAKAK.MAC**:
>> a dakak.mac
loading dakak.mac
5849 words loaded at 000137-044133, start address 030621
00=000000000000 01=000000000000 02=000000000000 03=000000000000
04=000000000000 05=000000000000 06=000000000000 07=000000000000
10=000000000000 11=000000000000 12=000000000000 13=000000000000
14=000000000000 15=000000000000 16=000000000000 17=000000000000
PC=030621 RA=00000000 EA=000000 PS=000000 OV=0 C0=0 C1=0 ND=0 PD=0
030621: 254000 030622 JRST 30622
If the machine is able to run to the end of the diagnostic (which can be located by looking at the diagnostic's original
MACRO-10 listing file) without stopping on an UUO opcode, then you can assume it passed.
List of KA10 Diagnostics
------------------------
The following list of KA10 Diagnostics is not comprehensive. It's simply a list of thosr diagnostics we have archived and
tested with PDPjs so far.
- [KA10 Basic Instruction Diagnostic #1 (MAINDEC-10-DAKAA)](dakaa/)
- TEST OF JUMP, JUMPA AND SKIPX INSTRUCTIONS

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,171 @@
SUBTTL *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76
;NEW DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE
AC0= 0
DIAGNOS=30000 ;PDP-10 DIAGNOSTIC START ADDRESS
DDT= 10000 ;PDP-10 DDT START ADDRESS
DIAMON= 20000 ;PDP-10 DIAMON LOADER START ADDRESS
DONG11= 1B22 ;11 DOORBELL (FROM THE 10)
;DTE20 DEVICE CODES
DTE== 200 ;DTE0
DTE0== 204
DTE1== 204
DTE2== 210
DTE3== 214
;KL10 EPT COMMUNICATION AREA
$STD= 440 ;PDP-10 DIAGNOSTIC START ADDRESS
$DDT= 441 ;PDP-10 DDT START ADDRESS
$STL= 442 ;PDP-10 LOADER START ADDRESS
$STM= 443 ;PDP-10 MONITOR START ADDRESS
$DTFLG= 444 ;DTE20 OPERATION COMPLETE FLAG
$DTCLK= 445 ;DTE20 CLOCK INTERRUPT FLAG
$DTCI= 446 ;DTE20 CLOCK INTERRUPT INSTRUCTION
$DTT11= 447 ;DTE20 10 TO 11 ARGUMENT
$DTF11= 450 ;DTE20 11 TO 10 ARGUMENT
$DTCMD= 451 ;DTE20 TO 11 COMMAND WORD
$DTSEQ= 452 ;DTE20 OPERATION SEQUENCE NUMBER
$DTOPR= 453 ;DTE20 OPERATIONAL DTE #
$DTCHR= 454 ;DTE20 LAST TYPED CHARACTER
$DTMTD= 455 ;DTE20 MONITOR TTY OUTPUT COMPLETE FLAG
$DTMTI= 456 ;DTE20 MONITOR TTY INPUT FLAG
$DTSWR= 457 ;DTE20 CONSOLE SWITCH REGISTER
;SPECIAL "FIXED" REASSIGNMENTS
$$LOC=. ;SAVE CURRENT LOCATION
LOC 30000
$$BEGIN:JRST $$START ;SETUP SPECIAL START
JRST $$START ;"DIAMON" CHAIN START ADDRESS
LOC 440
$STD: JRST BEGIN ;SETUP FOR "STD"
LOC 443
$STM: JRST $SPEC ;SIMPLE RUN CONTROL
LOC 30057
$BEGEND:JRST $SPBEND ;SETUP SPECIAL "BEGEND"
;SPECIAL MUUO, TRAP & PAGE FAIL SETUP
LOC 420
$$420: HALT . ;KI10 PAGE FAIL
$$421: JFCL ;OVERFLOW
$$422: HALT . ;PUSHDOWN OVERFLOW
$$423: HALT . ;TRAP 3
$$424: 0 ;MMUO
$$425: 0 ;MMUO PC
$$426: 0 ;KI10-PAGE FAIL, KL10-PROCESS CONTEXT
$$427: HALT .
$$430: 427 ;MMUO NEW PC'S
$$431: 427
$$432: 427
$$433: 427
$$434: 427
$$435: 427
$$436: 427
$$437: 427
LOC 500
$$500: 0 ;KL10 PAGE FAIL WORD
$$501: 0 ;KL10 PAGE FAIL PC
$$502: 503 ;KL10 PAGE FAIL NEW PC
$$503: HALT .
LOC $$LOC ;RESET CURRENT LOCATION
;SPECIAL STARTUP SEQUENCE
$$START:SETZM USER
JSP 0,.+1 ;IN USER MODE ?
TLNE 0,USERF
SETOM USER ;YES, SET CONTROL WORD
SKIPN MONFLG ;SPECIAL USER MODE ?
SETZM USER ;YES, RUN AS EXEC
SKIPE USER
JRST START ;USER MODE, DON'T NEED CPU TYPE
$STKIL: SKIPN MONTEN ;LOADED BY "DIAMON" ?
SETOM ITRCNT ;NO, RUN FOREVER
SETZM KLTYP
SETZM KLFLG ;ASSUME KI10
MOVE 1,[1,,1]
BLT 1,1 ;HOPE THIS WORKS
CAMN 1,[1,,1] ;IF AC NE 1,,1 AFTER BLT, KL10
JRST START ;KI10, NO ADDITIONAL SETUP
$STKL: CONO APR,10040 ;SET BBD NOT BIT
CONI APR,0
CONO APR,20040 ;CLEAR BBD NOT BIT
TRNN 0,40 ;IF SET, KL10
AOS KLTYP ;IF NOT, BBD
SETZM $DTFLG
SETZM $DTCLK
MOVE $DTOPR ;GET DTE #
ORM $$DTE0 ;INSERT IN DTE I/O INSTS
ORM $$DTE1
ORM $$DTE2
ORM $$DTE3
SETOM KLFLG ;SET KL10 CONTROL FLAG
JRST START
$SPEC: MOVE [JRST STARTA] ;SIMPLE RUN CONTROL
MOVEM $SPB1
JRST START
;SPECIAL "BEGEND" ROUTINE
$SPBEND:AOS PASCNT ;INCREMENT PASS COUNT
SOS ITRCNT ;DECREMENT ITERATION COUNT
$SPB1: SKIPN USER
JRST $SPBEX ;EXEC MODE
$SPBUS: SKIPE ITRCNT ;USER MODE, COMPLETED ?
JRST STARTA ;NO, KEEP RUNNING
SKIPN MONTEN ;DONE, LOADED BY "DIAMON" ?
EXIT ;NO, RETURN TO MONITOR
JRST @RETURN ;YES, RETURN TO "DIAMON"
$SPBEX: SKIPE KLFLG
JRST $SPBKL ;KL10 & EXEC
DATAO PI,ITRCNT ;KI10 & EXEC, DISPLAY ITER COUNT
SKIPE ITRCNT
JRST STARTA ;NOT COMPLETED YET
JRST @RETURN ;DONE
$SPBKL: SKIPN ITRCNT
JRST $SPKLD ;KL10, EXEC & COMPLETED
SKIPGE MONCTL
JRST STARTA ;"DIAMON" CONTROL
MOVEI 0,404 ;NOTIFY PDP-11 OF END OF PASS
MOVEM 0,$DTCMD
SETZM $DTFLG
SKIPN KLTYP
$$DTE0: CONO DTE,DONG11
SKIPE KLTYP
$$DTE1: CONO DTE,10000
SKIPN $DTFLG ;WAIT TILL 11 RESPONDS
JRST .-1
JRST STARTA ;KEEP RUNNING
;SPECIAL KL10 COMPLETED ROUTINE
$SPKLD: SKIPE MONTEN
JRST @RETURN ;LOADED BY "DIAMON"
MOVEI 0,403 ;NOTIFY PDP-11 OF COMPLETION
MOVEM 0,$DTCMD
SETZM $DTFLG
SKIPN KLTYP
$$DTE2: CONO DTE,DONG11
SKIPE KLTYP
$$DTE3: CONO DTE,10000
SKIPN $DTFLG ;SHOULD NEVER HAPPEN
JRST .-1 ;11 NEVER RETURNS ON END OF PROGRAM
HALT BEGIN ;IF IT DOES, HALT.

View file

@ -0,0 +1,21 @@
SUBTTL *STOR* RESERVED STORAGE, JULY 19,1977
;PROGRAM LITERALS
XLIST
IFNDEF $LPAPER,<LIST>
LIT
LIST
ENDSLD: 0
IFDEF DEBUG,<
PATCH: BLOCK DEBUG ;PATCHING AREA
>
;PROGRAM VARIABLES
VAR
IFDEF PGMEND,<
END: 0
END BEGIN >

View file

@ -7,7 +7,7 @@ machines:
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a &apos;dakakt.mac;../param.klm;../fixed.klm;dakakm.mac;../uuoerr.klm&apos;
commands: a dakak.mac
---
PDP-10 KA10 Basic Instruction Diagnostic #11
@ -18,7 +18,9 @@ The *PDP-10 KA10 Basic Instruction Diagnostic #11* (MAINDEC-10-DAKAK) test code
[DAKAKT.MAC](DAKAKT.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakakt.mac.html)]
for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below.
Resources for this test include:
This diagnostic "TESTS THE MULTIPLY INSTRUCTION AND THE MULTIPLY ALGORITHM."
Resources for this diagnostic include:
- [Instructions](#dakaktxt)
- [History](#dakakhst)
@ -38,6 +40,23 @@ This command:
will automatically read the [DAKAK.MAC](DAKAK.MAC.txt) source file (a slightly modified copy of [DAKAKM.MAC](DAKAKM.MAC.txt)),
assemble it, and then load the binary image at the location specified in the file.
To assemble the diagnostic using the original DEC source files:
a 'dakakt.mac;../param.klm;../fixed.klm;dakakm.mac;../uuoerr.klm;../stor.klm'
The quotes (either single or double) are required to prevent the PDPjs Debugger from interpreting the filenames as
separate commands, because a semicolon is the Debugger's normal command separator.
If you want a machine to automatically assemble and load those files on startup, you can add the following machine configuration
setting in the page's Front Matter:
commands: a &apos;dakakt.mac;../param.klm;../fixed.klm;dakakm.mac;../uuoerr.klm;../stor.klm&apos;
However, in this case, you *must* use `&apos;` as the quoting sequence, because of the way these settings are encoded into
JavaScript parameters; e.g.:
embedPDP10(...,'{commands:"a &apos;dakakt.mac;../param.klm;../fixed.klm;dakakm.mac;../uuoerr.klm;../stor.klm&apos;"}');
---
DAKAK.TXT

File diff suppressed because it is too large Load diff

View file

@ -2536,8 +2536,14 @@ class DebuggerPDP10 extends Debugger {
if (!nWords) {
this.println("no data");
} else {
this.println(nWords + " words loaded at " + this.toStrBase(addrLo) + '-' + this.toStrBase(addrHi));
if (addrStart != null) this.cpu.setPC(addrStart);
var sStart = "start address ";
if (addrStart != null) {
this.cpu.setPC(addrStart);
sStart += this.toStrBase(addrStart);
} else {
sStart += "unspecified";
}
this.println(nWords + " words loaded at " + this.toStrBase(addrLo) + '-' + this.toStrBase(addrHi) + ", " + sStart);
this.updateStatus();
}
}
@ -2614,10 +2620,7 @@ class DebuggerPDP10 extends Debugger {
* assembling (multiple files must be separated by semicolons), along with any option letters that were included
* with the "a" command; for example, if "ap" was specified, then "p" will be passed to Macro10 as an option.
*
* Macro10 options include:
*
* p: preprocess the specified resource(s) without assembling them
* l: generate listing information (TODO)
* See the Macro10 component for a list of supported options.
*
* When assembling a file, the target address determines the initial location counter for the assembly process,
* but that can always be overridden by a LOC (or RELOC) pseudo-op in the file. The target address will also be

View file

@ -125,6 +125,11 @@ class Macro10 {
* parseExpression(), etc). This is NOT a subclass of Component, so Component services are not part
* of this class.
*
* Supported options include:
*
* 'p': print the preprocessed resource(s) without assembling them
* 'l': print lines as they are parsed
*
* @this {Macro10}
* @param {string} sURL (the URL(s) of the resource to be assembled)
* @param {number|null} addrLoad (the absolute address to assemble the code at, if any)
@ -264,6 +269,7 @@ class Macro10 {
this.iURL = 0;
this.asURLs = sURL.split(';');
this.anLines = []; // keeps track of the number of lines per file
this.loadNextResource();
}
@ -281,7 +287,7 @@ class Macro10 {
}
var macro10 = this;
var sURL = this.asURLs[this.iURL++];
var sURL = this.asURLs[this.iURL];
this.println("loading " + Str.getBaseName(sURL));
@ -311,10 +317,31 @@ class Macro10 {
sText += s;
}
match = sText.match(/&[a-z]+;/i);
if (match) macro10.warning("unrecognized HTML entity: " + match[0]);
if (match) macro10.warning("unrecognized HTML entity '" + match[0] + "'");
}
macro10.asLines = macro10.asLines.concat(sText.split(/(\r?\n)/));
/*
* For a file containing N lines, split() will return an array of N*2+1 entries, with every even entry
* containing the characters, if any, preceding a line-ending, and every odd entry (including the final
* entry) containing a line-ending.
*
* If, for some reason, split() doesn't do that, then we try to warn and patch things up as best we can.
*/
var asLines = sText.split(/(\r?\n)/);
if (asLines.length & 1) {
s = asLines.pop();
if (s) {
macro10.warning("unexpected line '" + s + "'");
asLines.push(s);
asLines.push("");
}
} else {
macro10.warning("unexpected number of lines (" + asLines.length + ")");
}
macro10.asLines = macro10.asLines.concat(asLines);
macro10.anLines[macro10.iURL] = (asLines.length >> 1);
macro10.iURL++;
setTimeout(function() {
macro10.loadNextResource();
@ -361,7 +388,7 @@ class Macro10 {
var macro10 = this;
/*
* If the "preprocess" option is set, then just return the plain text we retrieved.
* If the "preprocess" option is set, then print everything without assembling.
*/
if (this.sOptions.indexOf('p') >= 0) {
this.println(this.asLines.join(""));
@ -371,7 +398,16 @@ class Macro10 {
var a = this.dbg.resetVariables();
try {
for (let i = 0; i < this.asLines.length; i += 2) {
this.nLine++;
/*
* If the "line" option is set, then print all the lines as they are parsed.
*/
if (this.sOptions.indexOf('l') >= 0) {
this.println(this.getLineRef() + ": " + this.asLines[i]);
}
/*
* Since, at this early stage, I'm not sure whether all the resources I'm interested in
* assembling have had their original CR/LF line endings preserved (eg, some files may have
@ -379,6 +415,7 @@ class Macro10 {
* are in the array (stored in every OTHER entry) and insert my own uniform CR/LF sequences.
*/
if (!this.parseLine(this.asLines[i] + '\r\n')) break;
/*
* When an END statement is encountered, addrStart will change from null to either undefined
* or a starting address.
@ -387,11 +424,11 @@ class Macro10 {
}
if (this.nMacroDef) {
this.error("open block from line " + this.tblMacros[this.sMacroDef].nLine);
this.error("open block", this.tblMacros[this.sMacroDef].nLine);
}
if (this.stackScopes.length) {
this.error("open scope from line " + this.stackScopes[0].nLine);
this.error("open scope", this.stackScopes[0].nLine);
}
/*
@ -480,7 +517,7 @@ class Macro10 {
/*
* This is more of an assert(), because it should never happen, regardless of input.
*/
this.error("missing definition for variable: " + name);
this.error("missing definition for variable '" + name + "'");
continue;
}
this.parseText(macro.sText);
@ -492,7 +529,7 @@ class Macro10 {
this.aFixups.forEach(function processFixup(sValue, nLocation){
let value = macro10.parseExpression(sValue, undefined, nLocation);
if (value === undefined) {
macro10.error("unable to parse expression: " + sValue);
macro10.error("unable to parse expression '" + sValue + "'");
return;
}
value += macro10.aWords[nLocation];
@ -527,7 +564,7 @@ class Macro10 {
this.nMacroDef++;
sLine = sLine.substr(i+1);
} else {
this.error("expected " + this.sOperator + " definition: " + sLine);
this.error("expected " + this.sOperator + " definition in '" + sLine + "'");
}
}
if (this.nMacroDef > 1) {
@ -546,7 +583,7 @@ class Macro10 {
while (fParse) {
var matchLine = sLine.match(this.reLine);
if (!matchLine || matchLine[5] && matchLine[5].slice(0, 1) != ';') {
this.error("failed to parse line: " + sLine);
this.error("failed to parse line '" + sLine + "'");
return false;
}
fParse = false;
@ -639,6 +676,10 @@ class Macro10 {
this.defASCII(sRemainder);
break;
case Macro10.PSEUDO_OP.BLOCK:
this.defBLOCK(sOperands);
break;
case Macro10.PSEUDO_OP.END:
this.defEND(sOperands);
break;
@ -661,6 +702,7 @@ class Macro10 {
case Macro10.PSEUDO_OP.IFG:
case Macro10.PSEUDO_OP.IFL:
case Macro10.PSEUDO_OP.IFN:
case Macro10.PSEUDO_OP.IFNDEF:
case Macro10.PSEUDO_OP.IRP:
case Macro10.PSEUDO_OP.IRPC:
case Macro10.PSEUDO_OP.OPDEF:
@ -728,7 +770,6 @@ class Macro10 {
*/
parseMacro(name, sOperands)
{
var i;
var macro = this.tblMacros[name];
if (!macro) return false;
@ -738,9 +779,16 @@ class Macro10 {
* the operands and merge their bits with the OPDEF's bits.
*/
if (macro.nOperand == Macro10.MACRO_OP.OPDEF) {
var nLocation = this.nLocation;
this.parseText(macro.sText);
if (nLocation < this.nLocation) {
/*
* An OPDEF invokation *may* have operands, but it's not required to.
*/
if (!sOperands) return true;
this.pushScope();
this.parseText(sOperands);
var w = this.aWords[0];
@ -759,7 +807,11 @@ class Macro10 {
return true;
}
}
this.error("OPDEF '" + name + "' error: " + sOperands);
/*
* Either the OPDEF didn't generate any data OR the OPDEF's operands failed to evaluate.
*/
this.error("OPDEF '" + name + "' (" + sOperands + ") failed");
return false;
}
var macroPrev = this.macroCall;
@ -782,13 +834,8 @@ class Macro10 {
var sOperator = name.substr(1);
switch(sOperator) {
case Macro10.PSEUDO_OP.IFDEF:
if (macro.nOperand) {
this.parseText(macro.sText);
}
break;
case Macro10.PSEUDO_OP.IFE:
case Macro10.PSEUDO_OP.IFNDEF:
if (!macro.nOperand) {
this.parseText(macro.sText);
}
@ -807,6 +854,7 @@ class Macro10 {
break;
case Macro10.PSEUDO_OP.IFN:
case Macro10.PSEUDO_OP.IFDEF:
if (macro.nOperand) {
this.parseText(macro.sText);
}
@ -814,7 +862,7 @@ class Macro10 {
case Macro10.PSEUDO_OP.IRP:
case Macro10.PSEUDO_OP.IRPC:
for (i = 0; i < macro.aValues.length; i++) {
for (let i = 0; i < macro.aValues.length; i++) {
this.parseText(macro.sText, macro.aParms, [macro.aValues[i]], []);
}
break;
@ -903,29 +951,6 @@ class Macro10 {
}
}
/**
* error(sError)
*
* @this {Macro10}
* @param {string} sError
*/
error(sError)
{
throw new Error("error" + (this.nLine? " at line " + Str.toDec(this.nLine) : "") + ": " + sError);
}
/**
* warning(sWarning)
*
* @this {Macro10}
* @param {string} sWarning
*/
warning(sWarning)
{
this.println("warning" + (this.nLine? " at line " + Str.toDec(this.nLine) : "") + ": " + sWarning);
}
/**
* getExpression(sOperands, sDelim)
*
@ -955,7 +980,7 @@ class Macro10 {
cNesting++;
} else if (ch == '>') {
if (--cNesting < 0) {
this.error("missing bracket(s): " + sOperands);
this.error("missing bracket(s) in '" + sOperands + "'");
break;
}
}
@ -964,7 +989,7 @@ class Macro10 {
sOperand = sOperands.substr(0, i);
}
else if (cNesting > 0) {
this.error("extra bracket(s): " + sOperands);
this.error("extra bracket(s) in '" + sOperands + "'");
}
return sOperand;
}
@ -998,23 +1023,33 @@ class Macro10 {
/*
* The SIXBIT (and presumably ASCII; not sure about ASCIZ) pseudo-ops can also be used in expressions
* (or at least assignments), so we check for those in the given expression and convert them to quoted
* sequences that the debugger's parseExpression() understands.
* sequences that the Debugger's parseExpression() understands.
*/
sOperand = sOperand.replace(/SIXBIT\s*(\S)(.*?)\1/g, "'$2'").replace(/ASCII\s*(\S)(.*?)\1/g, '"$2"');
/*
* Check for the "period" syntax that MACRO-10 uses to represent the value of the current location.
* The Debugger's parseInstruction() method understands that syntax, but its parseExpression() method
* does not.
*
* Note that the Debugger's parseInstruction() replaces any period not PRECEDED by a decimal
* digit with the current address, because our Debuggers' only other interpretation of a period
* is as the suffix of a decimal integer, whereas MACRO-10's only other interpretation of a period
* is (I think) as the decimal point within a floating-point number, so here we only replace
* periods that are not FOLLOWED by a decimal digit.
*/
result = this.dbg.parseExpression(sOperand.replace(/\.([^0-9]|$)/g, this.dbg.toStrBase(nLocation, -1) + "$1"), fPass1);
if (result === undefined) {
this.error("error parsing expression: " + sOperand);
var sOperator = "";
var sOperands = sOperand;
if (match = sOperand.match(/^([^\s]+)\s+(.+?)\s*$/)) {
sOperator = match[1];
sOperands = match[2];
}
result = this.dbg.parseInstruction(sOperator, sOperands, nLocation, true);
if (result < 0) {
/*
* Check for the "period" syntax that MACRO-10 uses to represent the value of the current location.
* The Debugger's parseInstruction() method understands that syntax, but its parseExpression() method
* does not.
*
* Note that the Debugger's parseInstruction() replaces any period not PRECEDED by a decimal
* digit with the current address, because our Debuggers' only other interpretation of a period
* is as the suffix of a decimal integer, whereas MACRO-10's only other interpretation of a period
* is (I think) as the decimal point within a floating-point number, so here we only replace
* periods that are not FOLLOWED by a decimal digit.
*/
result = this.dbg.parseExpression(sOperand.replace(/\.([^0-9]|$)/g, this.dbg.toStrBase(nLocation, -1) + "$1"), fPass1);
if (result === undefined) {
this.error("unable to parse expression '" + sOperand + "'");
}
}
} else {
var wLeft = match[1]? this.parseExpression(match[1], fPass1, nLocation) : 0;
@ -1058,7 +1093,7 @@ class Macro10 {
}
}
if (cNesting < 0) {
this.error("missing bracket(s): " + sOperands);
this.error("missing bracket(s) in '" + sOperands + "'");
}
if (iBegin >= 0) {
sLiteral = sOperands.substr(iBegin, iEnd - iBegin);
@ -1090,6 +1125,27 @@ class Macro10 {
return aDefaults;
}
/**
* getLineRef(nLine)
*
* @this {Macro10}
* @param {number|undefined} [nLine]
* @return {string}
*/
getLineRef(nLine = this.nLine)
{
var iURL = 0;
while (nLine > this.anLines[iURL]) {
nLine -= this.anLines[iURL];
if (iURL < this.asURLs.length - 1) {
iURL++;
} else {
break;
}
}
return Str.getBaseName(this.asURLs[iURL] + " line " + nLine);
}
/**
* getReserved(sOperands)
*
@ -1337,7 +1393,7 @@ class Macro10 {
*/
match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*,?\s*(<|)([\s\S]*)/i);
if (!match) {
this.error("unrecognized " + sOperator + ": " + sOperands);
this.error("unrecognized " + sOperator + " in '" + sOperands + "'");
return sOperands;
}
name = match[1];
@ -1362,7 +1418,7 @@ class Macro10 {
this.chMacroClose = ']';
match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\[)([\s\S]*)/i);
if (!match) {
this.error("unrecognized " + sOperator + ": " + sOperands);
this.error("unrecognized " + sOperator + " in '" + sOperands + "'");
return sOperands;
}
name = match[1];
@ -1377,7 +1433,7 @@ class Macro10 {
this.chMacroClose = ']';
name = '?' + Str.toDec(++this.nLiteral, 5);
if (this.tblMacros[name] !== undefined) {
this.error("literal symbol redefined: " + name);
this.error("literal symbol '" + name + "' redefined");
}
match = [sOperands[0], sOperands.substr(1)];
nOperand = Macro10.MACRO_OP.LITERAL;
@ -1395,14 +1451,14 @@ class Macro10 {
}
match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)([\s\S]*)/i);
if (!match) {
this.error("unrecognized " + sOperator + ": " + sOperands);
this.error("unrecognized " + sOperator + " operands '" + sOperands + "'");
return sOperands;
}
for (i = 0; i < this.macroCall.aParms.length; i++) {
if (match[1] == this.macroCall.aParms[i]) break;
}
if (i == this.macroCall.aParms.length) {
this.error("invalid " + sOperator + " parameter: " + match[1]);
this.error("invalid " + sOperator + " parameter '" + match[1] + "'");
return sOperands;
}
name = '?' + sOperator;
@ -1421,7 +1477,7 @@ class Macro10 {
*/
var sOperand = this.getExpression(sOperands);
if (!sOperand) {
this.error("missing " + sOperator + " expression: " + sOperands);
this.error("missing " + sOperator + " expression '" + sOperands + "'");
return sOperands;
}
sOperands = sOperands.substr(sOperand.length + 1);
@ -1429,7 +1485,7 @@ class Macro10 {
match = sOperands.match(/\s*(<|)([\s\S]*)/i);
name = '?' + sOperator;
if (sOperator == Macro10.PSEUDO_OP.IFDEF) {
if (sOperator == Macro10.PSEUDO_OP.IFDEF || sOperator == Macro10.PSEUDO_OP.IFNDEF) {
nOperand = this.isDefined(sOperand)? 1 : 0;
} else {
/*
@ -1503,16 +1559,22 @@ class Macro10 {
{
name = name.toUpperCase().substr(0, 6);
if ((nType & Macro10.SYMTYPE.LABEL) && this.tblSymbols[name] !== undefined) {
this.error("label " + name + " redefined");
this.error("label '" + name + "' redefined");
return;
}
var sUndefined = null;
if (typeof value == 'string') {
var v = this.parseExpression(value);
/*
* We now pass true to parseExpression() to allow at least one undefined symbol to exist in the expression,
* which we will record alongside the variable.
*/
var v = this.parseExpression(value, true);
if (v === undefined) {
this.error("parseExpression(" + value + ")");
this.error("parseExpression(" + value + ") failed");
return;
}
value = v;
sUndefined = this.dbg.sUndefined;
}
var sym = this.tblSymbols[name];
if (sym) {
@ -1522,7 +1584,25 @@ class Macro10 {
} else {
this.tblSymbols[name] = {name, value, nType, nLine: this.nLine};
}
this.dbg.setVariable(name, value);
this.dbg.setVariable(name, value, sUndefined);
}
/**
* defBLOCK()
*
* Processes the BLOCK pseudo-op.
*
* @this {Macro10}
* @param {string} sOperands
*/
defBLOCK(sOperands)
{
var w = this.parseExpression(sOperands);
if (w !== undefined && this.dbg.sUndefined == null && w >= 0 && w <= 0o777777) {
this.nLocation += w; // while (w--) this.genWord(0);
} else {
this.error("unrecognized BLOCK expression '" + sOperands + "'");
}
}
/**
@ -1540,7 +1620,7 @@ class Macro10 {
} else {
this.addrStart = this.parseExpression(sOperands, true);
if (this.addrStart === undefined) {
this.error("unrecognized expression: " + sOperands);
this.error("unrecognized END expression '" + sOperands + "'");
}
}
}
@ -1559,7 +1639,7 @@ class Macro10 {
if (w !== undefined) {
this.genWord(w, this.dbg.sUndefined);
} else {
this.error("unrecognized expression: " + sOperands);
this.error("unrecognized EXP expression '" + sOperands + "'");
}
}
@ -1602,23 +1682,14 @@ class Macro10 {
*/
defWord(sOperator, sSeparator, sOperands)
{
var w = -1;
var sExp = (sOperator + sSeparator + sOperands).trim();
if (sOperands.indexOf(",,") < 0) {
var nLocation = this.nLocationScope >= 0? this.nLocationScope : this.nLocation;
w = this.dbg.parseInstruction(sOperator, sOperands, nLocation, true);
}
if (w < 0) {
w = this.parseExpression(sExp, true);
}
var w = this.parseExpression(sExp, true);
if (w !== undefined) {
this.genWord(w, this.dbg.sUndefined);
} else {
this.error("unrecognized expression: " + sExp);
this.error("unrecognized word expression '" + sExp + "'");
}
}
@ -1698,6 +1769,31 @@ class Macro10 {
return w;
}
/**
* error(sError, nLine)
*
* @this {Macro10}
* @param {string} sError
* @param {number} [nLine]
* @throws {Error}
*/
error(sError, nLine)
{
throw new Error("error in " + this.getLineRef(nLine) + ": " + sError);
}
/**
* warning(sWarning, nLine)
*
* @this {Macro10}
* @param {string} sWarning
* @param {number} [nLine]
*/
warning(sWarning, nLine)
{
this.println("warning in " + this.getLineRef(nLine) + ": " + sWarning);
}
/**
* println(s)
*
@ -1723,6 +1819,7 @@ Macro10.SYMTYPE = {
Macro10.PSEUDO_OP = {
ASCII: "ASCII",
ASCIZ: "ASCIZ",
BLOCK: "BLOCK",
DEFINE: "DEFINE",
END: "END",
EXP: "EXP",
@ -1731,10 +1828,11 @@ Macro10.PSEUDO_OP = {
IFG: "IFG",
IFL: "IFL",
IFN: "IFN",
IFNDEF: "IFNDEF",
IRP: "IRP",
IRPC: "IRPC",
LALL: "LALL",
LITERAL: "LITERAL", // this is a pseudo-pseudo-op, used for internal purposes
LITERAL: "LITERAL", // this is a pseudo-pseudo-op, for internal use only
LIST: "LIST",
LOC: "LOC",
NOSYM: "NOSYM",

View file

@ -151,9 +151,9 @@ class Debugger extends Component
/*
* aVariables is an object with properties that grow as setVariable() assigns more variables;
* each property corresponds to one variable, where the property name is the variable name (ie,
* a string beginning with a letter or underscore, followed by zero or more additional letters,
* digits, or underscores) and the property value is the variable's numeric value. See doVar()
* and setVariable() for details.
* a string beginning with a non-digit, followed by zero or more symbol characters and/or digits)
* and the property value is the variable's numeric value. See doVar() and setVariable() for
* details.
*
* Note that parseValue() parses variables before numbers, so any variable that looks like a
* unprefixed hex value (eg, "a5" as opposed to "0xa5") will trump the numeric value. Unprefixed
@ -1019,7 +1019,20 @@ class Debugger extends Component
value = this.getRegValue(iReg);
} else {
value = this.getVariable(sValue);
if (value == null) {
if (value != null) {
var sUndefined = this.getVariableFixup(sValue);
if (sUndefined) {
if (!this.sUndefined) {
this.sUndefined = sUndefined;
} else {
if (!fQuiet) {
this.println(sValue + " has too many undefined values (" + sUndefined + ',' + this.sUndefined + ")");
fQuiet = true;
}
value = undefined;
}
}
} else {
/*
* A feature of MACRO-10 is that any single-digit number is automatically interpreted as base-10.
*/
@ -1119,11 +1132,11 @@ class Debugger extends Component
printVariable(sVar)
{
if (sVar) {
return this.printValue(sVar, this.aVariables[sVar]);
return this.printValue(sVar, this.aVariables[sVar].value);
}
var cVariables = 0;
for (sVar in this.aVariables) {
this.printValue(sVar, this.aVariables[sVar]);
this.printValue(sVar, this.aVariables[sVar].value);
cVariables++;
}
return cVariables > 0;
@ -1149,7 +1162,19 @@ class Debugger extends Component
*/
getVariable(sVar)
{
return this.aVariables[sVar];
return this.aVariables[sVar] && this.aVariables[sVar].value;
}
/**
* getVariableFixup(sVar)
*
* @this {Debugger}
* @param {string} sVar
* @return {string|undefined}
*/
getVariableFixup(sVar)
{
return this.aVariables[sVar] && this.aVariables[sVar].sUndefined;
}
/**
@ -1165,15 +1190,16 @@ class Debugger extends Component
}
/**
* setVariable(sVar, value)
* setVariable(sVar, value, sUndefined)
*
* @this {Debugger}
* @param {string} sVar
* @param {number} value
* @param {string|null} [sUndefined]
*/
setVariable(sVar, value)
setVariable(sVar, value, sUndefined)
{
this.aVariables[sVar] = value;
this.aVariables[sVar] = {value, sUndefined};
}
/**

View file

@ -32,8 +32,8 @@
var l;function aa(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}
for(var ca="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},da="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,ea=["Math","trunc"],fa=0;fa<ea.length-1;fa++){var ga=ea[fa];ga in da||(da[ga]={});da=da[ga]}
var ha=ea[ea.length-1],ia=da[ha],ka=ia?ia:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b};ka!=ia&&null!=ka&&ca(da,ha,{configurable:!0,writable:!0,value:ka});
var m={Be:0,Ee:1,Fe:2,Ge:3,He:4,Ie:5,Je:6,Ke:7,Le:8,Me:9,Ne:10,Oe:11,Pe:12,Qe:13,Re:14,Se:15,Te:16,Ue:17,Ve:18,We:19,Xe:20,Ye:21,Ze:22,$e:23,af:24,bf:25,cf: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,ab:65,Ub:66,Vb:67,Fb:68,E:69,Yb:70,Zb:71,$b:72,ac:73,bc:74,cc:75,Hb:76,gc:77,hc:78,lc:79,mc:80,Q:81,nc:82,pc:83,qc:84,rc:85,tc:86,uc:87,
wc:88,xc:89,wb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,yc:97,ud:98,xd:99,d:100,e:101,Bd:102,Dd:103,Ed:104,Fd:105,Od:106,k:107,Pd:108,Rd:109,n:110,Sd:111,p:112,q:113,r:114,oe:115,t:116,pe:117,qe:118,re:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,df:127},la={59:186,61:187,173:189,224:91};
var m={Ce:0,Fe:1,Ge:2,He:3,Ie:4,Je:5,Ke:6,Le:7,Me:8,Ne:9,Oe:10,Pe:11,Qe:12,Re:13,Se:14,Te:15,Ue:16,Ve:17,We:18,Xe:19,Ye:20,Ze:21,$e:22,af:23,bf:24,cf:25,df: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,bb:65,Vb:66,Wb:67,Gb:68,E:69,Zb:70,$b:71,ac:72,bc:73,cc:74,dc:75,Ib:76,hc:77,ic:78,mc:79,nc:80,Q:81,oc:82,qc:83,rc:84,sc:85,uc:86,vc:87,
xc:88,yc:89,xb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,zc:97,vd:98,yd:99,d:100,e:101,Cd:102,Ed:103,Fd:104,Gd:105,Pd:106,k:107,Qd:108,Sd:109,n:110,Td:111,p:112,q:113,r:114,pe:115,t:116,qe:117,re:118,se:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,ef:127},la={59:186,61:187,173:189,224:91};
function ma(a,b){var c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=
e[1],d=35-((e[2]||35)&255);e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return c}
function oa(a,b,c,d,e){e=void 0===e?0:e;var f="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));for(var g=e||-1;0<c--;){g||(f=","+f,g=e);if(null==a)f="?"+f;else{var h=a%b,h=h+(0<=h&&9>=h?48:55),f=String.fromCharCode(h)+f;a=Math.trunc(a/b)}g--}return(void 0===d?"":d)+f}function n(a,b,c){b?9<b&&(b=9):(b=Math.abs(a),b=65535>=b?4:4294967295>=b?8:9);return oa(a,16,b,c?"0x":"")}function pa(a){return n(a,2,!0)}
@ -43,22 +43,22 @@ function Ca(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a
function Ea(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 Fa(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var k="",p;for(p in b)b.hasOwnProperty(p)&&(k&&(k+="&"),k+=p+"="+encodeURIComponent(b[p]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Ga(a,b){var c,d={la:null,ra:null,Qa:null,Ja:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Qa=g.load;d.Ja=g.exec;if(e=g.bytes)d.la=e;else if(e=g.words)for(d.la=Array(2*e.length),f=c=0;c<e.length;c++)d.la[f++]=e[c]&255,d.la[f++]=e[c]>>8&255;else if(e=g.longs)for(d.la=Array(4*e.length),f=c=0;c<e.length;c++)d.la[f++]=
e[c]&255,d.la[f++]=e[c]>>8&255,d.la[f++]=e[c]>>16&255,d.la[f++]=e[c]>>24&255;else(e=g.data)?d.Mf=e:d.la=g;d.la&&(d.la.length?1==d.la.length&&(r(d.la[0]),d=null):(r("Empty resource: "+a),d=null));d.ra=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.la=e)}return d}
function Ga(a,b){var c,d={la:null,ra:null,Ra:null,Ia:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Ra=g.load;d.Ia=g.exec;if(e=g.bytes)d.la=e;else if(e=g.words)for(d.la=Array(2*e.length),f=c=0;c<e.length;c++)d.la[f++]=e[c]&255,d.la[f++]=e[c]>>8&255;else if(e=g.longs)for(d.la=Array(4*e.length),f=c=0;c<e.length;c++)d.la[f++]=
e[c]&255,d.la[f++]=e[c]>>8&255,d.la[f++]=e[c]>>16&255,d.la[f++]=e[c]>>24&255;else(e=g.data)?d.Nf=e:d.la=g;d.la&&(d.la.length?1==d.la.length&&(r(d.la[0]),d=null):(r("Empty resource: "+a),d=null));d.ra=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.la=e)}return d}
function ta(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ha(){return window?window.navigator.userAgent:""}function Ia(){if(null==Ja){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Ja=a}return Ja}function Ka(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function La(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Oa(a){if(window){var b=Ha();return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}function Pa(a){if(!Qa){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Qa=c}return Qa[a]}
function Ra(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}function Sa(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}}function Ta(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}
function Ua(a){Va.init.push(a)}function Wa(a){if(Xa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Ya("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function bb(a){!Xa&&a?(Xa=!0,cb&&db("init"),eb&&db("show")):Xa=a}function db(a){Va[a]&&Wa(Va[a])}var Qa=null,Va={init:[],show:[],exit:[]},cb=!1,eb=!1,Xa=!0,Ja=null;Ta("onload",function(){cb=!0;Wa(Va.init)});Ta("onpageshow",function(){eb=!0;Wa(Va.show)});
Ta(Oa("Opera")||Oa("iOS")?"onunload":"onbeforeunload",function(){Wa(Va.exit)});function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.vc=b.comment;this.Ad=b;this.exports={};this.P=this.bindings={};a=this.id.indexOf(".");0>a?this.cb=this.id:(this.eb=this.id.substr(0,a),this.cb=this.id.substr(a+1));this.G={ready:!1,mb:!1,Ib:!1,ja:!1,error:!1};this.zb=null;this.G.error=!1;this.ha=c||0;this.K=this.u=this.I=this.R=this.ua=null;fb.push(this)}
Ta(Oa("Opera")||Oa("iOS")?"onunload":"onbeforeunload",function(){Wa(Va.exit)});function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.wc=b.comment;this.Bd=b;this.exports={};this.P=this.bindings={};a=this.id.indexOf(".");0>a?this.eb=this.id:(this.fb=this.id.substr(0,a),this.eb=this.id.substr(a+1));this.G={ready:!1,nb:!1,Jb:!1,ja:!1,error:!1};this.Ab=null;this.G.error=!1;this.ha=c||0;this.K=this.u=this.I=this.R=this.ua=null;fb.push(this)}
function gb(a,b,c){hb[a]&&b&&(hb[a][b]=c)}function ib(){return Date.now()||+new Date}function Ya(a,b,c){b||r((c?c+": ":"")+a)}function r(a){window&&window.alert(a)}function jb(a){var b=!1;window&&(b=window.confirm(a));return b}function kb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<fb.length;b++){var d=fb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function lb(a){if(void 0!==a){var b;for(b=0;b<fb.length;b++)if(fb[b].id===a)return fb[b]}return null}
function nb(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<fb.length;d++)if(c)c==fb[d]&&(c=null);else if(!(a!=fb[d].type||b&&fb[d].id.indexOf(b)))return fb[d]}return null}function ob(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function pb(a,b){b=qb(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pc8080-binding":(g=ob(f))&&g.binding&&a.da(g.type,g.binding,f,g.value),k=h.length}}}}
function qb(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 rb(a){for(var b=!0,c=sb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=tb.indexOf(e)&&(f=function(){return function(){rb(a)}}());var g=vb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=nb(d[1],a);if(h)if(g=wb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){r("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete sb[a];return b}l=u.prototype;
l.toString=function(){return this.name?this.name:this.id||this.type};
l.da=function(a,b,c){switch(b){case "clear":return this.P[b]||(this.P[b]=c,c.onclick=function(a){return function(){a.P.print&&(a.P.print.value="")}}(this)),!0;case "print":return this.P[b]||(this.ua=this.P[b]=c,c.value="",this.i=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.aa=function(a){this.i(a,this.cb)}),!0;default:return!1}};l.log=function(){};l.i=function(){};
l.status=function(a){this.i(this.cb+": "+a)};l.aa=function(a,b,c){Ya(a,b,c||this.type)};function xb(a,b){a.G.error=!0;a.aa(b)}function yb(a,b){b&&(a.G.ready?b():a.zb=b);return a.G.ready}function zb(a){if(!a.G.error&&(a.G.ready=!0,a.G.ready)){var b=a.zb;a.zb=null;b&&b()}}function Ab(a,b){a.G.mb&&(b?a.G.Ib=!0:void 0===b&&a.i(a.toString()+" busy"));return a.G.mb}function Bb(a,b){if(a.G.Ib)return a.G.mb=!1,a.G.Ib=!1;if(a.G.error)return a.i(a.toString()+" error"),!1;a.G.mb=b;return a.G.mb}
l.wa=function(){return this.G.ja=!0};l.va=function(a,b){b&&(this.G.ja=!1);return!0};function Cb(a,b){if(a.K){a===a.K?b|=0:b=b||a.ha;var c=a.K.ha&b;return!!b&&c===b||!!(c&a.K.wd)}return!1}function Db(a,b){a.K&&Cb(a,0)&&a.K.message(b,void 0)}function x(a,b,c,d,e,f,g){a.K&&(!0===g?g=0:null==g&&(g=a.ha),Eb(a.K,a,b,c,d,e,f,g))}
l.da=function(a,b,c){switch(b){case "clear":return this.P[b]||(this.P[b]=c,c.onclick=function(a){return function(){a.P.print&&(a.P.print.value="")}}(this)),!0;case "print":return this.P[b]||(this.ua=this.P[b]=c,c.value="",this.i=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.aa=function(a){this.i(a,this.eb)}),!0;default:return!1}};l.log=function(){};l.i=function(){};
l.status=function(a){this.i(this.eb+": "+a)};l.aa=function(a,b,c){Ya(a,b,c||this.type)};function xb(a,b){a.G.error=!0;a.aa(b)}function yb(a,b){b&&(a.G.ready?b():a.Ab=b);return a.G.ready}function zb(a){if(!a.G.error&&(a.G.ready=!0,a.G.ready)){var b=a.Ab;a.Ab=null;b&&b()}}function Ab(a,b){a.G.nb&&(b?a.G.Jb=!0:void 0===b&&a.i(a.toString()+" busy"));return a.G.nb}function Bb(a,b){if(a.G.Jb)return a.G.nb=!1,a.G.Jb=!1;if(a.G.error)return a.i(a.toString()+" error"),!1;a.G.nb=b;return a.G.nb}
l.wa=function(){return this.G.ja=!0};l.va=function(a,b){b&&(this.G.ja=!1);return!0};function Cb(a,b){if(a.K){a===a.K?b|=0:b=b||a.ha;var c=a.K.ha&b;return!!b&&c===b||!!(c&a.K.xd)}return!1}function Db(a,b){a.K&&Cb(a,0)&&a.K.message(b,void 0)}function x(a,b,c,d,e,f,g){a.K&&(!0===g?g=0:null==g&&(g=a.ha),Eb(a.K,a,b,c,d,e,f,g))}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var hb=window?window.PCjs.Machines:{},fb=window?window.PCjs.Components:[],sb=window?window.PCjs.Commands:{},tb=["hold","sleep","wait"],vb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},wb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
@ -68,38 +68,38 @@ var Fb="undefined"!==typeof ArrayBuffer,Gb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,
Ib.prototype.da=function(a,b,c,d){return this.R&&this.R.da(a,b,c,d)||this.u&&this.u.da(a,b,c,d)||this.B&&this.B.da(a,b,c,d)||this.K&&this.K.da(a,b,c,d)?!0:u.prototype.da.call(this,a,b,c,d)};Ib.prototype.Ga=function(a,b,c,d){this.R=a;this.I=b;this.u=c;this.K=d;this.B=Jb(a,"Keyboard")};Ib.prototype.wa=function(a,b){b||Kb();return!0};Ib.prototype.va=function(){return!0};
function Kb(){for(var a=!1,b=qb(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=ob(d),f=lb(e.id);f||(a=!0,f=new Ib(e));pb(f,d);a&&zb(f)}}Ua(Kb);
function Lb(a,b,c){u.call(this,"Bus",a);this.u=b;this.K=c;this.M=a.busWidth||16;this.N=Math.pow(2,this.M);this.C=this.N-1|0;this.g=(this.M>>1)+2;10>this.g&&(this.g=10);15<this.g&&(this.g=15);this.w=1<<this.g;this.O=this.w>>2;this.j=this.w-1;this.L=this.N/this.w|0;this.H=this.L-1;this.A=[];this.B=[];this.D=this.F=!1;this.S=[];this.T=[];a=new z;Mb(a,this.K);this.b=Array(this.L);for(b=0;b<this.L;b++)this.b[b]=a;zb(this)}aa(Lb,u);Lb.prototype.reset=function(){};
Lb.prototype.wa=function(a,b){b||this.reset();return!0};function Nb(a,b,c,d){for(var e=b,f=c,g=e>>>a.g;0<f&&g<a.b.length;){var h=a.b[g],k=g*a.w,p=a.w-(e-k);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.J)return h.pb+=h.J-e,h.J=e,!0;if(e>=h.J+h.pb){p=h.size-(e-k);p>f&&(p=f);h.pb=e-h.J+p;e=k+a.w;f-=p;g++;continue}}return Ob(Rb,e,f)}e=new z(e,p,a.w,d);Mb(e,a.K,h);a.b[g++]=e;e=k+a.w;f-=p}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Sb[d]+" at "+q(b)),!0):Ob(Tb,b,c)}
function Ub(a,b){return a.b[(b&a.C)>>>a.g].ob(b&a.j,b)}function Vb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Hc(c,b):a.b[d++].Ya(c,b)|a.b[d&a.H].Ya(0,b+1)<<8}function Wb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Nb(c,b):a.b[d++].ob(c,b)|a.b[d&a.H].ob(0,b+1)<<8}function Xb(a,b,c){a.b[(b&a.C)>>>a.g].qb(b&a.j,c&255,b)}function Yb(a,b,c){var d=b&a.j,e=(b&a.C)>>>a.g;d!=a.j?a.b[e].Kc(d,c&65535,b):(a.b[e++].$a(d,c&255,b),a.b[e&a.H].$a(0,c>>8&255,b+1))}
function Zb(a){for(var b=0,c=[],d=0;d<a.L;d++){var e=a.b[d];if(e.Ea||e.Dc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var p=e[g],t=g+1;t<e.length&&e[t]===p;)t++;k[h++]=t-g;k[h++]=p;g=t}k.length<e.length&&(e=k)}c[f]=e}}return c}function $b(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]}
Lb.prototype.wa=function(a,b){b||this.reset();return!0};function Nb(a,b,c,d){for(var e=b,f=c,g=e>>>a.g;0<f&&g<a.b.length;){var h=a.b[g],k=g*a.w,p=a.w-(e-k);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.J)return h.qb+=h.J-e,h.J=e,!0;if(e>=h.J+h.qb){p=h.size-(e-k);p>f&&(p=f);h.qb=e-h.J+p;e=k+a.w;f-=p;g++;continue}}return Ob(Rb,e,f)}e=new z(e,p,a.w,d);Mb(e,a.K,h);a.b[g++]=e;e=k+a.w;f-=p}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Sb[d]+" at "+q(b)),!0):Ob(Tb,b,c)}
function Ub(a,b){return a.b[(b&a.C)>>>a.g].pb(b&a.j,b)}function Vb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Ic(c,b):a.b[d++].Za(c,b)|a.b[d&a.H].Za(0,b+1)<<8}function Wb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Ob(c,b):a.b[d++].pb(c,b)|a.b[d&a.H].pb(0,b+1)<<8}function Xb(a,b,c){a.b[(b&a.C)>>>a.g].rb(b&a.j,c&255,b)}function Yb(a,b,c){var d=b&a.j,e=(b&a.C)>>>a.g;d!=a.j?a.b[e].Lc(d,c&65535,b):(a.b[e++].ab(d,c&255,b),a.b[e&a.H].ab(0,c>>8&255,b+1))}
function Zb(a){for(var b=0,c=[],d=0;d<a.L;d++){var e=a.b[d];if(e.Ea||e.Ec){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var p=e[g],t=g+1;t<e.length&&e[t]===p;)t++;k[h++]=t-g;k[h++]=p;g=t}k.length<e.length&&(e=k)}c[f]=e}}return c}function $b(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]}
function ac(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var k=+e+d;k<=g;k++)void 0!==f.A[k]?r("Input port "+q(k)+" already registered"):f.A[k]=[h,!1]}}function bc(a,b,c){for(var d=1,e=0,f=0;0<d;){var g=a.A[b],h=a.S[b]||1,k=1==h?255:2==h?65535:-1,p=k;void 0!==g?(g[0]&&(p=g[0](b,c),void 0===p?p=k:p&=k),a.K&&a.D!=g[1]&&cc(a.K,b,p)):a.K&&(Eb(a.K,a,b,null,c),a.D&&cc(a.K,b,p));e|=p<<f;f+=h<<3;b+=h;d-=h}return e}
function dc(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}function ec(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var k=+e+d;k<=g;k++)void 0!==f.B[k]?r("Output port "+q(k)+" already registered"):f.B[k]=[h,!1]}}
function fc(a,b,c,d){for(var e=1,f=0;0<e;){var g=a.B[b],h=a.T[b]||1,k=1==h?255:2==h?65535:-1,k=(c>>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,d);a.K&&a.F!=g[1]&&gc(a.K,b,k)}else a.K&&(Eb(a.K,a,b,k,d),a.F&&gc(a.K,b,k));f+=h<<3;b+=h;e-=h}}function Ob(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Rb=1,Tb=2,ic;if(Fb){var jc=new ArrayBuffer(2);(new DataView(jc)).setUint16(0,256,!0);ic=256===(new Uint16Array(jc))[0]}else ic=!1;var kc=ic;
function z(a,b,c,d){this.id=lc+=2;this.b=null;this.J=a;this.pb=b;this.size=c||0;this.type=d||vc;this.u=d==wc;Mb(this);this.Ea=this.Dc=!1;if(c)if(Fb)this.j=new ArrayBuffer(c),this.R=new DataView(this.j,0,c),this.g=new Uint8Array(this.j,0,c),this.w=new Uint16Array(this.j,0,c>>1),this.b=new Int32Array(this.j,0,c>>2),xc(this,kc?yc:zc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;xc(this,Ac)}else xc(this)}l=z.prototype;
l.save=function(){var a,b;if(Fb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.R.getInt32(b<<2,!0);else a=this.b;return a};l.restore=function(a){if(a&&this.size==a.length<<2){var b;if(Fb)for(b=0;b<a.length;b++)this.R.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ea=!0}return!1};function xc(a,b){b||(b=Bc);Cc(a,b,void 0);Dc(a,b,void 0)}function Cc(a,b,c){c&&a.I||(a.Ya=b[0]||a.Gc,a.Hc=b[2]||a.Ic);if(c||void 0===c)a.ob=b[0]||a.Gc,a.Nb=b[2]||a.Ic}
function Dc(a,b,c){c&&a.P||(a.$a=!a.u&&b[1]||a.rb,a.Kc=!a.u&&b[3]||a.Rb);if(c||void 0===c)a.qb=b[1]||a.rb,a.Sb=b[3]||a.Rb}l.Pa=function(a,b){b?this.P++||Dc(this,Ec,!1):this.I++||Cc(this,Ec,!1)};function Fc(a,b){b?--a.P||(a.$a=a.u?a.rb:a.qb,a.Kc=a.u?a.Rb:a.Sb):--a.I||(a.Ya=a.ob,a.Hc=a.Nb)}function Mb(a,b,c){a.K=b;a.I=a.P=0;c&&((a.I=c.I)&&Cc(a,Ec,!1),(a.P=c.P)&&Dc(a,Ec,!1))}l.Gc=function(){this.K&&Cb(this.K,129)&&this.K.message("attempt to read invalid block %"+n(this.J),!0);return 255};
l.rb=function(a,b){this.K&&Cb(this.K,129)&&this.K.message("attempt to write "+q(b)+" to invalid block %"+n(this.J),!0)};l.Ic=function(a,b){return this.Ya(a++,b++)|this.Ya(a,b)<<8};l.Rb=function(a,b,c){this.$a(a++,b&255,c++);this.$a(a,b>>8,c)};l.ie=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};l.me=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};l.ve=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ea=!0};
l.ze=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ea=!0};l.ge=function(a,b){if(this.K&&null!=this.J){var c=this.K;Gc(c,this.J+a,1,c.L)&&c.ea(!0)}return this.ob(a,b)};l.ke=function(a,b){if(this.K&&null!=this.J){var c=this.K;Gc(c,this.J+a,2,c.L)&&c.ea(!0)}return this.Nb(a,b)};
l.te=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Gc(d,this.J+a,1,d.A)&&d.ea(!0)}this.u?this.rb(0,b):this.qb(a,b,c)};l.xe=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Gc(d,this.J+a,2,d.A)&&d.ea(!0)}this.u?this.rb(0,b):this.Sb(a,b,c)};l.fe=function(a){return this.g[a]};l.he=function(a){return this.g[a]};l.je=function(a){return this.R.getUint16(a,!0)};l.le=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.w[a>>1]};l.se=function(a,b){this.g[a]=b;this.Ea=!0};
l.ue=function(a,b){this.g[a]=b;this.Ea=!0};l.we=function(a,b){this.R.setUint16(a,b,!0);this.Ea=!0};l.ye=function(a,b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.w[a>>1]=b;this.Ea=!0};var vc=0,wc=2,Sb=["NONE","RAM","ROM","VID","H/W"],lc=0,Bc=[],Ac=[z.prototype.ie,z.prototype.ve,z.prototype.me,z.prototype.ze],Ec=[z.prototype.ge,z.prototype.te,z.prototype.ke,z.prototype.xe];if(Fb)var zc=[z.prototype.fe,z.prototype.se,z.prototype.je,z.prototype.we],yc=[z.prototype.he,z.prototype.ue,z.prototype.le,z.prototype.ye];
function Hc(a,b){u.call(this,"CPU",a,1);var c=a.multiplier||1;this.Aa=a.cycles||b;this.U=c;this.Ta=Math.round(this.Aa/1E4)/100;this.Z=this.Ta*this.U;this.G.ma=!1;this.G.Qb=!1;this.G.lb=a.autoStart;this.G.Bc=!1;this.G.Wa=!1;this.xa=this.oa=0;this.ya=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Db=this.tb.bind(this);zb(this)}aa(Hc,u);l=Hc.prototype;
l.Ga=function(a,b,c,d){this.R=a;this.I=b;this.K=d;for(b=0;b<Ic.length;b++)(c=this.P[Ic[b]])&&this.R.da(null,Ic[b],c);this.V=Jb(a,"ChipSet");a=Jc(a,"autoStart");null!=a&&(this.G.lb="true"==a?!0:"false"==a?!1:!!a);zb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.wa=function(a,b){if(!b){if(a&&this.restore){Kc(this);if(!this.restore(a))return!1;Lc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),Mc(a),a.na&&(b=a.na,a.na=null,Nc(a,b))):this.i("No debugger detected")}Oc(this);return!0};l.va=function(a){return a?this.save():!0};l.lb=function(){return this.G.lb||!this.K&&void 0===this.P.run?(this.tb(),!0):!1};l.Ec=function(){return 0};
function Lc(a){void 0===a.ya&&(a.ya=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.G.Wa=0<=a.ya&&0<a.na;a.G.Wa&&(a.xa=0,a.oa=a.ya-a.ka)}function Pc(a,b){if(a.G.Wa){var c=!1;a.xa=a.xa+a.Ec()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Qc(a)&&(a.na=a.sa=-1,Lc(a),a.ea(),c=!0);c&&a.i(Qc(a)+" cycles: checksum="+n(a.xa))}}
l.da=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.P[b]=c;a=!0;break;case "run":this.P[b]=c;c.onclick=function(){var a;if(a=d.R)if(a=d.R,a.G.ja)a=!0;else{var b=null,c,h=kb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.G.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.G.ja);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.G.ready?"powered yet":"ready yet"+(b.zb?" (waiting for notification)":""))+".");a=!1}a&&(d.G.ma?d.ea():d.tb())};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Rc(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Sc(a,b,c){a.ka+=b;c&&(a.fa=a.b=0)}function Tc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Ta);a.jb=Math.round(1E3/Uc);a.Na=Math.floor(a.Aa/Uc*c);b||(a.ta=a.Na);a.Va=0}function Qc(a){return a.ka+a.X+a.fa-a.b}function Kc(a){a.Y=0;a.kb=0;a.ka=a.X=a.fa=a.b=0;Lc(a);Rc(a,1)}
function Rc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Ta*a.U;if(a.Z!=b){a.Z=b;b=a.Z.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.R&&a.R.Za()}Sc(a,a.X);a.X=0;a.W=ib();a.ba=0;Tc(a);return d}function Vc(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function Wc(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c*=a.Aa*a.U/1E3,a.T[b][0]=c+Xc(a))}function Xc(a,b){var c=a.fa-=a.b;a.b=0;b&&(a.fa=0);return c}
l.tb=function(a){if(Bb(this,!0)){if(!this.G.ma){Rc(this);this.R&&this.R.start(this.W,Qc(this));this.G.ma=!0;this.G.Qb=!0;this.V&&this.V.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(Yc(this.R,!0),a&&this.R.Za(!0))}this.Va>=this.Aa&&Tc(this,!0);this.Da=0;this.Ma=ib();this.ba&&(a=this.Ma-this.ba,a>this.jb&&(this.W+=a,this.W>this.Ma&&(this.W=this.Ma)));try{do{for(var c,d=this.G.Wa?1:this.Na,e=this.T.length-1;0<=e;e--){var f=this.T[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Eb(c);c=Xc(this,!0);
this.Da+=c;this.X+=c;Pc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ta-=c;if(0>=this.ta){this.ta+=this.Na;++this.kb>=Zc&&(this.R&&Yc(this.R),this.kb=0);break}}while(this.G.ma)}catch(k){this.ea();Oc(this);this.R&&this.R.stop(ib(),Qc(this));Bb(this,!1);xb(this,k.stack||k.message);return}c=setTimeout;d=this.Db;this.ba=ib();e=this.jb;this.Da&&(e=Math.round(e*this.Da/this.Na));e-=this.ba-this.Ma;if(f=this.ba-this.W)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.ka=0,Rc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.W-=e),e=0;this.Va+=this.Da;this.ba+=e;c(d,e)}else Oc(this),this.R&&this.R.stop(ib(),Qc(this))};l.Eb=function(){return 0};l.ea=function(a){Ab(this,!0);Xc(this);Sc(this,this.X);this.X=0;if(this.G.ma){this.G.ma=!1;this.V&&this.V.stop();var b=this.P.run;b&&(b.textContent="Run")}this.G.complete=a};function Oc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)$c(c.A[d],b);Yc(a.R,b)}}var Uc=30,Zc=15,Ic=["power","reset"];
function ad(a){var b=+a.model||8080;Hc.call(this,a,1E6);this.xb=b;this.gb=bd;Kc(this);this.G.complete=this.G.zd=!1;this.ib=0;this.Ha=[];this.hb=0;od(this)}aa(ad,Hc);function pd(a,b){a.Ha.push(b)}l=ad.prototype;l.reset=function(){this.G.ma&&this.ea();od(this);Kc(this);this.G.error=!1;Hc.prototype.reset.call(this)};function od(a){a.g=0;a.w=0;a.A=0;a.B=0;a.C=0;a.D=0;a.F=0;a.M=0;A(a,a.hb);qd(a,0);a.S=0}function rd(a,b){a.hb=b;A(a,b)}
l.Ec=function(){var a=this.g+this.w+this.A+this.B+this.C+this.D+this.F|0;return a=a+this.M+this.j+sd(this)|0};l.save=function(){var a=new td(this);a.set(0,[this.g,this.w,this.A,this.B,this.C,this.D,this.F,this.M,this.j,sd(this)]);a.set(1,[this.S,this.ka,this.U]);a.set(2,Zb(this.I));return a.data()};
function z(a,b,c,d){this.id=lc+=2;this.b=null;this.J=a;this.qb=b;this.size=c||0;this.type=d||vc;this.u=d==wc;Mb(this);this.Ea=this.Ec=!1;if(c)if(Fb)this.j=new ArrayBuffer(c),this.R=new DataView(this.j,0,c),this.g=new Uint8Array(this.j,0,c),this.w=new Uint16Array(this.j,0,c>>1),this.b=new Int32Array(this.j,0,c>>2),xc(this,kc?yc:zc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;xc(this,Ac)}else xc(this)}l=z.prototype;
l.save=function(){var a,b;if(Fb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.R.getInt32(b<<2,!0);else a=this.b;return a};l.restore=function(a){if(a&&this.size==a.length<<2){var b;if(Fb)for(b=0;b<a.length;b++)this.R.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ea=!0}return!1};function xc(a,b){b||(b=Bc);Cc(a,b,void 0);Dc(a,b,void 0)}function Cc(a,b,c){c&&a.I||(a.Za=b[0]||a.Hc,a.Ic=b[2]||a.Jc);if(c||void 0===c)a.pb=b[0]||a.Hc,a.Ob=b[2]||a.Jc}
function Dc(a,b,c){c&&a.P||(a.ab=!a.u&&b[1]||a.sb,a.Lc=!a.u&&b[3]||a.Sb);if(c||void 0===c)a.rb=b[1]||a.sb,a.Tb=b[3]||a.Sb}l.Qa=function(a,b){b?this.P++||Dc(this,Ec,!1):this.I++||Cc(this,Ec,!1)};function Fc(a,b){b?--a.P||(a.ab=a.u?a.sb:a.rb,a.Lc=a.u?a.Sb:a.Tb):--a.I||(a.Za=a.pb,a.Ic=a.Ob)}function Mb(a,b,c){a.K=b;a.I=a.P=0;c&&((a.I=c.I)&&Cc(a,Ec,!1),(a.P=c.P)&&Dc(a,Ec,!1))}l.Hc=function(){this.K&&Cb(this.K,129)&&this.K.message("attempt to read invalid block %"+n(this.J),!0);return 255};
l.sb=function(a,b){this.K&&Cb(this.K,129)&&this.K.message("attempt to write "+q(b)+" to invalid block %"+n(this.J),!0)};l.Jc=function(a,b){return this.Za(a++,b++)|this.Za(a,b)<<8};l.Sb=function(a,b,c){this.ab(a++,b&255,c++);this.ab(a,b>>8,c)};l.je=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};l.ne=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};l.we=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ea=!0};
l.Ae=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ea=!0};l.he=function(a,b){if(this.K&&null!=this.J){var c=this.K;Gc(c,this.J+a,1,c.L)&&c.ea(!0)}return this.pb(a,b)};l.le=function(a,b){if(this.K&&null!=this.J){var c=this.K;Gc(c,this.J+a,2,c.L)&&c.ea(!0)}return this.Ob(a,b)};
l.ue=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Gc(d,this.J+a,1,d.A)&&d.ea(!0)}this.u?this.sb(0,b):this.rb(a,b,c)};l.ye=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Gc(d,this.J+a,2,d.A)&&d.ea(!0)}this.u?this.sb(0,b):this.Tb(a,b,c)};l.ge=function(a){return this.g[a]};l.ie=function(a){return this.g[a]};l.ke=function(a){return this.R.getUint16(a,!0)};l.me=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.w[a>>1]};l.te=function(a,b){this.g[a]=b;this.Ea=!0};
l.ve=function(a,b){this.g[a]=b;this.Ea=!0};l.xe=function(a,b){this.R.setUint16(a,b,!0);this.Ea=!0};l.ze=function(a,b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.w[a>>1]=b;this.Ea=!0};var vc=0,wc=2,Sb=["NONE","RAM","ROM","VID","H/W"],lc=0,Bc=[],Ac=[z.prototype.je,z.prototype.we,z.prototype.ne,z.prototype.Ae],Ec=[z.prototype.he,z.prototype.ue,z.prototype.le,z.prototype.ye];if(Fb)var zc=[z.prototype.ge,z.prototype.te,z.prototype.ke,z.prototype.xe],yc=[z.prototype.ie,z.prototype.ve,z.prototype.me,z.prototype.ze];
function Hc(a,b){u.call(this,"CPU",a,1);var c=a.multiplier||1;this.Aa=a.cycles||b;this.U=c;this.Ua=Math.round(this.Aa/1E4)/100;this.Z=this.Ua*this.U;this.G.ma=!1;this.G.Rb=!1;this.G.mb=a.autoStart;this.G.Cc=!1;this.G.Xa=!1;this.xa=this.oa=0;this.za=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Eb=this.ub.bind(this);zb(this)}aa(Hc,u);l=Hc.prototype;
l.Ga=function(a,b,c,d){this.R=a;this.I=b;this.K=d;for(b=0;b<Ic.length;b++)(c=this.P[Ic[b]])&&this.R.da(null,Ic[b],c);this.V=Jb(a,"ChipSet");a=Jc(a,"autoStart");null!=a&&(this.G.mb="true"==a?!0:"false"==a?!1:!!a);zb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.wa=function(a,b){if(!b){if(a&&this.restore){Kc(this);if(!this.restore(a))return!1;Lc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),Mc(a),a.na&&(b=a.na,a.na=null,Nc(a,b))):this.i("No debugger detected")}Oc(this);return!0};l.va=function(a){return a?this.save():!0};l.mb=function(){return this.G.mb||!this.K&&void 0===this.P.run?(this.ub(),!0):!1};l.Fc=function(){return 0};
function Lc(a){void 0===a.za&&(a.za=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.G.Xa=0<=a.za&&0<a.na;a.G.Xa&&(a.xa=0,a.oa=a.za-a.ka)}function Pc(a,b){if(a.G.Xa){var c=!1;a.xa=a.xa+a.Fc()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Qc(a)&&(a.na=a.sa=-1,Lc(a),a.ea(),c=!0);c&&a.i(Qc(a)+" cycles: checksum="+n(a.xa))}}
l.da=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.P[b]=c;a=!0;break;case "run":this.P[b]=c;c.onclick=function(){var a;if(a=d.R)if(a=d.R,a.G.ja)a=!0;else{var b=null,c,h=kb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.G.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.G.ja);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.G.ready?"powered yet":"ready yet"+(b.Ab?" (waiting for notification)":""))+".");a=!1}a&&(d.G.ma?d.ea():d.ub())};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Rc(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Sc(a,b,c){a.ka+=b;c&&(a.fa=a.b=0)}function Tc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Ua);a.kb=Math.round(1E3/Uc);a.Oa=Math.floor(a.Aa/Uc*c);b||(a.ta=a.Oa);a.Wa=0}function Qc(a){return a.ka+a.X+a.fa-a.b}function Kc(a){a.Y=0;a.lb=0;a.ka=a.X=a.fa=a.b=0;Lc(a);Rc(a,1)}
function Rc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Ua*a.U;if(a.Z!=b){a.Z=b;b=a.Z.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.R&&a.R.$a()}Sc(a,a.X);a.X=0;a.W=ib();a.ba=0;Tc(a);return d}function Vc(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function Wc(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c*=a.Aa*a.U/1E3,a.T[b][0]=c+Xc(a))}function Xc(a,b){var c=a.fa-=a.b;a.b=0;b&&(a.fa=0);return c}
l.ub=function(a){if(Bb(this,!0)){if(!this.G.ma){Rc(this);this.R&&this.R.start(this.W,Qc(this));this.G.ma=!0;this.G.Rb=!0;this.V&&this.V.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(Yc(this.R,!0),a&&this.R.$a(!0))}this.Wa>=this.Aa&&Tc(this,!0);this.Da=0;this.Na=ib();this.ba&&(a=this.Na-this.ba,a>this.kb&&(this.W+=a,this.W>this.Na&&(this.W=this.Na)));try{do{for(var c,d=this.G.Xa?1:this.Oa,e=this.T.length-1;0<=e;e--){var f=this.T[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Fb(c);c=Xc(this,!0);
this.Da+=c;this.X+=c;Pc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ta-=c;if(0>=this.ta){this.ta+=this.Oa;++this.lb>=Zc&&(this.R&&Yc(this.R),this.lb=0);break}}while(this.G.ma)}catch(k){this.ea();Oc(this);this.R&&this.R.stop(ib(),Qc(this));Bb(this,!1);xb(this,k.stack||k.message);return}c=setTimeout;d=this.Eb;this.ba=ib();e=this.kb;this.Da&&(e=Math.round(e*this.Da/this.Oa));e-=this.ba-this.Na;if(f=this.ba-this.W)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.ka=0,Rc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.W-=e),e=0;this.Wa+=this.Da;this.ba+=e;c(d,e)}else Oc(this),this.R&&this.R.stop(ib(),Qc(this))};l.Fb=function(){return 0};l.ea=function(a){Ab(this,!0);Xc(this);Sc(this,this.X);this.X=0;if(this.G.ma){this.G.ma=!1;this.V&&this.V.stop();var b=this.P.run;b&&(b.textContent="Run")}this.G.complete=a};function Oc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)$c(c.A[d],b);Yc(a.R,b)}}var Uc=30,Zc=15,Ic=["power","reset"];
function ad(a){var b=+a.model||8080;Hc.call(this,a,1E6);this.yb=b;this.hb=bd;Kc(this);this.G.complete=this.G.Ad=!1;this.jb=0;this.Ma=[];this.ib=0;od(this)}aa(ad,Hc);function pd(a,b){a.Ma.push(b)}l=ad.prototype;l.reset=function(){this.G.ma&&this.ea();od(this);Kc(this);this.G.error=!1;Hc.prototype.reset.call(this)};function od(a){a.g=0;a.w=0;a.A=0;a.B=0;a.C=0;a.D=0;a.F=0;a.M=0;A(a,a.ib);qd(a,0);a.S=0}function rd(a,b){a.ib=b;A(a,b)}
l.Fc=function(){var a=this.g+this.w+this.A+this.B+this.C+this.D+this.F|0;return a=a+this.M+this.j+sd(this)|0};l.save=function(){var a=new td(this);a.set(0,[this.g,this.w,this.A,this.B,this.C,this.D,this.F,this.M,this.j,sd(this)]);a.set(1,[this.S,this.ka,this.U]);a.set(2,Zb(this.I));return a.data()};
l.restore=function(a){var b=a[0];this.g=b[0];this.w=b[1];this.A=b[2];this.B=b[3];this.C=b[4];this.D=b[5];this.F=b[6];this.M=b[7]&65535;A(this,b[8]);qd(this,b[9]);b=a[1];this.S=b[0];this.ka=b[1];Rc(this,b[3]);a:{b=this.I;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.O){for(var f=0,g=Array(b.O),h=0;h<e.length-1;)for(var k=e[h++],p=e[h++];k--;)g[f++]=p;e=g}f=b.b[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.da=function(a,b,c){switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.P[b]=c;this.ib++;a=!0;break;default:a=Hc.prototype.da.call(this,a,b,c)}return a};function ud(a){return a.w<<8|a.A}function vd(a,b){a.w=b>>8&255;a.A=b&255}function wd(a){return a.B<<8|a.C}function xd(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.D<<8|a.F}
l.da=function(a,b,c){switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.P[b]=c;this.jb++;a=!0;break;default:a=Hc.prototype.da.call(this,a,b,c)}return a};function ud(a){return a.w<<8|a.A}function vd(a,b){a.w=b>>8&255;a.A=b&255}function wd(a){return a.B<<8|a.C}function xd(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.D<<8|a.F}
function yd(a,b){a.D=b>>8&255;a.F=b&255}function A(a,b){a.j=b&65535}function zd(a){return a.H&256?1:0}function Ad(a,b){a.H=a.H&255|b}function Bd(a){return Gb[a.L&255]?4:0}function Cd(a){return(a.L^a.O)&16?16:0}function Dd(a){return a.H&255?0:64}function Ed(a){return a.L&128?128:0}function sd(a){return a.N&-214|Ed(a)|Dd(a)|Cd(a)|Bd(a)|zd(a)}function qd(a,b){a.H=a.L=a.O=0;b&1&&(a.H|=256);b&4||(a.L|=1);b&16&&(a.O|=16);b&64||(a.H|=255);b&128&&(a.L^=192);a.N=a.N&-726|b&512|2}
function Fd(a,b){a.O=a.g^b;return a.L=(a.H=a.g+b)&255}function Gd(a,b){a.O=a.g^b;return a.L=(a.H=a.g+b+(a.H&256?1:0))&255}function Hd(a,b){a.H=a.L=a.O=a.g&b;(a.g|b)&8&&(a.O^=16);return a.H}function Id(a,b){a.O=b^255;b=a.L=b+255&255;a.H=a.H&-256|b;return b}function Jd(a,b){a.O=b;b=a.L=b+1&255;a.H=a.H&-256|b;return b}function Kd(a,b){return a.L=a.H=a.O=a.g|b}function Ld(a,b){b^=255;a.O=a.g^b;return a.L=(a.H=a.g+b+1^256)&255}
function Md(a,b){b^=255;a.O=a.g^b;return a.L=(a.H=a.g+b+(a.H&256?0:1)^256)&255}function Nd(a,b){return a.L=a.H=a.O=a.g^b}function E(a,b){a=a.I;return a.b[(b&a.C)>>>a.g].Ya(b&a.j,b)}function Od(a,b,c){a=a.I;a.b[(b&a.C)>>>a.g].$a(b&a.j,c&255,b)}function F(a){var b=E(a,a.j);A(a,a.j+1);return b}function G(a){var b=Vb(a.I,a.j);A(a,a.j+2);return b}function Pd(a){var b=Vb(a.I,a.M);a.M=a.M+2&65535;return b}function H(a,b){a.M=a.M-2&65535;Yb(a.I,a.M,b)}
function Qd(a){if(a.b&&a.S&255&&a.N&512){for(var b=0;8>b&&!(a.S&1<<b);b++);a.S&=~(0>b?255:1<<b);a.N&=-513;a.S&=-257;a.gb[199|b<<3].call(a)}return a.S&256?(Xc(a),!1):!0}function Rd(a,b){a.S|=1<<b;a.N&512&&Xc(a)}function I(a,b,c,d){d=d||2;a.P[b]&&(void 0===c&&(xb(a,"Value for "+b+" is invalid"),a.ea()),c=!a.G.ma||a.G.Bc?n(c,d):"--------".substr(0,d),a.P[b].textContent!=c&&(a.P[b].textContent=c))}
l.Eb=function(a){this.G.complete=!0;var b=this.G.zd=this.K&&Sd(this.K),c=a?this.G.Qb?0:1:-1;this.G.Qb=!1;this.fa=this.b=a;if(Qd(this)){do{if(b){if(Td(this.K,this.j,c)){this.ea();break}c=1}this.gb[F(this)].call(this)}while(0<this.b)}return this.G.complete?this.fa-this.b:void 0===this.G.complete?0:-1};Ua(function(){for(var a=qb(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new ad(d);pb(d,c)}});function Ud(){this.b-=4}function Vd(){A(this,G(this));this.b-=10}
function Md(a,b){b^=255;a.O=a.g^b;return a.L=(a.H=a.g+b+(a.H&256?0:1)^256)&255}function Nd(a,b){return a.L=a.H=a.O=a.g^b}function E(a,b){a=a.I;return a.b[(b&a.C)>>>a.g].Za(b&a.j,b)}function Od(a,b,c){a=a.I;a.b[(b&a.C)>>>a.g].ab(b&a.j,c&255,b)}function F(a){var b=E(a,a.j);A(a,a.j+1);return b}function G(a){var b=Vb(a.I,a.j);A(a,a.j+2);return b}function Pd(a){var b=Vb(a.I,a.M);a.M=a.M+2&65535;return b}function H(a,b){a.M=a.M-2&65535;Yb(a.I,a.M,b)}
function Qd(a){if(a.b&&a.S&255&&a.N&512){for(var b=0;8>b&&!(a.S&1<<b);b++);a.S&=~(0>b?255:1<<b);a.N&=-513;a.S&=-257;a.hb[199|b<<3].call(a)}return a.S&256?(Xc(a),!1):!0}function Rd(a,b){a.S|=1<<b;a.N&512&&Xc(a)}function I(a,b,c,d){d=d||2;a.P[b]&&(void 0===c&&(xb(a,"Value for "+b+" is invalid"),a.ea()),c=!a.G.ma||a.G.Cc?n(c,d):"--------".substr(0,d),a.P[b].textContent!=c&&(a.P[b].textContent=c))}
l.Fb=function(a){this.G.complete=!0;var b=this.G.Ad=this.K&&Sd(this.K),c=a?this.G.Rb?0:1:-1;this.G.Rb=!1;this.fa=this.b=a;if(Qd(this)){do{if(b){if(Td(this.K,this.j,c)){this.ea();break}c=1}this.hb[F(this)].call(this)}while(0<this.b)}return this.G.complete?this.fa-this.b:void 0===this.G.complete?0:-1};Ua(function(){for(var a=qb(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new ad(d);pb(d,c)}});function Ud(){this.b-=4}function Vd(){A(this,G(this));this.b-=10}
function Wd(){A(this,Pd(this));this.b-=10}function Xd(){var a=G(this);H(this,this.j);A(this,a);this.b-=17}
var bd=[Ud,function(){vd(this,G(this));this.b-=10},function(){Od(this,ud(this),this.g);this.b-=7},function(){vd(this,ud(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=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|a>>8;Ad(this,a&256);this.b-=4},Ud,function(){var a;yd(this,a=D(this)+ud(this));Ad(this,a>>8&256);this.b-=10},function(){this.g=E(this,ud(this));this.b-=7},function(){vd(this,ud(this)-1);this.b-=
5},function(){this.A=Jd(this,this.A);this.b-=5},function(){this.A=Id(this,this.A);this.b-=5},function(){this.A=F(this);this.b-=7},function(){var a=this.g<<8&256;this.g=(a|this.g)>>1;Ad(this,a);this.b-=4},Ud,function(){xd(this,G(this));this.b-=10},function(){Od(this,wd(this),this.g);this.b-=7},function(){xd(this,wd(this)+1);this.b-=5},function(){this.B=Jd(this,this.B);this.b-=5},function(){this.B=Id(this,this.B);this.b-=5},function(){this.B=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|
@ -110,7 +110,7 @@ Jd(this,this.F);this.b-=5},function(){this.F=Id(this,this.F);this.b-=5},function
5},function(){this.w=this.F;this.b-=5},function(){this.w=E(this,D(this));this.b-=7},function(){this.w=this.g;this.b-=5},function(){this.A=this.w;this.b-=5},function(){this.b-=5},function(){this.A=this.B;this.b-=5},function(){this.A=this.C;this.b-=5},function(){this.A=this.D;this.b-=5},function(){this.A=this.F;this.b-=5},function(){this.A=E(this,D(this));this.b-=7},function(){this.A=this.g;this.b-=5},function(){this.B=this.w;this.b-=5},function(){this.B=this.A;this.b-=5},function(){this.b-=5},function(){this.B=
this.C;this.b-=5},function(){this.B=this.D;this.b-=5},function(){this.B=this.F;this.b-=5},function(){this.B=E(this,D(this));this.b-=7},function(){this.B=this.g;this.b-=5},function(){this.C=this.w;this.b-=5},function(){this.C=this.A;this.b-=5},function(){this.C=this.B;this.b-=5},function(){this.b-=5},function(){this.C=this.D;this.b-=5},function(){this.C=this.F;this.b-=5},function(){this.C=E(this,D(this));this.b-=7},function(){this.C=this.g;this.b-=5},function(){this.D=this.w;this.b-=5},function(){this.D=
this.A;this.b-=5},function(){this.D=this.B;this.b-=5},function(){this.D=this.C;this.b-=5},function(){this.b-=5},function(){this.D=this.F;this.b-=5},function(){this.D=E(this,D(this));this.b-=7},function(){this.D=this.g;this.b-=5},function(){this.F=this.w;this.b-=5},function(){this.F=this.A;this.b-=5},function(){this.F=this.B;this.b-=5},function(){this.F=this.C;this.b-=5},function(){this.F=this.D;this.b-=5},function(){this.b-=5},function(){this.F=E(this,D(this));this.b-=7},function(){this.F=this.g;
this.b-=5},function(){Od(this,D(this),this.w);this.b-=7},function(){Od(this,D(this),this.A);this.b-=7},function(){Od(this,D(this),this.B);this.b-=7},function(){Od(this,D(this),this.C);this.b-=7},function(){Od(this,D(this),this.D);this.b-=7},function(){Od(this,D(this),this.F);this.b-=7},function(){var a=this.j-1;if(this.Ha.length)for(var b=0;b<this.Ha.length;b++)if(this.Ha[b](a))return;this.b-=7;this.S|=256;Xc(this);this.K&&Cb(this,-2147483648)?(A(this,a),this.K.ea()):this.N&512||(this.K&&A(this,a),
this.b-=5},function(){Od(this,D(this),this.w);this.b-=7},function(){Od(this,D(this),this.A);this.b-=7},function(){Od(this,D(this),this.B);this.b-=7},function(){Od(this,D(this),this.C);this.b-=7},function(){Od(this,D(this),this.D);this.b-=7},function(){Od(this,D(this),this.F);this.b-=7},function(){var a=this.j-1;if(this.Ma.length)for(var b=0;b<this.Ma.length;b++)if(this.Ma[b](a))return;this.b-=7;this.S|=256;Xc(this);this.K&&Cb(this,-2147483648)?(A(this,a),this.K.ea()):this.N&512||(this.K&&A(this,a),
this.ea())},function(){Od(this,D(this),this.g);this.b-=7},function(){this.g=this.w;this.b-=5},function(){this.g=this.A;this.b-=5},function(){this.g=this.B;this.b-=5},function(){this.g=this.C;this.b-=5},function(){this.g=this.D;this.b-=5},function(){this.g=this.F;this.b-=5},function(){this.g=E(this,D(this));this.b-=7},function(){this.b-=5},function(){this.g=Fd(this,this.w);this.b-=4},function(){this.g=Fd(this,this.A);this.b-=4},function(){this.g=Fd(this,this.B);this.b-=4},function(){this.g=Fd(this,
this.C);this.b-=4},function(){this.g=Fd(this,this.D);this.b-=4},function(){this.g=Fd(this,this.F);this.b-=4},function(){this.g=Fd(this,E(this,D(this)));this.b-=7},function(){this.g=Fd(this,this.g);this.b-=4},function(){this.g=Gd(this,this.w);this.b-=4},function(){this.g=Gd(this,this.A);this.b-=4},function(){this.g=Gd(this,this.B);this.b-=4},function(){this.g=Gd(this,this.C);this.b-=4},function(){this.g=Gd(this,this.D);this.b-=4},function(){this.g=Gd(this,this.F);this.b-=4},function(){this.g=Gd(this,
E(this,D(this)));this.b-=7},function(){this.g=Gd(this,this.g);this.b-=4},function(){this.g=Ld(this,this.w);this.b-=4},function(){this.g=Ld(this,this.A);this.b-=4},function(){this.g=Ld(this,this.B);this.b-=4},function(){this.g=Ld(this,this.C);this.b-=4},function(){this.g=Ld(this,this.D);this.b-=4},function(){this.g=Ld(this,this.F);this.b-=4},function(){this.g=Ld(this,E(this,D(this)));this.b-=7},function(){this.g=Ld(this,this.g);this.b-=4},function(){this.g=Md(this,this.w);this.b-=4},function(){this.g=
@ -125,144 +125,145 @@ zd(this)||A(this,a);this.b-=10},function(){var a=F(this);fc(this.I,a,this.g,this
this.j);A(this,40);this.b-=11},function(){Ed(this)||(A(this,Pd(this)),this.b-=6);this.b-=5},function(){var a=Pd(this);qd(this,a&255|this.N&-256);this.g=a>>8;this.b-=10},function(){var a=G(this);Ed(this)||A(this,a);this.b-=10},function(){this.N&=-513;this.b-=4},function(){var a=G(this);Ed(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,sd(this)&255|this.g<<8);this.b-=11},function(){this.g=Kd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,48);this.b-=11},function(){Ed(this)&&
(A(this,Pd(this)),this.b-=6);this.b-=5},function(){this.M=D(this)&65535;this.b-=5},function(){var a=G(this);Ed(this)&&A(this,a);this.b-=10},function(){this.N|=512;this.b-=4;Qd(this)},function(){var a=G(this);Ed(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Xd,function(){Ld(this,F(this));this.b-=7},function(){H(this,this.j);A(this,56);this.b-=11}];
function Yd(a){u.call(this,"ChipSet",a,32768);var b=a.model;b&&!Zd[b]&&Ya("Unrecognized ChipSet model: "+b);this.g=Zd[b]||{};a.sound&&(this.U=null,window&&(this.U=window.AudioContext||window.webkitAudioContext),this.U&&new this.U);zb(this)}aa(Yd,u);l=Yd.prototype;l.da=function(){return!1};
l.Ga=function(a,b,c,d){this.I=b;this.u=c;this.K=d;this.R=a;this.B=Jb(a,"Keyboard");this.C=Jb(a,"SerialPort");this.video=Jb(a,"Video");ac(b,this,this.g.Bb);ec(b,this,this.g.Cb);if(d){var e=this;$d(d,16384,function(){for(var a="",b=0;b<e.j.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=q(e.j[b]);e.K.i(a)})}};l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.va=function(a){return a?this.save():!0};l.reset=function(){this.g.INIT&&!this.restore(this.g.INIT)&&this.aa("reset error")};
l.Ga=function(a,b,c,d){this.I=b;this.u=c;this.K=d;this.R=a;this.B=Jb(a,"Keyboard");this.C=Jb(a,"SerialPort");this.video=Jb(a,"Video");ac(b,this,this.g.Cb);ec(b,this,this.g.Db);if(d){var e=this;$d(d,16384,function(){for(var a="",b=0;b<e.j.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=q(e.j[b]);e.K.i(a)})}};l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.va=function(a){return a?this.save():!0};l.reset=function(){this.g.INIT&&!this.restore(this.g.INIT)&&this.aa("reset error")};
l.save=function(){var a=new td(this);switch(this.g.pa){case ae.pa:a.set(0,[this.ba,this.A,this.fa,this.N,this.T,this.Y,this.Z]);break;case J.pa:a.set(0,[this.V,this.D]),a.set(1,[this.F,this.H]),a.set(2,[this.w,this.O,this.X,this.W]),a.set(3,[this.M,this.b,this.L,this.S,this.j])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.g.pa){case ae.pa:return this.ba=b[0],this.A=b[1],this.fa=b[2],this.N=b[3],this.T=b[4],this.Y=b[5],this.Z=b[6],!0;case J.pa:return this.V=b[0],this.D=b[1],b=a[1],this.F=b[0],this.H=b[1],b=a[2],this.w=b[0],this.O=b[1],this.X=b[2],this.W=b[3],b=a[3],this.M=b[0],this.b=b[1],this.L=b[2],this.S=b[3],this.j=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Jd=function(a,b){var c=this.ba;x(this,a,null,b,"STATUS0",c,!0);return c};
l.Kd=function(a,b){var c=this.A;x(this,a,null,b,"STATUS1",c,!0);return c};l.Ld=function(a,b){var c=this.fa;x(this,a,null,b,"STATUS2",c,!0);return c};l.Id=function(a,b){var c=this.N>>8-this.T&255;x(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.Wd=function(a,b,c){x(this,a,b,c,"SHIFT.COUNT",null,!0);this.T=b};l.Yd=function(a,b,c){x(this,a,b,c,"SOUND1",null,!0);this.Y=b};l.Xd=function(a,b,c){x(this,a,b,c,"SHIFT.DATA",null,!0);this.N=b<<8|this.N>>8};
l.Zd=function(a,b,c){x(this,a,b,c,"SOUND2",null,!0);this.Z=b};l.$d=function(a,b,c){x(this,a,b,c,"WATCHDOG",null,!0)};function be(a){var b=0,c=0,d=~a.M;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.Md=function(a,b){var c=this.D,c=c&~J.za.jc;if((Qc(this.u)&64)<<1&&(c|=J.za.jc,c!=this.D)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case J.Ba.Ka.nd:break;case J.Ba.Ka.Lc:this.M=this.M<<1|d;break;case J.Ba.Ka.Rc:d=be(this);this.j[d]=J.Ba.vb;Db(this,"doNVRCommand(): erase data at addr "+q(d));break;case J.Ba.Ka.Mc:this.b=this.b<<1|d;break;case J.Ba.Ka.rd:d=be(this);e=this.b&J.Ba.vb;this.j[d]=e;Db(this,"doNVRCommand(): write data "+q(e)+" to addr "+q(d));break;case J.Ba.Ka.ld:d=be(this);e=this.j[d];
null==e&&(e=J.Ba.vb);this.b=e;Db(this,"doNVRCommand(): read data "+q(e)+" from addr "+q(d));break;case J.Ba.Ka.md:this.b<<=1;this.S=this.b&J.Ba.vb+1;break;default:Db(this,"doNVRCommand(): unrecognized command "+pa(e))}}c&=~J.za.kc;this.S&&(c|=J.za.kc);c&=~J.za.dc;if(d=this.B){d=this.B;if(e=d.A)e=d.u,e=Qc(d.u)>=d.F+e.Aa*e.U/1E3*1.2731488;e&&(d.A=!1);d=!d.A}d&&(c|=J.za.dc);c&=~J.za.sc;this.C&&this.C.ia&ce&&(c|=J.za.sc);this.D=c;x(this,a,null,b,"FLAGS",c);return c};
l.ae=function(a,b,c){x(this,a,b,c,"BRIGHTNESS");this.V=b};l.de=function(a,b,c){x(this,a,b,c,"NVR.LATCH");this.L=b};l.ce=function(a,b,c){x(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.w=this.w&-4|a;break;case 1:this.w=this.w&-13|a<<2;this.video&&(b=this.video,a=this.w,Db(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?$c(b,!0):b.xa=!0));break;case 2:switch(a){case 0:this.O=~this.O;break;case 2:case 3:this.X=3-a}break;case 3:this.W=a}};
l.be=function(a,b,c){x(this,a,b,c,"DC011");b&J.La.kd?(b&=J.La.oc,this.H!=b&&(this.H=b,this.video&&(a=this.video,b=this.H==J.La.oc?50:60,Db(a,"updateRate("+b+")"),a.jb=b))):(b&=J.La.Wb,this.F!=b&&(this.F=b,this.video&&(a=this.F==J.La.Wb?132:80,b=this.video,Db(b,"updateDimensions("+a+","+(80<a&&this.D&J.za.ic?14:24)+")"),b.O=a,b.ga=b.Da,80<a&&b.ga--,de(b)&&ee(b))))};
var ae={pa:1978.1,pd:{qa:0,ff:1,kf:16,sf:32,Bf:64,Af:128,bb:14},Oa:{qa:1,Pc:1,jd:2,ed:4,fd:16,gd:32,hd:64,bb:8},qd:{qa:2,ef:3,Jf:4,gf:8,wf:16,xf:32,yf:64,hf:128,bb:0},Ff:{qa:3},Df:{qa:2,tf:7},Hf:{qa:3,Kf:1,Gf:2,zf:4,qf:8,jf:16,Ae:32},Ef:{qa:4},If:{qa:5,lf:1,mf:2,nf:4,pf:8,Lf:16}},J={pa:100,za:{qa:66,sc:1,ic:2,dd:4,vf:8,uf:16,kc:32,jc:64,dc:128},Oc:{qa:66,INIT:0},La:{qa:194,De:0,Wb:16,kd:32,oc:48,Uc:0,Vc:32},ub:{qa:162,Cf:0,Xc:0,Tc:0,Wc:0,Sc:0},Ba:{rf:{qa:98},Ka:{Mc:0,Lc:1,md:2,rd:4,Rc:5,ld:6,nd:7},
vb:16383}},Zd={SI1978:ae,VT100:J};ae.INIT=[[ae.pd.bb,ae.Oa.bb,ae.qd.bb,0,0,0,0]];
J.INIT=[[J.Oc.INIT,J.za.ic|J.za.dd],[J.La.Uc,J.La.Vc],[J.ub.Xc,J.ub.Tc,J.ub.Wc,J.ub.Sc],[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]]];ae.Bb={0:Yd.prototype.Jd,1:Yd.prototype.Kd,2:Yd.prototype.Ld,3:Yd.prototype.Id};
ae.Cb={2:Yd.prototype.Wd,3:Yd.prototype.Yd,4:Yd.prototype.Xd,5:Yd.prototype.Zd,6:Yd.prototype.$d};J.Bb={66:Yd.prototype.Md};J.Cb={66:Yd.prototype.ae,98:Yd.prototype.de,162:Yd.prototype.ce,194:Yd.prototype.be};Ua(function(){for(var a=qb(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Yd(d);pb(d,c)}});
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.g.pa){case ae.pa:return this.ba=b[0],this.A=b[1],this.fa=b[2],this.N=b[3],this.T=b[4],this.Y=b[5],this.Z=b[6],!0;case J.pa:return this.V=b[0],this.D=b[1],b=a[1],this.F=b[0],this.H=b[1],b=a[2],this.w=b[0],this.O=b[1],this.X=b[2],this.W=b[3],b=a[3],this.M=b[0],this.b=b[1],this.L=b[2],this.S=b[3],this.j=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Kd=function(a,b){var c=this.ba;x(this,a,null,b,"STATUS0",c,!0);return c};
l.Ld=function(a,b){var c=this.A;x(this,a,null,b,"STATUS1",c,!0);return c};l.Md=function(a,b){var c=this.fa;x(this,a,null,b,"STATUS2",c,!0);return c};l.Jd=function(a,b){var c=this.N>>8-this.T&255;x(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.Xd=function(a,b,c){x(this,a,b,c,"SHIFT.COUNT",null,!0);this.T=b};l.Zd=function(a,b,c){x(this,a,b,c,"SOUND1",null,!0);this.Y=b};l.Yd=function(a,b,c){x(this,a,b,c,"SHIFT.DATA",null,!0);this.N=b<<8|this.N>>8};
l.$d=function(a,b,c){x(this,a,b,c,"SOUND2",null,!0);this.Z=b};l.ae=function(a,b,c){x(this,a,b,c,"WATCHDOG",null,!0)};function be(a){var b=0,c=0,d=~a.M;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.Nd=function(a,b){var c=this.D,c=c&~J.ya.kc;if((Qc(this.u)&64)<<1&&(c|=J.ya.kc,c!=this.D)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case J.Ba.Ka.od:break;case J.Ba.Ka.Mc:this.M=this.M<<1|d;break;case J.Ba.Ka.Sc:d=be(this);this.j[d]=J.Ba.wb;Db(this,"doNVRCommand(): erase data at addr "+q(d));break;case J.Ba.Ka.Nc:this.b=this.b<<1|d;break;case J.Ba.Ka.sd:d=be(this);e=this.b&J.Ba.wb;this.j[d]=e;Db(this,"doNVRCommand(): write data "+q(e)+" to addr "+q(d));break;case J.Ba.Ka.md:d=be(this);e=this.j[d];
null==e&&(e=J.Ba.wb);this.b=e;Db(this,"doNVRCommand(): read data "+q(e)+" from addr "+q(d));break;case J.Ba.Ka.nd:this.b<<=1;this.S=this.b&J.Ba.wb+1;break;default:Db(this,"doNVRCommand(): unrecognized command "+pa(e))}}c&=~J.ya.lc;this.S&&(c|=J.ya.lc);c&=~J.ya.ec;if(d=this.B){d=this.B;if(e=d.A)e=d.u,e=Qc(d.u)>=d.F+e.Aa*e.U/1E3*1.2731488;e&&(d.A=!1);d=!d.A}d&&(c|=J.ya.ec);c&=~J.ya.tc;this.C&&this.C.ia&ce&&(c|=J.ya.tc);this.D=c;x(this,a,null,b,"FLAGS",c);return c};
l.be=function(a,b,c){x(this,a,b,c,"BRIGHTNESS");this.V=b};l.ee=function(a,b,c){x(this,a,b,c,"NVR.LATCH");this.L=b};l.de=function(a,b,c){x(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.w=this.w&-4|a;break;case 1:this.w=this.w&-13|a<<2;this.video&&(b=this.video,a=this.w,Db(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?$c(b,!0):b.xa=!0));break;case 2:switch(a){case 0:this.O=~this.O;break;case 2:case 3:this.X=3-a}break;case 3:this.W=a}};
l.ce=function(a,b,c){x(this,a,b,c,"DC011");b&J.La.ld?(b&=J.La.pc,this.H!=b&&(this.H=b,this.video&&(a=this.video,b=this.H==J.La.pc?50:60,Db(a,"updateRate("+b+")"),a.kb=b))):(b&=J.La.Xb,this.F!=b&&(this.F=b,this.video&&(a=this.F==J.La.Xb?132:80,b=this.video,Db(b,"updateDimensions("+a+","+(80<a&&this.D&J.ya.jc?14:24)+")"),b.O=a,b.ga=b.Da,80<a&&b.ga--,de(b)&&ee(b))))};
var ae={pa:1978.1,qd:{qa:0,gf:1,lf:16,tf:32,Cf:64,Bf:128,cb:14},Pa:{qa:1,Qc:1,kd:2,fd:4,gd:16,hd:32,jd:64,cb:8},rd:{qa:2,ff:3,Kf:4,hf:8,xf:16,yf:32,zf:64,jf:128,cb:0},Gf:{qa:3},Ef:{qa:2,uf:7},If:{qa:3,Lf:1,Hf:2,Af:4,rf:8,kf:16,Be:32},Ff:{qa:4},Jf:{qa:5,mf:1,nf:2,pf:4,qf:8,Mf:16}},J={pa:100,ya:{qa:66,tc:1,jc:2,ed:4,wf:8,vf:16,lc:32,kc:64,ec:128},Pc:{qa:66,INIT:0},La:{qa:194,Ee:0,Xb:16,ld:32,pc:48,Vc:0,Wc:32},vb:{qa:162,Df:0,Yc:0,Uc:0,Xc:0,Tc:0},Ba:{sf:{qa:98},Ka:{Nc:0,Mc:1,nd:2,sd:4,Sc:5,md:6,od:7},
wb:16383}},Zd={SI1978:ae,VT100:J};ae.INIT=[[ae.qd.cb,ae.Pa.cb,ae.rd.cb,0,0,0,0]];
J.INIT=[[J.Pc.INIT,J.ya.jc|J.ya.ed],[J.La.Vc,J.La.Wc],[J.vb.Yc,J.vb.Uc,J.vb.Xc,J.vb.Tc],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];ae.Cb={0:Yd.prototype.Kd,1:Yd.prototype.Ld,2:Yd.prototype.Md,3:Yd.prototype.Jd};
ae.Db={2:Yd.prototype.Xd,3:Yd.prototype.Zd,4:Yd.prototype.Yd,5:Yd.prototype.$d,6:Yd.prototype.ae};J.Cb={66:Yd.prototype.Nd};J.Db={66:Yd.prototype.be,98:Yd.prototype.ee,162:Yd.prototype.de,194:Yd.prototype.ce};Ua(function(){for(var a=qb(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Yd(d);pb(d,c)}});
function fe(a){u.call(this,"ROM",a);this.b=null;this.A=a.addr;this.g=a.size;this.w=a.alias;this.j=a.file;this.B=qa(this.j);if(this.j){a=this.j;var b=ra(this.B);"json"!=b&&"hex"!=b&&(a=ta()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Fa(a,null,!0,function(a,b,f){ge(c,a,b,f)})}}aa(fe,u);fe.prototype.Ga=function(a,b,c,d){this.I=b;this.u=c;this.K=d;he(this)};
fe.prototype.wa=function(){if(this.ra){if(this.K){var a=this.K,b=this.id,c=this.A,d=this.g,e=this.ra,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,p=h.a;if(void 0!==k){var t=f,k=[k>>>0,g],v=Ca(t,k,a.Ac);0>v&&t.splice(-(v+1),0,k)}p&&(h.a=p.replace(/''/g,'"'))}a.B.push({Nf:b,J:c,Qd:d,ra:e,zc:f})}delete this.ra}return!0};fe.prototype.va=function(){return!0};
function ge(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")");else{gb(a.eb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.longs||e.data;if(f)a.b=f;else if(g)for(a.b=Array(4*g.length),d=c=0;c<g.length;c++)a.b[d++]=g[c]&255,a.b[d++]=g[c]>>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.ra=e.symbols;if(!a.b.length){r("Empty ROM: "+b);return}if(1==a.b.length){r(a.b[0]);return}}catch(h){a.aa("ROM data error: "+h.message);return}else for(b=
fe.prototype.wa=function(){if(this.ra){if(this.K){var a=this.K,b=this.id,c=this.A,d=this.g,e=this.ra,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,p=h.a;if(void 0!==k){var t=f,k=[k>>>0,g],v=Ca(t,k,a.Bc);0>v&&t.splice(-(v+1),0,k)}p&&(h.a=p.replace(/''/g,'"'))}a.B.push({Of:b,J:c,Rd:d,ra:e,Ac:f})}delete this.ra}return!0};fe.prototype.va=function(){return!0};
function ge(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")");else{gb(a.fb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.longs||e.data;if(f)a.b=f;else if(g)for(a.b=Array(4*g.length),d=c=0;c<g.length;c++)a.b[d++]=g[c]&255,a.b[d++]=g[c]>>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.ra=e.symbols;if(!a.b.length){r("Empty ROM: "+b);return}if(1==a.b.length){r(a.b[0]);return}}catch(h){a.aa("ROM data error: "+h.message);return}else for(b=
c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=ma(b[e],16);he(a)}}
function he(a){if(!yb(a))if(!a.j)zb(a);else if(a.b&&a.I){a.g||(a.g=a.b.length);if(a.b.length!=a.g)xb(a,"ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.g,8,!0)+")");else{var b;b=a.A;if(Nb(a.I,b,a.g,wc)){var c;for(c=0;c<a.b.length;c++)Xb(a.I,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.I,g=d.g,h=[],k=d.A>>>f.g;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=f.w;f=d.I;d=d.g;g=0;for(e>>>=
f.g;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=f.w}}delete a.b}}zb(a)}}Ua(function(){for(var a=qb(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new fe(d);pb(d,c)}});
function ie(a){u.call(this,"RAM",a);this.ra=this.g=null;this.w=a.addr;this.A=a.size;this.Qa=a.load;this.Ja=a.exec;this.j=!1;this.b=a.file;this.B=qa(this.b);if(this.b){a=this.b;var b=ra(this.B);"json"!=b&&"hex"!=b&&(a=ta()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Fa(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(gb(c.eb,a,b),(a=Ga(a,b))?(c.g=a.la,c.ra=a.ra,null==c.Qa&&(c.Qa=a.Qa),null==c.Ja&&(c.Ja=a.Ja)):c.b=null,je(c))})}}aa(ie,u);
function ie(a){u.call(this,"RAM",a);this.ra=this.g=null;this.w=a.addr;this.A=a.size;this.Ra=a.load;this.Ia=a.exec;this.j=!1;this.b=a.file;this.B=qa(this.b);if(this.b){a=this.b;var b=ra(this.B);"json"!=b&&"hex"!=b&&(a=ta()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Fa(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(gb(c.fb,a,b),(a=Ga(a,b))?(c.g=a.la,c.ra=a.ra,null==c.Ra&&(c.Ra=a.Ra),null==c.Ia&&(c.Ia=a.Ia)):c.b=null,je(c))})}}aa(ie,u);
ie.prototype.Ga=function(a,b,c,d){this.I=b;this.u=c;this.K=d;je(this)};ie.prototype.wa=function(){return!0};ie.prototype.va=function(){return!0};
function je(a){!a.j&&a.A&&Nb(a.I,a.w,a.A,1)&&(a.j=!0);if(!yb(a)){if(!a.j)r("No RAM allocated");else if(a.b){if(!a.g||!a.I)return;var b=a.w;null!==a.Qa&&(b=a.Qa);for(var c=0;c<a.g.length;c++)Xb(a.I,b+c,a.g[c]);if(null!==a.Ja){if(a.Ja==ke){for(c=0;c<le.length;c++)Xb(a.I,le[c],118);pd(a.u,function(a){return function(b){if(0<=le.indexOf(b)){var c=!1,d=a.u,e=a.K;if(b==me)switch(c=!0,d.A){case ne:oe(a,String.fromCharCode(d.C));break;case pe:for(var k=wd(d),p="",t=255;t--;){var v=E(a.u,k++);if(36==v)break;
p+=String.fromCharCode(v)}oe(a,p);break;default:c=!1}c?Wd.call(d):e&&(a.i("\nCP/M vector "+q(b)),A(d,b),e.ea());b=!0}else b=!1;return b}}(a))}rd(a.u,a.Ja)}delete a.g}zb(a)}}ie.prototype.reset=function(){};function oe(a,b){b=b.replace(/\r/g,"");a.ua&&(a.ua.value+=b,a.ua.scrollTop=a.ua.scrollHeight)}var me=5,ne=2,pe=9,ke=256,le=[0,me];Ua(function(){for(var a=qb(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new ie(d);pb(d,c)}});
function je(a){!a.j&&a.A&&Nb(a.I,a.w,a.A,1)&&(a.j=!0);if(!yb(a)){if(!a.j)r("No RAM allocated");else if(a.b){if(!a.g||!a.I)return;var b=a.w;null!==a.Ra&&(b=a.Ra);for(var c=0;c<a.g.length;c++)Xb(a.I,b+c,a.g[c]);if(null!==a.Ia){if(a.Ia==ke){for(c=0;c<le.length;c++)Xb(a.I,le[c],118);pd(a.u,function(a){return function(b){if(0<=le.indexOf(b)){var c=!1,d=a.u,e=a.K;if(b==me)switch(c=!0,d.A){case ne:oe(a,String.fromCharCode(d.C));break;case pe:for(var k=wd(d),p="",t=255;t--;){var v=E(a.u,k++);if(36==v)break;
p+=String.fromCharCode(v)}oe(a,p);break;default:c=!1}c?Wd.call(d):e&&(a.i("\nCP/M vector "+q(b)),A(d,b),e.ea());b=!0}else b=!1;return b}}(a))}rd(a.u,a.Ia)}delete a.g}zb(a)}}ie.prototype.reset=function(){};function oe(a,b){b=b.replace(/\r/g,"");a.ua&&(a.ua.value+=b,a.ua.scrollTop=a.ua.scrollHeight)}var me=5,ne=2,pe=9,ke=256,le=[0,me];Ua(function(){for(var a=qb(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new ie(d);pb(d,c)}});
function qe(a){u.call(this,"Keyboard",a,65536);(a=a.model)&&!Me[a]&&Ya("Unrecognized Keyboard8080 model: "+a);this.b=Me[a]||{};this.reset();zb(this)}aa(qe,u);l=qe.prototype;
l.da=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.fb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return Oa("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.b.sb[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.b.Sa)if(d.b.Sa[c]==a){c=+c;break a}c=0}c&&(b?Ne(d,16,!0,!0):Ne(d,16,!1),Ne(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Oe(d,a,!0)},c.onkeyup=function(a){return Oe(d,a,!1)}):(c.onkeydown=function(a){return Pe(d,a,!0)},
c.onkeyup=function(a){return Pe(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=m.ab&&a<=m.wb?d.g&(Qe|Re)||(d.g|=Re,Ne(d,20,!0),Se(d)):a>=m.yc&&a<=m.z&&d.g&Re&&(d.g&=~Re,Ne(d,20,!1),Se(d));return!0}),c.onpaste=function(a){a:{if(d.C&&d.C.Ra&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Te(d.C,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ua&&void 0!==this.b.Ua[b])return this.P[e]=c,c.onclick=
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=Ue:20==b&&(e=Re);if(e){c.style.fontWeight="normal";if(d=!(a.g&e))c.style.fontWeight="bold";Ve(a,b,d)}Ne(a,b,d,!e);a.R&&a.R.Za()}}(this,this.b.Ua[b]),!0}}return!1};l.Ga=function(a,b,c,d){this.R=a;this.u=c;this.K=d;var e=this;this.L=Vc(this.u,function(){We(e)});this.V=Jb(a,"ChipSet");this.C=Jb(a,"SerialPort");ac(b,this,this.b.Bb);ec(b,this,this.b.Cb)};
l.da=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.gb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return Oa("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.b.tb[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.b.Ta)if(d.b.Ta[c]==a){c=+c;break a}c=0}c&&(b?Ne(d,16,!0,!0):Ne(d,16,!1),Ne(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Oe(d,a,!0)},c.onkeyup=function(a){return Oe(d,a,!1)}):(c.onkeydown=function(a){return Pe(d,a,!0)},
c.onkeyup=function(a){return Pe(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=m.bb&&a<=m.xb?d.g&(Qe|Re)||(d.g|=Re,Ne(d,20,!0),Se(d)):a>=m.zc&&a<=m.z&&d.g&Re&&(d.g&=~Re,Ne(d,20,!1),Se(d));return!0}),c.onpaste=function(a){a:{if(d.C&&d.C.Sa&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Te(d.C,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Va&&void 0!==this.b.Va[b])return this.P[e]=c,c.onclick=
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=Ue:20==b&&(e=Re);if(e){c.style.fontWeight="normal";if(d=!(a.g&e))c.style.fontWeight="bold";Ve(a,b,d)}Ne(a,b,d,!e);a.R&&a.R.$a()}}(this,this.b.Va[b]),!0}}return!1};l.Ga=function(a,b,c,d){this.R=a;this.u=c;this.K=d;var e=this;this.L=Vc(this.u,function(){We(e)});this.V=Jb(a,"ChipSet");this.C=Jb(a,"SerialPort");ac(b,this,this.b.Cb);ec(b,this,this.b.Db)};
l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.va=function(a){return a?this.save():!0};l.reset=function(){this.j=[];this.g=0;this.b.INIT&&!this.restore(this.b.INIT)&&this.aa("reset error")};l.save=function(){var a=new td(this);switch(this.b.pa){case K.pa:a.set(0,[this.D,this.B,this.A,this.F,-1])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.pa){case Xe.pa:return!0;case K.pa:return this.D=b[0],Se(this,this.D&K.Ca.ec),this.B=b[1],this.A=b[2],this.F=b[3],this.w=b[4],!0}return!1};function Se(a,b){var c;null!=b?a.H=b:b=a.H;for(var d in a.b.fb)if(c="led-"+d,c=a.P[c]){var e=a.b.fb[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+n(16711680,6):"#000000"}if(c=a.P["led-caps-lock"])c.style.backgroundColor=a.g&Re?"#"+n(65280,6):"#000000"}
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.pa){case Xe.pa:return!0;case K.pa:return this.D=b[0],Se(this,this.D&K.Ca.fc),this.B=b[1],this.A=b[2],this.F=b[3],this.w=b[4],!0}return!1};function Se(a,b){var c;null!=b?a.H=b:b=a.H;for(var d in a.b.gb)if(c="led-"+d,c=a.P[c]){var e=a.b.gb[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+n(16711680,6):"#000000"}if(c=a.P["led-caps-lock"])c.style.backgroundColor=a.g&Re?"#"+n(65280,6):"#000000"}
function Ve(a,b,c,d){var e=0;switch(b){case 16:e=d?Ye:Ze;break;case 17:e=d?$e:Ue;break;case 18:e=d?af:bf;break;case 91:e=d?cf:df;break;case 20:e=Re,c=!(a.g&e)}e&&(a.g=c?a.g|e:a.g&~e);return c}
function Pe(a,b,c){var d=!0,e=b.keyCode,e=la[e]||e;c=Ve(a,e,c,2==b.location);var f;a:if(e=a.b.Tb[e]||e,a.b.Sa[e])f=e;else{for(f in a.b.Ua)if(a.b.Ua[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.g&(ef|ff)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.g=c?a.g|ff:a.g&~ff)),d=Ne(a,f,c),(!(f>=m.ab&&f<=m.wb)||a.g|gf)&&b.preventDefault&&b.preventDefault());return d}
function Oe(a,b,c){var d=!0;if(c){var e=b.keyCode,f=a.b.Sa[e],g;if(g=f){a:{for(var h in a.b.sb)if(a.b.sb[h]==f){f=+h;break a}f=0}g=!f}g&&(d=Ne(a,e,c,!0),b.preventDefault&&b.preventDefault())}return d}
function Ne(a,b,c,d){var e;a:{for(e=0;e<a.j.length;e++)if(a.j[e].Pb==b)break a;e=-1}if(c)0>e?a.j.push({Pb:b,Mb:Date.now(),yb:d||!1}):(a.j[e].Mb=Date.now(),a.j[e].yb=d||!1),d&&We(a);else if(0<=e){if(!a.j[e].yb&&(d=a.j[e].Mb)&&Date.now()-d<hf)return a.j[e].yb=!0,We(a),!0;a.j.splice(e,1)}if(a.V){d=0;switch(b){case "1p":d=ae.Oa.ed;break;case "2p":d=ae.Oa.jd;break;case "coin":d=ae.Oa.Pc;break;case "left":d=ae.Oa.gd;break;case "right":d=ae.Oa.hd;break;case "fire":d=ae.Oa.fd}d&&(a=a.V,b=d,a.A&=~b,c&&(a.A|=
b))}return!0}function We(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].yb){var d=a.j[b].Pb,e=hf-(Date.now()-a.j[b].Mb);if(0<e){if(0>c||c>e)c=e}else{Ne(a,d,!1);b=0;continue}}b++}0<=c&&Wc(a.u,a.L,c)}l.Nd=function(a,b){var c=this.B;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=K.Sa[c.Pb],c&128&&(c&=127)):(this.w=-1,c=K.Yc),this.B=c,Rd(this.u,1));x(this,a,null,b,"KBDUART.ADDRESS",c);return c};
l.ee=function(a,b,c){x(this,a,b,c,"KBDUART.STATUS");this.D=b;this.A=!0;this.F=Qc(this.u);Se(this,b&K.Ca.ec);b&K.Ca.od&&(this.w=0,Rd(this.u,1))};var Ye=1,Ze=2,Qe=3,$e=4,Ue=8,gf=12,af=16,bf=32,ef=48,cf=64,df=128,Re=512,ff=4096,hf=50,jf={};jf[m.ab]=37;jf[m.Fb]=39;jf[m.Hb]=32;
var Xe={pa:1978.1,Sa:{},sb:{},Tb:jf,fb:{},Ua:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},M={},N={},K={pa:100,Sa:(M[8]=3,M[m.mc]=5,M[m.lc]=6,M[m.xc]=7,M[m.qc]=8,M[m.uc]=9,M[m.Q]=10,M[39]=16,M[221]=20,M[219]=21,M[m.ac]=22,M[m.rc]=23,M[m.nc]=24,M[m.E]=25,M[49]=26,M[37]=32,M[40]=34,M[117]=35,M[19]=35,M[192]=36,M[189]=37,M[57]=38,M[55]=39,M[52]=40,M[51]=41,M[27]=42,M[38]=48,M[114]=49,M[112]=50,M[46]=51,M[187]=52,M[48]=53,M[56]=54,M[54]=55,M[53]=56,M[50]=57,M[9]=58,M[103]=64,M[115]=65,M[113]=66,
M[96]=67,M[118]=68,M[220]=69,M[m.Hb]=70,M[m.cc]=71,M[m.Zb]=72,M[m.Yb]=73,M[m.ab]=74,M[104]=80,M[2013]=81,M[98]=82,M[97]=83,M[222]=85,M[186]=86,M[m.bc]=87,M[m.$b]=88,M[m.Fb]=89,M[m.pc]=90,M[110]=96,M[116]=97,M[101]=98,M[100]=99,M[13]=100,M[190]=101,M[188]=102,M[m.hc]=103,M[m.Ub]=104,M[m.wc]=105,M[119]=106,M[105]=112,M[99]=113,M[102]=114,M[109]=115,M[191]=117,M[m.gc]=118,M[m[" "]]=119,M[m.tc]=120,M[m.Vb]=121,M[m.wb]=122,M[120]=123,M[17]=124,M[16]=125,M[20]=126,M),sb:(N[m.p]=5,N[m.Sd]=6,N[m.y]=7,N[m.t]=
8,N[m.re]=9,N[m.q]=10,N[m["]"]]=20,N[m["["]]=21,N[m.Fd]=22,N[m.pe]=23,N[m.r]=24,N[m.e]=25,N[m["1"]]=26,N[m["`"]]=36,N[m["-"]]=37,N[m["9"]]=38,N[m["7"]]=39,N[m["4"]]=40,N[m["3"]]=41,N[m["="]]=52,N[m["0"]]=53,N[m["8"]]=54,N[m["6"]]=55,N[m["5"]]=56,N[m["2"]]=57,N[m["\\"]]=69,N[m.Pd]=70,N[m.k]=71,N[m.Dd]=72,N[m.Bd]=73,N[m.yc]=74,N[m["'"]]=85,N[m[";"]]=86,N[m.Od]=87,N[m.Ed]=88,N[m.d]=89,N[m.oe]=90,N[13]=100,N[m["."]]=101,N[m[","]]=102,N[m.n]=103,N[m.ud]=104,N[m.x]=105,N[m["/"]]=117,N[m.Rd]=118,N[m.qe]=
120,N[m.xd]=121,N[m.z]=122,N[m.mc]=133,N[m.lc]=134,N[m.xc]=135,N[m.qc]=136,N[m.uc]=137,N[m.Q]=138,N[m["}"]]=148,N[m["{"]]=149,N[m.ac]=150,N[m.rc]=151,N[m.nc]=152,N[m.E]=153,N[m["!"]]=154,N[m["~"]]=164,N[m._]=165,N[m["("]]=166,N[m["&"]]=167,N[m.$]=168,N[m["#"]]=169,N[m["+"]]=180,N[m[")"]]=181,N[m["*"]]=182,N[m["^"]]=183,N[m["%"]]=184,N[m["@"]]=185,N[m["|"]]=197,N[m.Hb]=198,N[m.cc]=199,N[m.Zb]=200,N[m.Yb]=201,N[m.ab]=202,N[m['"']]=213,N[m[":"]]=214,N[m.bc]=215,N[m.$b]=216,N[m.Fb]=217,N[m.pc]=218,N[m[">"]]=
229,N[m["<"]]=230,N[m.hc]=231,N[m.Ub]=232,N[m.wc]=233,N[m["?"]]=245,N[m.gc]=246,N[m.tc]=248,N[m.Vb]=249,N[m.wb]=250,N),Tb:{},fb:{},Ua:{"caps-lock":20,ctrl:17,esc:27,tab:9,"num-comma":116,"break":117,"line-feed":118,"no-scroll":119,setup:120},Nc:{qa:130,INIT:127},Ca:{qa:130,bd:1,ad:2,$c:4,Zc:8,cd:16,fc:32,ec:63,od:64,Ce:128,INIT:0},Yc:127};K.fb={l4:K.Ca.bd,l3:K.Ca.ad,l2:K.Ca.$c,l1:K.Ca.Zc,locked:K.Ca.cd,local:K.Ca.fc,online:~K.Ca.fc,"caps-lock":Re};var Me={SI1978:Xe,VT100:K};
K.INIT=[[K.Ca.INIT,K.Nc.INIT,!1,0,-1]];K.Bb={130:qe.prototype.Nd};K.Cb={130:qe.prototype.ee};Ua(function(){for(var a=qb(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new qe(d);pb(d,c)}});
function kf(a,b,c,d,e){u.call(this,"Video",a,262144);var f=this;this.Ta=Oa("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.H=a.screenHeight;this.ka=a.bufferAddr;this.vd=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&lf[h.toUpperCase()]||mf;this.O=a.bufferCols;this.Z=a.bufferRows;this.Da=this.ga=a.cellWidth||1;this.ca=a.cellHeight||1;this.ba=null;this.Na=!1;this.na=a.bufferBits||1;this.yd=a.bufferLeft||0;if(this.g=a.bufferRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g&&
(this.aa("unsupported buffer rotation: "+this.g),this.g=0);this.oa=a.interruptRate;this.kb=a.refreshRate||60;this.F=b;this.j=c;this.W=(this.Cd=d)||b||null;this.Db=this.M;this.td=this.H;this.Ha=this.M/this.O|0;this.Ma=this.H/this.Z|0;1<this.ca&&(this.Z++,this.sa=0,this.xa=!1);b=a.smoothing;(c=Pa("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.j[d]){this.j[d]=b;break}if(this.w=a.screenRotate)this.w=this.w%360,
0<this.w&&(this.w-=360),-90!=this.w?(this.aa("unsupported screen rotation: "+this.w),this.w=0):(this.j.translate(0,this.H),this.j.rotate(this.w*Math.PI/180),this.j.scale(this.H/this.M,this.M/this.H));if(this.b=e)if(this.b.Xa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Xa){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){nf(f,!!(document.fullscreenElement||document.msFullscreenElement||
function Pe(a,b,c){var d=!0,e=b.keyCode,e=la[e]||e;c=Ve(a,e,c,2==b.location);var f;a:if(e=a.b.Ub[e]||e,a.b.Ta[e])f=e;else{for(f in a.b.Va)if(a.b.Va[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.g&(ef|ff)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.g=c?a.g|ff:a.g&~ff)),d=Ne(a,f,c),(!(f>=m.bb&&f<=m.xb)||a.g|gf)&&b.preventDefault&&b.preventDefault());return d}
function Oe(a,b,c){var d=!0;if(c){var e=b.keyCode,f=a.b.Ta[e],g;if(g=f){a:{for(var h in a.b.tb)if(a.b.tb[h]==f){f=+h;break a}f=0}g=!f}g&&(d=Ne(a,e,c,!0),b.preventDefault&&b.preventDefault())}return d}
function Ne(a,b,c,d){var e;a:{for(e=0;e<a.j.length;e++)if(a.j[e].Qb==b)break a;e=-1}if(c)0>e?a.j.push({Qb:b,Nb:Date.now(),zb:d||!1}):(a.j[e].Nb=Date.now(),a.j[e].zb=d||!1),d&&We(a);else if(0<=e){if(!a.j[e].zb&&(d=a.j[e].Nb)&&Date.now()-d<hf)return a.j[e].zb=!0,We(a),!0;a.j.splice(e,1)}if(a.V){d=0;switch(b){case "1p":d=ae.Pa.fd;break;case "2p":d=ae.Pa.kd;break;case "coin":d=ae.Pa.Qc;break;case "left":d=ae.Pa.hd;break;case "right":d=ae.Pa.jd;break;case "fire":d=ae.Pa.gd}d&&(a=a.V,b=d,a.A&=~b,c&&(a.A|=
b))}return!0}function We(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].zb){var d=a.j[b].Qb,e=hf-(Date.now()-a.j[b].Nb);if(0<e){if(0>c||c>e)c=e}else{Ne(a,d,!1);b=0;continue}}b++}0<=c&&Wc(a.u,a.L,c)}l.Od=function(a,b){var c=this.B;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=K.Ta[c.Qb],c&128&&(c&=127)):(this.w=-1,c=K.Zc),this.B=c,Rd(this.u,1));x(this,a,null,b,"KBDUART.ADDRESS",c);return c};
l.fe=function(a,b,c){x(this,a,b,c,"KBDUART.STATUS");this.D=b;this.A=!0;this.F=Qc(this.u);Se(this,b&K.Ca.fc);b&K.Ca.pd&&(this.w=0,Rd(this.u,1))};var Ye=1,Ze=2,Qe=3,$e=4,Ue=8,gf=12,af=16,bf=32,ef=48,cf=64,df=128,Re=512,ff=4096,hf=50,jf={};jf[m.bb]=37;jf[m.Gb]=39;jf[m.Ib]=32;
var Xe={pa:1978.1,Ta:{},tb:{},Ub:jf,gb:{},Va:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},M={},N={},K={pa:100,Ta:(M[8]=3,M[m.nc]=5,M[m.mc]=6,M[m.yc]=7,M[m.rc]=8,M[m.vc]=9,M[m.Q]=10,M[39]=16,M[221]=20,M[219]=21,M[m.bc]=22,M[m.sc]=23,M[m.oc]=24,M[m.E]=25,M[49]=26,M[37]=32,M[40]=34,M[117]=35,M[19]=35,M[192]=36,M[189]=37,M[57]=38,M[55]=39,M[52]=40,M[51]=41,M[27]=42,M[38]=48,M[114]=49,M[112]=50,M[46]=51,M[187]=52,M[48]=53,M[56]=54,M[54]=55,M[53]=56,M[50]=57,M[9]=58,M[103]=64,M[115]=65,M[113]=66,
M[96]=67,M[118]=68,M[220]=69,M[m.Ib]=70,M[m.dc]=71,M[m.$b]=72,M[m.Zb]=73,M[m.bb]=74,M[104]=80,M[2013]=81,M[98]=82,M[97]=83,M[222]=85,M[186]=86,M[m.cc]=87,M[m.ac]=88,M[m.Gb]=89,M[m.qc]=90,M[110]=96,M[116]=97,M[101]=98,M[100]=99,M[13]=100,M[190]=101,M[188]=102,M[m.ic]=103,M[m.Vb]=104,M[m.xc]=105,M[119]=106,M[105]=112,M[99]=113,M[102]=114,M[109]=115,M[191]=117,M[m.hc]=118,M[m[" "]]=119,M[m.uc]=120,M[m.Wb]=121,M[m.xb]=122,M[120]=123,M[17]=124,M[16]=125,M[20]=126,M),tb:(N[m.p]=5,N[m.Td]=6,N[m.y]=7,N[m.t]=
8,N[m.se]=9,N[m.q]=10,N[m["]"]]=20,N[m["["]]=21,N[m.Gd]=22,N[m.qe]=23,N[m.r]=24,N[m.e]=25,N[m["1"]]=26,N[m["`"]]=36,N[m["-"]]=37,N[m["9"]]=38,N[m["7"]]=39,N[m["4"]]=40,N[m["3"]]=41,N[m["="]]=52,N[m["0"]]=53,N[m["8"]]=54,N[m["6"]]=55,N[m["5"]]=56,N[m["2"]]=57,N[m["\\"]]=69,N[m.Qd]=70,N[m.k]=71,N[m.Ed]=72,N[m.Cd]=73,N[m.zc]=74,N[m["'"]]=85,N[m[";"]]=86,N[m.Pd]=87,N[m.Fd]=88,N[m.d]=89,N[m.pe]=90,N[13]=100,N[m["."]]=101,N[m[","]]=102,N[m.n]=103,N[m.vd]=104,N[m.x]=105,N[m["/"]]=117,N[m.Sd]=118,N[m.re]=
120,N[m.yd]=121,N[m.z]=122,N[m.nc]=133,N[m.mc]=134,N[m.yc]=135,N[m.rc]=136,N[m.vc]=137,N[m.Q]=138,N[m["}"]]=148,N[m["{"]]=149,N[m.bc]=150,N[m.sc]=151,N[m.oc]=152,N[m.E]=153,N[m["!"]]=154,N[m["~"]]=164,N[m._]=165,N[m["("]]=166,N[m["&"]]=167,N[m.$]=168,N[m["#"]]=169,N[m["+"]]=180,N[m[")"]]=181,N[m["*"]]=182,N[m["^"]]=183,N[m["%"]]=184,N[m["@"]]=185,N[m["|"]]=197,N[m.Ib]=198,N[m.dc]=199,N[m.$b]=200,N[m.Zb]=201,N[m.bb]=202,N[m['"']]=213,N[m[":"]]=214,N[m.cc]=215,N[m.ac]=216,N[m.Gb]=217,N[m.qc]=218,N[m[">"]]=
229,N[m["<"]]=230,N[m.ic]=231,N[m.Vb]=232,N[m.xc]=233,N[m["?"]]=245,N[m.hc]=246,N[m.uc]=248,N[m.Wb]=249,N[m.xb]=250,N),Ub:{},gb:{},Va:{"caps-lock":20,ctrl:17,esc:27,tab:9,"num-comma":116,"break":117,"line-feed":118,"no-scroll":119,setup:120},Oc:{qa:130,INIT:127},Ca:{qa:130,cd:1,bd:2,ad:4,$c:8,dd:16,gc:32,fc:63,pd:64,De:128,INIT:0},Zc:127};K.gb={l4:K.Ca.cd,l3:K.Ca.bd,l2:K.Ca.ad,l1:K.Ca.$c,locked:K.Ca.dd,local:K.Ca.gc,online:~K.Ca.gc,"caps-lock":Re};var Me={SI1978:Xe,VT100:K};
K.INIT=[[K.Ca.INIT,K.Oc.INIT,!1,0,-1]];K.Cb={130:qe.prototype.Od};K.Db={130:qe.prototype.fe};Ua(function(){for(var a=qb(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new qe(d);pb(d,c)}});
function kf(a,b,c,d,e){u.call(this,"Video",a,262144);var f=this;this.Ua=Oa("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.H=a.screenHeight;this.ka=a.bufferAddr;this.wd=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&lf[h.toUpperCase()]||mf;this.O=a.bufferCols;this.Z=a.bufferRows;this.Da=this.ga=a.cellWidth||1;this.ca=a.cellHeight||1;this.ba=null;this.Oa=!1;this.na=a.bufferBits||1;this.zd=a.bufferLeft||0;if(this.g=a.bufferRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g&&
(this.aa("unsupported buffer rotation: "+this.g),this.g=0);this.oa=a.interruptRate;this.lb=a.refreshRate||60;this.F=b;this.j=c;this.W=(this.Dd=d)||b||null;this.Eb=this.M;this.ud=this.H;this.Ma=this.M/this.O|0;this.Na=this.H/this.Z|0;1<this.ca&&(this.Z++,this.sa=0,this.xa=!1);b=a.smoothing;(c=Pa("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.j[d]){this.j[d]=b;break}if(this.w=a.screenRotate)this.w=this.w%360,
0<this.w&&(this.w-=360),-90!=this.w?(this.aa("unsupported screen rotation: "+this.w),this.w=0):(this.j.translate(0,this.H),this.j.rotate(this.w*Math.PI/180),this.j.scale(this.H/this.M,this.M/this.H));if(this.b=e)if(this.b.Ya=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Ya){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){nf(f,!!(document.fullscreenElement||document.msFullscreenElement||
document.mozFullScreenElement||document.webkitFullscreenElement))},!1);break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){nf(f,null)},!1);break}}if(this.S=a.fontROM)"json"!=ra(this.S)&&(this.S=ta()+"/api/v1/dump?file="+this.S+"&format=bytes"),Fa(this.S,null,!0,function(a,b,c){of(f,a,b,c)});this.Aa={}}aa(kf,u);
function de(a){a.C=a.O*a.ga;a.N=a.Z*a.ca;var b=a.C,c=a.N;a.g&&(b=a.N,c=a.C);a.L=0;if(!a.vd&&(a.L=(a.C*a.na>>3)*a.N,!Nb(a.I,a.ka,a.L,3)))return!1;a.L?(a.Va=a.j.createImageData(b,c),a.hb=16/a.na|0,pf(a,a.L>>1)):pf(a,(a.O+1)*a.Z);a.D=document.createElement("canvas");a.D.width=b;a.D.height=c;a.ta=a.D.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+qf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==rf&&(a.U[a.X+sf]=[255,255,0,255],a.U[a.X+tf]=[0,255,0,255]);a.Y==uf&&(a.jb=60,a.ya=!1,a.fa=Array(a.O));
return!0}l=kf.prototype;l.da=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Aa[b]=c,!0;switch(b){case "fullScreen":return this.P[b]=c,this.b&&this.b.Xa?c.onclick=function(){d.Xa()}:c.parentNode.removeChild(c),!0}return!1};
l.Ga=function(a,b,c,d){this.R=a;this.I=b;this.u=c;this.K=d;de(this);if(this.B=Jb(a,"Keyboard")){for(var e in this.Aa)this.B.da("led",e,this.Aa[e]);this.F&&this.B.da(this.Cd?"textarea":"canvas","screen",this.W)}var f=this;this.xb=Vc(this.u,function(){$c(f)});Wc(this.u,this.xb,1E3/Math.max(this.kb,this.oa));this.ib=0;this.S||zb(this)};
function of(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{gb(a.eb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){r("Empty font ROM: "+b);return}if(1==f.length){r(f[0]);return}if(2048==f.length)a.ba=f,ee(a);else{a.aa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.aa("Font ROM data error: "+g.message);return}(a.j||a.K)&&zb(a)}}
function ee(a){a.ba&&(a.Na=a.Y==uf,a.T[vf]=[wf(a,a.ga,a.ca),wf(a,a.ga,a.ca,a.ya)],a.T[xf]=[wf(a,2*a.ga,a.ca),wf(a,2*a.ga,a.ca,a.ya)],a.T[yf]=a.T[zf]=[wf(a,2*a.ga,2*a.ca),wf(a,2*a.ga,2*a.ca,a.ya)])}
function wf(a,b,c,d){var e=8>=a.Da?8:16,f=8<e?15:0,g=a.ba.length/e,h=!1===d,k={ga:b,ca:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=g/16*c;k.context=k.canvas.getContext("2d");for(var p=k.context.createImageData(b,c),t=0;t<g;t++){for(var v=0,B=v;v<a.ca;v++)for(var y=t*e+(f+v&e-1),y=d&&8==v?255:a.ba[y],w=0;w<c/a.ca;w++){for(var C=0,T=0,za=T;T<a.ga;T++){for(var L=y&128>>(7<T?7:T),C=a.Na&&!L&&C?C:L,ja=0;ja<b/a.ga;ja++)h&&(C=!C),Af(a,p,za,B,C?1:0),za++;C=L}B++}k.context.putImageData(p,
function de(a){a.C=a.O*a.ga;a.N=a.Z*a.ca;var b=a.C,c=a.N;a.g&&(b=a.N,c=a.C);a.L=0;if(!a.wd&&(a.L=(a.C*a.na>>3)*a.N,!Nb(a.I,a.ka,a.L,3)))return!1;a.L?(a.Wa=a.j.createImageData(b,c),a.ib=16/a.na|0,pf(a,a.L>>1)):pf(a,(a.O+1)*a.Z);a.D=document.createElement("canvas");a.D.width=b;a.D.height=c;a.ta=a.D.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+qf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==rf&&(a.U[a.X+sf]=[255,255,0,255],a.U[a.X+tf]=[0,255,0,255]);a.Y==uf&&(a.kb=60,a.za=!1,a.fa=Array(a.O));
return!0}l=kf.prototype;l.da=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Aa[b]=c,!0;switch(b){case "fullScreen":return this.P[b]=c,this.b&&this.b.Ya?c.onclick=function(){d.Ya()}:c.parentNode.removeChild(c),!0}return!1};
l.Ga=function(a,b,c,d){this.R=a;this.I=b;this.u=c;this.K=d;de(this);if(this.B=Jb(a,"Keyboard")){for(var e in this.Aa)this.B.da("led",e,this.Aa[e]);this.F&&this.B.da(this.Dd?"textarea":"canvas","screen",this.W)}var f=this;this.yb=Vc(this.u,function(){$c(f)});Wc(this.u,this.yb,1E3/Math.max(this.lb,this.oa));this.jb=0;this.S||zb(this)};
function of(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{gb(a.fb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){r("Empty font ROM: "+b);return}if(1==f.length){r(f[0]);return}if(2048==f.length)a.ba=f,ee(a);else{a.aa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.aa("Font ROM data error: "+g.message);return}(a.j||a.K)&&zb(a)}}
function ee(a){a.ba&&(a.Oa=a.Y==uf,a.T[vf]=[wf(a,a.ga,a.ca),wf(a,a.ga,a.ca,a.za)],a.T[xf]=[wf(a,2*a.ga,a.ca),wf(a,2*a.ga,a.ca,a.za)],a.T[yf]=a.T[zf]=[wf(a,2*a.ga,2*a.ca),wf(a,2*a.ga,2*a.ca,a.za)])}
function wf(a,b,c,d){var e=8>=a.Da?8:16,f=8<e?15:0,g=a.ba.length/e,h=!1===d,k={ga:b,ca:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=g/16*c;k.context=k.canvas.getContext("2d");for(var p=k.context.createImageData(b,c),t=0;t<g;t++){for(var v=0,B=v;v<a.ca;v++)for(var y=t*e+(f+v&e-1),y=d&&8==v?255:a.ba[y],w=0;w<c/a.ca;w++){for(var C=0,T=0,za=T;T<a.ga;T++){for(var L=y&128>>(7<T?7:T),C=a.Oa&&!L&&C?C:L,ja=0;ja<b/a.ga;ja++)h&&(C=!C),Af(a,p,za,B,C?1:0),za++;C=L}B++}k.context.putImageData(p,
(t&15)*b,(t>>4)*c)}return k}l.wa=function(a,b){return b||!a||this.restore(a)?!0:!1};l.va=function(a){return!a||this.save()};l.save=function(){var a=new td(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};
l.Xa=function(){var a=!1;if(this.b){if(this.b.Xa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.M/this.H;b>c&&(a=Math.round(c/b*100)+"%")}this.Ta?(this.F.style.width=a,this.F.style.width=a,this.F.style.display="block",this.F.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Xa();a=!0}this.W&&this.W.focus()}return a};
function nf(a,b){!b&&a.b&&(a.Ta?a.F.style.width=a.F.style.height="":a.b.style.width=a.b.style.height="");Db(a,"notifyFullScreen("+b+")")}function pf(a,b){a.gb=b;a.V=!1;if(void 0===a.A||a.A.length!=a.gb)a.A=Array(a.gb)}function Af(a,b,c,d,e){d=a.g?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.Y==rf&&(208<=c&&236>c?e=a.X+sf:28<=c&&72>c&&(e=a.X+tf));a=a.U[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 $c(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.ib&1?(Rd(a.u,2),c=!1):Rd(a.u,1):Rd(a.u,4));if(c&&a.V&&a.L){for(var d=a.I,e=a.L,f=!0,g=a.ka>>>d.g;0<e&&g<d.b.length;)d.b[g].Ea&&(d.b[g].Ea=f=!1,d.b[g].Dc=!0),e-=d.w,g++;f&&(c=!1)}Wc(a.u,a.xb,1E3/Math.max(a.kb,a.oa));a.ib++}if(c)if(1<a.ga)switch(a.Y){case uf:for(var c=a.ka,d=-1,e=0,f=60==a.jb?2:5,h=g=0,k=-1;e<a.Z;){var p=0,t=c,v=d,B=a.O;for(v!=vf&&(B>>=1);;){var y=Ub(a.I,t++);if((y&Bf)==Bf){var w=Ub(a.I,t++),d=w&Cf,c=(w&Df)<<8|Ub(a.I,t),c=c+(w&Ef?
Ff:Gf);break}if(p<B)a.fa[p++]=y;else break}if(f)f--;else{for(;p<a.fa.length;)a.fa[p++]=0;if(0<=v)for(t=a.V&&a.A[g]==B,a.A[g++]=B,B=0;B<p;B++){y=a.fa[B];if(!t||y!==a.A[g]){a.A[k=g]=y;var w=a,C=a.ta,T=y&127;if(y=w.T[v][y&128?1:0]){var za=(T&15)*y.ga,T=(T>>4)*y.ca,L,ja,ua,na,Ma=y.ga,hc=y.ca;C?(L=B*w.ga,ja=e*w.ca,ua=w.ga,na=w.ca):(L=B*w.Ha,ja=e*w.Ma,ua=w.Ha,na=w.Ma);y.ga>w.ga&&(L*=2,ua*=2);y.ca>w.ca&&(v==zf&&(T+=w.ca),hc=w.ca);C?C.drawImage(y.canvas,za,T,Ma,hc,L,ja,ua,na):(L+=0,ja+=0,w.j.drawImage(y.canvas,
za,T,Ma,hc,L,ja,ua,na))}h++}g++}e++}}a.V=!0;!b&&a.xa&&1==h&&(a.A[k]=-1,h=0);a.xa=!1;(h||b)&&a.ta&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ca,0,0,a.Db,a.td)}else{e=a.ka;f=e+a.L;k=h=g=0;b=a.C;p=0;c=a.N;v=d=0;t=a.na;B=(1<<t)-1;a.yd&&(t=-t,v=16+t);for(;e<f;){w=Wb(a.I,e);if(a.V&&w===a.A[g])h+=a.hb;else{a.A[g]=w;(C=v)&&(w=w>>8|(w&255)<<8);h<b&&(b=h);for(y=a.hb;y--;)za=w>>C&B,Af(a,a.Va,h++,k,za),C+=t;h>p&&(p=h);k<c&&(c=k);k>=d&&(d=k+1)}e+=2;g++;if(h>=a.C&&(h=0,k++,k>a.N))break}a.V=!0;b<a.C&&(e=p-b,d-=c,a.g&&
(f=b,g=e,b=c,e=d,c=a.C-(f+g),d=g),a.ta.putImageData(a.Va,0,0,b,c,e,d),a.j.drawImage(a.D,0,0,a.D.width,a.D.height,0,0,a.M,a.H))}}var sf=0,tf=1,qf=2,mf=0,rf=1,uf=2,lf={SI1978:rf,VT100:uf},vf=96,xf=64,yf=32,zf=0,Bf=127,Df=15,Ef=16,Cf=96,Ff=8192,Gf=16384;
l.Ya=function(){var a=!1;if(this.b){if(this.b.Ya){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.M/this.H;b>c&&(a=Math.round(c/b*100)+"%")}this.Ua?(this.F.style.width=a,this.F.style.width=a,this.F.style.display="block",this.F.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Ya();a=!0}this.W&&this.W.focus()}return a};
function nf(a,b){!b&&a.b&&(a.Ua?a.F.style.width=a.F.style.height="":a.b.style.width=a.b.style.height="");Db(a,"notifyFullScreen("+b+")")}function pf(a,b){a.hb=b;a.V=!1;if(void 0===a.A||a.A.length!=a.hb)a.A=Array(a.hb)}function Af(a,b,c,d,e){d=a.g?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.Y==rf&&(208<=c&&236>c?e=a.X+sf:28<=c&&72>c&&(e=a.X+tf));a=a.U[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 $c(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.jb&1?(Rd(a.u,2),c=!1):Rd(a.u,1):Rd(a.u,4));if(c&&a.V&&a.L){for(var d=a.I,e=a.L,f=!0,g=a.ka>>>d.g;0<e&&g<d.b.length;)d.b[g].Ea&&(d.b[g].Ea=f=!1,d.b[g].Ec=!0),e-=d.w,g++;f&&(c=!1)}Wc(a.u,a.yb,1E3/Math.max(a.lb,a.oa));a.jb++}if(c)if(1<a.ga)switch(a.Y){case uf:for(var c=a.ka,d=-1,e=0,f=60==a.kb?2:5,h=g=0,k=-1;e<a.Z;){var p=0,t=c,v=d,B=a.O;for(v!=vf&&(B>>=1);;){var y=Ub(a.I,t++);if((y&Bf)==Bf){var w=Ub(a.I,t++),d=w&Cf,c=(w&Df)<<8|Ub(a.I,t),c=c+(w&Ef?
Ff:Gf);break}if(p<B)a.fa[p++]=y;else break}if(f)f--;else{for(;p<a.fa.length;)a.fa[p++]=0;if(0<=v)for(t=a.V&&a.A[g]==B,a.A[g++]=B,B=0;B<p;B++){y=a.fa[B];if(!t||y!==a.A[g]){a.A[k=g]=y;var w=a,C=a.ta,T=y&127;if(y=w.T[v][y&128?1:0]){var za=(T&15)*y.ga,T=(T>>4)*y.ca,L,ja,ua,na,Ma=y.ga,hc=y.ca;C?(L=B*w.ga,ja=e*w.ca,ua=w.ga,na=w.ca):(L=B*w.Ma,ja=e*w.Na,ua=w.Ma,na=w.Na);y.ga>w.ga&&(L*=2,ua*=2);y.ca>w.ca&&(v==zf&&(T+=w.ca),hc=w.ca);C?C.drawImage(y.canvas,za,T,Ma,hc,L,ja,ua,na):(L+=0,ja+=0,w.j.drawImage(y.canvas,
za,T,Ma,hc,L,ja,ua,na))}h++}g++}e++}}a.V=!0;!b&&a.xa&&1==h&&(a.A[k]=-1,h=0);a.xa=!1;(h||b)&&a.ta&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ca,0,0,a.Eb,a.ud)}else{e=a.ka;f=e+a.L;k=h=g=0;b=a.C;p=0;c=a.N;v=d=0;t=a.na;B=(1<<t)-1;a.zd&&(t=-t,v=16+t);for(;e<f;){w=Wb(a.I,e);if(a.V&&w===a.A[g])h+=a.ib;else{a.A[g]=w;(C=v)&&(w=w>>8|(w&255)<<8);h<b&&(b=h);for(y=a.ib;y--;)za=w>>C&B,Af(a,a.Wa,h++,k,za),C+=t;h>p&&(p=h);k<c&&(c=k);k>=d&&(d=k+1)}e+=2;g++;if(h>=a.C&&(h=0,k++,k>a.N))break}a.V=!0;b<a.C&&(e=p-b,d-=c,a.g&&
(f=b,g=e,b=c,e=d,c=a.C-(f+g),d=g),a.ta.putImageData(a.Wa,0,0,b,c,e,d),a.j.drawImage(a.D,0,0,a.D.width,a.D.height,0,0,a.M,a.H))}}var sf=0,tf=1,qf=2,mf=0,rf=1,uf=2,lf={SI1978:rf,VT100:uf},vf=96,xf=64,yf=32,zf=0,Bf=127,Df=15,Ef=16,Cf=96,Ff=8192,Gf=16384;
Ua(function(){for(var a=qb(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=ob(c),e=document.createElement("canvas");if(!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<=Ha().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||Pa("aspect"));f&&.3<=f&&3.33>=f&&(Ta("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");Oa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new kf(d,e,g,f,c);pb(d,c)}});
function Hf(a){u.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:r("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.W=a.tabSize;this.S=a.charBOL;this.w=0;this.N=!1;this.D=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=If;b&&(void 0===c&&(c="Panel"),(c=nb(c,this.id))&&(b=c.P[b])&&this.da(null,a,b))}this.A="";this.b=this.Ra=this.H=null;this.exports={connect:this.Fc,receiveData:this.Ob,receiveStatus:this.ne}}
aa(Hf,u);l=Hf.prototype;l.da=function(a,b,c,d){var e=this;switch(b){case If:return this.P[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Jf(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Jf(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.P[b]=c,c.onclick=function(){e.Ob(d);return!0},!0}return!1};
l.Ga=function(a,b,c,d){this.R=a;this.I=b;this.u=c;this.K=d;var e=this;this.Y=Vc(this.u,function(){e.Ob()});this.Z=Vc(this.u,function(){Te(e)});this.V=Jb(a,"ChipSet");ac(b,this,Kf,this.U);ec(b,this,Lf,this.U);zb(this)};
l.Fc=function(a){if(!this.b){var b=Jc(this.R,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ya(c[0]);if(d!=this.cb)return;c=ya(c[1]);if(this.b=lb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.D);if(this.Ra=e.receiveData){this.D=a;this.H=e.receiveStatus;this.status("Connected "+this.eb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
l.wa=function(a,b){if(!b)if(this.Fc(this.D),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.va=function(a){return a?this.save():!0};l.reset=function(){Mf(this)};l.save=function(){var a=new td(this),b=0,c=[];c[b++]=this.F;c[b++]=this.M;c[b++]=this.O;c[b++]=this.ia;c[b++]=this.B;c[b++]=this.C;c[b]=this.L;a.set(0,c);return a.data()};l.restore=function(a){return Mf(this,a[0])};
function Hf(a){u.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:r("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.W=a.tabSize;this.S=a.charBOL;this.w=0;this.N=!1;this.D=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=If;b&&(void 0===c&&(c="Panel"),(c=nb(c,this.id))&&(b=c.P[b])&&this.da(null,a,b))}this.A="";this.b=this.Sa=this.H=null;this.exports={connect:this.Gc,receiveData:this.Pb,receiveStatus:this.oe}}
aa(Hf,u);l=Hf.prototype;l.da=function(a,b,c,d){var e=this;switch(b){case If:return this.P[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Jf(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Jf(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.P[b]=c,c.onclick=function(){e.Pb(d);return!0},!0}return!1};
l.Ga=function(a,b,c,d){this.R=a;this.I=b;this.u=c;this.K=d;var e=this;this.Y=Vc(this.u,function(){e.Pb()});this.Z=Vc(this.u,function(){Te(e)});this.V=Jb(a,"ChipSet");ac(b,this,Kf,this.U);ec(b,this,Lf,this.U);zb(this)};
l.Gc=function(a){if(!this.b){var b=Jc(this.R,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ya(c[0]);if(d!=this.eb)return;c=ya(c[1]);if(this.b=lb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.D);if(this.Sa=e.receiveData){this.D=a;this.H=e.receiveStatus;this.status("Connected "+this.fb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
l.wa=function(a,b){if(!b)if(this.Gc(this.D),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.va=function(a){return a?this.save():!0};l.reset=function(){Mf(this)};l.save=function(){var a=new td(this),b=0,c=[];c[b++]=this.F;c[b++]=this.M;c[b++]=this.O;c[b++]=this.ia;c[b++]=this.B;c[b++]=this.C;c[b]=this.L;a.set(0,c);return a.data()};l.restore=function(a){return Mf(this,a[0])};
function Mf(a,b){var c=0;b||(b=Nf);a.F=b[c++];a.M=b[c++];a.O=b[c++];a.ia=b[c++];a.B=b[c++];a.C=b[c++];a.L=b[c];return!0}function Of(a,b){var c=a.L&b;b&15||(c>>=4);b=Pf[c];c=((a.B&Qf)>>2)+6;a.B&Rf&&c++;c+=((a.B&Sf)>>6)+1>>1;return 1E3/Math.round(b/c)}function Jf(a,b){Db(a,"receiveByte("+pa(b)+"), status="+pa(a.ia));return a.N||a.ia&Tf?!1:(a.M=b,a.ia|=Tf,Rd(a.u,a.X),!0)}
l.Ob=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCode(a));this.A&&(Jf(this,this.A.charCodeAt(0))&&(this.A=this.A.substr(1)),this.A&&this.u&&Wc(this.u,this.Y,Of(this,Uf)));return!0};l.ne=function(a){this.ia&=~Vf;a&64&&(this.ia|=Vf)};function Te(a,b){a.ia=a.ia|ce|Wf;b&&a.Ra&&a.Ra.call(a.b,b)}l.Hd=function(a,b){var c=this.M;x(this,a,null,b,"DATA",c);this.ia&=~Tf;return c};l.Gd=function(a,b){var c=this.ia;x(this,a,null,b,"STATUS",c);return c};
l.Vd=function(a,b,c){x(this,a,b,c,"DATA");this.O=b;this.ia&=~(ce|Wf);Db(this,"transmitByte("+pa(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Ra&&this.Ra.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0<this.w&&this.w--;else{var d;13!=b&&10!=b&&(d=Aa[b]);a=d=d?"<"+d+">":String.fromCharCode(b);c=a.length;9==b?(b=this.W||8,c=b-this.w%b,this.W&&(a=xa("",c))):13==b&&(this.w=c=0,a="\n");this.S&&!this.w&&c&&(a=String.fromCharCode(this.S)+a);this.g.value+=a;this.g.scrollTop=
this.g.scrollHeight;this.w+=c}else if(null!=this.j){if(10==b||1024<=this.j.length)this.i(this.j),this.j="";10!=b&&(this.j+=String.fromCharCode(b))}this.u&&Wc(this.u,this.Z,Of(this,Xf))};l.Ud=function(a,b,c){x(this,a,b,c,"CONTROL");this.F?(this.H&&(b^this.C)&(Yf|Zf)&&(a=0,this.D?(a|=b&Yf?32:0,a|=b&Zf?320:0):(a|=b&Yf?16:0,a|=b&Zf?1048576:0),this.H.call(this.b,a)),this.C=b,this.C&$f&&(this.F=!1)):(this.B=b,this.F=!0)};l.Td=function(a,b,c){x(this,a,b,c,"BAUDRATES");this.L=b};
var Qf=12,Rf=16,Sf=192,Zf=2,Yf=32,$f=64,ce=1,Tf=2,Wf=4,Vf=128,Uf=15,Xf=240,Pf=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Nf=[!1,0,0,133,142,39,238],If="buffer",Kf={0:Hf.prototype.Hd,1:Hf.prototype.Gd},Lf={0:Hf.prototype.Vd,1:Hf.prototype.Ud,2:Hf.prototype.Td};Ua(function(){for(var a=qb(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Hf(d);pb(d,c)}});
function ag(a){u.call(this,"Debugger",a);this.w=+a.base||16;this.oa=null;this.U=["{","}"];this.fa=["[","]"];this.O=this.ba=this.D=0;this.M=!1;this.b=-1;this.g=[];this.T={}}aa(ag,u);ag.prototype.Kb=function(){return-1};ag.prototype.Lb=function(){};
ag.prototype.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.M?a="end":a=this.g[this.b+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(ya(a.substring(d,f))),d=f+1}}return b};
l.Pb=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCode(a));this.A&&(Jf(this,this.A.charCodeAt(0))&&(this.A=this.A.substr(1)),this.A&&this.u&&Wc(this.u,this.Y,Of(this,Uf)));return!0};l.oe=function(a){this.ia&=~Vf;a&64&&(this.ia|=Vf)};function Te(a,b){a.ia=a.ia|ce|Wf;b&&a.Sa&&a.Sa.call(a.b,b)}l.Id=function(a,b){var c=this.M;x(this,a,null,b,"DATA",c);this.ia&=~Tf;return c};l.Hd=function(a,b){var c=this.ia;x(this,a,null,b,"STATUS",c);return c};
l.Wd=function(a,b,c){x(this,a,b,c,"DATA");this.O=b;this.ia&=~(ce|Wf);Db(this,"transmitByte("+pa(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Sa&&this.Sa.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0<this.w&&this.w--;else{var d;13!=b&&10!=b&&(d=Aa[b]);a=d=d?"<"+d+">":String.fromCharCode(b);c=a.length;9==b?(b=this.W||8,c=b-this.w%b,this.W&&(a=xa("",c))):13==b&&(this.w=c=0,a="\n");this.S&&!this.w&&c&&(a=String.fromCharCode(this.S)+a);this.g.value+=a;this.g.scrollTop=
this.g.scrollHeight;this.w+=c}else if(null!=this.j){if(10==b||1024<=this.j.length)this.i(this.j),this.j="";10!=b&&(this.j+=String.fromCharCode(b))}this.u&&Wc(this.u,this.Z,Of(this,Xf))};l.Vd=function(a,b,c){x(this,a,b,c,"CONTROL");this.F?(this.H&&(b^this.C)&(Yf|Zf)&&(a=0,this.D?(a|=b&Yf?32:0,a|=b&Zf?320:0):(a|=b&Yf?16:0,a|=b&Zf?1048576:0),this.H.call(this.b,a)),this.C=b,this.C&$f&&(this.F=!1)):(this.B=b,this.F=!0)};l.Ud=function(a,b,c){x(this,a,b,c,"BAUDRATES");this.L=b};
var Qf=12,Rf=16,Sf=192,Zf=2,Yf=32,$f=64,ce=1,Tf=2,Wf=4,Vf=128,Uf=15,Xf=240,Pf=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Nf=[!1,0,0,133,142,39,238],If="buffer",Kf={0:Hf.prototype.Id,1:Hf.prototype.Hd},Lf={0:Hf.prototype.Wd,1:Hf.prototype.Vd,2:Hf.prototype.Ud};Ua(function(){for(var a=qb(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Hf(d);pb(d,c)}});
function ag(a){u.call(this,"Debugger",a);this.w=+a.base||16;this.Ja=null;this.U=["{","}"];this.fa=["[","]"];this.S=this.ba=this.D=0;this.N=!1;this.b=-1;this.g=[];this.M={}}aa(ag,u);ag.prototype.Lb=function(){return-1};ag.prototype.Mb=function(){};
ag.prototype.Bb=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.N?a="end":a=this.g[this.b+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(ya(a.substring(d,f))),d=f+1}}return b};
function bg(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a|0:(b=Math.pow(2,b-1),a<-b?(a<2*-b&&(d=a%(2*b)),d+=2*b):d>=b&&(a>=2*b&&(d=a%(2*b)),d-=2*b));a!=d&&(a=d);return a}
function cg(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "^/":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=bg(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(bg(e))}return!0}
function dg(a,b,c,d,e,f){var g,h,k,p=!1,t=0,v=[],B=[],y=a.w;for(a.w=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)t=eg(a,h,null,f,t);else if("{"==k){h=1;for(t=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;t=dg(a,b,t,c-1,a.w,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.w=2;continue}if("^O"==k){a.w=8;continue}if("^D"==k){a.w=10;continue}if(!(t&-1073741824)){if("+"==k)continue;if("-"==k){t=t<<2|1;continue}if("~"==k||"^-"==k){t=t<<2|2;continue}if("^L"==
k){t=t<<2|3;continue}}p=!0;break}if(void 0===t)if(null==a.oa&&f)a.oa=h,t=0;else{p=!0;f=!f;break}v.push(bg(t));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{p=!0;break}if(!k)break;t="<"==a.U[0]?fg:gg;if(!t[k]){p=!0;break}B.length&&t[k]<=t[B[B.length-1]]&&cg(v,B,1);B.push(k);a.w="^_"==k?10:e;t=0}if(p||!cg(v,B)||1!=v.length)p=!0;p?!1===f&&a.i("parse error ("+(h||k)+")"):g=v.pop();a.w=y;return g}
k){t=t<<2|3;continue}}p=!0;break}if(void 0===t)if(null==a.Ja&&f)a.Ja=h,t=0;else{p=!0;f=!f;break}v.push(bg(t));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{p=!0;break}if(!k)break;t="<"==a.U[0]?fg:gg;if(!t[k]){p=!0;break}B.length&&t[k]<=t[B[B.length-1]]&&cg(v,B,1);B.push(k);a.w="^_"==k?10:e;t=0}if(p||!cg(v,B)||1!=v.length)p=!0;p?!1===f&&a.i("parse error ("+(h||k)+")"):g=v.pop();a.w=y;return g}
function hg(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var h=0,k=g+1,p=e;k<b.length;){var t=b[k++];if(t==c){p=-1;break}if(!p)break;p--;t=t.charCodeAt(0);7==d?t&=127:t=t-32&63;h=bg(h*Math.pow(2,d)+t,d*e,!0)}if(0<=p){!1===f&&a.i("parse error ("+b+")");break}else b=b.substr(0,g)+ig(a,h,-1)+b.substr(k)}return b}
function jg(a,b,c){var d=void 0;a.oa=null;if(b){"{"!=a.U[0]&&(b=b.split(a.U[0]).join("{").split(a.U[1]).join("}"));b=hg(a,b,'"',7,5,c);if(!b)return d;b=hg(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*| )/);d=dg(a,b,0,b.length,a.w,c);void 0!==d&&!1===c&&kg(a,null,d)}return d}
function jg(a,b,c){var d=void 0;a.Ja=null;if(b){"{"!=a.U[0]&&(b=b.split(a.U[0]).join("{").split(a.U[1]).join("}"));b=hg(a,b,'"',7,5,c);if(!b)return d;b=hg(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*| )/);d=dg(a,b,0,b.length,a.w,c);void 0!==d&&!1===c&&kg(a,null,d)}return d}
function lg(a,b){var c,d=a.U[0],e=a.U[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=jg(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?ig(a,g):"undefined")}if(a.fa.length)for(d=a.fa[0],e=a.fa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=
a.O-a.ba}if(null==e)break;b=b.replace(d[0],e.toString())}return b}function eg(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.Kb(b),0<=f?f=a.Lb(f):(f=a.T[b],null==f&&(f=ma(b,1<b.length?a.w:10))),null!=f){for(;e;){switch(e&3){case 1:f=-bg(f);break;case 2:f|=-1;break;case 3:for(a=35;0<=a&&!(f&Math.pow(2,a));)a--;f=35-a}e>>>=2}f=bg(f)}else d||a.i("invalid "+(c?c:"value")+": "+b);else d||a.i("missing "+(c||"value"));return f}
function kg(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.w?ig(a,c,32,8,1)+" "+c+".":ig(a,c,32,16,1)+" "+ig(a,c,32,8,1)+" "+ig(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.i((null!=b?b+": ":"")+d);return e}function mg(a,b){if(b)return kg(a,b,a.T[b]);var c=0;for(b in a.T)kg(a,b,a.T[b]),c++;return 0<c}
a.S-a.ba}if(null==e)break;b=b.replace(d[0],e.toString())}return b}
function eg(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b){f=a.Lb(b);if(0<=f)f=a.Mb(f);else if(f=a.M[b]&&a.M[b].value,null!=f){var g=a.M[b]&&a.M[b].Ja;g&&(a.Ja?(d||(a.i(b+" has too many undefined values ("+g+","+a.Ja+")"),d=!0),f=void 0):a.Ja=g)}else f=ma(b,1<b.length?a.w:10);if(null!=f){for(;e;){switch(e&3){case 1:f=-bg(f);break;case 2:f|=-1;break;case 3:for(a=35;0<=a&&!(f&Math.pow(2,a));)a--;f=35-a}e>>>=2}f=bg(f)}else d||a.i("invalid "+(c?c:"value")+": "+b)}else d||a.i("missing "+(c||"value"));return f}
function kg(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.w?ig(a,c,32,8,1)+" "+c+".":ig(a,c,32,16,1)+" "+ig(a,c,32,8,1)+" "+ig(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.i((null!=b?b+": ":"")+d);return e}function mg(a,b){if(b)return kg(a,b,a.M[b].value);var c=0;for(b in a.M)kg(a,b,a.M[b].value),c++;return 0<c}
function ig(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.w){case 2:(a=0<c?c:0)?36<a&&(a=36):(a=Math.abs(b),a=255>=a?8:262143>=a?18:36);b=oa(b,2,a,"",e);break;case 8:(a=0<c?(c+2)/3|0:0)?12<a&&(a=12):(a=Math.abs(b),a=262143>=a?6:16777215>=a?8:12);b=oa(b,8,a,e?"0o":"");break;case 10:(e=0<c?Math.ceil(.3*c):0)?11<e&&(e=11):e=99999>=Math.abs(b)?5:11;b=oa(b,10,e);break;default:b=n(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var gg={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},fg={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
function ng(a){ag.call(this,a);this.style=og;this.H=pg();this.ta=pg();this.S=pg();this.B=[];this.j=this.L=this.A=[];qg(this);this.X=0;rg(this);this.ka={};sg(this,a.messages);this.na=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Nc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Nc(b,a)})}aa(ng,ag);l=ng.prototype;
l.Ga=function(a,b,c,d){this.I=b;this.u=c;this.R=a;(a=Jc(a,"messages"))&&sg(this,a);this.sa=tg;$d(this,64,function(a){a:{var b=d.I.b,c=a[0],e=a=0,k=b.length;if(c){a=ug(vg(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.I.g;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;k--;){var t=b[e];t.type==c?p++||d.i("..."):(c=t.type,p=Sb[c],t&&d.i(n(t.id)+" %"+n(e<<d.I.g)+" %%"+n(t.J)+" "+q(t.pb)+" "+
function ng(a){ag.call(this,a);this.style=og;this.H=pg();this.sa=pg();this.T=pg();this.B=[];this.j=this.L=this.A=[];qg(this);this.X=0;rg(this);this.ka={};sg(this,a.messages);this.na=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Nc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Nc(b,a)})}aa(ng,ag);l=ng.prototype;
l.Ga=function(a,b,c,d){this.I=b;this.u=c;this.R=a;(a=Jc(a,"messages"))&&sg(this,a);this.oa=tg;$d(this,64,function(a){a:{var b=d.I.b,c=a[0],e=a=0,k=b.length;if(c){a=ug(vg(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.I.g;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;k--;){var t=b[e];t.type==c?p++||d.i("..."):(c=t.type,p=Sb[c],t&&d.i(n(t.id)+" %"+n(e<<d.I.g)+" %%"+n(t.J)+" "+q(t.qb)+" "+
q(t.size)+" "+p),c!=vc&&(c=-1),p=0);a+=d.I.w;e++}}});zb(this)};
l.da=function(a,b,c){var d=this;switch(b){case "debugInput":return this.W=this.P[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Nc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.b<d.g.length-1&&(b=d.g[++d.b])):40==a.keyCode&&(0<d.b?b=d.g[--d.b]:(b="",d.b=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.P[b]=c,Sa(c,function(){if(d.W){var a=d.W.value;d.W.value=
"";Nc(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,Sa(c,function(a){var b=!1;Ab(d,!0)||(Bb(d,!0),b=wg(d,a?1:0),Bb(d,!1));return b}),!0}return!1};l.Za=function(){this.W&&this.W.focus()};function ug(a){a=a&&a.J;null==a&&(a=-1);return a}l.Ia=function(a,b){var c=255,d=ug(a);-1!==d&&(c=Ub(this.I,d),b&&xg(a,b));return c};l.Gb=function(a,b){var c=65535,d=ug(a);-1!==d&&(c=Wb(this.I,d),b&&xg(a,b));return c};l.Xb=function(a,b,c){var d=ug(a);-1!==d&&(Xb(this.I,d,b),c&&xg(a,c),Oc(this.u,!0))};
l.Qc=function(a,b,c){var d=ug(a);if(-1!==d){var e=this.I,f=d&e.j,g=(d&e.C)>>>e.g;f!=e.j?e.b[g].Sb(f,b&65535,d):(e.b[g++].qb(f,b&255,d),e.b[g&e.H].qb(0,b>>8&255,d+1));c&&xg(a,c);Oc(this.u,!0)}};function pg(a){return{J:a,Fa:!1}}function Vg(a){return[a.J,a.Fa]}function Xg(a){return{J:a[0],Fa:a[1]}}
function vg(a,b,c){var d;c=(c?a.H:a.ta).J;if(void 0!==b){d=b=lg(a,b)||b;var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.B.length;c++){var f=a.B[c].ra[d];if(void 0!==f){d=f.o;void 0!==d&&(e=pg(d));break}}if(d=e)return d;c=jg(a,b)}null!=c&&(d=pg(c));return d}function Yg(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sd=a.Ab(b.Jc=c[2]))}function xg(a,b){null!=a.J&&(a.J+=b||1)}function Zg(a){return n(a,4)}
function $g(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ia(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function sg(a,b){a.K=a;a.ha=a.wd=536870912;a.Y=null;a.Z=[];b=a.Ab(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Hb)0<=Ea(b,c)&&(a.ha|=Hb[c],a.i(c+" messages enabled"))}function $d(a,b,c){for(var d in Hb)if(b==Hb[d]){a.ka[d]=c;break}}
l.Kb=function(a,b){var c;a=a.toUpperCase();null==b?c=Ea(ah,a):(c=Ea(ah,a.substr(b,2)),0>c&&(c=Ea(ah,a.substr(b,1))));return c};function bh(a,b){var c=0;a=a.Lb(b);if(void 0!==a)switch(b){case ch:case dh:case eh:case fh:case gh:case hh:case ih:case jh:c=2;break;case kh:case lh:case mh:case nh:case oh:case ph:case qh:c=4}return c?n(a,c):"??"}
l.Lb=function(a){var b;if(0<=a){var c=this.u;switch(a){case ch:b=c.g;break;case dh:b=c.w;break;case eh:b=c.A;break;case kh:b=ud(c);break;case fh:b=c.B;break;case gh:b=c.C;break;case lh:b=wd(c);break;case hh:b=c.D;break;case ih:b=c.F;break;case mh:b=D(c);break;case jh:b=E(c,D(c));break;case nh:b=c.M;break;case oh:b=c.j;break;case ph:b=sd(c);break;case qh:b=sd(c)&255|c.g<<8}}return b};
function rh(a,b){b=lg(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Kb(b,c+1),0<=e&&(b=b.substr(0,c)+bh(a,e)+b.substr(c+1+ah[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ma(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=vg(a,e))?(d=e+' "'+$g(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=vg(a,e))?(xg(d),d=
"";Nc(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,Sa(c,function(a){var b=!1;Ab(d,!0)||(Bb(d,!0),b=wg(d,a?1:0),Bb(d,!1));return b}),!0}return!1};l.$a=function(){this.W&&this.W.focus()};function ug(a){a=a&&a.J;null==a&&(a=-1);return a}l.Ha=function(a,b){var c=255,d=ug(a);-1!==d&&(c=Ub(this.I,d),b&&xg(a,b));return c};l.Hb=function(a,b){var c=65535,d=ug(a);-1!==d&&(c=Wb(this.I,d),b&&xg(a,b));return c};l.Yb=function(a,b,c){var d=ug(a);-1!==d&&(Xb(this.I,d,b),c&&xg(a,c),Oc(this.u,!0))};
l.Rc=function(a,b,c){var d=ug(a);if(-1!==d){var e=this.I,f=d&e.j,g=(d&e.C)>>>e.g;f!=e.j?e.b[g].Tb(f,b&65535,d):(e.b[g++].rb(f,b&255,d),e.b[g&e.H].rb(0,b>>8&255,d+1));c&&xg(a,c);Oc(this.u,!0)}};function pg(a){return{J:a,Fa:!1}}function Vg(a){return[a.J,a.Fa]}function Xg(a){return{J:a[0],Fa:a[1]}}
function vg(a,b,c){var d;c=(c?a.H:a.sa).J;if(void 0!==b){d=b=lg(a,b)||b;var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.B.length;c++){var f=a.B[c].ra[d];if(void 0!==f){d=f.o;void 0!==d&&(e=pg(d));break}}if(d=e)return d;c=jg(a,b)}null!=c&&(d=pg(c));return d}function Yg(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.td=a.Bb(b.Kc=c[2]))}function xg(a,b){null!=a.J&&(a.J+=b||1)}function Zg(a){return n(a,4)}
function $g(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ha(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function sg(a,b){a.K=a;a.ha=a.xd=536870912;a.Y=null;a.Z=[];b=a.Bb(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Hb)0<=Ea(b,c)&&(a.ha|=Hb[c],a.i(c+" messages enabled"))}function $d(a,b,c){for(var d in Hb)if(b==Hb[d]){a.ka[d]=c;break}}
l.Lb=function(a,b){var c;a=a.toUpperCase();null==b?c=Ea(ah,a):(c=Ea(ah,a.substr(b,2)),0>c&&(c=Ea(ah,a.substr(b,1))));return c};function bh(a,b){var c=0;a=a.Mb(b);if(void 0!==a)switch(b){case ch:case dh:case eh:case fh:case gh:case hh:case ih:case jh:c=2;break;case kh:case lh:case mh:case nh:case oh:case ph:case qh:c=4}return c?n(a,c):"??"}
l.Mb=function(a){var b;if(0<=a){var c=this.u;switch(a){case ch:b=c.g;break;case dh:b=c.w;break;case eh:b=c.A;break;case kh:b=ud(c);break;case fh:b=c.B;break;case gh:b=c.C;break;case lh:b=wd(c);break;case hh:b=c.D;break;case ih:b=c.F;break;case mh:b=D(c);break;case jh:b=E(c,D(c));break;case nh:b=c.M;break;case oh:b=c.j;break;case ph:b=sd(c);break;case qh:b=sd(c)&255|c.g<<8}}return b};
function rh(a,b){b=lg(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Lb(b,c+1),0<=e&&(b=b.substr(0,c)+bh(a,e)+b.substr(c+1+ah[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ma(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=vg(a,e))?(d=e+' "'+$g(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=vg(a,e))?(xg(d),d=
e+' "'+$g(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Zg(pg(this.u.j).J));this.ha&1073741824?this.Z.push(a):this.Y&&a==this.Y||(this.Y=a,this.ha&-2147483648&&(this.ea(),a+=" (cpu halted)"),this.i(a),this.u&&(a=this.u,Xc(a),a.ta=0,Oc(a)))};
function Eb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+q(c)+","+(f?f:"unknown")+(null!=d?","+pa(d):"")+")"+(null!=g?": "+pa(g):"")+(null!=e?" at "+Zg(e):""))}
function rg(a){var b;if(Sd(a)){if(!a.F||!a.F.length){a.F=Array(sh);for(b=0;b<a.F.length;b++)a.F[b]=pg();a.V=0;a.i("instruction history buffer allocated")}if(!a.C||!a.C.length)for(a.C=Array(256),b=0;b<a.C.length;b++)a.C[b]=[b,0]}else a.F&&a.F.length&&a.i("instruction history buffer freed"),a.V=0,a.F=[],a.C=[]}function th(a,b){if(!uh(a))return!1;a.u.tb(b);return!0}
function wg(a,b,c,d){if(!uh(a))return!1;a.D=0;b||Sd(a)&&Td(a,a.u.j,0);try{var e=a.u.Eb(b);0<e&&(a.D+=e,Sc(a.u,e,!0),Pc(a.u,e),a.O++)}catch(f){"number"!=typeof f&&(a.D=0,xb(a.u,f.stack||f.message))}!1!==d&&Oc(a.u);Mc(a,c||!1);return 0<a.D}l.ea=function(a){this.u&&this.u.ea(a)};function Mc(a,b){void 0===b&&(b=!0);a.H=pg(a.u.j);b&&1!=a.N?vh(a):wh(a)}
function uh(a){var b;if(b=a.u&&yb(a.u))b=a.u,b.G.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!Ab(a.u)?(a=a.u,a.G.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.wa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.va=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){rg(this);this.O=this.ba=0;this.Y=null;this.D=0;this.H=pg(this.u.j);this.G.ma=!1;xh(this);a||Mc(this)};
l.save=function(){var a=new td(this);a.set(0,Vg(this.H));a.set(1,Vg(this.S));a.set(2,[this.g,this.M,this.ha]);a.set(3,this.B);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.H=Xg(a[b++]),this.S=Xg(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.M=a[b][1],this.ha|=a[b][2]);a[3]&&(this.B=a[3]);return!0};l.start=function(a,b){this.N||this.i("running");this.G.ma=!0;this.Aa=a;this.Da=b};
l.stop=function(a,b){if(this.G.ma){this.G.ma=!1;this.D=b-this.Da;if(!this.N){b="stopped";if(this.D){a-=this.Aa;var c=0<a?Math.round(1E3*this.D/a):0;b+=" (";Sd(this)&&(b+=this.O+" opcodes, ",this.ba-=this.O,this.O=0);b+=this.D+" cycles, "+a+" ms, "+c+" hz)"}else Cb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Mc(this,!0);this.Za();xh(this,this.u.j)}};function Sd(a){return 1<a.j.length||!!a.X}
function Td(a,b,c){var d=a.u;if(0<c&&(a.X&&!--a.X||Gc(a,b,1,a.j)))return!0;0<=c&&a.C.length&&(a.O++,b=Ub(a.I,b),null!=b&&(a.C[b][1]++,b=a.F[a.V],b.J=d.j,b.Fa=!1,++a.V==a.F.length&&(a.V=0)));return!1}function cc(a,b,c){a.i("break on input from port "+q(b)+": "+n(c));a.ea(!0)}function gc(a,b,c){a.i("break on output to port "+q(b)+": "+n(c));a.ea(!0)}
function qg(a){var b,c;a.j=["bp"];if(a.L)for(b=1;b<a.L.length;b++){c=a.L[b];var d=a.I;Fc(d.b[ug(c)>>>d.g],!1)}a.L=["br"];if(a.A)for(b=1;b<a.A.length;b++)c=a.A[b],d=a.I,Fc(d.b[ug(c)>>>d.g],!0);a.A=["bw"];a.xa=0}l.Pa=function(a,b,c){var d=!0;c||yh(this,a,b,!1,!0);if(a!=this.j){var e=ug(b);if(-1===e)this.i("invalid address: "+Zg(b.J)),d=!1;else{var f=this.I;f.b[e>>>f.g].Pa(e&f.j,a==this.A)}}d&&(a.push(b),c?b.Fa=!0:(zh(this,a,a.length-1,"set"),rg(this)));return d};
function yh(a,b,c,d,e){var f=!1;c=ug(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==ug(h)&&(!d||h.Fa)){f=!0;h.Fa||e||zh(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.I,Fc(d.b[c>>>d.g],b==a.A));h.Fa||rg(a);break}}return f}function Ah(a,b){for(var c=1;c<b.length;c++)zh(a,b,c);return b.length-1}function zh(a,b,c,d){c=b[c];a.i(b[0]+" "+Zg(c.J)+(d?" "+d:c.Jc?' "'+c.Jc+'"':""))}
function xh(a,b){if(void 0!==b)Gc(a,b,1,a.j,!0),a.N=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Fa){if(!yh(a,a.j,c,!0))break;b=0}}}
function Gc(a,b,c,d,e){var f=!1;if(!a.xa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Fa)for(var k=ug(h),p=0;p<c;p++)if(b+p==k){var t,f=!0;h.Fa&&(yh(a,d,h,!0),e=!0);if(t=h.sd){for(var f=!1,v=0;v<t.length;v++)if(!Bh(a,t[v],!0)){if(t[v].indexOf("if")){f=!0;break}for(var B=v+1;B<t.length&&t[B].indexOf("else");B++)v++;if(B==t.length){f=!0;break}}a.u.G.ma||(f=!0)}if(f){e||zh(a,d,g,"hit");break}}}a.xa--;return f}
function Ch(a,b,c,d){for(var e=pg(b.J),f=a.Ia(b,1),g=a.sa[f],h="",k=(a.style!=Dh?Eh:Fh)[g[0]],p=g.length-1,t=Gh,v,B=1;B<=p;B++){var y="";v=g[B];if(void 0!==v&&!(v&O&&a.style==og)){var w=v&Hh;if(w){var C=v&Ih;C?t=C:v|=t;v&Jh||(v|=1==B?Kh:Lh);if(w&P)a:{y=a;w=v;C=b;switch(w&Ih){case Q:C=n(y.Ia(C,1),2);break;case Mh:C=n(y.Ia(C,1)<<24>>24,4);break;case Nh:C=n(y.Gb(C,2),4);break;default:y="imm("+q(w)+")";break a}y.style==Dh&&w&Oh?C="["+C+"]":w&Ph||(C=(y.style==og?"$":"0x")+C);y=C}else w&Ph?(y=(v&Qh)>>8,
w=ah[y],a.style==Dh&&v&Oh&&(y==jh&&(w="HL"),w="["+w+"]"),y=w):w&Rh&&(y=(f>>3&7).toString());if(!y||!y.length){h="INVALID";break}0<h.length&&(h+=",");h+=y||"???"}}}f="";g=Zg(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=n(a.Ia(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=xa(f,10);g+=v&Sh?"*":" ";g+=xa(k,7);h&&(g+=" "+h);c&&(g=xa(g,40)+";"+c,g=a.u.G.Wa?g+("cycles="+Qc(a.u).toString()+" cs="+n(a.u.xa)):g+(null!=d?"="+d.toString():""));return g}
function Th(a,b){switch(b){case "IF":a=a.u.N&512;break;case "SF":a=Ed(a.u);break;case "ZF":a=Dd(a.u);break;case "AF":a=Cd(a.u);break;case "PF":a=Bd(a.u);break;case "CF":a=zd(a.u);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Uh(a,b){return ah[b]+"="+bh(a,b)+" "}function Vh(a){return Uh(a,ch)+Uh(a,kh)+Uh(a,lh)+Uh(a,mh)+Uh(a,nh)+Th(a,"IF")+Th(a,"SF")+Th(a,"ZF")+Th(a,"AF")+Th(a,"PF")+Th(a,"CF")}l.Ac=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Wh(a,b,c){var d=[],e=ug(b)>>>0;for(b=0;b<a.B.length;b++){var f=a.B[b],g=f.J>>>0,h=f.Qd;if(e>=g&&e<g+h){e=Ca(f.zc,[e-g],a.Ac);0<=e?Xh(a,b,e,d):c&&(e=~e,Xh(a,b,e-1,d),Xh(a,b,e,d));break}}return d}function Xh(a,b,c,d){var e={},f=a.B[b].zc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.B[b].ra[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function Yh(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.C)if("clear"==b){for(b=0;b<a.C.length;b++)a.C[b]=[b,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var d=a.C.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=Dh?Eh:Fh;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.sa[f][0]]+" ").substr(0,5)+" ("+pa(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function Zh(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return mg(a)||a.i("no variables"),!0;if(!c[2])return mg(a,c[1]);if(!c[3])return delete a.T[c[1]],!0;b=jg(a,c[3]);return void 0!==b?(a.T[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function Eb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.eb+"."+(null!=d?"outPort":"inPort")+"("+q(c)+","+(f?f:"unknown")+(null!=d?","+pa(d):"")+")"+(null!=g?": "+pa(g):"")+(null!=e?" at "+Zg(e):""))}
function rg(a){var b;if(Sd(a)){if(!a.F||!a.F.length){a.F=Array(sh);for(b=0;b<a.F.length;b++)a.F[b]=pg();a.V=0;a.i("instruction history buffer allocated")}if(!a.C||!a.C.length)for(a.C=Array(256),b=0;b<a.C.length;b++)a.C[b]=[b,0]}else a.F&&a.F.length&&a.i("instruction history buffer freed"),a.V=0,a.F=[],a.C=[]}function th(a,b){if(!uh(a))return!1;a.u.ub(b);return!0}
function wg(a,b,c,d){if(!uh(a))return!1;a.D=0;b||Sd(a)&&Td(a,a.u.j,0);try{var e=a.u.Fb(b);0<e&&(a.D+=e,Sc(a.u,e,!0),Pc(a.u,e),a.S++)}catch(f){"number"!=typeof f&&(a.D=0,xb(a.u,f.stack||f.message))}!1!==d&&Oc(a.u);Mc(a,c||!1);return 0<a.D}l.ea=function(a){this.u&&this.u.ea(a)};function Mc(a,b){void 0===b&&(b=!0);a.H=pg(a.u.j);b&&1!=a.O?vh(a):wh(a)}
function uh(a){var b;if(b=a.u&&yb(a.u))b=a.u,b.G.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!Ab(a.u)?(a=a.u,a.G.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.wa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.va=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){rg(this);this.S=this.ba=0;this.Y=null;this.D=0;this.H=pg(this.u.j);this.G.ma=!1;xh(this);a||Mc(this)};
l.save=function(){var a=new td(this);a.set(0,Vg(this.H));a.set(1,Vg(this.T));a.set(2,[this.g,this.N,this.ha]);a.set(3,this.B);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.H=Xg(a[b++]),this.T=Xg(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.N=a[b][1],this.ha|=a[b][2]);a[3]&&(this.B=a[3]);return!0};l.start=function(a,b){this.O||this.i("running");this.G.ma=!0;this.za=a;this.Aa=b};
l.stop=function(a,b){if(this.G.ma){this.G.ma=!1;this.D=b-this.Aa;if(!this.O){b="stopped";if(this.D){a-=this.za;var c=0<a?Math.round(1E3*this.D/a):0;b+=" (";Sd(this)&&(b+=this.S+" opcodes, ",this.ba-=this.S,this.S=0);b+=this.D+" cycles, "+a+" ms, "+c+" hz)"}else Cb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Mc(this,!0);this.$a();xh(this,this.u.j)}};function Sd(a){return 1<a.j.length||!!a.X}
function Td(a,b,c){var d=a.u;if(0<c&&(a.X&&!--a.X||Gc(a,b,1,a.j)))return!0;0<=c&&a.C.length&&(a.S++,b=Ub(a.I,b),null!=b&&(a.C[b][1]++,b=a.F[a.V],b.J=d.j,b.Fa=!1,++a.V==a.F.length&&(a.V=0)));return!1}function cc(a,b,c){a.i("break on input from port "+q(b)+": "+n(c));a.ea(!0)}function gc(a,b,c){a.i("break on output to port "+q(b)+": "+n(c));a.ea(!0)}
function qg(a){var b,c;a.j=["bp"];if(a.L)for(b=1;b<a.L.length;b++){c=a.L[b];var d=a.I;Fc(d.b[ug(c)>>>d.g],!1)}a.L=["br"];if(a.A)for(b=1;b<a.A.length;b++)c=a.A[b],d=a.I,Fc(d.b[ug(c)>>>d.g],!0);a.A=["bw"];a.ta=0}l.Qa=function(a,b,c){var d=!0;c||yh(this,a,b,!1,!0);if(a!=this.j){var e=ug(b);if(-1===e)this.i("invalid address: "+Zg(b.J)),d=!1;else{var f=this.I;f.b[e>>>f.g].Qa(e&f.j,a==this.A)}}d&&(a.push(b),c?b.Fa=!0:(zh(this,a,a.length-1,"set"),rg(this)));return d};
function yh(a,b,c,d,e){var f=!1;c=ug(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==ug(h)&&(!d||h.Fa)){f=!0;h.Fa||e||zh(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.I,Fc(d.b[c>>>d.g],b==a.A));h.Fa||rg(a);break}}return f}function Ah(a,b){for(var c=1;c<b.length;c++)zh(a,b,c);return b.length-1}function zh(a,b,c,d){c=b[c];a.i(b[0]+" "+Zg(c.J)+(d?" "+d:c.Kc?' "'+c.Kc+'"':""))}
function xh(a,b){if(void 0!==b)Gc(a,b,1,a.j,!0),a.O=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Fa){if(!yh(a,a.j,c,!0))break;b=0}}}
function Gc(a,b,c,d,e){var f=!1;if(!a.ta++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Fa)for(var k=ug(h),p=0;p<c;p++)if(b+p==k){var t,f=!0;h.Fa&&(yh(a,d,h,!0),e=!0);if(t=h.td){for(var f=!1,v=0;v<t.length;v++)if(!Bh(a,t[v],!0)){if(t[v].indexOf("if")){f=!0;break}for(var B=v+1;B<t.length&&t[B].indexOf("else");B++)v++;if(B==t.length){f=!0;break}}a.u.G.ma||(f=!0)}if(f){e||zh(a,d,g,"hit");break}}}a.ta--;return f}
function Ch(a,b,c,d){for(var e=pg(b.J),f=a.Ha(b,1),g=a.oa[f],h="",k=(a.style!=Dh?Eh:Fh)[g[0]],p=g.length-1,t=Gh,v,B=1;B<=p;B++){var y="";v=g[B];if(void 0!==v&&!(v&O&&a.style==og)){var w=v&Hh;if(w){var C=v&Ih;C?t=C:v|=t;v&Jh||(v|=1==B?Kh:Lh);if(w&P)a:{y=a;w=v;C=b;switch(w&Ih){case Q:C=n(y.Ha(C,1),2);break;case Mh:C=n(y.Ha(C,1)<<24>>24,4);break;case Nh:C=n(y.Hb(C,2),4);break;default:y="imm("+q(w)+")";break a}y.style==Dh&&w&Oh?C="["+C+"]":w&Ph||(C=(y.style==og?"$":"0x")+C);y=C}else w&Ph?(y=(v&Qh)>>8,
w=ah[y],a.style==Dh&&v&Oh&&(y==jh&&(w="HL"),w="["+w+"]"),y=w):w&Rh&&(y=(f>>3&7).toString());if(!y||!y.length){h="INVALID";break}0<h.length&&(h+=",");h+=y||"???"}}}f="";g=Zg(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=n(a.Ha(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=xa(f,10);g+=v&Sh?"*":" ";g+=xa(k,7);h&&(g+=" "+h);c&&(g=xa(g,40)+";"+c,g=a.u.G.Xa?g+("cycles="+Qc(a.u).toString()+" cs="+n(a.u.xa)):g+(null!=d?"="+d.toString():""));return g}
function Th(a,b){switch(b){case "IF":a=a.u.N&512;break;case "SF":a=Ed(a.u);break;case "ZF":a=Dd(a.u);break;case "AF":a=Cd(a.u);break;case "PF":a=Bd(a.u);break;case "CF":a=zd(a.u);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Uh(a,b){return ah[b]+"="+bh(a,b)+" "}function Vh(a){return Uh(a,ch)+Uh(a,kh)+Uh(a,lh)+Uh(a,mh)+Uh(a,nh)+Th(a,"IF")+Th(a,"SF")+Th(a,"ZF")+Th(a,"AF")+Th(a,"PF")+Th(a,"CF")}l.Bc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Wh(a,b,c){var d=[],e=ug(b)>>>0;for(b=0;b<a.B.length;b++){var f=a.B[b],g=f.J>>>0,h=f.Rd;if(e>=g&&e<g+h){e=Ca(f.Ac,[e-g],a.Bc);0<=e?Xh(a,b,e,d):c&&(e=~e,Xh(a,b,e-1,d),Xh(a,b,e,d));break}}return d}function Xh(a,b,c,d){var e={},f=a.B[b].Ac,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.B[b].ra[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function Yh(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.C)if("clear"==b){for(b=0;b<a.C.length;b++)a.C[b]=[b,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var d=a.C.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=Dh?Eh:Fh;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.oa[f][0]]+" ").substr(0,5)+" ("+pa(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function Zh(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return mg(a)||a.i("no variables"),!0;if(!c[2])return mg(a,c[1]);if(!c[3])return delete a.M[c[1]],!0;b=jg(a,c[3]);return void 0!==b?(a.M[c[1]]={value:b,Ja:void 0},!0):!1}a.i("invalid assignment:"+b);return!1}
function $h(a,b,c){var d=null;if(b=vg(a,b,!0)){var e=Wh(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.J-e[1])&&(g=" + "+q(f)),f=e[0]+" ("+Zg(e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.J)&&(g=" - "+q(f)),f=e[4]+" ("+Zg(e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function ai(a,b){switch(b[1]){case "8080":a.style=og;break;case "8086":a.style=Dh;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.u.na=c;break;case "start":a.u.ya=c;break;case "stop":a.u.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Lc(a.u);a.i("checksums "+(a.u.G.Wa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Rc(a.u,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.u.Z.toFixed(2)+"Mhz")+" ("+a.u.U+
function ai(a,b){switch(b[1]){case "8080":a.style=og;break;case "8086":a.style=Dh;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.u.na=c;break;case "start":a.u.za=c;break;case "stop":a.u.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Lc(a.u);a.i("checksums "+(a.u.G.Xa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Rc(a.u,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.u.Z.toFixed(2)+"Mhz")+" ("+a.u.U+
"x)");return;case "?":a.i("debugger options:");a.i("\t8080\t\tselect 8080-style mnemonics");a.i("\t8086\t\tselect 8086-style mnemonics");a.i("\tcs int #\tset checksum cycle interval to #");a.i("\tcs start #\tset checksum cycle start count to #");a.i("\tcs stop #\tset checksum cycle stop count to #");a.i("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.i("unknown option: "+b[1]);return}}a.i(a.style+"-style mnemonics enabled")}
function vh(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}f=jg(a,b);if(void 0===f)return;switch(e.toUpperCase()){case "A":d.g=f&255;break;case "B":d.w=f&255;break;case "BC":d.w=f>>8&255;case "C":d.A=f&255;break;case "D":d.B=f&255;break;
case "DE":d.B=f>>8&255;case "E":d.C=f&255;break;case "H":d.D=f&255;break;case "HL":d.D=f>>8&255;case "L":d.F=f&255;break;case "SP":d.M=f&65535;break;case "PC":A(d,f);a.H=pg(d.j);break;case "PS":qd(d,f);break;case "PSW":qd(d,f&255|d.N&-256);d.g=f>>8;break;case "CF":d.H=f?d.H|256:d.H&255;break;case "PF":f?Bd(d)||(d.L^=1):Bd(d)&&(d.L^=1);break;case "AF":d.O=f?~d.L&16|d.O&-17:d.L&16|d.O&-17;break;case "ZF":d.H=f?d.H&-256:d.H|255;break;case "SF":f?Ed(d)||(d.L^=192):Ed(d)&&(d.L^=192);break;case "IF":d.N=
f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Oc(d);a.i("updated registers:")}a.i(Vh(a));c&&(a.H=pg(d.j),wh(a,Zg(a.H.J)))}}function bi(a,b){b=ya(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(rh(a,c[2])):jg(a,b,!1)}function ci(a,b,c){var d="t"!=b;c=eg(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ra(c,function(){return Bb(a,!0)&&wg(a,e,d,!1)},function(){Oc(a.u);Bb(a,!1)})}
function wh(a,b,c,d){if(b=vg(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=vg(a,c,!0);if(!d||d.J<b.J)return;e=d.J-b.J;if(256<e){a.i("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Ab(a,!1)||a.N?a.D:null;var g=null!=f?"cycles":null,h=Wh(a,b),k=b.J;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.i(p)}h[3]&&(g=h[3],f=null);f=Ch(a,b,g,f);a.i(f);a.H=b;e-=b.J-k;c++}}}
l.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.M?a="end":a=this.g[this.b+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(ya(a.substring(d,f))),d=f+1}}return b};
function Bh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.M&&(a.i("ended assemble at "+Zg(a.S.J)),a.H=a.S,a.M=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Y=null;if(yb(a)&&0<b.length){a.M&&(b="a "+Zg(a.S.J)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var p=g.charAt(k);if("?"==h||"r"==h||"a">p||"z"<p){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var t=vg(a,f[1],!0);if(t)if(a.S=
t,void 0===f[2])a.i("begin assemble at "+Zg(t.J)),a.M=!0,Oc(a.u);else{var v;a.i("not supported yet");v=[];if(v.length){for(var B=0;B<v.length;B++)a.Xb(t,v[B],1);a.i(Ch(a,a.S))}}break;case "b":a:{var y=f[0],w=f[1],C=b;if("?"==w)a.i("breakpoint commands:"),a.i("\tbi [p]\ttoggle break on input port [p]"),a.i("\tbo [p]\ttoggle break on output port [p]"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),
function wh(a,b,c,d){if(b=vg(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=vg(a,c,!0);if(!d||d.J<b.J)return;e=d.J-b.J;if(256<e){a.i("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Ab(a,!1)||a.O?a.D:null;var g=null!=f?"cycles":null,h=Wh(a,b),k=b.J;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.i(p)}h[3]&&(g=h[3],f=null);f=Ch(a,b,g,f);a.i(f);a.H=b;e-=b.J-k;c++}}}
l.Bb=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.N?a="end":a=this.g[this.b+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(ya(a.substring(d,f))),d=f+1}}return b};
function Bh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.N&&(a.i("ended assemble at "+Zg(a.T.J)),a.H=a.T,a.N=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Y=null;if(yb(a)&&0<b.length){a.N&&(b="a "+Zg(a.T.J)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var p=g.charAt(k);if("?"==h||"r"==h||"a">p||"z"<p){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var t=vg(a,f[1],!0);if(t)if(a.T=
t,void 0===f[2])a.i("begin assemble at "+Zg(t.J)),a.N=!0,Oc(a.u);else{var v;a.i("not supported yet");v=[];if(v.length){for(var B=0;B<v.length;B++)a.Yb(t,v[B],1);a.i(Ch(a,a.T))}}break;case "b":a:{var y=f[0],w=f[1],C=b;if("?"==w)a.i("breakpoint commands:"),a.i("\tbi [p]\ttoggle break on input port [p]"),a.i("\tbo [p]\ttoggle break on output port [p]"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),
a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");else{var T=y.charAt(1);if("l"==T){var za;za=0+Ah(a,a.j);za+=Ah(a,a.L);(za+=Ah(a,a.A))||a.i("no breakpoints")}else if("n"==T)a.X=eg(a,w),a.i("break after "+a.X+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=pg();if("*"!=w&&(L=vg(a,w,!0),!L))break a;w=q(L.J);"c"==T?null==L.J?(qg(a),a.i("all breakpoints cleared")):yh(a,a.j,L)||yh(a,a.L,L)||yh(a,a.A,L)||a.i("breakpoint missing: "+Zg(L.J)):
"i"==T?a.i("breakpoint "+($b(a.I,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(dc(a.I,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(Yg(a,L,C),"p"==T?a.Pa(a.j,L):"r"==T?a.Pa(a.L,L):"w"==T?a.Pa(a.A,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":a.ua&&(a.ua.value="");break;case "d":a:{var ja,ua=f[0],na=f[1],Ma=f[2],hc=f[3];if("?"==na){var Pb="";for(ja in Hb)a.ka[ja]&&(Pb&&(Pb+=","),Pb+=ja);Pb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");
"i"==T?a.i("breakpoint "+($b(a.I,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(dc(a.I,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(Yg(a,L,C),"p"==T?a.Qa(a.j,L):"r"==T?a.Qa(a.L,L):"w"==T?a.Qa(a.A,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":a.ua&&(a.ua.value="");break;case "d":a:{var ja,ua=f[0],na=f[1],Ma=f[2],hc=f[3];if("?"==na){var Pb="";for(ja in Hb)a.ka[ja]&&(Pb&&(Pb+=","),Pb+=ja);Pb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");
a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Pb.length&&a.i("dump extension commands:\n\t"+Pb)}else if("state"==na){var re=di(a.R,!0);"console"==Ma?console.log(re):(a.ua&&(a.ua.value=""),re&&a.i(re))}else if("symbols"==na)for(var se=0;se<a.B.length;se++){var te=a.B[se],Qb;for(Qb in te.ra)if("."!=Qb.charAt(0)){var yg=te.ra[Qb].o;if(void 0!==yg){var zg=te.ra[Qb].l;zg&&(Qb=zg);a.i(Zg(yg)+" "+
Qb)}}}else{if("d"==ua){for(ja in Hb)if(f[1]==ja){var Ag=a.ka[ja];Ag?(f.shift(),f.shift(),Ag(f)):a.i("no dump registered for "+na);break a}na||(ua=a.Ha||"db")}else a.Ha=ua;if("dh"==ua){var Bg=na,Cg=Ma,Dg="",Eg=0,Na=a.V,Za=a.F;if(Za.length){var Ba=+Bg||a.ya,mc=+Cg||10;isNaN(Ba)?Ba=mc:Dg="more ";Ba>Za.length&&(a.i("note: only "+Za.length+" available"),Ba=Za.length);Na-=Ba;0>Na&&(null==Za[Za.length-1].J?(Ba=Na+Ba,Na=0):Na+=Za.length);var ue=[];"call"==Cg&&(mc=1E5,ue=["CALL"]);for(void 0!==Bg&&a.i(Ba+
" instructions earlier:");0<mc&&Na!=a.V;){var Fg=Za[Na++];if(null==Fg.J)break;var nc=pg(Fg.J),Hi=Ba--,Gg=Ch(a,nc,"history",Hi);(!ue.length||0<=Gg.indexOf(ue[0]))&&a.i(Gg);nc.Jb&&(Na+=nc.Jb,mc-=nc.Jb,Ba-=nc.Jb);Na>=Za.length&&(Na=0);a.ya=Ba;Eg++;mc--}}Eg||(a.i("no "+Dg+"history available"),a.ya=void 0)}else{var cd=vg(a,na);if(cd){var dd=0;Ma&&("l"==Ma.charAt(0)&&(Ma=Ma.substr(1)||hc),dd=eg(a,Ma)>>>0,65536<dd&&(dd=65536));for(var oc="",ed="dd"==ua?4:"dw"==ua?2:1,fd=ed*dd||128,Ii=fd+15>>4||1;Ii--&&0<
fd;){var gd=0,ve=0,pc,we="",Hg="",na=Zg(cd.J);for(pc=16;0<pc&&0<fd;pc--){var hd=a.Ia(cd,1),gd=gd|hd<<(ve++<<3);ve==ed&&(we+=n(gd,2*ed),we+=1==ed?9==pc?"-":" ":" ",gd=ve=0);Hg+=32<=hd&&128>hd?String.fromCharCode(hd):".";fd--}oc&&(oc+="\n");oc+=na+" "+we+(pc?"":" "+Hg)}oc&&a.i(oc);a.ta=cd}}}}break;case "e":if("else"==f[0])break;var id=1,Ig=255,Jg=a.Ia,Kg=a.Xb;"ew"==f[0]&&(id=2,Ig=65535,Jg=a.Gb,Kg=a.Qc);var Lg=id<<1,Mg=f[1];if(null==Mg)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),
a.i("\tew [a] [...] edit words at address a");else{var jd=vg(a,Mg);if(jd)for(var kd=2;kd<f.length;kd++){var qc=jg(a,f[kd]);if(void 0===qc){a.i("unrecognized value: "+f[kd]);break}qc&~Ig&&a.i("warning: "+n(qc)+" exceeds "+id+"-byte value");var Ji=Jg.call(a,jd);a.i("changing "+Zg(jd.J)+" from "+n(Ji,Lg,!0)+" to "+n(qc,Lg,!0));Kg.call(a,jd,qc,id)}}break;case "f":Yh(a,f[1]);break;case "g":a:{var Ng=f[1],Ki=b;if(void 0!==Ng){var xe=vg(a,Ng,!0);if(!xe)break a;Yg(a,xe,Ki);a.Pa(a.j,xe,!0)}th(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;
Qb)}}}else{if("d"==ua){for(ja in Hb)if(f[1]==ja){var Ag=a.ka[ja];Ag?(f.shift(),f.shift(),Ag(f)):a.i("no dump registered for "+na);break a}na||(ua=a.Da||"db")}else a.Da=ua;if("dh"==ua){var Bg=na,Cg=Ma,Dg="",Eg=0,Na=a.V,Za=a.F;if(Za.length){var Ba=+Bg||a.xa,mc=+Cg||10;isNaN(Ba)?Ba=mc:Dg="more ";Ba>Za.length&&(a.i("note: only "+Za.length+" available"),Ba=Za.length);Na-=Ba;0>Na&&(null==Za[Za.length-1].J?(Ba=Na+Ba,Na=0):Na+=Za.length);var ue=[];"call"==Cg&&(mc=1E5,ue=["CALL"]);for(void 0!==Bg&&a.i(Ba+
" instructions earlier:");0<mc&&Na!=a.V;){var Fg=Za[Na++];if(null==Fg.J)break;var nc=pg(Fg.J),Hi=Ba--,Gg=Ch(a,nc,"history",Hi);(!ue.length||0<=Gg.indexOf(ue[0]))&&a.i(Gg);nc.Kb&&(Na+=nc.Kb,mc-=nc.Kb,Ba-=nc.Kb);Na>=Za.length&&(Na=0);a.xa=Ba;Eg++;mc--}}Eg||(a.i("no "+Dg+"history available"),a.xa=void 0)}else{var cd=vg(a,na);if(cd){var dd=0;Ma&&("l"==Ma.charAt(0)&&(Ma=Ma.substr(1)||hc),dd=eg(a,Ma)>>>0,65536<dd&&(dd=65536));for(var oc="",ed="dd"==ua?4:"dw"==ua?2:1,fd=ed*dd||128,Ii=fd+15>>4||1;Ii--&&0<
fd;){var gd=0,ve=0,pc,we="",Hg="",na=Zg(cd.J);for(pc=16;0<pc&&0<fd;pc--){var hd=a.Ha(cd,1),gd=gd|hd<<(ve++<<3);ve==ed&&(we+=n(gd,2*ed),we+=1==ed?9==pc?"-":" ":" ",gd=ve=0);Hg+=32<=hd&&128>hd?String.fromCharCode(hd):".";fd--}oc&&(oc+="\n");oc+=na+" "+we+(pc?"":" "+Hg)}oc&&a.i(oc);a.sa=cd}}}}break;case "e":if("else"==f[0])break;var id=1,Ig=255,Jg=a.Ha,Kg=a.Yb;"ew"==f[0]&&(id=2,Ig=65535,Jg=a.Hb,Kg=a.Rc);var Lg=id<<1,Mg=f[1];if(null==Mg)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),
a.i("\tew [a] [...] edit words at address a");else{var jd=vg(a,Mg);if(jd)for(var kd=2;kd<f.length;kd++){var qc=jg(a,f[kd]);if(void 0===qc){a.i("unrecognized value: "+f[kd]);break}qc&~Ig&&a.i("warning: "+n(qc)+" exceeds "+id+"-byte value");var Ji=Jg.call(a,jd);a.i("changing "+Zg(jd.J)+" from "+n(Ji,Lg,!0)+" to "+n(qc,Lg,!0));Kg.call(a,jd,qc,id)}}break;case "f":Yh(a,f[1]);break;case "g":a:{var Ng=f[1],Ki=b;if(void 0!==Ng){var xe=vg(a,Ng,!0);if(!xe)break a;Yg(a,xe,Ki);a.Qa(a.j,xe,!0)}th(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var ye;if(a.G.ma)ye="halting",a.ea();else{if(Ab(a,!0))break a;ye="already halted"}c||a.i(ye)}break;case "i":if("if"==f[0]){var ze;var rc=b.substr(2),rc=ya(rc);jg(a,rc)?(c||a.i("true: "+rc),ze=!0):(c||a.i("false: "+rc),ze=!1);ze||(d=!1);break}if("int"==f[0]){var ld;var Li=f[1];if(a.u.N&512){var Ae=jg(a,Li);null==Ae?ld=!1:(a.i("requesting interrupt level "+Ae),Rd(a.u,Ae),ld=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),ld=!1;ld||(d=!1);break}var Be=f[1];if(Be&&"?"!=Be){var Ce=
eg(a,Be);if(void 0!==Ce){var Mi=bc(a.I,Ce);a.i(q(Ce)+": "+pa(Mi))}}else a.i("input commands:"),a.i("\ti [p]\tread port [p]"),a.i("warning: port accesses can affect hardware state");break;case "k":var Ni=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var De=0,Og=pg(),sc=pg(a.u.M);for(a.i("stack trace for "+Zg(sc.J));10>De;){for(var ub=null,Oi=256;65536>sc.J>>>0;){Og.J=a.Gb(sc,2);if(null==sc.J||!Oi--)break;for(var Pi=a,md=Og,
eg(a,Be);if(void 0!==Ce){var Mi=bc(a.I,Ce);a.i(q(Ce)+": "+pa(Mi))}}else a.i("input commands:"),a.i("\ti [p]\tread port [p]"),a.i("warning: port accesses can affect hardware state");break;case "k":var Ni=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var De=0,Og=pg(),sc=pg(a.u.M);for(a.i("stack trace for "+Zg(sc.J));10>De;){for(var ub=null,Oi=256;65536>sc.J>>>0;){Og.J=a.Hb(sc,2);if(null==sc.J||!Oi--)break;for(var Pi=a,md=Og,
Pg=null,tc=md.J,Qg=tc,Ee=1;6>=Ee&&tc;Ee++){if(2<Ee){md.J=tc;var nd=Ch(Pi,md);if(0<=nd.indexOf("CALL")){var Rg=nd.indexOf(" ");if(tc+(nd.indexOf(" ",Rg+1)-Rg-1)/2==Qg){Pg=nd;break}}}tc--}md.J=Qg;if(ub=Pg)break}if(!ub||null==ub)break;var Sg=null;if("ks"==Ni){var Tg=ub.match(/[0-9A-F]+$/);Tg&&(Sg=$h(a,Tg[0]))}ub=xa(ub,50)+" ;"+(Sg||"stack="+Zg(sc.J));a.i(ub);De++}De||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&$h(a,f[1],!0);break;case "m":a:{var $a,ab=null,ba=f[1];"?"==ba&&(ba=void 0);
if(void 0!==ba){var mb=0;if("all"==ba)mb=1878917119,ba=null;else if("on"==ba)ab=!0,ba=null;else if("off"==ba)ab=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for($a in Hb)if(ba==$a){mb=Hb[$a];ab=!!(a.ha&mb);break}if(!mb){a.i("unknown message category: "+ba);break a}}if(mb)if("on"==f[2])a.ha|=mb,ab=!0;else if("off"==f[2]&&(a.ha&=~mb,ab=!1,1073741824==mb)){for(var Fe=0;Fe<a.Z.length;Fe++)a.i(a.Z[Fe]);a.Z=[]}}var Qi=0,uc="";for($a in Hb)if(!ba||ba==$a){var Ri=!!(a.ha&Hb[$a]);if(null===
ab||ab==Ri)uc&&(uc+=","),++Qi%10||(uc+="\n\t"),"key"==$a&&($a="keys"),uc+=$a}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==ab?ab?"messages on: ":"messages off: ":"message categories:\n\t")+(uc||"none"));rg(a)}break;case "o":var Ge=f[1],Si=f[2];if(Ge&&"?"!=Ge){var He=eg(a,Ge,"port #"),Ie=eg(a,Si);void 0!==He&&void 0!==Ie&&(fc(a.I,He,Ie),a.i(q(He)+": "+pa(Ie)))}else a.i("output commands:"),a.i("\to [p] [b]\twrite byte [b] to port [p]"),a.i("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){bi(a,b.substr(5));break}var Ug="pr"==f[0]?1:0,Ti=1+Ug;if(a.N)a.i("step in progress");else{var Je=pg(a.u.j);switch(a.Ia(Je)){case 205:a.N=Ti,xg(Je,3)}a.N?(a.Pa(a.j,Je,!0),th(a)||(a.R&&a.R.Za(),a.N=0)):ci(a,Ug?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}vh(a,f);break;case "s":ai(a,f);break;case "t":ci(a,f[0],f[1]);break;case "u":wh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Zh(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.34.3 ("+a.u.xb+",RELEASE"+
(Fb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(Ha());break;case "?":if(f[1]){bi(a,b.substr(1));break}var Ke="commands:",Le;for(Le in ei)Ke+="\n"+xa(Le,9)+ei[Le];Sd(a)||(Ke+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Ke);break;default:a.i("unknown command: "+b),d=!1}}}catch(Wg){a.i("debugger error: "+(Wg.stack||Wg.message)),d=!1}return d}function Nc(a,b,c){b=a.Ab(b,c);for(var d in b)if(!Bh(a,b[+d]))return!1;return!0}
break;case "p":if("print"==f[0]){bi(a,b.substr(5));break}var Ug="pr"==f[0]?1:0,Ti=1+Ug;if(a.O)a.i("step in progress");else{var Je=pg(a.u.j);switch(a.Ha(Je)){case 205:a.O=Ti,xg(Je,3)}a.O?(a.Qa(a.j,Je,!0),th(a)||(a.R&&a.R.$a(),a.O=0)):ci(a,Ug?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}vh(a,f);break;case "s":ai(a,f);break;case "t":ci(a,f[0],f[1]);break;case "u":wh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Zh(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.34.3 ("+a.u.yb+",RELEASE"+
(Fb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(Ha());break;case "?":if(f[1]){bi(a,b.substr(1));break}var Ke="commands:",Le;for(Le in ei)Ke+="\n"+xa(Le,9)+ei[Le];Sd(a)||(Ke+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Ke);break;default:a.i("unknown command: "+b),d=!1}}}catch(Wg){a.i("debugger error: "+(Wg.stack||Wg.message)),d=!1}return d}function Nc(a,b,c){b=a.Bb(b,c);for(var d in b)if(!Bh(a,b[+d]))return!1;return!0}
var ei={"?":"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"},
og=8080,Dh=8086,Eh="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(" "),Fh="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(" "),
dh=0,eh=1,fh=2,gh=3,hh=4,ih=5,jh=6,ch=7,kh=8,lh=9,mh=10,nh=11,oh=12,ph=13,qh=14,ah="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Ih=15,Hh=240,Qh=3840,Jh=61440,Gh=0,Q=1,Mh=2,Nh=3,Ph=16,P=32,Oh=64,Rh=128,R=ch<<8|Ph|Q,S=dh<<8|Ph|Q,U=eh<<8|Ph|Q,V=fh<<8|Ph|Q,W=gh<<8|Ph|Q,X=hh<<8|Ph|Q,Y=ih<<8|Ph|Q,Z=jh<<8|Ph|Q|Oh,fi=kh<<8|Ph|Nh,gi=lh<<8|Ph|Nh,hi=mh<<8|Ph|Nh,ii=nh<<8|Ph|Nh,ji=qh<<8|Ph|Nh,Lh=4096,Kh=8192,O=16384,Sh=32768,tg=[[45],[42,fi,P],[71,fi|Oh,R|O],[29,fi],[28,S],[22,S],[44,S,P],[63],[45,Sh],[21,
@ -271,28 +272,28 @@ S,U],[43,S,V],[43,S,W],[43,S,X],[43,S,Y],[43,S,Z],[43,S,R],[43,U,S],[43,U,U],[43
U],[43,R,V],[43,R,W],[43,R,X],[43,R,Y],[43,R,Z],[43,R,R],[3,R|O,S],[3,R|O,U],[3,R|O,V],[3,R|O,W],[3,R|O,X],[3,R|O,Y],[3,R|O,Z],[3,R|O,R],[2,R|O,S],[2,R|O,U],[2,R|O,V],[2,R|O,W],[2,R|O,X],[2,R|O,Y],[2,R|O,Z],[2,R|O,R],[73,R|O,S],[73,R|O,U],[73,R|O,V],[73,R|O,W],[73,R|O,X],[73,R|O,Y],[73,R|O,Z],[73,R|O,R],[66,R|O,S],[66,R|O,U],[66,R|O,V],[66,R|O,W],[66,R|O,X],[66,R|O,Y],[66,R|O,Z],[66,R|O,R],[5,R|O,S],[5,R|O,U],[5,R|O,V],[5,R|O,W],[5,R|O,X],[5,R|O,Y],[5,R|O,Z],[5,R|O,R],[76,R|O,S],[76,R|O,U],[76,R|
O,V],[76,R|O,W],[76,R|O,X],[76,R|O,Y],[76,R|O,Z],[76,R|O,R],[46,R|O,S],[46,R|O,U],[46,R|O,V],[46,R|O,W],[46,R|O,X],[46,R|O,Y],[46,R|O,Z],[46,R|O,R],[18,R|O,S],[18,R|O,U],[18,R|O,V],[18,R|O,W],[18,R|O,X],[18,R|O,Y],[18,R|O,Z],[18,R|O,R],[58],[50,fi],[34,51],[30,51],[11,51],[51,fi],[4,R|O,P|Q],[65,Rh],[62],[54],[38,51],[30,51|Sh],[15,51],[7,51],[1,R|O,P|Q],[65,Rh],[57],[50,gi],[33,51],[48,P|Q,R|O],[10,51],[51,gi],[74,R|O,P|Q],[65,Rh],[55],[54,Sh],[31,51],[27,R|O,P|Q],[8,51],[7,51|Sh],[67,R|O,P|Q],[65,
Rh],[61],[50,hi],[37,51],[78,ii|Oh|O,hi|O],[14,51],[51,hi],[6,R|O,P|Q],[65,Rh],[60],[49,hi],[36,51],[75,hi|O,gi|O],[13,51],[7,51|Sh],[77,R|O,P|Q],[65,Rh],[59],[50,ji],[35,51],[24],[12,51],[51,ji],[47,R|O,P|Q],[65,Rh],[56],[69,ii|O,hi|O],[32,51],[25],[9,51],[7,51|Sh],[19,R|O,P|Q],[65,Rh]],sh=1E3;Ua(function(){for(var a=qb(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new ng(d);pb(d,c)}});
function ki(a,b,c){u.call(this,"Computer",a,67108864);this.G.ja=!1;li(this,b);this.L=Jc(this,"autoPower",a);this.j=0;this.T=a.busWidth||a.buswidth;this.b=mi;this.F=null;this.C=this.O=!1;this.U=Jc(this,"url")||"";(Math.random()+.1).toString(36);this.g=ni(this);if(this.u=nb("CPU",this.id)){this.K=nb("Debugger",this.id);this.A=[];for(b=null;b=Jb(this,"Video",b);)this.A.push(b);this.I=new Lb({id:this.eb+".bus",busWidth:this.T},this.u,this.K);var d,e=kb(this.id);if((this.B=nb("Panel",this.id))&&this.B.ua)for(b=
function ki(a,b,c){u.call(this,"Computer",a,67108864);this.G.ja=!1;li(this,b);this.L=Jc(this,"autoPower",a);this.j=0;this.T=a.busWidth||a.buswidth;this.b=mi;this.F=null;this.C=this.O=!1;this.U=Jc(this,"url")||"";(Math.random()+.1).toString(36);this.g=ni(this);if(this.u=nb("CPU",this.id)){this.K=nb("Debugger",this.id);this.A=[];for(b=null;b=Jb(this,"Video",b);)this.A.push(b);this.I=new Lb({id:this.fb+".bus",busWidth:this.T},this.u,this.K);var d,e=kb(this.id);if((this.B=nb("Panel",this.id))&&this.B.ua)for(b=
0;b<e.length;b++)d=e[b],d.aa=this.B.aa,d.i=this.B.i,d.ua=this.B.ua;this.i("PC8080 v1.34.3\nCopyright \u00a9 2012-2017 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.Ga&&d.Ga(this,this.I,this.u,this.K);b=null;d=Jc(this,"resume",a);void 0!==d&&(1<d.length?b=this.D=d:this.b=parseInt(d,10));var f;if(a=Jc(this,"state")||(f=!0,a.state))b=this.M=a,f||(this.C=!0,this.b=mi),this.b&&(this.H=new td(this,"1.34.3"),oi(this.H)?
b=null:delete this.H);!b&&this.b&&(b=pi(this))&&(this.C=!0);if(b){var g=this;Fa(b,null,!0,function(a,b,c){c?(g.D=null,g.C=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+ya(b):"")+")")):(g.F=b,g.O=!0);zb(g)})}else zb(this);this.P.power||(this.L=!0);!c&&this.L&&qi(this,this.nb)}else r("Unable to find CPU component")}aa(ki,u);function li(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.S=b}
b=null:delete this.H);!b&&this.b&&(b=pi(this))&&(this.C=!0);if(b){var g=this;Fa(b,null,!0,function(a,b,c){c?(g.D=null,g.C=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+ya(b):"")+")")):(g.F=b,g.O=!0);zb(g)})}else zb(this);this.P.power||(this.L=!0);!c&&this.L&&qi(this,this.ob)}else r("Unable to find CPU component")}aa(ki,u);function li(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.S=b}
function Jc(a,b,c){var d=b.toLowerCase(),d=Pa(b)||Pa(d);void 0===d&&a.S&&(d=a.S[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function qi(a,b,c){for(var d=kb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!yb(f)){yb(f,function(){qi(a,b,c)});return}}b.call(a,c)}
function ri(a,b){var c=new td(a,"1.34.3",si);if(oi(c)&&ti(c)){var d=c.get(ui),e=b?b.get(ui):"unknown";d!=e&&(a.aa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=ki.prototype;
l.nb=function(a){void 0===a&&(a=this.b||(this.F?vi:mi));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.H||new td(this,"1.34.3");if(a==wi)b=!0;else if(a>mi){if(oi(d,this.F)){this.w=new td(this,"1.34.3",xi);oi(this.w)&&(yi(this,d),a=zi,Ai(this.w));this.w.set(ui,Da());Bi(this.w);var e=this.b&&!this.C;if(a==vi||jb("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ti(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?oi(d,g):("error"==f&&"no machine state"!=
g?(this.aa("Error: "+g),"unable to verify user"==g&&(La(Ci,""),this.g=null)):this.i(f+": "+g),Ai(d),oi(d)?(c=ti(d),e=!0):c=!1))}e&&ri(this,c?d:null)}else a==zi&&d.clear()}else ri(this);delete this.F;delete this.H}e=kb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.u&&(c=Di(this,g,d,b,c));b=[d,a,c];a!=wi?qi(this,this.Cc,b):this.Cc(b)}};
function Di(a,b,c,d,e){if(!b.G.ja){b.G.ja=!0;if(b.wa){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.wa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.O?(c.clear(),a.b=mi,window&&window.location.reload()):a.N=!0,b.wa(null),e=!1)}if(!d&&b.vc)for(a=b.vc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.Cc=function(a){var b=a[0],c=0>a[1];a=a[2];this.V=!0;this.G.ja=!0;var d=this.P.power;d&&(d.textContent="Shutdown");this.u&&(Di(this,this.u,b,c,a),this.u.lb());this.N&&(yi(this,b),b.clear());!c&&this.w&&(this.w.clear(),delete this.w);this.j=0};
l.ob=function(a){void 0===a&&(a=this.b||(this.F?vi:mi));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.H||new td(this,"1.34.3");if(a==wi)b=!0;else if(a>mi){if(oi(d,this.F)){this.w=new td(this,"1.34.3",xi);oi(this.w)&&(yi(this,d),a=zi,Ai(this.w));this.w.set(ui,Da());Bi(this.w);var e=this.b&&!this.C;if(a==vi||jb("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ti(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?oi(d,g):("error"==f&&"no machine state"!=
g?(this.aa("Error: "+g),"unable to verify user"==g&&(La(Ci,""),this.g=null)):this.i(f+": "+g),Ai(d),oi(d)?(c=ti(d),e=!0):c=!1))}e&&ri(this,c?d:null)}else a==zi&&d.clear()}else ri(this);delete this.F;delete this.H}e=kb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.u&&(c=Di(this,g,d,b,c));b=[d,a,c];a!=wi?qi(this,this.Dc,b):this.Dc(b)}};
function Di(a,b,c,d,e){if(!b.G.ja){b.G.ja=!0;if(b.wa){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.wa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.O?(c.clear(),a.b=mi,window&&window.location.reload()):a.N=!0,b.wa(null),e=!1)}if(!d&&b.wc)for(a=b.wc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.Dc=function(a){var b=a[0],c=0>a[1];a=a[2];this.V=!0;this.G.ja=!0;var d=this.P.power;d&&(d.textContent="Shutdown");this.u&&(Di(this,this.u,b,c,a),this.u.mb());this.N&&(yi(this,b),b.clear());!c&&this.w&&(this.w.clear(),delete this.w);this.j=0};
function yi(a,b){if(jb("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.g||"";b=b.toString();var d={app:"PC8080",ver:"1.34.3"};d.url=a.U;d.user=c;d.type="bug";d.data=b;Fa("http://www.pcjs.org/api/v1/report",d,!0)}}
function di(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new td(a,"1.34.3"),g=new td(a,"1.34.3",si),h=Da();g.set(ui,h);f.set(ui,h);f.set(Ei,"1.34.3");f.set(Fi,window?window.location.href:null);f.set(Gi,Ha());a.u&&a.u.va&&(c&&a.u.ea(),d=a.u.va(b,c),"object"===typeof d&&f.set(a.u.id,d),c&&(a.u.G.ja=!1,!1===d&&(e=null)));for(var h=kb(a.id),k=0;k<h.length;k++){var p=h[k];p.G.ja&&(p.va&&(d=p.va(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.G.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Ui(a,
a.g,f.toString()),Bi(g)&&Bi(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Vi),d&&f.clear(h)):e=f.toString());c&&(a.G.ja=!1,b=a.P.power)&&(b.textContent="Power");a.j=0;return e}l.reset=function(){this.I&&this.I.reset&&(Db(this,"Resetting "+this.I.type),this.I.reset());for(var a=kb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.I&&c.reset&&(Db(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=kb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};l.stop=function(a,b){for(var c=kb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.da=function(a,b,c){var d=this;switch(b){case "power":return this.P[b]=c,c.onclick=function(){d.j||(d.G.ja?di(d,!1,!0):qi(d,d.nb))},!0;case "reset":return this.P[b]=c,c.onclick=function(){if(d.G.ja&&!d.j)if(d.b&&!d.D){var a=jb("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");di(d,a,!0);!a&&d.M?window&&window.location.reload():d.nb(mi)}else d.reset(),d.u&&d.u.lb()},!0;case "save":if(sa())c.parentNode.removeChild(c);else return this.P[b]=
l.da=function(a,b,c){var d=this;switch(b){case "power":return this.P[b]=c,c.onclick=function(){d.j||(d.G.ja?di(d,!1,!0):qi(d,d.ob))},!0;case "reset":return this.P[b]=c,c.onclick=function(){if(d.G.ja&&!d.j)if(d.b&&!d.D){var a=jb("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");di(d,a,!0);!a&&d.M?window&&window.location.reload():d.ob(mi)}else d.reset(),d.u&&d.u.mb()},!0;case "save":if(sa())c.parentNode.removeChild(c);else return this.P[b]=
c,c.onclick=function(){var a=ni(d,!0);if(a){var b=!!(d.b&&!d.D||d.M),c=di(d,b);b?Ui(d,a,c):d.aa("Resume disabled, machine state not saved")}},!0}return!1};
function ni(a,b){var c=a.g;c||((c=Ka(Ci),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Wi(a,c))||a.aa("The user ID is invalid.")):b&&a.aa("Browser local storage is not available"));return c}
function Wi(a,b){a.g=null;b=Fa(ta()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(La(Ci,b.data),a.g=b.data)}catch(d){r(d.message+" ("+c+")")}return a.g}function pi(a){var b=null;a.g&&(b=ta()+"/api/v1/user?req=load&user="+a.g+"&state="+Xi(a,"1.34.3"));return b}
function Ui(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Xi(a,"1.34.3");d.data=c;b=Fa(ta()+"/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.aa("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.aa(c),La(Ci,""),a.g=null)}}
function Jb(a,b,c){a=kb(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.Za=function(a){if(this.A.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.A[0];d.W&&d.W.focus();!a&&window&&window.scrollTo(b,c)}};
function Yc(a,b){a.u&&(a=a.u,a.ib&&(b||!a.G.ma||a.G.Bc)&&(I(a,"A",a.g),I(a,"B",a.w),I(a,"C",a.A),I(a,"BC",ud(a),4),I(a,"D",a.B),I(a,"E",a.C),I(a,"DE",wd(a),4),I(a,"H",a.D),I(a,"L",a.F),I(a,"HL",D(a),4),I(a,"SP",a.M,4),I(a,"PC",a.j,4),b=sd(a),I(a,"PS",b,4),I(a,"IF",b&512?1:0,1),I(a,"SF",b&128?1:0,1),I(a,"ZF",b&64?1:0,1),I(a,"AF",b&16?1:0,1),I(a,"PF",b&4?1:0,1),I(a,"CF",b&1?1:0,1)),b=a.P.speed)&&(b.textContent=a.G.ma&&a.Y?a.Y.toFixed(2)+"Mhz":"Stopped")}
var xi="failsafe",si="validate",ui="timestamp",Ei="version",Fi="url",Gi="browser",Ci="user",wi=-1,mi=0,vi=1,zi=2,Vi=3;Ua(function(){for(var a=qb(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=ob(c),c=qb(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=ob(f),g=new ki(g,d,!0);pb(g,f);g.L&&qi(g,g.nb)}});Va.show.push(function(){for(var a=qb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.V&&!c.G.ja&&c.nb(wi)}});
Va.exit.push(function(){for(var a=qb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.G.ja&&di(c,!(!c.b||c.D),!0)}});function td(a,b,c){this.id=a.id;this.K=a.K;this.g="";this.b={};this.u=this.I=!1;this.key=Xi(a,b,c);Ai(this,a.Ad)}l=td.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};l.data=function(){return this.b};
function Jb(a,b,c){a=kb(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.$a=function(a){if(this.A.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.A[0];d.W&&d.W.focus();!a&&window&&window.scrollTo(b,c)}};
function Yc(a,b){a.u&&(a=a.u,a.jb&&(b||!a.G.ma||a.G.Cc)&&(I(a,"A",a.g),I(a,"B",a.w),I(a,"C",a.A),I(a,"BC",ud(a),4),I(a,"D",a.B),I(a,"E",a.C),I(a,"DE",wd(a),4),I(a,"H",a.D),I(a,"L",a.F),I(a,"HL",D(a),4),I(a,"SP",a.M,4),I(a,"PC",a.j,4),b=sd(a),I(a,"PS",b,4),I(a,"IF",b&512?1:0,1),I(a,"SF",b&128?1:0,1),I(a,"ZF",b&64?1:0,1),I(a,"AF",b&16?1:0,1),I(a,"PF",b&4?1:0,1),I(a,"CF",b&1?1:0,1)),b=a.P.speed)&&(b.textContent=a.G.ma&&a.Y?a.Y.toFixed(2)+"Mhz":"Stopped")}
var xi="failsafe",si="validate",ui="timestamp",Ei="version",Fi="url",Gi="browser",Ci="user",wi=-1,mi=0,vi=1,zi=2,Vi=3;Ua(function(){for(var a=qb(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=ob(c),c=qb(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=ob(f),g=new ki(g,d,!0);pb(g,f);g.L&&qi(g,g.ob)}});Va.show.push(function(){for(var a=qb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.V&&!c.G.ja&&c.ob(wi)}});
Va.exit.push(function(){for(var a=qb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.G.ja&&di(c,!(!c.b||c.D),!0)}});function td(a,b,c){this.id=a.id;this.K=a.K;this.g="";this.b={};this.u=this.I=!1;this.key=Xi(a,b,c);Ai(this,a.Bd)}l=td.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};l.data=function(){return this.b};
function oi(a,b){return b?(a.g=b,a.u=!0,a.I=!1,!0):a.u?!0:Ia()&&(b=Ka(a.key))?(a.g=b,a.u=!0):!1}function ti(a){var b=!0;if(!a.I)try{a.b=JSON.parse(a.g),a.I=!0}catch(c){r(c.message||c),b=!1}return b}function Bi(a){var b=!0;if(Ia()){var c=JSON.stringify(a.b);La(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};function Ai(a,b){a.g="";a.b={};a.u=a.I=!1;b&&a.set("parms",b)}
l.clear=function(a){Ai(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 Xi(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}var Yi=0;
function Zi(a,b,c,d,e,f){e("Loading "+a+"...");Fa(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):$i(h,a,b,c,d,e,f)})}

File diff suppressed because it is too large Load diff

View file

@ -27,12 +27,12 @@
http://pcjs.org/modules/pdp10/lib/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/macro10.js (C) Jeff Parsons 2012-2017
*/
var m,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ea=0;function da(a){return"jscomp_symbol_"+(a||"")+ea++}
var m,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var fa=0;function da(a){return"jscomp_symbol_"+(a||"")+fa++}
function ga(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ha(this)}});ga=function(){}}function ha(a){var b=0;return ia(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ia(a){ga();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
function ka(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function la(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
function ja(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function la(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
la("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});la("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var ma={sc:0,Lb:1,uc:2,vc:3,wc:4,xc:5,yc:6,zc:7,xb:8,Ac:9,Mb:10,Bc:11,Cc:12,Nb:13,Dc:14,Ec:15,Fc:16,Gc:17,Hc:18,Ic:19,Jc:20,Kc:21,Lc:22,Mc:23,Nc:24,Oc:25,Pc: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,wb:65,rc:66,tc:67,Qc:68,E:69,Rc:70,Sc:71,Tc:72,Uc:73,Vc:74,Wc:75,Xc:76,Yc:77,Zc:78,$c:79,ad:80,Q:81,bd:82,cd:83,dd:84,ed:85,fd:86,gd:87,
hd:88,jd:89,Pb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,kd:97,ld:98,md:99,d:100,e:101,nd:102,od:103,pd:104,qd:105,rd:106,k:107,sd:108,td:109,n:110,ud:111,p:112,q:113,r:114,vd:115,t:116,xd:117,yd:118,zd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Ob:127};
var ma={tc:0,Mb:1,vc:2,wc:3,xc:4,yc:5,zc:6,Ac:7,yb:8,Bc:9,Nb:10,Cc:11,Dc:12,Ob:13,Ec:14,Fc:15,Gc:16,Hc:17,Ic:18,Jc:19,Kc:20,Lc:21,Mc:22,Nc:23,Oc:24,Pc:25,Qc: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,xb:65,sc:66,uc:67,Rc:68,E:69,Sc:70,Tc:71,Uc:72,Vc:73,Wc:74,Xc:75,Yc:76,Zc:77,$c:78,ad:79,bd:80,Q:81,cd:82,dd:83,ed:84,fd:85,gd:86,hd:87,
jd:88,kd:89,Qb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,ld:97,md:98,nd:99,d:100,e:101,od:102,pd:103,qd:104,rd:105,sd:106,k:107,td:108,ud:109,n:110,vd:111,p:112,q:113,r:114,wd:115,t:116,yd:117,zd:118,Ad:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Pb:127};
function na(a,b){var c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=
e[1],d=35-((e[2]||35)&255);e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return c}
function ta(a,b,c,d,e){e=void 0===e?0:e;var f="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));for(var g=e||-1;0<c--;){g||(f=","+f,g=e);if(null==a)f="?"+f;else{var h=a%b,h=h+(0<=h&&9>=h?48:55),f=String.fromCharCode(h)+f;a=Math.trunc(a/b)}g--}return(void 0===d?"":d)+f}function ua(a,b,c){b?12<b&&(b=12):(b=Math.abs(a),b=262143>=b?6:16777215>=b?8:12);return ta(a,8,b,c?"0o":"")}
@ -41,77 +41,77 @@ function za(a){return a.replace(/[&<>"']/g,function(a){return Aa[a]})}function B
function Ga(){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 Ha(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Ia(a,b){var c,d={ea:null,Y:null,ma:null,ya:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.ma=g.load;d.ya=g.exec;if(e=g.bytes)d.ea=e;else if(e=g.words)for(d.ea=Array(2*e.length),f=c=0;c<e.length;c++)d.ea[f++]=e[c]&255,d.ea[f++]=e[c]>>8&255;else if(e=g.longs)for(d.ea=Array(4*e.length),f=c=0;c<e.length;c++)d.ea[f++]=
e[c]&255,d.ea[f++]=e[c]>>8&255,d.ea[f++]=e[c]>>16&255,d.ea[f++]=e[c]>>24&255;else(e=g.data)?d.Qa=e:d.ea=g;d.ea&&(d.ea.length?1==d.ea.length&&(q(d.ea[0]),d=null):(q("Empty resource: "+a),d=null));d.Y=g.symbols}catch(h){q("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){q("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ea=e)}return d}
function Ia(a,b){var c,d={da:null,Z:null,la:null,ya:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.la=g.load;d.ya=g.exec;if(e=g.bytes)d.da=e;else if(e=g.words)for(d.da=Array(2*e.length),f=c=0;c<e.length;c++)d.da[f++]=e[c]&255,d.da[f++]=e[c]>>8&255;else if(e=g.longs)for(d.da=Array(4*e.length),f=c=0;c<e.length;c++)d.da[f++]=
e[c]&255,d.da[f++]=e[c]>>8&255,d.da[f++]=e[c]>>16&255,d.da[f++]=e[c]>>24&255;else(e=g.data)?d.Pa=e:d.da=g;d.da&&(d.da.length?1==d.da.length&&(q(d.da[0]),d=null):(q("Empty resource: "+a),d=null));d.Z=g.symbols}catch(h){q("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){q("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.da=e)}return d}
function Ja(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ka(){if(null==La){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}La=a}return La}function Pa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Qa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ra(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Sa(a){if(!Ta){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ta=c}return Ta[a]}function Ua(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Va(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}}function Wa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Xa(a){Ya.init.push(a)}
function Za(a){if($a)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ab(a){!$a&&a?($a=!0,bb&&cb("init"),db&&cb("show")):$a=a}function cb(a){Ya[a]&&Za(Ya[a])}var Ta=null,Ya={init:[],show:[],exit:[]},bb=!1,db=!1,$a=!0,La=null;Wa("onload",function(){bb=!0;Za(Ya.init)});Wa("onpageshow",function(){db=!0;Za(Ya.show)});Wa(Ra("Opera")||Ra("iOS")?"onunload":"onbeforeunload",function(){Za(Ya.exit)});
function r(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Db=b.comment;this.Sb=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.ab=this.id:(this.bb=this.id.substr(0,a),this.ab=this.id.substr(a+1));this.A={ready:!1,Wa:!1,qb:!1,aa:!1,error:!1};this.fb=null;this.A.error=!1;this.ca=c||0;this.D=this.v=this.G=this.H=this.za=null;eb.push(this)}function lb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function nb(){return Date.now()||+new Date}
function r(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Eb=b.comment;this.Tb=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.bb=this.id:(this.cb=this.id.substr(0,a),this.bb=this.id.substr(a+1));this.A={ready:!1,Wa:!1,rb:!1,aa:!1,error:!1};this.gb=null;this.A.error=!1;this.ca=c||0;this.D=this.v=this.G=this.H=this.za=null;eb.push(this)}function lb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function nb(){return Date.now()||+new Date}
function q(a){window&&window.alert(a)}function ob(a){var b=!1;window&&(b=window.confirm(a));return b}function pb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<eb.length;b++){var d=eb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function qb(a){if(void 0!==a){var b;for(b=0;b<eb.length;b++)if(eb[b].id===a)return eb[b]}return null}
function rb(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<eb.length;d++)if(c)c==eb[d]&&(c=null);else if(!(a!=eb[d].type||b&&eb[d].id.indexOf(b)))return eb[d]}return null}function t(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
function sb(a,b){var c=v;b=w(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),l=0;l<k.length;l++)switch(h=k[l],h){case c+"-binding":(h=t(g))&&h.binding&&a.ta(h.type,h.binding,g,h.value),l=k.length}}}}
function w(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 tb(a){for(var b=!0,c=ub[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=vb.indexOf(e)&&(f=function(){return function(){tb(a)}}());var g=wb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=rb(d[1],a);if(h)if(g=xb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){q("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete ub[a];return b}m=r.prototype;
m.toString=function(){return this.name?this.name:this.id||this.type};
m.ta=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.za=this.J[b]=c,c.value="",this.u=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.ha=function(a){this.u(a,this.ab)}),!0;default:return!1}};m.log=function(){};m.u=function(){};
m.status=function(a){this.u(this.ab+": "+a)};m.ha=function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)};function yb(a,b){a.A.error=!0;a.ha(b)}function zb(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function Bb(a,b){b&&(a.A.ready?b():a.fb=b);return a.A.ready}function Mb(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.fb;a.fb=null;b&&b()}}function Nb(a,b){a.A.Wa&&(b?a.A.qb=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.Wa}
function Ob(a,b){if(a.A.qb)return a.A.Wa=!1,a.A.qb=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.Wa=b;return a.A.Wa}m.Ba=function(){return this.A.aa=!0};m.sa=function(a,b){b&&(this.A.aa=!1);return!0};function Pb(a,b){if(a.D){a===a.D?b|=0:b=b||a.ca;var c=a.D.ca&b;return!!b&&c===b||!!(c&a.D.Eb)}return!1}function Qb(a,b,c,d){a.D&&(!0===c||Pb(a,c|0))&&a.D.message(b,d)}
m.ta=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.za=this.J[b]=c,c.value="",this.u=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.ha=function(a){this.u(a,this.bb)}),!0;default:return!1}};m.log=function(){};m.u=function(){};
m.status=function(a){this.u(this.bb+": "+a)};m.ha=function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)};function yb(a,b){a.A.error=!0;a.ha(b)}function zb(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function Bb(a,b){b&&(a.A.ready?b():a.gb=b);return a.A.ready}function Mb(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.gb;a.gb=null;b&&b()}}function Nb(a,b){a.A.Wa&&(b?a.A.rb=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.Wa}
function Ob(a,b){if(a.A.rb)return a.A.Wa=!1,a.A.rb=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.Wa=b;return a.A.Wa}m.Ba=function(){return this.A.aa=!0};m.sa=function(a,b){b&&(this.A.aa=!1);return!0};function Pb(a,b){if(a.D){a===a.D?b|=0:b=b||a.ca;var c=a.D.ca&b;return!!b&&c===b||!!(c&a.D.Fb)}return!1}function Qb(a,b,c,d){a.D&&(!0===c||Pb(a,c|0))&&a.D.message(b,d)}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var mb=window?window.PCjs.Machines:{},eb=window?window.PCjs.Components:[],ub=window?window.PCjs.Commands:{},vb=["hold","sleep","wait"],wb={alert:function(a){q(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},xb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var v="pdp10",Rb="PDPjs",Sb=Math.pow(2,18)-1,Tb=Math.pow(2,18),Ub=Math.pow(2,17)-1,Vb=Math.pow(2,17),x=Math.pow(2,18)-1,y=Math.pow(2,18),z=Math.pow(2,35)-1,A=Math.pow(2,35),B=Math.pow(2,36)-1,C=Math.pow(2,36),E=Math.pow(2,32),Wb=Math.pow(2,34),Xb=Math.pow(2,36),Yb=Math.pow(2,21),Zb=Math.pow(2,26),$b=Math.pow(2,23),ac=Math.pow(2,30),v="pdp10",Rb="PDPjs",bc={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,
timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function cc(a,b){r.call(this,"Panel",a,512);this.K=this.L=0;this.V=b;this.i=this.I=this.j=this.w=0;this.M=this.N=-1;this.P=this.S=this.F=!1;this.U=dc;this.C={};this.b={START:[1,1,!0,!1,this.cc],STEP:[1,1,!1,!1,this.dc],ENABLE:[1,1,!1,!1,this.Yb],CONT:[1,1,!0,!1,this.Wb],DEP:[0,0,!0,!1,this.Xb],EXAM:[1,1,!0,!1,this.Zb],LOAD:[1,1,!0,!1,this.ac],TEST:[0,0,!0,!1,this.$b]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.bc,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Tb,toggle:this.mc,reset:this.ic,
set:this.lc};Mb(this)}ka(cc,r);m=cc.prototype;m.reset=function(a){this.stop();a&&ec(this,this.w=0)};
function cc(a,b){r.call(this,"Panel",a,512);this.K=this.L=0;this.V=b;this.i=this.I=this.j=this.w=0;this.M=this.N=-1;this.O=this.R=this.F=!1;this.T=dc;this.C={};this.b={START:[1,1,!0,!1,this.dc],STEP:[1,1,!1,!1,this.ec],ENABLE:[1,1,!1,!1,this.Zb],CONT:[1,1,!0,!1,this.Xb],DEP:[0,0,!0,!1,this.Yb],EXAM:[1,1,!0,!1,this.$b],LOAD:[1,1,!0,!1,this.bc],TEST:[0,0,!0,!1,this.ac]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.cc,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Ub,toggle:this.nc,reset:this.jc,
set:this.mc};Mb(this)}ja(cc,r);m=cc.prototype;m.reset=function(a){this.stop();a&&ec(this,this.w=0)};
m.ta=function(a,b,c,d){if(this.H&&this.H.ta(a,b,c,d)||this.v&&this.v.ta(a,b,c,d)||this.D&&this.D.ta(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.C[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){fc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){gc(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){fc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){gc(a,b)}}(this,b),!0):r.prototype.ta.call(this,a,b,c,d)}};m.La=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;hc(this);ic(this)};m.Ba=function(a,b){if(!b)if(this.V&&jc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};m.sa=function(a){return a?this.save():!0};m.save=function(){var a=new F(this);a.set(0,[this.i,this.w,this.j]);return a.data()};
m.restore=function(a){if(a=a[0])kc(this,this.i=a[0]),ec(this,this.w=a[1]),lc(this,a[2]);return!0};m.ic=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}ic(this);return!0};function mc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function hc(a,b){for(var c in a.C)mc(a,c,null!=b?b:a.C[c])}function nc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function ic(a){for(var b in a.b)nc(a,b,a.b[b][1])}
m.Tb=function(a,b,c){if(fc(this,b)){if(c){var d=this;setTimeout(function(){gc(d,b);a&&a()},+c);return!1}gc(this,b)}return!0};m.lc=function(a,b){if("SR"==a)return lc(this,na(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,nc(this,a,c[1]),!0):!1};m.mc=function(a){return fc(this,a)?(gc(this,a),!0):!1};function fc(a,b){var c=a.b[b];return c?(nc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=oc&&(a.P=b==pc,a.S=b==qc),!0):!1}
function gc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(nc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}m.cc=function(a){a||this.v.A.O||(G(this.v,this.i),this.b[rc]&&this.b[rc][1]&&sc(this.v))};m.dc=function(){};m.Yb=function(a){a||this.v.W()};
m.Wb=function(a){if(!a&&!this.v.A.O)if(this.b[rc]&&this.b[rc][1])sc(this.v);else{if((a=this.D)&&!Nb(a,!0))Ob(a,!0),tc(a,0,null),Ob(a,!1);else try{var b=this.v.$a(1);0<b&&(uc(this.v,b),vc(this.v,b,!0),wc(this.v,b))}catch(c){"number"!=typeof c&&yb(this.v,c.stack||c.message)}this.stop();this.H&&J(this.H)}};m.Xb=function(a){a&&!this.v.A.O&&(this.P&&xc(this),a=ec(this,this.w=this.j),this.U==dc?yc(this.G,this.i,a):this.v.g(this.i,a))};
m.Zb=function(a){if(!a&&!this.v.A.O){var b;this.S&&xc(this);this.U==dc?b=zc(this.G,this.i):b=this.v.f(this.i);ec(this,this.w=b)}};m.ac=function(a){a||this.v.A.O||kc(this,this.j)};m.$b=function(a){a?(this.F=!0,hc(this,!0)):(this.F=!1,hc(this),lc(this,0))};m.bc=function(a,b){this.j=a?this.j|1<<b:this.j&~(1<<b)};function xc(a){var b=1,c=a.G.j;a.b[oc]&&a.b[oc][1]||(b=-b);kc(a,a.i&~c|a.i+b&c)}
function(a,b){return function(c){fc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){gc(a,b)}}(this,b),!0):r.prototype.ta.call(this,a,b,c,d)}};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;hc(this);ic(this)};m.Ba=function(a,b){if(!b)if(this.V&&jc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};m.sa=function(a){return a?this.save():!0};m.save=function(){var a=new F(this);a.set(0,[this.i,this.w,this.j]);return a.data()};
m.restore=function(a){if(a=a[0])kc(this,this.i=a[0]),ec(this,this.w=a[1]),lc(this,a[2]);return!0};m.jc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}ic(this);return!0};function mc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function hc(a,b){for(var c in a.C)mc(a,c,null!=b?b:a.C[c])}function nc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function ic(a){for(var b in a.b)nc(a,b,a.b[b][1])}
m.Ub=function(a,b,c){if(fc(this,b)){if(c){var d=this;setTimeout(function(){gc(d,b);a&&a()},+c);return!1}gc(this,b)}return!0};m.mc=function(a,b){if("SR"==a)return lc(this,na(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,nc(this,a,c[1]),!0):!1};m.nc=function(a){return fc(this,a)?(gc(this,a),!0):!1};function fc(a,b){var c=a.b[b];return c?(nc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=oc&&(a.O=b==pc,a.R=b==qc),!0):!1}
function gc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(nc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}m.dc=function(a){a||this.v.A.P||(H(this.v,this.i),this.b[rc]&&this.b[rc][1]&&sc(this.v))};m.ec=function(){};m.Zb=function(a){a||this.v.Y()};
m.Xb=function(a){if(!a&&!this.v.A.P)if(this.b[rc]&&this.b[rc][1])sc(this.v);else{if((a=this.D)&&!Nb(a,!0))Ob(a,!0),tc(a,0,null),Ob(a,!1);else try{var b=this.v.$a(1);0<b&&(uc(this.v,b),vc(this.v,b,!0),wc(this.v,b))}catch(c){"number"!=typeof c&&yb(this.v,c.stack||c.message)}this.stop();this.H&&J(this.H)}};m.Yb=function(a){a&&!this.v.A.P&&(this.O&&xc(this),a=ec(this,this.w=this.j),this.T==dc?yc(this.G,this.i,a):this.v.g(this.i,a))};
m.$b=function(a){if(!a&&!this.v.A.P){var b;this.R&&xc(this);this.T==dc?b=zc(this.G,this.i):b=this.v.f(this.i);ec(this,this.w=b)}};m.bc=function(a){a||this.v.A.P||kc(this,this.j)};m.ac=function(a){a?(this.F=!0,hc(this,!0)):(this.F=!1,hc(this),lc(this,0))};m.cc=function(a,b){this.j=a?this.j|1<<b:this.j&~(1<<b)};function xc(a){var b=1,c=a.G.j;a.b[oc]&&a.b[oc][1]||(b=-b);kc(a,a.i&~c|a.i+b&c)}
function kc(a,b){a.i=b&a.G.j;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.C[e]=f;d.F||mc(d,e,f)}}}function ec(a,b){a.I=b%C;if(a.N!==a.I){a.N=a.I;b=a.N;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.C[e]=f;d.F||mc(d,e,f)}}return a.I}function lc(a,b){a.j=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.j&1<<b?1:0;ic(a);return!0}m.stop=function(){kc(this,this.v.i)};
function jc(){for(var a=w(document,v,"panel"),b=0;b<a.length;b++){var c=a[b],d=t(c),e=qb(d.id);e||(e=new cc(d,!0));sb(e,c)}}var dc=7,pc="DEP",rc="ENABLE",qc="EXAM",oc="STEP";Xa(jc);function Ac(a,b,c){r.call(this,"Bus",a,16);this.v=b;this.D=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.j=this.I-1;this.i=Math.log2(16384);this.C=this.I/16384|0;this.w=0;this.b=[];a=new Bc(this);Cc(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;Mb(this)}ka(Ac,r);m=Ac.prototype;m.reset=function(){};
function jc(){for(var a=w(document,v,"panel"),b=0;b<a.length;b++){var c=a[b],d=t(c),e=qb(d.id);e||(e=new cc(d,!0));sb(e,c)}}var dc=7,pc="DEP",rc="ENABLE",qc="EXAM",oc="STEP";Xa(jc);function Ac(a,b,c){r.call(this,"Bus",a,16);this.v=b;this.D=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.j=this.I-1;this.i=Math.log2(16384);this.C=this.I/16384|0;this.w=0;this.b=[];a=new Bc(this);Cc(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;Mb(this)}ja(Ac,r);m=Ac.prototype;m.reset=function(){};
m.Ba=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.sa=function(a){return a?this.save():!0};m.save=function(){var a=new F(this);a.set(0,Dc(this));return a.data()};m.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){q("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Ec(a,b,c,d){for(var e=b,f=c,g=e>>>a.i;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,l=16384-(e-k);l>f&&(l=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Ya+=h.B-e,h.B=e,!0;if(e>=h.B+h.Ya){l=h.size-(e-k);l>f&&(l=f);h.Ya=e-h.B+l;e=k+16384;f-=l;g++;continue}}return Fc(Gc,e,f)}e=new Bc(a,e,l,16384,d);Cc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=l}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Hc[d]+" at "+ua(b)),!0):Fc(Lc,b,c)}
function zc(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.w(b&16383,b);a.w--;return b}function yc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.D(c,b&16383,b);a.w--}function Dc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.sb||e.Rb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var l=e[g],p=g+1;p<e.length&&e[p]===l;)p++;k[h++]=p-g;k[h++]=l;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
m.Ib=function(a){if(!this.w)throw this.D&&Pb(this.D,4)&&Qb(this.D,"memory fault on "+K(this.D,a),!0,!0),this.v.W(),-1;};function Fc(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Gc=1,Lc=2;function Mc(a){r.call(this,"Device",a,256)}ka(Mc,r);m=Mc.prototype;m.La=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Mb(this)};m.Ba=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.sa=function(a){return a?this.save():!0};m.reset=function(){};
function zc(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.w(b&16383,b);a.w--;return b}function yc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.D(c,b&16383,b);a.w--}function Dc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.tb||e.Sb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var l=e[g],p=g+1;p<e.length&&e[p]===l;)p++;k[h++]=p-g;k[h++]=l;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
m.Jb=function(a){if(!this.w)throw this.D&&Pb(this.D,4)&&Qb(this.D,"memory fault on "+K(this.D,a),!0,!0),this.v.Y(),-1;};function Fc(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Gc=1,Lc=2;function Mc(a){r.call(this,"Device",a,256)}ja(Mc,r);m=Mc.prototype;m.Ma=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Mb(this)};m.Ba=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.sa=function(a){return a?this.save():!0};m.reset=function(){};
m.save=function(){return(new F(this)).data()};m.restore=function(){return!0};Xa(function(){for(var a=w(document,v,"device"),b=0;b<a.length;b++){var c,d=a[b];c=t(d);switch(c.type){case "default":c=new Mc(c),sb(c,d)}}});
function Bc(a,b,c,d,e){this.H=a;this.id=Nc+=2;this.B=b;this.Ya=c;this.size=d||0;this.type=e||Oc;this.G=e==Pc;this.b=null;this.f=this.w=this.vb;this.g=this.D=this.Za;this.i=this.v=0;Cc(this);this.sb=this.Rb=!1;if(this.size){a=this.j=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Qc(this,Rc)}else Qc(this)}m=Bc.prototype;m.save=function(){return this.j};m.restore=function(a){return a&&this.size==a.length?(this.j=a,this.sb=!0):!1};function Qc(a,b){b||(b=Sc);Tc(a,b,void 0);Uc(a,b,void 0)}
function Tc(a,b,c){c&&a.i||(a.f=b[0]||a.vb);if(c||void 0===c)a.w=b[0]||a.vb}function Uc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Za);if(c||void 0===c)a.D=b[1]||a.Za}m.Sa=function(a,b){b?this.v++||Uc(this,Vc,!1):this.i++||Tc(this,Vc,!1)};function Wc(a,b){b?--a.v||(a.g=a.G?a.Za:a.D):--a.i||(a.f=a.w)}function Cc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Tc(a,Vc,!1),(a.v=c.v)&&Uc(a,Vc,!1))}m.vb=function(a,b){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to read invalid address "+K(this.b,b),!0);this.H.Ib(b);return-1};
m.Za=function(a,b,c){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to write "+K(this.b,a)+" to invalid addresses "+K(this.b,c),!0);this.H.Ib(c)};m.gc=function(a){return this.j[a]};m.pc=function(a,b){this.j[b]!=a&&(this.j[b]=a,this.sb=!0)};m.ec=function(a,b){if(this.b&&null!=this.B){var c=this.b;Xc(c,this.B+a,2,c.N)&&c.W(!1)}return this.w(a,b)};m.oc=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Xc(d,this.B+b,2,d.K)&&d.W(!1)}this.G?this.Za(a,0,c):this.D(a,b,c)};
var Oc=0,Pc=2,Hc=["NONE","RAM","ROM"],Nc=0,Sc=[],Rc=[Bc.prototype.gc,Bc.prototype.pc],Vc=[Bc.prototype.ec,Bc.prototype.oc];
function Yc(a,b){r.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.kb=0;this.ob=b;this.ka=c;this.lb=Math.round(this.ob/1E4)/100;this.ja=this.lb*this.ka;this.nb=this.Ia=this.la=this.cb=0;this.A.O=this.A.ib=!1;this.A.ga=a.autoStart;"string"==typeof this.A.ga&&(this.A.ga="true"==this.A.ga);this.A.Va=!1;this.Ga=this.pa=0;this.Ha=+a.csStart;this.oa=+a.csInterval;this.qa=+a.csStop;this.S=[];this.Fb=this.jc.bind(this);this.X=this.M=this.V=this.N=this.L=this.Fa=this.U=this.ua=this.pb=this.ba=
0;this.Oa=null;Mb(this)}ka(Yc,r);m=Yc.prototype;m.La=function(a,b,c,d){this.H=a;this.G=b;this.D=d;this.Oa=a.j;for(a=0;a<Zc.length;a++)(b=this.J[Zc[a]])&&this.H.ta(null,Zc[a],b);Mb(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
m.Ba=function(a,b){var c=$c(this.H,"autoStart");null!=c?this.A.ga="true"==c?!0:"false"==c?!1:!!c:null==this.A.ga&&(this.A.ga=!this.D&&void 0===this.J.run);if(!b){if(a){ad(this);if(!this.restore(a))return!1;bd(this)}else this.reset();this.D?(a=this.D,b=this.A.ga,a.Ja=!0,a.u("Type ? for help with PDPjs Debugger commands"),cd(a),b||dd(a),a.va&&(b=a.va,a.va=null,ed(a,b,!0))):this.status("No debugger detected");this.A.ga||this.u("CPU will not be auto-started "+(this.Oa?"(click Run to start)":"(type 'go' to start)"))}return!0};
m.sa=function(a){return a?this.save():!0};m.ga=function(){return this.A.O?!0:this.A.ga?(sc(this),!0):!1};m.Jb=function(){return 0};function bd(a){void 0===a.Ha&&(a.Ha=0);void 0===a.oa&&(a.oa=-1);void 0===a.qa&&(a.qa=-1);a.A.Va=0<=a.Ha&&0<a.oa;a.A.Va&&(a.Ga=0,a.pa=a.Ha-a.X)}function wc(a,b){if(a.A.Va){var c=!1;a.Ga=a.Ga+a.Jb()|0;a.pa-=b;0>=a.pa&&(a.pa+=a.oa,c=!0);0<=a.qa&&a.qa<=fd(a)&&(a.oa=a.qa=-1,bd(a),a.W(),c=!0);c&&a.u(fd(a)+" cycles: checksum="+n(a.Ga))}}
m.ta=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.H)if(a=d.H,a.A.aa)a=!0;else{var b=null,c,h=pb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.aa);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.fb?" (waiting for notification)":""))+".");a=!1}a&&(d.A.O?d.W():sc(d))},!0;
case "speed":return this.J[b]=c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){gd(d,d.ka<<1,!0)},c.textContent=this.ja.toFixed(2)+"Mhz",!0}return!1};function vc(a,b,c){a.X+=b;c&&(a.V=a.N=0)}function hd(a,b){var c=1;b&&1<a.ka&&a.ba&&(c=a.ba/a.lb);a.nb=Math.round(1E3/id);a.Ia=Math.floor(a.ob/id*c);b||(a.la=a.Ia);a.cb=0}function fd(a){return a.X+a.M+a.V-a.N}function ad(a){a.ba=0;a.pb=0;a.X=a.M=a.V=a.N=0;bd(a);gd(a,1)}
function gd(a,b,c){var d=!1;if(void 0!==b){.8>a.ba/a.ja?b=1:d=!0;a.ka=b;b=a.lb*a.ka;if(a.ja!=b){a.ja=b;b=a.ja.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&jd(a.H)}vc(a,a.M);a.M=0;a.L=nb();a.U=0;hd(a);return d}function kd(a,b){for(var c=a.S.length-1;0<=c;c--){var d=a.S[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function ld(a){for(var b=[],c=0;c<a.S.length;c++)b.push(a.S[c][0]);return b}
function uc(a,b){for(var c=a.S.length-1;0<=c;c--){var d=a.S[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function md(a,b){var c=a.V-=a.N;a.N=0;b&&(a.V=0);return c}
m.jc=function(){if(this.A.O){this.cb>=this.ob&&hd(this,!0);this.ua=0;this.Fa=nb();if(this.U){var a=this.Fa-this.U;a>this.nb&&(this.L+=a,this.L>this.Fa&&(this.L=this.Fa))}try{do{var b=kd(this,this.A.Va?1:this.Ia);try{this.$a(b)}catch(e){if("number"!=typeof e)throw e;}b=md(this,!0);this.ua+=b;this.M+=b;wc(this,b);uc(this,b);this.la-=b;if(0>=this.la){this.la+=this.Ia;++this.pb>=nd&&(this.H&&J(this.H,void 0),this.pb=0);break}}while(this.A.O)}catch(e){this.W();this.H&&this.H.stop(nb(),fd(this));yb(this,
e.stack||e.message);return}if(this.A.O){a=setTimeout;b=this.Fb;this.U=nb();var c=this.nb;this.ua&&(c=Math.round(c*this.ua/this.Ia));var c=c-(this.U-this.Fa),d=this.U-this.L;d&&(this.ba=Math.round(this.M/(10*d))/100,864E5<=d&&(this.X=0,gd(this)));if(0>c||this.ba<this.ja)-1E3>c&&(this.L-=c),c=0;this.cb+=this.ua;this.U+=c;a(b,c)}}};
function sc(a,b){if(!zb(a))if(a.A.O)a.u(a.toString()+" busy");else{gd(a);a.A.O=!0;a.A.ib=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&jd(a.H,!0),a.H.start(a.L,fd(a)));a.D||a.status("Started");setTimeout(a.Fb,0)}}m.$a=function(){return 0};m.W=function(a){var b=!1;if(this.A.O){md(this);vc(this,this.M);this.M=0;this.A.O=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(nb(),fd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var id=30,nd=15,Zc=["power","reset"];
function od(a){var b=+a.model||1001;Yc.call(this,a,1E6);this.mb=b;this.Pa=+a.addrReset||0;this.Qb=pd.bind(this);this.w=L.bind(this);this.Da=null;this.Cb=[];this.A.complete=!1}ka(od,Yc);m=od.prototype;
m.reset=function(){this.status("Model "+this.mb);this.A.O&&this.W();this.Ja=this.Ka=this.b=this.I=0;this.i=this.Ea=this.Pa;this.K=this.P=-1;this.F=this.j=0;this.jb=[0,0];this.va=[0,0];this.na=[0,0];this.xa=[0,0];this.Ca=this.i;this.C=0;this.f=this.fc;this.g=this.qc;this.Da=null;ad(this);this.A.error=!1;Yc.prototype.reset.call(this)};m.Jb=function(){return 0};
m.save=function(){var a=new F(this);a.set(0,[this.b,this.I,this.Ja,this.Ka,this.i,this.P,this.K,this.j,this.C,this.Ea,this.Ca,this.Pa]);a.set(1,[]);a.set(2,[this.X,this.ka,this.A.ga]);a.set(3,qd(this));a.set(4,ld(this));return a.data()};
m.restore=function(a){var b;b=a[0];ga();ca();ga();var c=b[Symbol.iterator];b=c?c.call(b):ha(b);this.b=b.next().value;this.I=b.next().value;this.Ja=b.next().value;this.Ka=b.next().value;this.i=b.next().value;this.P=b.next().value;this.K=b.next().value;this.j=b.next().value;this.C=b.next().value;this.Ea=b.next().value;this.Ca=b.next().value;this.Pa=b.next().value;b=a[2];this.X=b[0];gd(this,b[1]);this.A.ga=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Cb.length;d++){var e=this.Cb[d];
if(e.nc===b[c]){d=e;break a}}d=null}d&&(d.next=this.Da,this.Da=d)}a=a[4];for(b=0;b<this.S.length&&b<a.length;b++)this.S[b][0]=a[b];return!0};function rd(a,b){a.j=a.j&-254049|b&254048;a.j|=b&4096;b&2048?a.j&4096||(a.j|=2048):a.j&=-2049}function sd(a,b){var c=a.i;a.i=(c+b)%Tb;return c}function G(a,b){a.i=b%Tb;a.P=-1}function qd(a){var b=[];for(a=a.Da;a;)b.push(a.nc),a=a.next;return b}m.fc=function(a){var b=this.G;a=this.Ca=a;return b.b[(a&b.j)>>>b.i].f(a&16383,a)};
m.qc=function(a,b){var c=this.G;a=this.Ca=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b};
m.$a=function(a){this.A.complete=!0;var b=this.D?td(this.D)?1:this.A.ib?-1:0:0,c=a?this.A.ib?0:1:-1;this.A.ib=!1;this.V=this.N=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(ud(this.D,this.i,c)){this.W();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.Da||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&ud(this.D,this.i,c)){this.W();break}if(0>c)break}}this.C&=15;this.I&4194304?this.I=this.Ja=this.f(this.b):0<=this.P?(this.I=this.Ka=this.f(this.P),this.P=-1):(this.I=this.Ka=
this.f(this.Ea=this.i),this.i=(this.i+1)%Tb);this.I&=8388607;this.b=this.I&262143;if(a=this.I>>18&15)this.b=this.b+(this.Ja=this.f(a))&Sb;a=this.I&4194304?-1:this.Ka/$b|0;0<=a&&this.Qb(a);this.N--}while(0<this.N);return this.A.complete?this.V-this.N:!1===this.A.complete?-1:0};Xa(function(){for(var a=w(document,v,"cpu"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new od(d);sb(d,c)}});function pd(a){vd[a>>4].call(this,a,a&15)}function N(a){this.w(a)}
function Bc(a,b,c,d,e){this.H=a;this.id=Nc+=2;this.B=b;this.Ya=c;this.size=d||0;this.type=e||Oc;this.G=e==Pc;this.b=null;this.f=this.w=this.wb;this.g=this.D=this.Za;this.i=this.v=0;Cc(this);this.tb=this.Sb=!1;if(this.size){a=this.j=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Qc(this,Rc)}else Qc(this)}m=Bc.prototype;m.save=function(){return this.j};m.restore=function(a){return a&&this.size==a.length?(this.j=a,this.tb=!0):!1};function Qc(a,b){b||(b=Sc);Tc(a,b,void 0);Uc(a,b,void 0)}
function Tc(a,b,c){c&&a.i||(a.f=b[0]||a.wb);if(c||void 0===c)a.w=b[0]||a.wb}function Uc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Za);if(c||void 0===c)a.D=b[1]||a.Za}m.Ra=function(a,b){b?this.v++||Uc(this,Vc,!1):this.i++||Tc(this,Vc,!1)};function Wc(a,b){b?--a.v||(a.g=a.G?a.Za:a.D):--a.i||(a.f=a.w)}function Cc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Tc(a,Vc,!1),(a.v=c.v)&&Uc(a,Vc,!1))}m.wb=function(a,b){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to read invalid address "+K(this.b,b),!0);this.H.Jb(b);return-1};
m.Za=function(a,b,c){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to write "+K(this.b,a)+" to invalid addresses "+K(this.b,c),!0);this.H.Jb(c)};m.hc=function(a){return this.j[a]};m.qc=function(a,b){this.j[b]!=a&&(this.j[b]=a,this.tb=!0)};m.fc=function(a,b){if(this.b&&null!=this.B){var c=this.b;Xc(c,this.B+a,2,c.N)&&c.Y(!1)}return this.w(a,b)};m.pc=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Xc(d,this.B+b,2,d.K)&&d.Y(!1)}this.G?this.Za(a,0,c):this.D(a,b,c)};
var Oc=0,Pc=2,Hc=["NONE","RAM","ROM"],Nc=0,Sc=[],Rc=[Bc.prototype.hc,Bc.prototype.qc],Vc=[Bc.prototype.fc,Bc.prototype.pc];
function Yc(a,b){r.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.lb=0;this.pb=b;this.ka=c;this.mb=Math.round(this.pb/1E4)/100;this.ga=this.mb*this.ka;this.ob=this.Ja=this.na=this.eb=0;this.A.P=this.A.jb=!1;this.A.fa=a.autoStart;"string"==typeof this.A.fa&&(this.A.fa="true"==this.A.fa);this.A.Va=!1;this.Ha=this.qa=0;this.Ia=+a.csStart;this.pa=+a.csInterval;this.ua=+a.csStop;this.R=[];this.Gb=this.kc.bind(this);this.W=this.M=this.V=this.N=this.L=this.Ga=this.T=this.va=this.qb=this.ba=
0;this.Oa=null;Mb(this)}ja(Yc,r);m=Yc.prototype;m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.D=d;this.Oa=a.j;for(a=0;a<Zc.length;a++)(b=this.J[Zc[a]])&&this.H.ta(null,Zc[a],b);Mb(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
m.Ba=function(a,b){var c=$c(this.H,"autoStart");null!=c?this.A.fa="true"==c?!0:"false"==c?!1:!!c:null==this.A.fa&&(this.A.fa=!this.D&&void 0===this.J.run);if(!b){if(a){ad(this);if(!this.restore(a))return!1;bd(this)}else this.reset();this.D?(a=this.D,b=this.A.fa,a.Ja=!0,a.u("Type ? for help with PDPjs Debugger commands"),cd(a),b||dd(a),a.va&&(b=a.va,a.va=null,ed(a,b,!0))):this.status("No debugger detected");this.A.fa||this.u("CPU will not be auto-started "+(this.Oa?"(click Run to start)":"(type 'go' to start)"))}return!0};
m.sa=function(a){return a?this.save():!0};m.fa=function(){return this.A.P?!0:this.A.fa?(sc(this),!0):!1};m.Kb=function(){return 0};function bd(a){void 0===a.Ia&&(a.Ia=0);void 0===a.pa&&(a.pa=-1);void 0===a.ua&&(a.ua=-1);a.A.Va=0<=a.Ia&&0<a.pa;a.A.Va&&(a.Ha=0,a.qa=a.Ia-a.W)}function wc(a,b){if(a.A.Va){var c=!1;a.Ha=a.Ha+a.Kb()|0;a.qa-=b;0>=a.qa&&(a.qa+=a.pa,c=!0);0<=a.ua&&a.ua<=fd(a)&&(a.pa=a.ua=-1,bd(a),a.Y(),c=!0);c&&a.u(fd(a)+" cycles: checksum="+n(a.Ha))}}
m.ta=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.H)if(a=d.H,a.A.aa)a=!0;else{var b=null,c,h=pb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.aa);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.gb?" (waiting for notification)":""))+".");a=!1}a&&(d.A.P?d.Y():sc(d))},!0;
case "speed":return this.J[b]=c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){gd(d,d.ka<<1,!0)},c.textContent=this.ga.toFixed(2)+"Mhz",!0}return!1};function vc(a,b,c){a.W+=b;c&&(a.V=a.N=0)}function hd(a,b){var c=1;b&&1<a.ka&&a.ba&&(c=a.ba/a.mb);a.ob=Math.round(1E3/id);a.Ja=Math.floor(a.pb/id*c);b||(a.na=a.Ja);a.eb=0}function fd(a){return a.W+a.M+a.V-a.N}function ad(a){a.ba=0;a.qb=0;a.W=a.M=a.V=a.N=0;bd(a);gd(a,1)}
function gd(a,b,c){var d=!1;if(void 0!==b){.8>a.ba/a.ga?b=1:d=!0;a.ka=b;b=a.mb*a.ka;if(a.ga!=b){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&jd(a.H)}vc(a,a.M);a.M=0;a.L=nb();a.T=0;hd(a);return d}function kd(a,b){for(var c=a.R.length-1;0<=c;c--){var d=a.R[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function ld(a){for(var b=[],c=0;c<a.R.length;c++)b.push(a.R[c][0]);return b}
function uc(a,b){for(var c=a.R.length-1;0<=c;c--){var d=a.R[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function md(a,b){var c=a.V-=a.N;a.N=0;b&&(a.V=0);return c}
m.kc=function(){if(this.A.P){this.eb>=this.pb&&hd(this,!0);this.va=0;this.Ga=nb();if(this.T){var a=this.Ga-this.T;a>this.ob&&(this.L+=a,this.L>this.Ga&&(this.L=this.Ga))}try{do{var b=kd(this,this.A.Va?1:this.Ja);try{this.$a(b)}catch(e){if("number"!=typeof e)throw e;}b=md(this,!0);this.va+=b;this.M+=b;wc(this,b);uc(this,b);this.na-=b;if(0>=this.na){this.na+=this.Ja;++this.qb>=nd&&(this.H&&J(this.H,void 0),this.qb=0);break}}while(this.A.P)}catch(e){this.Y();this.H&&this.H.stop(nb(),fd(this));yb(this,
e.stack||e.message);return}if(this.A.P){a=setTimeout;b=this.Gb;this.T=nb();var c=this.ob;this.va&&(c=Math.round(c*this.va/this.Ja));var c=c-(this.T-this.Ga),d=this.T-this.L;d&&(this.ba=Math.round(this.M/(10*d))/100,864E5<=d&&(this.W=0,gd(this)));if(0>c||this.ba<this.ga)-1E3>c&&(this.L-=c),c=0;this.eb+=this.va;this.T+=c;a(b,c)}}};
function sc(a,b){if(!zb(a))if(a.A.P)a.u(a.toString()+" busy");else{gd(a);a.A.P=!0;a.A.jb=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&jd(a.H,!0),a.H.start(a.L,fd(a)));a.D||a.status("Started");setTimeout(a.Gb,0)}}m.$a=function(){return 0};m.Y=function(a){var b=!1;if(this.A.P){md(this);vc(this,this.M);this.M=0;this.A.P=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(nb(),fd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var id=30,nd=15,Zc=["power","reset"];
function od(a){var b=+a.model||1001;Yc.call(this,a,1E6);this.nb=b;this.ab=+a.addrReset||0;this.Rb=pd.bind(this);this.w=L.bind(this);this.Da=null;this.Db=[];this.A.complete=!1}ja(od,Yc);m=od.prototype;
m.reset=function(){this.status("Model "+this.nb);this.A.P&&this.Y();this.Ka=this.La=this.b=this.I=0;this.i=this.Ea=this.ab;this.K=this.O=-1;this.F=this.j=0;this.kb=[0,0];this.wa=[0,0];this.oa=[0,0];this.xa=[0,0];this.Ca=this.i;this.C=0;this.f=this.gc;this.g=this.rc;this.Da=null;ad(this);this.A.error=!1;Yc.prototype.reset.call(this)};m.Kb=function(){return 0};
m.save=function(){var a=new F(this);a.set(0,[this.b,this.I,this.Ka,this.La,this.i,this.O,this.K,this.j,this.C,this.Ea,this.Ca,this.ab]);a.set(1,[]);a.set(2,[this.W,this.ka,this.A.fa]);a.set(3,qd(this));a.set(4,ld(this));return a.data()};
m.restore=function(a){var b;b=a[0];ga();ca();ga();var c=b[Symbol.iterator];b=c?c.call(b):ha(b);this.b=b.next().value;this.I=b.next().value;this.Ka=b.next().value;this.La=b.next().value;this.i=b.next().value;this.O=b.next().value;this.K=b.next().value;this.j=b.next().value;this.C=b.next().value;this.Ea=b.next().value;this.Ca=b.next().value;this.ab=b.next().value;b=a[2];this.W=b[0];gd(this,b[1]);this.A.fa=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Db.length;d++){var e=this.Db[d];
if(e.oc===b[c]){d=e;break a}}d=null}d&&(d.next=this.Da,this.Da=d)}a=a[4];for(b=0;b<this.R.length&&b<a.length;b++)this.R[b][0]=a[b];return!0};function rd(a,b){a.j=a.j&-254049|b&254048;a.j|=b&4096;b&2048?a.j&4096||(a.j|=2048):a.j&=-2049}function sd(a,b){var c=a.i;a.i=(c+b)%Tb;return c}function H(a,b){a.i=b%Tb;a.O=-1}function qd(a){var b=[];for(a=a.Da;a;)b.push(a.oc),a=a.next;return b}m.gc=function(a){var b=this.G;a=this.Ca=a;return b.b[(a&b.j)>>>b.i].f(a&16383,a)};
m.rc=function(a,b){var c=this.G;a=this.Ca=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b};
m.$a=function(a){this.A.complete=!0;var b=this.D?td(this.D)?1:this.A.jb?-1:0:0,c=a?this.A.jb?0:1:-1;this.A.jb=!1;this.V=this.N=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(ud(this.D,this.i,c)){this.Y();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.Da||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&ud(this.D,this.i,c)){this.Y();break}if(0>c)break}}this.C&=15;this.I&4194304?this.I=this.Ka=this.f(this.b):0<=this.O?(this.I=this.La=this.f(this.O),this.O=-1):(this.I=this.La=
this.f(this.Ea=this.i),this.i=(this.i+1)%Tb);this.I&=8388607;this.b=this.I&262143;if(a=this.I>>18&15)this.b=this.b+(this.Ka=this.f(a))&Sb;a=this.I&4194304?-1:this.La/$b|0;0<=a&&this.Rb(a);this.N--}while(0<this.N);return this.A.complete?this.V-this.N:!1===this.A.complete?-1:0};Xa(function(){for(var a=w(document,v,"cpu"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new od(d);sb(d,c)}});function pd(a){vd[a>>4].call(this,a,a&15)}function N(a){this.w(a)}
function wd(){var a=0,b=this.f(this.b),c=b/ac&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*ac+(d<<24)+(b&16777215);a&&(b=(b+a)%C);this.g(this.b,b)}function xd(a,b){a=this.f(this.b);if(0>this.K)this.K=a,this.I=this.b|4194304;else{var c=this.K/ac&63,d=this.K>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.j&=-8193;this.K=-1}}
function yd(a,b){a=this.f(this.b);if(0>this.K)this.K=a,this.I=this.b|4194304;else{var c=this.K/ac&63,d=this.K>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%C;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.j&=-8193;this.K=-1}}function zd(a,b){this.g(b,this.f(this.b))}function Ad(a,b){this.g(b,this.b)}function Bd(a,b){this.g(this.b,this.f(b))}function Cd(a,b){this.g(b,0)}function Dd(a,b){this.g(b,B-this.f(b))}function Ed(a,b){this.g(b,B)}
function Fd(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Gd(a,d,c)+(c-(c&x)))}function Hd(a,b){var c=this.f(b);this.g(b,Gd(a,c,0))}function Id(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Gd(a,c,b)+(b-(b&x)))}function Jd(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&x,a){case 256:d+=x;break;case 384:d+=c>z?x:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function Kd(a,b){var c=(this.f(this.b)&x)*y,d=this.f(b);this.g(b,Gd(a,d,c)+c)}
function be(a,b){var c=this.b*y,d=this.f(b);this.g(b,Gd(a,d,c)+c)}function ce(a,b){b=(this.f(b)&x)*y;var c=this.f(this.b);this.g(this.b,Gd(a,c,b)+b)}function de(a,b){var c=this.f(this.b),d=(c&x)*y,c=Gd(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function ee(a,b){var c=this.f(this.b)&x,d=this.f(b);this.g(b,fe(a,d,c)+c)}function ge(a,b){var c=this.f(b);this.g(b,fe(a,c,this.b)+this.b)}function he(a,b){b=this.f(b)&x;var c=this.f(this.b);this.g(this.b,fe(a,c,b)+b)}
function ie(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=x,a){case 256:d+=x*y;break;case 384:d+=c>Ub?x*y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function je(a,b){var c=this.f(this.b)/y|0,d=this.f(b);this.g(b,fe(a,d,c)+c)}function ke(a,b){var c=this.f(b);this.g(b,fe(a,c,0))}function le(a,b){b=this.f(b)/y|0;var c=this.f(this.b);this.g(this.b,fe(a,c,b)+b)}function me(a,b){var c=this.f(this.b),d=c/y|0,c=fe(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function O(a){ne[a&7].call(this,a,a>>3&127)}
function oe(){}function pe(){}function L(a){this.u("undefined opcode: "+ua(a));sd(this,-1);this.W()}function qe(a){a>z&&(a!=A?a=Xb-a:this.j|=163840);return a}function Q(a,b){var c=(a+b)%C;re.call(this,a,b,c);return c}
function se(a,b,c){var d=!1,e=!1,f=b-b%A;a=a%A+b*A%C;b=this.F=f+Math.trunc(b/2);c>z&&(c=C-c,d=!d);b>z&&(a?(b=B-b,a=C-a):b&&(b=C-b),e=!0,d=!d);if(b>=c)return this.j|=131104,-1;f=this.jb;f[0]=0;f[1]=0;f=this.va;f[0]=1;f[1]=0;f=this.na;f[0]=c;f[1]=0;c=this.xa;c[0]=a;for(c[1]=b;0<te(this.xa,this.na);)ue(this.na,this.na),ue(this.va,this.va);do{if(0<=te(this.xa,this.na)&&(b=this.xa,a=this.na,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=C,b[1]--),ue(this.jb,this.va),ve(this.xa)))break;we(this.na);we(this.va)}while(!ve(this.va));
a=this.jb[0];this.F=this.xa[0];d&&a&&(a=C-a);e&&this.F&&(this.F=C-this.F);return a}
function xe(a,b,c){var d=a,e=b;b=!1;var f;d>z&&(1001!=this.mb||d!=A)&&(d=C-d,b=!b);e>z&&(e=C-e,b=!b);if(d<y&&e<y)a=d*e,f=0;else{a=d&x;d=Math.trunc(d/y);f=e&x;var e=Math.trunc(e/y),g=a*f,h=d*f+Math.trunc(g/y);f=Math.trunc(h/y);h=(h&x)+a*e;a=(h*y+(g&x))%C;f+=Math.trunc(h/y)+d*e}b&&(a?(f=B-f,a=C-a):f&&(f=C-f));if(c)return(f||a>z)&&(f!=B||a<=z)&&(this.j|=131072),a;c=a;b=f;a=b-b%A;b=2*b%C+Math.trunc(c/A);c=a+c%A;d=b-b%A;a!=d&&(b=a+(b-d),this.j|=131072);this.F=c;return b}
function oe(){}function pe(){}function L(a){this.u("undefined opcode: "+ua(a));sd(this,-1);this.Y()}function qe(a){a>z&&(a!=A?a=Xb-a:this.j|=163840);return a}function Q(a,b){var c=(a+b)%C;re.call(this,a,b,c);return c}
function se(a,b,c){var d=!1,e=!1,f=b-b%A;a=a%A+b*A%C;b=this.F=f+Math.trunc(b/2);c>z&&(c=C-c,d=!d);b>z&&(a?(b=B-b,a=C-a):b&&(b=C-b),e=!0,d=!d);if(b>=c)return this.j|=131104,-1;f=this.kb;f[0]=0;f[1]=0;f=this.wa;f[0]=1;f[1]=0;f=this.oa;f[0]=c;f[1]=0;c=this.xa;c[0]=a;for(c[1]=b;0<te(this.xa,this.oa);)ue(this.oa,this.oa),ue(this.wa,this.wa);do{if(0<=te(this.xa,this.oa)&&(b=this.xa,a=this.oa,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=C,b[1]--),ue(this.kb,this.wa),ve(this.xa)))break;we(this.oa);we(this.wa)}while(!ve(this.wa));
a=this.kb[0];this.F=this.xa[0];d&&a&&(a=C-a);e&&this.F&&(this.F=C-this.F);return a}
function xe(a,b,c){var d=a,e=b;b=!1;var f;d>z&&(1001!=this.nb||d!=A)&&(d=C-d,b=!b);e>z&&(e=C-e,b=!b);if(d<y&&e<y)a=d*e,f=0;else{a=d&x;d=Math.trunc(d/y);f=e&x;var e=Math.trunc(e/y),g=a*f,h=d*f+Math.trunc(g/y);f=Math.trunc(h/y);h=(h&x)+a*e;a=(h*y+(g&x))%C;f+=Math.trunc(h/y)+d*e}b&&(a?(f=B-f,a=C-a):f&&(f=C-f));if(c)return(f||a>z)&&(f!=B||a<=z)&&(this.j|=131072),a;c=a;b=f;a=b-b%A;b=2*b%C+Math.trunc(c/A);c=a+c%A;d=b-b%A;a!=d&&(b=a+(b-d),this.j|=131072);this.F=c;return b}
function ye(a){a?a==A?this.j|=163840:a=Xb-a:this.j|=98304;return a}function ze(a,b){var c=a-b;0>c&&(c+=C);re.call(this,c,b,a);return c}function re(a,b,c){a=Math.trunc(a/Wb);b=Math.trunc(b/Wb);c=Math.trunc(c/Wb);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function R(a,b){return((a/E|0)&(b/E|0))*E+((a&b)>>>0)}function S(a,b){return R(a,(~(b/E|0)&15)*E+(~b>>>0))}function T(a,b){return(a<A?a:a-C)-(b<A?b:b-C)}
function Ae(a,b){return(~((a/E|0)^(b/E|0))&15)*E+(~(a^b)>>>0)}function U(a,b){return(a/E|0|b/E|0)*E+((a|b)>>>0)}function V(a){return a<A?a:a-C}function W(a,b){return((a/E|0)^(b/E|0))*E+((a^b)>>>0)}function X(a){return(a/y|0)+(a&x)*y}function fe(a,b,c){switch(a&384){case 0:b-=b&x;break;case 128:b=0;break;case 256:b=x*y;break;case 384:b=c>Ub?x*y:0}return b}function Gd(a,b,c){switch(a&384){case 0:b&=x;break;case 128:b=0;break;case 256:b=x;break;case 384:b=c>z?x:0}return b}
function ue(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=C&&(a[0]%=C,a[1]++)}function te(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function we(a){a[1]%2&&(a[0]+=C);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function ve(a){return!a[0]&&!a[1]}
@ -122,175 +122,177 @@ ye.call(this,this.b))},function(a,b){this.g(this.b,ye.call(this,this.f(b)))},fun
b){this.g(this.b,xe.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(this.b,this.g(b,xe.call(this,this.f(b),this.f(this.b),!0)))},function(a,b){this.g(b,xe.call(this,this.f(b),this.f(this.b)));this.g(b+1&15,this.F)},function(a,b){this.g(b,xe.call(this,this.f(b),this.b));this.g(b+1&15,this.F)},function(a,b){this.g(this.b,xe.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,xe.call(this,this.f(b),this.f(this.b))));this.g(b+1&15,this.F)},function(a,b){a=se.call(this,
this.f(b),0,this.f(this.b));0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=se.call(this,this.f(b),0,this.b);0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=se.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=se.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=se.call(this,c,a,this.f(this.b));0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=se.call(this,
c,a,this.b);0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);b=this.f(b+1&15);b=se.call(this,b,a,this.f(this.b));0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=se.call(this,c,a,this.f(this.b));0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){if(a=(this.b&Vb)<<14>>23|this.b&255){var c,d,e=this.f(b);0<a?(d=z,c=e<A?0:A,35>a&&(c+=e*Math.pow(2,a)%A,d=A-Math.pow(2,35-a)),e<A?e+d>z&&(this.j|=131072):e-d<A&&(this.j|=131072)):-35>=a?c=e<A?0:
z:(c=Math.trunc(e/Math.pow(2,-a)),e>z&&(d=C-Math.pow(2,36+a),c+=d));this.g(b,c)}},function(a,b){if(a=((this.b&Vb)<<14>>23|this.b&255)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%C+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b&Vb)<<14>>23|this.b&255){var c=this.f(b),c=0<a?36<=a?0:c*Math.pow(2,a)%C:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.g(b,c)}},function(a,b){a=0;var c=this.f(b);if(c){for(;c<A;)a++,c*=2;G(this,this.b)}this.g(b+1&15,a)},function(a,b){if(a=(this.b&
z:(c=Math.trunc(e/Math.pow(2,-a)),e>z&&(d=C-Math.pow(2,36+a),c+=d));this.g(b,c)}},function(a,b){if(a=((this.b&Vb)<<14>>23|this.b&255)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%C+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b&Vb)<<14>>23|this.b&255){var c=this.f(b),c=0<a?36<=a?0:c*Math.pow(2,a)%C:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.g(b,c)}},function(a,b){a=0;var c=this.f(b);if(c){for(;c<A;)a++,c*=2;H(this,this.b)}this.g(b+1&15,a)},function(a,b){if(a=(this.b&
Vb)<<14>>23|this.b&255){var c,d=this.f(b),e=this.f(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<A||d>z&&d<B)this.j|=131072;if(71<=a){if(0<e&&e<A||e>z&&e<B)this.j|=131072;d=0}else d=e*Math.pow(2,a-35)%A,c=A-Math.pow(2,70-a),f<=z?e+c>z&&(this.j|=131072):e-c<=z&&(this.j|=131072);e=0;f>z&&(d+=A,e+=A)}else d=d*Math.pow(2,a)%A+Math.trunc(e%A/Math.pow(2,35-a)),e=e*Math.pow(2,a)%A,c=A-Math.pow(2,35-a),f<=z?f+c>z&&(this.j|=131072):(f-c<=z&&(this.j|=131072),d+=A,e+=A)}else-36>=a?(e=-72>=a?d>z?B:0:Math.trunc(d%
A/Math.pow(2,-a-35)),d<=z?d=0:(d=B,e+=A)):(c=d>z?C-Math.pow(2,36+a):0,e=Math.trunc(e%A/Math.pow(2,-a))+d%A*Math.pow(2,35+a)%A,d=Math.trunc(d/Math.pow(2,-a))+c,d>z&&(e+=A));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=((this.b&Vb)<<14>>23|this.b&255)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%C+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%C+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%C+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%C+Math.trunc(d/
Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b&Vb)<<14>>23|this.b&255){var c=this.f(b),d=this.f(b+1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%C,d=0):(c=c*Math.pow(2,a)%C+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%C):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%C,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},L,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,a)},function(a,
b){a=!1;for(var c=this.f(b),d=c/y|0,c=c&x;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&x,c=c+1&x,this.A.O||(this.g(b,d*y+c),a||sd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a<A&&G(this,this.b)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a>=A&&G(this,this.b)},function(a,b){b&1&&(this.j|=4096);b&2&&rd(this,this.Ja/y|0);b&4&&this.W();b&8&&this.w(a);G(this,this.b)},function(a,b){a=b<<14;this.j&a&&(this.j&=~a,G(this,this.b))},function(){this.P=this.b},L,function(a,b){a=(this.f(b)+
262145)%C;this.g(b,a);a/y|0||(this.j|=262144);this.g(a&Sb,(this.j&x)*y+this.i);this.j&=-8193;G(this,this.b)},function(a,b){a=this.f(b);a+=262145;this.g(a&Sb,this.f(this.b));a>=C&&(a-=C);a/y|0||(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&Sb);this.g(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=C);(a/y|0)==x&&(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&Sb);a-=262145;0>a&&(a+=C);(a/y|0)==x&&(this.j|=262144);this.g(b,a);G(this,c&Sb)},function(){this.g(this.b,
(this.j&x)*y+this.i);this.j&=-8193;G(this,this.b+1)},function(a,b){this.g(b,(this.j&x)*y+this.i);this.j&=-8193;G(this,this.b)},function(a,b){this.g(this.b,this.f(b));this.g(b,this.b*y+this.i);G(this,this.b+1)},function(a,b){a=this.f(b);this.g(b,this.f(a/y|0));G(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q.call(this,
this.f(b),this.f(this.b))))},function(a,b){this.g(b,ze.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,ze.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,ze.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,ze.call(this,this.f(b),this.f(this.b))))},oe,function(a,b){0>T(this.f(b),this.b)&&G(this,this.i+1)},function(a,b){T(this.f(b),this.b)||G(this,this.i+1)},function(a,b){0>=T(this.f(b),this.b)&&G(this,this.i+1)},function(){G(this,this.i+1)},function(a,
b){0<=T(this.f(b),this.b)&&G(this,this.i+1)},function(a,b){T(this.f(b),this.b)&&G(this,this.i+1)},function(a,b){0<T(this.f(b),this.b)&&G(this,this.i+1)},pe,function(a,b){0>T(this.f(b),this.f(this.b))&&G(this,this.i+1)},function(a,b){T(this.f(b),this.f(this.b))||G(this,this.i+1)},function(a,b){0>=T(this.f(b),this.f(this.b))&&G(this,this.i+1)},function(){G(this,this.i+1)},function(a,b){0<=T(this.f(b),this.f(this.b))&&G(this,this.i+1)},function(a,b){T(this.f(b),this.f(this.b))&&G(this,this.i+1)},function(a,
b){0<T(this.f(b),this.f(this.b))&&G(this,this.i+1)},oe,function(a,b){0>V(this.f(b))&&G(this,this.b)},function(a,b){V(this.f(b))||G(this,this.b)},function(a,b){0>=V(this.f(b))&&G(this,this.b)},function(){G(this,this.b)},function(a,b){0<=V(this.f(b))&&G(this,this.b)},function(a,b){V(this.f(b))&&G(this,this.b)},function(a,b){0<V(this.f(b))&&G(this,this.b)},function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0>V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);
V(a)||G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0>=V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){G(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0<V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,Q.call(this,this.f(b),1))},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>V(a)&&G(this,
this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));V(a)||G(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>=V(a)&&G(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),1));G(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<=V(a)&&G(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));V(a)&&G(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<V(a)&&G(this,this.b)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),
1));b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));V(a)||G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>=V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<=V(a)&&G(this,this.i+
1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,Q.call(this,this.f(b),B))},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0>V(a)&&G(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));V(a)||G(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0>=V(a)&&G(this,this.b)},function(a,
b){this.g(b,Q.call(this,this.f(b),B));G(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0<=V(a)&&G(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));V(a)&&G(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0<V(a)&&G(this,this.b)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));0>V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),
B));V(a)||G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));0>=V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));0<=V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));V(a)&&G(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));
0<V(a)&&G(this,this.i+1);b&&this.g(b,a)},Cd,Cd,function(){this.g(this.b,0)},function(a,b){this.g(this.b,this.g(b,0))},function(a,b){this.g(b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),this.b))},function(a,b){this.g(this.b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(this.f(b),this.f(this.b))))},function(a,b){this.g(b,R(B-this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(B-this.f(b),this.b))},function(a,b){this.g(this.b,R(B-this.f(b),this.f(this.b)))},
b){a=!1;for(var c=this.f(b),d=c/y|0,c=c&x;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&x,c=c+1&x,this.A.P||(this.g(b,d*y+c),a||sd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a<A&&H(this,this.b)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a>=A&&H(this,this.b)},function(a,b){b&1&&(this.j|=4096);b&2&&rd(this,this.Ka/y|0);b&4&&this.Y();b&8&&this.w(a);H(this,this.b)},function(a,b){a=b<<14;this.j&a&&(this.j&=~a,H(this,this.b))},function(){this.O=this.b},L,function(a,b){a=(this.f(b)+
262145)%C;this.g(b,a);a/y|0||(this.j|=262144);this.g(a&Sb,(this.j&x)*y+this.i);this.j&=-8193;H(this,this.b)},function(a,b){a=this.f(b);a+=262145;this.g(a&Sb,this.f(this.b));a>=C&&(a-=C);a/y|0||(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&Sb);this.g(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=C);(a/y|0)==x&&(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&Sb);a-=262145;0>a&&(a+=C);(a/y|0)==x&&(this.j|=262144);this.g(b,a);H(this,c&Sb)},function(){this.g(this.b,
(this.j&x)*y+this.i);this.j&=-8193;H(this,this.b+1)},function(a,b){this.g(b,(this.j&x)*y+this.i);this.j&=-8193;H(this,this.b)},function(a,b){this.g(this.b,this.f(b));this.g(b,this.b*y+this.i);H(this,this.b+1)},function(a,b){a=this.f(b);this.g(b,this.f(a/y|0));H(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q.call(this,
this.f(b),this.f(this.b))))},function(a,b){this.g(b,ze.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,ze.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,ze.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,ze.call(this,this.f(b),this.f(this.b))))},oe,function(a,b){0>T(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){T(this.f(b),this.b)||H(this,this.i+1)},function(a,b){0>=T(this.f(b),this.b)&&H(this,this.i+1)},function(){H(this,this.i+1)},function(a,
b){0<=T(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){T(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){0<T(this.f(b),this.b)&&H(this,this.i+1)},pe,function(a,b){0>T(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){T(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){0>=T(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){0<=T(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){T(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,
b){0<T(this.f(b),this.f(this.b))&&H(this,this.i+1)},oe,function(a,b){0>V(this.f(b))&&H(this,this.b)},function(a,b){V(this.f(b))||H(this,this.b)},function(a,b){0>=V(this.f(b))&&H(this,this.b)},function(){H(this,this.b)},function(a,b){0<=V(this.f(b))&&H(this,this.b)},function(a,b){V(this.f(b))&&H(this,this.b)},function(a,b){0<V(this.f(b))&&H(this,this.b)},function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0>V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);
V(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0>=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){H(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0<V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,Q.call(this,this.f(b),1))},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>V(a)&&H(this,
this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));V(a)||H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>=V(a)&&H(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),1));H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<=V(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));V(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<V(a)&&H(this,this.b)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),
1));b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));V(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<=V(a)&&H(this,this.i+
1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,Q.call(this,this.f(b),B))},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0>V(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));V(a)||H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0>=V(a)&&H(this,this.b)},function(a,
b){this.g(b,Q.call(this,this.f(b),B));H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0<=V(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));V(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0<V(a)&&H(this,this.b)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));0>V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),
B));V(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));0>=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));0<=V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));V(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));
0<V(a)&&H(this,this.i+1);b&&this.g(b,a)},Cd,Cd,function(){this.g(this.b,0)},function(a,b){this.g(this.b,this.g(b,0))},function(a,b){this.g(b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),this.b))},function(a,b){this.g(this.b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(this.f(b),this.f(this.b))))},function(a,b){this.g(b,R(B-this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(B-this.f(b),this.b))},function(a,b){this.g(this.b,R(B-this.f(b),this.f(this.b)))},
function(a,b){this.g(this.b,this.g(b,R(B-this.f(b),this.f(this.b))))},zd,Ad,pe,zd,function(a,b){this.g(b,R(this.f(b),B-this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),B-this.b))},function(a,b){this.g(this.b,R(this.f(b),B-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(this.f(b),B-this.f(this.b))))},oe,oe,Bd,Bd,function(a,b){this.g(b,W(this.f(b),this.f(this.b)))},function(a,b){this.g(b,W(this.f(b),this.b))},function(a,b){this.g(this.b,W(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,
this.g(b,W(this.f(b),this.f(this.b))))},function(a,b){this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),this.b))},function(a,b){this.g(this.b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(this.f(b),this.f(this.b))))},function(a,b){this.g(b,R(B-this.f(b),B-this.f(this.b)))},function(a,b){this.g(b,R(B-this.f(b),B-this.b))},function(a,b){this.g(this.b,R(B-this.f(b),B-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(B-this.f(b),B-this.f(this.b))))},
function(a,b){this.g(b,Ae(this.f(b),this.f(this.b)))},function(a,b){this.g(b,Ae(this.f(b),this.b))},function(a,b){this.g(this.b,Ae(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Ae(this.f(b),this.f(this.b))))},Dd,Dd,function(a,b){this.g(this.b,B-this.f(b))},function(a,b){this.g(this.b,this.g(b,B-this.f(b)))},function(a,b){this.g(b,U(B-this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(B-this.f(b),this.b))},function(a,b){this.g(this.b,U(B-this.f(b),this.f(this.b)))},function(a,
b){this.g(this.b,this.g(b,U(B-this.f(b),this.f(this.b))))},function(a,b){this.g(b,B-this.f(this.b))},function(a,b){this.g(b,B-this.b)},function(){this.g(this.b,B-this.f(this.b))},function(a,b){this.g(this.b,this.g(b,B-this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),B-this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),B-this.b))},function(a,b){this.g(this.b,U(this.f(b),B-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(this.f(b),B-this.f(this.b))))},function(a,b){this.g(b,U(B-this.f(b),
B-this.f(this.b)))},function(a,b){this.g(b,U(B-this.f(b),B-this.b))},function(a,b){this.g(this.b,U(B-this.f(b),B-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(B-this.f(b),B-this.f(this.b))))},Ed,Ed,function(){this.g(this.b,B)},function(a,b){this.g(this.b,this.g(b,B))},Fd,Hd,Id,Jd,Kd,be,ce,de,Fd,Hd,Id,Jd,Kd,be,ce,de,Fd,Hd,Id,Jd,Kd,be,ce,de,Fd,Hd,Id,Jd,Kd,be,ce,de,ee,ge,he,ie,je,ke,le,me,ee,ge,he,ie,je,ke,le,me,ee,ge,he,ie,je,ke,le,me,ee,ge,he,ie,je,ke,le,me,oe,oe,function(a,b){R(this.f(b),
this.b)||G(this,this.i+1)},function(a,b){R(this.f(b),this.b*y)||G(this,this.i+1)},function(){G(this,this.i+1)},function(){G(this,this.i+1)},function(a,b){R(this.f(b),this.b)&&G(this,this.i+1)},function(a,b){R(this.f(b),this.b*y)&&G(this,this.i+1)},pe,pe,function(a,b){R(this.f(b),this.f(this.b))||G(this,this.i+1)},function(a,b){R(this.f(b),X(this.f(this.b)))||G(this,this.i+1)},function(){G(this,this.i+1)},function(){G(this,this.i+1)},function(a,b){R(this.f(b),this.f(this.b))&&G(this,this.i+1)},function(a,
b){R(this.f(b),X(this.f(this.b)))&&G(this,this.i+1)},function(a,b){this.g(b,S(this.f(b),this.b))},function(a,b){this.g(b,S(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)||G(this,this.i+1);this.g(b,S(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)||G(this,this.i+1);this.g(b,S(a,c))},function(a,b){G(this,this.i+1);this.g(b,S(this.f(b),this.b))},function(a,b){G(this,this.i+1);this.g(b,S(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)&&G(this,this.i+1);this.g(b,S(a,
this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)&&G(this,this.i+1);this.g(b,S(a,c))},function(a,b){this.g(b,S(this.f(b),this.f(this.b)))},function(a,b){this.g(b,S(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||G(this,this.i+1);this.g(b,S(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)||G(this,this.i+1);this.g(b,S(a,c))},function(a,b){G(this,this.i+1);this.g(b,S(this.f(b),this.f(this.b)))},function(a,b){G(this,this.i+1);this.g(b,S(this.f(b),
X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&G(this,this.i+1);this.g(b,S(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)&&G(this,this.i+1);this.g(b,S(a,c))},function(a,b){this.g(b,W(this.f(b),this.b))},function(a,b){this.g(b,W(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)||G(this,this.i+1);this.g(b,W(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)||G(this,this.i+1);this.g(b,W(a,c))},function(a,b){G(this,this.i+1);this.g(b,W(this.f(b),
this.b))},function(a,b){G(this,this.i+1);this.g(b,W(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)&&G(this,this.i+1);this.g(b,W(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)&&G(this,this.i+1);this.g(b,W(a,c))},function(a,b){this.g(b,W(this.f(b),this.f(this.b)))},function(a,b){this.g(b,W(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||G(this,this.i+1);this.g(b,W(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)||G(this,
this.i+1);this.g(b,W(a,c))},function(a,b){G(this,this.i+1);this.g(b,W(this.f(b),this.f(this.b)))},function(a,b){G(this,this.i+1);this.g(b,W(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&G(this,this.i+1);this.g(b,W(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)&&G(this,this.i+1);this.g(b,W(a,c))},function(a,b){this.g(b,U(this.f(b),this.b))},function(a,b){this.g(b,U(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)||G(this,this.i+1);
this.g(b,U(a,this.b))},function(a,b){a=this.f(b);R(a,this.b*y)||G(this,this.i+1);this.g(b,U(a,this.b*y))},function(a,b){G(this,this.i+1);this.g(b,U(this.f(b),this.b))},function(a,b){G(this,this.i+1);this.g(b,U(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)&&G(this,this.i+1);this.g(b,U(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)&&G(this,this.i+1);this.g(b,U(a,c))},function(a,b){this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),X(this.f(this.b))))},
function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||G(this,this.i+1);this.g(b,U(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)||G(this,this.i+1);this.g(b,U(a,c))},function(a,b){G(this,this.i+1);this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){G(this,this.i+1);this.g(b,U(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&G(this,this.i+1);this.g(b,U(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)&&G(this,this.i+1);this.g(b,U(a,
this.b)||H(this,this.i+1)},function(a,b){R(this.f(b),this.b*y)||H(this,this.i+1)},function(){H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){R(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){R(this.f(b),this.b*y)&&H(this,this.i+1)},pe,pe,function(a,b){R(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){R(this.f(b),X(this.f(this.b)))||H(this,this.i+1)},function(){H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){R(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,
b){R(this.f(b),X(this.f(this.b)))&&H(this,this.i+1)},function(a,b){this.g(b,S(this.f(b),this.b))},function(a,b){this.g(b,S(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);this.g(b,S(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)||H(this,this.i+1);this.g(b,S(a,c))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,S(a,
this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){this.g(b,S(this.f(b),this.f(this.b)))},function(a,b){this.g(b,S(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,S(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)||H(this,this.i+1);this.g(b,S(a,c))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),
X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){this.g(b,W(this.f(b),this.b))},function(a,b){this.g(b,W(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);this.g(b,W(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)||H(this,this.i+1);this.g(b,W(a,c))},function(a,b){H(this,this.i+1);this.g(b,W(this.f(b),
this.b))},function(a,b){H(this,this.i+1);this.g(b,W(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,W(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)&&H(this,this.i+1);this.g(b,W(a,c))},function(a,b){this.g(b,W(this.f(b),this.f(this.b)))},function(a,b){this.g(b,W(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,W(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)||H(this,
this.i+1);this.g(b,W(a,c))},function(a,b){H(this,this.i+1);this.g(b,W(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,W(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,W(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,W(a,c))},function(a,b){this.g(b,U(this.f(b),this.b))},function(a,b){this.g(b,U(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);
this.g(b,U(a,this.b))},function(a,b){a=this.f(b);R(a,this.b*y)||H(this,this.i+1);this.g(b,U(a,this.b*y))},function(a,b){H(this,this.i+1);this.g(b,U(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,U(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,U(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)&&H(this,this.i+1);this.g(b,U(a,c))},function(a,b){this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),X(this.f(this.b))))},
function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,U(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)||H(this,this.i+1);this.g(b,U(a,c))},function(a,b){H(this,this.i+1);this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,U(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,U(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,U(a,
c))},O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O],ne=[function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){switch(b){case 0:a=this.f(this.b);a&8&&(this.j&=-131073);a&131072&&(this.j&=-262145);break;default:this.w(a)}},function(a,b){switch(b){case 0:a=0;this.j&131072&&(a|=8);this.j&262144&&(a|=65536);this.g(this.b,a);break;default:this.w(a)}},function(a){this.w(a)},
function(a){this.w(a)}];
function Be(a){r.call(this,"ROM",a,128);this.Y=this.b=null;this.C=+a.addr;this.j=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=wa(this.w);if(this.w){a=this.w;var b=xa(this.F);"json"!=b&&"hex"!=b&&(a=Ja()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.ha("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(lb(c.bb,a,b),(a=Ia(a,b))?(c.b=a.ea,c.Y=a.Y):c.w=null);Ce(c)})}}ka(Be,r);
Be.prototype.La=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ce(this)};Be.prototype.Ba=function(){this.Y&&(this.D&&De(this.D,this.id,this.C,this.j,this.Y),delete this.Y);return!0};Be.prototype.sa=function(){return!0};
function Be(a){r.call(this,"ROM",a,128);this.Z=this.b=null;this.C=+a.addr;this.j=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=wa(this.w);if(this.w){a=this.w;var b=xa(this.F);"json"!=b&&"hex"!=b&&(a=Ja()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.ha("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(lb(c.cb,a,b),(a=Ia(a,b))?(c.b=a.da,c.Z=a.Z):c.w=null);Ce(c)})}}ja(Be,r);
Be.prototype.Ma=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ce(this)};Be.prototype.Ba=function(){this.Z&&(this.D&&De(this.D,this.id,this.C,this.j,this.Z),delete this.Z);return!0};Be.prototype.sa=function(){return!0};
function Ce(a){if(!Bb(a)){if(a.w){if(!a.b||!a.G)return;a.j||(a.j=a.b.length);if(a.b.length!=a.j)yb(a,"ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.j,8,!0)+")");else{var b;b=a.C;if(Ec(a.G,b,a.j,Pc)){var c;for(c=0;c<a.b.length;c++)yc(a.G,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.G,g=d.j,h=[],k=d.C>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.G;d=d.j;g=0;for(e>>>=
f.i;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}Mb(a)}}Xa(function(){for(var a=w(document,v,"rom"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Be(d);sb(d,c)}});
function Ee(a){r.call(this,"RAM",a);this.Y=this.Qa=null;this.i=+a.addr;this.j=+a.size;this.ma=a.load;this.ya=a.exec;null!=this.ma&&(this.ma=+this.ma);null!=this.ya&&(this.ya=+this.ya);this.w=this.F=!1;this.b=a.file;this.C=wa(this.b);if(this.b){a=this.b;var b=xa(this.C);"json"!=b&&"hex"!=b&&(a=Ja()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.ha("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(lb(c.bb,a,b),(a=Ia(a,b))?(c.Qa=a.Qa,
c.Y=a.Y,null==c.ma&&(c.ma=a.ma),null==c.ya&&(c.ya=a.ya)):c.b=null);Fe(c)})}}ka(Ee,r);Ee.prototype.La=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Fe(this)};Ee.prototype.Ba=function(a,b){this.Y&&(this.D&&De(this.D,this.id,this.i,this.j,this.Y),delete this.Y);b||this.reset();return!0};Ee.prototype.sa=function(){return!0};
function Fe(a){if(a.G&&(!a.w&&a.j&&(Ec(a.G,a.i,a.j,1)?a.w=!0:a.j=0),!Bb(a))){if(!a.w)q("No RAM allocated");else if(a.b){if(!a.Qa)return;Ge(a,a.Qa,a.ma,a.ya,a.i)?a.status('Loaded image "'+a.C+'"'):a.ha('Error loading image "'+a.C+'"')}a.F=!0;Mb(a)}}
Ee.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.j,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-A&&(g+=C);for(var g=Math.trunc(Math.abs(g))%C,h=d;f--&&h<e.size;h++)e.D(g,d,e.B+d);c-=16384;b++;d=0}this.Qa&&Ge(this,this.Qa,this.ma,this.ya,this.i,!this.D)}this.F=!1};
function Ge(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)yc(a.G,c+g,b[g]);g=!0}g&&(null==d&&(a.v.W(),f=!1),null!=d&&(a=a.v,a.Pa=d,G(a,d),f?a.A.aa?a.A.O||sc(a):a.A.ga=!0:a.D&&a.A.aa?a.W()||a.H.A.reset||(cd(a.D),J(a.H,-1)):!1===f&&a.W(),!a.A.O&&a.Oa&&a.Oa.stop()));return g}Xa(function(){for(var a=w(document,v,"ram"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Ee(d);sb(d,c)}});
function He(a){r.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.j=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Ie;b&&(void 0===c&&(c="Panel"),(c=rb(c,this.id))&&(b=c.J[b])&&this.ta(null,a,b))}this.b=this.C=null;this.exports={connect:this.Kb,receiveData:this.gb,receiveStatus:this.hc,setConnection:this.kc}}ka(He,r);m=He.prototype;
m.ta=function(a,b,c){var d=this;switch(b){case Ie:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ma.xb:ma.Ob:46==c?b=ma.xb:a.ctrlKey&&c>=ma.wb&&c<=ma.Pb&&(b=c-(ma.wb-ma.Lb));b&&(a.preventDefault&&a.preventDefault(),d.gb(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ma.Nb&&(b=ma.Mb);d.gb(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.gb(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};m.La=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Mb(this)};
m.Kb=function(a){if(!this.b){var b=$c(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.ab)return;c=Ca(c[1]);if(this.b=qb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.bb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};m.Ba=function(a,b){if(!b)if(this.Kb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
m.sa=function(a){return a?this.save():!0};m.reset=function(){};m.save=function(){var a=new F(this);a.set(0,[]);return a.data()};m.restore=function(){return!0};m.gb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};m.hc=function(){};m.kc=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var Ie="buffer";
Xa(function(){for(var a=w(document,v,"serial"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new He(d);sb(d,c)}});function Je(a){r.call(this,"Debugger",a);this.T=+a.base||16;this.L=32;this.la=null;this.U=["{","}"];this.ua=["[","]"];this.C=0;this.V=!1;this.w=-1;this.j=[];this.F={}}ka(Je,r);Je.prototype.tb=function(){return-1};Je.prototype.ub=function(){};
function Ke(a,b,c,d){if(c)if(b){0>a.w&&a.j.length&&(a.w=0);if(0>a.w||b!=a.j[a.w])a.j.splice(0,0,b),a.w=0;a.w--}else a.V?b="end":b=a.j[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ca(b.substring(c,f))),c=f+1}}return a}function Le(a,b,c){if(32>=a.L)return b&c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Me|0)&(c/Me|0))*Me+((b&c)>>>0)}
function Ee(a){r.call(this,"RAM",a);this.Z=this.Pa=null;this.i=+a.addr;this.j=+a.size;this.la=a.load;this.ya=a.exec;null!=this.la&&(this.la=+this.la);null!=this.ya&&(this.ya=+this.ya);this.w=this.F=!1;this.b=a.file;this.C=wa(this.b);if(this.b){a=this.b;var b=xa(this.C);"json"!=b&&"hex"!=b&&(a=Ja()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.ha("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(lb(c.cb,a,b),(a=Ia(a,b))?(c.Pa=a.Pa,
c.Z=a.Z,null==c.la&&(c.la=a.la),null==c.ya&&(c.ya=a.ya)):c.b=null);Fe(c)})}}ja(Ee,r);Ee.prototype.Ma=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Fe(this)};Ee.prototype.Ba=function(a,b){this.Z&&(this.D&&De(this.D,this.id,this.i,this.j,this.Z),delete this.Z);b||this.reset();return!0};Ee.prototype.sa=function(){return!0};
function Fe(a){if(a.G&&(!a.w&&a.j&&(Ec(a.G,a.i,a.j,1)?a.w=!0:a.j=0),!Bb(a))){if(!a.w)q("No RAM allocated");else if(a.b){if(!a.Pa)return;Ge(a,a.Pa,a.la,a.ya,a.i)?a.status('Loaded image "'+a.C+'"'):a.ha('Error loading image "'+a.C+'"')}a.F=!0;Mb(a)}}
Ee.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.j,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-A&&(g+=C);for(var g=Math.trunc(Math.abs(g))%C,h=d;f--&&h<e.size;h++)e.D(g,d,e.B+d);c-=16384;b++;d=0}this.Pa&&Ge(this,this.Pa,this.la,this.ya,this.i,!this.D)}this.F=!1};
function Ge(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)yc(a.G,c+g,b[g]);g=!0}g&&(null==d&&(a.v.Y(),f=!1),null!=d&&(a=a.v,a.ab=d,H(a,d),f?a.A.aa?a.A.P||sc(a):a.A.fa=!0:a.D&&a.A.aa?a.Y()||a.H.A.reset||(cd(a.D),J(a.H,-1)):!1===f&&a.Y(),!a.A.P&&a.Oa&&a.Oa.stop()));return g}Xa(function(){for(var a=w(document,v,"ram"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Ee(d);sb(d,c)}});
function He(a){r.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.j=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Ie;b&&(void 0===c&&(c="Panel"),(c=rb(c,this.id))&&(b=c.J[b])&&this.ta(null,a,b))}this.b=this.C=null;this.exports={connect:this.Lb,receiveData:this.hb,receiveStatus:this.ic,setConnection:this.lc}}ja(He,r);m=He.prototype;
m.ta=function(a,b,c){var d=this;switch(b){case Ie:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ma.yb:ma.Pb:46==c?b=ma.yb:a.ctrlKey&&c>=ma.xb&&c<=ma.Qb&&(b=c-(ma.xb-ma.Mb));b&&(a.preventDefault&&a.preventDefault(),d.hb(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ma.Ob&&(b=ma.Nb);d.hb(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.hb(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Mb(this)};
m.Lb=function(a){if(!this.b){var b=$c(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.bb)return;c=Ca(c[1]);if(this.b=qb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.cb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};m.Ba=function(a,b){if(!b)if(this.Lb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
m.sa=function(a){return a?this.save():!0};m.reset=function(){};m.save=function(){var a=new F(this);a.set(0,[]);return a.data()};m.restore=function(){return!0};m.hb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};m.ic=function(){};m.lc=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var Ie="buffer";
Xa(function(){for(var a=w(document,v,"serial"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new He(d);sb(d,c)}});function Je(a){r.call(this,"Debugger",a);this.U=+a.base||16;this.L=32;this.ja=null;this.T=["{","}"];this.ua=["[","]"];this.F=0;this.V=!1;this.C=-1;this.w=[];this.i={}}ja(Je,r);Je.prototype.ub=function(){return-1};Je.prototype.vb=function(){};
function Ke(a,b,c,d){if(c)if(b){0>a.C&&a.w.length&&(a.C=0);if(0>a.C||b!=a.w[a.C])a.w.splice(0,0,b),a.C=0;a.C--}else a.V?b="end":b=a.w[a.C+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ca(b.substring(c,f))),c=f+1}}return a}function Le(a,b,c){if(32>=a.L)return b&c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Me|0)&(c/Me|0))*Me+((b&c)>>>0)}
function Ne(a,b,c){if(32>=a.L)return b|c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Me|0)^(c/Me|0))*Me+((b^c)>>>0)}function Y(a,b,c,d){var e=b;c=c||a.L;if(d)if(32==c)e=b>>>0;else if(32>c)e=b&(1<<c)-1;else{if(a=Math.pow(2,c),0>b||b>=a)e=b%a,0>e&&(e+=a)}else 32>=c?e=b|0:(a=Math.pow(2,c-1),b<-a?(b<2*-a&&(e=b%(2*a)),e+=2*a):e>=a&&(b>=2*a&&(e=b%(2*a)),e-=2*a));b!=e&&(b=e);return b}
function Oe(a,b,c,d){for(d=void 0===d?-1:d;d--&&c.length;){var e=c.pop();if(2>b.length)return!1;var f,g=b.pop();f=b.pop();switch(e){case "*":f*=g;break;case "/":if(!g)return!1;f=Math.trunc(f/g);break;case "^/":if(!g)return!1;f%=g;break;case "+":f+=g;break;case "-":f-=g;break;case "<<":f<<=g;break;case ">>":f>>=g;break;case ">>>":f>>>=g;break;case "<":f=f<g?1:0;break;case "<=":f=f<=g?1:0;break;case ">":f=f>g?1:0;break;case ">=":f=f>=g?1:0;break;case "==":f=f==g?1:0;break;case "!=":f=f!=g?1:0;break;
case "&":f=Le(a,f,g);break;case "!":case "|":e=a;32>=e.L?f|=g:(f=Y(e,f,0,!0),g=Y(e,g,0,!0),f=(f/Me|0|g/Me|0)*Me+((f|g)>>>0));break;case "^!":f=Ne(a,f,g);break;case "&&":f=f&&g?1:0;break;case "||":f=f||g?1:0;break;case "_":case "^_":"^_"==e&&(g=35-(g&255));g&&(f=Y(a,f,0,!0),f=0<g?f*Math.pow(2,g):Math.trunc(f/Math.pow(2,-g)));break;default:return!1}b.push(Y(a,f))}return!0}
function Pe(a,b,c,d,e,f){var g,h,k,l=!1,p=0,u=[],D=[],H=a.T;for(a.T=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=Qe(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Pe(a,b,p,c-1,a.T,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.T=2;continue}if("^O"==k){a.T=8;continue}if("^D"==k){a.T=10;continue}if(!(p&-1073741824)){if("+"==k)continue;if("-"==k){p=p<<2|1;continue}if("~"==k||"^-"==k){p=p<<2|2;continue}if("^L"==
k){p=p<<2|3;continue}}l=!0;break}if(void 0===p)if(null==a.la&&f)a.la=h,p=0;else{l=!0;f=!f;break}u.push(Y(a,p));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{l=!0;break}if(!k)break;p="<"==a.U[0]?Re:Se;if(!p[k]){l=!0;break}D.length&&p[k]<=p[D[D.length-1]]&&Oe(a,u,D,1);D.push(k);a.T="^_"==k?10:e;p=0}if(l||!Oe(a,u,D)||1!=u.length)l=!0;l?!1===f&&a.u("parse error ("+(h||k)+")"):g=u.pop();a.T=H;return g}
function Pe(a,b,c,d,e,f){var g,h,k,l=!1,p=0,u=[],D=[],I=a.U;for(a.U=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=Qe(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Pe(a,b,p,c-1,a.U,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.U=2;continue}if("^O"==k){a.U=8;continue}if("^D"==k){a.U=10;continue}if(!(p&-1073741824)){if("+"==k)continue;if("-"==k){p=p<<2|1;continue}if("~"==k||"^-"==k){p=p<<2|2;continue}if("^L"==
k){p=p<<2|3;continue}}l=!0;break}if(void 0===p)if(null==a.ja&&f)a.ja=h,p=0;else{l=!0;f=!f;break}u.push(Y(a,p));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{l=!0;break}if(!k)break;p="<"==a.T[0]?Re:Se;if(!p[k]){l=!0;break}D.length&&p[k]<=p[D[D.length-1]]&&Oe(a,u,D,1);D.push(k);a.U="^_"==k?10:e;p=0}if(l||!Oe(a,u,D)||1!=u.length)l=!0;l?!1===f&&a.u("parse error ("+(h||k)+")"):g=u.pop();a.U=I;return g}
function Te(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var h=0,k=g+1,l=e;k<b.length;){var p=b[k++];if(p==c){l=-1;break}if(!l)break;l--;p=p.charCodeAt(0);7==d?p&=127:p=p-32&63;h=Y(a,h*Math.pow(2,d)+p,d*e,!0)}if(0<=l){!1===f&&a.u("parse error ("+b+")");break}else b=b.substr(0,g)+K(a,h,-1)+b.substr(k)}return b}
function Ue(a,b,c){var d=void 0;a.la=null;if(b){"{"!=a.U[0]&&(b=b.split(a.U[0]).join("{").split(a.U[1]).join("}"));b=Te(a,b,'"',7,5,c);if(!b)return d;b=Te(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*| )/);d=Pe(a,b,0,b.length,a.T,c);void 0!==d&&!1===c&&Ve(a,null,d)}return d}
function Qe(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.tb(b),0<=f?f=a.ub(f):(f=a.F[b],null==f&&(f=na(b,1<b.length?a.T:10))),null!=f){for(;e;){switch(e&3){case 1:f=-Y(a,f);break;case 2:f=Ne(a,f,-1);break;case 3:for(b=35;0<=b&&!Le(a,f,Math.pow(2,b));)b--;f=35-b}e>>>=2}f=Y(a,f)}else d||a.u("invalid "+(c?c:"value")+": "+b);else d||a.u("missing "+(c||"value"));return f}
function Ve(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.T?K(a,c,a.L,8,1)+" "+c+".":K(a,c,a.L,16,1)+" "+K(a,c,a.L,8,1)+" "+K(a,c,a.L,2,32>=a.L?8:6)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.u((null!=b?b+": ":"")+d);return e}function We(a){var b=a.F;a.F={};return b}function Xe(a,b){if(b)return Ve(a,b,a.F[b]);var c=0;for(b in a.F)Ve(a,b,a.F[b]),c++;return 0<c}
function K(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.T){case 2:(a=0<c?c:0)?36<a&&(a=36):(a=Math.abs(b),a=255>=a?8:262143>=a?18:36);b=ta(b,2,a,"",e);break;case 8:b=ua(b,0<c?(c+2)/3|0:0,!!e);break;case 10:b=va(b,0<c?Math.ceil(.3*c):0);break;default:b=n(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
function Ue(a,b,c){var d=void 0;a.ja=null;if(b){"{"!=a.T[0]&&(b=b.split(a.T[0]).join("{").split(a.T[1]).join("}"));b=Te(a,b,'"',7,5,c);if(!b)return d;b=Te(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*| )/);d=Pe(a,b,0,b.length,a.U,c);void 0!==d&&!1===c&&Ve(a,null,d)}return d}
function Qe(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b){f=a.ub(b);if(0<=f)f=a.vb(f);else if(f=a.i[b]&&a.i[b].value,null!=f){var g=a.i[b]&&a.i[b].ja;g&&(a.ja?(d||(a.u(b+" has too many undefined values ("+g+","+a.ja+")"),d=!0),f=void 0):a.ja=g)}else f=na(b,1<b.length?a.U:10);if(null!=f){for(;e;){switch(e&3){case 1:f=-Y(a,f);break;case 2:f=Ne(a,f,-1);break;case 3:for(b=35;0<=b&&!Le(a,f,Math.pow(2,b));)b--;f=35-b}e>>>=2}f=Y(a,f)}else d||a.u("invalid "+(c?c:"value")+": "+b)}else d||a.u("missing "+(c||
"value"));return f}function Ve(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.U?K(a,c,a.L,8,1)+" "+c+".":K(a,c,a.L,16,1)+" "+K(a,c,a.L,8,1)+" "+K(a,c,a.L,2,32>=a.L?8:6)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.u((null!=b?b+": ":"")+d);return e}function We(a){var b=a.i;a.i={};return b}function Xe(a,b){if(b)return Ve(a,b,a.i[b].value);var c=0;for(b in a.i)Ve(a,b,a.i[b].value),c++;return 0<c}
function K(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.U){case 2:(a=0<c?c:0)?36<a&&(a=36):(a=Math.abs(b),a=255>=a?8:262143>=a?18:36);b=ta(b,2,a,"",e);break;case 8:b=ua(b,0<c?(c+2)/3|0:0,!!e);break;case 10:b=va(b,0<c?Math.ceil(.3*c):0);break;default:b=n(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var Se={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Re={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20},Me=Math.pow(2,32);
function Ye(a){Je.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.U=["<",">"];this.ua=[];this.Ia=Z();this.M=Z(0);this.pa=Z(0);this.ka=Z(0);this.I=[];this.b=this.N=this.K=[];Ze(this);this.X=this.qa=0;this.i=[];this.Ea=void 0;$e(this);this.D=this;this.xa={};this.ca=this.Eb=0;this.ba=null;this.S=[];af(this,a.messages);this.va=a.commands;this.Ha=[];this.P=0;this.Pa=this.Fa=null;this.C=this.Oa=this.Ka=this.oa=this.Da=0;this.Ca=this.na=this.ja=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return ed(b,
a)}):void 0===global[v]&&(global[v]=function(a){return ed(b,a)})}ka(Ye,Je);function bf(a){a=a&&a.B;null==a&&(a=-1);return a}function Z(a,b,c){return{B:void 0===a?null:a,eb:void 0===b?!1:b,ra:!1,T:c}}function cf(a,b,c,d){a.B=b;a.eb=c||!1;a.ra=!1;a.T=d}function df(a){return[a.B,a.eb,a.ra,a.T,a.hb]}function ef(a,b){var c=Z(b[0],b[1],b[2]);c.ra=b[3];b[4]&&(c.zb=Ke(a,c.hb=b[4]));return c}m=Ye.prototype;
m.La=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.na=a.j;this.Ga=b.F;(b=$c(a,"messages"))&&af(this,b);if(a=$c(a,"commands"))this.va=a;ff(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=bf(gf(d,c,d.pa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[e];p.type==c?l++||d.u("..."):(c=p.type,l=Hc[c],p&&d.u(n(p.id,8)+" %"+
function Ye(a){Je.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.T=["<",">"];this.ua=[];this.Ia=Z();this.M=Z(0);this.pa=Z(0);this.ka=Z(0);this.I=[];this.b=this.N=this.K=[];Ze(this);this.W=this.qa=0;this.j=[];this.Da=void 0;$e(this);this.D=this;this.wa={};this.ca=this.Fb=0;this.ba=null;this.R=[];af(this,a.messages);this.va=a.commands;this.Ha=[];this.O=0;this.Oa=this.Ea=null;this.F=this.La=this.Ka=this.oa=this.Ca=0;this.xa=this.na=this.ga=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return ed(b,
a)}):void 0===global[v]&&(global[v]=function(a){return ed(b,a)})}ja(Ye,Je);function bf(a){a=a&&a.B;null==a&&(a=-1);return a}function Z(a,b,c){return{B:void 0===a?null:a,fb:void 0===b?!1:b,ra:!1,U:c}}function cf(a,b,c,d){a.B=b;a.fb=c||!1;a.ra=!1;a.U=d}function df(a){return[a.B,a.fb,a.ra,a.U,a.ib]}function ef(a,b){var c=Z(b[0],b[1],b[2]);c.ra=b[3];b[4]&&(c.Ab=Ke(a,c.ib=b[4]));return c}m=Ye.prototype;
m.Ma=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.na=a.j;this.Ga=b.F;(b=$c(a,"messages"))&&af(this,b);if(a=$c(a,"commands"))this.va=a;ff(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=bf(gf(d,c,d.pa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[e];p.type==c?l++||d.u("..."):(c=p.type,l=Hc[c],p&&d.u(n(p.id,8)+" %"+
n(e<<d.G.i,8)+" %"+n(p.B,8)+" "+n(p.Ya,4,!0)+" "+n(p.size,4,!0)+" "+l),c!=Oc&&(c=-1),l=0);a+=16384;e++}}});Mb(this)};
m.ta=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ja=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ed(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.j.length-1&&(b=d.j[++d.w])):40==a.keyCode&&(0<d.w?b=d.j[--d.w]:(b="",d.w=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.J[b]=c,Va(c,function(){if(d.ja){var a=d.ja.value;
d.ja.value="";ed(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Va(c,function(a){var b=!1;Nb(d,!0)||(Ob(d,!0),b=tc(d,a?1:0,null),Ob(d,!1));return b}),!0}return!1};function dd(a){if(a.ja){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ja.focus();window&&window.scrollTo(b,c)}}m.Na=function(a,b){var c=-1,d=bf(a);-1!==d&&(c=zc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};m.yb=function(a,b,c){var d=bf(a);-1!==d&&(yc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),J(this.H,-1))};
function gf(a,b,c){var d,e;c||(c=Z());var f=c.B;if(void 0!==b){a:{var g,f=a.U[0],h=a.U[1];g="("==f||"{"==f||"["==f?"\\":"";for(var k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);){var l=Ue(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(f+g[1]+h,null!=l?K(a,l):"undefined")}if(a.ua.length)for(f=a.ua[0],h=a.ua[1],g="("==f||"{"==f||"["==f?"\\":"",k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;f=b.match(/\$([a-z]+)/i);){h=
null;switch(f[1].toLowerCase()){case "ops":h=0}if(null==h)break;b=b.replace(f[0],h.toString())}}"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var p,f=b,u;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;h<a.I.length;h++)if(g=a.I[h].Y[f],null!=g){u=g.o;break}null!=u&&(p=Z(u));if(p)return p;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Ue(a,b)}null!=f&&(f=hf(f,a.Ga),cf(c,f,d,e));return c}function jf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.zb=Ke(a,b.hb=c[2]))}
m.ta=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ga=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ed(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.C<d.w.length-1&&(b=d.w[++d.C])):40==a.keyCode&&(0<d.C?b=d.w[--d.C]:(b="",d.C=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.J[b]=c,Va(c,function(){if(d.ga){var a=d.ga.value;
d.ga.value="";ed(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Va(c,function(a){var b=!1;Nb(d,!0)||(Ob(d,!0),b=tc(d,a?1:0,null),Ob(d,!1));return b}),!0}return!1};function dd(a){if(a.ga){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ga.focus();window&&window.scrollTo(b,c)}}m.Na=function(a,b){var c=-1,d=bf(a);-1!==d&&(c=zc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};m.zb=function(a,b,c){var d=bf(a);-1!==d&&(yc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),J(this.H,-1))};
function gf(a,b,c){var d,e;c||(c=Z());var f=c.B;if(void 0!==b){a:{var g,f=a.T[0],h=a.T[1];g="("==f||"{"==f||"["==f?"\\":"";for(var k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);){var l=Ue(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(f+g[1]+h,null!=l?K(a,l):"undefined")}if(a.ua.length)for(f=a.ua[0],h=a.ua[1],g="("==f||"{"==f||"["==f?"\\":"",k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;f=b.match(/\$([a-z]+)/i);){h=
null;switch(f[1].toLowerCase()){case "ops":h=0}if(null==h)break;b=b.replace(f[0],h.toString())}}"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var p,f=b,u;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;h<a.I.length;h++)if(g=a.I[h].Z[f],null!=g){u=g.o;break}null!=u&&(p=Z(u));if(p)return p;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Ue(a,b)}null!=f&&(f=hf(f,a.Ga),cf(c,f,d,e));return c}function jf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Ab=Ke(a,b.ib=c[2]))}
function hf(a,b){0>a&&a>=-A&&(a+=C);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function kf(a,b){return K(a,b/Tb,18)+" "+K(a,b%Tb,18)}
function af(a,b){a.D=a;a.ca=a.Eb=536870916;a.ba=null;a.S=[];b=Ke(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in bc){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ca|=bc[c],a.u(c+" messages enabled"))}}function ff(a,b){for(var c in bc)if(16==bc[c]){a.xa[c]=b;break}}m.tb=function(a){return lf.indexOf(a.toUpperCase())};
m.ub=function(a){var b,c=this.v;switch(a){case mf:b=c.i;break;case nf:b=c.I;break;case of:b=c.b;break;case pf:b=c.j&x;break;case qf:b=c.j&131072?1:0;break;case rf:b=c.j&65536?1:0;break;case sf:b=c.j&32768?1:0;break;case tf:b=c.j&32?1:0;break;case uf:b=c.j&262144?1:0}return b};
m.message=function(a,b){b&&(a+=" @"+K(this,Z(this.v.Ea).B,18));if(!this.ba||a!=this.ba)if(this.ba=a,this.ca&1073741824)this.S.push(a);else{var c;if(this.ca&-2147483648&&this.v&&(c=this.v.A.O)||Nb(this,!0))this.W(),c&&(a+=" (cpu halted)");this.u(a);this.v&&(a=this.v,md(a),a.la=0,a.H&&J(a.H,void 0))}};
function $e(a){var b;if(!td(a))a.i&&a.i.length&&a.u("instruction history buffer freed"),a.X=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(vf);for(b=0;b<a.i.length;b++)a.i[b]=Z();a.X=0;a.u("instruction history buffer allocated")}}function wf(a,b,c){if(!xf(a,c))return!1;sc(a.v,b);return!0}
function tc(a,b,c,d){if(!xf(a))return!1;var e="";null===c&&(e=(c=!a.Fa||"tr"==a.Fa)?"tr":"t");a.C=0;b||td(a)&&ud(a,a.v.i,0);try{b=kd(a.v,b);var f=a.v.$a(b);0<f&&(uc(a.v,f),a.C+=f,vc(a.v,f,!0),wc(a.v,f),a.oa++)}catch(g){"number"!=typeof g&&(a.C=0,yb(a.v,g.stack||g.message))}!1!==d&&(a.na&&a.na.stop(),J(a.H,-1));cd(a,c||!1,e);return 0<a.C}m.W=function(a){this.v&&this.v.W(a)};function cd(a,b,c){b=void 0===b?!0:b;a.Ja&&(c&&a.u(yf+c),cf(a.M,a.v.i),b&&1!=a.P?zf(a):Af(a))}
function xf(a,b){var c;(c=!a.v||!Bb(a.v))||(c=a.v,c.A.aa?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.O?(b||a.u("cpu busy or unavailable, command ignored"),!1):!zb(a.v)}m.Ba=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};m.sa=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){$e(this);this.oa=0;this.ba=null;this.C=0;cf(this.M,this.v.i);this.A.O=!1;Bf(this);a||cd(this)};
m.save=function(){var a=new F(this);a.set(0,df(this.M));a.set(1,df(this.pa));a.set(2,df(this.ka));a.set(3,[this.j,this.V,this.ca]);a.set(4,this.I);return a.data()};m.restore=function(a){var b=0;void 0!==a[3]&&(this.M=ef(this,a[b++]),this.pa=ef(this,a[b++]),this.ka=ef(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.V=a[b][1],this.ca|=a[b][2]);a[4]&&(this.I=a[4]);return!0};m.start=function(a,b){this.P||this.u("running");this.A.O=!0;this.Ka=a;this.Oa=b};
m.stop=function(a,b){if(this.A.O){this.A.O=!1;this.C=b-this.Oa;if(!this.P){b="stopped";if(this.C){a-=this.Ka;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";td(this)&&(b+=this.oa+" instructions, ",this.oa=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Pb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}cd(this,!0);dd(this);Bf(this,this.v.i);this.ba=null}};function td(a){return 1<a.b.length||!!a.qa}
function ud(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.Ea==b&&(b=sd(a.v,1)));if(0<c&&(a.qa&&!--a.qa||Xc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.oa++,0>d&&(d=a.v.f(b)),0<=d&&(cf(a.i[a.X],b),++a.X==a.i.length&&(a.X=0)));return!1}
function af(a,b){a.D=a;a.ca=a.Fb=536870916;a.ba=null;a.R=[];b=Ke(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in bc){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ca|=bc[c],a.u(c+" messages enabled"))}}function ff(a,b){for(var c in bc)if(16==bc[c]){a.wa[c]=b;break}}m.ub=function(a){return lf.indexOf(a.toUpperCase())};
m.vb=function(a){var b,c=this.v;switch(a){case mf:b=c.i;break;case nf:b=c.I;break;case of:b=c.b;break;case pf:b=c.j&x;break;case qf:b=c.j&131072?1:0;break;case rf:b=c.j&65536?1:0;break;case sf:b=c.j&32768?1:0;break;case tf:b=c.j&32?1:0;break;case uf:b=c.j&262144?1:0}return b};
m.message=function(a,b){b&&(a+=" @"+K(this,Z(this.v.Ea).B,18));if(!this.ba||a!=this.ba)if(this.ba=a,this.ca&1073741824)this.R.push(a);else{var c;if(this.ca&-2147483648&&this.v&&(c=this.v.A.P)||Nb(this,!0))this.Y(),c&&(a+=" (cpu halted)");this.u(a);this.v&&(a=this.v,md(a),a.na=0,a.H&&J(a.H,void 0))}};
function $e(a){var b;if(!td(a))a.j&&a.j.length&&a.u("instruction history buffer freed"),a.W=0,a.j=[];else if(!a.j||!a.j.length){a.j=Array(vf);for(b=0;b<a.j.length;b++)a.j[b]=Z();a.W=0;a.u("instruction history buffer allocated")}}function wf(a,b,c){if(!xf(a,c))return!1;sc(a.v,b);return!0}
function tc(a,b,c,d){if(!xf(a))return!1;var e="";null===c&&(e=(c=!a.Ea||"tr"==a.Ea)?"tr":"t");a.F=0;b||td(a)&&ud(a,a.v.i,0);try{b=kd(a.v,b);var f=a.v.$a(b);0<f&&(uc(a.v,f),a.F+=f,vc(a.v,f,!0),wc(a.v,f),a.oa++)}catch(g){"number"!=typeof g&&(a.F=0,yb(a.v,g.stack||g.message))}!1!==d&&(a.na&&a.na.stop(),J(a.H,-1));cd(a,c||!1,e);return 0<a.F}m.Y=function(a){this.v&&this.v.Y(a)};function cd(a,b,c){b=void 0===b?!0:b;a.Ja&&(c&&a.u(yf+c),cf(a.M,a.v.i),b&&1!=a.O?zf(a):Af(a))}
function xf(a,b){var c;(c=!a.v||!Bb(a.v))||(c=a.v,c.A.aa?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.P?(b||a.u("cpu busy or unavailable, command ignored"),!1):!zb(a.v)}m.Ba=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};m.sa=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){$e(this);this.oa=0;this.ba=null;this.F=0;cf(this.M,this.v.i);this.A.P=!1;Bf(this);a||cd(this)};
m.save=function(){var a=new F(this);a.set(0,df(this.M));a.set(1,df(this.pa));a.set(2,df(this.ka));a.set(3,[this.w,this.V,this.ca]);a.set(4,this.I);return a.data()};m.restore=function(a){var b=0;void 0!==a[3]&&(this.M=ef(this,a[b++]),this.pa=ef(this,a[b++]),this.ka=ef(this,a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.V=a[b][1],this.ca|=a[b][2]);a[4]&&(this.I=a[4]);return!0};m.start=function(a,b){this.O||this.u("running");this.A.P=!0;this.Ka=a;this.La=b};
m.stop=function(a,b){if(this.A.P){this.A.P=!1;this.F=b-this.La;if(!this.O){b="stopped";if(this.F){a-=this.Ka;var c=0<a?Math.round(1E3*this.F/a):0;b+=" (";td(this)&&(b+=this.oa+" instructions, ",this.oa=0);b+=this.F+" cycles, "+a+" ms, "+c+" hz)"}else Pb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}cd(this,!0);dd(this);Bf(this,this.v.i);this.ba=null}};function td(a){return 1<a.b.length||!!a.qa}
function ud(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.Ea==b&&(b=sd(a.v,1)));if(0<c&&(a.qa&&!--a.qa||Xc(a,b,1,a.b)))return!0;0<=c&&a.j.length&&(a.oa++,0>d&&(d=a.v.f(b)),0<=d&&(cf(a.j[a.W],b),++a.W==a.j.length&&(a.W=0)));return!1}
function Cf(a,b,c,d){var e=Z(b.B),f=a.Na(b,1),g,h,k,l=0,p=f/Yb|0,u;for(u in Df)if(g=Df[u][p&u]){h=+u;p>>=6;switch(h){case 32512:k=Ef;l=p&3;break;case 32256:k=Ff;l=p&7;break;case 29248:k=Gf,l=(p&48)>>2|(p&6)>>1}break}k=k&&k[l]||"";"S"==k&&g>Hf&&(k="B");k=If[g||0]+k;if(g){if(28700==h)h=f/Zb&127,l=K(a,h,-1);else for(h=f>>23&15,l=K(a,h,-1),p=0;l&&p<Jf.length;p++)if(g==Jf[p][0]&&(u=Jf[p][h])){k=If[u];l="";break}k=Ba(k,8)+(l?l+",":"");f&4194304&&(k+="@");k+=K(a,f&262143,-1);(f=f>>18&15)&&(k+="("+K(a,f,
-1)+")")}else k=Ba(k,8)+kf(a,f);f=k;g="";h=K(a,e.B,18)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Na(e,1),g+=" "+kf(a,k),null==e.B)break;while(e.B!=b.B)}h+=Ba(g,16)+f;c&&(h=Ba(h,48)+";"+(c||""),h=a.v.A.Va?h+("cycles="+fd(a.v).toString()+" cs="+n(a.v.Ga)):h+(null!=d?"="+d.toString():""));return h}
function Kf(a,b,c,d,e){var f=-1,g,h;a.la=null;if(b){for(var k=b.toUpperCase(),l=0;l<Jf.length;l++)for(var p in Jf[l])if(+p&&(h=Jf[l][p],k==If[h])){k=If[Jf[l][0]];c&&(c=K(a,+p)+","+c);break}for(var u in Df){g=+u;p=Df[u];switch(g){case 32512:l=Ef;break;case 32256:l=Ff;break;case 29248:l=Gf;break;default:l=[""]}for(var D in p){h=p[D];for(var H=0;H<l.length;H++){var P=l[H];"S"==P&&h>Hf&&(P="B");if(k==If[h]+P){f=29248!=g?H:(H&3)<<1|(H&12)<<2;f=(D|f<<6)*Yb;break}}if(0<=f)break}if(0<=f)break}0>f&&c&&!c.match(/^[0-9A-Z$%.?]/i)&&
-1)+")")}else k=Ba(k,8)+kf(a,f);f=k;g="";h=K(a,e.B,18)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Na(e,1),g+=" "+kf(a,k),null==e.B)break;while(e.B!=b.B)}h+=Ba(g,16)+f;c&&(h=Ba(h,48)+";"+(c||""),h=a.v.A.Va?h+("cycles="+fd(a.v).toString()+" cs="+n(a.v.Ha)):h+(null!=d?"="+d.toString():""));return h}
function Kf(a,b,c,d,e){var f=-1,g,h;a.ja=null;if(b){for(var k=b.toUpperCase(),l=0;l<Jf.length;l++)for(var p in Jf[l])if(+p&&(h=Jf[l][p],k==If[h])){k=If[Jf[l][0]];c&&(c=K(a,+p)+","+c);break}for(var u in Df){g=+u;p=Df[u];switch(g){case 32512:l=Ef;break;case 32256:l=Ff;break;case 29248:l=Gf;break;default:l=[""]}for(var D in p){h=p[D];for(var I=0;I<l.length;I++){var P=l[I];"S"==P&&h>Hf&&(P="B");if(k==If[h]+P){f=29248!=g?I:(I&3)<<1|(I&12)<<2;f=(D|f<<6)*Yb;break}}if(0<=f)break}if(0<=f)break}0>f&&c&&!c.match(/^[0-9A-Z$%.?]/i)&&
(c=b+c,b="",f=0)}else c&&(f=g=0);if(0<=f&&c)for(k=c.split(","),u=0;u<k.length;u++)if(h=k[u].trim()){if(1<u){a.u("too many operands: "+c);f=-1;break}D=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!D){a.u("unknown operand: "+h);f=-1;break}D[1]&&(f+=4194304);if(h=D[3]){h=Ue(a,h,e);if(void 0==h){f=-1;break}if(0>h||15<h)h&=15;f+=h<<18}h=D[2];if(u||1==k.length)h=h?h.replace(/(^|[^0-9])\./g,"$1"+K(a,d,18)):"0";h=Ue(a,h,e);if(void 0==h){f=-1;break}if(!u&&1<k.length)if(28700==g){if(0>h||127<h)h&=127;f+=h*Zb}else{if(0>
h||15<h)h&=15;f+=h<<23}else{if(b||u)if(0>h||262143<h)h&=Sb;f+=h}}0>f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function Ze(a){var b,c;a.b=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];c=bf(c);var d=a.G;Wc(d.b[c>>>d.i],!1)}a.N=["br"];if(a.K)for(b=1;b<a.K.length;b++)c=a.K[b],c=bf(c),d=a.G,Wc(d.b[c>>>d.i],!0);a.K=["bw"];a.Da=0;a.qa=0}
m.Sa=function(a,b,c){var d=!0;c||Lf(this,a,b,!1,!0);if(a!=this.b){var e=bf(b);if(-1===e)this.u("invalid address: "+K(this,b.B,18)),d=!1;else{var f=this.G;f.b[e>>>f.i].Sa(e&16383,a==this.K)}}d&&(a.push(b),c?b.ra=!0:(Mf(this,a,a.length-1,"set"),$e(this)));return d};function Lf(a,b,c,d,e){var f=!1;c=bf(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==bf(h)&&(!d||h.ra)){f=!0;h.ra||e||Mf(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Wc(d.b[c>>>d.i],b==a.K));h.ra||$e(a);break}}return f}
function Nf(a,b){for(var c=1;c<b.length;c++)Mf(a,b,c);return b.length-1}function Mf(a,b,c,d){c=b[c];a.u(b[0]+" "+K(a,c.B,18)+(d?" "+d:c.hb?' "'+c.hb+'"':""))}function Bf(a,b){if(void 0!==b)Xc(a,b,1,a.b,!0),a.P=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ra){if(!Lf(a,a.b,c,!0))break;b=0}}}
function Xc(a,b,c,d,e){var f=!1;if(!a.Da++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ra)for(var k=bf(h)&(d==a.b?65535:-1),l=0;l<c;l++)if(b+l==k){var p,f=!0;h.ra&&(Lf(a,d,h,!0),e=!0);if(p=h.zb){for(var f=!1,u=0;u<p.length;u++)if(!ng(a,p[u],!0)){if(p[u].indexOf("if")){f=!0;break}for(var D=u+1;D<p.length&&p[D].indexOf("else");D++)u++;if(D==p.length){f=!0;break}}a.v.A.O||(f=!0)}if(f){e||Mf(a,d,g,"hit");break}}}a.Da--;return f}
function pg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=ua(d,2);cf(e.Ia,d);f+="="+K(e,e.Na(e.Ia),36)+" ";c+=f}if(b){b="";for(d=0;d<lf.length;d++)(e=lf[d]||"")&&(e+="="+K(a,a.ub(d),d>=qf?1:d==nf?23:18)+" "),b+=e;c+="\n"+b}return c}m.Gb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function De(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,l=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],u=Fa(p,k,a.Gb);0>u&&p.splice(-(u+1),0,k)}l&&(h.a=l.replace(/''/g,'"'))}a.I.push({wd:b,B:c,Ub:d,Y:e,Bb:f})}function qg(a,b,c){var d=[],e=bf(b)>>>0;for(b=0;b<a.I.length;b++){var f=a.I[b],g=f.B>>>0,h=f.Ub;if(e>=g&&e<g+h){e=Fa(f.Bb,[e-g],a.Gb);0<=e?rg(a,b,e,d):c&&(e=~e,rg(a,b,e-1,d),rg(a,b,e,d));break}}return d}
function sg(a,b,c){var d=a.G,e=0,f=null,g=0;b.forEach(function(a,b){d.b[(b&d.j)>>>d.i].g(a,b&16383,b);null==f&&(f=b);b>g&&(g=b);e++});e?(a.u(e+" words loaded at "+K(a,f)+"-"+K(a,g)),null!=c&&G(a.v,c),cd(a)):a.u("no data")}function rg(a,b,c,d){var e={},f=a.I[b].Bb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.I[b].Y[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function tg(a,b){var c=b[0].substr(1),d=b[1]&&"0"<=b[1][0]&&"9">=b[1][0]?b[1]:void 0,e=d?b[2]:b[1],f=gf(a,d,a.ka);if(!e)return a.u("begin assemble at "+K(a,f.B,18)),a.V=!0,J(a.H),!0;var g=e.match(/^(['"]?)(.*\.klm|.*\.mac|.*\.html|.*\.txt)\1$/i);if(g){f=gf(a,d);if(a.Ca)a.u("assembly already in progress");else var h=g[2],k=f.B,l=a.Ca=new ug(h,k,c,a,function(b,c){if(!b)try{var d=l.G;null==d&&(d=k);sg(a,l.R,d)}catch(H){"number"==typeof H?b=H||-1:(a.u(H.message),b=-1)}b&&a.u("error ("+b+") processing "+
(c||h));a.Ca=null;b||ed(a)});return!1}b.shift();b.shift();b.shift();b=Kf(a,e,b.join(""),f.B||0);0<=b&&(a.yb(f,b),a.u(Cf(a,f)));return!0}function vg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Xe(a)||a.u("no variables"),!0;if(!c[2])return Xe(a,c[1]);if(!c[3])return delete a.F[c[1]],!0;b=Ue(a,c[3]);return void 0!==b?(a.F[c[1]]=b,!0):!1}a.u("invalid assignment:"+b);return!1}
function wg(a,b,c){var d=null;b=gf(a,b);var e=qg(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+n(f,4,!0)),f=e[0]+" ("+K(a,e[1],18)+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+n(f,4,!0)),f=e[4]+" ("+K(a,e[5],18)+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols");return d}
function zf(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=Ue(a,b);if(void 0===g)return;b=a.tb(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case mf:G(h,
g);cf(a.M,h.i);break;case pf:rd(h,g);break;case qf:f=131072;break;case rf:f=65536;break;case sf:f=32768;break;case tf:f=32;break;case uf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);J(a.H);a.u("updated registers:")}}a.u(pg(a,e));c&&(cf(a.M,0<=d.P?d.P:d.i),Af(a,K(a,a.M.B,18)))}}function xg(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):Ve(a,null,c[2].charCodeAt(0)):Ue(a,b,!1)}
function yg(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Qe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Fa=b;Ua(c,function(){return Ob(a,!0)&&tc(a,e,d,!1)},function(){a.na&&a.na.stop();J(a.H,-1);Ob(a,!1)})}}
function Af(a,b,c,d){b=gf(a,b,a.M);void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Qe(a,c.substr(1)),null!=c&&(d=c);else{d=gf(a,c);if(d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Nb(a,!1)||a.P?a.C:null,g=null!=f?"cycles":null,h=qg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var l=h[0]+":";h[2]&&(l+=" "+h[2]);a.u(l)}h[3]&&(g=h[3],f=null);h=a.ka;l=b;h.B=l.B;h.eb=l.eb;h.ra=l.ra;h.T=l.T;a.u(Cf(a,b,g,f));e-=b.B-k;c++}}
function ng(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(yf+b):(a.V&&(a.u("ended assemble at "+K(a,a.ka.B,18)),a.V=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ba=null;if(Bb(a)&&0<b.length){a.V&&(b="a "+K(a,a.ka.B,18)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),l=1;l<h.length;l++){var p=h.charAt(l);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(l);g.unshift(h.substr(0,l));break}}switch(g[0].charAt(0)){case "a":d=
tg(a,g);break;case "b":var u=g[0],D=g[1],H=b;if("?"==D)a.u("breakpoint commands:"),a.u("\tbp #\tset exec breakpoint"),a.u("\tbr #\tset read breakpoint"),a.u("\tbw #\tset write breakpoint"),a.u("\tbc #\tclear breakpoint (* to clear all)"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");else{var P=u.charAt(1);if("l"==P){var fb;fb=0+Nf(a,a.b);fb+=Nf(a,a.N);(fb+=Nf(a,a.K))||a.u("no breakpoints")}else if("n"==P){var Ab=+D||0;D&&(a.qa=Ab);a.u("break after "+Ab+" instruction(s)")}else if(void 0===
D)a.u("missing breakpoint address");else{var I="*"==D?Z():gf(a,D,a.M);"c"==P?null==I.B?(Ze(a),a.u("all breakpoints cleared")):Lf(a,a.b,I)||Lf(a,a.N,I)||Lf(a,a.K,I)||a.u("breakpoint missing: "+K(a,I.B,18)):null!=I.B&&(jf(a,I,H),"p"==P?a.Sa(a.b,I):"r"==P?a.Sa(a.N,I):"w"==P?a.Sa(a.K,I):a.u("unknown breakpoint command: "+P))}}break;case "c":a.za&&(a.za.value="");break;case "d":a:{var gb,hb=g[0],oa=g[1],Da=g[2],Gh=g[3];if("?"==oa){var ib="";for(gb in bc)a.xa[gb]&&(ib&&(ib+=","),ib+=gb);ib+=",state,symbols";
a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");ib.length&&a.u("dump extension commands:\n\t"+ib)}else if("state"==oa){var Ld=zg(a.H,!0);"console"==Da?console.log(Ld):(a.za&&(a.za.value=""),Ld&&a.u(Ld))}else if("symbols"==oa)for(var Md=0;Md<a.I.length;Md++){var Nd=a.I[Md],jb;for(jb in Nd.Y)if("."!=jb.charAt(0)){var Of=Nd.Y[jb].o;if(void 0!==Of){var Pf=
Nd.Y[jb].l;Pf&&(jb=Pf);a.u(K(a,Of,18)+" "+jb)}}}else{if("d"==hb){for(gb in bc)if(g[1]==gb){var Qf=a.xa[gb];Qf?(g.shift(),g.shift(),Qf(g)):a.u("no dump registered for "+oa);break a}oa||(hb=a.Pa||"dw")}else a.Pa=hb;if("dh"==hb){var Rf=oa,Sf=Da,Tf="",Uf=0,ja=a.X,pa=a.i;if(pa.length){var fa=+Rf||a.Ea,Cb=+Sf||10;isNaN(fa)?fa=Cb:Tf="more ";fa>pa.length&&(a.u("note: only "+pa.length+" available"),fa=pa.length);ja-=fa;0>ja&&(null==pa[pa.length-1].B?(fa=ja+fa,ja=0):ja+=pa.length);var Od=[];"call"==Sf&&(Cb=
1E5,Od=["CALL"]);for(void 0!==Rf&&a.u(fa+" instructions earlier:");0<Cb&&ja!=a.X;){var Vf=pa[ja++];if(null==Vf.B)break;var Db=Z(Vf.B),Hh=fa--,Wf=Cf(a,Db,"history",Hh);(!Od.length||0<=Wf.indexOf(Od[0]))&&a.u(Wf);Db.rb&&(ja+=Db.rb,Cb-=Db.rb,fa-=Db.rb);ja>=pa.length&&(ja=0);a.Ea=fa;Uf++;Cb--}}Uf||(a.u("no "+Tf+"history available"),a.Ea=void 0)}else{var Ma=0,Xf="ds"==hb,Eb=gf(a,oa,a.pa);Da&&("l"==Da.charAt(0)?(Da=Da.substr(1)||Gh,Ma=Qe(a,Da)):Ma=gf(a,Da).B-Eb.B,0>Ma&&(Ma=0),65536<Ma&&(Ma=65536));var Ih=
a.T;Eb.T&&(a.T=Eb.T);for(var Yf="db"==hb?1:2,Pd=Ma||32,Qd=1==Yf?1:4,Jh=(Pd+Qd-1)/Qd|0||1,Na="";Jh--&&0<Pd;){for(var qa="",Rd="",oa=K(a,Eb.B,18),Zf=Qd;0<Zf--&&0<Pd--;){var Sd=a.Na(Eb,1);Xf?(qa&&(qa+=","),qa+=Sd):(qa+=kf(a,Sd),qa+=" ");for(var Ic=29,Kh=0;1==Yf&&0<=Ic;Kh++)var Fb=Sd/Math.pow(2,Ic)%Math.pow(2,7),qa=qa+(K(a,Fb,7)+" "),Fb=Fb+0,Rd=Rd+(32>Fb?".":String.fromCharCode(Fb)),Ic=Ic-7}Na&&(Na+="\n");Na=Xf?Na+(qa+","):Na+(oa+": "+qa+(0>Zf?" "+Rd:""))}Na&&a.u(Na);a.T=Ih}}}break;case "e":if("else"==
g[0])break;var $f,ag,bg=g[0],Td=g[1];"e"==bg||"ew"==bg?($f=a.Na,ag=a.yb):Td=null;if(null==Td)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else for(var Ud=gf(a,Td,a.pa),Vd=2;Vd<g.length;Vd++){var Gb=Ue(a,g[Vd]);if(void 0===Gb)break;Gb=hf(Gb);a.u("changing "+K(a,Ud.B,18)+" from "+kf(a,$f.call(a,Ud))+" to "+kf(a,Gb));ag.call(a,Ud,Gb,1)}break;case "g":var cg=g[1],Lh=b;if(void 0!==cg){var dg=gf(a,cg);jf(a,dg,Lh);a.Sa(a.b,dg,!0)}wf(a,!0,c);break;case "h":a.A.O?(c||a.u("halting"),
a.W()):Nb(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var Wd;var Hb=b.substr(2),Hb=Ca(Hb);Ue(a,Hb)?(c||a.u("true: "+Hb),Wd=!0):(c||a.u("false: "+Hb),Wd=!1);Wd||(d=!1);break}f=!0;break;case "k":var Mh=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var Xd=0,Yd=Z(),Ib=Z();for(a.u("stack trace for "+K(a,Ib.B,18));10>Xd;){for(var Oa=null,Nh=256;65536>Ib.B>>>0;){Yd.B=a.Na(Ib,2);if(null==Ib.B||!Nh--)break;if(!(Yd.B&
1)){for(var Oh=a,Jc=Yd,eg=null,Jb=Jc.B,fg=Jb,Zd=1;6>=Zd&&Jb;Zd++){if(2<Zd){Jc.B=Jb;var Kc=Cf(Oh,Jc);if(0<=Kc.indexOf("JSR")){var gg=Kc.indexOf(" ");if(Jb+(Kc.indexOf(" ",gg+1)-gg-1)/2==fg){eg=Kc;break}}}Jb-=2}Jc.B=fg;if(Oa=eg)break}}if(!Oa||null==Oa)break;var hg=null;if("ks"==Mh){var ig=Oa.match(/[0-9A-F]+$/);ig&&(hg=wg(a,ig[0]))}Oa=Ba(Oa,50)+" ;"+(hg||"stack="+K(a,Ib.B,18));a.u(Oa);Xd++}Xd||a.u("no return addresses found")}break;case "l":if("ln"==g[0]){wg(a,g[1],!0);break}f=!0;break;case "m":a:{var ra,
sa=null,M=g[1];"?"==M&&(M=void 0);if(void 0!==M){var Ea=0;if("all"==M)Ea=1879046143,M=null;else if("on"==M)sa=!0,M=null;else if("off"==M)sa=!1,M=null;else{"keys"==M&&(M="key");"kbd"==M&&(M="keyboard");for(ra in bc)if(M==ra){Ea=bc[ra];sa=!!(a.ca&Ea);break}if(!Ea){a.u("unknown message category: "+M);break a}}if(Ea)if("on"==g[2])a.ca|=Ea,sa=!0;else if("off"==g[2]&&(a.ca&=~Ea,sa=!1,1073741824==Ea)){for(var jg=1E3<=a.S.length?a.S.length-1E3:0;jg<a.S.length;)a.u(a.S[jg++]);a.S=[]}}var Ph=0,Kb="";for(ra in bc)if(!M||
M==ra){var Qh=!!(a.ca&bc[ra]);if(null===sa||sa==Qh)Kb&&(Kb+=","),++Ph%10||(Kb+="\n\t"),"key"==ra&&(ra="keys"),Kb+=ra}void 0===M&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==sa?sa?"messages on: ":"messages off: ":"message categories:\n\t")+(Kb||"none"));$e(a)}break;case "p":if("print"==g[0]){xg(a,b.substr(5));break}var kg=g[0],lg="p"==kg?0:"pr"==kg?1:-1;if("?"==g[1]||0>lg)a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");
else if(a.P)a.u("step in progress");else{var mg=Z(a.v.i);a.Na(mg);a.P?(a.Sa(a.b,mg,!0),wf(a)||(a.H&&jd(a.H),a.P=0)):yg(a,lg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}zf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var kb=+g[2];if(2==kb||8==kb||10==kb||16==kb)a.T=kb;else{a.u("invalid base: "+kb);break}}a.u("default base: "+a.T);break;case "cs":var Lb;void 0!==g[3]&&(Lb=+g[3]);switch(g[2]){case "int":a.v.oa=Lb;break;case "start":a.v.Ha=Lb;break;case "stop":a.v.qa=Lb;
break;default:a.u("unknown cs option");break a}void 0!==Lb&&bd(a.v);a.u("checksums "+(a.v.A.Va?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(gd(a.v,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ja.toFixed(2)+"Mhz")+" ("+a.v.ka+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),a.u("\tcs start #\tset checksum cycle start count to #"),
a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":yg(a,g[0],g[1]);break;case "u":Af(a,g[1],g[2],8);break;case "v":if("var"==g[0]){vg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.3 ("+a.v.mb+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){xg(a,b.substr(1));break}var $d="commands:",ae;for(ae in Ag)$d+="\n"+Ba(ae,9)+Ag[ae];td(a)||($d+="\nnote: history disabled if no exec breakpoints");
a.u($d);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(og){a.u("Debugger "+(og.stack||og.message)),d=!1}return d}function ed(a,b,c){null!=b&&(a.Ha=Ke(a,b,c));for(;b=a.Ha.shift();)if(!ng(a,b))return!1;return!0}
h||15<h)h&=15;f+=h<<23}else{if(b||u)if(0>h||262143<h)h&=Sb;f+=h}}0>f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function Ze(a){var b,c;a.b=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];c=bf(c);var d=a.G;Wc(d.b[c>>>d.i],!1)}a.N=["br"];if(a.K)for(b=1;b<a.K.length;b++)c=a.K[b],c=bf(c),d=a.G,Wc(d.b[c>>>d.i],!0);a.K=["bw"];a.Ca=0;a.qa=0}
m.Ra=function(a,b,c){var d=!0;c||Lf(this,a,b,!1,!0);if(a!=this.b){var e=bf(b);if(-1===e)this.u("invalid address: "+K(this,b.B,18)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ra(e&16383,a==this.K)}}d&&(a.push(b),c?b.ra=!0:(Mf(this,a,a.length-1,"set"),$e(this)));return d};function Lf(a,b,c,d,e){var f=!1;c=bf(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==bf(h)&&(!d||h.ra)){f=!0;h.ra||e||Mf(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Wc(d.b[c>>>d.i],b==a.K));h.ra||$e(a);break}}return f}
function Nf(a,b){for(var c=1;c<b.length;c++)Mf(a,b,c);return b.length-1}function Mf(a,b,c,d){c=b[c];a.u(b[0]+" "+K(a,c.B,18)+(d?" "+d:c.ib?' "'+c.ib+'"':""))}function Bf(a,b){if(void 0!==b)Xc(a,b,1,a.b,!0),a.O=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ra){if(!Lf(a,a.b,c,!0))break;b=0}}}
function Xc(a,b,c,d,e){var f=!1;if(!a.Ca++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ra)for(var k=bf(h)&(d==a.b?65535:-1),l=0;l<c;l++)if(b+l==k){var p,f=!0;h.ra&&(Lf(a,d,h,!0),e=!0);if(p=h.Ab){for(var f=!1,u=0;u<p.length;u++)if(!Of(a,p[u],!0)){if(p[u].indexOf("if")){f=!0;break}for(var D=u+1;D<p.length&&p[D].indexOf("else");D++)u++;if(D==p.length){f=!0;break}}a.v.A.P||(f=!0)}if(f){e||Mf(a,d,g,"hit");break}}}a.Ca--;return f}
function Pf(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=ua(d,2);cf(e.Ia,d);f+="="+K(e,e.Na(e.Ia),36)+" ";c+=f}if(b){b="";for(d=0;d<lf.length;d++)(e=lf[d]||"")&&(e+="="+K(a,a.vb(d),d>=qf?1:d==nf?23:18)+" "),b+=e;c+="\n"+b}return c}m.Hb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function De(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,l=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],u=Fa(p,k,a.Hb);0>u&&p.splice(-(u+1),0,k)}l&&(h.a=l.replace(/''/g,'"'))}a.I.push({xd:b,B:c,Vb:d,Z:e,Cb:f})}function Qf(a,b,c){var d=[],e=bf(b)>>>0;for(b=0;b<a.I.length;b++){var f=a.I[b],g=f.B>>>0,h=f.Vb;if(e>=g&&e<g+h){e=Fa(f.Cb,[e-g],a.Hb);0<=e?qg(a,b,e,d):c&&(e=~e,qg(a,b,e-1,d),qg(a,b,e,d));break}}return d}
function sg(a,b,c){var d=a.G,e=0,f=null,g=0;b.forEach(function(a,b){d.b[(b&d.j)>>>d.i].g(a,b&16383,b);null==f&&(f=b);b>g&&(g=b);e++});e?(b="start address ",null!=c?(H(a.v,c),b+=K(a,c)):b+="unspecified",a.u(e+" words loaded at "+K(a,f)+"-"+K(a,g)+", "+b),cd(a)):a.u("no data")}function qg(a,b,c,d){var e={},f=a.I[b].Cb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.I[b].Z[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function tg(a,b){var c=b[0].substr(1),d=b[1]&&"0"<=b[1][0]&&"9">=b[1][0]?b[1]:void 0,e=d?b[2]:b[1],f=gf(a,d,a.ka);if(!e)return a.u("begin assemble at "+K(a,f.B,18)),a.V=!0,J(a.H),!0;var g=e.match(/^(['"]?)(.*\.klm|.*\.mac|.*\.html|.*\.txt)\1$/i);if(g){f=gf(a,d);if(a.xa)a.u("assembly already in progress");else var h=g[2],k=f.B,l=a.xa=new ug(h,k,c,a,function(b,c){if(!b)try{var d=l.H;null==d&&(d=k);sg(a,l.S,d)}catch(I){"number"==typeof I?b=I||-1:(a.u(I.message),b=-1)}b&&a.u("error ("+b+") processing "+
(c||h));a.xa=null;b||ed(a)});return!1}b.shift();b.shift();b.shift();b=Kf(a,e,b.join(""),f.B||0);0<=b&&(a.zb(f,b),a.u(Cf(a,f)));return!0}function vg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Xe(a)||a.u("no variables"),!0;if(!c[2])return Xe(a,c[1]);if(!c[3])return delete a.i[c[1]],!0;b=Ue(a,c[3]);return void 0!==b?(a.i[c[1]]={value:b,ja:void 0},!0):!1}a.u("invalid assignment:"+b);return!1}
function wg(a,b,c){var d=null;b=gf(a,b);var e=Qf(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+n(f,4,!0)),f=e[0]+" ("+K(a,e[1],18)+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+n(f,4,!0)),f=e[4]+" ("+K(a,e[5],18)+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols");return d}
function zf(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=Ue(a,b);if(void 0===g)return;b=a.ub(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case mf:H(h,
g);cf(a.M,h.i);break;case pf:rd(h,g);break;case qf:f=131072;break;case rf:f=65536;break;case sf:f=32768;break;case tf:f=32;break;case uf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);J(a.H);a.u("updated registers:")}}a.u(Pf(a,e));c&&(cf(a.M,0<=d.O?d.O:d.i),Af(a,K(a,a.M.B,18)))}}function xg(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):Ve(a,null,c[2].charCodeAt(0)):Ue(a,b,!1)}
function yg(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Qe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Ea=b;Ua(c,function(){return Ob(a,!0)&&tc(a,e,d,!1)},function(){a.na&&a.na.stop();J(a.H,-1);Ob(a,!1)})}}
function Af(a,b,c,d){b=gf(a,b,a.M);void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Qe(a,c.substr(1)),null!=c&&(d=c);else{d=gf(a,c);if(d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Nb(a,!1)||a.O?a.F:null,g=null!=f?"cycles":null,h=Qf(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var l=h[0]+":";h[2]&&(l+=" "+h[2]);a.u(l)}h[3]&&(g=h[3],f=null);h=a.ka;l=b;h.B=l.B;h.fb=l.fb;h.ra=l.ra;h.U=l.U;a.u(Cf(a,b,g,f));e-=b.B-k;c++}}
function Of(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(yf+b):(a.V&&(a.u("ended assemble at "+K(a,a.ka.B,18)),a.V=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ba=null;if(Bb(a)&&0<b.length){a.V&&(b="a "+K(a,a.ka.B,18)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),l=1;l<h.length;l++){var p=h.charAt(l);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(l);g.unshift(h.substr(0,l));break}}switch(g[0].charAt(0)){case "a":d=
tg(a,g);break;case "b":var u=g[0],D=g[1],I=b;if("?"==D)a.u("breakpoint commands:"),a.u("\tbp #\tset exec breakpoint"),a.u("\tbr #\tset read breakpoint"),a.u("\tbw #\tset write breakpoint"),a.u("\tbc #\tclear breakpoint (* to clear all)"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");else{var P=u.charAt(1);if("l"==P){var fb;fb=0+Nf(a,a.b);fb+=Nf(a,a.N);(fb+=Nf(a,a.K))||a.u("no breakpoints")}else if("n"==P){var Ab=+D||0;D&&(a.qa=Ab);a.u("break after "+Ab+" instruction(s)")}else if(void 0===
D)a.u("missing breakpoint address");else{var G="*"==D?Z():gf(a,D,a.M);"c"==P?null==G.B?(Ze(a),a.u("all breakpoints cleared")):Lf(a,a.b,G)||Lf(a,a.N,G)||Lf(a,a.K,G)||a.u("breakpoint missing: "+K(a,G.B,18)):null!=G.B&&(jf(a,G,I),"p"==P?a.Ra(a.b,G):"r"==P?a.Ra(a.N,G):"w"==P?a.Ra(a.K,G):a.u("unknown breakpoint command: "+P))}}break;case "c":a.za&&(a.za.value="");break;case "d":a:{var gb,hb=g[0],oa=g[1],Da=g[2],Ih=g[3];if("?"==oa){var ib="";for(gb in bc)a.wa[gb]&&(ib&&(ib+=","),ib+=gb);ib+=",state,symbols";
a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");ib.length&&a.u("dump extension commands:\n\t"+ib)}else if("state"==oa){var Ld=zg(a.H,!0);"console"==Da?console.log(Ld):(a.za&&(a.za.value=""),Ld&&a.u(Ld))}else if("symbols"==oa)for(var Md=0;Md<a.I.length;Md++){var Nd=a.I[Md],jb;for(jb in Nd.Z)if("."!=jb.charAt(0)){var Rf=Nd.Z[jb].o;if(void 0!==Rf){var Sf=
Nd.Z[jb].l;Sf&&(jb=Sf);a.u(K(a,Rf,18)+" "+jb)}}}else{if("d"==hb){for(gb in bc)if(g[1]==gb){var Tf=a.wa[gb];Tf?(g.shift(),g.shift(),Tf(g)):a.u("no dump registered for "+oa);break a}oa||(hb=a.Oa||"dw")}else a.Oa=hb;if("dh"==hb){var Uf=oa,Vf=Da,Wf="",Xf=0,ka=a.W,pa=a.j;if(pa.length){var ea=+Uf||a.Da,Cb=+Vf||10;isNaN(ea)?ea=Cb:Wf="more ";ea>pa.length&&(a.u("note: only "+pa.length+" available"),ea=pa.length);ka-=ea;0>ka&&(null==pa[pa.length-1].B?(ea=ka+ea,ka=0):ka+=pa.length);var Od=[];"call"==Vf&&(Cb=
1E5,Od=["CALL"]);for(void 0!==Uf&&a.u(ea+" instructions earlier:");0<Cb&&ka!=a.W;){var Yf=pa[ka++];if(null==Yf.B)break;var Db=Z(Yf.B),Jh=ea--,Zf=Cf(a,Db,"history",Jh);(!Od.length||0<=Zf.indexOf(Od[0]))&&a.u(Zf);Db.sb&&(ka+=Db.sb,Cb-=Db.sb,ea-=Db.sb);ka>=pa.length&&(ka=0);a.Da=ea;Xf++;Cb--}}Xf||(a.u("no "+Wf+"history available"),a.Da=void 0)}else{var Ma=0,$f="ds"==hb,Eb=gf(a,oa,a.pa);Da&&("l"==Da.charAt(0)?(Da=Da.substr(1)||Ih,Ma=Qe(a,Da)):Ma=gf(a,Da).B-Eb.B,0>Ma&&(Ma=0),65536<Ma&&(Ma=65536));var Kh=
a.U;Eb.U&&(a.U=Eb.U);for(var ag="db"==hb?1:2,Pd=Ma||32,Qd=1==ag?1:4,Lh=(Pd+Qd-1)/Qd|0||1,Na="";Lh--&&0<Pd;){for(var qa="",Rd="",oa=K(a,Eb.B,18),bg=Qd;0<bg--&&0<Pd--;){var Sd=a.Na(Eb,1);$f?(qa&&(qa+=","),qa+=Sd):(qa+=kf(a,Sd),qa+=" ");for(var Ic=29,Mh=0;1==ag&&0<=Ic;Mh++)var Fb=Sd/Math.pow(2,Ic)%Math.pow(2,7),qa=qa+(K(a,Fb,7)+" "),Fb=Fb+0,Rd=Rd+(32>Fb?".":String.fromCharCode(Fb)),Ic=Ic-7}Na&&(Na+="\n");Na=$f?Na+(qa+","):Na+(oa+": "+qa+(0>bg?" "+Rd:""))}Na&&a.u(Na);a.U=Kh}}}break;case "e":if("else"==
g[0])break;var cg,dg,eg=g[0],Td=g[1];"e"==eg||"ew"==eg?(cg=a.Na,dg=a.zb):Td=null;if(null==Td)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else for(var Ud=gf(a,Td,a.pa),Vd=2;Vd<g.length;Vd++){var Gb=Ue(a,g[Vd]);if(void 0===Gb)break;Gb=hf(Gb);a.u("changing "+K(a,Ud.B,18)+" from "+kf(a,cg.call(a,Ud))+" to "+kf(a,Gb));dg.call(a,Ud,Gb,1)}break;case "g":var fg=g[1],Nh=b;if(void 0!==fg){var gg=gf(a,fg);jf(a,gg,Nh);a.Ra(a.b,gg,!0)}wf(a,!0,c);break;case "h":a.A.P?(c||a.u("halting"),
a.Y()):Nb(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var Wd;var Hb=b.substr(2),Hb=Ca(Hb);Ue(a,Hb)?(c||a.u("true: "+Hb),Wd=!0):(c||a.u("false: "+Hb),Wd=!1);Wd||(d=!1);break}f=!0;break;case "k":var Oh=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var Xd=0,Yd=Z(),Ib=Z();for(a.u("stack trace for "+K(a,Ib.B,18));10>Xd;){for(var Oa=null,Ph=256;65536>Ib.B>>>0;){Yd.B=a.Na(Ib,2);if(null==Ib.B||!Ph--)break;if(!(Yd.B&
1)){for(var Qh=a,Jc=Yd,hg=null,Jb=Jc.B,ig=Jb,Zd=1;6>=Zd&&Jb;Zd++){if(2<Zd){Jc.B=Jb;var Kc=Cf(Qh,Jc);if(0<=Kc.indexOf("JSR")){var jg=Kc.indexOf(" ");if(Jb+(Kc.indexOf(" ",jg+1)-jg-1)/2==ig){hg=Kc;break}}}Jb-=2}Jc.B=ig;if(Oa=hg)break}}if(!Oa||null==Oa)break;var kg=null;if("ks"==Oh){var lg=Oa.match(/[0-9A-F]+$/);lg&&(kg=wg(a,lg[0]))}Oa=Ba(Oa,50)+" ;"+(kg||"stack="+K(a,Ib.B,18));a.u(Oa);Xd++}Xd||a.u("no return addresses found")}break;case "l":if("ln"==g[0]){wg(a,g[1],!0);break}f=!0;break;case "m":a:{var ra,
sa=null,M=g[1];"?"==M&&(M=void 0);if(void 0!==M){var Ea=0;if("all"==M)Ea=1879046143,M=null;else if("on"==M)sa=!0,M=null;else if("off"==M)sa=!1,M=null;else{"keys"==M&&(M="key");"kbd"==M&&(M="keyboard");for(ra in bc)if(M==ra){Ea=bc[ra];sa=!!(a.ca&Ea);break}if(!Ea){a.u("unknown message category: "+M);break a}}if(Ea)if("on"==g[2])a.ca|=Ea,sa=!0;else if("off"==g[2]&&(a.ca&=~Ea,sa=!1,1073741824==Ea)){for(var mg=1E3<=a.R.length?a.R.length-1E3:0;mg<a.R.length;)a.u(a.R[mg++]);a.R=[]}}var Rh=0,Kb="";for(ra in bc)if(!M||
M==ra){var Sh=!!(a.ca&bc[ra]);if(null===sa||sa==Sh)Kb&&(Kb+=","),++Rh%10||(Kb+="\n\t"),"key"==ra&&(ra="keys"),Kb+=ra}void 0===M&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==sa?sa?"messages on: ":"messages off: ":"message categories:\n\t")+(Kb||"none"));$e(a)}break;case "p":if("print"==g[0]){xg(a,b.substr(5));break}var ng=g[0],og="p"==ng?0:"pr"==ng?1:-1;if("?"==g[1]||0>og)a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");
else if(a.O)a.u("step in progress");else{var pg=Z(a.v.i);a.Na(pg);a.O?(a.Ra(a.b,pg,!0),wf(a)||(a.H&&jd(a.H),a.O=0)):yg(a,og?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}zf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var kb=+g[2];if(2==kb||8==kb||10==kb||16==kb)a.U=kb;else{a.u("invalid base: "+kb);break}}a.u("default base: "+a.U);break;case "cs":var Lb;void 0!==g[3]&&(Lb=+g[3]);switch(g[2]){case "int":a.v.pa=Lb;break;case "start":a.v.Ia=Lb;break;case "stop":a.v.ua=Lb;
break;default:a.u("unknown cs option");break a}void 0!==Lb&&bd(a.v);a.u("checksums "+(a.v.A.Va?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(gd(a.v,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ga.toFixed(2)+"Mhz")+" ("+a.v.ka+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),a.u("\tcs start #\tset checksum cycle start count to #"),
a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":yg(a,g[0],g[1]);break;case "u":Af(a,g[1],g[2],8);break;case "v":if("var"==g[0]){vg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.3 ("+a.v.nb+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){xg(a,b.substr(1));break}var $d="commands:",ae;for(ae in Ag)$d+="\n"+Ba(ae,9)+Ag[ae];td(a)||($d+="\nnote: history disabled if no exec breakpoints");
a.u($d);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(rg){a.u("Debugger "+(rg.stack||rg.message)),d=!1}return d}function ed(a,b,c){null!=b&&(a.Ha=Ke(a,b,c));for(;b=a.Ha.shift();)if(!Of(a,b))return!1;return!0}
var Ag={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Hf=20,If=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV HALT JRSTF JEN".split(" "),
mf=0,nf=1,of=2,pf=3,qf=4,rf=5,sf=6,tf=7,uf=8,lf="PC RA EA PS OV C0 C1 ND PD".split(" "),Bg={},Df=(Bg[28672]={0:101},Bg[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Bg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Hf,9216:53,
9472:52,9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},Bg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Bg[29248]={24576:79,24640:80,25088:81,25152:82},Bg[28700]={28672:93,28676:94,28680:95,28684:96,
28688:97,28692:98,28696:99,28700:100},Bg),Ef=["","I","M","S"],Ff=" L E LE A GE N G".split(" "),Gf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Jf=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],vf=1E3,yf=">> ";Xa(function(){for(var a=w(document,v,"debugger"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Ye(d);sb(d,c)}});
function ug(a,b,c,d,e){this.ma=b;this.ba=c||"";this.b=d;this.done=e;this.G=null;this.v={};this.L={};this.N=[];this.M=[];this.R=[];this.fa=[];this.V=this.U=this.da=0;this.Z=this.ma||0;this.wa=-1;this.w=[];this.K=null;this.i=0;this.I=null;this.J=this.F="";this.X=/^[ \t]*([A-Z$%.?][0-9A-Z$%.]*:|)[ \t]*([A-Z$%.][0-9A-Z$%.]*|)([ \t]*)([^;]+|)(;?[\s\S]*)/i;this.D=this.j=null;this.C="";this.H=[];this.S=0;this.P=a.split(";");Cg(this)}
function Cg(a){if(a.S==a.P.length)a.done(Dg(a));else{var b=a.P[a.S++];a.u("loading "+wa(b));0>b.indexOf(":")&&0<=".MAC.KLM".indexOf(b.slice(-4).toUpperCase())&&(b+=".txt");Ha(b,null,!0,function(b,d,e){if(e)a.done(e,b);else{e=d;if(ya(b,".html")){e="";var c;for(b=/<pre>([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Eg(a,"unrecognized HTML entity: "+c[0])}a.H=a.H.concat(e.split(/(\r?\n)/));
setTimeout(function(){Cg(a)},0)}})}}
function Dg(a){if(0<=a.ba.indexOf("p"))return a.u(a.H.join("")),0;var b=We(a.b);try{for(var c=0;c<a.H.length;c+=2){a.da++;if(!Fg(a,a.H[c]+"\r\n"))break;if(null!==a.G)break}a.i&&a.error("open block from line "+a.v[a.I].da);a.w.length&&a.error("open scope from line "+a.w[0].da);for(var d=a.Z,c={},e=0;e<a.N.length;c={R:c.R,Ta:c.Ta,Aa:c.Aa},e++){c.Aa=a.N[e];c.R=[];c.Ta=0;c.Aa.R.forEach(function(a){return function(b,c){c===a.R.length&&a.R.push(b);a.Ta++}}(c));if(c.Ta==c.R.length)for(var f=d;f+c.Ta<=a.Z;f++){for(var g=
void 0,g=0;g<c.Ta&&c.R[g]===a.R[f+g]&&c.Aa.fa[g]==a.fa[f];g++);if(g==c.Ta){Gg(a,c.Aa.name,f,Hg);c.Aa=null;break}}c.Aa&&(Gg(a,c.Aa.name,a.Z,Hg),c.Aa.R.forEach(function(b){return function(c,d){Ig(a,c,b.Aa.fa[d])}}(c)))}for(d=0;d<a.M.length;d++){var h=a.M[d],k=a.v[h];k?Jg(a,k.ia):a.error("missing definition for variable: "+h)}a.fa.forEach(function(b,c){var d=Kg(a,b,void 0,c);void 0===d?a.error("unable to parse expression: "+b):(d+=a.R[c],a.R[c]=Lg(a,d,c))})}catch(l){a.u(l.message),a.U=-1}a.b.F=b;return a.U}
function Fg(a,b,c,d,e){var f;if(a.i&&(1==a.i&&(f=b.indexOf(a.J),0<=f?(a.i++,b=b.substr(f+1)):a.error("expected "+a.K+" definition: "+b)),1<a.i&&(b=Mg(a,b)),a.i))return!0;null!=a.D&&(b=Ng(a,b));var g=!0;f="";for(var h;g;){h=b.match(a.X);if(!h||h[5]&&";"!=h[5].slice(0,1))return a.error("failed to parse line: "+b),!1;g=!1;f=h[2].toUpperCase();if(f==Og||f==Pg)c=null;if(c){for(var k=0;k<c.length;k++)for(var l=c[k],p=d[k]||e[k]||"",u=0,D=b.length-h[5].length;u<D;){var H=b.indexOf(l,u);if(0>H)break;var u=
H+1,P=H+l.length,fb="",Ab="";H&&(fb=b[H-1]).match(/[0-9A-Z$%.]/i)||!(P>=b.length)&&(Ab=b[P]).match(/[0-9A-Z$%.]/i)||("'"==fb&&H--,"'"==Ab&&P++,b=b.substr(0,H)+p+b.substr(P),u=H+p.length,g=!0)}c=null}}d=h[1];c=h[3];b=h[4].trim();h=h[4]+h[5];d&&(d=d.slice(0,-1),Gg(a,d,a.Z,Hg));var I;f&&(I=b.match(/^([=:]+)(.*)/))&&(e=0,d=f,f=I[1],b=I[2],"=="==f?e|=Qg:"=:"==f&&(e|=Rg),Gg(a,d,b,e),f=b="");if(!f&&!b)return!0;a.K=f;for((I=Sg(a,b))&&(b=b.replace(I,Tg(a,Ug,Sg(a,h))));I=Vg(a,b);)b=b.replace(I,I.slice(0,-1));
if(!Wg(a,f,b))switch(f){case Xg:case Yg:case Zg:Ng(a,h);break;case $g:(f=b)?(a.G=Kg(a,f,!0),void 0===a.G&&a.error("unrecognized expression: "+f)):a.G=a.ma;break;case ah:bh(a,b);break;case ch:a.Z=Kg(a,b)||0;break;case dh:bh(a,b.replace(",",",,"));break;case eh:case fh:case gh:case hh:case ih:case jh:case Og:case Pg:case kh:case lh:Tg(a,f,h);break;case mh:case nh:case oh:case ph:case qh:case rh:case sh:break;default:I=-1,h=(f+c+b).trim(),0>b.indexOf(",,")&&(I=Kf(a.b,f,b,0<=a.wa?a.wa:a.Z,!0)),0>I&&(I=
Kg(a,h,!0)),void 0!==I?Ig(a,I,a.b.la):a.error("unrecognized expression: "+h)}return!0}
function Wg(a,b,c){var d=a.v[b];if(!d)return!1;if(null!=c){if(d.Ma==th){var e=a.Z;Jg(a,d.ia);if(e<a.Z){uh(a);Jg(a,c);var d=a.R[0],f=a.fa[0];vh(a);if(void 0!==d)return a.R[e]+=d&130023423,a.R[e]|=d&4194304,f&&(a.fa[e]=a.fa[e]?a.fa[e]+("+"+f):f),!0}a.error("OPDEF '"+b+"' error: "+c);return!1}b=a.j;a.j=d;d.Ra=wh(a,c,!0);Jg(a,d.ia,d.Ua,d.Ra,d.Ab);a.j=b;return!0}if("?"!=b[0])return!1;switch(b.substr(1)){case fh:d.Ma&&Jg(a,d.ia);break;case gh:d.Ma||Jg(a,d.ia);break;case hh:0<d.Ma&&Jg(a,d.ia);break;case ih:0>
d.Ma&&Jg(a,d.ia);break;case jh:d.Ma&&Jg(a,d.ia);break;case Og:case Pg:for(b=0;b<d.Ra.length;b++)Jg(a,d.ia,d.Ua,[d.Ra[b]],[]);break;case lh:for(;0<d.Ma--;)Jg(a,d.ia);break;default:c=d.ia,uh(a,b),Jg(a,c),vh(a)}return!0}function Jg(a,b,c,d,e){b=b.split(/\r?\n/);for(var f=0;f<b.length&&Fg(a,b[f]+"\r\n",c,d,e);f++);}function uh(a,b){a.w.push({name:b,R:a.R,fa:a.fa,Z:a.Z,wa:a.wa,da:a.da});a.R=[];a.fa=[];0>a.wa&&(a.wa=a.Z);a.Z=0}
function vh(a){if(a.w.length){var b=a.w[a.w.length-1].name;b&&a.N.push({name:b,R:a.R,fa:a.fa});b=a.w.pop();a.R=b.R;a.fa=b.fa;a.Z=b.Z;a.wa=b.wa;a.w.length||-1==a.wa||a.error("scope restore error")}else a.error("scope nesting error")}ug.prototype.error=function(a){throw Error("error"+(this.da?" at line "+va(this.da):"")+": "+a);};function Eg(a,b){a.u("warning"+(a.da?" at line "+va(a.da):"")+": "+b)}
function xh(a,b){var c;c=void 0===c?",":c;for(var d=0,e=!1,f=null,g=0;d<b.length;){var h=b[d++];if('"'==h)e=!e;else if(!e){if(!g&&0<=c.indexOf(h)){d--;break}if("<"==h)g++;else if(">"==h&&0>--g){a.error("missing bracket(s): "+b);break}}}g?0<g&&a.error("extra bracket(s): "+b):f=b.substr(0,d);return f}
function Kg(a,b,c,d){var e,f=b.match(/^([^,]*),,([^,]*)$/);f?(b=f[1]?Kg(a,f[1],c,d):0,void 0!==b&&(c=f[2]?Kg(a,f[2],c,d):0,void 0!==c&&(e=Y(a.b,b,18,!0)*Math.pow(2,18)+Y(a.b,c,18,!0)))):(void 0===d&&(d=0<=a.wa?a.wa:a.Z),b=b.replace(/SIXBIT\s*(\S)(.*?)\1/g,"'$2'").replace(/ASCII\s*(\S)(.*?)\1/g,'"$2"'),e=Ue(a.b,b.replace(/\.([^0-9]|$)/g,K(a.b,d,-1)+"$1"),c),void 0===e&&a.error("error parsing expression: "+b));return e}
function Sg(a,b){for(var c=0,d="",e=0,f=-1,g=b.length;e<b.length;){var h=b[e];if(";"==h)break;"["==h&&(c++||(f=e));e++;if("]"==h&&0>=--c){g=e;break}}0>c&&a.error("missing bracket(s): "+b);0<=f&&(d=b.substr(f,g-f));return d}function Vg(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="?"+b;if(!a.v[d]){var e,f,g;e=f=g=[];a.v[d]={name:d,Ma:yh,Ua:e,Ab:f,Ra:g,ia:b+": 0",da:a.da};a.M.push(d)}}return c}
function wh(a,b,c){var d=[];for(c&&(b=b.replace(/^\(?(.*?)\)?$/,"$1"));b;){b=b.trim();c=xh(a,b);if(!c)break;var e=c;if("\\"==c[0]){var f=1,g=0;"'"==c[1]?(f++,g=6):'"'==c[1]&&(f++,g=7);var e=a,f=c.substr(f),g=void 0===g?0:g,h=Kg(e,f);if(void 0!==h){var k=5;switch(g){case 0:f=K(e.b,h,-1);break;case 6:k++;case 7:for(;h&&k--;)h=Math.trunc(h/Math.pow(2,g))}}e=f}d.push(e);b=b.substr(c.length+1)}return d}
function Ng(a,b){var c=b;null==a.D&&(a.D=a.C="",b&&(a.D=b[0],c=b=b.substr(1)));if(a.D){var d=b.indexOf(a.D);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.D=null);a.C+=b}if(null==a.D){var d=b=0,e,f,g=a.C.length;a.K==Yg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.K==Zg&&(e--,f++));var k=a.C.charCodeAt(h)&127;6==e&&(97<=k&&122>=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(Ig(a,d),b=0)}b&&Ig(a,d)}return c}
function Tg(a,b,c){var d,e,f,g,h,k;a.J="<";a.F=">";g=h=k=[];if(b==eh){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*,?\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;f=e[1];if(e[2]&&","!=e[2]){h=g=wh(a,e[2],!0);b=[];for(c=0;c<h.length;c++)if(d=h[c].indexOf("<"),0<=d){var l=h[c].lastIndexOf(">");0>l&&(l=h[c].length);b[c]=h[c].substr(d,l-d);h[c]=h[c].substr(0,d)}h=b}b=zh;c=3}else if(b==kh){a.J="[";a.F="]";e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\[)([\s\S]*)/i);if(!e)return a.error("unrecognized "+
b+": "+c),c;f=e[1];b=th;c=2}else if(b==Ug)a.J="[",a.F="]",f="?"+va(++a.V,5),a.v[f]&&a.error("literal symbol redefined: "+f),e=[c[0],c.substr(1)],b=Ah,c=0;else if(b==Og||b==Pg){a.j||a.error(b+" outside of macro");e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;for(d=0;d<a.j.Ua.length&&e[1]!=a.j.Ua[d];d++);if(d==a.j.Ua.length)return a.error("invalid "+b+" parameter: "+e[1]),c;f="?"+b;g=[e[1]];b==Pg?k=a.j.Ra[d].split(""):k=wh(a,a.j.Ra[d]);b=k.length;
c=2}else{d=xh(a,c);if(!d)return a.error("missing "+b+" expression: "+c),c;c=c.substr(d.length+1);d=d.trim();e=c.match(/\s*(<|)([\s\S]*)/i);f="?"+b;b=b==fh?a.v[d]||a.L[d]||void 0!==a.b.F[d]?1:0:Kg(a,d)||0;c=1}f=f.toUpperCase();a.i=1;a.I=f;a.v[f]={name:f,Ma:b,Ua:g,Ab:h,Ra:k,ia:"",da:a.da};e[c]&&(a.i=2,Mg(a,e[c+1]));return f}
function Mg(a,b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.J)a.i++;else if(b[d]==a.F&&(a.i--,1==a.i)){a.i=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.I||"";a.v[d].ia+=b;a.i||(a.I=null,Wg(a,d));return c}
function Gg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Hg&&a.L[b])a.error("label "+b+" redefined");else{if("string"==typeof c){var e=Kg(a,c);if(void 0===e){a.error("parseExpression("+c+")");return}c=e}(e=a.L[b])?(e.value=c,e.Vb=d,e.da=a.da):a.L[b]={name:b,value:c,Vb:d,da:a.da};a.b.F[b]=c}}function bh(a,b){var c=Kg(a,b,!0);void 0!==c?Ig(a,c,a.b.la):a.error("unrecognized expression: "+b)}function Ig(a,b,c){a.R[a.Z]=Lg(a,b);null!=c&&(a.fa[a.Z]=c);a.Z++}
function Lg(a,b,c){c=void 0===c?a.Z:c;var d=Y(a.b,b||0,36,!0);(b<-A||b>=C)&&Eg(a,"truncated value "+ua(b)+" at location "+ua(c)+" to "+ua(d));return d}ug.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};
var Hg=1,Qg=2,Rg=4,Xg="ASCII",Yg="ASCIZ",eh="DEFINE",$g="END",ah="EXP",fh="IFDEF",gh="IFE",hh="IFG",ih="IFL",jh="IFN",Og="IRP",Pg="IRPC",mh="LALL",Ug="LITERAL",nh="LIST",ch="LOC",oh="NOSYM",kh="OPDEF",ph="PAGE",lh="REPEAT",Zg="SIXBIT",qh="SUBTTL",rh="TITLE",dh="XWD",sh="XLIST",zh=-1,th=-2,Ah=-3,yh=-4;
function Bh(a,b,c){r.call(this,"Computer",a,33554432);this.A.aa=!1;this.S=null;Ch(this,b);this.N=$c(this,"autoPower",a,6);this.w=0;this.X=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.V=!1;this.I=this.C=null;this.U=this.P=!1;this.ba=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=Dh(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.G=new Ac({id:this.bb+".bus",busWidth:this.X},this.v,this.D);var d,e=pb(this.id);if((this.j=rb("Panel",this.id))&&this.j.za)for(b=
0;b<e.length;b++)d=e[b],d.ha=this.j.ha,d.u=this.j.u,d.za=this.j.za;this.u(Rb+" v1.34.3\nCopyright \u00a9 2012-2017 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.La&&d.La(this,this.G,this.v,this.D);b=null;d=$c(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=$c(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=Eh),this.b&&(this.I=new F(this,"1.34.3"),Fh(this.I)?b=null:
delete this.I);!b&&this.b&&(b=Rh(this))&&(this.K=!0);if(b){var g=this;Ha(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.ha("Unable to load machine state from server (error "+c+(b?": "+Ca(b):"")+")")):(g.L=b,g.V=!0);Mb(g)})}else Mb(this);this.J.power||(this.N=!0);!c&&this.N&&Sh(this,this.Xa)}else q("Unable to find CPU component")}ka(Bh,r);function Ch(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.S=b}
function $c(a,b,c,d){var e=b.toLowerCase(),e=Sa(b)||Sa(e);void 0===e&&a.S&&(e=a.S[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Sh(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Bb(f)){Bb(f,function(){Sh(a,b,c)});return}}b.call(a,c)}
function Th(a,b){var c=new F(a,"1.34.3",Uh);if(Fh(c)&&Vh(c)){var d=c.get(Wh),e=b?b.get(Wh):"unknown";d!=e&&(a.ha("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Bh.prototype;
m.Xa=function(a){void 0===a&&(a=this.b||(this.L?Xh:Eh));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new F(this,"1.34.3");if(a==Yh)b=!0;else if(a>Eh){if(Fh(d,this.L)){this.C=new F(this,"1.34.3",Zh);Fh(this.C)&&($h(this,d),a=ai,bi(this.C));this.C.set(Wh,Ga());ci(this.C);var e=this.b&&!this.K;if(a==Xh||ob("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=Vh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Fh(d,g):("error"==f&&"no machine state"!=
g?(this.ha("Error: "+g),"unable to verify user"==g&&(Qa(di,""),this.i=null)):this.u(f+": "+g),bi(d),Fh(d)?(c=Vh(d),e=!0):c=!1))}e&&Th(this,c?d:null)}else a==ai&&d.clear()}else Th(this);delete this.L;delete this.I}e=pb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=ei(this,g,d,b,c));b=[d,a,c];a!=Yh?Sh(this,this.Hb,b):this.Hb(b)}};
function ei(a,b,c,d,e){if(!b.A.aa){b.A.aa=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.Ba(f,d)&&f&&(q("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=Eh,window&&window.location.reload()):a.P=!0,b.Ba(null),e=!1),!d&&b.Db){var g=b.Db.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){q("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
m.Hb=function(a){var b=a[0],c=0>a[1];a=a[2];this.U=!0;this.A.aa=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(ei(this,this.v,b,c,a),J(this,-2),this.v.ga());this.P&&($h(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function $h(a,b){if(ob("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ha("http://www.pcjs.org/api/v1/report",d,!0)}}
function zg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new F(a,"1.34.3"),g=new F(a,"1.34.3",Uh),h=Ga();g.set(Wh,h);f.set(Wh,h);f.set(fi,"1.34.3");f.set(gi,window?window.location.href:null);f.set(hi,window?window.navigator.userAgent:"");a.v&&a.v.sa&&(c&&(b&&(a.v.A.ga=a.v.A.O),a.v.W()),d=a.v.sa(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.aa=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k<h.length;k++){var l=h[k];l.A.aa&&(l.sa&&(d=l.sa(b,c),"object"===typeof d&&f.set(l.id,d)),c&&(l.A.aa=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&ii(a,a.i,f.toString()),ci(g)&&ci(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==ji),d&&f.clear(h)):e=f.toString());c&&(a.A.aa=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
function ug(a,b,c,d,e){this.la=b;this.W=c||"";this.b=d;this.done=e;this.H=null;this.v={};this.N={};this.R=[];this.O=[];this.S=[];this.ea=[];this.ba=this.V=this.ia=0;this.X=this.la||0;this.Fa=-1;this.w=[];this.M=null;this.i=0;this.L=null;this.J=this.I="";this.ga=/^[ \t]*([A-Z$%.?][0-9A-Z$%.]*:|)[ \t]*([A-Z$%.][0-9A-Z$%.]*|)([ \t]*)([^;]+|)(;?[\s\S]*)/i;this.D=this.j=null;this.C="";this.G=[];this.K=0;this.F=a.split(";");this.T=[];Cg(this)}
function Cg(a){if(a.K==a.F.length)a.done(Dg(a));else{var b=a.F[a.K];a.u("loading "+wa(b));0>b.indexOf(":")&&0<=".MAC.KLM".indexOf(b.slice(-4).toUpperCase())&&(b+=".txt");Ha(b,null,!0,function(b,d,e){if(e)a.done(e,b);else{e=d;if(ya(b,".html")){e="";var c;for(b=/<pre>([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Eg(a,"unrecognized HTML entity '"+c[0]+"'")}d=e.split(/(\r?\n)/);if(d.length&
1){if(c=d.pop())Eg(a,"unexpected line '"+c+"'"),d.push(c),d.push("")}else Eg(a,"unexpected number of lines ("+d.length+")");a.G=a.G.concat(d);a.T[a.K]=d.length>>1;a.K++;setTimeout(function(){Cg(a)},0)}})}}
function Dg(a){if(0<=a.W.indexOf("p"))return a.u(a.G.join("")),0;var b=We(a.b);try{for(var c=0;c<a.G.length;c+=2){a.ia++;0<=a.W.indexOf("l")&&a.u(Fg(a)+": "+a.G[c]);if(!Gg(a,a.G[c]+"\r\n"))break;if(null!==a.H)break}a.i&&a.error("open block",a.v[a.L].ia);a.w.length&&a.error("open scope",a.w[0].ia);for(var d=a.X,c={},e=0;e<a.R.length;c={S:c.S,Ta:c.Ta,Aa:c.Aa},e++){c.Aa=a.R[e];c.S=[];c.Ta=0;c.Aa.S.forEach(function(a){return function(b,c){c===a.S.length&&a.S.push(b);a.Ta++}}(c));if(c.Ta==c.S.length)for(var f=
d;f+c.Ta<=a.X;f++){for(var g=void 0,g=0;g<c.Ta&&c.S[g]===a.S[f+g]&&c.Aa.ea[g]==a.ea[f];g++);if(g==c.Ta){Hg(a,c.Aa.name,f,Ig);c.Aa=null;break}}c.Aa&&(Hg(a,c.Aa.name,a.X,Ig),c.Aa.S.forEach(function(b){return function(c,d){Jg(a,c,b.Aa.ea[d])}}(c)))}for(d=0;d<a.O.length;d++){var h=a.O[d],k=a.v[h];k?Kg(a,k.ma):a.error("missing definition for variable '"+h+"'")}a.ea.forEach(function(b,c){var d=Lg(a,b,void 0,c);void 0===d?a.error("unable to parse expression '"+b+"'"):(d+=a.S[c],a.S[c]=Mg(a,d,c))})}catch(l){a.u(l.message),
a.V=-1}a.b.i=b;return a.V}
function Gg(a,b,c,d,e){var f;if(a.i&&(1==a.i&&(f=b.indexOf(a.J),0<=f?(a.i++,b=b.substr(f+1)):a.error("expected "+a.M+" definition in '"+b+"'")),1<a.i&&(b=Ng(a,b)),a.i))return!0;null!=a.D&&(b=Og(a,b));var g=!0;f="";for(var h;g;){h=b.match(a.ga);if(!h||h[5]&&";"!=h[5].slice(0,1))return a.error("failed to parse line '"+b+"'"),!1;g=!1;f=h[2].toUpperCase();if(f==Pg||f==Qg)c=null;if(c){for(var k=0;k<c.length;k++)for(var l=c[k],p=d[k]||e[k]||"",u=0,D=b.length-h[5].length;u<D;){var I=b.indexOf(l,u);if(0>
I)break;var u=I+1,P=I+l.length,fb="",Ab="";I&&(fb=b[I-1]).match(/[0-9A-Z$%.]/i)||!(P>=b.length)&&(Ab=b[P]).match(/[0-9A-Z$%.]/i)||("'"==fb&&I--,"'"==Ab&&P++,b=b.substr(0,I)+p+b.substr(P),u=I+p.length,g=!0)}c=null}}d=h[1];b=h[3];c=h[4].trim();h=h[4]+h[5];d&&(d=d.slice(0,-1),Hg(a,d,a.X,Ig));var G;f&&(G=c.match(/^([=:]+)(.*)/))&&(e=0,d=f,f=G[1],c=G[2],"=="==f?e|=Rg:"=:"==f&&(e|=Sg),Hg(a,d,c,e),f=c="");if(!f&&!c)return!0;a.M=f;for((G=Tg(a,c))&&(c=c.replace(G,Ug(a,Vg,Tg(a,h))));G=Wg(a,c);)c=c.replace(G,
G.slice(0,-1));if(!Xg(a,f,c))switch(f){case Yg:case Zg:case $g:Og(a,h);break;case ah:f=c;G=Lg(a,f);void 0!==G&&null==a.b.ja&&0<=G&&262143>=G?a.X+=G:a.error("unrecognized BLOCK expression '"+f+"'");break;case bh:(f=c)?(a.H=Lg(a,f,!0),void 0===a.H&&a.error("unrecognized END expression '"+f+"'")):a.H=a.la;break;case ch:dh(a,c);break;case eh:a.X=Lg(a,c)||0;break;case fh:dh(a,c.replace(",",",,"));break;case gh:case hh:case ih:case jh:case kh:case lh:case mh:case Pg:case Qg:case nh:case oh:Ug(a,f,h);break;
case ph:case qh:case rh:case sh:case th:case uh:case vh:break;default:f=(f+b+c).trim(),G=Lg(a,f,!0),void 0!==G?Jg(a,G,a.b.ja):a.error("unrecognized word expression '"+f+"'")}return!0}
function Xg(a,b,c){var d=a.v[b];if(!d)return!1;if(null!=c){if(d.Sa==wh){var e=a.X;Kg(a,d.ma);if(e<a.X){if(!c)return!0;xh(a);Kg(a,c);var d=a.S[0],f=a.ea[0];yh(a);if(void 0!==d)return a.S[e]+=d&130023423,a.S[e]|=d&4194304,f&&(a.ea[e]=a.ea[e]?a.ea[e]+("+"+f):f),!0}a.error("OPDEF '"+b+"' ("+c+") failed");return!1}b=a.j;a.j=d;d.Qa=zh(a,c,!0);Kg(a,d.ma,d.Ua,d.Qa,d.Bb);a.j=b;return!0}if("?"!=b[0])return!1;switch(b.substr(1)){case ih:case mh:d.Sa||Kg(a,d.ma);break;case jh:0<d.Sa&&Kg(a,d.ma);break;case kh:0>
d.Sa&&Kg(a,d.ma);break;case lh:case hh:d.Sa&&Kg(a,d.ma);break;case Pg:case Qg:for(b=0;b<d.Qa.length;b++)Kg(a,d.ma,d.Ua,[d.Qa[b]],[]);break;case oh:for(;0<d.Sa--;)Kg(a,d.ma);break;default:c=d.ma,xh(a,b),Kg(a,c),yh(a)}return!0}function Kg(a,b,c,d,e){b=b.split(/\r?\n/);for(var f=0;f<b.length&&Gg(a,b[f]+"\r\n",c,d,e);f++);}function xh(a,b){a.w.push({name:b,S:a.S,ea:a.ea,X:a.X,Fa:a.Fa,ia:a.ia});a.S=[];a.ea=[];0>a.Fa&&(a.Fa=a.X);a.X=0}
function yh(a){if(a.w.length){var b=a.w[a.w.length-1].name;b&&a.R.push({name:b,S:a.S,ea:a.ea});b=a.w.pop();a.S=b.S;a.ea=b.ea;a.X=b.X;a.Fa=b.Fa;a.w.length||-1==a.Fa||a.error("scope restore error")}else a.error("scope nesting error")}
function Ah(a,b){var c;c=void 0===c?",":c;for(var d=0,e=!1,f=null,g=0;d<b.length;){var h=b[d++];if('"'==h)e=!e;else if(!e){if(!g&&0<=c.indexOf(h)){d--;break}if("<"==h)g++;else if(">"==h&&0>--g){a.error("missing bracket(s) in '"+b+"'");break}}}g?0<g&&a.error("extra bracket(s) in '"+b+"'"):f=b.substr(0,d);return f}
function Lg(a,b,c,d){var e,f=b.match(/^([^,]*),,([^,]*)$/);if(f)b=f[1]?Lg(a,f[1],c,d):0,void 0!==b&&(c=f[2]?Lg(a,f[2],c,d):0,void 0!==c&&(e=Y(a.b,b,18,!0)*Math.pow(2,18)+Y(a.b,c,18,!0)));else{void 0===d&&(d=0<=a.Fa?a.Fa:a.X);b=b.replace(/SIXBIT\s*(\S)(.*?)\1/g,"'$2'").replace(/ASCII\s*(\S)(.*?)\1/g,'"$2"');e="";var g=b;if(f=b.match(/^([^\s]+)\s+(.+?)\s*$/))e=f[1],g=f[2];e=Kf(a.b,e,g,d,!0);0>e&&(e=Ue(a.b,b.replace(/\.([^0-9]|$)/g,K(a.b,d,-1)+"$1"),c),void 0===e&&a.error("unable to parse expression '"+
b+"'"))}return e}function Tg(a,b){for(var c=0,d="",e=0,f=-1,g=b.length;e<b.length;){var h=b[e];if(";"==h)break;"["==h&&(c++||(f=e));e++;if("]"==h&&0>=--c){g=e;break}}0>c&&a.error("missing bracket(s) in '"+b+"'");0<=f&&(d=b.substr(f,g-f));return d}function Fg(a,b){b=void 0===b?a.ia:b;for(var c=0;b>a.T[c];)if(b-=a.T[c],c<a.F.length-1)c++;else break;return wa(a.F[c]+" line "+b)}
function Wg(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="?"+b;if(!a.v[d]){var e,f,g;e=f=g=[];a.v[d]={name:d,Sa:Bh,Ua:e,Bb:f,Qa:g,ma:b+": 0",ia:a.ia};a.O.push(d)}}return c}
function zh(a,b,c){var d=[];for(c&&(b=b.replace(/^\(?(.*?)\)?$/,"$1"));b;){b=b.trim();c=Ah(a,b);if(!c)break;var e=c;if("\\"==c[0]){var f=1,g=0;"'"==c[1]?(f++,g=6):'"'==c[1]&&(f++,g=7);var e=a,f=c.substr(f),g=void 0===g?0:g,h=Lg(e,f);if(void 0!==h){var k=5;switch(g){case 0:f=K(e.b,h,-1);break;case 6:k++;case 7:for(;h&&k--;)h=Math.trunc(h/Math.pow(2,g))}}e=f}d.push(e);b=b.substr(c.length+1)}return d}
function Og(a,b){var c=b;null==a.D&&(a.D=a.C="",b&&(a.D=b[0],c=b=b.substr(1)));if(a.D){var d=b.indexOf(a.D);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.D=null);a.C+=b}if(null==a.D){var d=b=0,e,f,g=a.C.length;a.M==Zg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.M==$g&&(e--,f++));var k=a.C.charCodeAt(h)&127;6==e&&(97<=k&&122>=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(Jg(a,d),b=0)}b&&Jg(a,d)}return c}
function Ug(a,b,c){var d,e,f,g,h,k;a.J="<";a.I=">";g=h=k=[];if(b==gh){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*,?\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+" in '"+c+"'"),c;f=e[1];if(e[2]&&","!=e[2]){h=g=zh(a,e[2],!0);b=[];for(c=0;c<h.length;c++)if(d=h[c].indexOf("<"),0<=d){var l=h[c].lastIndexOf(">");0>l&&(l=h[c].length);b[c]=h[c].substr(d,l-d);h[c]=h[c].substr(0,d)}h=b}b=Ch;c=3}else if(b==nh){a.J="[";a.I="]";e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\[)([\s\S]*)/i);if(!e)return a.error("unrecognized "+
b+" in '"+c+"'"),c;f=e[1];b=wh;c=2}else if(b==Vg)a.J="[",a.I="]",f="?"+va(++a.ba,5),a.v[f]&&a.error("literal symbol '"+f+"' redefined"),e=[c[0],c.substr(1)],b=Dh,c=0;else if(b==Pg||b==Qg){a.j||a.error(b+" outside of macro");e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+" operands '"+c+"'"),c;for(d=0;d<a.j.Ua.length&&e[1]!=a.j.Ua[d];d++);if(d==a.j.Ua.length)return a.error("invalid "+b+" parameter '"+e[1]+"'"),c;f="?"+b;g=[e[1]];b==Qg?k=a.j.Qa[d].split(""):
k=zh(a,a.j.Qa[d]);b=k.length;c=2}else{d=Ah(a,c);if(!d)return a.error("missing "+b+" expression '"+c+"'"),c;c=c.substr(d.length+1);d=d.trim();e=c.match(/\s*(<|)([\s\S]*)/i);f="?"+b;b=b==hh||b==mh?a.v[d]||a.N[d]||void 0!==a.b.i[d]?1:0:Lg(a,d)||0;c=1}f=f.toUpperCase();a.i=1;a.L=f;a.v[f]={name:f,Sa:b,Ua:g,Bb:h,Qa:k,ma:"",ia:a.ia};e[c]&&(a.i=2,Ng(a,e[c+1]));return f}
function Ng(a,b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.J)a.i++;else if(b[d]==a.I&&(a.i--,1==a.i)){a.i=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.L||"";a.v[d].ma+=b;a.i||(a.L=null,Xg(a,d));return c}
function Hg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Ig&&a.N[b])a.error("label '"+b+"' redefined");else{var e=null;if("string"==typeof c){e=Lg(a,c,!0);if(void 0===e){a.error("parseExpression("+c+") failed");return}c=e;e=a.b.ja}var f=a.N[b];f?(f.value=c,f.Wb=d,f.ia=a.ia):a.N[b]={name:b,value:c,Wb:d,ia:a.ia};a.b.i[b]={value:c,ja:e}}}function dh(a,b){var c=Lg(a,b,!0);void 0!==c?Jg(a,c,a.b.ja):a.error("unrecognized EXP expression '"+b+"'")}
function Jg(a,b,c){a.S[a.X]=Mg(a,b);null!=c&&(a.ea[a.X]=c);a.X++}function Mg(a,b,c){c=void 0===c?a.X:c;var d=Y(a.b,b||0,36,!0);(b<-A||b>=C)&&Eg(a,"truncated value "+ua(b)+" at location "+ua(c)+" to "+ua(d));return d}ug.prototype.error=function(a,b){throw Error("error in "+Fg(this,b)+": "+a);};function Eg(a,b){a.u("warning in "+Fg(a,void 0)+": "+b)}ug.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};
var Ig=1,Rg=2,Sg=4,Yg="ASCII",Zg="ASCIZ",ah="BLOCK",gh="DEFINE",bh="END",ch="EXP",hh="IFDEF",ih="IFE",jh="IFG",kh="IFL",lh="IFN",mh="IFNDEF",Pg="IRP",Qg="IRPC",ph="LALL",Vg="LITERAL",qh="LIST",eh="LOC",rh="NOSYM",nh="OPDEF",sh="PAGE",oh="REPEAT",$g="SIXBIT",th="SUBTTL",uh="TITLE",fh="XWD",vh="XLIST",Ch=-1,wh=-2,Dh=-3,Bh=-4;
function Eh(a,b,c){r.call(this,"Computer",a,33554432);this.A.aa=!1;this.R=null;Fh(this,b);this.N=$c(this,"autoPower",a,6);this.w=0;this.W=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.V=!1;this.I=this.C=null;this.T=this.O=!1;this.ba=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=Gh(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.G=new Ac({id:this.cb+".bus",busWidth:this.W},this.v,this.D);var d,e=pb(this.id);if((this.j=rb("Panel",this.id))&&this.j.za)for(b=
0;b<e.length;b++)d=e[b],d.ha=this.j.ha,d.u=this.j.u,d.za=this.j.za;this.u(Rb+" v1.34.3\nCopyright \u00a9 2012-2017 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.Ma&&d.Ma(this,this.G,this.v,this.D);b=null;d=$c(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=$c(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=Hh),this.b&&(this.I=new F(this,"1.34.3"),Th(this.I)?b=null:
delete this.I);!b&&this.b&&(b=Uh(this))&&(this.K=!0);if(b){var g=this;Ha(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.ha("Unable to load machine state from server (error "+c+(b?": "+Ca(b):"")+")")):(g.L=b,g.V=!0);Mb(g)})}else Mb(this);this.J.power||(this.N=!0);!c&&this.N&&Vh(this,this.Xa)}else q("Unable to find CPU component")}ja(Eh,r);function Fh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.R=b}
function $c(a,b,c,d){var e=b.toLowerCase(),e=Sa(b)||Sa(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Vh(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Bb(f)){Bb(f,function(){Vh(a,b,c)});return}}b.call(a,c)}
function Wh(a,b){var c=new F(a,"1.34.3",Xh);if(Th(c)&&Yh(c)){var d=c.get(Zh),e=b?b.get(Zh):"unknown";d!=e&&(a.ha("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Eh.prototype;
m.Xa=function(a){void 0===a&&(a=this.b||(this.L?$h:Hh));if(!this.w){this.w++;var b=!1,c=!1;this.O=!1;var d=this.I||new F(this,"1.34.3");if(a==ai)b=!0;else if(a>Hh){if(Th(d,this.L)){this.C=new F(this,"1.34.3",bi);Th(this.C)&&(ci(this,d),a=di,ei(this.C));this.C.set(Zh,Ga());fi(this.C);var e=this.b&&!this.K;if(a==$h||ob("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=Yh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Th(d,g):("error"==f&&"no machine state"!=
g?(this.ha("Error: "+g),"unable to verify user"==g&&(Qa(gi,""),this.i=null)):this.u(f+": "+g),ei(d),Th(d)?(c=Yh(d),e=!0):c=!1))}e&&Wh(this,c?d:null)}else a==di&&d.clear()}else Wh(this);delete this.L;delete this.I}e=pb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=hi(this,g,d,b,c));b=[d,a,c];a!=ai?Vh(this,this.Ib,b):this.Ib(b)}};
function hi(a,b,c,d,e){if(!b.A.aa){b.A.aa=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.Ba(f,d)&&f&&(q("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=Hh,window&&window.location.reload()):a.O=!0,b.Ba(null),e=!1),!d&&b.Eb){var g=b.Eb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){q("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
m.Ib=function(a){var b=a[0],c=0>a[1];a=a[2];this.T=!0;this.A.aa=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(hi(this,this.v,b,c,a),J(this,-2),this.v.fa());this.O&&(ci(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function ci(a,b){if(ob("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ha("http://www.pcjs.org/api/v1/report",d,!0)}}
function zg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new F(a,"1.34.3"),g=new F(a,"1.34.3",Xh),h=Ga();g.set(Zh,h);f.set(Zh,h);f.set(ii,"1.34.3");f.set(ji,window?window.location.href:null);f.set(ki,window?window.navigator.userAgent:"");a.v&&a.v.sa&&(c&&(b&&(a.v.A.fa=a.v.A.P),a.v.Y()),d=a.v.sa(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.aa=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k<h.length;k++){var l=h[k];l.A.aa&&(l.sa&&(d=l.sa(b,c),"object"===typeof d&&f.set(l.id,d)),c&&(l.A.aa=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&li(a,a.i,f.toString()),fi(g)&&fi(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==mi),d&&f.clear(h)):e=f.toString());c&&(a.A.aa=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
m.reset=function(){this.A.reset=!0;this.G&&this.G.reset&&(Qb(this,"Resetting "+this.G.type),this.G.reset());this.v&&this.v.reset&&(Qb(this,"Resetting "+this.v.type),this.v.reset());for(var a=pb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.G&&c!==this.v&&c.reset&&(Qb(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;J(this,-1)};m.start=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}J(this,-1)};
m.stop=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}J(this,-1)};
function J(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.kb+=d))&&(e.textContent=c.A.O?c.ba.toFixed(2)+"Mhz":"Stopped",c.kb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.O;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.T||8,e=e||0,e=8==f?ua(e,void 0):n(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.Ca);kc(a,a.i);ec(a,a.w)}}
m.ta=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.aa?zg(d,!1,!0):Sh(d,d.Xa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.aa&&!d.w)if(d.b&&!d.F){var a=ob("Click OK to save changes to this "+Rb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");zg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Xa(Eh)}else d.reset(),d.v&&!d.D&&d.v.ga()},!0;case "save":if(ya(Ja(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=Dh(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=zg(d,b);b?ii(d,a,c):d.ha("Resume disabled, machine state not saved")}},!0}return!1};
function Dh(a,b){var c=a.i;c||((c=Pa(di),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=ki(a,c))||a.ha("The user ID is invalid.")):b&&a.ha("Browser local storage is not available"));return c}
function ki(a,b){a.i=null;b=Ha(Ja()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Qa(di,b.data),a.i=b.data)}catch(d){q(d.message+" ("+c+")")}return a.i}function Rh(a){var b=null;a.i&&(b=Ja()+"/api/v1/user?req=load&user="+a.i+"&state="+li(a,"1.34.3"));return b}
function ii(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=li(a,"1.34.3");d.data=c;b=Ha(Ja()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ha("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.ha(c),Qa(di,""),a.i=null)}}
function jd(a,b){if(a.za){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.za.focus();!b&&window&&window.scrollTo(c,d)}}var Zh="failsafe",Uh="validate",Wh="timestamp",fi="version",gi="url",hi="browser",di="user",Yh=-1,Eh=0,Xh=1,ai=2,ji=3;Xa(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=t(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=t(f),g=new Bh(g,d,!0);sb(g,f);g.N&&Sh(g,g.Xa)}});
Ya.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=t(a[b]);(c=rb("Computer",c.id))&&c.U&&!c.A.aa&&c.Xa(Yh)}});Ya.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=t(a[b]);(c=rb("Computer",c.id))&&c.A.aa&&zg(c,!(!c.b||c.F),!0)}});function F(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=li(a,b,c);bi(this,a.Sb)}m=F.prototype;m.set=function(a,b){try{this.b[a]=b}catch(c){}};m.get=function(a){return this.b[a]||null};
m.data=function(){return this.b};function Fh(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:Ka()&&(b=Pa(a.key))?(a.i=b,a.v=!0):!1}function Vh(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){q(c.message||c),b=!1}return b}function ci(a){var b=!0;if(Ka()){var c=JSON.stringify(a.b);Qa(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}m.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function bi(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}m.clear=function(a){bi(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 li(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}var mi=0;
function ni(a,b,c,d,e,f,g){f("Loading "+a+"...");Ha(a,null,!0,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):oi(k,a,b,c,d,e,f,g)})}
function oi(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(lb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(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(u){g=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?pi(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function pi(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ha(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);pi(a,b,c)}})}else c(a,null)}
function qi(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&w(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function g(a){f("Error: "+a);l&&(--mi||ab(!0));l=!1}var h,k,l=!0;mi++;mb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=p:D.appendChild(document.createTextNode(p));u.appendChild(D)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.3/components.xsl");p=function(e,k){k?ni(d,null,a,null,!1,f,function(a,e){e?(lb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--mi||ab(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--mi||
ab(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?ni(c,b,a,e,!0,f,p):oi(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(H){g(H.message)}return l}window.embedPDP10=function(a,b,c,d){ab(!1);return qi("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ab(!1);return qi("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return rb(b,a+".machine")};
function J(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.lb+=d))&&(e.textContent=c.A.P?c.ba.toFixed(2)+"Mhz":"Stopped",c.lb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.P;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.U||8,e=e||0,e=8==f?ua(e,void 0):n(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.Ca);kc(a,a.i);ec(a,a.w)}}
m.ta=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.aa?zg(d,!1,!0):Vh(d,d.Xa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.aa&&!d.w)if(d.b&&!d.F){var a=ob("Click OK to save changes to this "+Rb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");zg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Xa(Hh)}else d.reset(),d.v&&!d.D&&d.v.fa()},!0;case "save":if(ya(Ja(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=Gh(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=zg(d,b);b?li(d,a,c):d.ha("Resume disabled, machine state not saved")}},!0}return!1};
function Gh(a,b){var c=a.i;c||((c=Pa(gi),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=ni(a,c))||a.ha("The user ID is invalid.")):b&&a.ha("Browser local storage is not available"));return c}
function ni(a,b){a.i=null;b=Ha(Ja()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Qa(gi,b.data),a.i=b.data)}catch(d){q(d.message+" ("+c+")")}return a.i}function Uh(a){var b=null;a.i&&(b=Ja()+"/api/v1/user?req=load&user="+a.i+"&state="+oi(a,"1.34.3"));return b}
function li(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=oi(a,"1.34.3");d.data=c;b=Ha(Ja()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ha("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.ha(c),Qa(gi,""),a.i=null)}}
function jd(a,b){if(a.za){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.za.focus();!b&&window&&window.scrollTo(c,d)}}var bi="failsafe",Xh="validate",Zh="timestamp",ii="version",ji="url",ki="browser",gi="user",ai=-1,Hh=0,$h=1,di=2,mi=3;Xa(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=t(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=t(f),g=new Eh(g,d,!0);sb(g,f);g.N&&Vh(g,g.Xa)}});
Ya.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=t(a[b]);(c=rb("Computer",c.id))&&c.T&&!c.A.aa&&c.Xa(ai)}});Ya.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=t(a[b]);(c=rb("Computer",c.id))&&c.A.aa&&zg(c,!(!c.b||c.F),!0)}});function F(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=oi(a,b,c);ei(this,a.Tb)}m=F.prototype;m.set=function(a,b){try{this.b[a]=b}catch(c){}};m.get=function(a){return this.b[a]||null};
m.data=function(){return this.b};function Th(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:Ka()&&(b=Pa(a.key))?(a.i=b,a.v=!0):!1}function Yh(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){q(c.message||c),b=!1}return b}function fi(a){var b=!0;if(Ka()){var c=JSON.stringify(a.b);Qa(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}m.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function ei(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}m.clear=function(a){ei(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 oi(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}var pi=0;
function qi(a,b,c,d,e,f,g){f("Loading "+a+"...");Ha(a,null,!0,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):ri(k,a,b,c,d,e,f,g)})}
function ri(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(lb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(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(u){g=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?si(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function si(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ha(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);si(a,b,c)}})}else c(a,null)}
function ti(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&w(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function g(a){f("Error: "+a);l&&(--pi||ab(!0));l=!1}var h,k,l=!0;pi++;mb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=p:D.appendChild(document.createTextNode(p));u.appendChild(D)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.3/components.xsl");p=function(e,k){k?qi(d,null,a,null,!1,f,function(a,e){e?(lb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--pi||ab(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--pi||
ab(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?qi(c,b,a,e,!0,f,p):ri(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(I){g(I.message)}return l}window.embedPDP10=function(a,b,c,d){ab(!1);return ti("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ab(!1);return ti("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return rb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!ub[a]){for(var c=!0,d=ub,e=a,f=b.length,g=[],h=[],k="",l=null,p=0;p<f;p++){var u=b[p];if('"'==u||"'"==u)l&&u!=l?k+=u:(l?l=null:l=u,k&&(h.push(k),k=""));else{if(!l){if("\r"==u||"\n"==u)u=";";if(" "==u||"\t"==u||";"==u){k&&(h.push(k),k="");";"==u&&h.length&&(g.push(h),h=[]);continue}}k+=u}}k&&h.push(k);h.length&&g.push(h);d[e]=g;tb(a)||(c=!1)}return c};window.enableEvents=ab;window.sendEvent=cb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.3/pdp10-dbg.map

View file

@ -38,9 +38,9 @@ var h,aa="function"==typeof Object.defineProperties?Object.defineProperty:functi
function fa(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ga(this)}});fa=function(){}}function ga(a){var b=0;return ha(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ha(a){fa();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}function ia(a){fa();ca();fa();var b=a[Symbol.iterator];return b?b.call(a):ga(a)}
function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ja(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
ja("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ja("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});ja("Array.prototype.fill",function(a){return a?a:function(a,c,d){var b=this.length||0;0>c&&(c=Math.max(0,b+c));if(null==d||d>b)d=b;d=Number(d);0>d&&(d=Math.max(0,b+d));for(c=Number(c||0);c<d;c++)this[c]=a;return this}});
var ka={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],256256:[77,1,26,128],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},la={Ai:0,Fe:1,Hi:2,Ii:3,Ji:4,Ki:5,Li:6,Mi:7,Od:8,Ni:9,Ge:10,Oi:11,Pi:12,He:13,Qi:14,Ri:15,Si:16,Ti:17,Ui:18,Vi:19,Wi:20,Xi:21,Yi:22,Zi:23,$i:24,aj:25,bj: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,Kd:65,wi:66,Ci:67,cj:68,E:69,ij:70,lj:71,xj:72,zj:73,Aj:74,Bj:75,Cj:76,Fj:77,Hj:78,Nj:79,Qj:80,Q:81,Sj:82,Vj:83,dk:84,fk:85,hk:86,ik:87,mk:88,nk:89,xf:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,pk:97,rk:98,uk:99,d:100,e:101,vk:102,wk:103,xk:104,yk:105,Ck:106,k:107,Dk:108,Ek:109,n:110,Fk:111,p:112,q:113,r:114,Gk:115,t:116,Jk:117,Kk:118,Lk:119,x:120,
y:121,z:122,"{":123,"|":124,"}":125,"~":126,cc:127};
var ka={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],256256:[77,1,26,128],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},la={Bi:0,Ge:1,Ii:2,Ji:3,Ki:4,Li:5,Mi:6,Ni:7,Pd:8,Oi:9,He:10,Pi:11,Qi:12,Ie:13,Ri:14,Si:15,Ti:16,Ui:17,Vi:18,Wi:19,Xi:20,Yi:21,Zi:22,$i:23,aj:24,bj:25,cj: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,Ld:65,xi:66,Di:67,dj:68,E:69,jj:70,mj:71,yj:72,Aj:73,Bj:74,Cj:75,Dj:76,Gj:77,Ij:78,Oj:79,Rj:80,Q:81,Tj:82,Wj:83,ek:84,gk:85,ik:86,jk:87,nk:88,pk:89,yf:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,qk:97,sk:98,vk:99,d:100,e:101,wk:102,xk:103,yk:104,zk:105,Dk:106,k:107,Ek:108,Fk:109,n:110,Gk:111,p:112,q:113,r:114,Hk:115,t:116,Kk:117,Lk:118,Mk:119,x:120,
y:121,z:122,"{":123,"|":124,"}":125,"~":126,dc:127};
function ma(a,b){var c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=
e[1],d=35-((e[2]||35)&255);e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return c}
function na(a,b,c,d,e){e=void 0===e?0:e;var f="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));for(var g=e||-1;0<c--;){g||(f=","+f,g=e);if(null==a)f="?"+f;else{var k=a%b,k=k+(0<=k&&9>=k?48:55),f=String.fromCharCode(k)+f;a=Math.trunc(a/b)}g--}return(void 0===d?"":d)+f}function pa(a,b,c){b?36<b&&(b=36):(b=Math.abs(a),b=255>=b?8:262143>=b?18:36);return na(a,2,b,"",c)}
@ -50,313 +50,313 @@ var xa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Aa={0:"NUL"
function Da(){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 Ea(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(k.onreadystatechange=function(){4===k.readyState&&(f=k.responseText,200==k.status||!k.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=k.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");k.open("POST",a,c);k.setRequestHeader("Content-type","application/x-www-form-urlencoded");k.send(l)}else k.open("GET",a,c),"bytes"==b&&k.overrideMimeType("text/plain; charset=x-user-defined"),k.send();c||(f=k.responseText,200!=k.status&&(e=k.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Fa(a,b){var c,d={aa:null,ia:null,Ba:null,Aa:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Ba=g.load;d.Aa=g.exec;if(e=g.bytes)d.aa=e;else if(e=g.words)for(d.aa=Array(2*e.length),f=c=0;c<e.length;c++)d.aa[f++]=e[c]&255,d.aa[f++]=e[c]>>8&255;else if(e=g.longs)for(d.aa=Array(4*e.length),f=c=0;c<e.length;c++)d.aa[f++]=
e[c]&255,d.aa[f++]=e[c]>>8&255,d.aa[f++]=e[c]>>16&255,d.aa[f++]=e[c]>>24&255;else(e=g.data)?d.qk=e:d.aa=g;d.aa&&(d.aa.length?1==d.aa.length&&(w(d.aa[0]),d=null):(w("Empty resource: "+a),d=null));d.ia=g.symbols}catch(k){w("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){w("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.aa=e)}return d}
function Fa(a,b){var c,d={aa:null,ia:null,Aa:null,za:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Aa=g.load;d.za=g.exec;if(e=g.bytes)d.aa=e;else if(e=g.words)for(d.aa=Array(2*e.length),f=c=0;c<e.length;c++)d.aa[f++]=e[c]&255,d.aa[f++]=e[c]>>8&255;else if(e=g.longs)for(d.aa=Array(4*e.length),f=c=0;c<e.length;c++)d.aa[f++]=
e[c]&255,d.aa[f++]=e[c]>>8&255,d.aa[f++]=e[c]>>16&255,d.aa[f++]=e[c]>>24&255;else(e=g.data)?d.rk=e:d.aa=g;d.aa&&(d.aa.length?1==d.aa.length&&(w(d.aa[0]),d=null):(w("Empty resource: "+a),d=null));d.ia=g.symbols}catch(k){w("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){w("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.aa=e)}return d}
function Ga(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ha(){if(null==Ja){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Ja=a}return Ja}function Ka(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function La(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ma(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Na(a){if(!Oa){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Oa=c}return Oa[a]}function Pa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Qa(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}}function Ra(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Sa(a){Xa.init.push(a)}
function Ya(a){if(Za)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){w(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function $a(a){!Za&&a?(Za=!0,ab&&bb("init"),cb&&bb("show")):Za=a}function bb(a){Xa[a]&&Ya(Xa[a])}var Oa=null,Xa={init:[],show:[],exit:[]},ab=!1,cb=!1,Za=!0,Ja=null;Ra("onload",function(){ab=!0;Ya(Xa.init)});Ra("onpageshow",function(){cb=!0;Ya(Xa.show)});Ra(Ma("Opera")||Ma("iOS")?"onunload":"onbeforeunload",function(){Ya(Xa.exit)});
function x(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Vd=b.comment;this.vf=b;this.exports={};this.H=this.bindings={};a=this.id.indexOf(".");0>a?this.Mb=this.id:(this.vb=this.id.substr(0,a),this.Mb=this.id.substr(a+1));this.A={ready:!1,fb:!1,xd:!1,ca:!1,error:!1};this.Oc=null;this.A.error=!1;this.ja=c||0;this.D=this.f=this.F=this.J=this.Va=null;db.push(this)}function eb(a,b,c){fb[a]&&b&&(fb[a][b]=c)}function gb(){return Date.now()||+new Date}
function x(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Wd=b.comment;this.wf=b;this.exports={};this.H=this.bindings={};a=this.id.indexOf(".");0>a?this.Nb=this.id:(this.wb=this.id.substr(0,a),this.Nb=this.id.substr(a+1));this.A={ready:!1,eb:!1,yd:!1,ca:!1,error:!1};this.Pc=null;this.A.error=!1;this.ja=c||0;this.D=this.f=this.F=this.J=this.Ua=null;db.push(this)}function eb(a,b,c){fb[a]&&b&&(fb[a][b]=c)}function gb(){return Date.now()||+new Date}
function w(a){window&&window.alert(a)}function hb(a){var b=!1;window&&(b=window.confirm(a));return b}function ib(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<db.length;b++){var d=db[b];a&&d.id.indexOf(a)||c.push(d)}return c}function mb(a){if(void 0!==a){var b;for(b=0;b<db.length;b++)if(db[b].id===a)return db[b]}return null}
function nb(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<db.length;d++)if(c)c==db[d]&&(c=null);else if(!(a!=db[d].type||b&&db[d].id.indexOf(b)))return db[d]}return null}function ob(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){w(c.message+" ("+a+")")}return b}
function pb(a,b){var c=y;b=z(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var k=g.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case c+"-binding":(k=ob(g))&&k.binding&&a.wa(k.type,k.binding,g,k.value),m=l.length}}}}
function z(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 qb(a){for(var b=!0,c=rb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=sb.indexOf(e)&&(f=function(){return function(){qb(a)}}());var g=tb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,k=nb(d[1],a);if(k)if(g=vb[e])b=g(k,d[2],d[3]);else{var l=k.exports;if(l&&(g=l[e]))if(b=!0,!f)b=g.call(k,d[2],d[3]);else if(!g.call(k,f,d[2],d[3]))break}}if(!b){w("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete rb[a];return b}h=x.prototype;
h.toString=function(){return this.name?this.name:this.id||this.type};
h.wa=function(a,b,c){switch(b){case "clear":return this.H[b]||(this.H[b]=c,c.onclick=function(a){return function(){a.H.print&&(a.H.print.value="")}}(this)),!0;case "print":return this.H[b]||(this.Va=this.H[b]=c,c.value="",this.v=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.T=function(a){this.v(a,this.Mb)}),!0;default:return!1}};h.log=function(){};h.v=function(){};
h.status=function(a){this.v(this.Mb+": "+a)};h.T=function(a,b,c){c=c||this.type;b||w((c?c+": ":"")+a)};function Bb(a,b){a.A.error=!0;a.T(b)}function Cb(a){return a.A.error?(a.v(a.toString()+" error"),!0):!1}function Db(a,b){b&&(a.A.ready?b():a.Oc=b);return a.A.ready}function C(a,b){a.A.error||(a.A.ready=!1!==b,a.A.ready&&(b=a.Oc,a.Oc=null,b&&b()))}function Eb(a,b){a.A.fb&&(b?a.A.xd=!0:void 0===b&&a.v(a.toString()+" busy"));return a.A.fb}
function Fb(a,b){if(a.A.xd)return a.A.fb=!1,a.A.xd=!1;if(a.A.error)return a.v(a.toString()+" error"),!1;a.A.fb=b;return a.A.fb}h.Ea=function(){return this.A.ca=!0};h.Da=function(a,b){b&&(this.A.ca=!1);return!0};function E(a,b){if(a.D){a===a.D?b|=0:b=b||a.ja;var c=a.D.ja&b;return!!b&&c===b||!!(c&a.D.ke)}return!1}function F(a,b,c,d){a.D&&(!0===c||E(a,c|0))&&a.D.message(b,d)}
h.wa=function(a,b,c){switch(b){case "clear":return this.H[b]||(this.H[b]=c,c.onclick=function(a){return function(){a.H.print&&(a.H.print.value="")}}(this)),!0;case "print":return this.H[b]||(this.Ua=this.H[b]=c,c.value="",this.v=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.T=function(a){this.v(a,this.Nb)}),!0;default:return!1}};h.log=function(){};h.v=function(){};
h.status=function(a){this.v(this.Nb+": "+a)};h.T=function(a,b,c){c=c||this.type;b||w((c?c+": ":"")+a)};function Bb(a,b){a.A.error=!0;a.T(b)}function Cb(a){return a.A.error?(a.v(a.toString()+" error"),!0):!1}function Db(a,b){b&&(a.A.ready?b():a.Pc=b);return a.A.ready}function C(a,b){a.A.error||(a.A.ready=!1!==b,a.A.ready&&(b=a.Pc,a.Pc=null,b&&b()))}function Eb(a,b){a.A.eb&&(b?a.A.yd=!0:void 0===b&&a.v(a.toString()+" busy"));return a.A.eb}
function Fb(a,b){if(a.A.yd)return a.A.eb=!1,a.A.yd=!1;if(a.A.error)return a.v(a.toString()+" error"),!1;a.A.eb=b;return a.A.eb}h.Da=function(){return this.A.ca=!0};h.Ca=function(a,b){b&&(this.A.ca=!1);return!0};function E(a,b){if(a.D){a===a.D?b|=0:b=b||a.ja;var c=a.D.ja&b;return!!b&&c===b||!!(c&a.D.le)}return!1}function F(a,b,c,d){a.D&&(!0===c||E(a,c|0))&&a.D.message(b,d)}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var fb=window?window.PCjs.Machines:{},db=window?window.PCjs.Components:[],rb=window?window.PCjs.Commands:{},sb=["hold","sleep","wait"],tb={alert:function(a){w(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},vb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var Gb="undefined"!==typeof ArrayBuffer,y="pdp11",Hb="PDPjs",Ib=!1,Jb=Gb,Kb=!0,Lb=!0,Mb="UNKNOWN PANIC ABORT ILLEGAL RED YELLOW FAULT TRACE HALT OPCODE INTERRUPT".split(" "),Nb={rd:5,vd:144,$c:8,Ic:{pf:15,Wj:16,lk:32,$d:64,Ga:128,de:256,$j:512,gj:1024,Hc:2048,fj:4096,kd:57344,na:{kd:13}},bf:{ge:1,Gi:2,qf:3,Kb:28,Gc:32,Fc:64,Ud:128,ek:256,Ie:512,ec:1024,Rj:2048,ce:4096,jk:8192,Pj:16384,Je:32768,ed:32736},$e:{dc:1,xa:14,Jb:48,Ib:64,ab:128,ck:256,hj:512,jj:1024,Qe:2048,td:8192,ed:16384,ib:32768,Kb:4608,
fc:61438,Ua:3967,na:{xa:1,Jb:4}},af:{sd:15,hd:16,bc:8160,sb:57344,na:{hd:4,bc:5,sb:13}},xa:{Ee:0,hc:2,tb:4,wd:6,Lc:8,Ue:10,Ke:12,kk:14}},Ob={rd:5,vd:112,$c:4,Te:"DY",gf:{Ga:1,xa:14,$a:48,Ib:64,ab:128,sb:768,Rd:15360,ej:16384,ib:32768,Di:16254,Zj:128,fc:65535,Ua:1022,na:{xa:1,$a:4,sb:8}},ef:{Ua:65534},hf:{rf:1,sf:4,tf:16,Xj:65408,ae:63,Kc:64,gc:65408,Me:3,qj:8,na:{Kc:6,gc:7}},Jc:{Pe:{Dj:0,bk:1,Bi:2,Ej:3,Lc:4,Re:5,gk:6,ak:7},Sd:8,Oe:16,nj:32,pj:64,Ne:128,oj:256,tj:512,vj:1024,sj:2048,rj:4096,wj:8192,
mj:16384,uj:32768},ff:{cb:63},Rd:{Oj:1024,dj:2048,ge:2048,yj:3072,Ie:4096,bb:5120,ec:8192,Gj:9216},xa:{Ij:0,wd:2,uf:4,Lc:6,Ye:8,wf:10,Ve:12,Tj:14}},Pb={rd:5,vd:180,$c:2,Te:"DX",kf:{dc:1,xa:14,ud:16,DONE:32,Ib:64,eb:128,INIT:16384,ib:32768,Kb:16128,fc:32992,Ua:16479},Uj:{},nf:{cb:127},mf:{cb:31},lf:{Nd:1,Xd:2,kd:4,cc:64,Ga:128},xa:{bd:0,EMPTY:2,hc:4,tb:6,Kb:8,Xe:10,Mc:12,We:14},ERROR:{fd:8,gd:16,xi:24,Se:32,kj:40,Yj:48,qd:56,Mj:72,Lj:80,Kj:88,Fi:96,zi:104,Jj:112,pd:120,Ei:128,yi:136}},Qb={48:"DL11R",
52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11",180:"RX11"};Pb.jf=["DX",77,1,26,128,1,0,0,128,0];Nb.Hc=["RK",203,2,12,512,0,0,0,512,Nb.Ic.Hc|Nb.Ic.de|Nb.Ic.$d];Ob.cf=["RL",512,2,40,256,0,0,0,256,Ob.Jc.Pe.Re|Ob.Jc.Sd|Ob.Jc.Oe];
var Gb="undefined"!==typeof ArrayBuffer,y="pdp11",Hb="PDPjs",Ib=!1,Jb=Gb,Kb=!0,Lb=!0,Mb="UNKNOWN PANIC ABORT ILLEGAL RED YELLOW FAULT TRACE HALT OPCODE INTERRUPT".split(" "),Nb={sd:5,wd:144,ad:8,Jc:{qf:15,Xj:16,mk:32,ae:64,Fa:128,ee:256,ak:512,hj:1024,Ic:2048,gj:4096,ld:57344,na:{ld:13}},cf:{he:1,Hi:2,rf:3,Lb:28,Hc:32,Gc:64,Vd:128,fk:256,Je:512,fc:1024,Sj:2048,de:4096,kk:8192,Qj:16384,Ke:32768,fd:32736},af:{ec:1,xa:14,Kb:48,Jb:64,$a:128,dk:256,ij:512,kj:1024,Re:2048,ud:8192,fd:16384,hb:32768,Lb:4608,
gc:61438,Ta:3967,na:{xa:1,Kb:4}},bf:{td:15,jd:16,cc:8160,tb:57344,na:{jd:4,cc:5,tb:13}},xa:{Fe:0,ic:2,ub:4,xd:6,Mc:8,Ve:10,Le:12,lk:14}},Ob={sd:5,wd:112,ad:4,Ue:"DY",hf:{Fa:1,xa:14,Za:48,Jb:64,$a:128,tb:768,Sd:15360,fj:16384,hb:32768,Ei:16254,$j:128,gc:65535,Ta:1022,na:{xa:1,Za:4,tb:8}},ff:{Ta:65534},jf:{sf:1,tf:4,uf:16,Yj:65408,be:63,Lc:64,hc:65408,Ne:3,rj:8,na:{Lc:6,hc:7}},Kc:{Qe:{Ej:0,ck:1,Ci:2,Fj:3,Mc:4,Se:5,hk:6,bk:7},Td:8,Pe:16,oj:32,qj:64,Oe:128,pj:256,uj:512,wj:1024,tj:2048,sj:4096,xj:8192,
nj:16384,vj:32768},gf:{bb:63},Sd:{Pj:1024,ej:2048,he:2048,zj:3072,Je:4096,ab:5120,fc:8192,Hj:9216},xa:{Jj:0,xd:2,vf:4,Mc:6,Ze:8,xf:10,We:12,Uj:14}},Pb={sd:5,wd:180,ad:2,Ue:"DX",lf:{ec:1,xa:14,vd:16,DONE:32,Jb:64,cb:128,INIT:16384,hb:32768,Lb:16128,gc:32992,Ta:16479},Vj:{},pf:{bb:127},nf:{bb:31},mf:{Od:1,Yd:2,ld:4,dc:64,Fa:128},xa:{cd:0,EMPTY:2,ic:4,ub:6,Lb:8,Ye:10,Nc:12,Xe:14},ERROR:{gd:8,hd:16,yi:24,Te:32,lj:40,Zj:48,rd:56,Nj:72,Mj:80,Lj:88,Gi:96,Ai:104,Kj:112,qd:120,Fi:128,zi:136}},Qb={48:"DL11R",
52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11",180:"RX11"};Pb.kf=["DX",77,1,26,128,1,0,0,128,0];Nb.Ic=["RK",203,2,12,512,0,0,0,512,Nb.Jc.Ic|Nb.Jc.ee|Nb.Jc.ae];Ob.df=["RL",512,2,40,256,0,0,0,256,Ob.Kc.Qe.Se|Ob.Kc.Td|Ob.Kc.Pe];
var y="pdp11",Hb="PDPjs",Ib=!1,Jb=Gb,Lb=Kb=!0,Rb={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,pc11:4096,paper:4096,disk:8192,read:16384,write:32768,rk11:65536,rl11:131072,rx11:262144,dl11:1048576,serial:1048576,kw11:2097152,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function Sb(a,b){x.call(this,"Panel",a,512);this.j=this.u=0;this.M=b;this.ga=this.g=this.Ya=this.Eb=0;this.B=this.C=-1;this.G=this.I=this.w=!1;this.L=Tb;this.i={};this.b={START:[1,1,!0,!1,this.Tf],STEP:[1,1,!1,!1,this.Uf],ENABLE:[1,1,!1,!1,this.Of],CONT:[1,1,!0,!1,this.Mf],DEP:[0,0,!0,!1,this.Nf],EXAM:[1,1,!0,!1,this.Pf],LOAD:[1,1,!0,!1,this.Rf],TEST:[0,0,!0,!1,this.Qf]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Sf,a];this.D=this.f=this.F=this.J=null;this.exports={hold:this.Hf,toggle:this.lh,
reset:this.gh,set:this.kh};C(this)}p(Sb,x);function Ub(a,b){return Vb(a,a.Eb=b)}h=Sb.prototype;h.reset=function(a){this.stop();a&&Ub(this,0)};
function Sb(a,b){x.call(this,"Panel",a,512);this.j=this.u=0;this.M=b;this.ga=this.g=this.Xa=this.Fb=0;this.B=this.C=-1;this.G=this.I=this.w=!1;this.L=Tb;this.i={};this.b={START:[1,1,!0,!1,this.Uf],STEP:[1,1,!1,!1,this.Vf],ENABLE:[1,1,!1,!1,this.Pf],CONT:[1,1,!0,!1,this.Nf],DEP:[0,0,!0,!1,this.Of],EXAM:[1,1,!0,!1,this.Qf],LOAD:[1,1,!0,!1,this.Sf],TEST:[0,0,!0,!1,this.Rf]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Tf,a];this.D=this.f=this.F=this.J=null;this.exports={hold:this.If,toggle:this.mh,
reset:this.hh,set:this.lh};C(this)}p(Sb,x);function Ub(a,b){return Vb(a,a.Fb=b)}h=Sb.prototype;h.reset=function(a){this.stop();a&&Ub(this,0)};
h.wa=function(a,b,c,d){if(this.J&&this.J.wa(a,b,c,d)||this.f&&this.f.wa(a,b,c,d)||this.D&&this.D.wa(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.H[b]=c,this.u++,!0;default:return"led"==a||"rled"==a?(this.H[b]=c,this.i[b]=d?1:0,this.u++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.H[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,
b){return function(){Wb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Xb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Wb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Xb(a,b)}}(this,b),!0):x.prototype.wa.call(this,a,b,c,d)}};h.Ca=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;Yb(b,this,ec);fc(b,this.reset.bind(this));gc(this);hc(this)};
h.Ea=function(a,b){if(!b)if(this.M&&ic(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};h.Da=function(a){return a?this.save():!0};h.save=function(){var a=new G(this);a.set(0,[this.ga,this.Eb,this.Ya]);return a.data()};h.restore=function(a){if(a=a[0])jc(this,this.ga=a[0]),Ub(this,a[1]),kc(this,a[2]);return!0};h.gh=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}hc(this);return!0};function lc(a,b,c){if(a=a.H[b])a.style.backgroundColor=c?"#ff0000":"#000000"}
function gc(a,b){for(var c in a.i)lc(a,c,null!=b?b:a.i[c])}function mc(a,b,c){if(a=a.H[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function hc(a){for(var b in a.b)mc(a,b,a.b[b][1])}function nc(a,b,c,d){if(a.H[b]){var e=a.D&&a.D.W||8;c=c||0;c=8==e?u(c,d):v(c,d);a.H[b].textContent!=c&&(a.H[b].textContent=c)}}h.Hf=function(a,b,c){if(Wb(this,b)){if(c){var d=this;setTimeout(function(){Xb(d,b);a&&a()},+c);return!1}Xb(this,b)}return!0};
h.kh=function(a,b){if("SR"==a)return kc(this,ma(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,mc(this,a,c[1]),!0):!1};h.lh=function(a){return Wb(this,a)?(Xb(this,a),!0):!1};function Wb(a,b){var c=a.b[b];return c?(mc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=oc&&(a.G=b==pc,a.I=b==qc),!0):!1}function Xb(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(mc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
h.Tf=function(a){a||this.f.A.V||(rc(this.f,this.ga),a=this.f,a.F.reset(),sc(a),this.b[tc]&&this.b[tc][1]&&uc(this.f))};h.Uf=function(){};h.Of=function(a){a||this.f.da()};h.Mf=function(a){if(!a&&!this.f.A.V)if(this.b[tc]&&this.b[tc][1])uc(this.f);else{if((a=this.D)&&!Eb(a,!0))Fb(a,!0),vc(a,0,null),Fb(a,!1);else try{var b=this.f.Cc(1);0<b&&(wc(this.f,b),xc(this.f,b,!0),yc(this.f,b))}catch(c){"number"!=typeof c&&Bb(this.f,c.stack||c.message)}this.stop();this.J&&H(this.J)}};
h.Nf=function(a){if(a&&!this.f.A.V)if(this.G&&zc(this),a=Ub(this,this.Ya),this.L==Tb)Ac(this.F,this.ga,a);else{var b=this.f,c=this.ga;b.qa++;b.F.ac(Bc(b,c,4),a);b.qa--}};h.Pf=function(a){a||this.f.A.V||(this.I&&zc(this),a=this.L==Tb?Cc(this.F,this.ga):Dc(this.f,this.ga),Ub(this,a))};h.Rf=function(a){a||this.f.A.V||jc(this,this.Ya)};h.Qf=function(a){a?(this.w=!0,gc(this,!0)):(this.w=!1,gc(this),kc(this,0))};h.Sf=function(a,b){this.Ya=a?this.Ya|1<<b:this.Ya&~(1<<b)};
function zc(a){var b=1140>=a.f.ka?8:16,c=65472<=a.ga&&a.ga<65472+b,b=c?1:2,c=c?15:a.F.I;a.b[oc]&&a.b[oc][1]||(b=-b);jc(a,a.ga&~c|a.ga+b&c)}function jc(a,b){a.ga=b&a.F.I;if(a.B!==a.ga){a.B=a.ga;b=a.B;for(var c=0;22>c;c++)Ec(a,"A"+c,b&1<<c)}}function Vb(a,b){a.g=b&65535;if(a.C!==a.g){a.C=a.g;b=a.C;for(var c=0;16>c;c++)Ec(a,"D"+c,b&1<<c)}return a.g}function Ec(a,b,c){a.i[b]=c;a.w||lc(a,b,c)}function kc(a,b){a.Ya=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.Ya&1<<b?1:0;hc(a);return!0}
h.stop=function(){jc(this,this.f.g[7])};h.Hd=function(a){this.ga=a};h.setData=function(a,b){b?this.Eb=a:this.g=a};h.Zf=function(a,b){return(b?this.Eb:this.Ya)&65535};h.rh=function(a){this.Eb=a};function ic(){for(var a=z(document,y,"panel"),b=0;b<a.length;b++){var c=a[b],d=ob(c),e=mb(d.id);e||(e=new Sb(d,!0));pb(e,c)}}var Tb=7,pc="DEP",tc="ENABLE",qc="EXAM",oc="STEP",Fc={},ec=(Fc[65400]=[null,null,Sb.prototype.Zf,Sb.prototype.rh,"CNSW"],Fc);Sa(ic);
function Gc(a,b,c){x.call(this,"Bus",a,16);this.f=b;this.D=c;this.U=+a.busWidth||16;this.M=1<<this.U;this.I=this.M-1;this.j=Hc;this.g=Math.log2(this.j);this.R=this.j>>2;this.i=this.j-1;this.G=this.M/this.j|0;this.S=this.G-1;this.Ra=[];this.oa=0;this.C=!1;this.N=[];this.yf=[Ic,Jc,Kc,Lc];this.b=this.u=[];this.B=this.L=this.w=this.O=this.P=0;a=new I(this);Xc(a,this.D);this.b=Array(this.G);this.u=Array(this.G);for(b=0;b<this.G;b++)this.b[b]=this.u[b]=a;this.B=this.M-Hc;Yc(this,this.B,Hc,Zc,this);this.P=
this.O=(this.B&this.I)>>>this.g;this.L=0;this.w=this.I;C(this)}p(Gc,x);function $c(a,b){if(b!=a.L){for(var c=0;c<a.G;c++)a.u[c]=a.b[c];a.L=0;a.w=a.I;b&&(a.L=b,b=1<<b,a.w=b-1,b-=Hc,a.P=(b&a.w)>>>a.g,a.u[a.P]=a.b[a.O])}}h=Gc.prototype;h.reset=function(){for(var a=0;a<this.N.length;a++)this.N[a]();$c(this,16)};h.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Da=function(a){return a?this.save():!0};h.save=function(){var a=new G(this);a.set(0,ad(this));return a.data()};
b){return function(){Wb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Xb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Wb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Xb(a,b)}}(this,b),!0):x.prototype.wa.call(this,a,b,c,d)}};h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;Yb(b,this,ec);fc(b,this.reset.bind(this));gc(this);hc(this)};
h.Da=function(a,b){if(!b)if(this.M&&ic(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};h.Ca=function(a){return a?this.save():!0};h.save=function(){var a=new G(this);a.set(0,[this.ga,this.Fb,this.Xa]);return a.data()};h.restore=function(a){if(a=a[0])jc(this,this.ga=a[0]),Ub(this,a[1]),kc(this,a[2]);return!0};h.hh=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}hc(this);return!0};function lc(a,b,c){if(a=a.H[b])a.style.backgroundColor=c?"#ff0000":"#000000"}
function gc(a,b){for(var c in a.i)lc(a,c,null!=b?b:a.i[c])}function mc(a,b,c){if(a=a.H[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function hc(a){for(var b in a.b)mc(a,b,a.b[b][1])}function nc(a,b,c,d){if(a.H[b]){var e=a.D&&a.D.W||8;c=c||0;c=8==e?u(c,d):v(c,d);a.H[b].textContent!=c&&(a.H[b].textContent=c)}}h.If=function(a,b,c){if(Wb(this,b)){if(c){var d=this;setTimeout(function(){Xb(d,b);a&&a()},+c);return!1}Xb(this,b)}return!0};
h.lh=function(a,b){if("SR"==a)return kc(this,ma(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,mc(this,a,c[1]),!0):!1};h.mh=function(a){return Wb(this,a)?(Xb(this,a),!0):!1};function Wb(a,b){var c=a.b[b];return c?(mc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=oc&&(a.G=b==pc,a.I=b==qc),!0):!1}function Xb(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(mc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
h.Uf=function(a){a||this.f.A.V||(rc(this.f,this.ga),a=this.f,a.F.reset(),sc(a),this.b[tc]&&this.b[tc][1]&&uc(this.f))};h.Vf=function(){};h.Pf=function(a){a||this.f.da()};h.Nf=function(a){if(!a&&!this.f.A.V)if(this.b[tc]&&this.b[tc][1])uc(this.f);else{if((a=this.D)&&!Eb(a,!0))Fb(a,!0),vc(a,0,null),Fb(a,!1);else try{var b=this.f.Dc(1);0<b&&(wc(this.f,b),xc(this.f,b,!0),yc(this.f,b))}catch(c){"number"!=typeof c&&Bb(this.f,c.stack||c.message)}this.stop();this.J&&H(this.J)}};
h.Of=function(a){if(a&&!this.f.A.V)if(this.G&&zc(this),a=Ub(this,this.Xa),this.L==Tb)Ac(this.F,this.ga,a);else{var b=this.f,c=this.ga;b.qa++;b.F.bc(Bc(b,c,4),a);b.qa--}};h.Qf=function(a){a||this.f.A.V||(this.I&&zc(this),a=this.L==Tb?Cc(this.F,this.ga):Dc(this.f,this.ga),Ub(this,a))};h.Sf=function(a){a||this.f.A.V||jc(this,this.Xa)};h.Rf=function(a){a?(this.w=!0,gc(this,!0)):(this.w=!1,gc(this),kc(this,0))};h.Tf=function(a,b){this.Xa=a?this.Xa|1<<b:this.Xa&~(1<<b)};
function zc(a){var b=1140>=a.f.ka?8:16,c=65472<=a.ga&&a.ga<65472+b,b=c?1:2,c=c?15:a.F.I;a.b[oc]&&a.b[oc][1]||(b=-b);jc(a,a.ga&~c|a.ga+b&c)}function jc(a,b){a.ga=b&a.F.I;if(a.B!==a.ga){a.B=a.ga;b=a.B;for(var c=0;22>c;c++)Ec(a,"A"+c,b&1<<c)}}function Vb(a,b){a.g=b&65535;if(a.C!==a.g){a.C=a.g;b=a.C;for(var c=0;16>c;c++)Ec(a,"D"+c,b&1<<c)}return a.g}function Ec(a,b,c){a.i[b]=c;a.w||lc(a,b,c)}function kc(a,b){a.Xa=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.Xa&1<<b?1:0;hc(a);return!0}
h.stop=function(){jc(this,this.f.g[7])};h.Id=function(a){this.ga=a};h.setData=function(a,b){b?this.Fb=a:this.g=a};h.$f=function(a,b){return(b?this.Fb:this.Xa)&65535};h.sh=function(a){this.Fb=a};function ic(){for(var a=z(document,y,"panel"),b=0;b<a.length;b++){var c=a[b],d=ob(c),e=mb(d.id);e||(e=new Sb(d,!0));pb(e,c)}}var Tb=7,pc="DEP",tc="ENABLE",qc="EXAM",oc="STEP",Fc={},ec=(Fc[65400]=[null,null,Sb.prototype.$f,Sb.prototype.sh,"CNSW"],Fc);Sa(ic);
function Gc(a,b,c){x.call(this,"Bus",a,16);this.f=b;this.D=c;this.U=+a.busWidth||16;this.M=1<<this.U;this.I=this.M-1;this.j=Hc;this.g=Math.log2(this.j);this.R=this.j>>2;this.i=this.j-1;this.G=this.M/this.j|0;this.S=this.G-1;this.Qa=[];this.oa=0;this.C=!1;this.N=[];this.zf=[Ic,Jc,Kc,Lc];this.b=this.u=[];this.B=this.L=this.w=this.O=this.P=0;a=new I(this);Xc(a,this.D);this.b=Array(this.G);this.u=Array(this.G);for(b=0;b<this.G;b++)this.b[b]=this.u[b]=a;this.B=this.M-Hc;Yc(this,this.B,Hc,Zc,this);this.P=
this.O=(this.B&this.I)>>>this.g;this.L=0;this.w=this.I;C(this)}p(Gc,x);function $c(a,b){if(b!=a.L){for(var c=0;c<a.G;c++)a.u[c]=a.b[c];a.L=0;a.w=a.I;b&&(a.L=b,b=1<<b,a.w=b-1,b-=Hc,a.P=(b&a.w)>>>a.g,a.u[a.P]=a.b[a.O])}}h=Gc.prototype;h.reset=function(){for(var a=0;a<this.N.length;a++)this.N[a]();$c(this,16)};h.Da=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Ca=function(a){return a?this.save():!0};h.save=function(){var a=new G(this);a.set(0,ad(this));return a.data()};
h.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&d.length<this.R){for(var e=0,f=Array(this.R),g=0;g<d.length-1;)for(var k=d[g++],l=d[g++];k--;)f[e++]=l;d=f}e=this.b[c];if(!e||!e.restore(d)){w("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Yc(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.g;0<g&&k<a.b.length;){var l=a.b[k],m=k*a.j,n=a.j-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.K)return l.Xb+=l.K-f,l.K=f,!0;if(f>=l.K+l.Xb){n=l.size-(f-m);n>g&&(n=g);l.Xb=f-l.K+n;f=m+a.j;g-=n;k++;continue}}return bd(cd,f,g)}f=new I(a,f,n,a.j,d,e);Xc(f,a.D,l);a.b[k++]=f;f=m+a.j;g-=n}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+dd[d]+" at "+u(b)),!0):bd(ed,b,c)}h.Ld=function(a){return this.u[(a&this.w)>>>this.g].Db(a&this.i,a)};
h.Bc=function(a){var b=a&this.i,c=(a&this.w)>>>this.g;return Lb||b!=this.i?this.u[c].pa(b,a):this.u[c++].Db(b,a)|this.u[c&this.S].Db(0,a+1)<<8};h.Md=function(a,b){this.u[(a&this.w)>>>this.g].Gb(a&this.i,b,a)};h.ac=function(a,b){var c=a&this.i,d=(a&this.w)>>>this.g;Lb||c!=this.i?this.u[d].Hb(c,b,a):(this.u[d++].Gb(c,b&255,a),this.u[d&this.S].Gb(0,b>>8&255,a+1))};function fd(a,b){return a.b[(b&a.I)>>>a.g]}
function Yc(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.g;0<g&&k<a.b.length;){var l=a.b[k],m=k*a.j,n=a.j-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.K)return l.Yb+=l.K-f,l.K=f,!0;if(f>=l.K+l.Yb){n=l.size-(f-m);n>g&&(n=g);l.Yb=f-l.K+n;f=m+a.j;g-=n;k++;continue}}return bd(cd,f,g)}f=new I(a,f,n,a.j,d,e);Xc(f,a.D,l);a.b[k++]=f;f=m+a.j;g-=n}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+dd[d]+" at "+u(b)),!0):bd(ed,b,c)}h.Md=function(a){return this.u[(a&this.w)>>>this.g].Eb(a&this.i,a)};
h.Cc=function(a){var b=a&this.i,c=(a&this.w)>>>this.g;return Lb||b!=this.i?this.u[c].pa(b,a):this.u[c++].Eb(b,a)|this.u[c&this.S].Eb(0,a+1)<<8};h.Nd=function(a,b){this.u[(a&this.w)>>>this.g].Hb(a&this.i,b,a)};h.bc=function(a,b){var c=a&this.i,d=(a&this.w)>>>this.g;Lb||c!=this.i?this.u[d].Ib(c,b,a):(this.u[d++].Hb(c,b&255,a),this.u[d&this.S].Hb(0,b>>8&255,a+1))};function fd(a,b){return a.b[(b&a.I)>>>a.g]}
function Cc(a,b){var c;a.C=!1;a.oa++;var d=b&a.i,e=fd(a,b);Lb||d!=a.i?c=e.B(d,b):c=e.J(d,b)|fd(a,b+1).J(0,b+1)<<8;a.oa--;return c}function gd(a,b,c){a.C=!1;a.oa++;fd(a,b).F(b&a.i,c&255,b);a.oa--}function Ac(a,b,c){a.C=!1;a.oa++;var d=b&a.i,e=fd(a,b);Lb||d!=a.i?e.C(d,c&65535,b):(e.F(d,c&255,b),fd(a,b+1).F(0,c>>8&255,b+1));a.oa--}
function ad(a){for(var b=0,c=[],d=0;d<a.G;d++){var e=a.b[d];if(e.gb||e.Ff){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[k++]=n-g;l[k++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}function hd(a){for(var b=id,c=0,d=0;d<a.b.length;d++){var e=a.b[d];e.type==b&&(c=e.K+e.Xb)}return c}
function jd(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var n=b&kd;if(void 0!==a.Ra[n])return w("I/O address already registered: "+v(b,8,!0)),!1;var q=l||"unknown";q&&0<=m&&(q+=m++);a.Ra[n]=[d,e,f,g,q,k||16,!1]}return!0}
function Yb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.f.ka)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var q=g[4],t=g[5]||1,r=0;r<t;r++,f+=2)if(q&&1<t&&(q=g[4]+r),!jd(a,f,f,k,l,m,n,g[7]||b.ja,q||b.Mb))return!1}}return!0}
function ad(a){for(var b=0,c=[],d=0;d<a.G;d++){var e=a.b[d];if(e.fb||e.Gf){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[k++]=n-g;l[k++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}function hd(a){for(var b=id,c=0,d=0;d<a.b.length;d++){var e=a.b[d];e.type==b&&(c=e.K+e.Yb)}return c}
function jd(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var n=b&kd;if(void 0!==a.Qa[n])return w("I/O address already registered: "+v(b,8,!0)),!1;var q=l||"unknown";q&&0<=m&&(q+=m++);a.Qa[n]=[d,e,f,g,q,k||16,!1]}return!0}
function Yb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.f.ka)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var q=g[4],t=g[5]||1,r=0;r<t;r++,f+=2)if(q&&1<t&&(q=g[4]+r),!jd(a,f,f,k,l,m,n,g[7]||b.ja,q||b.Nb))return!1}}return!0}
function fc(a,b){a.N.push(b)}h.Oa=function(a,b,c){this.C=!0;this.oa||(this.D&&E(this.D,4)&&F(this.D,"memory fault ("+c+") on "+K(this.D,a),!0,!0),b&&(this.f.P|=b),this.f.sa(4,0,a))};function ld(a){var b=a.C;a.C=!1;return b}function bd(a,b,c){w("Memory block error ("+a+": "+v(b)+","+v(c)+")");return!1}var Hc=8192,kd=Hc-1,cd=1,ed=2;
function Ic(a,b){var c=-1,d=this.controller,e=d.Ra[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Ra[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.f&&E(this.f,16|e[5])&&F(this.f,e[4]+".readByte("+K(this.f,b)+"): "+K(this.f,c),!0,!d.oa),c;d.Oa(b,16,3);c=255;this.f&&E(this.f,16)&&F(this.f,"warning: unconverted read access to byte @"+K(this.f,b)+": "+K(this.f,c),!0,!d.oa);return c}
function Jc(a,b,c){var d=!1,e=this.controller,f=e.Ra[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Ra[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d?this.f&&E(this.f,16|f[5])&&F(this.f,f[4]+".writeByte("+K(this.f,c)+","+K(this.f,b)+")",!0,!e.oa):(e.Oa(c,16,5),this.f&&E(this.f,16)&&F(this.f,"warning: unconverted write access to byte @"+K(this.f,c)+": "+K(this.f,
b),!0,!e.oa))}function Kc(a,b){var c=-1,d=this.controller;a=d.Ra[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return this.f&&E(this.f,16|a[5])&&F(this.f,a[4]+".readWord("+K(this.f,b)+"): "+K(this.f,c),!0,!d.oa),c;d.Oa(b,16,2);c=65535;this.f&&E(this.f,16)&&F(this.f,"warning: unconverted read access to word @"+K(this.f,b)+": "+K(this.f,c),!0,!d.oa);return c}
function Lc(a,b,c){var d=!1,e=this.controller;a=e.Ra[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d?this.f&&E(this.f,16|a[5])&&F(this.f,a[4]+".writeWord("+K(this.f,c)+","+K(this.f,b)+")",!0,!e.oa):(e.Oa(c,16,4),this.f&&E(this.f,16)&&F(this.f,"warning: unconverted write access to word @"+K(this.f,c)+": "+K(this.f,b),!0,!e.oa))}function L(a){x.call(this,"Device",a,256);this.b={hb:128,Id:-1}}p(L,x);h=L.prototype;
h.Ca=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.D=d;var e=this;this.b.Id=md(c,function(){e.b.hb|=128;e.b.hb&64&&nd(e.f,e.b.Sa);e.J&&H(e.J,1);od(e.f,e.b.Id,1E3/60)});this.b.Sa=pd(c,64,6,2097152);Yb(b,this,qd);fc(b,this.reset.bind(this));d&&rd(d,64,function(a){var b=e.f;sd(e,"KIPDR",b.B[0],0,a[0]);sd(e,"KDPDR",b.B[0],8,a[0]);sd(e,"KIPAR",b.M[0],0,a[0]);sd(e,"KDPAR",b.M[0],8,a[0],!0);sd(e,"SIPDR",b.B[1],0,a[0]);sd(e,"SDPDR",b.B[1],8,a[0]);sd(e,"SIPAR",b.M[1],0,a[0]);sd(e,"SDPAR",b.M[1],8,a[0],
!0);sd(e,"UIPDR",b.B[3],0,a[0]);sd(e,"UDPDR",b.B[3],8,a[0]);sd(e,"UIPAR",b.M[3],0,a[0]);sd(e,"UDPAR",b.M[3],8,a[0],!0);b.X&32&&sd(e,"UNIMAP",b.Ha,-1,a[0])});C(this)};function sd(a,b,c,d,e,f){a=a.D;if(!(e&&0>b.indexOf(e.toUpperCase()))){e=0;var g=8,k="",l=!1,m=8;0>d&&(e=22,g=c.length,d=0,l=!0,m=4);for(var n=0;n<g;n++)n%m||(k&&(k+="\n"),k+=b+(l?"["+qa(n,2)+"]":"")+":"),k+=" "+K(a,c[d+n],e);a.v(k+(f?"\n":""))}}h.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
h.Da=function(a){return a?this.save():!0};h.reset=function(){this.b.hb=128;od(this.f,this.b.Id,1E3/60,!0)};h.save=function(){var a=new G(this);a.set(0,[this.b.hb]);return a.data()};h.restore=function(a){a=ia(a[0]);this.b.hb=a.next().value;return!0};h.fg=function(){return this.b.hb};h.yh=function(a){this.b.hb=a&192;this.b.hb&64||td(this.f,this.b.Sa)};h.hg=function(){return ud(this.f)};h.Ah=function(a){vd(this.f,a&-129|this.f.S&128)};h.ig=function(){return wd(this.f)};h.jg=function(){return xd(this.f)};
h.kg=function(){return this.f.X};h.Bh=function(a){yd(this.f,a)};h.Wg=function(a){a=a>>1&63;var b=this.f.Ha[a>>1];return a&1?b>>16:b&65535};h.mi=function(a,b){b=b>>1&63;var c=b>>1;this.f.Ha[c]=b&1?this.f.Ha[c]&65535|(a&63)<<16:this.f.Ha[c]&-65536|a&65534};h.Pg=function(a){return this.f.B[1][a>>1&7]};h.fi=function(a,b){this.f.B[1][b>>1&7]=a&65295};h.Ng=function(a){return this.f.B[1][(a>>1&7)+8]};h.di=function(a,b){this.f.B[1][(b>>1&7)+8]=a&65295};h.Og=function(a){return this.f.M[1][a>>1&7]};
h.ei=function(a,b){b=b>>1&7;this.f.M[1][b]=a;this.f.B[1][b]&=65295};h.Mg=function(a){return this.f.M[1][(a>>1&7)+8]};h.ci=function(a,b){b=(b>>1&7)+8;this.f.M[1][b]=a;this.f.B[1][b]&=65295};h.eg=function(a){return this.f.B[0][a>>1&7]};h.xh=function(a,b){this.f.B[0][b>>1&7]=a&65295};h.cg=function(a){return this.f.B[0][(a>>1&7)+8]};h.vh=function(a,b){this.f.B[0][(b>>1&7)+8]=a&65295};h.dg=function(a){return this.f.M[0][a>>1&7]};h.wh=function(a,b){b=b>>1&7;this.f.M[0][b]=a;this.f.B[0][b]&=65295};
h.bg=function(a){return this.f.M[0][(a>>1&7)+8]};h.uh=function(a,b){b=(b>>1&7)+8;this.f.M[0][b]=a;this.f.B[0][b]&=65295};h.Vg=function(a){return this.f.B[3][a>>1&7]};h.li=function(a,b){this.f.B[3][b>>1&7]=a&65295};h.Tg=function(a){return this.f.B[3][(a>>1&7)+8]};h.ji=function(a,b){this.f.B[3][(b>>1&7)+8]=a&65295};h.Ug=function(a){return this.f.M[3][a>>1&7]};h.ki=function(a,b){b=b>>1&7;this.f.M[3][b]=a;this.f.B[3][b]&=65295};h.Sg=function(a){return this.f.M[3][(a>>1&7)+8]};
h.ii=function(a,b){b=(b>>1&7)+8;this.f.M[3][b]=a;this.f.B[3][b]&=65295};h.Vb=function(a){a&=7;return this.f.w&2048?this.f.ua[a]:this.f.g[a]};h.Zb=function(a,b){b&=7;this.f.w&2048?this.f.ua[b]=a:this.f.g[b]=a};h.rg=function(){return this.f.w&49152?this.f.Y[0]:this.f.g[6]};h.Ih=function(a){this.f.w&49152?this.f.Y[0]=a:this.f.g[6]=a};h.ug=function(){return this.f.g[7]};h.Lh=function(a){this.f.g[7]=a};h.Wb=function(a){a&=7;return this.f.w&2048?this.f.g[a]:this.f.ua[a]};
h.$b=function(a,b){b&=7;this.f.w&2048?this.f.g[b]=a:this.f.ua[b]=a};h.sg=function(){return 1==(this.f.w&49152)>>14?this.f.g[6]:this.f.Y[1]};h.Jh=function(a){1==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.Y[1]=a};h.tg=function(){return 3==(this.f.w&49152)>>14?this.f.g[6]:this.f.Y[3]};h.Kh=function(a){3==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.Y[3]=a};h.ag=function(a){return this.f.xc[a-65504>>1]};h.th=function(a,b){this.f.xc[b-65504>>1]=a};h.xe=function(a){return 65520==a?(hd(this.F)>>6)-1:0};
h.Ce=function(){};h.Rg=function(){return 1};h.hi=function(){};h.$f=function(){return this.f.P};h.sh=function(){this.f.P=0};h.gg=function(){return this.f.uc};h.zh=function(a,b){b&1||(a&=255);this.f.uc=a};h.lg=function(a,b){return b?0:this.f.ob};h.Ch=function(a){zd(this.f,a)};h.Qg=function(a,b){return b?0:this.f.za&65280};h.gi=function(a){this.f.za=a|255};h.qg=function(){return Ad(this.f)};h.Hh=function(a){Bd(this.f,a)};h.Be=function(a,b){E(this)&&F(this,"writeIgnored("+u(b)+"): "+u(a),!0,!0)};
var M={},qd=(M[61568]=[null,null,L.prototype.Wg,L.prototype.mi,"UNIMAP",64,1170],M[62592]=[null,null,L.prototype.Pg,L.prototype.fi,"SIPDR",8,1145,64],M[62608]=[null,null,L.prototype.Ng,L.prototype.di,"SDPDR",8,1145,64],M[62624]=[null,null,L.prototype.Og,L.prototype.ei,"SIPAR",8,1145,64],M[62640]=[null,null,L.prototype.Mg,L.prototype.ci,"SDPAR",8,1145,64],M[62656]=[null,null,L.prototype.eg,L.prototype.xh,"KIPDR",8,1140,64],M[62672]=[null,null,L.prototype.cg,L.prototype.vh,"KDPDR",8,1145,64],M[62688]=
[null,null,L.prototype.dg,L.prototype.wh,"KIPAR",8,1140,64],M[62704]=[null,null,L.prototype.bg,L.prototype.uh,"KDPAR",8,1145,64],M[62798]=[null,null,L.prototype.kg,L.prototype.Bh,"MMR3",1,1145,64],M[65382]=[null,null,L.prototype.fg,L.prototype.yh,"LKS"],M[65402]=[null,null,L.prototype.hg,L.prototype.Ah,"MMR0",1,1140,64],M[65404]=[null,null,L.prototype.ig,L.prototype.Be,"MMR1",1,1145,64],M[65406]=[null,null,L.prototype.jg,L.prototype.Be,"MMR2",1,1140,64],M[65408]=[null,null,L.prototype.Vg,L.prototype.li,
"UIPDR",8,1140,64],M[65424]=[null,null,L.prototype.Tg,L.prototype.ji,"UDPDR",8,1145,64],M[65440]=[null,null,L.prototype.Ug,L.prototype.ki,"UIPAR",8,1140,64],M[65456]=[null,null,L.prototype.Sg,L.prototype.ii,"UDPAR",8,1145,64],M[65472]=[null,null,L.prototype.Vb,L.prototype.Zb,"R0SET0"],M[65473]=[null,null,L.prototype.Vb,L.prototype.Zb,"R1SET0"],M[65474]=[null,null,L.prototype.Vb,L.prototype.Zb,"R2SET0"],M[65475]=[null,null,L.prototype.Vb,L.prototype.Zb,"R3SET0"],M[65476]=[null,null,L.prototype.Vb,
L.prototype.Zb,"R4SET0"],M[65477]=[null,null,L.prototype.Vb,L.prototype.Zb,"R5SET0"],M[65478]=[null,null,L.prototype.rg,L.prototype.Ih,"R6KERNEL"],M[65479]=[null,null,L.prototype.ug,L.prototype.Lh,"R7KERNEL"],M[65480]=[null,null,L.prototype.Wb,L.prototype.$b,"R0SET1",1,1145],M[65481]=[null,null,L.prototype.Wb,L.prototype.$b,"R1SET1",1,1145],M[65482]=[null,null,L.prototype.Wb,L.prototype.$b,"R2SET1",1,1145],M[65483]=[null,null,L.prototype.Wb,L.prototype.$b,"R3SET1",1,1145],M[65484]=[null,null,L.prototype.Wb,
L.prototype.$b,"R4SET1",1,1145],M[65485]=[null,null,L.prototype.Wb,L.prototype.$b,"R5SET1",1,1145],M[65486]=[null,null,L.prototype.sg,L.prototype.Jh,"R6SUPER",1,1145],M[65487]=[null,null,L.prototype.tg,L.prototype.Kh,"R6USER",1,1145],M[65504]=[null,null,L.prototype.ag,L.prototype.th,"CTRL",8,1170],M[65520]=[null,null,L.prototype.xe,L.prototype.Ce,"LSIZE",1,1170],M[65522]=[null,null,L.prototype.xe,L.prototype.Ce,"HSIZE",1,1170],M[65524]=[null,null,L.prototype.Rg,L.prototype.hi,"SYSID",1,1170],M[65526]=
[null,null,L.prototype.$f,L.prototype.sh,"ERR",1,1170],M[65528]=[null,null,L.prototype.gg,L.prototype.zh,"MBR",1,1170],M[65530]=[null,null,L.prototype.lg,L.prototype.Ch,"PIR"],M[65532]=[null,null,L.prototype.Qg,L.prototype.gi,"SLR"],M[65534]=[null,null,L.prototype.qg,L.prototype.Hh,"PSW"],M);
function Ic(a,b){var c=-1,d=this.controller,e=d.Qa[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Qa[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.f&&E(this.f,16|e[5])&&F(this.f,e[4]+".readByte("+K(this.f,b)+"): "+K(this.f,c),!0,!d.oa),c;d.Oa(b,16,3);c=255;this.f&&E(this.f,16)&&F(this.f,"warning: unconverted read access to byte @"+K(this.f,b)+": "+K(this.f,c),!0,!d.oa);return c}
function Jc(a,b,c){var d=!1,e=this.controller,f=e.Qa[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Qa[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d?this.f&&E(this.f,16|f[5])&&F(this.f,f[4]+".writeByte("+K(this.f,c)+","+K(this.f,b)+")",!0,!e.oa):(e.Oa(c,16,5),this.f&&E(this.f,16)&&F(this.f,"warning: unconverted write access to byte @"+K(this.f,c)+": "+K(this.f,
b),!0,!e.oa))}function Kc(a,b){var c=-1,d=this.controller;a=d.Qa[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return this.f&&E(this.f,16|a[5])&&F(this.f,a[4]+".readWord("+K(this.f,b)+"): "+K(this.f,c),!0,!d.oa),c;d.Oa(b,16,2);c=65535;this.f&&E(this.f,16)&&F(this.f,"warning: unconverted read access to word @"+K(this.f,b)+": "+K(this.f,c),!0,!d.oa);return c}
function Lc(a,b,c){var d=!1,e=this.controller;a=e.Qa[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d?this.f&&E(this.f,16|a[5])&&F(this.f,a[4]+".writeWord("+K(this.f,c)+","+K(this.f,b)+")",!0,!e.oa):(e.Oa(c,16,4),this.f&&E(this.f,16)&&F(this.f,"warning: unconverted write access to word @"+K(this.f,c)+": "+K(this.f,b),!0,!e.oa))}function L(a){x.call(this,"Device",a,256);this.b={gb:128,Jd:-1}}p(L,x);h=L.prototype;
h.Ba=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.D=d;var e=this;this.b.Jd=md(c,function(){e.b.gb|=128;e.b.gb&64&&nd(e.f,e.b.Ra);e.J&&H(e.J,1);od(e.f,e.b.Jd,1E3/60)});this.b.Ra=pd(c,64,6,2097152);Yb(b,this,qd);fc(b,this.reset.bind(this));d&&rd(d,64,function(a){var b=e.f;sd(e,"KIPDR",b.B[0],0,a[0]);sd(e,"KDPDR",b.B[0],8,a[0]);sd(e,"KIPAR",b.M[0],0,a[0]);sd(e,"KDPAR",b.M[0],8,a[0],!0);sd(e,"SIPDR",b.B[1],0,a[0]);sd(e,"SDPDR",b.B[1],8,a[0]);sd(e,"SIPAR",b.M[1],0,a[0]);sd(e,"SDPAR",b.M[1],8,a[0],
!0);sd(e,"UIPDR",b.B[3],0,a[0]);sd(e,"UDPDR",b.B[3],8,a[0]);sd(e,"UIPAR",b.M[3],0,a[0]);sd(e,"UDPAR",b.M[3],8,a[0],!0);b.X&32&&sd(e,"UNIMAP",b.Ha,-1,a[0])});C(this)};function sd(a,b,c,d,e,f){a=a.D;if(!(e&&0>b.indexOf(e.toUpperCase()))){e=0;var g=8,k="",l=!1,m=8;0>d&&(e=22,g=c.length,d=0,l=!0,m=4);for(var n=0;n<g;n++)n%m||(k&&(k+="\n"),k+=b+(l?"["+qa(n,2)+"]":"")+":"),k+=" "+K(a,c[d+n],e);a.v(k+(f?"\n":""))}}h.Da=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
h.Ca=function(a){return a?this.save():!0};h.reset=function(){this.b.gb=128;od(this.f,this.b.Jd,1E3/60,!0)};h.save=function(){var a=new G(this);a.set(0,[this.b.gb]);return a.data()};h.restore=function(a){a=ia(a[0]);this.b.gb=a.next().value;return!0};h.gg=function(){return this.b.gb};h.zh=function(a){this.b.gb=a&192;this.b.gb&64||td(this.f,this.b.Ra)};h.ig=function(){return ud(this.f)};h.Bh=function(a){vd(this.f,a&-129|this.f.S&128)};h.jg=function(){return wd(this.f)};h.kg=function(){return xd(this.f)};
h.lg=function(){return this.f.X};h.Ch=function(a){yd(this.f,a)};h.Xg=function(a){a=a>>1&63;var b=this.f.Ha[a>>1];return a&1?b>>16:b&65535};h.ni=function(a,b){b=b>>1&63;var c=b>>1;this.f.Ha[c]=b&1?this.f.Ha[c]&65535|(a&63)<<16:this.f.Ha[c]&-65536|a&65534};h.Qg=function(a){return this.f.B[1][a>>1&7]};h.gi=function(a,b){this.f.B[1][b>>1&7]=a&65295};h.Og=function(a){return this.f.B[1][(a>>1&7)+8]};h.ei=function(a,b){this.f.B[1][(b>>1&7)+8]=a&65295};h.Pg=function(a){return this.f.M[1][a>>1&7]};
h.fi=function(a,b){b=b>>1&7;this.f.M[1][b]=a;this.f.B[1][b]&=65295};h.Ng=function(a){return this.f.M[1][(a>>1&7)+8]};h.di=function(a,b){b=(b>>1&7)+8;this.f.M[1][b]=a;this.f.B[1][b]&=65295};h.fg=function(a){return this.f.B[0][a>>1&7]};h.yh=function(a,b){this.f.B[0][b>>1&7]=a&65295};h.dg=function(a){return this.f.B[0][(a>>1&7)+8]};h.wh=function(a,b){this.f.B[0][(b>>1&7)+8]=a&65295};h.eg=function(a){return this.f.M[0][a>>1&7]};h.xh=function(a,b){b=b>>1&7;this.f.M[0][b]=a;this.f.B[0][b]&=65295};
h.cg=function(a){return this.f.M[0][(a>>1&7)+8]};h.vh=function(a,b){b=(b>>1&7)+8;this.f.M[0][b]=a;this.f.B[0][b]&=65295};h.Wg=function(a){return this.f.B[3][a>>1&7]};h.mi=function(a,b){this.f.B[3][b>>1&7]=a&65295};h.Ug=function(a){return this.f.B[3][(a>>1&7)+8]};h.ki=function(a,b){this.f.B[3][(b>>1&7)+8]=a&65295};h.Vg=function(a){return this.f.M[3][a>>1&7]};h.li=function(a,b){b=b>>1&7;this.f.M[3][b]=a;this.f.B[3][b]&=65295};h.Tg=function(a){return this.f.M[3][(a>>1&7)+8]};
h.ji=function(a,b){b=(b>>1&7)+8;this.f.M[3][b]=a;this.f.B[3][b]&=65295};h.Wb=function(a){a&=7;return this.f.w&2048?this.f.ua[a]:this.f.g[a]};h.$b=function(a,b){b&=7;this.f.w&2048?this.f.ua[b]=a:this.f.g[b]=a};h.sg=function(){return this.f.w&49152?this.f.Y[0]:this.f.g[6]};h.Jh=function(a){this.f.w&49152?this.f.Y[0]=a:this.f.g[6]=a};h.vg=function(){return this.f.g[7]};h.Mh=function(a){this.f.g[7]=a};h.Xb=function(a){a&=7;return this.f.w&2048?this.f.g[a]:this.f.ua[a]};
h.ac=function(a,b){b&=7;this.f.w&2048?this.f.g[b]=a:this.f.ua[b]=a};h.tg=function(){return 1==(this.f.w&49152)>>14?this.f.g[6]:this.f.Y[1]};h.Kh=function(a){1==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.Y[1]=a};h.ug=function(){return 3==(this.f.w&49152)>>14?this.f.g[6]:this.f.Y[3]};h.Lh=function(a){3==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.Y[3]=a};h.bg=function(a){return this.f.yc[a-65504>>1]};h.uh=function(a,b){this.f.yc[b-65504>>1]=a};h.ye=function(a){return 65520==a?(hd(this.F)>>6)-1:0};
h.De=function(){};h.Sg=function(){return 1};h.ii=function(){};h.ag=function(){return this.f.P};h.th=function(){this.f.P=0};h.hg=function(){return this.f.vc};h.Ah=function(a,b){b&1||(a&=255);this.f.vc=a};h.mg=function(a,b){return b?0:this.f.ob};h.Dh=function(a){zd(this.f,a)};h.Rg=function(a,b){return b?0:this.f.Ga&65280};h.hi=function(a){this.f.Ga=a|255};h.rg=function(){return Ad(this.f)};h.Ih=function(a){Bd(this.f,a)};h.Ce=function(a,b){E(this)&&F(this,"writeIgnored("+u(b)+"): "+u(a),!0,!0)};
var M={},qd=(M[61568]=[null,null,L.prototype.Xg,L.prototype.ni,"UNIMAP",64,1170],M[62592]=[null,null,L.prototype.Qg,L.prototype.gi,"SIPDR",8,1145,64],M[62608]=[null,null,L.prototype.Og,L.prototype.ei,"SDPDR",8,1145,64],M[62624]=[null,null,L.prototype.Pg,L.prototype.fi,"SIPAR",8,1145,64],M[62640]=[null,null,L.prototype.Ng,L.prototype.di,"SDPAR",8,1145,64],M[62656]=[null,null,L.prototype.fg,L.prototype.yh,"KIPDR",8,1140,64],M[62672]=[null,null,L.prototype.dg,L.prototype.wh,"KDPDR",8,1145,64],M[62688]=
[null,null,L.prototype.eg,L.prototype.xh,"KIPAR",8,1140,64],M[62704]=[null,null,L.prototype.cg,L.prototype.vh,"KDPAR",8,1145,64],M[62798]=[null,null,L.prototype.lg,L.prototype.Ch,"MMR3",1,1145,64],M[65382]=[null,null,L.prototype.gg,L.prototype.zh,"LKS"],M[65402]=[null,null,L.prototype.ig,L.prototype.Bh,"MMR0",1,1140,64],M[65404]=[null,null,L.prototype.jg,L.prototype.Ce,"MMR1",1,1145,64],M[65406]=[null,null,L.prototype.kg,L.prototype.Ce,"MMR2",1,1140,64],M[65408]=[null,null,L.prototype.Wg,L.prototype.mi,
"UIPDR",8,1140,64],M[65424]=[null,null,L.prototype.Ug,L.prototype.ki,"UDPDR",8,1145,64],M[65440]=[null,null,L.prototype.Vg,L.prototype.li,"UIPAR",8,1140,64],M[65456]=[null,null,L.prototype.Tg,L.prototype.ji,"UDPAR",8,1145,64],M[65472]=[null,null,L.prototype.Wb,L.prototype.$b,"R0SET0"],M[65473]=[null,null,L.prototype.Wb,L.prototype.$b,"R1SET0"],M[65474]=[null,null,L.prototype.Wb,L.prototype.$b,"R2SET0"],M[65475]=[null,null,L.prototype.Wb,L.prototype.$b,"R3SET0"],M[65476]=[null,null,L.prototype.Wb,
L.prototype.$b,"R4SET0"],M[65477]=[null,null,L.prototype.Wb,L.prototype.$b,"R5SET0"],M[65478]=[null,null,L.prototype.sg,L.prototype.Jh,"R6KERNEL"],M[65479]=[null,null,L.prototype.vg,L.prototype.Mh,"R7KERNEL"],M[65480]=[null,null,L.prototype.Xb,L.prototype.ac,"R0SET1",1,1145],M[65481]=[null,null,L.prototype.Xb,L.prototype.ac,"R1SET1",1,1145],M[65482]=[null,null,L.prototype.Xb,L.prototype.ac,"R2SET1",1,1145],M[65483]=[null,null,L.prototype.Xb,L.prototype.ac,"R3SET1",1,1145],M[65484]=[null,null,L.prototype.Xb,
L.prototype.ac,"R4SET1",1,1145],M[65485]=[null,null,L.prototype.Xb,L.prototype.ac,"R5SET1",1,1145],M[65486]=[null,null,L.prototype.tg,L.prototype.Kh,"R6SUPER",1,1145],M[65487]=[null,null,L.prototype.ug,L.prototype.Lh,"R6USER",1,1145],M[65504]=[null,null,L.prototype.bg,L.prototype.uh,"CTRL",8,1170],M[65520]=[null,null,L.prototype.ye,L.prototype.De,"LSIZE",1,1170],M[65522]=[null,null,L.prototype.ye,L.prototype.De,"HSIZE",1,1170],M[65524]=[null,null,L.prototype.Sg,L.prototype.ii,"SYSID",1,1170],M[65526]=
[null,null,L.prototype.ag,L.prototype.th,"ERR",1,1170],M[65528]=[null,null,L.prototype.hg,L.prototype.Ah,"MBR",1,1170],M[65530]=[null,null,L.prototype.mg,L.prototype.Dh,"PIR"],M[65532]=[null,null,L.prototype.Rg,L.prototype.hi,"SLR"],M[65534]=[null,null,L.prototype.rg,L.prototype.Ih,"PSW"],M);
Sa(function(){for(var a=z(document,y,"device"),b=0;b<a.length;b++){var c,d=a[b];c=ob(d);switch(c.type){case "default":c=new L(c);pb(c,d);break;case "pc11":c=new Cd(c);pb(c,d);break;case "rl11":c=new Dd(c);pb(c,d);break;case "rk11":c=new N(c);pb(c,d);break;case "rx11":c=new Fd(c),pb(c,d)}}});
function I(a,b,c,d,e,f){this.D=a;this.id=Gd+=2;this.b=null;this.K=b;this.Xb=c;this.size=d||0;this.type=e||Hd;this.j=e==Id;this.f=this.controller=null;this.Db=this.J=this.Dd;this.pa=this.B=this.Ed;this.Gb=this.F=this.Yb;this.Hb=this.C=this.Wc;this.H=this.i=0;Xc(this);this.gb=this.Ff=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],Jd(this,f.yf);else if(Gb)this.u=new ArrayBuffer(this.size),this.w=new DataView(this.u,0,this.size),this.g=new Uint8Array(this.u,0,this.size),this.G=new Uint16Array(this.u,
function I(a,b,c,d,e,f){this.D=a;this.id=Gd+=2;this.b=null;this.K=b;this.Yb=c;this.size=d||0;this.type=e||Hd;this.j=e==Id;this.f=this.controller=null;this.Eb=this.J=this.Ed;this.pa=this.B=this.Fd;this.Hb=this.F=this.Zb;this.Ib=this.C=this.Xc;this.H=this.i=0;Xc(this);this.fb=this.Gf=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],Jd(this,f.zf);else if(Gb)this.u=new ArrayBuffer(this.size),this.w=new DataView(this.u,0,this.size),this.g=new Uint8Array(this.u,0,this.size),this.G=new Uint16Array(this.u,
0,this.size>>1),this.b=new Int32Array(this.u,0,this.size>>2),Jd(this,Kd?Ld:Md);else{a=this.b=Array(this.size>>2);for(f=0;f<a.length;f++)a[f]=0;Jd(this,Vd)}else Jd(this)}h=I.prototype;h.save=function(){var a,b;if(this.controller)a=null;else if(Gb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.w.getInt32(b<<2,!0);else a=this.b;return a};
h.restore=function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Gb)for(b=0;b<a.length;b++)this.w.setInt32(b<<2,a[b],!0);else this.b=a;return this.gb=!0}return!1};function Jd(a,b){b||(b=Wd);Xd(a,b,void 0);Yd(a,b,void 0)}function Xd(a,b,c){c&&a.H||(a.Db=b[0]||a.Dd,a.pa=b[2]||a.Ed);if(c||void 0===c)a.J=b[0]||a.Dd,a.B=b[2]||a.Ed}function Yd(a,b,c){c&&a.i||(a.Gb=!a.j&&b[1]||a.Yb,a.Hb=!a.j&&b[3]||a.Wc);if(c||void 0===c)a.F=b[1]||a.Yb,a.C=b[3]||a.Wc}
h.Bb=function(a,b){b?this.i++||Yd(this,Zd,!1):this.H++||Xd(this,Zd,!1)};function $d(a,b){b?--a.i||(a.Gb=a.j?a.Yb:a.F,a.Hb=a.j?a.Wc:a.C):--a.H||(a.Db=a.J,a.pa=a.B)}function Xc(a,b,c){a.f=b;a.H=a.i=0;c&&((a.H=c.H)&&Xd(a,Zd,!1),(a.i=c.i)&&Yd(a,Zd,!1))}h.Dd=function(a,b){this.f&&E(this.f,32)&&F(this.f,"attempt to read invalid address "+K(this.f,b),!0);this.D.Oa(b,32,2);return 255};
h.Yb=function(a,b,c){this.f&&E(this.f,32)&&F(this.f,"attempt to write "+K(this.f,b)+" to invalid addresses "+K(this.f,c),!0);this.D.Oa(c,32,4)};h.Ed=function(a,b){return this.Db(a++,b++)|this.Db(a,b)<<8};h.Wc=function(a,b,c){this.Gb(a++,b&255,c++);this.Gb(a,b>>8,c)};h.Yf=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};h.bh=function(a,b){Kb&&a&1&&this.D.Oa(b,64,2);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};
h.qh=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.gb=!0};h.ri=function(a,b,c){Kb&&a&1&&this.D.Oa(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.gb=!0};h.Wf=function(a,b){this.f&&null!=this.K&&ae(this.f,this.K+a);return this.J(a,b)};h.Yg=function(a,b){this.f&&null!=this.K&&ae(this.f,this.K+a,2);return this.B(a,b)};
h.oh=function(a,b,c){this.f&&null!=this.K&&be(this.f,this.K+a);this.j?this.Yb(0,b,c):this.F(a,b,c)};h.oi=function(a,b,c){this.f&&null!=this.K&&be(this.f,this.K+a,2);this.j?this.Yb(0,b,c):this.C(a,b,c)};h.Vf=function(a){return this.g[a]};h.Xf=function(a,b){a=this.g[a];this.f&&E(this.f,32)&&F(this.f,"Memory.readByte("+K(this.f,b)+"): "+K(this.f,a),!0);return a};h.Xg=function(a,b){Kb&&a&1&&this.D.Oa(b,64,2);return this.w.getUint16(a,!0)};
h.ah=function(a,b){Kb&&a&1&&this.D.Oa(b,64,2);a=!Lb&&a&1?this.g[a]|this.g[a+1]<<8:this.G[a>>1];this.f&&E(this.f,32)&&F(this.f,"Memory.readWord("+K(this.f,b)+"): "+K(this.f,a),!0);return a};h.nh=function(a,b){this.g[a]=b;this.gb=!0};h.ph=function(a,b,c){this.g[a]=b;this.gb=!0;this.f&&E(this.f,32)&&F(this.f,"Memory.writeByte("+K(this.f,c)+","+K(this.f,b)+")",!0)};h.ni=function(a,b,c){Kb&&a&1&&this.D.Oa(c,64,4);this.w.setUint16(a,b,!0);this.gb=!0};
h.pi=function(a,b,c){Kb&&a&1&&this.D.Oa(c,64,4);!Lb&&a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.G[a>>1]=b;this.gb=!0;this.f&&E(this.f,32)&&F(this.f,"Memory.writeWord("+K(this.f,c)+","+K(this.f,b)+")",!0)};var Hd=0,id=1,Id=2,Zc=4,dd=["NONE","RAM","ROM","VID","H/W"],Gd=0,Wd=[],Vd=[I.prototype.Yf,I.prototype.qh,I.prototype.bh,I.prototype.ri],Zd=[I.prototype.Wf,I.prototype.oh,I.prototype.Yg,I.prototype.oi];
if(Gb)var Md=[I.prototype.Vf,I.prototype.nh,I.prototype.Xg,I.prototype.ni],Ld=[I.prototype.Xf,I.prototype.ph,I.prototype.ah,I.prototype.pi];var ce;if(Gb){var de=new ArrayBuffer(2);(new DataView(de)).setUint16(0,256,!0);ce=256===(new Uint16Array(de))[0]}else ce=!1;var Kd=ce;
function ee(a,b){x.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.ad=0;this.Zc=b;this.mb=c;this.md=Math.round(this.Zc/1E4)/100;this.xb=this.md*this.mb;this.nd=this.qc=this.Ab=this.zc=0;this.A.V=this.A.Tc=!1;this.A.ra=a.autoStart;"string"==typeof this.A.ra&&(this.A.ra="true"==this.A.ra);this.A.Nb=!1;this.oc=this.Qb=0;this.pc=+a.csStart;this.Ob=+a.csInterval;this.Rb=+a.csStop;this.ha=[];this.Zd=this.hh.bind(this);this.nb=this.Ka=this.lb=this.b=this.ma=this.Ja=this.nc=this.kb=this.Sb=
this.od=this.wb=0;this.ta=null;C(this)}p(ee,x);h=ee.prototype;h.Ca=function(a,b,c,d){this.J=a;this.F=b;this.D=d;this.ta=a.i;for(a=0;a<fe.length;a++)(b=this.H[fe[a]])&&this.J.wa(null,fe[a],b);C(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.Ea=function(a,b){var c=ge(this.J,"autoStart");null!=c?this.A.ra="true"==c?!0:"false"==c?!1:!!c:null==this.A.ra&&(this.A.ra=!this.D&&void 0===this.H.run);if(!b){if(a){he(this);if(!this.restore(a))return!1;ie(this)}else this.reset();this.D?(a=this.D,b=this.A.ra,a.Ia=!0,a.v("Type ? for help with PDPjs Debugger commands"),je(a),b||ke(a),a.ya&&(b=a.ya,a.ya=null,le(a,b))):this.status("No debugger detected");this.A.ra||this.v("CPU will not be auto-started "+(this.ta?"(click Run to start)":"(type 'go' to start)"))}return!0};
h.Da=function(a){return a?this.save():!0};h.ra=function(){return this.A.V?!0:this.A.ra?(uc(this),!0):!1};h.qe=function(){return 0};function ie(a){void 0===a.pc&&(a.pc=0);void 0===a.Ob&&(a.Ob=-1);void 0===a.Rb&&(a.Rb=-1);a.A.Nb=0<=a.pc&&0<a.Ob;a.A.Nb&&(a.oc=0,a.Qb=a.pc-a.nb)}function yc(a,b){if(a.A.Nb){var c=!1;a.oc=a.oc+a.qe()|0;a.Qb-=b;0>=a.Qb&&(a.Qb+=a.Ob,c=!0);0<=a.Rb&&a.Rb<=me(a)&&(a.Ob=a.Rb=-1,ie(a),a.da(),c=!0);c&&a.v(me(a)+" cycles: checksum="+v(a.oc))}}
h.wa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.H[b]=c,!0;case "run":return this.H[b]=c,c.onclick=function(){var a;if(a=d.J)if(a=d.J,a.A.ca)a=!0;else{var b=null,c,k=ib(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.A.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.A.ca);c++);c==k.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Oc?" (waiting for notification)":""))+".");a=!1}a&&(d.A.V?d.da():uc(d))},!0;
case "speed":return this.H[b]=c,!0;case "setSpeed":return this.H[b]=c,c.onclick=function(){ne(d,d.mb<<1,!0)},c.textContent=this.xb.toFixed(2)+"Mhz",!0}return!1};function xc(a,b,c){a.nb+=b;c&&(a.lb=a.b=a.ma=0)}function oe(a,b){var c=1;b&&1<a.mb&&a.wb&&(c=a.wb/a.md);a.nd=Math.round(1E3/pe);a.qc=Math.floor(a.Zc/pe*c);b||(a.Ab=a.qc);a.zc=0}function me(a){return a.nb+a.Ka+a.lb-a.b}function he(a){a.wb=0;a.od=0;a.nb=a.Ka=a.lb=a.b=a.ma=0;ie(a);ne(a,1)}
function ne(a,b,c){var d=!1;if(void 0!==b){.8>a.wb/a.xb?b=1:d=!0;a.mb=b;b=a.md*a.mb;if(a.xb!=b){a.xb=b;b=a.xb.toFixed(2)+"Mhz";var e=a.H.setSpeed;e&&(e.textContent=b);a.v("target speed: "+b)}c&&a.J&&qe(a.J)}xc(a,a.Ka);a.Ka=0;a.Ja=gb();a.kb=0;oe(a);return d}function md(a,b){var c=a.ha.length;a.ha.push([-1,b]);return c}function od(a,b,c,d){0<=b&&b<a.ha.length&&(d||0>a.ha[b][0])&&(c=a.Zc*a.mb/1E3*c|0,a.A.V&&(c+=re(a)),a.ha[b][0]=c)}
h.restore=function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Gb)for(b=0;b<a.length;b++)this.w.setInt32(b<<2,a[b],!0);else this.b=a;return this.fb=!0}return!1};function Jd(a,b){b||(b=Wd);Xd(a,b,void 0);Yd(a,b,void 0)}function Xd(a,b,c){c&&a.H||(a.Eb=b[0]||a.Ed,a.pa=b[2]||a.Fd);if(c||void 0===c)a.J=b[0]||a.Ed,a.B=b[2]||a.Fd}function Yd(a,b,c){c&&a.i||(a.Hb=!a.j&&b[1]||a.Zb,a.Ib=!a.j&&b[3]||a.Xc);if(c||void 0===c)a.F=b[1]||a.Zb,a.C=b[3]||a.Xc}
h.Cb=function(a,b){b?this.i++||Yd(this,Zd,!1):this.H++||Xd(this,Zd,!1)};function $d(a,b){b?--a.i||(a.Hb=a.j?a.Zb:a.F,a.Ib=a.j?a.Xc:a.C):--a.H||(a.Eb=a.J,a.pa=a.B)}function Xc(a,b,c){a.f=b;a.H=a.i=0;c&&((a.H=c.H)&&Xd(a,Zd,!1),(a.i=c.i)&&Yd(a,Zd,!1))}h.Ed=function(a,b){this.f&&E(this.f,32)&&F(this.f,"attempt to read invalid address "+K(this.f,b),!0);this.D.Oa(b,32,2);return 255};
h.Zb=function(a,b,c){this.f&&E(this.f,32)&&F(this.f,"attempt to write "+K(this.f,b)+" to invalid addresses "+K(this.f,c),!0);this.D.Oa(c,32,4)};h.Fd=function(a,b){return this.Eb(a++,b++)|this.Eb(a,b)<<8};h.Xc=function(a,b,c){this.Hb(a++,b&255,c++);this.Hb(a,b>>8,c)};h.Zf=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};h.dh=function(a,b){Kb&&a&1&&this.D.Oa(b,64,2);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};
h.rh=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.fb=!0};h.si=function(a,b,c){Kb&&a&1&&this.D.Oa(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.fb=!0};h.Xf=function(a,b){this.f&&null!=this.K&&ae(this.f,this.K+a);return this.J(a,b)};h.Zg=function(a,b){this.f&&null!=this.K&&ae(this.f,this.K+a,2);return this.B(a,b)};
h.ph=function(a,b,c){this.f&&null!=this.K&&be(this.f,this.K+a);this.j?this.Zb(0,b,c):this.F(a,b,c)};h.pi=function(a,b,c){this.f&&null!=this.K&&be(this.f,this.K+a,2);this.j?this.Zb(0,b,c):this.C(a,b,c)};h.Wf=function(a){return this.g[a]};h.Yf=function(a,b){a=this.g[a];this.f&&E(this.f,32)&&F(this.f,"Memory.readByte("+K(this.f,b)+"): "+K(this.f,a),!0);return a};h.Yg=function(a,b){Kb&&a&1&&this.D.Oa(b,64,2);return this.w.getUint16(a,!0)};
h.bh=function(a,b){Kb&&a&1&&this.D.Oa(b,64,2);a=!Lb&&a&1?this.g[a]|this.g[a+1]<<8:this.G[a>>1];this.f&&E(this.f,32)&&F(this.f,"Memory.readWord("+K(this.f,b)+"): "+K(this.f,a),!0);return a};h.oh=function(a,b){this.g[a]=b;this.fb=!0};h.qh=function(a,b,c){this.g[a]=b;this.fb=!0;this.f&&E(this.f,32)&&F(this.f,"Memory.writeByte("+K(this.f,c)+","+K(this.f,b)+")",!0)};h.oi=function(a,b,c){Kb&&a&1&&this.D.Oa(c,64,4);this.w.setUint16(a,b,!0);this.fb=!0};
h.ri=function(a,b,c){Kb&&a&1&&this.D.Oa(c,64,4);!Lb&&a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.G[a>>1]=b;this.fb=!0;this.f&&E(this.f,32)&&F(this.f,"Memory.writeWord("+K(this.f,c)+","+K(this.f,b)+")",!0)};var Hd=0,id=1,Id=2,Zc=4,dd=["NONE","RAM","ROM","VID","H/W"],Gd=0,Wd=[],Vd=[I.prototype.Zf,I.prototype.rh,I.prototype.dh,I.prototype.si],Zd=[I.prototype.Xf,I.prototype.ph,I.prototype.Zg,I.prototype.pi];
if(Gb)var Md=[I.prototype.Wf,I.prototype.oh,I.prototype.Yg,I.prototype.oi],Ld=[I.prototype.Yf,I.prototype.qh,I.prototype.bh,I.prototype.ri];var ce;if(Gb){var de=new ArrayBuffer(2);(new DataView(de)).setUint16(0,256,!0);ce=256===(new Uint16Array(de))[0]}else ce=!1;var Kd=ce;
function ee(a,b){x.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.bd=0;this.$c=b;this.mb=c;this.nd=Math.round(this.$c/1E4)/100;this.yb=this.nd*this.mb;this.od=this.rc=this.Bb=this.Ac=0;this.A.V=this.A.Uc=!1;this.A.ra=a.autoStart;"string"==typeof this.A.ra&&(this.A.ra="true"==this.A.ra);this.A.Ob=!1;this.pc=this.Rb=0;this.qc=+a.csStart;this.Pb=+a.csInterval;this.Sb=+a.csStop;this.ha=[];this.$d=this.ih.bind(this);this.nb=this.Ka=this.lb=this.b=this.ma=this.Ja=this.oc=this.kb=this.Tb=
this.pd=this.xb=0;this.ta=null;C(this)}p(ee,x);h=ee.prototype;h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.D=d;this.ta=a.i;for(a=0;a<fe.length;a++)(b=this.H[fe[a]])&&this.J.wa(null,fe[a],b);C(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.Da=function(a,b){var c=ge(this.J,"autoStart");null!=c?this.A.ra="true"==c?!0:"false"==c?!1:!!c:null==this.A.ra&&(this.A.ra=!this.D&&void 0===this.H.run);if(!b){if(a){he(this);if(!this.restore(a))return!1;ie(this)}else this.reset();this.D?(a=this.D,b=this.A.ra,a.Ha=!0,a.v("Type ? for help with PDPjs Debugger commands"),je(a),b||ke(a),a.ya&&(b=a.ya,a.ya=null,le(a,b))):this.status("No debugger detected");this.A.ra||this.v("CPU will not be auto-started "+(this.ta?"(click Run to start)":"(type 'go' to start)"))}return!0};
h.Ca=function(a){return a?this.save():!0};h.ra=function(){return this.A.V?!0:this.A.ra?(uc(this),!0):!1};h.re=function(){return 0};function ie(a){void 0===a.qc&&(a.qc=0);void 0===a.Pb&&(a.Pb=-1);void 0===a.Sb&&(a.Sb=-1);a.A.Ob=0<=a.qc&&0<a.Pb;a.A.Ob&&(a.pc=0,a.Rb=a.qc-a.nb)}function yc(a,b){if(a.A.Ob){var c=!1;a.pc=a.pc+a.re()|0;a.Rb-=b;0>=a.Rb&&(a.Rb+=a.Pb,c=!0);0<=a.Sb&&a.Sb<=me(a)&&(a.Pb=a.Sb=-1,ie(a),a.da(),c=!0);c&&a.v(me(a)+" cycles: checksum="+v(a.pc))}}
h.wa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.H[b]=c,!0;case "run":return this.H[b]=c,c.onclick=function(){var a;if(a=d.J)if(a=d.J,a.A.ca)a=!0;else{var b=null,c,k=ib(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.A.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.A.ca);c++);c==k.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Pc?" (waiting for notification)":""))+".");a=!1}a&&(d.A.V?d.da():uc(d))},!0;
case "speed":return this.H[b]=c,!0;case "setSpeed":return this.H[b]=c,c.onclick=function(){ne(d,d.mb<<1,!0)},c.textContent=this.yb.toFixed(2)+"Mhz",!0}return!1};function xc(a,b,c){a.nb+=b;c&&(a.lb=a.b=a.ma=0)}function oe(a,b){var c=1;b&&1<a.mb&&a.xb&&(c=a.xb/a.nd);a.od=Math.round(1E3/pe);a.rc=Math.floor(a.$c/pe*c);b||(a.Bb=a.rc);a.Ac=0}function me(a){return a.nb+a.Ka+a.lb-a.b}function he(a){a.xb=0;a.pd=0;a.nb=a.Ka=a.lb=a.b=a.ma=0;ie(a);ne(a,1)}
function ne(a,b,c){var d=!1;if(void 0!==b){.8>a.xb/a.yb?b=1:d=!0;a.mb=b;b=a.nd*a.mb;if(a.yb!=b){a.yb=b;b=a.yb.toFixed(2)+"Mhz";var e=a.H.setSpeed;e&&(e.textContent=b);a.v("target speed: "+b)}c&&a.J&&qe(a.J)}xc(a,a.Ka);a.Ka=0;a.Ja=gb();a.kb=0;oe(a);return d}function md(a,b){var c=a.ha.length;a.ha.push([-1,b]);return c}function od(a,b,c,d){0<=b&&b<a.ha.length&&(d||0>a.ha[b][0])&&(c=a.$c*a.mb/1E3*c|0,a.A.V&&(c+=re(a)),a.ha[b][0]=c)}
function se(a,b){for(var c=a.ha.length-1;0<=c;c--){var d=a.ha[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function te(a){for(var b=[],c=0;c<a.ha.length;c++)b.push(a.ha[c][0]);return b}function wc(a,b){for(var c=a.ha.length-1;0<=c;c--){var d=a.ha[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function re(a,b){var c=a.lb-=a.b;a.b=a.ma=0;b&&(a.lb=0);return c}
h.hh=function(){if(this.A.V){this.zc>=this.Zc&&oe(this,!0);this.Sb=0;this.nc=gb();if(this.kb){var a=this.nc-this.kb;a>this.nd&&(this.Ja+=a,this.Ja>this.nc&&(this.Ja=this.nc))}try{do{var b=se(this,this.A.Nb?1:this.qc);try{this.Cc(b)}catch(e){if("number"!=typeof e)throw e;}b=re(this,!0);this.Sb+=b;this.Ka+=b;yc(this,b);wc(this,b);this.Ab-=b;if(0>=this.Ab){this.Ab+=this.qc;++this.od>=ue&&(this.J&&H(this.J,void 0),this.od=0);break}}while(this.A.V)}catch(e){this.da();this.J&&this.J.stop(gb(),me(this));
Bb(this,e.stack||e.message);return}if(this.A.V){a=setTimeout;b=this.Zd;this.kb=gb();var c=this.nd;this.Sb&&(c=Math.round(c*this.Sb/this.qc));var c=c-(this.kb-this.nc),d=this.kb-this.Ja;d&&(this.wb=Math.round(this.Ka/(10*d))/100,864E5<=d&&(this.nb=0,ne(this)));if(0>c||this.wb<this.xb)-1E3>c&&(this.Ja-=c),c=0;this.zc+=this.Sb;this.kb+=c;a(b,c)}}};
function uc(a,b){if(!Cb(a))if(a.A.V)a.v(a.toString()+" busy");else{ne(a);a.A.V=!0;a.A.Tc=!0;var c=a.H.run;c&&(c.textContent="Halt");a.J&&(b&&qe(a.J,!0),a.J.start(a.Ja,me(a)));a.D||a.status("Started");setTimeout(a.Zd,0)}}h.Cc=function(){return 0};h.da=function(a){var b=!1;if(this.A.V){re(this);xc(this,this.Ka);this.Ka=0;this.A.V=!1;if(b=this.H.run)b.textContent="Run";this.J&&this.J.stop(gb(),me(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var pe=30,ue=15,fe=["power","reset"];
function ve(a){var b=+a.model||1170;ee.call(this,a,6666667);this.ka=b;this.Xc=+a.addrReset||0;this.La=this.w=this.N=this.C=this.G=this.L=this.I=0;this.g=this.ua=this.Y=[];this.M=this.B=this.Ha=this.xc=[];this.Qa=this.O=this.Td=this.yb=this.zb=this.rb=this.jb=this.P=this.uc=this.ob=this.za=this.S=this.vc=this.wc=this.X=this.i=0;this.Wd=[4,2,0,1];this.Ac=0;this.Yd=255;1120>=this.ka?(this.be=we.bind(this),this.Lb=this.Cf,this.Ac=8,this.Yd=-1,this.fe=255,this.ee=0):(this.be=xe.bind(this),this.Lb=this.Df,
this.fe=~(1792|(1140>=this.ka?2048:0))&65535,this.ee=1140<this.ka?2048:0);this.Ec=this.Dc=this.qa=0;this.R=null;this.mc=[];this.jc=this.cd=this.pe;this.kc=this.dd=this.te;this.Uc=this.jd=this.ze;this.lc=this.ld=this.Ae;this.Ia=this.ub=this.sc=this.tc=0;this.ya=this.se;this.pa=this.Fd;this.Hb=this.Jd;this.u=this.j=this.Yc=this.U=this.Z=0;this.A.complete=!1}p(ve,ee);h=ve.prototype;
h.Ca=function(a,b,c,d){ee.prototype.Ca.call(this,a,b,c,d);this.cd=b.Ld.bind(b);this.dd=b.Bc.bind(b);this.jd=b.Md.bind(b);this.ld=b.ac.bind(b)};h.Ea=function(a,b){for(var c=192,d=0;d<this.mc.length;d++){var e=this.mc[d];0>e.Fb&&(e.Fb=c,c+=4)}return ee.prototype.Ea.call(this,a,b)};
h.reset=function(){this.status("Model "+this.ka);this.A.V&&this.da();this.C=65536;this.G=32768;this.L=65535;this.I=32768;this.w=15;this.g=[0,0,0,0,0,0,0,this.Xc,-1,-2,-3,-4,-5,-6,-7,-8];this.ua=[0,0,0,0,0,0];this.Y=[0,0,0,0];this.M=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.B=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,
65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Ha=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.xc=[0,0,0,0,0,0,0,0];this.N=0;this.La=-1;this.u=this.j=this.Yc=this.U=this.Z=this.i=this.uc=0;sc(this);he(this);this.A.error=!1;ee.prototype.reset.call(this)};function sc(a){a.S=0;a.vc=0;a.wc=0;a.X=0;a.P=0;a.ob=0;a.za=255;a.yb=0;a.zb=0;a.rb=0;a.jb=262143;a.Qa=a.g[7];a.O=0;a.R=null;a.F&&(ye(a),a.Td=hd(a.F))}
function ye(a){a.jc=a.cd;a.kc=a.dd;a.Uc=a.jd;a.lc=a.ld;a.sc&&(a.jc=a.pe,a.kc=a.te);a.tc&&(a.Uc=a.ze,a.lc=a.Ae);a.yb?(a.Ia=65536,a.ub=a.X&16?4186112:253952,a.ya=a.se,a.pa=a.sc?a.$g:a.Fd,a.Hb=a.tc?a.ti:a.Jd,$c(a.F,a.X&16?22:18)):(a.Ia=0,a.ub=57344,a.ya=a.Gf,a.pa=a.sc?a.Zg:a.ye,a.Hb=a.tc?a.si:a.De,$c(a.F,16))}function ud(a){var b=a.S;b&57344||(b=b&-3199|a.zb<<5|a.rb<<1);return b}
function vd(a,b){b&=-3073;if(a.S!=b){b&57344&&!(a.S&57344)&&(a.vc=a.O>>16&65535,a.wc=a.O&65535);a.S=b;a.zb=(b&96)>>5;a.rb=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.yb!=c&&(a.yb=c,ye(a))}}function wd(a){a.S&57344||(a.vc=a.O>>16&65535);a=a.vc;a&65280&&(a=(a<<8|a>>8)&65535);return a}function xd(a){a.S&57344||(a.wc=a.O&65535);return a.wc}function yd(a,b){1170>a.ka&&(b&=-49);a.X!=b&&(a.X=b,a.jb=b&16?4194303:262143,ye(a))}
function ze(a,b,c,d){a.Xc=b;rc(a,b);Bd(a,0);a.F.reset();sc(a);if(c){a.g[0]=d||0;for(b=1;5>=b;b++)a.g[b]=0;a.g[6]=1024;a.A.ca?a.A.V||uc(a):a.A.ra=!0}else a.D&&a.A.ca?a.da()||a.J.A.reset||(je(a.D),H(a.J,-1)):!1===c&&a.da();!a.A.V&&a.ta&&a.ta.stop()}h.qe=function(){return 0};
h.save=function(){var a=new G(this);a.set(0,[this.g,this.ua,this.Y,this.M,this.B,this.Ha,this.xc,this.P,this.uc,this.ob,this.za,this.zb,this.rb,this.Qa,this.i,this.O,this.La,this.Dc,this.Ec,this.Xc]);a.set(1,[Ad(this),ud(this),wd(this),xd(this),this.X]);a.set(2,[this.nb,this.mb,this.A.ra]);a.set(3,Ae(this));a.set(4,te(this));return a.data()};
h.restore=function(a){var b=ia(a[0]);this.g=b.next().value;this.ua=b.next().value;this.Y=b.next().value;this.M=b.next().value;this.B=b.next().value;this.Ha=b.next().value;this.xc=b.next().value;this.P=b.next().value;this.uc=b.next().value;this.ob=b.next().value;this.za=b.next().value;this.zb=b.next().value;this.rb=b.next().value;this.Qa=b.next().value;this.i=b.next().value;this.O=b.next().value;this.La=b.next().value;this.Dc=b.next().value;this.Ec=b.next().value;this.Xc=b.next().value;b=a[1];Bd(this,
b[0]);vd(this,b[1]);this.vc=b[2];this.wc=b[3];yd(this,b[4]);b=a[2];this.nb=b[0];ne(this,b[1]);this.A.ra=b[2];for(var b=a[3],c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.mc.length;d++){var e=this.mc[d];if(e.Fb===b[c]){d=e;break a}}d=null}d&&(d.next=this.R,this.R=d)}a=a[4];for(b=0;b<this.ha.length&&b<a.length;b++)this.ha[b][0]=a[b];return!0};function Be(a){return a.C&65536?1:0}function Ce(a){return a.G&32768?2:0}function De(a){return a.L&65535?0:4}function Ee(a){return a.I&32768?8:0}
function Fe(a,b){var c=a.g[7];a.g[7]=c+b&65535;return c}function Ge(a,b,c){c&&(rc(a,a.g[7]+(b<<24>>23)),a.b-=2);a.b-=3}function rc(a,b){a.g[7]=b&65535}function pd(a,b,c,d){b={Fb:b,pb:c,message:d||0,name:Qb[b],next:null};a.mc.push(b);return b}function He(a,b){var c=a.R;if(c==b)a.R=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.R&&(a.i|=1)}
function nd(a,b){if(b){if(b!=a.R){var c=a.R;if(!c||c.pb<=b.pb)b.next=c,a.R=b;else{do{var d=c.next;if(!d||d.pb<=b.pb){b.next=d;c.next=b;break}c=d}while(c)}}a.i|=1;b.message&&E(a,b.message|8)&&F(a,"setIRQ(vector="+u(b.Fb)+",priority="+b.pb+")",!0,!0)}}function td(a,b){b&&(He(a,b),b.message&&E(a,b.message|8)&&F(a,"clearIRQ(vector="+u(b.Fb)+",priority="+b.pb+")",!0,!0))}function Ae(a){var b=[];for(a=a.R;a;)b.push(a.Fb),a=a.next;return b}
function Ie(a){return a.i&64?(a.sa(168,64,-6),!0):a.i&32?(a.sa(4,32,-5),!0):a.i&16?(a.sa(12,16,-7),!0):!1}function Ad(a){return a.w=a.w&63728|Ee(a)|De(a)|Ce(a)|Be(a)}function Bd(a,b){b&=a.fe;a.I=b<<12;a.L=~b&4;a.G=b<<14;a.C=b<<16;if((b^a.w)&a.ee)for(var c=a.ua.length;0<=--c;){var d=a.g[c];a.g[c]=a.ua[c];a.ua[c]=d}a.N=b>>14&3;c=a.w>>14&3;a.N!=c&&(a.Y[c]=a.g[6],a.g[6]=a.Y[a.N]);a.w=b;a.i&=-3;a.i|=a.R?2:1}function zd(a,b){if(b&=65024){var c=b>>9;do b+=34;while(c>>=1);a.i|=1}a.ob=b}
h.Fa=function(a){this.I=this.L=a;this.G=0};h.qb=function(a,b){this.I=this.L=this.C=a;this.G=b||0};function Je(a,b){a.I=a.L=a.C=b;a.G=a.I^a.C>>1}function Ke(a,b,c,d){a.I=a.L=a.C=b;a.G=(c^d)&(d^b)}
h.sa=function(a,b,c){if(!this.qa){0>this.La?this.La=Ad(this):this.N||(c=-4);-4==c&&(this.i&256&&(c=-1),this.i|=256,this.P|=4,this.g[6]=a=4);if(-1!=c){this.O=a|4143316992;this.N=0;var d=this.pa(a|this.Ia),e=this.pa(a+2&65535|this.Ia);Bd(this,e&-12289|this.La>>2&12288);Le(this,this.La);Le(this,this.g[7]);rc(this,d)}this.b-=5;this.i&=~(b|19);this.i|=129;this.La=-1;this.Dc=c;this.Ec=a;-1==c&&this.da();if(-4<=c)throw a;}};
h.ih=function(){if(this.A.V){this.Ac>=this.$c&&oe(this,!0);this.Tb=0;this.oc=gb();if(this.kb){var a=this.oc-this.kb;a>this.od&&(this.Ja+=a,this.Ja>this.oc&&(this.Ja=this.oc))}try{do{var b=se(this,this.A.Ob?1:this.rc);try{this.Dc(b)}catch(e){if("number"!=typeof e)throw e;}b=re(this,!0);this.Tb+=b;this.Ka+=b;yc(this,b);wc(this,b);this.Bb-=b;if(0>=this.Bb){this.Bb+=this.rc;++this.pd>=ue&&(this.J&&H(this.J,void 0),this.pd=0);break}}while(this.A.V)}catch(e){this.da();this.J&&this.J.stop(gb(),me(this));
Bb(this,e.stack||e.message);return}if(this.A.V){a=setTimeout;b=this.$d;this.kb=gb();var c=this.od;this.Tb&&(c=Math.round(c*this.Tb/this.rc));var c=c-(this.kb-this.oc),d=this.kb-this.Ja;d&&(this.xb=Math.round(this.Ka/(10*d))/100,864E5<=d&&(this.nb=0,ne(this)));if(0>c||this.xb<this.yb)-1E3>c&&(this.Ja-=c),c=0;this.Ac+=this.Tb;this.kb+=c;a(b,c)}}};
function uc(a,b){if(!Cb(a))if(a.A.V)a.v(a.toString()+" busy");else{ne(a);a.A.V=!0;a.A.Uc=!0;var c=a.H.run;c&&(c.textContent="Halt");a.J&&(b&&qe(a.J,!0),a.J.start(a.Ja,me(a)));a.D||a.status("Started");setTimeout(a.$d,0)}}h.Dc=function(){return 0};h.da=function(a){var b=!1;if(this.A.V){re(this);xc(this,this.Ka);this.Ka=0;this.A.V=!1;if(b=this.H.run)b.textContent="Run";this.J&&this.J.stop(gb(),me(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var pe=30,ue=15,fe=["power","reset"];
function ve(a){var b=+a.model||1170;ee.call(this,a,6666667);this.ka=b;this.Yc=+a.addrReset||0;this.La=this.w=this.N=this.C=this.G=this.L=this.I=0;this.g=this.ua=this.Y=[];this.M=this.B=this.Ha=this.yc=[];this.ib=this.O=this.Ud=this.zb=this.Ab=this.sb=this.jb=this.P=this.vc=this.ob=this.Ga=this.S=this.wc=this.xc=this.X=this.i=0;this.Xd=[4,2,0,1];this.Bc=0;this.Zd=255;1120>=this.ka?(this.ce=we.bind(this),this.Mb=this.Df,this.Bc=8,this.Zd=-1,this.ge=255,this.fe=0):(this.ce=xe.bind(this),this.Mb=this.Ef,
this.ge=~(1792|(1140>=this.ka?2048:0))&65535,this.fe=1140<this.ka?2048:0);this.Fc=this.Ec=this.qa=0;this.R=null;this.nc=[];this.kc=this.dd=this.qe;this.lc=this.ed=this.ue;this.Vc=this.kd=this.Ae;this.mc=this.md=this.Be;this.Ia=this.vb=this.tc=this.uc=0;this.ya=this.te;this.pa=this.Gd;this.Ib=this.Kd;this.u=this.j=this.Zc=this.U=this.Z=0;this.A.complete=!1}p(ve,ee);h=ve.prototype;
h.Ba=function(a,b,c,d){ee.prototype.Ba.call(this,a,b,c,d);this.dd=b.Md.bind(b);this.ed=b.Cc.bind(b);this.kd=b.Nd.bind(b);this.md=b.bc.bind(b)};h.Da=function(a,b){for(var c=192,d=0;d<this.nc.length;d++){var e=this.nc[d];0>e.Gb&&(e.Gb=c,c+=4)}return ee.prototype.Da.call(this,a,b)};
h.reset=function(){this.status("Model "+this.ka);this.A.V&&this.da();this.C=65536;this.G=32768;this.L=65535;this.I=32768;this.w=15;this.g=[0,0,0,0,0,0,0,this.Yc,-1,-2,-3,-4,-5,-6,-7,-8];this.ua=[0,0,0,0,0,0];this.Y=[0,0,0,0];this.M=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.B=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,
65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Ha=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.yc=[0,0,0,0,0,0,0,0];this.N=0;this.La=-1;this.u=this.j=this.Zc=this.U=this.Z=this.i=this.vc=0;sc(this);he(this);this.A.error=!1;ee.prototype.reset.call(this)};function sc(a){a.S=0;a.wc=0;a.xc=0;a.X=0;a.P=0;a.ob=0;a.Ga=255;a.zb=0;a.Ab=0;a.sb=0;a.jb=262143;a.ib=a.g[7];a.O=0;a.R=null;a.F&&(ye(a),a.Ud=hd(a.F))}
function ye(a){a.kc=a.dd;a.lc=a.ed;a.Vc=a.kd;a.mc=a.md;a.tc&&(a.kc=a.qe,a.lc=a.ue);a.uc&&(a.Vc=a.Ae,a.mc=a.Be);a.zb?(a.Ia=65536,a.vb=a.X&16?4186112:253952,a.ya=a.te,a.pa=a.tc?a.ah:a.Gd,a.Ib=a.uc?a.ui:a.Kd,$c(a.F,a.X&16?22:18)):(a.Ia=0,a.vb=57344,a.ya=a.Hf,a.pa=a.tc?a.$g:a.ze,a.Ib=a.uc?a.ti:a.Ee,$c(a.F,16))}function ud(a){var b=a.S;b&57344||(b=b&-3199|a.Ab<<5|a.sb<<1);return b}
function vd(a,b){b&=-3073;if(a.S!=b){b&57344&&!(a.S&57344)&&(a.wc=a.O>>16&65535,a.xc=a.O&65535);a.S=b;a.Ab=(b&96)>>5;a.sb=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.zb!=c&&(a.zb=c,ye(a))}}function wd(a){a.S&57344||(a.wc=a.O>>16&65535);a=a.wc;a&65280&&(a=(a<<8|a>>8)&65535);return a}function xd(a){a.S&57344||(a.xc=a.O&65535);return a.xc}function yd(a,b){1170>a.ka&&(b&=-49);a.X!=b&&(a.X=b,a.jb=b&16?4194303:262143,ye(a))}
function ze(a,b,c,d){a.Yc=b;rc(a,b);Bd(a,0);a.F.reset();sc(a);if(c){a.g[0]=d||0;for(b=1;5>=b;b++)a.g[b]=0;a.g[6]=1024;a.A.ca?a.A.V||uc(a):a.A.ra=!0}else a.D&&a.A.ca?a.da()||a.J.A.reset||(je(a.D),H(a.J,-1)):!1===c&&a.da();!a.A.V&&a.ta&&a.ta.stop()}h.re=function(){return 0};
h.save=function(){var a=new G(this);a.set(0,[this.g,this.ua,this.Y,this.M,this.B,this.Ha,this.yc,this.P,this.vc,this.ob,this.Ga,this.Ab,this.sb,this.ib,this.i,this.O,this.La,this.Ec,this.Fc,this.Yc]);a.set(1,[Ad(this),ud(this),wd(this),xd(this),this.X]);a.set(2,[this.nb,this.mb,this.A.ra]);a.set(3,Ae(this));a.set(4,te(this));return a.data()};
h.restore=function(a){var b=ia(a[0]);this.g=b.next().value;this.ua=b.next().value;this.Y=b.next().value;this.M=b.next().value;this.B=b.next().value;this.Ha=b.next().value;this.yc=b.next().value;this.P=b.next().value;this.vc=b.next().value;this.ob=b.next().value;this.Ga=b.next().value;this.Ab=b.next().value;this.sb=b.next().value;this.ib=b.next().value;this.i=b.next().value;this.O=b.next().value;this.La=b.next().value;this.Ec=b.next().value;this.Fc=b.next().value;this.Yc=b.next().value;b=a[1];Bd(this,
b[0]);vd(this,b[1]);this.wc=b[2];this.xc=b[3];yd(this,b[4]);b=a[2];this.nb=b[0];ne(this,b[1]);this.A.ra=b[2];for(var b=a[3],c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.nc.length;d++){var e=this.nc[d];if(e.Gb===b[c]){d=e;break a}}d=null}d&&(d.next=this.R,this.R=d)}a=a[4];for(b=0;b<this.ha.length&&b<a.length;b++)this.ha[b][0]=a[b];return!0};function Be(a){return a.C&65536?1:0}function Ce(a){return a.G&32768?2:0}function De(a){return a.L&65535?0:4}function Ee(a){return a.I&32768?8:0}
function Fe(a,b){var c=a.g[7];a.g[7]=c+b&65535;return c}function Ge(a,b,c){c&&(rc(a,a.g[7]+(b<<24>>23)),a.b-=2);a.b-=3}function rc(a,b){a.g[7]=b&65535}function pd(a,b,c,d){b={Gb:b,pb:c,message:d||0,name:Qb[b],next:null};a.nc.push(b);return b}function He(a,b){var c=a.R;if(c==b)a.R=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.R&&(a.i|=1)}
function nd(a,b){if(b){if(b!=a.R){var c=a.R;if(!c||c.pb<=b.pb)b.next=c,a.R=b;else{do{var d=c.next;if(!d||d.pb<=b.pb){b.next=d;c.next=b;break}c=d}while(c)}}a.i|=1;b.message&&E(a,b.message|8)&&F(a,"setIRQ(vector="+u(b.Gb)+",priority="+b.pb+")",!0,!0)}}function td(a,b){b&&(He(a,b),b.message&&E(a,b.message|8)&&F(a,"clearIRQ(vector="+u(b.Gb)+",priority="+b.pb+")",!0,!0))}function Ae(a){var b=[];for(a=a.R;a;)b.push(a.Gb),a=a.next;return b}
function Ie(a){return a.i&64?(a.sa(168,64,-6),!0):a.i&32?(a.sa(4,32,-5),!0):a.i&16?(a.sa(12,16,-7),!0):!1}function Ad(a){return a.w=a.w&63728|Ee(a)|De(a)|Ce(a)|Be(a)}function Bd(a,b){b&=a.ge;a.I=b<<12;a.L=~b&4;a.G=b<<14;a.C=b<<16;if((b^a.w)&a.fe)for(var c=a.ua.length;0<=--c;){var d=a.g[c];a.g[c]=a.ua[c];a.ua[c]=d}a.N=b>>14&3;c=a.w>>14&3;a.N!=c&&(a.Y[c]=a.g[6],a.g[6]=a.Y[a.N]);a.w=b;a.i&=-3;a.i|=a.R?2:1}function zd(a,b){if(b&=65024){var c=b>>9;do b+=34;while(c>>=1);a.i|=1}a.ob=b}
h.Ea=function(a){this.I=this.L=a;this.G=0};h.rb=function(a,b){this.I=this.L=this.C=a;this.G=b||0};function Je(a,b){a.I=a.L=a.C=b;a.G=a.I^a.C>>1}function Ke(a,b,c,d){a.I=a.L=a.C=b;a.G=(c^d)&(d^b)}
h.sa=function(a,b,c){if(!this.qa){0>this.La?this.La=Ad(this):this.N||(c=-4);-4==c&&(this.i&256&&(c=-1),this.i|=256,this.P|=4,this.g[6]=a=4);if(-1!=c){this.O=a|4143316992;this.N=0;var d=this.pa(a|this.Ia),e=this.pa(a+2&65535|this.Ia);Bd(this,e&-12289|this.La>>2&12288);Le(this,this.La);Le(this,this.g[7]);rc(this,d)}this.b-=5;this.i&=~(b|19);this.i|=129;this.La=-1;this.Ec=c;this.Fc=a;-1==c&&this.da();if(-4<=c)throw a;}};
function Me(a){var b=Ne(a),c=Ne(a);a.w&49152&&(c=c&-225|a.w&63712);rc(a,b);Bd(a,c);a.i&=-17}function Oe(a,b){var c=b>>13&31;31>c&&(b=a.X&32?a.Ha[c]+(b&8191)&4194303:b&-3932161);return b}
function Pe(a,b,c){var d=[];if(c){c=Oe(a,b);var e=b>>13&31;d.push(c);d.push(e);a.X&32&&(d.push(a.Ha[e]),d.push(b&8191))}else if(a.yb){var e=a.N<<1,f=b>>13;7<f&&(e|=1);a.X&a.Wd[a.N]||(f&=7);b&=8191;var g=a.M[a.N][f]<<6;c=g+b&a.jb;3932160<=c&&(c=Oe(a,c));d.push(c);d.push(b);d.push(e);d.push(f&7);d.push(g);d.push(a.jb)}else c=b&65535,57344<=c&&(c|=a.ub),d.push(c);return d}
function Bc(a,b,c){var d,e,f;if(!(c&a.yb))return f=b&65535,57344<=f&&(f|=a.ub),f;d=b>>13;a.X&a.Wd[a.N]||(d&=7);e=a.B[a.N][d];f=(a.M[a.N][d]<<6)+(b&8191)&a.jb;3932160<=f&&(f=Oe(a,f));if(a.qa)return f;f>=a.Td&&f<a.ub?(a.P|=32,a.sa(4,0,f)):f&1&&!(c&1)&&(a.P|=64,a.sa(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.B[a.N][d]=e;if(f!=(4194170&a.jb)||a.N)a.zb=a.N,a.rb=d;g&&(g&57344&&(0<=a.La&&(g|=128),a.S&57344||(g|=a.S&4096|a.zb<<5|a.rb<<1,vd(a,a.S&-61695|g&61694)),a.sa(168,64,-2)),a.S&61440||!(f<(4191360&a.jb)||f>(4194239&a.jb))||(a.S|=4096,a.S&512&&(a.i|=64)));return f}function Ne(a){var b=a.pa(a.g[6]|a.Ia);a.g[6]=a.g[6]+2&65535;return b}function Le(a,b){var c=a.g[6]-2&65535;a.g[6]=c;a.O=a.O&65535|(a.O&-65536)<<8|16121856;a.i&256||a.Lb(4,-2,c);a.Hb(c,b)}
function Qe(a,b,c,d){var e,f,g=d&8?0:a.Ia;switch(b){case 0:return a.sa(4,0,-3),0;case 1:return 6==c&&a.Lb(d,0,a.g[6]),a.b-=3,7==c?a.g[c]:a.g[c]|g;case 2:f=2;e=a.g[c];6==c&&a.Lb(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.g[c];7!=c&&(e|=g);e=a.pa(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.g[c]+f&65535;6==c&&a.Lb(d,f,e);7!=c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.g[c]-2&65535;7!=c&&(e|=g);e=a.pa(e)|g;a.b-=8;break;case 6:return e=a.pa(Fe(a,2)),e=e+a.g[c]&65535,6==c&&a.Lb(d,
0,e),a.b-=6,e|g;case 7:return e=a.pa(Fe(a,2)),e=e+a.g[c]&65535,e=a.pa(e|a.Ia),a.b-=10,e|g}a.g[c]=a.g[c]+f&65535;a.O=a.O&65535|(a.O&-65536)<<8|(f<<3&248|c)<<16;return e}h.Cf=function(a,b,c){!this.N&&0>=b&&c<=this.za&&(this.i|=32)};h.Df=function(a,b,c){this.N||(65534<=c&&(c|=-65536),a&4&&c<=this.za&&(c<=this.za-32?this.sa(4,0,-4):(this.P|=8,this.i|=32)))};h.pe=function(a){this.D&&ae(this.D,a,1);return this.cd(a)};h.te=function(a){this.D&&ae(this.D,a,2);return this.dd(a)};
h.ze=function(a,b){this.D&&be(this.D,a,1);this.jd(a,b)};h.Ae=function(a,b){this.D&&be(this.D,a,2);this.ld(a,b)};function Dc(a,b){a.qa++;b=a.F.Bc(Bc(a,b,2));a.qa--;return b}function Re(a,b){(b?--a.tc:--a.sc)||ye(a)}h.Gf=function(a,b,c){return Qe(this,a,b,c)};h.se=function(a,b,c){return Bc(this,Qe(this,a,b,c),c)};h.ye=function(a){return this.F.Bc(this.Qa=a)};h.Zg=function(a){this.D&&ae(this.D,a,2);return this.ye(a)};h.Fd=function(a){return this.F.Bc(this.Qa=Bc(this,a,2))};
h.$g=function(a){this.D&&ae(this.D,a,2);return this.Fd(a)};h.De=function(a,b){this.F.ac(this.Qa=a,b)};h.si=function(a,b){this.D&&be(this.D,a,2);this.De(a,b)};h.Jd=function(a,b){this.F.ac(this.Qa=Bc(this,a,4),b)};h.ti=function(a,b){this.D&&be(this.D,a,2);this.Jd(a,b)};function Se(a,b,c){var d=a.j=b&7;(b=a.u=(b&56)>>3)?(d=Qe(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.N=a.w>>12&3,c=a.pa(d|c&a.Ia),a.N=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.g[d]:a.Y[a.w>>12&3];return c}
function Te(a,b,c,d){a.O=a.O&65535|1441792;var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=Qe(a,b,e,4),c&65536||(e&=65535),a.N=a.w>>12&3,e=Bc(a,e|c&65536,4),a.N=a.w>>14&3,a.lc(e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.g[e]=d:a.Y[a.w>>12&3]=d}function Ue(a,b){b>>=6;var c=a.Z=b&7;return(b=a.U=(b&56)>>3)?a.jc(a.ya(b,c,3)):a.g[c+a.Ac]&a.Yd}function Ve(a,b){var c;b>>=6;var d=a.Z=b&7;(b=a.U=(b&56)>>3)?c=a.kc(a.ya(b,d,2)):c=a.g[d+a.Ac];return c}function We(a,b){var c=a.j=b&7;b=a.u=(b&56)>>3;return Qe(a,b,c,8)}
function Xe(a,b){var c=a.j=b&7;return(b=a.u=(b&56)>>3)?a.jc(a.ya(b,c,3)):a.g[c]&255}function Ye(a,b){var c,d=a.j=b&7;(b=a.u=(b&56)>>3)?c=a.kc(a.ya(b,d,2)):c=a.g[d];return c}function Ze(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.Yc=a.ya(b,e,7),c=0>c?a.g[-c-1]&255:c,a.Uc(e,d.call(a,c,a.jc(e))),e&1&&a.b--):(b=a.g[e],c=0>c?a.g[-c-1]&255:c,a.g[e]=b&65280|d.call(a,c,b&255))}
function P(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.ya(b,e,6),a.lc(e,d.call(a,0>c?a.g[-c-1]:c,a.kc(e)))):a.g[e]=d.call(a,0>c?a.g[-c-1]:c,a.g[e])}function $e(a,b,c,d,e){var f=a.j=b&7;(b=a.u=(b&56)>>3)?(d=a.ya(b,f,5),e.call(a,(c=0>c?a.g[-c-1]&255:c)<<8),a.Uc(d,c),d&1&&a.b--):(c?(c=0>c?a.g[-c-1]&255:c,a.g[f]=a.g[f]&~d|c<<24>>24&d):a.g[f]&=~d,e.call(a,c<<8))}
function af(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.ya(b,e,4),d.call(a,c=0>c?a.g[-c-1]:c),a.lc(e,c)):(a.g[e]=c=0>c?a.g[-c-1]:c,d.call(a,c))}
h.Cc=function(a){this.A.complete=!0;var b=this.D?bf(this.D)?1:this.A.Tc?-1:0:0,c=a?this.A.Tc?0:1:-1;this.A.Tc=!1;this.lb=this.b=a;this.i=this.i&-5|(b?4:0);do{if(this.i){if(this.i&4){if(cf(this.D,this.g[7],c)){this.da();break}++b||(this.i&=-5);c||c++}if(a=this.i&11)if(a=!1,this.i&2){var d=160,e=(this.ob&224)>>5,f=this.R&&this.R.pb>e?this.R:null;f&&(d=f.Fb,e=f.pb);e>(this.w&224)>>5?(this.i&8&&(Fe(this,2),this.i&=-9),this.sa(d,0,-10),e=!0):e=!1;e&&(f&&He(this,f),a=!0);this.R||this.ob||(this.i&=-3)}else this.i&
1&&this.i++;if(a){if(this.i&4&&cf(this.D,this.g[7],c)){this.da();break}if(0>c)break}if(this.i&112&&Ie(this)){if(this.i&4&&cf(this.D,this.g[7],c)){this.da();break}if(0>c)break}}this.i=this.i&15|this.w&16;a=this.O=this.g[7];f=this.pa(a);this.g[7]=a+2&65535;this.be(f)}while(0<this.b);return this.A.complete?this.lb-this.b:!1===this.A.complete?-1:0};Sa(function(){for(var a=z(document,y,"cpu"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new ve(d);pb(d,c)}});
function df(a,b){var c=b+a;this.I=this.L=this.C=c;this.G=(a^c)&(b^c);return c&65535}function ef(a,b){var c=b+a,d=c<<8;this.I=this.L=this.C=d;this.G=(a<<8^d)&(b<<8^d);return c&255}function ff(a,b){a=b<<1;Je(this,a);return a&65535}function Cf(a,b){a=b<<1;Je(this,a<<8);return a&255}function Df(a,b){a=b&32768|b>>1|b<<16;Je(this,a);return a&65535}function Ef(a,b){a=b&128|b>>1|b<<8;Je(this,a<<8);return a&255}function Ff(a,b){a=b&~a;this.Fa(a);return a}function Gf(a,b){a=b&~a;this.Fa(a<<8);return a}
function Hf(a,b){a|=b;this.Fa(a);return a}function If(a,b){a|=b;this.Fa(a<<8);return a}function Jf(a,b){a=~b|65536;this.qb(a);return a&65535}function Kf(a,b){a=~b|256;this.qb(a<<8);return a&255}function Lf(a,b){this.I=this.L=a=b-a;this.G=b&(b^a);return a&65535}function Mf(a,b){a=b-a;var c=a<<8;b<<=8;this.I=this.L=c;this.G=b&(b^c);return a&255}function Nf(a,b){this.I=this.L=a=b+a;this.G=a&(b^a);return a&65535}function Of(a,b){a=b+a;var c=a<<8;this.I=this.L=c;this.G=c&(b<<8^c);return a&255}
function Pf(a,b){a=-b;this.qb(a,a&b&32768);return a&65535}function Qf(a,b){a=-b;this.qb(a<<8,(a&b&128)<<8);return a&255}function Rf(a,b){a=b<<1|this.C>>16&1;Je(this,a);return a&65535}function Sf(a,b){a=b<<1|this.C>>16&1;Je(this,a<<8);return a&255}function Tf(a,b){a=(this.C&65536|b)>>1|b<<16;Je(this,a);return a&65535}function Uf(a,b){a=((this.C&65536)>>8|b)>>1|b<<8;Je(this,a<<8);return a&255}function Vf(a,b){var c=b-a;Ke(this,c,a,b);return c&65535}
function Wf(a,b){var c=b-a;Ke(this,c<<8,a<<8,b<<8);return c&255}function Xf(a,b){this.I=this.L=b&65280;this.G=this.C=0;return(b<<8|b>>8)&65535}function Yf(a,b){a^=b;this.Fa(a);return a&65535}function Zf(a){P(this,a,Ve(this,a),df);this.b-=this.u?9+(this.Z&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}
function Pe(a,b,c){var d=[];if(c){c=Oe(a,b);var e=b>>13&31;d.push(c);d.push(e);a.X&32&&(d.push(a.Ha[e]),d.push(b&8191))}else if(a.zb){var e=a.N<<1,f=b>>13;7<f&&(e|=1);a.X&a.Xd[a.N]||(f&=7);b&=8191;var g=a.M[a.N][f]<<6;c=g+b&a.jb;3932160<=c&&(c=Oe(a,c));d.push(c);d.push(b);d.push(e);d.push(f&7);d.push(g);d.push(a.jb)}else c=b&65535,57344<=c&&(c|=a.vb),d.push(c);return d}
function Bc(a,b,c){var d,e,f;if(!(c&a.zb))return f=b&65535,57344<=f&&(f|=a.vb),f;d=b>>13;a.X&a.Xd[a.N]||(d&=7);e=a.B[a.N][d];f=(a.M[a.N][d]<<6)+(b&8191)&a.jb;3932160<=f&&(f=Oe(a,f));if(a.qa)return f;f>=a.Ud&&f<a.vb?(a.P|=32,a.sa(4,0,f)):f&1&&!(c&1)&&(a.P|=64,a.sa(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.B[a.N][d]=e;if(f!=(4194170&a.jb)||a.N)a.Ab=a.N,a.sb=d;g&&(g&57344&&(0<=a.La&&(g|=128),a.S&57344||(g|=a.S&4096|a.Ab<<5|a.sb<<1,vd(a,a.S&-61695|g&61694)),a.sa(168,64,-2)),a.S&61440||!(f<(4191360&a.jb)||f>(4194239&a.jb))||(a.S|=4096,a.S&512&&(a.i|=64)));return f}function Ne(a){var b=a.pa(a.g[6]|a.Ia);a.g[6]=a.g[6]+2&65535;return b}function Le(a,b){var c=a.g[6]-2&65535;a.g[6]=c;a.O=a.O&65535|(a.O&-65536)<<8|16121856;a.i&256||a.Mb(4,-2,c);a.Ib(c,b)}
function Qe(a,b,c,d){var e,f,g=d&8?0:a.Ia;switch(b){case 0:return a.sa(4,0,-3),0;case 1:return 6==c&&a.Mb(d,0,a.g[6]),a.b-=3,7==c?a.g[c]:a.g[c]|g;case 2:f=2;e=a.g[c];6==c&&a.Mb(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.g[c];7!=c&&(e|=g);e=a.pa(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.g[c]+f&65535;6==c&&a.Mb(d,f,e);7!=c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.g[c]-2&65535;7!=c&&(e|=g);e=a.pa(e)|g;a.b-=8;break;case 6:return e=a.pa(Fe(a,2)),e=e+a.g[c]&65535,6==c&&a.Mb(d,
0,e),a.b-=6,e|g;case 7:return e=a.pa(Fe(a,2)),e=e+a.g[c]&65535,e=a.pa(e|a.Ia),a.b-=10,e|g}a.g[c]=a.g[c]+f&65535;a.O=a.O&65535|(a.O&-65536)<<8|(f<<3&248|c)<<16;return e}h.Df=function(a,b,c){!this.N&&0>=b&&c<=this.Ga&&(this.i|=32)};h.Ef=function(a,b,c){this.N||(65534<=c&&(c|=-65536),a&4&&c<=this.Ga&&(c<=this.Ga-32?this.sa(4,0,-4):(this.P|=8,this.i|=32)))};h.qe=function(a){this.D&&ae(this.D,a,1);return this.dd(a)};h.ue=function(a){this.D&&ae(this.D,a,2);return this.ed(a)};
h.Ae=function(a,b){this.D&&be(this.D,a,1);this.kd(a,b)};h.Be=function(a,b){this.D&&be(this.D,a,2);this.md(a,b)};function Dc(a,b){a.qa++;b=a.F.Cc(Bc(a,b,2));a.qa--;return b}function Re(a,b){(b?--a.uc:--a.tc)||ye(a)}h.Hf=function(a,b,c){return Qe(this,a,b,c)};h.te=function(a,b,c){return Bc(this,Qe(this,a,b,c),c)};h.ze=function(a){return this.F.Cc(this.ib=a)};h.$g=function(a){this.D&&ae(this.D,a,2);return this.ze(a)};h.Gd=function(a){return this.F.Cc(this.ib=Bc(this,a,2))};
h.ah=function(a){this.D&&ae(this.D,a,2);return this.Gd(a)};h.Ee=function(a,b){this.F.bc(this.ib=a,b)};h.ti=function(a,b){this.D&&be(this.D,a,2);this.Ee(a,b)};h.Kd=function(a,b){this.F.bc(this.ib=Bc(this,a,4),b)};h.ui=function(a,b){this.D&&be(this.D,a,2);this.Kd(a,b)};function Se(a,b,c){var d=a.j=b&7;(b=a.u=(b&56)>>3)?(d=Qe(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.N=a.w>>12&3,c=a.pa(d|c&a.Ia),a.N=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.g[d]:a.Y[a.w>>12&3];return c}
function Te(a,b,c,d){a.O=a.O&65535|1441792;var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=Qe(a,b,e,4),c&65536||(e&=65535),a.N=a.w>>12&3,e=Bc(a,e|c&65536,4),a.N=a.w>>14&3,a.mc(e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.g[e]=d:a.Y[a.w>>12&3]=d}function Ue(a,b){b>>=6;var c=a.Z=b&7;return(b=a.U=(b&56)>>3)?a.kc(a.ya(b,c,3)):a.g[c+a.Bc]&a.Zd}function Ve(a,b){var c;b>>=6;var d=a.Z=b&7;(b=a.U=(b&56)>>3)?c=a.lc(a.ya(b,d,2)):c=a.g[d+a.Bc];return c}function We(a,b){var c=a.j=b&7;b=a.u=(b&56)>>3;return Qe(a,b,c,8)}
function Xe(a,b){var c=a.j=b&7;return(b=a.u=(b&56)>>3)?a.kc(a.ya(b,c,3)):a.g[c]&255}function Ye(a,b){var c,d=a.j=b&7;(b=a.u=(b&56)>>3)?c=a.lc(a.ya(b,d,2)):c=a.g[d];return c}function Ze(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.Zc=a.ya(b,e,7),c=0>c?a.g[-c-1]&255:c,a.Vc(e,d.call(a,c,a.kc(e))),e&1&&a.b--):(b=a.g[e],c=0>c?a.g[-c-1]&255:c,a.g[e]=b&65280|d.call(a,c,b&255))}
function P(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.ya(b,e,6),a.mc(e,d.call(a,0>c?a.g[-c-1]:c,a.lc(e)))):a.g[e]=d.call(a,0>c?a.g[-c-1]:c,a.g[e])}function $e(a,b,c,d,e){var f=a.j=b&7;(b=a.u=(b&56)>>3)?(d=a.ya(b,f,5),e.call(a,(c=0>c?a.g[-c-1]&255:c)<<8),a.Vc(d,c),d&1&&a.b--):(c?(c=0>c?a.g[-c-1]&255:c,a.g[f]=a.g[f]&~d|c<<24>>24&d):a.g[f]&=~d,e.call(a,c<<8))}
function af(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.ya(b,e,4),d.call(a,c=0>c?a.g[-c-1]:c),a.mc(e,c)):(a.g[e]=c=0>c?a.g[-c-1]:c,d.call(a,c))}
h.Dc=function(a){this.A.complete=!0;var b=this.D?bf(this.D)?1:this.A.Uc?-1:0:0,c=a?this.A.Uc?0:1:-1;this.A.Uc=!1;this.lb=this.b=a;this.i=this.i&-5|(b?4:0);do{if(this.i){if(this.i&4){if(cf(this.D,this.g[7],c)){this.da();break}++b||(this.i&=-5);c||c++}if(a=this.i&11)if(a=!1,this.i&2){var d=160,e=(this.ob&224)>>5,f=this.R&&this.R.pb>e?this.R:null;f&&(d=f.Gb,e=f.pb);e>(this.w&224)>>5?(this.i&8&&(Fe(this,2),this.i&=-9),this.sa(d,0,-10),e=!0):e=!1;e&&(f&&He(this,f),a=!0);this.R||this.ob||(this.i&=-3)}else this.i&
1&&this.i++;if(a){if(this.i&4&&cf(this.D,this.g[7],c)){this.da();break}if(0>c)break}if(this.i&112&&Ie(this)){if(this.i&4&&cf(this.D,this.g[7],c)){this.da();break}if(0>c)break}}this.i=this.i&15|this.w&16;a=this.O=this.g[7];f=this.pa(a);this.g[7]=a+2&65535;this.ce(f)}while(0<this.b);return this.A.complete?this.lb-this.b:!1===this.A.complete?-1:0};Sa(function(){for(var a=z(document,y,"cpu"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new ve(d);pb(d,c)}});
function df(a,b){var c=b+a;this.I=this.L=this.C=c;this.G=(a^c)&(b^c);return c&65535}function ef(a,b){var c=b+a,d=c<<8;this.I=this.L=this.C=d;this.G=(a<<8^d)&(b<<8^d);return c&255}function ff(a,b){a=b<<1;Je(this,a);return a&65535}function Cf(a,b){a=b<<1;Je(this,a<<8);return a&255}function Df(a,b){a=b&32768|b>>1|b<<16;Je(this,a);return a&65535}function Ef(a,b){a=b&128|b>>1|b<<8;Je(this,a<<8);return a&255}function Ff(a,b){a=b&~a;this.Ea(a);return a}function Gf(a,b){a=b&~a;this.Ea(a<<8);return a}
function Hf(a,b){a|=b;this.Ea(a);return a}function If(a,b){a|=b;this.Ea(a<<8);return a}function Jf(a,b){a=~b|65536;this.rb(a);return a&65535}function Kf(a,b){a=~b|256;this.rb(a<<8);return a&255}function Lf(a,b){this.I=this.L=a=b-a;this.G=b&(b^a);return a&65535}function Mf(a,b){a=b-a;var c=a<<8;b<<=8;this.I=this.L=c;this.G=b&(b^c);return a&255}function Nf(a,b){this.I=this.L=a=b+a;this.G=a&(b^a);return a&65535}function Of(a,b){a=b+a;var c=a<<8;this.I=this.L=c;this.G=c&(b<<8^c);return a&255}
function Pf(a,b){a=-b;this.rb(a,a&b&32768);return a&65535}function Qf(a,b){a=-b;this.rb(a<<8,(a&b&128)<<8);return a&255}function Rf(a,b){a=b<<1|this.C>>16&1;Je(this,a);return a&65535}function Sf(a,b){a=b<<1|this.C>>16&1;Je(this,a<<8);return a&255}function Tf(a,b){a=(this.C&65536|b)>>1|b<<16;Je(this,a);return a&65535}function Uf(a,b){a=((this.C&65536)>>8|b)>>1|b<<8;Je(this,a<<8);return a&255}function Vf(a,b){var c=b-a;Ke(this,c,a,b);return c&65535}
function Wf(a,b){var c=b-a;Ke(this,c<<8,a<<8,b<<8);return c&255}function Xf(a,b){this.I=this.L=b&65280;this.G=this.C=0;return(b<<8|b>>8)&65535}function Yf(a,b){a^=b;this.Ea(a);return a&65535}function Zf(a){P(this,a,Ve(this,a),df);this.b-=this.u?9+(this.Z&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}
function $f(a){var b=Ye(this,a);a=a>>6&7;var c=this.g[a];c&32768&&(c|=4294901760);this.C=this.G=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.C=c<<17-b,c>>=b;else if(b)if(16<b)this.G=c,c=0;else{this.C=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.G=32768)}this.g[a]=c&65535;this.I=this.L=c;this.b-=(this.u?6:7)+b}
function ag(a){var b=Ye(this,a);a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.C=this.G=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.C=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.C=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.G=32768)):d=c;this.g[a]=d>>16&65535;this.g[a|1]=d&65535;this.I=d>>16;this.L=d>>16|d;this.b-=(this.u?6:7)+b}function bg(a){Ge(this,a,!Be(this))}function cg(a){Ge(this,a,Be(this))}
function dg(a){P(this,a,Ve(this,a),Ff);this.b-=this.u?9+(this.Z&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}function eg(a){Ze(this,a,Ue(this,a),Gf);this.b-=this.u?9+(this.Z&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}function fg(a){P(this,a,Ve(this,a),Hf);this.b-=this.u?9+(this.Z&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}function gg(a){Ze(this,a,Ue(this,a),If);this.b-=this.u?9+(this.Z&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}
function hg(a){var b=Ve(this,a);a=Ye(this,a);this.Fa((0>b?this.g[-b-1]:b)&a);this.b-=this.u?4+(this.Z&&6<=this.j?1:0):(this.U?4:3)+(7==this.j?2:0)}function ig(a){var b=Ue(this,a);a=Xe(this,a);this.Fa(((0>b?this.g[-b-1]&255:b)&a)<<8);this.b-=this.u?4+(this.Z&&6<=this.j?1:0):(this.U?4:3)+(7==this.j?2:0)}function jg(a){Ge(this,a,De(this))}function kg(a){Ge(this,a,!Ee(this)==!Ce(this))}function lg(a){Ge(this,a,!De(this)&&!Ee(this)==!Ce(this))}function mg(a){Ge(this,a,!Be(this)&&!De(this))}
function hg(a){var b=Ve(this,a);a=Ye(this,a);this.Ea((0>b?this.g[-b-1]:b)&a);this.b-=this.u?4+(this.Z&&6<=this.j?1:0):(this.U?4:3)+(7==this.j?2:0)}function ig(a){var b=Ue(this,a);a=Xe(this,a);this.Ea(((0>b?this.g[-b-1]&255:b)&a)<<8);this.b-=this.u?4+(this.Z&&6<=this.j?1:0):(this.U?4:3)+(7==this.j?2:0)}function jg(a){Ge(this,a,De(this))}function kg(a){Ge(this,a,!Ee(this)==!Ce(this))}function lg(a){Ge(this,a,!De(this)&&!Ee(this)==!Ce(this))}function mg(a){Ge(this,a,!Be(this)&&!De(this))}
function ng(a){Ge(this,a,De(this)||!Ee(this)!=!Ce(this))}function og(a){Ge(this,a,Be(this)||De(this))}function pg(a){Ge(this,a,!Ee(this)!=!Ce(this))}function qg(a){Ge(this,a,Ee(this))}function rg(a){Ge(this,a,!De(this))}function sg(a){Ge(this,a,!Ee(this))}function tg(){this.sa(12,0,-9)}function ug(a){Ge(this,a,!0)}function vg(a){Ge(this,a,!Ce(this))}function wg(a){Ge(this,a,Ce(this))}function xg(a){a&1&&(this.C=0);a&2&&(this.G=0);a&4&&(this.L=1);a&8&&(this.I=0);this.b-=5}
function yg(a){var b=Ve(this,a);a=Ye(this,a);var c=(b=0>b?this.g[-b-1]:b)-a;Ke(this,c,a,b);this.b-=this.u?4+(this.Z&&6<=this.j?1:0):(this.U?4:3)+(7==this.j?2:0)}function zg(a){var b=Ue(this,a);a=Xe(this,a);var c=(b=(0>b?this.g[-b-1]&255:b)<<8)-(a<<=8);Ke(this,c,a,b);this.b-=this.u?4+(this.Z&&6<=this.j?1:0):(this.U?4:3)+(7==this.j?2:0)}
function Ag(a){var b=Ye(this,a);if(b){a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.C=this.G=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.g[a]=d&65535,this.g[a|1]=c-d*b&65535,this.L=d>>16|d,this.I=d>>16):(this.G=32768,this.L=d>>15|d,this.I=c>>16,-1===b&&65534===this.g[a]&&(this.g[a]=this.g[a|1]=1));this.b-=53}else this.L=this.I=0,this.G=32768,this.C=65536,this.b-=7}function Bg(){this.sa(24,0,-9);this.b-=20}
function Cg(){this.w&49152?(this.P|=128,this.sa(4,0,-8)):(this.ta&&1120==this.ka&&this.ta.setData(this.g[0],!0),this.D?Dg(this.D):this.da());this.b-=7}function Eg(){this.sa(16,0,-9);this.b-=20}var Fg=[0,7,7,10,7,11,9,13];function Gg(a){this.ma=this.b;rc(this,We(this,a));this.b=this.ma-Fg[this.u]}var Hg=[0,14,14,17,14,18,16,20];function Ig(a){this.ma=this.b;var b=We(this,a);a=a>>6&7;Le(this,this.g[a]);this.g[a]=this.g[7];rc(this,b);this.b=this.ma-Hg[this.u]}
var Jg=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Kg(a){var b=Ve(this,a);this.ma=this.b;af(this,a,b,this.Fa);this.b=this.ma-Jg[(this.U?8:0)+this.u]+(7!=this.j||this.u?0:2)}function Lg(a){var b=Ue(this,a);$e(this,a,b,65535,this.Fa);this.b-=this.u?9+(this.Z&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}var Mg=[7,13,13,17,14,18,17,21];
var Jg=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Kg(a){var b=Ve(this,a);this.ma=this.b;af(this,a,b,this.Ea);this.b=this.ma-Jg[(this.U?8:0)+this.u]+(7!=this.j||this.u?0:2)}function Lg(a){var b=Ue(this,a);$e(this,a,b,65535,this.Ea);this.b-=this.u?9+(this.Z&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}var Mg=[7,13,13,17,14,18,17,21];
function Ng(a){var b=Ye(this,a);a=a>>6&7;b=(b<<16>>16)*(this.g[a]<<16>>16);this.g[a]=b>>16&65535;this.g[a|1]=b&65535;b|=0;this.I=b>>16;this.L=this.I|b;this.G=0;this.C=-32768>b||32767<b?65536:0;this.b-=23}function Og(){this.b-=5}function Pg(){this.w&49152||(this.F.reset(),sc(this),this.ta&&this.ta.setData(this.g[0],!0));this.b-=667}function Qg(a){if(a&8)Q.call(this,a);else{var b=Ne(this);a&=7;7==a?rc(this,b):(rc(this,this.g[a]),this.g[a]=b);this.b-=9}}function Rg(){Me(this);this.b-=13}
function Sg(a){a&1&&(this.C=65536);a&2&&(this.G=32768);a&4&&(this.L=0);a&8&&(this.I=32768);this.b-=5}function Tg(a){var b=(a&448)>>6;if(this.g[b]=this.g[b]-1&65535)rc(this,this.g[7]-((a&63)<<1)),this.b+=1;this.b-=6}function Ug(a){P(this,a,Ve(this,a),Vf);this.b-=this.u?9+(this.Z&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}function Vg(a){P(this,a,0,Xf);this.b-=this.u?9:3+(7==this.j?2:0)}function Wg(){this.sa(28,0,-9)}
function Xg(){this.ta&&(this.ta.Hd(this.g[7],!0),this.ta.setData(this.g[0],!0));this.i|=8;Fe(this,-2);this.b-=3}function Yg(a){P(this,a,this.g[(a>>6&7)+this.Ac],Yf);this.b-=this.u?9:3+(7==this.j?2:0)}function Q(a){var b;if(b=this.D)b=this.D,E(b,1)?(F(b,"undefined opcode "+K(b,a),!0,!0),b=Dg(b)):b=!1;b||this.sa(8,0,-9)}function we(a){Zg[a>>12].call(this,a)}function $g(a){ah[a>>6&3].call(this,a)}function bh(a){ch[a>>6&3].call(this,a)}function dh(a){eh[a>>6&3].call(this,a)}
function Xg(){this.ta&&(this.ta.Id(this.g[7],!0),this.ta.setData(this.g[0],!0));this.i|=8;Fe(this,-2);this.b-=3}function Yg(a){P(this,a,this.g[(a>>6&7)+this.Bc],Yf);this.b-=this.u?9:3+(7==this.j?2:0)}function Q(a){var b;if(b=this.D)b=this.D,E(b,1)?(F(b,"undefined opcode "+K(b,a),!0,!0),b=Dg(b)):b=!1;b||this.sa(8,0,-9)}function we(a){Zg[a>>12].call(this,a)}function $g(a){ah[a>>6&3].call(this,a)}function bh(a){ch[a>>6&3].call(this,a)}function dh(a){eh[a>>6&3].call(this,a)}
function fh(a){gh[a&15].call(this,a)}function hh(a){ih[a&15].call(this,a)}function jh(a){kh[a>>6&3].call(this,a)}function lh(a){mh[a>>6&3].call(this,a)}function nh(a){oh[a>>6&3].call(this,a)}
var Zg=[function(a){ph[a>>8&15].call(this,a)},Kg,yg,hg,dg,fg,Zf,Q,function(a){qh[a>>8&15].call(this,a)},Lg,zg,ig,eg,gg,Ug,Q],ph=[function(a){rh[a>>4&15].call(this,a)},ug,rg,jg,kg,pg,lg,ng,Ig,Ig,$g,bh,dh,Q,Q,Q],ah=[function(a){af(this,a,0,this.qb);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Jf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,1,Nf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,1,Lf);this.b-=this.u?9:3+(7==this.j?2:0)}],ch=[function(a){P(this,a,0,Pf);
this.b-=this.u?11:6},function(a){P(this,a,Be(this)?1:0,df);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,Be(this)?1:0,Vf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){a=Ye(this,a);this.qb(a);this.b-=this.u?4:3+(7==this.j?2:0)}],eh=[function(a){P(this,a,0,Tf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Rf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Df);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,ff);this.b-=this.u?9:3+(7==this.j?2:0)}],rh=
var Zg=[function(a){ph[a>>8&15].call(this,a)},Kg,yg,hg,dg,fg,Zf,Q,function(a){qh[a>>8&15].call(this,a)},Lg,zg,ig,eg,gg,Ug,Q],ph=[function(a){rh[a>>4&15].call(this,a)},ug,rg,jg,kg,pg,lg,ng,Ig,Ig,$g,bh,dh,Q,Q,Q],ah=[function(a){af(this,a,0,this.rb);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Jf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,1,Nf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,1,Lf);this.b-=this.u?9:3+(7==this.j?2:0)}],ch=[function(a){P(this,a,0,Pf);
this.b-=this.u?11:6},function(a){P(this,a,Be(this)?1:0,df);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,Be(this)?1:0,Vf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){a=Ye(this,a);this.rb(a);this.b-=this.u?4:3+(7==this.j?2:0)}],eh=[function(a){P(this,a,0,Tf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Rf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Df);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,ff);this.b-=this.u?9:3+(7==this.j?2:0)}],rh=
[function(a){sh[a&15].call(this,a)},Q,Q,Q,Gg,Gg,Gg,Gg,Qg,Q,fh,hh,Vg,Vg,Vg,Vg],sh=[Cg,Xg,Rg,tg,Eg,Pg,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q],gh=[Og,function(){this.C=0;this.b-=5},function(){this.G=0;this.b-=5},xg,function(){this.L=1;this.b-=5},xg,xg,xg,function(){this.I=0;this.b-=5},xg,xg,xg,xg,xg,xg,xg],ih=[Og,function(){this.C=65536;this.b-=5},function(){this.G=32768;this.b-=5},Sg,function(){this.L=0;this.b-=5},Sg,Sg,Sg,function(){this.I=32768;this.b-=5},Sg,Sg,Sg,Sg,Sg,Sg,Sg],qh=[sg,qg,mg,og,vg,wg,bg,cg,Bg,Wg,jh,lh,
nh,Q,Q,Q],kh=[function(a){$e(this,a,0,255,this.qb);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,0,Kf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,1,Of);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,1,Mf);this.b-=this.u?9:3+(7==this.j?2:0)}],mh=[function(a){Ze(this,a,0,Qf);this.b-=this.u?11:6},function(a){Ze(this,a,Be(this)?1:0,ef);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,Be(this)?1:0,Wf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){a=Xe(this,
a);this.qb(a<<8);this.b-=this.u?4:3+(7==this.j?2:0)}],oh=[function(a){Ze(this,a,0,Uf);this.b-=this.u?9+(this.Yc&1):3+(7==this.j?2:0)},function(a){Ze(this,a,0,Sf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,0,Ef);this.b-=this.u?9+(this.Yc&1):3+(7==this.j?2:0)},function(a){Ze(this,a,0,Cf);this.b-=this.u?9:3+(7==this.j?2:0)}];function xe(a){th[a>>12].call(this,a)}
var th=[function(a){uh[a>>8&15].call(this,a)},Kg,yg,hg,dg,fg,Zf,function(a){vh[a>>8&15].call(this,a)},function(a){wh[a>>8&15].call(this,a)},Lg,zg,ig,eg,gg,Ug,Q],uh=[function(a){xh[a>>4&15].call(this,a)},ug,rg,jg,kg,pg,lg,ng,Ig,Ig,$g,bh,dh,function(a){yh[a>>6&3].call(this,a)},Q,Q],yh=[function(a){a=this.g[7]+((a&63)<<1)&65535;var b=this.pa(a|this.Ia);rc(this,this.g[5]);this.g[6]=a+2&65535;this.g[5]=b;this.b-=8},function(a){a=Se(this,a,0);this.Fa(a);Le(this,a);this.b-=11},function(a){var b=Ne(this);
this.ma=this.b;this.Fa(b);Te(this,a,0,b);this.b=this.ma-Mg[this.u]},function(a){af(this,a,Ee(this)?65535:0,this.Fa);this.b-=this.u?9:3+(7==this.j?2:0)}],xh=[function(a){zh[a&15].call(this,a)},Q,Q,Q,Gg,Gg,Gg,Gg,Qg,function(a){!(a&8)||1145>this.ka?Q.call(this,a):(this.w&49152||(this.w=this.w&-225|(a&7)<<5,this.i|=1,this.i&=-3),this.b-=5)},fh,hh,Vg,Vg,Vg,Vg],zh=[Cg,Xg,function(){Me(this);this.i|=this.w&16;this.b-=13},tg,Eg,Pg,Rg,function(a){Q.call(this,a)},Q,Q,Q,Q,Q,Q,Q,Q],vh=[Ng,Ng,Ag,Ag,$f,$f,ag,ag,
Yg,Yg,Q,Q,Q,Q,Tg,Tg],wh=[sg,qg,mg,og,vg,wg,bg,cg,Bg,Wg,jh,lh,nh,function(a){1145>this.ka?Q.call(this,a):Ah[a>>6&3].call(this,a)},Q,Q],Ah=[function(a){Q.call(this,a)},function(a){a=Se(this,a,65536);this.Fa(a);Le(this,a);this.b-=11},function(a){var b=Ne(this);this.ma=this.b;this.Fa(b);Te(this,a,65536,b);this.b=this.ma-Mg[this.u]},function(a){Q.call(this,a)}];
function Bh(a){x.call(this,"ROM",a,128);this.ia=this.g=null;this.u=+a.addr;this.b=+a.size;this.w=!1;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.j=a.file;this.B=ta(this.j);if(this.j){a=this.j;var b=ua(this.B);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.T("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(eb(c.vb,a,b),(a=Fa(a,b))?(c.g=a.aa,c.ia=a.ia):c.j=null);Ch(c)})}}p(Bh,x);
h=Bh.prototype;h.Ca=function(a,b,c,d){this.F=b;this.f=c;this.D=d;Ch(this)};h.Ea=function(){this.ia&&(this.D&&Dh(this.D,this.id,this.u,this.b,this.ia),delete this.ia);return!0};h.Da=function(){return!0};
function Ch(a){if(!Db(a)){if(a.j){if(!a.g||!a.F)return;a.b||(a.b=a.g.length);if(a.g.length!=a.b)Bb(a,"ROM size ("+v(a.g.length,8,!0)+") does not match specified size ("+v(a.b,8,!0)+")");else{var b;a:{b=a.u;if(57344<=b&&b<57344+Hc){var c={},c=(c[b]=[Bh.prototype.Jg,Bh.prototype.$h,null,null,null,a.b>>1],c);if(Yb(a.F,a,c)){a.status("Added "+a.b+"-byte ROM at "+u(b));b=a.w=!0;break a}}else if(Yc(a.F,b,a.b,Id)){for(c=0;c<a.g.length;c++)gd(a.F,b+c,a.g[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.i?
b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.F,g=d.b,k=[],l=d.u>>>f.g;0<g&&l<f.b.length;)k.push(f.b[l++]),g-=f.j;f=d.F;d=d.b;g=0;for(e>>>=f.g;0<d&&e<f.b.length;){l=k[g++];if(!l)break;f.b[e++]=l;d-=f.j}}a.w||delete a.g}}}C(a)}}h.Jg=function(a){return this.g[a-this.u]};h.$h=function(){};Sa(function(){for(var a=z(document,y,"rom"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Bh(d);pb(d,c)}});
function Eh(a){x.call(this,"RAM",a);this.ia=this.g=null;this.i=+a.addr;this.j=+a.size;this.Ba=a.load;this.Aa=a.exec;null!=this.Ba&&(this.Ba=+this.Ba);null!=this.Aa&&(this.Aa=+this.Aa);this.u=this.B=!1;this.b=a.file;this.w=ta(this.b);if(this.b){a=this.b;var b=ua(this.w);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.T("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(eb(c.vb,a,b),(a=Fa(a,b))?(c.g=a.aa,
c.ia=a.ia,null==c.Ba&&(c.Ba=a.Ba),null==c.Aa&&(c.Aa=a.Aa)):c.b=null);Fh(c)})}}p(Eh,x);Eh.prototype.Ca=function(a,b,c,d){this.F=b;this.f=c;this.D=d;Fh(this)};Eh.prototype.Ea=function(a,b){this.ia&&(this.D&&Dh(this.D,this.id,this.i,this.j,this.ia),delete this.ia);b||this.reset();return!0};Eh.prototype.Da=function(){return!0};
function Fh(a){if(a.F&&(!a.u&&a.j&&(Yc(a.F,a.i,a.j,id)?a.u=!0:a.j=0),!Db(a))){if(!a.u)w("No RAM allocated");else if(a.b){if(!a.g)return;Gh(a,a.g,a.Ba,a.Aa,a.i)?a.status('Loaded image "'+a.w+'"'):a.T('Error loading image "'+a.w+'"')}a.B=!0;C(a)}}
Eh.prototype.reset=function(){if(this.u&&!this.B){for(var a=this.F,b=this.i,c=this.j,d=b&a.i,b=b>>>a.g;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,k,d=d||0,g=(g||0)&255;void 0===f&&(f=e.size);if(Gb&&e.g)for(k=d;f--&&k<e.g.length;k++)e.g[k]=g;else for(k=d;f--&&k<e.size;k++)e.F(d,g,e.K+d);c-=a.j;b++;d=0}this.g&&Gh(this,this.g,this.Ba,this.Aa,this.i,!this.D)}this.B=!1};
nh,Q,Q,Q],kh=[function(a){$e(this,a,0,255,this.rb);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,0,Kf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,1,Of);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,1,Mf);this.b-=this.u?9:3+(7==this.j?2:0)}],mh=[function(a){Ze(this,a,0,Qf);this.b-=this.u?11:6},function(a){Ze(this,a,Be(this)?1:0,ef);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,Be(this)?1:0,Wf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){a=Xe(this,
a);this.rb(a<<8);this.b-=this.u?4:3+(7==this.j?2:0)}],oh=[function(a){Ze(this,a,0,Uf);this.b-=this.u?9+(this.Zc&1):3+(7==this.j?2:0)},function(a){Ze(this,a,0,Sf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ze(this,a,0,Ef);this.b-=this.u?9+(this.Zc&1):3+(7==this.j?2:0)},function(a){Ze(this,a,0,Cf);this.b-=this.u?9:3+(7==this.j?2:0)}];function xe(a){th[a>>12].call(this,a)}
var th=[function(a){uh[a>>8&15].call(this,a)},Kg,yg,hg,dg,fg,Zf,function(a){vh[a>>8&15].call(this,a)},function(a){wh[a>>8&15].call(this,a)},Lg,zg,ig,eg,gg,Ug,Q],uh=[function(a){xh[a>>4&15].call(this,a)},ug,rg,jg,kg,pg,lg,ng,Ig,Ig,$g,bh,dh,function(a){yh[a>>6&3].call(this,a)},Q,Q],yh=[function(a){a=this.g[7]+((a&63)<<1)&65535;var b=this.pa(a|this.Ia);rc(this,this.g[5]);this.g[6]=a+2&65535;this.g[5]=b;this.b-=8},function(a){a=Se(this,a,0);this.Ea(a);Le(this,a);this.b-=11},function(a){var b=Ne(this);
this.ma=this.b;this.Ea(b);Te(this,a,0,b);this.b=this.ma-Mg[this.u]},function(a){af(this,a,Ee(this)?65535:0,this.Ea);this.b-=this.u?9:3+(7==this.j?2:0)}],xh=[function(a){zh[a&15].call(this,a)},Q,Q,Q,Gg,Gg,Gg,Gg,Qg,function(a){!(a&8)||1145>this.ka?Q.call(this,a):(this.w&49152||(this.w=this.w&-225|(a&7)<<5,this.i|=1,this.i&=-3),this.b-=5)},fh,hh,Vg,Vg,Vg,Vg],zh=[Cg,Xg,function(){Me(this);this.i|=this.w&16;this.b-=13},tg,Eg,Pg,Rg,function(a){Q.call(this,a)},Q,Q,Q,Q,Q,Q,Q,Q],vh=[Ng,Ng,Ag,Ag,$f,$f,ag,ag,
Yg,Yg,Q,Q,Q,Q,Tg,Tg],wh=[sg,qg,mg,og,vg,wg,bg,cg,Bg,Wg,jh,lh,nh,function(a){1145>this.ka?Q.call(this,a):Ah[a>>6&3].call(this,a)},Q,Q],Ah=[function(a){Q.call(this,a)},function(a){a=Se(this,a,65536);this.Ea(a);Le(this,a);this.b-=11},function(a){var b=Ne(this);this.ma=this.b;this.Ea(b);Te(this,a,65536,b);this.b=this.ma-Mg[this.u]},function(a){Q.call(this,a)}];
function Bh(a){x.call(this,"ROM",a,128);this.ia=this.g=null;this.u=+a.addr;this.b=+a.size;this.w=!1;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.j=a.file;this.B=ta(this.j);if(this.j){a=this.j;var b=ua(this.B);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.T("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(eb(c.wb,a,b),(a=Fa(a,b))?(c.g=a.aa,c.ia=a.ia):c.j=null);Ch(c)})}}p(Bh,x);
h=Bh.prototype;h.Ba=function(a,b,c,d){this.F=b;this.f=c;this.D=d;Ch(this)};h.Da=function(){this.ia&&(this.D&&Dh(this.D,this.id,this.u,this.b,this.ia),delete this.ia);return!0};h.Ca=function(){return!0};
function Ch(a){if(!Db(a)){if(a.j){if(!a.g||!a.F)return;a.b||(a.b=a.g.length);if(a.g.length!=a.b)Bb(a,"ROM size ("+v(a.g.length,8,!0)+") does not match specified size ("+v(a.b,8,!0)+")");else{var b;a:{b=a.u;if(57344<=b&&b<57344+Hc){var c={},c=(c[b]=[Bh.prototype.Kg,Bh.prototype.ai,null,null,null,a.b>>1],c);if(Yb(a.F,a,c)){a.status("Added "+a.b+"-byte ROM at "+u(b));b=a.w=!0;break a}}else if(Yc(a.F,b,a.b,Id)){for(c=0;c<a.g.length;c++)gd(a.F,b+c,a.g[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.i?
b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.F,g=d.b,k=[],l=d.u>>>f.g;0<g&&l<f.b.length;)k.push(f.b[l++]),g-=f.j;f=d.F;d=d.b;g=0;for(e>>>=f.g;0<d&&e<f.b.length;){l=k[g++];if(!l)break;f.b[e++]=l;d-=f.j}}a.w||delete a.g}}}C(a)}}h.Kg=function(a){return this.g[a-this.u]};h.ai=function(){};Sa(function(){for(var a=z(document,y,"rom"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Bh(d);pb(d,c)}});
function Eh(a){x.call(this,"RAM",a);this.ia=this.g=null;this.i=+a.addr;this.j=+a.size;this.Aa=a.load;this.za=a.exec;null!=this.Aa&&(this.Aa=+this.Aa);null!=this.za&&(this.za=+this.za);this.u=this.B=!1;this.b=a.file;this.w=ta(this.b);if(this.b){a=this.b;var b=ua(this.w);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.T("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(eb(c.wb,a,b),(a=Fa(a,b))?(c.g=a.aa,
c.ia=a.ia,null==c.Aa&&(c.Aa=a.Aa),null==c.za&&(c.za=a.za)):c.b=null);Fh(c)})}}p(Eh,x);Eh.prototype.Ba=function(a,b,c,d){this.F=b;this.f=c;this.D=d;Fh(this)};Eh.prototype.Da=function(a,b){this.ia&&(this.D&&Dh(this.D,this.id,this.i,this.j,this.ia),delete this.ia);b||this.reset();return!0};Eh.prototype.Ca=function(){return!0};
function Fh(a){if(a.F&&(!a.u&&a.j&&(Yc(a.F,a.i,a.j,id)?a.u=!0:a.j=0),!Db(a))){if(!a.u)w("No RAM allocated");else if(a.b){if(!a.g)return;Gh(a,a.g,a.Aa,a.za,a.i)?a.status('Loaded image "'+a.w+'"'):a.T('Error loading image "'+a.w+'"')}a.B=!0;C(a)}}
Eh.prototype.reset=function(){if(this.u&&!this.B){for(var a=this.F,b=this.i,c=this.j,d=b&a.i,b=b>>>a.g;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,k,d=d||0,g=(g||0)&255;void 0===f&&(f=e.size);if(Gb&&e.g)for(k=d;f--&&k<e.g.length;k++)e.g[k]=g;else for(k=d;f--&&k<e.size;k++)e.F(d,g,e.K+d);c-=a.j;b++;d=0}this.g&&Gh(this,this.g,this.Aa,this.za,this.i,!this.D)}this.B=!1};
function Gh(a,b,c,d,e,f){var g=!1,k=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){var n=l;if(1!=m){F(a,"invalid signature ("+ra(m)+") at offset "+ra(n),4096);break}if(l+6>=b.length){F(a,"invalid block at offset "+ra(n),4096);break}for(var l=l+2,q=b[l++]&255|(b[l++]&255)<<8,t=b[l++]&255|(b[l++]&255)<<8,m=m+((q&255)+(q>>8)+(t&255)+(t>>8)),r=l,D=q-=6;0<q&&l<b.length;)m+=b[l++]&255,q--;if(q||l>=b.length){F(a,"insufficient data for block at offset "+ra(n),4096);
break}m+=b[l++]&255;if(m&255){F(a,"invalid checksum ("+v(m,2,!0)+") for block at offset "+ra(n),4096);break}if(D)for(F(a,"loading "+ra(D)+" bytes at "+ra(t)+"-"+ra(t+D),4096);D--;)gd(a.F,t++,b[r++]&255);else t&1?g=!0:null==d&&(d=t),null!=d&&F(a,"starting address: "+ra(d),4096);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)gd(a.F,c+e,b[e]);k=!0}if(k){if(null==d||g)a.f.da(),f=!1;null!=d&&ze(a.f,d,f)}return k}
Sa(function(){for(var a=z(document,y,"ram"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Eh(d);pb(d,c)}});function Hh(a){x.call(this,"Keyboard",a,1024);C(this)}p(Hh,x);Hh.prototype.wa=function(){return!1};Hh.prototype.Ca=function(a,b,c,d){this.J=a;this.f=c;this.D=d};Sa(function(){for(var a=z(document,y,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Hh(d);pb(d,c)}});
Sa(function(){for(var a=z(document,y,"ram"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Eh(d);pb(d,c)}});function Hh(a){x.call(this,"Keyboard",a,1024);C(this)}p(Hh,x);Hh.prototype.wa=function(){return!1};Hh.prototype.Ba=function(a,b,c,d){this.J=a;this.f=c;this.D=d};Sa(function(){for(var a=z(document,y,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Hh(d);pb(d,c)}});
function Ih(a){x.call(this,"SerialPort",a,1048576);this.M=+a.adapter;this.S=+a.baudReceive||9600;this.Z=+a.baudTransmit||9600;this.L=a.upperCase;"string"==typeof this.L&&(this.L="true"==this.L);this.u=this.w=null;this.X=+a.tabSize;this.U=+a.charBOL;this.B=0;this.I=!0;this.P=this.N=null;this.R=this.Y=-1;this.C=this.b=this.g=0;this.i=[];var b=a.binding;if("console"==b)this.w="";else{var c;a=Jh;b&&(void 0===c&&(c="Panel"),(c=nb(c,this.id))&&(b=c.H[b])&&this.wa(null,a,b))}this.j=this.G=this.O=null;this.exports=
{connect:this.ue,receiveData:this.Pc,receiveStatus:this.fh,setConnection:this.jh}}p(Ih,x);h=Ih.prototype;
h.wa=function(a,b,c){var d=this;switch(b){case Jh:return this.H[b]=this.u=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?la.Od:la.cc:46==c?b=la.Od:a.ctrlKey&&c>=la.Kd&&c<=la.xf&&(b=c-(la.Kd-la.Fe));b&&(a.preventDefault&&a.preventDefault(),d.Pc(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==la.He&&(b=la.Ge);d.Pc(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Pc(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
h.Ca=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;var e=this;this.P=pd(this.f,this.M?-1:48,4,1048576);this.R=md(this.f,function(){var a;a=-1;e.i.length&&(a=e.i.shift()&255,F(e,"receiveByte("+v(a,2,!0)+")"),e.L&&97<=a&&122>a&&(a-=32),od(e.f,e.R,1E3/Math.round(e.S/10)));0<=a&&(e.C=a,e.b&128?e.C|=49152:e.b|=128,e.b&64&&nd(c,e.P))});this.N=pd(this.f,this.M?-1:52,4,1048576);this.Y=md(this.f,function(){e.g|=128;e.g&64&&nd(c,e.N)});Yb(b,this,Kh,this.M?64832+8*(this.M-1)-65392:0);fc(b,this.reset.bind(this));
C(this)};h.ue=function(a){if(!this.j){var b=ge(this.J,"connection");if(b){var c=b.split("->");if(2==c.length){var d=za(c[0]);if(d!=this.Mb)return;c=za(c[1]);if(this.j=mb(c)){var e=this.j.exports;if(e){var f=e.connect;f&&f.call(this.j,this.I);if(this.G=e.receiveData){this.I=a;this.O=e.receiveStatus;this.status("Connected "+this.vb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
h.Ea=function(a,b){if(!b)if(this.ue(this.I),!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Da=function(a){return a?this.save():!0};h.reset=function(){Lh(this)};h.save=function(){var a=new G(this);a.set(0,[this.C,this.b,this.g,this.i]);return a.data()};h.restore=function(a){return Lh(this,a[0])};function Lh(a,b){b||(b=[0,8192,128,a.i]);b=ia(b);a.C=b.next().value;a.b=b.next().value;a.g=b.next().value;a.i=b.next().value;return!0}
h.Pc=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);od(this.f,this.R,1E3/Math.round(this.S/10));return!0};h.fh=function(a){var b=this.b;this.b&=-12289;a&32&&(this.b|=8192);a&256&&(this.b|=4096);b!=this.b&&(this.b|=32768,this.b&32&&nd(this.f,this.P))};h.jh=function(a,b){return this.j?!1:(this.j=a,this.G=b,!0)};
h.wg=function(){var a=this.b&65534;this.b&=-32769;return a};h.Nh=function(a){var b=a^this.b;this.b=this.b&-112|a&111;this.O&&b&6&&(b=0,b=this.I?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.O.call(this.j,b))};h.vg=function(){this.b&=-129;return this.C};h.Mh=function(){};h.eh=function(){return this.g};h.vi=function(a){this.g&128&&(a&64?nd(this.f,this.N):td(this.f,this.N));this.g=this.g&-70|a&69};h.dh=function(){return 0};
h.ui=function(a){a&=255;this.G&&this.G.call(this.j,a);a&=127;if(this.u)if(13==a)this.B=0;else if(8==a)this.u.value=this.u.value.slice(0,-1),0<this.B&&this.B--;else{if(a){var b;13!=a&&10!=a&&(b=Aa[a]);b=b?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.X||8,c=a-this.B%a,this.X&&(b=ya("",c)));this.U&&!this.B&&c&&(b=String.fromCharCode(this.U)+b);this.u.value+=b;this.u.scrollTop=this.u.scrollHeight;this.B+=c}}else if(null!=this.w){if(10==a||1024<=this.w.length)this.v(this.w),
this.w="";10!=a&&(this.w+=String.fromCharCode(a))}od(this.f,this.Y,1E3/Math.round(this.Z/10));this.g&=-129};var Jh="buffer",Mh={},Kh=(Mh[65392]=[null,null,Ih.prototype.wg,Ih.prototype.Nh,"RCSR"],Mh[65394]=[null,null,Ih.prototype.vg,Ih.prototype.Mh,"RBUF"],Mh[65396]=[null,null,Ih.prototype.eh,Ih.prototype.vi,"XCSR"],Mh[65398]=[null,null,Ih.prototype.dh,Ih.prototype.ui,"XBUF"],Mh);Sa(function(){for(var a=z(document,y,"serial"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Ih(d);pb(d,c)}});
function Cd(a){x.call(this,"PC11",a,4096);this.N=Nh(this,a.autoMount);this.g=0;this.U=+a.baudReceive||3600;this.w=this.b=0;this.L=32768;this.i=this.R=0;this.C=[];this.B=Oh;this.j=Ph;this.M=this.u="";this.aa=this.Ba=this.Aa=null;this.P=-1;this.O=!Ma("Mobi")&&window&&"FileReader"in window;this.G=null;this.S=-1;this.I=null}p(Cd,x);function Nh(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){w(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=Cd.prototype;
{connect:this.ve,receiveData:this.Qc,receiveStatus:this.gh,setConnection:this.kh}}p(Ih,x);h=Ih.prototype;
h.wa=function(a,b,c){var d=this;switch(b){case Jh:return this.H[b]=this.u=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?la.Pd:la.dc:46==c?b=la.Pd:a.ctrlKey&&c>=la.Ld&&c<=la.yf&&(b=c-(la.Ld-la.Ge));b&&(a.preventDefault&&a.preventDefault(),d.Qc(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==la.Ie&&(b=la.He);d.Qc(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Qc(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;var e=this;this.P=pd(this.f,this.M?-1:48,4,1048576);this.R=md(this.f,function(){var a;a=-1;e.i.length&&(a=e.i.shift()&255,F(e,"receiveByte("+v(a,2,!0)+")"),e.L&&97<=a&&122>a&&(a-=32),od(e.f,e.R,1E3/Math.round(e.S/10)));0<=a&&(e.C=a,e.b&128?e.C|=49152:e.b|=128,e.b&64&&nd(c,e.P))});this.N=pd(this.f,this.M?-1:52,4,1048576);this.Y=md(this.f,function(){e.g|=128;e.g&64&&nd(c,e.N)});Yb(b,this,Kh,this.M?64832+8*(this.M-1)-65392:0);fc(b,this.reset.bind(this));
C(this)};h.ve=function(a){if(!this.j){var b=ge(this.J,"connection");if(b){var c=b.split("->");if(2==c.length){var d=za(c[0]);if(d!=this.Nb)return;c=za(c[1]);if(this.j=mb(c)){var e=this.j.exports;if(e){var f=e.connect;f&&f.call(this.j,this.I);if(this.G=e.receiveData){this.I=a;this.O=e.receiveStatus;this.status("Connected "+this.wb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
h.Da=function(a,b){if(!b)if(this.ve(this.I),!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Ca=function(a){return a?this.save():!0};h.reset=function(){Lh(this)};h.save=function(){var a=new G(this);a.set(0,[this.C,this.b,this.g,this.i]);return a.data()};h.restore=function(a){return Lh(this,a[0])};function Lh(a,b){b||(b=[0,8192,128,a.i]);b=ia(b);a.C=b.next().value;a.b=b.next().value;a.g=b.next().value;a.i=b.next().value;return!0}
h.Qc=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);od(this.f,this.R,1E3/Math.round(this.S/10));return!0};h.gh=function(a){var b=this.b;this.b&=-12289;a&32&&(this.b|=8192);a&256&&(this.b|=4096);b!=this.b&&(this.b|=32768,this.b&32&&nd(this.f,this.P))};h.kh=function(a,b){return this.j?!1:(this.j=a,this.G=b,!0)};
h.xg=function(){var a=this.b&65534;this.b&=-32769;return a};h.Oh=function(a){var b=a^this.b;this.b=this.b&-112|a&111;this.O&&b&6&&(b=0,b=this.I?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.O.call(this.j,b))};h.wg=function(){this.b&=-129;return this.C};h.Nh=function(){};h.fh=function(){return this.g};h.wi=function(a){this.g&128&&(a&64?nd(this.f,this.N):td(this.f,this.N));this.g=this.g&-70|a&69};h.eh=function(){return 0};
h.vi=function(a){a&=255;this.G&&this.G.call(this.j,a);a&=127;if(this.u)if(13==a)this.B=0;else if(8==a)this.u.value=this.u.value.slice(0,-1),0<this.B&&this.B--;else{if(a){var b;13!=a&&10!=a&&(b=Aa[a]);b=b?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.X||8,c=a-this.B%a,this.X&&(b=ya("",c)));this.U&&!this.B&&c&&(b=String.fromCharCode(this.U)+b);this.u.value+=b;this.u.scrollTop=this.u.scrollHeight;this.B+=c}}else if(null!=this.w){if(10==a||1024<=this.w.length)this.v(this.w),
this.w="";10!=a&&(this.w+=String.fromCharCode(a))}od(this.f,this.Y,1E3/Math.round(this.Z/10));this.g&=-129};var Jh="buffer",Mh={},Kh=(Mh[65392]=[null,null,Ih.prototype.xg,Ih.prototype.Oh,"RCSR"],Mh[65394]=[null,null,Ih.prototype.wg,Ih.prototype.Nh,"RBUF"],Mh[65396]=[null,null,Ih.prototype.fh,Ih.prototype.wi,"XCSR"],Mh[65398]=[null,null,Ih.prototype.eh,Ih.prototype.vi,"XBUF"],Mh);Sa(function(){for(var a=z(document,y,"serial"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Ih(d);pb(d,c)}});
function Cd(a){x.call(this,"PC11",a,4096);this.N=Nh(this,a.autoMount);this.g=0;this.U=+a.baudReceive||3600;this.w=this.b=0;this.L=32768;this.i=this.R=0;this.C=[];this.B=Oh;this.j=Ph;this.M=this.u="";this.aa=this.Aa=this.za=null;this.P=-1;this.O=!Ma("Mobi")&&window&&"FileReader"in window;this.G=null;this.S=-1;this.I=null}p(Cd,x);function Nh(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){w(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=Cd.prototype;
h.wa=function(a,b,c){var d=this,e=Ph;switch(b){case "listTapes":return this.H[b]=c,c.onchange=function(){var a=d.H.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){w("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.H[b]=c,!0;case "readTape":e=Qh;case "loadTape":return e||(e=Rh),this.H[b]=c,c.onclick=
function(){var a=d.H.listTapes;a&&Sh(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.O){c.parentNode.removeChild(c);break}this.H[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Sh(d,ta(b,!0),b,Rh,a)}return!1};return!0;case Th:return this.H[b]=c,!0}return!1};
h.Ca=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;this.I=Uh(a);var e=this;if(a=Nh(this,ge(this.J,"autoMount")))for(var f in a)"PTR"==f&&(this.N[f]=a[f]);this.G=pd(this.f,56,4,4096);this.S=md(this.f,function(){1!=(e.b&32769)||e.b&128||(e.i<e.C.length?(e.w=e.C[e.i]&255,E(e)&&F(e,e.type+".advanceReader("+e.i+"): "+v(e.w,2,!0),!0),e.i++,Vh(e,e.i/e.C.length*100)):e.b|=32768,e.b|=128,e.b&=-2049,e.b&64&&nd(e.f,e.G))});Yb(b,this,Wh);fc(b,this.reset.bind(this));Xh(this,"None",Oh,!0);this.O&&Xh(this,
"Local Tape",Yh);Xh(this,"Remote Tape",Zh);$h(this)||C(this)};h.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Da=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.w=0};function $h(a){a.g=0;var b=a.N.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.H.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=ta(c,!0)}c&&b?ai(a,b,c,Rh,!0):bi(a)}return!!a.g}
h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;this.I=Uh(a);var e=this;if(a=Nh(this,ge(this.J,"autoMount")))for(var f in a)"PTR"==f&&(this.N[f]=a[f]);this.G=pd(this.f,56,4,4096);this.S=md(this.f,function(){1!=(e.b&32769)||e.b&128||(e.i<e.C.length?(e.w=e.C[e.i]&255,E(e)&&F(e,e.type+".advanceReader("+e.i+"): "+v(e.w,2,!0),!0),e.i++,Vh(e,e.i/e.C.length*100)):e.b|=32768,e.b|=128,e.b&=-2049,e.b&64&&nd(e.f,e.G))});Yb(b,this,Wh);fc(b,this.reset.bind(this));Xh(this,"None",Oh,!0);this.O&&Xh(this,
"Local Tape",Yh);Xh(this,"Remote Tape",Zh);$h(this)||C(this)};h.Da=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Ca=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.w=0};function $h(a){a.g=0;var b=a.N.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.H.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=ta(c,!0)}c&&b?ai(a,b,c,Rh,!0):bi(a)}return!!a.g}
function Sh(a,b,c,d,e){if(c)if(c==Yh)a.T('Use "Choose File" and "Mount" to select and load a local tape.');else{if(c==Zh){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=ta(c);a.status("Attempting to load "+c+' as "'+b+'"');a.B=Zh}else a.B=c;ai(a,b,c,d,!1,e)}else ci(a,!1)}
function ai(a,b,c,d,e,f){var g=-1;if(a.u.toLowerCase()!=c.toLowerCase()||a.j!=d)g++,ci(a,!0),a.A.fb?a.T("PC11 busy"):(e&&(a.g++,E(a)&&F(a,"auto-loading tape: "+b)),di(a,b,c,d,f)?g++:a.A.fb=!0);g&&ei(a,a.M,a.u,a.j,a.aa,a.Ba,a.Aa)}
function di(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),ei(a,b,c,d,e),a.B=Yh);a.A.fb=!1;bi(a)};g.readAsArrayBuffer(e);return!1}0>c.indexOf("/api/v1/dump")&&(e=ua(c),f="json"==e||"gz"==e?encodeURI(c):Ga()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ea(f,null,!0,function(e,f,g){var k=0>g&&!!a.J&&!a.J.A.ca;g?a.T('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(eb(a.vb,e,f),(e=Fa(e,f))&&ei(a,b,c,d,
e.aa,e.Ba,e.Aa));a.A.fb=!1;a.g&&(a.g--,a.g||C(a));bi(a)})}function Xh(a,b,c,d){if((a=a.H.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function ai(a,b,c,d,e,f){var g=-1;if(a.u.toLowerCase()!=c.toLowerCase()||a.j!=d)g++,ci(a,!0),a.A.eb?a.T("PC11 busy"):(e&&(a.g++,E(a)&&F(a,"auto-loading tape: "+b)),di(a,b,c,d,f)?g++:a.A.eb=!0);g&&ei(a,a.M,a.u,a.j,a.aa,a.Aa,a.za)}
function di(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),ei(a,b,c,d,e),a.B=Yh);a.A.eb=!1;bi(a)};g.readAsArrayBuffer(e);return!1}0>c.indexOf("/api/v1/dump")&&(e=ua(c),f="json"==e||"gz"==e?encodeURI(c):Ga()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ea(f,null,!0,function(e,f,g){var k=0>g&&!!a.J&&!a.J.A.ca;g?a.T('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(eb(a.wb,e,f),(e=Fa(e,f))&&ei(a,b,c,d,
e.aa,e.Aa,e.za));a.A.eb=!1;a.g&&(a.g--,a.g||C(a));bi(a)})}function Xh(a,b,c,d){if((a=a.H.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function bi(a){var b=a.H.listTapes;if(b&&b.options){a=a.B||a.u;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function Vh(a,b){b|=0;if(b!==a.P){var c=a.H[Th];c&&(c=(c=z(c,fi))&&c[0])&&c.style&&(c.style.width=b+"%");a.P=b}}
function ei(a,b,c,d,e,f,g){a.M=b;a.u=c;a.j=d;a.aa=e;a.Ba=f;a.Aa=g;d==Qh?a.I&&Gh(a.I,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.T('No valid memory address for tape "'+b+'"'):(a.i=0,a.C=e,a.b&=-32769,a.status('Loaded tape "'+b+'" ('+e.length+" bytes)"),Vh(a,0))}function ci(a,b){if(a.u||!1===b)a.M="",a.u="",b||(a.j&&a.status(a.j==Rh?"tape detached":"tape unloaded"),a.B=Oh,a.j=Ph,bi(a))}h.save=function(){return(new G(this)).data()};h.restore=function(){return!0};h.pg=function(){return this.b&65534};
h.Gh=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&nd(this.f,this.G)):(this.b&=-129,this.b|=2048,this.w=0,od(this.f,this.S,1E3/Math.round(this.U/10))));this.b=this.b&-66|a&65};h.og=function(){this.b&=-129;this.b|=2048;return this.w};h.Fh=function(){};h.ng=function(){return this.L};h.Eh=function(a){this.L=this.L&-65|a&64};h.mg=function(){return this.R};h.Dh=function(a){this.R=a&255};
var Oh="",Yh="?",Zh="??",Ph=0,Rh=1,Qh=2,Th="readProgress",fi="pcjs-progress-bar",gi={},Wh=(gi[65384]=[null,null,Cd.prototype.pg,Cd.prototype.Gh,"PRS"],gi[65386]=[null,null,Cd.prototype.og,Cd.prototype.Fh,"PRB"],gi[65388]=[null,null,Cd.prototype.ng,Cd.prototype.Eh,"PPS"],gi[65390]=[null,null,Cd.prototype.mg,Cd.prototype.Dh,"PPB"],gi);
function hi(a,b,c){x.call(this,"Disk",{id:a.vb+".disk"+v(++ii,4)},8192);this.controller=a;this.J=a.J;this.D=a.D;this.u=b;this.Za=b.name;this.Pa=this.Gd="";this.Ad=b.Ad;this.ba=this.la=this.fa=this.va=this.mode=0;this.b=[];this.i=null;this.j=!1;ji(this,c,b.ba,b.la,b.fa,b.va);this.g=this.w=null;C(this)}p(hi,x);h=hi.prototype;h.Ca=function(a,b,c,d){this.D=d};
function ei(a,b,c,d,e,f,g){a.M=b;a.u=c;a.j=d;a.aa=e;a.Aa=f;a.za=g;d==Qh?a.I&&Gh(a.I,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.T('No valid memory address for tape "'+b+'"'):(a.i=0,a.C=e,a.b&=-32769,a.status('Loaded tape "'+b+'" ('+e.length+" bytes)"),Vh(a,0))}function ci(a,b){if(a.u||!1===b)a.M="",a.u="",b||(a.j&&a.status(a.j==Rh?"tape detached":"tape unloaded"),a.B=Oh,a.j=Ph,bi(a))}h.save=function(){return(new G(this)).data()};h.restore=function(){return!0};h.qg=function(){return this.b&65534};
h.Hh=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&nd(this.f,this.G)):(this.b&=-129,this.b|=2048,this.w=0,od(this.f,this.S,1E3/Math.round(this.U/10))));this.b=this.b&-66|a&65};h.pg=function(){this.b&=-129;this.b|=2048;return this.w};h.Gh=function(){};h.og=function(){return this.L};h.Fh=function(a){this.L=this.L&-65|a&64};h.ng=function(){return this.R};h.Eh=function(a){this.R=a&255};
var Oh="",Yh="?",Zh="??",Ph=0,Rh=1,Qh=2,Th="readProgress",fi="pcjs-progress-bar",gi={},Wh=(gi[65384]=[null,null,Cd.prototype.qg,Cd.prototype.Hh,"PRS"],gi[65386]=[null,null,Cd.prototype.pg,Cd.prototype.Gh,"PRB"],gi[65388]=[null,null,Cd.prototype.og,Cd.prototype.Fh,"PPS"],gi[65390]=[null,null,Cd.prototype.ng,Cd.prototype.Eh,"PPB"],gi);
function hi(a,b,c){x.call(this,"Disk",{id:a.wb+".disk"+v(++ii,4)},8192);this.controller=a;this.J=a.J;this.D=a.D;this.u=b;this.Ya=b.name;this.Pa=this.Hd="";this.Bd=b.Bd;this.ba=this.la=this.fa=this.va=this.mode=0;this.b=[];this.i=null;this.j=!1;ji(this,c,b.ba,b.la,b.fa,b.va);this.g=this.w=null;C(this)}p(hi,x);h=hi.prototype;h.Ba=function(a,b,c,d){this.D=d};
function ji(a,b,c,d,e,f){a.mode=b;a.ba=c;a.la=d;a.fa=e;a.va=f;a.b=[];if("preload"!=a.mode){b=Array(a.ba);for(c=0;c<b.length;c++){d=Array(a.la);for(e=0;e<d.length;e++){f=Array(a.fa);for(var g=1;g<=f.length;g++)f[g-1]=ki(null,c,e,g,a.va,0);d[e]=f}b[c]=d}a.b=b}a.i=null}
function li(a,b,c,d,e){var f=c;if(a.g)return!0;a.Za=b;a.Pa=c;a.Gd=ta(c);a.g=e;a.w=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ka[d];if(e){a.ba=e[0];a.la=e[1];a.fa=e[2];a.va=e[3]||512;c=a.va>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.ba);for(d=0;d<a.b.length;d++)for(var t=a.b[d]=Array(a.la),r=0;r<t.length;r++)for(var D=t[r]=Array(a.fa),A=0;A<D.length;A++){for(var B=ki(null,d,r,A+1,a.va,0),J=B.data,ub=0;ub<c;ub++,f+=4)var Ed=J[ub]=b.getInt32(f,
!0),e=e+Ed&-1;B.Ma=c;D[A]=B}a.i=e;c=a}else a.T("Unrecognized disk format ("+d+" bytes)");a.g&&(a.g.call(a.controller,a.u,c,a.Za,a.Pa),a.g=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=ua(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):va(c,"/")&&(d="dir"),f=Ga()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.Ad?"":e)+"&format=json"));return!!Ea(f,
function li(a,b,c,d,e){var f=c;if(a.g)return!0;a.Ya=b;a.Pa=c;a.Hd=ta(c);a.g=e;a.w=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ka[d];if(e){a.ba=e[0];a.la=e[1];a.fa=e[2];a.va=e[3]||512;c=a.va>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.ba);for(d=0;d<a.b.length;d++)for(var t=a.b[d]=Array(a.la),r=0;r<t.length;r++)for(var D=t[r]=Array(a.fa),A=0;A<D.length;A++){for(var B=ki(null,d,r,A+1,a.va,0),J=B.data,ub=0;ub<c;ub++,f+=4)var Ed=J[ub]=b.getInt32(f,
!0),e=e+Ed&-1;B.Ma=c;D[A]=B}a.i=e;c=a}else a.T("Unrecognized disk format ("+d+" bytes)");a.g&&(a.g.call(a.controller,a.u,c,a.Ya,a.Pa),a.g=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=ua(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):va(c,"/")&&(d="dir"),f=Ga()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.Bd?"":e)+"&format=json"));return!!Ea(f,
null,!0,function(b,c,d){mi(a,b,c,d)})}
function mi(a,b,c,d){var e=null,f=0>d&&!!a.J&&!a.J.A.ca;a.j=!1;if(d)a.controller.T('Unable to load disk "'+a.Za+'" (error '+d+": "+b+")",f);else{eb(a.controller.vb,b,c);try{if(0<ta(a.Gd,!0).toLowerCase().indexOf("-readonly"))a.j=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.j=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.Za]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
function mi(a,b,c,d){var e=null,f=0>d&&!!a.J&&!a.J.A.ca;a.j=!1;if(d)a.controller.T('Unable to load disk "'+a.Ya+'" (error '+d+": "+b+")",f);else{eb(a.controller.wb,b,c);try{if(0<ta(a.Hd,!0).toLowerCase().indexOf("-readonly"))a.j=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.j=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.Ya]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(k.length)if(1==k.length)w(k[0]);else{a.ba=k.length;a.la=k[0].length;a.fa=k[0][0].length;var l=k[0][0][0];a.va=l&&l.length||512;for(d=c=0;d<a.ba;d++)for(f=0;f<a.la;f++)for(g=0;g<a.fa;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var q=l.data;if(void 0===q){var t=l.bytes;if(void 0!==t&&t.length){for(var r=m<<2,D=t.length;D<r;D++)t[D]=n;ni(l,t)}else q=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=q;delete l.bytes}ki(l,d,f);for(r=
0;r<q.length;r++)c=c+q[r]&-1}a.b=k;a.i=c;e=a}else w("Empty disk image: "+a.Za)}catch(A){w("Disk image error ("+b+"): "+A.message)}}a.g&&(a.g.call(a.w,a.u,e,a.Za,a.Pa),a.g=null)}function ki(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.zk=b;a.Ak=c;a.Xa=a.Ma=0;a.gb=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.u,g=this.b[a];if(g){var k=g[b];if(!k&&f.zf&&b<f.la)for(k=g[b]=Array(f.Af),g=0;g<k.length;g++)k[g]=ki(null,a,b,g+1,f.ve,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.zf&&9==f.je&&(d=k[g]=ki(null,a,b,f.je,f.ve,0))}}e&&e(d,!1);return d};function ni(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
h.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};h.write=function(a,b,c){if(this.j)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Ma?f<a.Xa?(a.Ma+=a.Xa-f,a.Xa=f):f>=a.Xa+a.Ma&&(a.Ma+=f-(a.Xa+a.Ma)+1):(a.Xa=f,a.Ma=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
0;r<q.length;r++)c=c+q[r]&-1}a.b=k;a.i=c;e=a}else w("Empty disk image: "+a.Ya)}catch(A){w("Disk image error ("+b+"): "+A.message)}}a.g&&(a.g.call(a.w,a.u,e,a.Ya,a.Pa),a.g=null)}function ki(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Ak=b;a.Bk=c;a.Wa=a.Ma=0;a.fb=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.u,g=this.b[a];if(g){var k=g[b];if(!k&&f.Af&&b<f.la)for(k=g[b]=Array(f.Bf),g=0;g<k.length;g++)k[g]=ki(null,a,b,g+1,f.we,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.Af&&9==f.ke&&(d=k[g]=ki(null,a,b,f.ke,f.we,0))}}e&&e(d,!1);return d};function ni(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
h.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};h.write=function(a,b,c){if(this.j)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Ma?f<a.Wa?(a.Ma+=a.Wa-f,a.Wa=f):f>=a.Wa+a.Ma&&(a.Ma+=f-(a.Wa+a.Ma)+1):(a.Wa=f,a.Ma=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function oi(a,b){var c=a.la*a.fa,d=b/c|0;return d<a.ba?(b%=c,a.seek(d,b/a.fa|0,b%a.fa+1)):null}function pi(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}
h.save=function(){var a=0,b=[];b[a++]=[this.Pa,this.i,this.ba,this.la,this.fa,this.va];if(!this.j)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Ma){for(var k=[],l=0,m=g.Xa,n=g.Xa+g.Ma;m<n;)k[l++]=g.data[m++];b[a++]=[d,e,f,g.Xa,k]}}return b};
h.save=function(){var a=0,b=[];b[a++]=[this.Pa,this.i,this.ba,this.la,this.fa,this.va];if(!this.j)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Ma){for(var k=[],l=0,m=g.Wa,n=g.Wa+g.Ma;m<n;)k[l++]=g.data[m++];b[a++]=[d,e,f,g.Wa,k]}}return b};
h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.b.length&&6<=e.length?ji(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.i&&e[1]!=this.i&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.i+")",b=-2));for(this.b.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],k=g[f++],l=g[f++],m=g[f++];if(k>=this.b.length||l>=this.b[k].length||m>=this.b[k][l].length){c="sector (CHS="+k+":"+l+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.j){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(k=this.b[k][l][m]){for(l=k.data.length;l<e;)k.data[l++]=k.pattern;l=0;k.Xa=e;for(k.Ma=f.length;e<g;)k.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.T("Unable to restore disk '"+this.Za+": "+c);return b};
b+" changes applied)";b=-1;break}if(this.j){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(k=this.b[k][l][m]){for(l=k.data.length;l<e;)k.data[l++]=k.pattern;l=0;k.Wa=e;for(k.Ma=f.length;e<g;)k.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.T("Unable to restore disk '"+this.Ya+": "+c);return b};
h.toJSON=function(){var a;a=0;for(var b;b=oi(this,a++);)qi(b);a=JSON.stringify(this.b,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function qi(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}var ii=0;function ri(a,b,c,d,e,f){x.call(this,a,b,c);this.N=si(this,b.autoMount);this.M=0;this.R=d;this.S=e;this.U=f;this.P=d.$c;this.g=Array(this.P);this.O=!Ma("Mobi")&&window&&"FileReader"in window;this.B=[];this.Sa=null;this.exports={bootDisk:this.le,loadDisk:this.Cd,selectDrive:this.ih,wait:this.mh}}p(ri,x);
function qi(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}var ii=0;function ri(a,b,c,d,e,f){x.call(this,a,b,c);this.N=si(this,b.autoMount);this.M=0;this.R=d;this.S=e;this.U=f;this.P=d.ad;this.g=Array(this.P);this.O=!Ma("Mobi")&&window&&"FileReader"in window;this.B=[];this.Ra=null;this.exports={bootDisk:this.me,loadDisk:this.Dd,selectDrive:this.jh,wait:this.nh}}p(ri,x);
function si(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){w(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=ri.prototype;
h.wa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.H[b]=c,c.onchange=function(){ti(d)},!0;case "descDisk":case "listDrives":return this.H[b]=c,c.onchange=function(){var a=ma(c.value,10);null!=a&&ui(d,a)},!0;case "loadDisk":return this.H[b]=c,c.onclick=function(){d.Cd()},!0;case "bootDisk":return this.H[b]=c,c.onclick=function(){d.le()},!0;case "saveDisk":if(!this.O){c.parentNode.removeChild(c);break}this.H[b]=c;c.onclick=function(){var a=d.H.listDrives;if(a&&a.options&&d.g)if(a=
d.g[ma(a.value,10)||0])if(a=a.ea){var b;b="";for(var c=0,k;k=oi(a,c++);)for(var l=0,m=k.length;l<m;l++)b+=String.fromCharCode(pi(a,k,l));b=btoa(b);a=a.Gd.replace(".json",".img");c=null;b="data:application/octet-stream;base64,"+b;a&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=b,c.download=a,document.body.appendChild(c),c.click(),document.body.removeChild(c),a="Check your Downloads folder for "+a+"."):(window.open(b),a="Check your browser for a new window/tab containing the requested data"+
(a?" ("+a+")":"")+".");w(a)}else d.T("No disk loaded in drive.");else d.T("No disk drive selected.")};return!0;case "mountDisk":if(this.O)return this.H[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;d.Cd(ta(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.Ca=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;if(a=si(this,ge(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.N[e]=a[e]);this.reset();this.Sa=pd(this.f,this.R.vd,this.R.rd,this.ja);Yb(b,this,this.U);fc(b,this.reset.bind(this));vi(this,"None",Pi,!0);this.O&&vi(this,"Local Disk",Ri);vi(this,"Remote Disk",Si);Ti(this)||C(this)};
h.Ea=function(a,b){if(!b){if(!a){if(this.reset(),this.J.M){this.B=[];for(a=0;a<this.g.length;a++)Ui(this,a,!0);Ti(this,!0)}}else if(!this.restore(a))return!1;if(a=this.H.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.P;b++){var c=document.createElement("option");c.value=b;c.text=this.g[b].Rc||"---";a.appendChild(c)}0<this.P&&(a.value="0",ui(this,0))}}return!0};h.Da=function(a){return a?this.save():!0};h.reset=function(){this.Cb();Vi(this)};
h.save=function(){var a=new G(this);a.set(0,this.Sc());a.set(1,Wi(this));a.set(2,Xi(this));return a.data()};h.restore=function(a){var b=!0;this.Cb(a[0])||(b=!1);var c=a[1];c&&(this.B=c);Vi(this,a[2])||(b=!1);return b};h.Cb=function(){return!0};h.Sc=function(){return[]};
function Vi(a,b){for(var c=0;c<a.g.length;c++){var d=a.g[c];void 0===d&&(d=a.g[c]={});var e=a,f=d,d=c,g=a.S,k=b&&b[c],l=0;f.Tb=d;f.name=e.Mb;f.Nc=f.Pb=!1;f.ic=null;f.Ad=!0;f.Rc=g[l++]+d;f.ba=g[l++];f.la=g[l++];f.fa=g[l++];f.va=g[l++];f.If=g[l++];f.Jf=g[l++];f.Kf=g[l++];f.Bf=g[l++];f.status=g[l++];f.tk=0;f.sk=0;f.je=1;f.Af=f.fa;f.ve=f.va;f.Bk=0;f.Ik=null;f.ea||(f.Pa="");k&&(l=k[1],g=k[2],k[0]?(f=l,k=g,g=e.g[d],Ui(e,d,!0),g.Pb=!0,d=new hi(e,g,"preload"),e.oe(g,d,f,k,!0)):Yi(e,d,l,g,!0)?f.ea&&g&&Zi(e,
l,g,f.ea):C(e,!1))}return!0}function Xi(a){for(var b=[],c=0;c<a.g.length;c++){var d=a.g[c];b.push([d.Pb,d.Za,d.Pa])}return b}function Wi(a){for(var b=0;b<a.g.length;b++){var c=a.g[b];c.ea&&$i(a,c.Pa,c.ea)}return a.B}
h.wa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.H[b]=c,c.onchange=function(){ti(d)},!0;case "descDisk":case "listDrives":return this.H[b]=c,c.onchange=function(){var a=ma(c.value,10);null!=a&&ui(d,a)},!0;case "loadDisk":return this.H[b]=c,c.onclick=function(){d.Dd()},!0;case "bootDisk":return this.H[b]=c,c.onclick=function(){d.me()},!0;case "saveDisk":if(!this.O){c.parentNode.removeChild(c);break}this.H[b]=c;c.onclick=function(){var a=d.H.listDrives;if(a&&a.options&&d.g)if(a=
d.g[ma(a.value,10)||0])if(a=a.ea){var b;b="";for(var c=0,k;k=oi(a,c++);)for(var l=0,m=k.length;l<m;l++)b+=String.fromCharCode(pi(a,k,l));b=btoa(b);a=a.Hd.replace(".json",".img");c=null;b="data:application/octet-stream;base64,"+b;a&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=b,c.download=a,document.body.appendChild(c),c.click(),document.body.removeChild(c),a="Check your Downloads folder for "+a+"."):(window.open(b),a="Check your browser for a new window/tab containing the requested data"+
(a?" ("+a+")":"")+".");w(a)}else d.T("No disk loaded in drive.");else d.T("No disk drive selected.")};return!0;case "mountDisk":if(this.O)return this.H[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;d.Dd(ta(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;if(a=si(this,ge(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.N[e]=a[e]);this.reset();this.Ra=pd(this.f,this.R.wd,this.R.sd,this.ja);Yb(b,this,this.U);fc(b,this.reset.bind(this));vi(this,"None",Pi,!0);this.O&&vi(this,"Local Disk",Ri);vi(this,"Remote Disk",Si);Ti(this)||C(this)};
h.Da=function(a,b){if(!b){if(!a){if(this.reset(),this.J.M){this.B=[];for(a=0;a<this.g.length;a++)Ui(this,a,!0);Ti(this,!0)}}else if(!this.restore(a))return!1;if(a=this.H.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.P;b++){var c=document.createElement("option");c.value=b;c.text=this.g[b].Sc||"---";a.appendChild(c)}0<this.P&&(a.value="0",ui(this,0))}}return!0};h.Ca=function(a){return a?this.save():!0};h.reset=function(){this.Db();Vi(this)};
h.save=function(){var a=new G(this);a.set(0,this.Tc());a.set(1,Wi(this));a.set(2,Xi(this));return a.data()};h.restore=function(a){var b=!0;this.Db(a[0])||(b=!1);var c=a[1];c&&(this.B=c);Vi(this,a[2])||(b=!1);return b};h.Db=function(){return!0};h.Tc=function(){return[]};
function Vi(a,b){for(var c=0;c<a.g.length;c++){var d=a.g[c];void 0===d&&(d=a.g[c]={});var e=a,f=d,d=c,g=a.S,k=b&&b[c],l=0;f.Ub=d;f.name=e.Nb;f.Oc=f.Qb=!1;f.jc=null;f.Bd=!0;f.Sc=g[l++]+d;f.ba=g[l++];f.la=g[l++];f.fa=g[l++];f.va=g[l++];f.Jf=g[l++];f.Kf=g[l++];f.Lf=g[l++];f.Cf=g[l++];f.status=g[l++];f.uk=0;f.tk=0;f.ke=1;f.Bf=f.fa;f.we=f.va;f.Ck=0;f.Jk=null;f.ea||(f.Pa="");k&&(l=k[1],g=k[2],k[0]?(f=l,k=g,g=e.g[d],Ui(e,d,!0),g.Qb=!0,d=new hi(e,g,"preload"),e.pe(g,d,f,k,!0)):Yi(e,d,l,g,!0)?f.ea&&g&&Zi(e,
l,g,f.ea):C(e,!1))}return!0}function Xi(a){for(var b=[],c=0;c<a.g.length;c++){var d=a.g[c];b.push([d.Qb,d.Ya,d.Pa])}return b}function Wi(a){for(var b=0;b<a.g.length;b++){var c=a.g[b];c.ea&&$i(a,c.Pa,c.ea)}return a.B}
function Ti(a,b){b||(a.M=0);for(var c in a.N){var d=a.N[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.H.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=ta(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!Yi(a,g,f,e,!0)&&b&&C(a,!1);continue}a.T("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.M}
h.Cd=function(a,b,c){if(!a&&!b){var d=this.H.listDisks;d&&d.options&&(a=d.options[d.selectedIndex].text,b=d.value)}d=(d=this.H.listDrives)&&ma(d.value,10);if(void 0===d||0>d||d>=this.g.length)return this.T("Unable to load the selected drive"),!1;if(!b)return Ui(this,d),!0;if(b==Ri)return this.T('Use "Choose File" and "Mount" to select and load a local disk.'),!1;if(b==Si){b=window.prompt("Enter the URL of a remote disk image.","")||"";if(!b)return!1;a=ta(b);this.status("Attempting to load "+b+' as "'+
a+'"')}Yi(this,d,a,b,!1,c);return!0};h.le=function(){var a,b=this.H.listDrives,b=b&&ma(b.value,10);if(null==b||0>b||b>=this.g.length||!(a=this.g[b]))return this.T("Unable to boot the selected drive"),!1;if(!a.ea)return this.T("Load a disk into the drive first"),!1;ze(this.f,0,!0,b);return(a=this.Ub(a,a.If,a.Jf,a.Kf,a.Bf,0,2))?(this.T("Unable to read the boot sector ("+a+")"),!1):!0};
function Yi(a,b,c,d,e,f){var g=-1,k=a.g[b];k.Pa.toLowerCase()!=d.toLowerCase()&&(g++,Ui(a,b,!0),k.Nc?a.T(a.type+" busy"):(k.Nc=!0,e&&(k.zd=!0,a.M++,E(a)&&F(a,"auto-loading disk: "+c)),k.Pb=!!f,li(new hi(a,k,"preload"),c,d,f,a.oe)&&g++));return g}
h.oe=function(a,b,c,d,e){a.Nc=!1;b&&(b.ba>a.ba||b.la>a.la)&&(this.T('Disk "'+c+'" too large for drive '+(this.g[a.Tb].Rc||"---")),b=null);b?(a.ea=b,a.Za=c,a.Pa=d,this.we(a.Tb),Zi(this,c,d,b),this.T('Loaded disk "'+c+'" in drive '+(this.g[a.Tb].Rc||"---"),a.zd||e),this.J&&qe(this.J)):a.Pb=!1;a.zd&&(a.zd=!1,--this.M||C(this));ui(this,a.Tb);a.ic&&(a.ic(),a.ic=null)};
h.Dd=function(a,b,c){if(!a&&!b){var d=this.H.listDisks;d&&d.options&&(a=d.options[d.selectedIndex].text,b=d.value)}d=(d=this.H.listDrives)&&ma(d.value,10);if(void 0===d||0>d||d>=this.g.length)return this.T("Unable to load the selected drive"),!1;if(!b)return Ui(this,d),!0;if(b==Ri)return this.T('Use "Choose File" and "Mount" to select and load a local disk.'),!1;if(b==Si){b=window.prompt("Enter the URL of a remote disk image.","")||"";if(!b)return!1;a=ta(b);this.status("Attempting to load "+b+' as "'+
a+'"')}Yi(this,d,a,b,!1,c);return!0};h.me=function(){var a,b=this.H.listDrives,b=b&&ma(b.value,10);if(null==b||0>b||b>=this.g.length||!(a=this.g[b]))return this.T("Unable to boot the selected drive"),!1;if(!a.ea)return this.T("Load a disk into the drive first"),!1;ze(this.f,0,!0,b);return(a=this.Vb(a,a.Jf,a.Kf,a.Lf,a.Cf,0,2))?(this.T("Unable to read the boot sector ("+a+")"),!1):!0};
function Yi(a,b,c,d,e,f){var g=-1,k=a.g[b];k.Pa.toLowerCase()!=d.toLowerCase()&&(g++,Ui(a,b,!0),k.Oc?a.T(a.type+" busy"):(k.Oc=!0,e&&(k.Ad=!0,a.M++,E(a)&&F(a,"auto-loading disk: "+c)),k.Qb=!!f,li(new hi(a,k,"preload"),c,d,f,a.pe)&&g++));return g}
h.pe=function(a,b,c,d,e){a.Oc=!1;b&&(b.ba>a.ba||b.la>a.la)&&(this.T('Disk "'+c+'" too large for drive '+(this.g[a.Ub].Sc||"---")),b=null);b?(a.ea=b,a.Ya=c,a.Pa=d,this.xe(a.Ub),Zi(this,c,d,b),this.T('Loaded disk "'+c+'" in drive '+(this.g[a.Ub].Sc||"---"),a.Ad||e),this.J&&qe(this.J)):a.Qb=!1;a.Ad&&(a.Ad=!1,--this.M||C(this));ui(this,a.Ub);a.jc&&(a.jc(),a.jc=null)};
function vi(a,b,c,d){if((a=a.H.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function ui(a,b,c){var d=!1;if(0<=b&&b<a.g.length){var e=a.g[b],f=a.H.listDisks;a=a.H.listDrives;if(f&&a&&f.options&&a.options){if(c)for(c=0;c<a.options.length;c++)if(ma(a.options[c].value,10)==e.Tb){a.selectedIndex!=c&&(a.selectedIndex=c);d=!0;break}c=ma(a.value,10);e=e.Pb?Ri:e.Pa;if(!isNaN(c)&&c==b){for(c=0;c<f.options.length;c++)if(f.options[c].value==e){f.selectedIndex!=c&&(f.selectedIndex=c);d=!0;break}c==f.options.length&&(f.selectedIndex=0)}}}return d}
h.ih=function(a){var b=this.H.listDrives;if(b&&b.options)for(var c=b.options.length,d=0;d<c;d++)if(b.options[d].textContent==a){var e=ma(b.options[d].value,10);if(0<=e)return ui(this,e,!0)}return!1};
function ti(a){var b=a.H.listDisks,c=a.H.descDisk,d=b.options&&b.options[b.selectedIndex];if(c&&d){b={};if(d=d.getAttribute("data-value"))try{b=eval("("+d+")")}catch(e){w(a.type+" option error: "+e.message)}a=b.desc;void 0===a&&(a="");b=b.href;void 0!==b&&(a='<a href="'+b+'" target="_blank">'+a+"</a>");c.innerHTML=a}}h.mh=function(a){for(var b=0;b<this.g.length;b++){var c=this.g[b];if(c&&c.Nc)return c.ic||(c.ic=a),!1}return!0};
function Ui(a,b,c){var d=a.g[b];if(d.ea||!1===c)$i(a,d.Pa,d.ea),d.Za="",d.Pa="",d.ea=null,d.Pb=!1,c||(a.T("Drive "+(a.g[b].Rc||"---")+" unloaded",c),ui(a,b))}function Zi(a,b,c,d){var e;for(e=0;e<a.B.length;e++)if(a.B[e][1]==c){d.restore(a.B[e][2]);return}a.B[e]=[b,c,[]]}function $i(a,b,c){var d;for(d=0;d<a.B.length;d++)if(a.B[d][1]==b){a.B[d][2]=c.save();break}}h.we=function(){};h.Ub=function(){return-1};h.Vc=function(){return-1};var Pi="",Ri="?",Si="??";
function N(a){ri.call(this,"RK11",a,65536,Nb,Nb.Hc,aj);this.G=this.i=this.b=this.w=this.u=this.j=this.C=0}p(N,ri);h=N.prototype;h.Cb=function(a){a||(a=[bj.Hc|bj.de|bj.$d,0,R.ab,0,0,0,0]);a=ia(a);this.G=a.next().value;this.i=a.next().value;this.b=a.next().value;this.w=a.next().value;this.u=a.next().value;this.j=a.next().value;this.C=a.next().value;return!0};h.Sc=function(){return[this.G,this.i,this.b,this.w,this.u,this.j,this.C]};
h.Ub=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ea;var n=null,q;a||(m=S.Ud,e=0);for(;e;){if(!n){if(b>=a.ba){m=S.Fc;break}n=a.seek(b,c,d+1);if(!n){m=S.ce;break}q=0;++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b))}var t,r;if(0>(t=a.read(n,q++))||0>(r=a.read(n,q++))){m=S.Gc;break}if(!k&&(Ac(this.F,Oe(this.f,f),t|r<<8),ld(this.F))){m=S.ec;break}q>=a.va&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Vc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ea;var n=null,q;a||(m=S.Ud,e=0);for(;e;){var t=Cc(this.F,Oe(this.f,f));if(ld(this.F)){m=S.ec;break}if(!n){if(b>=a.ba){m=S.Fc;break}n=a.seek(b,c,d+1,!0);if(!n){m=S.ce;break}q=0;++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b))}if(k){var r,D;if(0>(r=a.read(n,q++))||0>(D=a.read(n,q++))){m=S.Gc;break}if(t!=(r|D<<8)){m=S.ge;break}}else if(!a.write(n,q++,t&255)||!a.write(n,q++,t>>8)){m=S.Gc;break}q>=a.va&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Ze=function(a,b,c,d,e,f){this.u=f&65535;this.b=this.b&~R.Jb|f>>16-R.na.Jb&R.Jb;this.w=65536-e&65535;this.j=this.j&~cj.sd|d&cj.sd;this.i|=a;dj(this);return!0};function dj(a){a.b&=~R.ib;a.i&&(a.i|=S.Je,a.b|=R.ib,a.i&S.ed&&(a.b|=R.ed),E(a)&&F(a,a.type+": ERROR: "+u(a.i)))}h.Bg=function(){return this.G};h.Sh=function(){};h.Cg=function(){return this.i};h.Th=function(){};h.yg=function(){return this.b&R.fc};
h.Ph=function(a){this.b=this.b&~R.Ua|a&R.Ua;if(this.b&R.dc){a=!0;var b,c,d="",e=(this.j&cj.sb)>>cj.na.sb,f=this.g[e],g,k,l,m,n,q;this.b&=~(R.ab|R.td);this.i&=~S.qf;switch(c=this.b&R.xa){case ej.Ee:E(this)&&F(this,this.type+": CRESET("+e+")",!0);this.i=this.j=0;this.b=R.ab;break;case ej.Ue:d="RCHK";case ej.tb:d||(d="READ"),b=this.Ub;case ej.wd:d||(d="WCHK");case ej.hc:d||(d="WRITE");b||(b=this.Vc);g=(this.j&cj.bc)>>cj.na.bc;k=(this.j&cj.hd)>>cj.na.hd;l=this.j&cj.sd;m=65536-this.w&65535;n=(this.b&R.Jb)<<
16-R.na.Jb|this.u;q=this.b&R.Qe?0:2;E(this)&&F(this,this.type+": "+d+"("+g+":"+k+":"+l+") "+u(n)+"--"+u(n+(m<<1)),!0,!0);if(g>=f.ba){this.i|=S.Fc;break}if(l>=f.fa){this.i|=S.Gc;break}a=b.call(this,f,g,k,l,m,n,q,c>=ej.wd,this.Ze.bind(this));break;case ej.Lc:g=(this.j&cj.bc)>>cj.na.bc;E(this)&&F(this,this.type+": SEEK("+g+")",!0);g<f.ba?this.b|=R.td:this.i|=S.Fc;break;case ej.Ke:E(this)&&F(this,this.type+": DRESET("+e+")");this.i=this.j=0;this.b=R.ab|R.td;break;default:E(this)&&F(this,this.type+": UNSUPPORTED("+
c+")")}this.G=f.status|(f.ea?bj.Ga:0)|e<<bj.na.kd|this.j&bj.pf;dj(this);a&&(this.b&=~R.dc,this.b|=R.ab,this.b&R.Ib&&nd(this.f,this.Sa))}};h.Dg=function(){return this.w};h.Uh=function(a){this.w=a};h.xg=function(){return this.u};h.Oh=function(a){this.u=a};h.zg=function(){return this.j};h.Qh=function(a){this.j=a};h.Ag=function(){return this.C};h.Rh=function(a){this.C=a};
var bj=Nb.Ic,S=Nb.bf,R=Nb.$e,cj=Nb.af,ej=Nb.xa,fj={},aj=(fj[65280]=[null,null,N.prototype.Bg,N.prototype.Sh,"RKDS"],fj[65282]=[null,null,N.prototype.Cg,N.prototype.Th,"RKER"],fj[65284]=[null,null,N.prototype.yg,N.prototype.Ph,"RKCS"],fj[65286]=[null,null,N.prototype.Dg,N.prototype.Uh,"RKWC"],fj[65288]=[null,null,N.prototype.xg,N.prototype.Oh,"RKBA"],fj[65290]=[null,null,N.prototype.zg,N.prototype.Qh,"RKDA"],fj[65294]=[null,null,N.prototype.Ag,N.prototype.Rh,"RKDB"],fj);
function Dd(a){ri.call(this,"RL11",a,131072,Ob,Ob.cf,gj);this.b=this.C=this.i=this.j=this.w=this.u=0}p(Dd,ri);h=Dd.prototype;h.Cb=function(a){a||(a=[U.Ga|U.ab,0,0,0,0,0]);a=ia(a);this.b=a.next().value;this.C=a.next().value;this.i=a.next().value;this.j=a.next().value;this.w=a.next().value;this.u=a.next().value;return!0};h.Sc=function(){return[this.b,this.C,this.i,this.j,this.w,this.u]};
h.Ub=function(a,b,c,d,e,f,g,k,l){g=0;a=a.ea;k=null;var m;a||(g=hj.bb,e=0);for(;e;){if(!k){k=a.seek(b,c,d+1);if(!k){g=hj.bb;break}m=0}var n,q;if(0>(n=a.read(k,m++))||0>(q=a.read(k,m++))){g=hj.bb;break}Ac(this.F,Oe(this.f,f),n|q<<8);if(ld(this.F)){g=hj.ec;break}f+=2;e--;if(m>=a.va&&(k=null,++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b>=a.ba)))){g=hj.bb;break}}return l?l(g,b,c,d,e,f):g};
h.Vc=function(a,b,c,d,e,f,g,k,l){g=0;a=a.ea;k=null;var m;a||(g=hj.bb,e=0);for(;e;){var n=Cc(this.F,Oe(this.f,f));if(ld(this.F)){g=hj.ec;break}f+=2;e--;if(!k){k=a.seek(b,c,d+1,!0);if(!k){g=hj.bb;break}m=0}if(!a.write(k,m++,n&255)||!a.write(k,m++,n>>8)){g=hj.bb;break}if(m>=a.va&&(k=null,++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b>=a.ba)))){g=hj.bb;break}}return l?l(g,b,c,d,e,f):g};
h.df=function(a,b,c,d,e,f){this.C=f&65535;this.b=this.b&~U.$a|f>>16-U.na.$a&U.$a;this.u=f>>16&ij.cb;this.j=this.i=b<<jj.na.gc|(c?jj.Kc:0)|d&jj.ae;this.w=65536-e&65535;a&&(this.b=this.b|a|U.ib);return!0};h.Gg=function(){return this.b&U.fc};
h.Xh=function(a){this.b=this.b&~U.Ua|a&U.Ua;this.u=this.u&60|(a&U.$a)>>U.na.$a;if(!(this.b&U.ab)){a=!0;var b,c="",d=this.g[(this.b&U.sb)>>U.na.sb],e=d.ea,f,g,k;this.b&=~U.Ga;switch(this.b&U.xa){case kj.uf:this.w&lj.Sd&&(this.b&=U.Ga|U.xa|U.$a);this.w=d.status|this.j&jj.Kc|(e&&512==e.ba?lj.Ne:0);break;case kj.Lc:(this.i&jj.Me)==jj.rf&&(b=this.i&jj.gc,c=(this.i&jj.tf)<<2,this.j=this.i&jj.sf?this.j+b:this.j-b,this.i=this.j=this.j&jj.gc|c);break;case kj.Ye:this.w=this.j;break;case kj.Ve:c="READ",b=this.Ub;
case kj.wf:c||(c="WRITE"),b||(b=this.Vc),f=this.i>>jj.na.gc,g=this.i&jj.Kc?1:0,k=this.i&jj.ae,!e||f>=e.ba||k>=e.fa?this.b=this.b|hj.bb|U.ib:(a=65536-this.w&65535,e=(this.u&ij.cb)<<16|this.C,E(this)&&F(this,this.type+": "+c+"("+f+":"+g+":"+k+") "+u(e)+"--"+u(e+(a<<1)),!0,!0),a=b.call(this,d,f,g,k,a,e,2,!1,this.df.bind(this)))}a&&(this.b=this.b|U.Ga|U.ab,this.b&U.Ib&&nd(this.f,this.Sa))}};h.Eg=function(){return this.C};h.Vh=function(a){this.C=a&mj.Ua};h.Hg=function(){return this.i};
h.Yh=function(a){this.i=a};h.Ig=function(){return this.w};h.Zh=function(a){this.w=a};h.Fg=function(){return this.u};h.Wh=function(a){this.u=a&ij.cb;this.b=this.b&~U.$a|(this.u&3)<<U.na.$a};
var U=Ob.gf,mj=Ob.ef,jj=Ob.hf,lj=Ob.Jc,ij=Ob.ff,hj=Ob.Rd,kj=Ob.xa,nj={},gj=(nj[63744]=[null,null,Dd.prototype.Gg,Dd.prototype.Xh,"RLCS"],nj[63746]=[null,null,Dd.prototype.Eg,Dd.prototype.Vh,"RLBA"],nj[63748]=[null,null,Dd.prototype.Hg,Dd.prototype.Yh,"RLDA"],nj[63750]=[null,null,Dd.prototype.Ig,Dd.prototype.Zh,"RLMP"],nj[63752]=[null,null,Dd.prototype.Fg,Dd.prototype.Wh,"RLBE"],nj);
function Fd(a){ri.call(this,"RX11",a,262144,Pb,Pb.jf,oj);this.I=this.G=this.i=this.L=this.b=this.C=0;this.j=V.Kb;this.u=0;this.w=Array(128).fill(0)}p(Fd,ri);h=Fd.prototype;h.Cb=function(a){a?(a=ia(a),this.b=a.next().value,this.C=a.next().value,this.I=a.next().value,this.G=a.next().value,this.i=a.next().value,this.L=a.next().value,this.j=a.next().value,this.u=a.next().value,this.w=a.next().value):(this.C=this.b=0,this.G=this.I=1,this.L=this.i=0,this.j=V.tb,this.u=0,td(this.f,this.Sa),pj(this));return!0};
h.Sc=function(){return[this.b,this.C,this.I,this.G,this.i,this.L,this.j,this.u,this.w]};h.we=function(a){a||this.Cb()};function qj(a,b){b&&(a.L=b,a.C=a.i,a.b|=W.ib);a.j=V.Kb;a.b|=W.DONE;a.b&W.Ib&&nd(a.f,a.Sa)}
h.Ub=function(a,b,c,d,e,f,g,k,l){k=0;var m=a.ea,n=null,q;E(this)&&F(this,this.type+".readData("+b+":"+c+":"+d+") "+u(f)+"--"+u(f+(e<<1)),!0,!0);m||(k=a.Tb?rj.gd:rj.fd,e=0);for(;e;){if(!n){if(b>=m.ba){k=rj.Se;break}n=m.seek(b,c,d+1);if(!n){k=rj.qd;break}q=0;++d>=m.fa&&(d=0,++c>=m.la&&(c=0,++b))}var t;if(0>(a=m.read(n,q++))||0>(t=m.read(n,q++))){k=rj.pd;break}Ac(this.F,Oe(this.f,f),a|t<<8);q>=m.va&&(n=null);f+=g;e--}return l?l(k,b,c,d,e,f):k};
function pj(a){var b=0,c=a.b&W.ud?1:0,d=a.g[c],d=d&&d.ea,e=a.I&sj.cb,f=a.G&tj.cb;a.i&=~(uj.Nd|uj.Xd|uj.cc|uj.Ga);if(d)if(a.i|=uj.Ga,E(a)&&F(a,a.type+".readSector("+e+":0:"+f+")",!0,!0),c=d.seek(e,0,f,!0)){e=0;for(f=a.w.length;e<f;){var g=d.read(c,e);if(0>g){b=rj.pd;break}a.w[e++]=g}c.Ef&&(a.i|=uj.cc)}else b=rj.qd;else b=c?rj.gd:rj.fd;qj(a,b)}
h.Kg=function(a,b){a=this.b;if(!b)switch(a&=W.fc,this.j){case V.bd:case V.EMPTY:this.u<this.w.length&&(this.b|=W.eb);break;case V.tb:case V.hc:case V.Mc:2>this.u&&(this.b|=W.eb)}return a};
h.ai=function(a){this.b=this.b&~W.Ua|a&W.Ua;if(this.b&W.INIT)this.Cb();else if(this.b&W.dc&&this.j==V.Kb)switch(this.j=this.b&W.xa,this.b&=~(W.dc|W.eb|W.DONE|W.ib),td(this.f,this.Sa),E(this)&&F(this,this.type+".processCommand("+vj[this.j>>1]+")",!0,!0),this.j){case V.bd:case V.EMPTY:case V.tb:case V.hc:case V.Mc:this.u=0;break;case V.Xe:a=this.g[this.b&W.ud?1:0];this.i&=~uj.Ga;a&&a.ea&&(this.i|=uj.Ga);this.C=this.i;qj(this);break;case V.We:this.C=this.L,qj(this)}else this.b&W.Ib?this.b&W.DONE&&nd(this.f,
this.Sa):td(this.f,this.Sa)};h.Lg=function(a,b){if(!b)switch(this.j){case V.EMPTY:this.b&W.eb&&(this.b&=~W.eb,this.C=this.w[this.u]&255,E(this)&&F(this,this.type+".readByte("+this.u+"): "+v(this.C,2,!0),!0,!0),++this.u>=this.w.length&&qj(this))}return this.C};
h.bi=function(a){switch(this.j){case V.bd:this.b&W.eb&&(this.b&=~W.eb,this.w[this.u]=a&255,E(this)&&F(this,this.type+".writeByte("+this.u+","+v(a,2,!0)+")",!0,!0),++this.u>=this.w.length&&qj(this));break;case V.tb:case V.hc:case V.Mc:if(this.b&W.eb)switch(this.b&=~W.eb,this.u++){case 0:this.G=a;break;case 1:if(this.I=a,this.j==V.tb)pj(this);else{var b=this.j==V.Mc,c=0,d=this.b&W.ud?1:0,e=this.g[d],e=e&&e.ea,f=this.I&sj.cb,g=this.G&tj.cb;this.i&=~(uj.Nd|uj.Xd|uj.cc|uj.Ga);if(e)if(this.i|=uj.Ga,E(this)&&
F(this,this.type+".writeSector("+f+":0:"+g+")",!0,!0),d=e.seek(f,0,g,!0))for(b&&(d.Ef=!0),b=0,f=this.w.length;b<f;){if(!e.write(d,b,this.w[b]&255)){c=rj.pd;break}b++}else c=rj.qd;else c=d?rj.gd:rj.fd;qj(this,c)}}}this.C=a};var W=Pb.kf,sj=Pb.nf,tj=Pb.mf,uj=Pb.lf,V=Pb.xa,rj=Pb.ERROR,vj="FILL EMPTY WRITE READ UNUSED RDSTAT WRDEL RDERR".split(" "),wj={},oj=(wj[65144]=[null,null,Fd.prototype.Kg,Fd.prototype.ai,"RXCS"],wj[65146]=[null,null,Fd.prototype.Lg,Fd.prototype.bi,"RXDB"],wj);
function xj(a){x.call(this,"Debugger",a);this.W=+a.base||16;this.za=null;this.N=["{","}"];this.ka=["[","]"];this.w=0;this.P=!1;this.u=-1;this.j=[];this.U={}}p(xj,x);xj.prototype.re=function(){return-1};xj.prototype.Bd=function(){};
function yj(a,b,c,d){if(c)if(b){0>a.u&&a.j.length&&(a.u=0);if(0>a.u||b!=a.j[a.u])a.j.splice(0,0,b),a.u=0;a.u--}else a.P?b="end":b=a.j[a.u+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(za(b.substring(c,f))),c=f+1}}return a}
function ui(a,b,c){var d=!1;if(0<=b&&b<a.g.length){var e=a.g[b],f=a.H.listDisks;a=a.H.listDrives;if(f&&a&&f.options&&a.options){if(c)for(c=0;c<a.options.length;c++)if(ma(a.options[c].value,10)==e.Ub){a.selectedIndex!=c&&(a.selectedIndex=c);d=!0;break}c=ma(a.value,10);e=e.Qb?Ri:e.Pa;if(!isNaN(c)&&c==b){for(c=0;c<f.options.length;c++)if(f.options[c].value==e){f.selectedIndex!=c&&(f.selectedIndex=c);d=!0;break}c==f.options.length&&(f.selectedIndex=0)}}}return d}
h.jh=function(a){var b=this.H.listDrives;if(b&&b.options)for(var c=b.options.length,d=0;d<c;d++)if(b.options[d].textContent==a){var e=ma(b.options[d].value,10);if(0<=e)return ui(this,e,!0)}return!1};
function ti(a){var b=a.H.listDisks,c=a.H.descDisk,d=b.options&&b.options[b.selectedIndex];if(c&&d){b={};if(d=d.getAttribute("data-value"))try{b=eval("("+d+")")}catch(e){w(a.type+" option error: "+e.message)}a=b.desc;void 0===a&&(a="");b=b.href;void 0!==b&&(a='<a href="'+b+'" target="_blank">'+a+"</a>");c.innerHTML=a}}h.nh=function(a){for(var b=0;b<this.g.length;b++){var c=this.g[b];if(c&&c.Oc)return c.jc||(c.jc=a),!1}return!0};
function Ui(a,b,c){var d=a.g[b];if(d.ea||!1===c)$i(a,d.Pa,d.ea),d.Ya="",d.Pa="",d.ea=null,d.Qb=!1,c||(a.T("Drive "+(a.g[b].Sc||"---")+" unloaded",c),ui(a,b))}function Zi(a,b,c,d){var e;for(e=0;e<a.B.length;e++)if(a.B[e][1]==c){d.restore(a.B[e][2]);return}a.B[e]=[b,c,[]]}function $i(a,b,c){var d;for(d=0;d<a.B.length;d++)if(a.B[d][1]==b){a.B[d][2]=c.save();break}}h.xe=function(){};h.Vb=function(){return-1};h.Wc=function(){return-1};var Pi="",Ri="?",Si="??";
function N(a){ri.call(this,"RK11",a,65536,Nb,Nb.Ic,aj);this.G=this.i=this.b=this.w=this.u=this.j=this.C=0}p(N,ri);h=N.prototype;h.Db=function(a){a||(a=[bj.Ic|bj.ee|bj.ae,0,R.$a,0,0,0,0]);a=ia(a);this.G=a.next().value;this.i=a.next().value;this.b=a.next().value;this.w=a.next().value;this.u=a.next().value;this.j=a.next().value;this.C=a.next().value;return!0};h.Tc=function(){return[this.G,this.i,this.b,this.w,this.u,this.j,this.C]};
h.Vb=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ea;var n=null,q;a||(m=S.Vd,e=0);for(;e;){if(!n){if(b>=a.ba){m=S.Gc;break}n=a.seek(b,c,d+1);if(!n){m=S.de;break}q=0;++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b))}var t,r;if(0>(t=a.read(n,q++))||0>(r=a.read(n,q++))){m=S.Hc;break}if(!k&&(Ac(this.F,Oe(this.f,f),t|r<<8),ld(this.F))){m=S.fc;break}q>=a.va&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Wc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ea;var n=null,q;a||(m=S.Vd,e=0);for(;e;){var t=Cc(this.F,Oe(this.f,f));if(ld(this.F)){m=S.fc;break}if(!n){if(b>=a.ba){m=S.Gc;break}n=a.seek(b,c,d+1,!0);if(!n){m=S.de;break}q=0;++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b))}if(k){var r,D;if(0>(r=a.read(n,q++))||0>(D=a.read(n,q++))){m=S.Hc;break}if(t!=(r|D<<8)){m=S.he;break}}else if(!a.write(n,q++,t&255)||!a.write(n,q++,t>>8)){m=S.Hc;break}q>=a.va&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.$e=function(a,b,c,d,e,f){this.u=f&65535;this.b=this.b&~R.Kb|f>>16-R.na.Kb&R.Kb;this.w=65536-e&65535;this.j=this.j&~cj.td|d&cj.td;this.i|=a;dj(this);return!0};function dj(a){a.b&=~R.hb;a.i&&(a.i|=S.Ke,a.b|=R.hb,a.i&S.fd&&(a.b|=R.fd),E(a)&&F(a,a.type+": ERROR: "+u(a.i)))}h.Cg=function(){return this.G};h.Th=function(){};h.Dg=function(){return this.i};h.Uh=function(){};h.zg=function(){return this.b&R.gc};
h.Qh=function(a){this.b=this.b&~R.Ta|a&R.Ta;if(this.b&R.ec){a=!0;var b,c,d="",e=(this.j&cj.tb)>>cj.na.tb,f=this.g[e],g,k,l,m,n,q;this.b&=~(R.$a|R.ud);this.i&=~S.rf;switch(c=this.b&R.xa){case ej.Fe:E(this)&&F(this,this.type+": CRESET("+e+")",!0);this.i=this.j=0;this.b=R.$a;break;case ej.Ve:d="RCHK";case ej.ub:d||(d="READ"),b=this.Vb;case ej.xd:d||(d="WCHK");case ej.ic:d||(d="WRITE");b||(b=this.Wc);g=(this.j&cj.cc)>>cj.na.cc;k=(this.j&cj.jd)>>cj.na.jd;l=this.j&cj.td;m=65536-this.w&65535;n=(this.b&R.Kb)<<
16-R.na.Kb|this.u;q=this.b&R.Re?0:2;E(this)&&F(this,this.type+": "+d+"("+g+":"+k+":"+l+") "+u(n)+"--"+u(n+(m<<1)),!0,!0);if(g>=f.ba){this.i|=S.Gc;break}if(l>=f.fa){this.i|=S.Hc;break}a=b.call(this,f,g,k,l,m,n,q,c>=ej.xd,this.$e.bind(this));break;case ej.Mc:g=(this.j&cj.cc)>>cj.na.cc;E(this)&&F(this,this.type+": SEEK("+g+")",!0);g<f.ba?this.b|=R.ud:this.i|=S.Gc;break;case ej.Le:E(this)&&F(this,this.type+": DRESET("+e+")");this.i=this.j=0;this.b=R.$a|R.ud;break;default:E(this)&&F(this,this.type+": UNSUPPORTED("+
c+")")}this.G=f.status|(f.ea?bj.Fa:0)|e<<bj.na.ld|this.j&bj.qf;dj(this);a&&(this.b&=~R.ec,this.b|=R.$a,this.b&R.Jb&&nd(this.f,this.Ra))}};h.Eg=function(){return this.w};h.Vh=function(a){this.w=a};h.yg=function(){return this.u};h.Ph=function(a){this.u=a};h.Ag=function(){return this.j};h.Rh=function(a){this.j=a};h.Bg=function(){return this.C};h.Sh=function(a){this.C=a};
var bj=Nb.Jc,S=Nb.cf,R=Nb.af,cj=Nb.bf,ej=Nb.xa,fj={},aj=(fj[65280]=[null,null,N.prototype.Cg,N.prototype.Th,"RKDS"],fj[65282]=[null,null,N.prototype.Dg,N.prototype.Uh,"RKER"],fj[65284]=[null,null,N.prototype.zg,N.prototype.Qh,"RKCS"],fj[65286]=[null,null,N.prototype.Eg,N.prototype.Vh,"RKWC"],fj[65288]=[null,null,N.prototype.yg,N.prototype.Ph,"RKBA"],fj[65290]=[null,null,N.prototype.Ag,N.prototype.Rh,"RKDA"],fj[65294]=[null,null,N.prototype.Bg,N.prototype.Sh,"RKDB"],fj);
function Dd(a){ri.call(this,"RL11",a,131072,Ob,Ob.df,gj);this.b=this.C=this.i=this.j=this.w=this.u=0}p(Dd,ri);h=Dd.prototype;h.Db=function(a){a||(a=[U.Fa|U.$a,0,0,0,0,0]);a=ia(a);this.b=a.next().value;this.C=a.next().value;this.i=a.next().value;this.j=a.next().value;this.w=a.next().value;this.u=a.next().value;return!0};h.Tc=function(){return[this.b,this.C,this.i,this.j,this.w,this.u]};
h.Vb=function(a,b,c,d,e,f,g,k,l){g=0;a=a.ea;k=null;var m;a||(g=hj.ab,e=0);for(;e;){if(!k){k=a.seek(b,c,d+1);if(!k){g=hj.ab;break}m=0}var n,q;if(0>(n=a.read(k,m++))||0>(q=a.read(k,m++))){g=hj.ab;break}Ac(this.F,Oe(this.f,f),n|q<<8);if(ld(this.F)){g=hj.fc;break}f+=2;e--;if(m>=a.va&&(k=null,++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b>=a.ba)))){g=hj.ab;break}}return l?l(g,b,c,d,e,f):g};
h.Wc=function(a,b,c,d,e,f,g,k,l){g=0;a=a.ea;k=null;var m;a||(g=hj.ab,e=0);for(;e;){var n=Cc(this.F,Oe(this.f,f));if(ld(this.F)){g=hj.fc;break}f+=2;e--;if(!k){k=a.seek(b,c,d+1,!0);if(!k){g=hj.ab;break}m=0}if(!a.write(k,m++,n&255)||!a.write(k,m++,n>>8)){g=hj.ab;break}if(m>=a.va&&(k=null,++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b>=a.ba)))){g=hj.ab;break}}return l?l(g,b,c,d,e,f):g};
h.ef=function(a,b,c,d,e,f){this.C=f&65535;this.b=this.b&~U.Za|f>>16-U.na.Za&U.Za;this.u=f>>16&ij.bb;this.j=this.i=b<<jj.na.hc|(c?jj.Lc:0)|d&jj.be;this.w=65536-e&65535;a&&(this.b=this.b|a|U.hb);return!0};h.Hg=function(){return this.b&U.gc};
h.Yh=function(a){this.b=this.b&~U.Ta|a&U.Ta;this.u=this.u&60|(a&U.Za)>>U.na.Za;if(!(this.b&U.$a)){a=!0;var b,c="",d=this.g[(this.b&U.tb)>>U.na.tb],e=d.ea,f,g,k;this.b&=~U.Fa;switch(this.b&U.xa){case kj.vf:this.w&lj.Td&&(this.b&=U.Fa|U.xa|U.Za);this.w=d.status|this.j&jj.Lc|(e&&512==e.ba?lj.Oe:0);break;case kj.Mc:(this.i&jj.Ne)==jj.sf&&(b=this.i&jj.hc,c=(this.i&jj.uf)<<2,this.j=this.i&jj.tf?this.j+b:this.j-b,this.i=this.j=this.j&jj.hc|c);break;case kj.Ze:this.w=this.j;break;case kj.We:c="READ",b=this.Vb;
case kj.xf:c||(c="WRITE"),b||(b=this.Wc),f=this.i>>jj.na.hc,g=this.i&jj.Lc?1:0,k=this.i&jj.be,!e||f>=e.ba||k>=e.fa?this.b=this.b|hj.ab|U.hb:(a=65536-this.w&65535,e=(this.u&ij.bb)<<16|this.C,E(this)&&F(this,this.type+": "+c+"("+f+":"+g+":"+k+") "+u(e)+"--"+u(e+(a<<1)),!0,!0),a=b.call(this,d,f,g,k,a,e,2,!1,this.ef.bind(this)))}a&&(this.b=this.b|U.Fa|U.$a,this.b&U.Jb&&nd(this.f,this.Ra))}};h.Fg=function(){return this.C};h.Wh=function(a){this.C=a&mj.Ta};h.Ig=function(){return this.i};
h.Zh=function(a){this.i=a};h.Jg=function(){return this.w};h.$h=function(a){this.w=a};h.Gg=function(){return this.u};h.Xh=function(a){this.u=a&ij.bb;this.b=this.b&~U.Za|(this.u&3)<<U.na.Za};
var U=Ob.hf,mj=Ob.ff,jj=Ob.jf,lj=Ob.Kc,ij=Ob.gf,hj=Ob.Sd,kj=Ob.xa,nj={},gj=(nj[63744]=[null,null,Dd.prototype.Hg,Dd.prototype.Yh,"RLCS"],nj[63746]=[null,null,Dd.prototype.Fg,Dd.prototype.Wh,"RLBA"],nj[63748]=[null,null,Dd.prototype.Ig,Dd.prototype.Zh,"RLDA"],nj[63750]=[null,null,Dd.prototype.Jg,Dd.prototype.$h,"RLMP"],nj[63752]=[null,null,Dd.prototype.Gg,Dd.prototype.Xh,"RLBE"],nj);
function Fd(a){ri.call(this,"RX11",a,262144,Pb,Pb.kf,oj);this.I=this.G=this.i=this.L=this.b=this.C=0;this.j=V.Lb;this.u=0;this.w=Array(128).fill(0)}p(Fd,ri);h=Fd.prototype;h.Db=function(a){a?(a=ia(a),this.b=a.next().value,this.C=a.next().value,this.I=a.next().value,this.G=a.next().value,this.i=a.next().value,this.L=a.next().value,this.j=a.next().value,this.u=a.next().value,this.w=a.next().value):(this.C=this.b=0,this.G=this.I=1,this.L=this.i=0,this.j=V.ub,this.u=0,td(this.f,this.Ra),pj(this));return!0};
h.Tc=function(){return[this.b,this.C,this.I,this.G,this.i,this.L,this.j,this.u,this.w]};h.xe=function(a){a||this.Db()};function qj(a,b){b&&(a.L=b,a.C=a.i,a.b|=W.hb);a.j=V.Lb;a.b|=W.DONE;a.b&W.Jb&&nd(a.f,a.Ra)}
h.Vb=function(a,b,c,d,e,f,g,k,l){k=0;var m=a.ea,n=null,q;E(this)&&F(this,this.type+".readData("+b+":"+c+":"+d+") "+u(f)+"--"+u(f+(e<<1)),!0,!0);m||(k=a.Ub?rj.hd:rj.gd,e=0);for(;e;){if(!n){if(b>=m.ba){k=rj.Te;break}n=m.seek(b,c,d+1);if(!n){k=rj.rd;break}q=0;++d>=m.fa&&(d=0,++c>=m.la&&(c=0,++b))}var t;if(0>(a=m.read(n,q++))||0>(t=m.read(n,q++))){k=rj.qd;break}Ac(this.F,Oe(this.f,f),a|t<<8);q>=m.va&&(n=null);f+=g;e--}return l?l(k,b,c,d,e,f):k};
function pj(a){var b=0,c=a.b&W.vd?1:0,d=a.g[c],d=d&&d.ea,e=a.I&sj.bb,f=a.G&tj.bb;a.i&=~(uj.Od|uj.Yd|uj.dc|uj.Fa);if(d)if(a.i|=uj.Fa,E(a)&&F(a,a.type+".readSector("+e+":0:"+f+")",!0,!0),c=d.seek(e,0,f,!0)){e=0;for(f=a.w.length;e<f;){var g=d.read(c,e);if(0>g){b=rj.qd;break}a.w[e++]=g}c.Ff&&(a.i|=uj.dc)}else b=rj.rd;else b=c?rj.hd:rj.gd;qj(a,b)}
h.Lg=function(a,b){a=this.b;if(!b)switch(a&=W.gc,this.j){case V.cd:case V.EMPTY:this.u<this.w.length&&(this.b|=W.cb);break;case V.ub:case V.ic:case V.Nc:2>this.u&&(this.b|=W.cb)}return a};
h.bi=function(a){this.b=this.b&~W.Ta|a&W.Ta;if(this.b&W.INIT)this.Db();else if(this.b&W.ec&&this.j==V.Lb)switch(this.j=this.b&W.xa,this.b&=~(W.ec|W.cb|W.DONE|W.hb),td(this.f,this.Ra),E(this)&&F(this,this.type+".processCommand("+vj[this.j>>1]+")",!0,!0),this.j){case V.cd:case V.EMPTY:case V.ub:case V.ic:case V.Nc:this.u=0;break;case V.Ye:a=this.g[this.b&W.vd?1:0];this.i&=~uj.Fa;a&&a.ea&&(this.i|=uj.Fa);this.C=this.i;qj(this);break;case V.Xe:this.C=this.L,qj(this)}else this.b&W.Jb?this.b&W.DONE&&nd(this.f,
this.Ra):td(this.f,this.Ra)};h.Mg=function(a,b){if(!b)switch(this.j){case V.EMPTY:this.b&W.cb&&(this.b&=~W.cb,this.C=this.w[this.u]&255,E(this)&&F(this,this.type+".readByte("+this.u+"): "+v(this.C,2,!0),!0,!0),++this.u>=this.w.length&&qj(this))}return this.C};
h.ci=function(a){switch(this.j){case V.cd:this.b&W.cb&&(this.b&=~W.cb,this.w[this.u]=a&255,E(this)&&F(this,this.type+".writeByte("+this.u+","+v(a,2,!0)+")",!0,!0),++this.u>=this.w.length&&qj(this));break;case V.ub:case V.ic:case V.Nc:if(this.b&W.cb)switch(this.b&=~W.cb,this.u++){case 0:this.G=a;break;case 1:if(this.I=a,this.j==V.ub)pj(this);else{var b=this.j==V.Nc,c=0,d=this.b&W.vd?1:0,e=this.g[d],e=e&&e.ea,f=this.I&sj.bb,g=this.G&tj.bb;this.i&=~(uj.Od|uj.Yd|uj.dc|uj.Fa);if(e)if(this.i|=uj.Fa,E(this)&&
F(this,this.type+".writeSector("+f+":0:"+g+")",!0,!0),d=e.seek(f,0,g,!0))for(b&&(d.Ff=!0),b=0,f=this.w.length;b<f;){if(!e.write(d,b,this.w[b]&255)){c=rj.qd;break}b++}else c=rj.rd;else c=d?rj.hd:rj.gd;qj(this,c)}}}this.C=a};var W=Pb.lf,sj=Pb.pf,tj=Pb.nf,uj=Pb.mf,V=Pb.xa,rj=Pb.ERROR,vj="FILL EMPTY WRITE READ UNUSED RDSTAT WRDEL RDERR".split(" "),wj={},oj=(wj[65144]=[null,null,Fd.prototype.Lg,Fd.prototype.bi,"RXCS"],wj[65146]=[null,null,Fd.prototype.Mg,Fd.prototype.ci,"RXDB"],wj);
function xj(a){x.call(this,"Debugger",a);this.W=+a.base||16;this.qb=null;this.O=["{","}"];this.ka=["[","]"];this.w=0;this.R=!1;this.u=-1;this.j=[];this.L={}}p(xj,x);xj.prototype.se=function(){return-1};xj.prototype.Cd=function(){};
function yj(a,b,c,d){if(c)if(b){0>a.u&&a.j.length&&(a.u=0);if(0>a.u||b!=a.j[a.u])a.j.splice(0,0,b),a.u=0;a.u--}else a.R?b="end":b=a.j[a.u+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(za(b.substring(c,f))),c=f+1}}return a}
function zj(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a|0:(b=Math.pow(2,b-1),a<-b?(a<2*-b&&(d=a%(2*b)),d+=2*b):d>=b&&(a>=2*b&&(d=a%(2*b)),d-=2*b));a!=d&&(a=d);return a}
function Aj(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "^/":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=zj(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(zj(e))}return!0}
function Bj(a,b,c,d,e,f){var g,k,l,m=!1,n=0,q=[],t=[],r=a.W;for(a.W=e;c<d;){k=b[c++].trim();l=c<d?b[c++]:"";if(k)n=Cj(a,k,null,f,n);else if("{"==l){k=1;for(n=c;c<d;)if(c++,l=c<b.length?b[c++]:"","{"==l)k++;else if("}"==l&&!--k)break;n=Bj(a,b,n,c-1,a.W,f);k=c<d?b[c++].trim():"";l=c<d?b[c++]:""}else{if(" "==l)continue;if("^B"==l){a.W=2;continue}if("^O"==l){a.W=8;continue}if("^D"==l){a.W=10;continue}if(!(n&-1073741824)){if("+"==l)continue;if("-"==l){n=n<<2|1;continue}if("~"==l||"^-"==l){n=n<<2|2;continue}if("^L"==
l){n=n<<2|3;continue}}m=!0;break}if(void 0===n)if(null==a.za&&f)a.za=k,n=0;else{m=!0;f=!f;break}q.push(zj(n));if(" "==l)if(c<b.length-1&&!b[c])c++,l=b[c++];else{m=!0;break}if(!l)break;n="<"==a.N[0]?Dj:Ej;if(!n[l]){m=!0;break}t.length&&n[l]<=n[t[t.length-1]]&&Aj(q,t,1);t.push(l);a.W="^_"==l?10:e;n=0}if(m||!Aj(q,t)||1!=q.length)m=!0;m?!1===f&&a.v("parse error ("+(k||l)+")"):g=q.pop();a.W=r;return g}
l){n=n<<2|3;continue}}m=!0;break}if(void 0===n)if(null==a.qb&&f)a.qb=k,n=0;else{m=!0;f=!f;break}q.push(zj(n));if(" "==l)if(c<b.length-1&&!b[c])c++,l=b[c++];else{m=!0;break}if(!l)break;n="<"==a.O[0]?Dj:Ej;if(!n[l]){m=!0;break}t.length&&n[l]<=n[t[t.length-1]]&&Aj(q,t,1);t.push(l);a.W="^_"==l?10:e;n=0}if(m||!Aj(q,t)||1!=q.length)m=!0;m?!1===f&&a.v("parse error ("+(k||l)+")"):g=q.pop();a.W=r;return g}
function Fj(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var k=0,l=g+1,m=e;l<b.length;){var n=b[l++];if(n==c){m=-1;break}if(!m)break;m--;n=n.charCodeAt(0);7==d?n&=127:n=n-32&63;k=zj(k*Math.pow(2,d)+n,d*e,!0)}if(0<=m){!1===f&&a.v("parse error ("+b+")");break}else b=b.substr(0,g)+K(a,k,-1)+b.substr(l)}return b}
function Gj(a,b,c){var d=void 0;a.za=null;if(b){"{"!=a.N[0]&&(b=b.split(a.N[0]).join("{").split(a.N[1]).join("}"));b=Fj(a,b,'"',7,5,c);if(!b)return d;b=Fj(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*| )/);d=Bj(a,b,0,b.length,a.W,c);void 0!==d&&!1===c&&Hj(a,null,d)}return d}
function Cj(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.re(b),0<=f?f=a.Bd(f):(f=a.U[b],null==f&&(f=ma(b,1<b.length?a.W:10))),null!=f){for(;e;){switch(e&3){case 1:f=-zj(f);break;case 2:f|=-1;break;case 3:for(a=35;0<=a&&!(f&Math.pow(2,a));)a--;f=35-a}e>>>=2}f=zj(f)}else d||a.v("invalid "+(c?c:"value")+": "+b);else d||a.v("missing "+(c||"value"));return f}
function Hj(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.W?K(a,c,32,8,1)+" "+c+".":K(a,c,32,16,1)+" "+K(a,c,32,8,1)+" "+K(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.v((null!=b?b+": ":"")+d);return e}function Ij(a,b){if(b)return Hj(a,b,a.U[b]);var c=0;for(b in a.U)Hj(a,b,a.U[b]),c++;return 0<c}
function Gj(a,b,c){var d=void 0;a.qb=null;if(b){"{"!=a.O[0]&&(b=b.split(a.O[0]).join("{").split(a.O[1]).join("}"));b=Fj(a,b,'"',7,5,c);if(!b)return d;b=Fj(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*| )/);d=Bj(a,b,0,b.length,a.W,c);void 0!==d&&!1===c&&Hj(a,null,d)}return d}
function Cj(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b){f=a.se(b);if(0<=f)f=a.Cd(f);else if(f=a.L[b]&&a.L[b].value,null!=f){var g=a.L[b]&&a.L[b].qb;g&&(a.qb?(d||(a.v(b+" has too many undefined values ("+g+","+a.qb+")"),d=!0),f=void 0):a.qb=g)}else f=ma(b,1<b.length?a.W:10);if(null!=f){for(;e;){switch(e&3){case 1:f=-zj(f);break;case 2:f|=-1;break;case 3:for(a=35;0<=a&&!(f&Math.pow(2,a));)a--;f=35-a}e>>>=2}f=zj(f)}else d||a.v("invalid "+(c?c:"value")+": "+b)}else d||a.v("missing "+(c||"value"));return f}
function Hj(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.W?K(a,c,32,8,1)+" "+c+".":K(a,c,32,16,1)+" "+K(a,c,32,8,1)+" "+K(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.v((null!=b?b+": ":"")+d);return e}function Ij(a,b){if(b)return Hj(a,b,a.L[b].value);var c=0;for(b in a.L)Hj(a,b,a.L[b].value),c++;return 0<c}
function K(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.W){case 2:a=pa(b,0<c?c:0,e);break;case 8:a=u(b,0<c?(c+2)/3|0:0,!!e);break;case 10:a=qa(b,0<c?Math.ceil(.3*c):0);break;default:a=v(b,0<c?c+3>>2:0,!!e)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}
var Ej={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Dj={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
function Jj(a){xj.call(this,a);this.Ia=!1;this.N=["(",")"];this.ka=[];this.G=X();this.Ha=X();this.O=X();this.B=[];this.b=this.L=this.C=[];Kj(this);this.R=this.ha=0;this.i=[];this.ta=void 0;Lj(this);this.D=this;this.ma={};this.ja=this.ke=0;this.S=null;this.M=[];Mj(this,a.messages);this.ya=a.commands;this.La=Nj;this.Y=[];this.I=0;this.Qa=this.ua=null;this.w=this.Ka=this.Ja=this.Z=this.qa=0;this.g=this.X=null;var b=this;window?void 0===window[y]&&(window[y]=function(a){return le(b,a)}):void 0===global[y]&&
(global[y]=function(a){return le(b,a)})}p(Jj,xj);function Oj(a){a=a&&a.K;null==a&&(a=-1);return a}function X(a,b,c){return{K:void 0===a?null:a,Na:void 0===b?!1:b,Wa:!1,W:c}}h=Jj.prototype;h.Hd=function(a,b){a.K=b;a.Wa=!1;a.W=void 0;return a};function Pj(a){return[a.K,a.Na,a.W,a.Wa,a.Qc]}function Qj(a,b){var c=X(b[0],b[1],b[2]);c.Wa=b[3];b[4]&&(c.he=yj(a,c.Qc=b[4]));return c}
h.Ca=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.g=a.i;(a=ge(a,"messages"))&&Mj(this,a);1140>this.f.ka&&(this.Y=this.Y.concat(Rj));1145>this.f.ka&&(this.Y=this.Y.concat(Sj));rd(this,16,function(a){a:{var b=d.F.b,c=a[0],e=a=0,l=b.length;if(c){a=Oj(Tj(d,c));if(-1===a){d.v("invalid address: "+c);break a}e=a>>>d.F.g;l=1}d.v("blockid physical blockaddr used size type");d.v("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.v("..."):
(c=n.type,m=dd[c],n&&d.v(v(n.id,8)+" %"+v(e<<d.F.g,8)+" %"+v(n.K,8)+" "+ra(n.Xb)+" "+ra(n.size)+" "+m),c!=Hd&&(c=-1),m=0);a+=d.F.j;e++}}});C(this)};
function Jj(a){xj.call(this,a);this.Ha=!1;this.O=["(",")"];this.ka=[];this.G=X();this.Ga=X();this.P=X();this.B=[];this.b=this.M=this.C=[];Kj(this);this.S=this.ha=0;this.i=[];this.ta=void 0;Lj(this);this.D=this;this.ma={};this.ja=this.le=0;this.U=null;this.N=[];Mj(this,a.messages);this.ya=a.commands;this.Ka=Nj;this.Y=[];this.I=0;this.La=this.ua=null;this.w=this.Ja=this.Ia=this.Z=this.qa=0;this.g=this.X=null;var b=this;window?void 0===window[y]&&(window[y]=function(a){return le(b,a)}):void 0===global[y]&&
(global[y]=function(a){return le(b,a)})}p(Jj,xj);function Oj(a){a=a&&a.K;null==a&&(a=-1);return a}function X(a,b,c){return{K:void 0===a?null:a,Na:void 0===b?!1:b,Va:!1,W:c}}h=Jj.prototype;h.Id=function(a,b){a.K=b;a.Va=!1;a.W=void 0;return a};function Pj(a){return[a.K,a.Na,a.W,a.Va,a.Rc]}function Qj(a,b){var c=X(b[0],b[1],b[2]);c.Va=b[3];b[4]&&(c.ie=yj(a,c.Rc=b[4]));return c}
h.Ba=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.g=a.i;(a=ge(a,"messages"))&&Mj(this,a);1140>this.f.ka&&(this.Y=this.Y.concat(Rj));1145>this.f.ka&&(this.Y=this.Y.concat(Sj));rd(this,16,function(a){a:{var b=d.F.b,c=a[0],e=a=0,l=b.length;if(c){a=Oj(Tj(d,c));if(-1===a){d.v("invalid address: "+c);break a}e=a>>>d.F.g;l=1}d.v("blockid physical blockaddr used size type");d.v("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.v("..."):
(c=n.type,m=dd[c],n&&d.v(v(n.id,8)+" %"+v(e<<d.F.g,8)+" %"+v(n.K,8)+" "+ra(n.Yb)+" "+ra(n.size)+" "+m),c!=Hd&&(c=-1),m=0);a+=d.F.j;e++}}});C(this)};
h.wa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.X=this.H[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",le(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.u<d.j.length-1&&(b=d.j[++d.u])):40==a.keyCode&&(0<d.u?b=d.j[--d.u]:(b="",d.u=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.H[b]=c,Qa(c,function(){if(d.X){var a=d.X.value;d.X.value=
"";le(d,a,!0);return!0}return!1}),!0;case "step":return this.H[b]=c,Qa(c,function(a){var b=!1;Eb(d,!0)||(Fb(d,!0),b=vc(d,a?1:0,null),Fb(d,!1));return b}),!0}return!1};function ke(a){if(a.X){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.X.focus();window&&window.scrollTo(b,c)}}h.Pd=function(a,b){var c=255,d=Oj(a);-1!==d&&(a.Na||65535<d?(c=this.F,d=Oe(this.f,d),c.C=!1,c.oa++,d=fd(c,d).J(d&c.i,d),c.oa--):(c=this.f,c.qa++,d=c.F.Ld(Bc(c,d,3)),c.qa--),c=d,b&&Uj(a,b));return c};
h.Ta=function(a,b){var c=65535,d=Oj(a);-1!==d&&(c=a.Na||65535<d?Cc(this.F,Oe(this.f,d)):Dc(this.f,d),b&&Uj(a,b));return c};h.Qd=function(a,b,c){var d=Oj(a);if(-1!==d){if(a.Na||65535<d)gd(this.F,Oe(this.f,d),b);else{var e=this.f;e.qa++;e.F.Md(Bc(e,d,5),b);e.qa--}c&&Uj(a,c);H(this.J,-1)}};h.Le=function(a,b,c){var d=Oj(a);if(-1!==d){if(a.Na||65535<d)Ac(this.F,Oe(this.f,d),b);else{var e=this.f;e.qa++;e.F.ac(Bc(e,d,4),b);e.qa--}c&&Uj(a,c);H(this.J,-1)}};
function Tj(a,b,c){var d;c=(c?a.G:a.Ha).K;var e,f;if(void 0!==b){a:{var g;d=a.N[0];c=a.N[1];g="("==d||"{"==d||"["==d?"\\":"";for(var k="["==d?"\\":"",k=new RegExp(g+d+"([^"+k+d+k+c+"]+)"+g+c);g=b.match(k);){var l=Gj(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(d+g[1]+c,null!=l?K(a,l):"undefined")}if(a.ka.length)for(d=a.ka[0],c=a.ka[1],g="("==d||"{"==d||"["==d?"\\":"",k="["==d?"\\":"",k=new RegExp(g+d+"([^"+k+d+k+c+"]+)"+g+c);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){c=
null;switch(d[1].toLowerCase()){case "ops":c=0}if(null==c)break;b=b.replace(d[0],c.toString())}}"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var m,n;a:{c=a.F;g=d.toUpperCase();for(n in c.Ra)if(k=+n,c.Ra[k][4]==g){n=c.B+k;break a}n=null}if(null==n&&d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.B.length;c++)if(g=a.B[c].ia[d],null!=g){n=g.o;break}null!=n&&(m=X(n));if(d=m)return d;0<=b.indexOf("0x")?f=16:0<=b.indexOf("0o")?f=8:0<=b.indexOf(".")&&(f=10);c=Gj(a,b)}null!=c&&(d=X(c,e,f));return d}
function Vj(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.he=yj(a,b.Qc=c[2]))}function Uj(a,b){null!=a.K&&(a.K+=b||1)}function Wj(a,b){return(b.Na?"%":"")+K(a,b.K)}
function Mj(a,b){a.D=a;a.ja=a.ke=536870912;a.S=null;a.M=[];b=yj(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Rb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ja|=Rb[c],a.v(c+" messages enabled"))}}function rd(a,b,c){for(var d in Rb)if(b==Rb[d]){a.ma[d]=c;break}}
h.re=function(a){a=a.toUpperCase();var b=Xj[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Yj(a,b){var c;if(b<Zj||a.g)c=ak[b];return c||""}
h.Bd=function(a){var b;if(0<=a)if(8>a)b=this.f.g[a];else if(16>a)b=this.f.ua[a-8];else if(20>a)b=this.f.Y[a-16];else{var c=this.f,d=this.g;switch(a){case bk:b=Ad(this.f);break;case ck:b=c.ob;break;case dk:b=c.P;break;case ek:b=c.za&65280;break;case fk:b=ud(c);break;case gk:b=wd(c);break;case hk:b=xd(c);break;case ik:b=c.X;break;case Zj:d&&(b=d.ga);break;case jk:d&&(b=d.Eb);break;case kk:d&&(b=d.Ya)}}return b};
h.message=function(a,b){b&&(a+=" @"+Wj(this,X(this.f.O&65535)));if(!this.S||a!=this.S)if(this.S=a,this.ja&1073741824)this.M.push(a);else{var c;if(this.ja&-2147483648&&this.f&&(c=this.f.A.V)||Eb(this,!0))this.da(),c&&(a+=" (cpu halted)");this.v(a);this.f&&(a=this.f,re(a),a.Ab=0,a.J&&H(a.J,void 0))}};
function Lj(a){var b;if(!bf(a))a.i&&a.i.length&&a.v("instruction history buffer freed"),a.R=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(lk);for(b=0;b<a.i.length;b++)a.i[b]=X();a.R=0;a.v("instruction history buffer allocated")}}function mk(a,b,c){if(!nk(a,c))return!1;uc(a.f,b);return!0}
function vc(a,b,c,d){if(!nk(a))return!1;var e="";null===c&&(e=(c=!a.ua||"tr"==a.ua)?"tr":"t");a.w=0;b||bf(a)&&cf(a,a.f.g[7],0);try{b=se(a.f,b);var f=a.f.Cc(b);0<f&&(wc(a.f,f),a.w+=f,xc(a.f,f,!0),yc(a.f,f),a.Z++)}catch(g){"number"!=typeof g&&(a.w=0,Bb(a.f,g.stack||g.message))}!1!==d&&(a.g&&a.g.stop(),H(a.J,-1));je(a,c||!1,e);return 0<a.w}h.da=function(a){this.f&&this.f.da(a)};
function je(a,b,c){if(a.Ia){void 0===b&&(b=!0);c&&a.v(ok+c);c=a.f;if(c=c.i&128?c.Ec|c.Dc<<8:0){var d=c>>8;a.v("trapped to "+K(a,c&255,8)+" ("+(0>d?Mb[-d]:K(a,d))+")")}a.G=X(a.f.g[7]);b&&1!=a.I?pk(a):qk(a)}}function nk(a,b){var c;(c=!a.f||!Db(a.f))||(c=a.f,c.A.ca?c=!0:(c.v(c.toString()+" not powered"),c=!1),c=!c);return c||a.f.A.V?(b||a.v("cpu busy or unavailable, command ignored"),!1):!Cb(a.f)}h.Ea=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};
h.Da=function(a,b){b&&this.v(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){Lj(this);this.Z=0;this.S=null;this.w=0;this.G=X(this.f.g[7]);this.A.V=!1;rk(this);a||je(this)};h.save=function(){var a=new G(this);a.set(0,Pj(this.G));a.set(1,Pj(this.O));a.set(2,[this.j,this.P,this.ja]);a.set(3,this.B);return a.data()};
h.restore=function(a){var b=0;void 0!==a[2]&&(this.G=Qj(this,a[b++]),this.O=Qj(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.P=a[b][1],this.ja|=a[b][2]);a[3]&&(this.B=a[3]);return!0};h.start=function(a,b){this.I||this.v("running");this.A.V=!0;this.Ja=a;this.Ka=b};
h.stop=function(a,b){if(this.A.V){this.A.V=!1;this.w=b-this.Ka;if(!this.I){b="stopped";if(this.w){a-=this.Ja;var c=0<a?Math.round(1E3*this.w/a):0;b+=" (";bf(this)&&(b+=this.Z+" instructions, ",this.Z=0);b+=this.w+" cycles, "+a+" ms, "+c+" hz)"}else E(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.v(b)}je(this,!0);ke(this);rk(this,this.f.g[7]);this.S=null}};function bf(a){return 1<a.b.length||!!a.ha}
function cf(a,b,c){var d=-1;c||(d=Dc(a.f,b))||(a.f.O&65535)!=b||(b=Fe(a.f,2));if(0<c&&(a.ha&&!--a.ha||sk(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.Z++,0>d&&(d=Dc(a.f,b)),65535!=(d&65535)&&(a.Hd(a.i[a.R],b),++a.R==a.i.length&&(a.R=0)));return!1}function Dg(a){var b=a.f;if(b.A.V)throw rc(b,a.f.O&65535),a.da(),-1;return!1}function ae(a,b,c){sk(a,b,c||1,a.L)&&a.da(!1)}function be(a,b,c){sk(a,b,c||1,a.C)&&a.da(!1)}
function Kj(a){var b,c,d;a.b=["bp"];if(a.L)for(b=1;b<a.L.length;b++)c=a.L[b],d=Oj(c),c.Na?(c=a.F,$d(c.b[d>>>c.g],!1)):Re(a.f,!1);a.L=["br"];if(a.C)for(b=1;b<a.C.length;b++)c=a.C[b],d=Oj(c),c.Na?(c=a.F,$d(c.b[d>>>c.g],!0)):Re(a.f,!0);a.C=["bw"];a.qa=0;a.ha=0}
h.Bb=function(a,b,c){var d=!0;c||tk(this,a,b,!1,!0);if(a!=this.b){var e=Oj(b);if(-1===e)this.v("invalid address: "+Wj(this,b)),d=!1;else{var f=a==this.C;65535<e&&(b.Na=!0);if(b.Na){var g=this.F;g.b[e>>>g.g].Bb(e&g.i,f)}else e=this.f,(f?e.tc++:e.sc++)||ye(e)}}d&&(a.push(b),c?b.Wa=!0:(uk(this,a,a.length-1,"set"),Lj(this)));return d};
function tk(a,b,c,d,e){var f=!1;c=Oj(c);for(var g=1;g<b.length;g++){var k=b[g];if(c==Oj(k)&&(!d||k.Wa)){f=!0;k.Wa||e||uk(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(b=b==a.C,k.Na?(d=a.F,$d(d.b[c>>>d.g],b)):Re(a.f,b));k.Wa||Lj(a);break}}return f}function vk(a,b){for(var c=1;c<b.length;c++)uk(a,b,c);return b.length-1}function uk(a,b,c,d){c=b[c];a.v(b[0]+" "+Wj(a,c)+(d?" "+d:c.Qc?' "'+c.Qc+'"':""))}
function rk(a,b){if(void 0!==b)sk(a,b,1,a.b,!0),a.I=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.Wa){if(!tk(a,a.b,c,!0))break;b=0}}}
function sk(a,b,c,d,e){var f=!1;if(!a.qa++)for(var g=1;!f&&g<d.length;g++){var k=d[g];if(!e||k.Wa)for(var l=Oj(k)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;k.Wa&&(tk(a,d,k,!0),e=!0);if(n=k.he){for(var f=!1,q=0;q<n.length;q++)if(!wk(a,n[q],!0)){if(n[q].indexOf("if")){f=!0;break}for(var t=q+1;t<n.length&&n[t].indexOf("else");t++)q++;if(t==n.length){f=!0;break}}a.f.A.V||(f=!0)}if(f){e||uk(a,d,g,"hit");break}}}a.qa--;return f}
function xk(a,b,c,d){var e=X(b.K),f=a.Ta(b,2),g,k;for(k in a.La)if(g=a.La[k][f&k])break;g||(g=yk);var l=g[0];0<=a.Y.indexOf(l)&&(g=yk,l=g[0]);var m=k="",n=zk[l],q=g.length-1;l||q||(k=K(a,f));for(l=1;l<=q;l++){var t=g[l];if(void 0!==t){var r;r=a;var D=t,t=b,A="",B=D&Ak;if(B==Y)t=t.K+((f&255)<<24>>23)&65535,A=K(r,t);else if(B==Bk)t=t.K-((f&63)<<1)&65535,A=K(r,t);else if(B==Ck)A=K(r,f&7,3);else if(B==Dk)A=K(r,f&63,6);else if(B==Ek)A=K(r,f&255,8);else if(B=f&D,D&Fk&&(B>>=6,D>>=6),D&Z){var D=null,J=B&
Gk;switch(B&Hk){case 0:A=Yj(r,J);break;case 8:A="@"+Yj(r,J);D=Ik(r,r.f.g[J]);break;case 16:7>J?A="("+Yj(r,J)+")+":(B=r.Ta(t,2),A="#"+K(r,B,-1));break;case 24:7>J?A="@("+Yj(r,J)+")+":(B=r.Ta(t,2),A="@#"+K(r,B,-1),D=Ik(r,B));break;case 32:A="-("+Yj(r,J)+")";break;case 40:A="@-("+Yj(r,J)+")";break;case 48:B=r.Ta(t,2);A=K(r,B,-1)+"("+Yj(r,J)+")";7==J&&(A=K(r,B=B+t.K&65535),D=Ik(r,B));break;case 56:B=r.Ta(t,2),A="@"+K(r,B)+"("+Yj(r,J)+")",7==J&&(A="@"+K(r,B=B+t.K&65535),D=Ik(r,Dc(r.f,B)))}D&&(A=[A,D])}r=
A;if(!r||!r.length){k="INVALID";break}"string"!=typeof r&&(m=r[1],r=r[0]);0<k.length&&(k+=",");k+=r||"???"}}f="";g=Wj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+K(a,a.Ta(e,2)),null==e.K)break;while(e.K!=b.K)}g+=ya(f,24);g+=ya(n,5);k&&(g+=" "+k);if(c||m)g=ya(g,60)+";"+(c||""),g=a.f.A.Nb?g+("cycles="+me(a.f).toString()+" cs="+v(a.f.oc)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
function Ik(a,b){b=Pe(a.f,b)[0];b>=a.f.ub&&b<a.F.B&&(b=b-a.f.ub+a.F.B);var c=a.F;a=null;b>=c.B&&(b=c.Ra[b&kd])&&(a=b[4]);return a}function Jk(a,b){switch(b){case "N":a=Ee(a.f);break;case "Z":a=De(a.f);break;case "V":a=Ce(a.f);break;case "C":a=Be(a.f);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Kk(a,b){var c=Yj(a,b);c&&(c+="="+K(a,a.Bd(b))+" ");return c}
function Lk(a,b){var c,d="";for(c=0;6>c;c++)d+=Kk(a,c);d=d+"\n"+(Kk(a,6)+Kk(a,7));d+=Kk(a,bk)+Kk(a,ck)+Kk(a,ek);d+=Jk(a,"T")+Jk(a,"N")+Jk(a,"Z")+Jk(a,"V")+Jk(a,"C");b&&(b=d,c=""+(Kk(a,fk)+Kk(a,gk)),c+=Kk(a,hk)+Kk(a,ik)+Kk(a,dk),c=c+"\n"+(Kk(a,kk)+Kk(a,Zj)+Kk(a,jk)),d=b+("\n"+c));return d}h.me=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Dh(a,b,c,d,e){var f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var l=k.o,m=k.a;if(void 0!==l){var n=f,l=[l>>>0,g],q=Ba(n,l,a.me);0>q&&n.splice(-(q+1),0,l)}m&&(k.a=m.replace(/''/g,'"'))}a.B.push({Hk:b,K:c,Lf:d,ia:e,ie:f})}function Mk(a,b,c){var d=[],e=Oj(b)>>>0;for(b=0;b<a.B.length;b++){var f=a.B[b],g=f.K>>>0,k=f.Lf;if(e>=g&&e<g+k){e=Ba(f.ie,[e-g],a.me);0<=e?Nk(a,b,e,d):c&&(e=~e,Nk(a,b,e-1,d),Nk(a,b,e,d));break}}return d}
function Nk(a,b,c,d){var e={},f=a.B[b].ie,g=0,k=null;0<=c&&c<f.length&&(g=f[c][0],k=f[c][1]);k&&(e=a.B[b].ia[k],k="."==k.charAt(0)?null:e.l||k);d.push(k);d.push(g);d.push(e.a);d.push(e.c)}function Ok(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ij(a)||a.v("no variables"),!0;if(!c[2])return Ij(a,c[1]);if(!c[3])return delete a.U[c[1]],!0;b=Gj(a,c[3]);return void 0!==b?(a.U[c[1]]=b,!0):!1}a.v("invalid assignment:"+b);return!1}
"";le(d,a,!0);return!0}return!1}),!0;case "step":return this.H[b]=c,Qa(c,function(a){var b=!1;Eb(d,!0)||(Fb(d,!0),b=vc(d,a?1:0,null),Fb(d,!1));return b}),!0}return!1};function ke(a){if(a.X){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.X.focus();window&&window.scrollTo(b,c)}}h.Qd=function(a,b){var c=255,d=Oj(a);-1!==d&&(a.Na||65535<d?(c=this.F,d=Oe(this.f,d),c.C=!1,c.oa++,d=fd(c,d).J(d&c.i,d),c.oa--):(c=this.f,c.qa++,d=c.F.Md(Bc(c,d,3)),c.qa--),c=d,b&&Uj(a,b));return c};
h.Sa=function(a,b){var c=65535,d=Oj(a);-1!==d&&(c=a.Na||65535<d?Cc(this.F,Oe(this.f,d)):Dc(this.f,d),b&&Uj(a,b));return c};h.Rd=function(a,b,c){var d=Oj(a);if(-1!==d){if(a.Na||65535<d)gd(this.F,Oe(this.f,d),b);else{var e=this.f;e.qa++;e.F.Nd(Bc(e,d,5),b);e.qa--}c&&Uj(a,c);H(this.J,-1)}};h.Me=function(a,b,c){var d=Oj(a);if(-1!==d){if(a.Na||65535<d)Ac(this.F,Oe(this.f,d),b);else{var e=this.f;e.qa++;e.F.bc(Bc(e,d,4),b);e.qa--}c&&Uj(a,c);H(this.J,-1)}};
function Tj(a,b,c){var d;c=(c?a.G:a.Ga).K;var e,f;if(void 0!==b){a:{var g;d=a.O[0];c=a.O[1];g="("==d||"{"==d||"["==d?"\\":"";for(var k="["==d?"\\":"",k=new RegExp(g+d+"([^"+k+d+k+c+"]+)"+g+c);g=b.match(k);){var l=Gj(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(d+g[1]+c,null!=l?K(a,l):"undefined")}if(a.ka.length)for(d=a.ka[0],c=a.ka[1],g="("==d||"{"==d||"["==d?"\\":"",k="["==d?"\\":"",k=new RegExp(g+d+"([^"+k+d+k+c+"]+)"+g+c);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){c=
null;switch(d[1].toLowerCase()){case "ops":c=0}if(null==c)break;b=b.replace(d[0],c.toString())}}"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var m,n;a:{c=a.F;g=d.toUpperCase();for(n in c.Qa)if(k=+n,c.Qa[k][4]==g){n=c.B+k;break a}n=null}if(null==n&&d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.B.length;c++)if(g=a.B[c].ia[d],null!=g){n=g.o;break}null!=n&&(m=X(n));if(d=m)return d;0<=b.indexOf("0x")?f=16:0<=b.indexOf("0o")?f=8:0<=b.indexOf(".")&&(f=10);c=Gj(a,b)}null!=c&&(d=X(c,e,f));return d}
function Vj(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.ie=yj(a,b.Rc=c[2]))}function Uj(a,b){null!=a.K&&(a.K+=b||1)}function Wj(a,b){return(b.Na?"%":"")+K(a,b.K)}
function Mj(a,b){a.D=a;a.ja=a.le=536870912;a.U=null;a.N=[];b=yj(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Rb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ja|=Rb[c],a.v(c+" messages enabled"))}}function rd(a,b,c){for(var d in Rb)if(b==Rb[d]){a.ma[d]=c;break}}
h.se=function(a){a=a.toUpperCase();var b=Xj[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Yj(a,b){var c;if(b<Zj||a.g)c=ak[b];return c||""}
h.Cd=function(a){var b;if(0<=a)if(8>a)b=this.f.g[a];else if(16>a)b=this.f.ua[a-8];else if(20>a)b=this.f.Y[a-16];else{var c=this.f,d=this.g;switch(a){case bk:b=Ad(this.f);break;case ck:b=c.ob;break;case dk:b=c.P;break;case ek:b=c.Ga&65280;break;case fk:b=ud(c);break;case gk:b=wd(c);break;case hk:b=xd(c);break;case ik:b=c.X;break;case Zj:d&&(b=d.ga);break;case jk:d&&(b=d.Fb);break;case kk:d&&(b=d.Xa)}}return b};
h.message=function(a,b){b&&(a+=" @"+Wj(this,X(this.f.O&65535)));if(!this.U||a!=this.U)if(this.U=a,this.ja&1073741824)this.N.push(a);else{var c;if(this.ja&-2147483648&&this.f&&(c=this.f.A.V)||Eb(this,!0))this.da(),c&&(a+=" (cpu halted)");this.v(a);this.f&&(a=this.f,re(a),a.Bb=0,a.J&&H(a.J,void 0))}};
function Lj(a){var b;if(!bf(a))a.i&&a.i.length&&a.v("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(lk);for(b=0;b<a.i.length;b++)a.i[b]=X();a.S=0;a.v("instruction history buffer allocated")}}function mk(a,b,c){if(!nk(a,c))return!1;uc(a.f,b);return!0}
function vc(a,b,c,d){if(!nk(a))return!1;var e="";null===c&&(e=(c=!a.ua||"tr"==a.ua)?"tr":"t");a.w=0;b||bf(a)&&cf(a,a.f.g[7],0);try{b=se(a.f,b);var f=a.f.Dc(b);0<f&&(wc(a.f,f),a.w+=f,xc(a.f,f,!0),yc(a.f,f),a.Z++)}catch(g){"number"!=typeof g&&(a.w=0,Bb(a.f,g.stack||g.message))}!1!==d&&(a.g&&a.g.stop(),H(a.J,-1));je(a,c||!1,e);return 0<a.w}h.da=function(a){this.f&&this.f.da(a)};
function je(a,b,c){if(a.Ha){void 0===b&&(b=!0);c&&a.v(ok+c);c=a.f;if(c=c.i&128?c.Fc|c.Ec<<8:0){var d=c>>8;a.v("trapped to "+K(a,c&255,8)+" ("+(0>d?Mb[-d]:K(a,d))+")")}a.G=X(a.f.g[7]);b&&1!=a.I?pk(a):qk(a)}}function nk(a,b){var c;(c=!a.f||!Db(a.f))||(c=a.f,c.A.ca?c=!0:(c.v(c.toString()+" not powered"),c=!1),c=!c);return c||a.f.A.V?(b||a.v("cpu busy or unavailable, command ignored"),!1):!Cb(a.f)}h.Da=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};
h.Ca=function(a,b){b&&this.v(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){Lj(this);this.Z=0;this.U=null;this.w=0;this.G=X(this.f.g[7]);this.A.V=!1;rk(this);a||je(this)};h.save=function(){var a=new G(this);a.set(0,Pj(this.G));a.set(1,Pj(this.P));a.set(2,[this.j,this.R,this.ja]);a.set(3,this.B);return a.data()};
h.restore=function(a){var b=0;void 0!==a[2]&&(this.G=Qj(this,a[b++]),this.P=Qj(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.R=a[b][1],this.ja|=a[b][2]);a[3]&&(this.B=a[3]);return!0};h.start=function(a,b){this.I||this.v("running");this.A.V=!0;this.Ia=a;this.Ja=b};
h.stop=function(a,b){if(this.A.V){this.A.V=!1;this.w=b-this.Ja;if(!this.I){b="stopped";if(this.w){a-=this.Ia;var c=0<a?Math.round(1E3*this.w/a):0;b+=" (";bf(this)&&(b+=this.Z+" instructions, ",this.Z=0);b+=this.w+" cycles, "+a+" ms, "+c+" hz)"}else E(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.v(b)}je(this,!0);ke(this);rk(this,this.f.g[7]);this.U=null}};function bf(a){return 1<a.b.length||!!a.ha}
function cf(a,b,c){var d=-1;c||(d=Dc(a.f,b))||(a.f.O&65535)!=b||(b=Fe(a.f,2));if(0<c&&(a.ha&&!--a.ha||sk(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.Z++,0>d&&(d=Dc(a.f,b)),65535!=(d&65535)&&(a.Id(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}function Dg(a){var b=a.f;if(b.A.V)throw rc(b,a.f.O&65535),a.da(),-1;return!1}function ae(a,b,c){sk(a,b,c||1,a.M)&&a.da(!1)}function be(a,b,c){sk(a,b,c||1,a.C)&&a.da(!1)}
function Kj(a){var b,c,d;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++)c=a.M[b],d=Oj(c),c.Na?(c=a.F,$d(c.b[d>>>c.g],!1)):Re(a.f,!1);a.M=["br"];if(a.C)for(b=1;b<a.C.length;b++)c=a.C[b],d=Oj(c),c.Na?(c=a.F,$d(c.b[d>>>c.g],!0)):Re(a.f,!0);a.C=["bw"];a.qa=0;a.ha=0}
h.Cb=function(a,b,c){var d=!0;c||tk(this,a,b,!1,!0);if(a!=this.b){var e=Oj(b);if(-1===e)this.v("invalid address: "+Wj(this,b)),d=!1;else{var f=a==this.C;65535<e&&(b.Na=!0);if(b.Na){var g=this.F;g.b[e>>>g.g].Cb(e&g.i,f)}else e=this.f,(f?e.uc++:e.tc++)||ye(e)}}d&&(a.push(b),c?b.Va=!0:(uk(this,a,a.length-1,"set"),Lj(this)));return d};
function tk(a,b,c,d,e){var f=!1;c=Oj(c);for(var g=1;g<b.length;g++){var k=b[g];if(c==Oj(k)&&(!d||k.Va)){f=!0;k.Va||e||uk(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(b=b==a.C,k.Na?(d=a.F,$d(d.b[c>>>d.g],b)):Re(a.f,b));k.Va||Lj(a);break}}return f}function vk(a,b){for(var c=1;c<b.length;c++)uk(a,b,c);return b.length-1}function uk(a,b,c,d){c=b[c];a.v(b[0]+" "+Wj(a,c)+(d?" "+d:c.Rc?' "'+c.Rc+'"':""))}
function rk(a,b){if(void 0!==b)sk(a,b,1,a.b,!0),a.I=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.Va){if(!tk(a,a.b,c,!0))break;b=0}}}
function sk(a,b,c,d,e){var f=!1;if(!a.qa++)for(var g=1;!f&&g<d.length;g++){var k=d[g];if(!e||k.Va)for(var l=Oj(k)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;k.Va&&(tk(a,d,k,!0),e=!0);if(n=k.ie){for(var f=!1,q=0;q<n.length;q++)if(!wk(a,n[q],!0)){if(n[q].indexOf("if")){f=!0;break}for(var t=q+1;t<n.length&&n[t].indexOf("else");t++)q++;if(t==n.length){f=!0;break}}a.f.A.V||(f=!0)}if(f){e||uk(a,d,g,"hit");break}}}a.qa--;return f}
function xk(a,b,c,d){var e=X(b.K),f=a.Sa(b,2),g,k;for(k in a.Ka)if(g=a.Ka[k][f&k])break;g||(g=yk);var l=g[0];0<=a.Y.indexOf(l)&&(g=yk,l=g[0]);var m=k="",n=zk[l],q=g.length-1;l||q||(k=K(a,f));for(l=1;l<=q;l++){var t=g[l];if(void 0!==t){var r;r=a;var D=t,t=b,A="",B=D&Ak;if(B==Y)t=t.K+((f&255)<<24>>23)&65535,A=K(r,t);else if(B==Bk)t=t.K-((f&63)<<1)&65535,A=K(r,t);else if(B==Ck)A=K(r,f&7,3);else if(B==Dk)A=K(r,f&63,6);else if(B==Ek)A=K(r,f&255,8);else if(B=f&D,D&Fk&&(B>>=6,D>>=6),D&Z){var D=null,J=B&
Gk;switch(B&Hk){case 0:A=Yj(r,J);break;case 8:A="@"+Yj(r,J);D=Ik(r,r.f.g[J]);break;case 16:7>J?A="("+Yj(r,J)+")+":(B=r.Sa(t,2),A="#"+K(r,B,-1));break;case 24:7>J?A="@("+Yj(r,J)+")+":(B=r.Sa(t,2),A="@#"+K(r,B,-1),D=Ik(r,B));break;case 32:A="-("+Yj(r,J)+")";break;case 40:A="@-("+Yj(r,J)+")";break;case 48:B=r.Sa(t,2);A=K(r,B,-1)+"("+Yj(r,J)+")";7==J&&(A=K(r,B=B+t.K&65535),D=Ik(r,B));break;case 56:B=r.Sa(t,2),A="@"+K(r,B)+"("+Yj(r,J)+")",7==J&&(A="@"+K(r,B=B+t.K&65535),D=Ik(r,Dc(r.f,B)))}D&&(A=[A,D])}r=
A;if(!r||!r.length){k="INVALID";break}"string"!=typeof r&&(m=r[1],r=r[0]);0<k.length&&(k+=",");k+=r||"???"}}f="";g=Wj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+K(a,a.Sa(e,2)),null==e.K)break;while(e.K!=b.K)}g+=ya(f,24);g+=ya(n,5);k&&(g+=" "+k);if(c||m)g=ya(g,60)+";"+(c||""),g=a.f.A.Ob?g+("cycles="+me(a.f).toString()+" cs="+v(a.f.pc)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
function Ik(a,b){b=Pe(a.f,b)[0];b>=a.f.vb&&b<a.F.B&&(b=b-a.f.vb+a.F.B);var c=a.F;a=null;b>=c.B&&(b=c.Qa[b&kd])&&(a=b[4]);return a}function Jk(a,b){switch(b){case "N":a=Ee(a.f);break;case "Z":a=De(a.f);break;case "V":a=Ce(a.f);break;case "C":a=Be(a.f);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Kk(a,b){var c=Yj(a,b);c&&(c+="="+K(a,a.Cd(b))+" ");return c}
function Lk(a,b){var c,d="";for(c=0;6>c;c++)d+=Kk(a,c);d=d+"\n"+(Kk(a,6)+Kk(a,7));d+=Kk(a,bk)+Kk(a,ck)+Kk(a,ek);d+=Jk(a,"T")+Jk(a,"N")+Jk(a,"Z")+Jk(a,"V")+Jk(a,"C");b&&(b=d,c=""+(Kk(a,fk)+Kk(a,gk)),c+=Kk(a,hk)+Kk(a,ik)+Kk(a,dk),c=c+"\n"+(Kk(a,kk)+Kk(a,Zj)+Kk(a,jk)),d=b+("\n"+c));return d}h.ne=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Dh(a,b,c,d,e){var f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var l=k.o,m=k.a;if(void 0!==l){var n=f,l=[l>>>0,g],q=Ba(n,l,a.ne);0>q&&n.splice(-(q+1),0,l)}m&&(k.a=m.replace(/''/g,'"'))}a.B.push({Ik:b,K:c,Mf:d,ia:e,je:f})}function Mk(a,b,c){var d=[],e=Oj(b)>>>0;for(b=0;b<a.B.length;b++){var f=a.B[b],g=f.K>>>0,k=f.Mf;if(e>=g&&e<g+k){e=Ba(f.je,[e-g],a.ne);0<=e?Nk(a,b,e,d):c&&(e=~e,Nk(a,b,e-1,d),Nk(a,b,e,d));break}}return d}
function Nk(a,b,c,d){var e={},f=a.B[b].je,g=0,k=null;0<=c&&c<f.length&&(g=f[c][0],k=f[c][1]);k&&(e=a.B[b].ia[k],k="."==k.charAt(0)?null:e.l||k);d.push(k);d.push(g);d.push(e.a);d.push(e.c)}function Ok(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ij(a)||a.v("no variables"),!0;if(!c[2])return Ij(a,c[1]);if(!c[3])return delete a.L[c[1]],!0;b=Gj(a,c[3]);return void 0!==b?(a.L[c[1]]={value:b,qb:void 0},!0):!1}a.v("invalid assignment:"+b);return!1}
function Pk(a,b,c){var d=null;if(b=Tj(a,b,!0)){var e=Mk(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.K-e[1])&&(g=" + "+ra(f)),f=e[0]+" ("+K(a,e[1])+")"+g,c&&a.v(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.K)&&(g=" - "+ra(f)),f=e[4]+" ("+K(a,e[5])+")"+g,c&&a.v(f),d||(d=f))}else c&&a.v("no symbols")}return d}
function pk(a,b){var c;if(b&&"?"==b[1])a.v("register commands:"),a.v("\tr\tdump registers"),a.v("\trm\tdump misc registers"),a.v("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.f;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.v("missing value for "+b[1]);return}g=Gj(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.g[6]=g&65535;break;case "PC":case "R7":rc(e,
g);a.G=X(e.g[7]);break;case "N":e.I=g?32768:0;break;case "Z":e.L=g?0:1;break;case "V":e.G=g?32768:0;break;case "C":e.C=g?65536:0;break;case "PS":Bd(e,g);break;case "PI":zd(e,g);break;case "ER":e.P=g;d=!0;break;case "SL":e.za=g|255;break;case "M0":vd(e,g);d=!0;break;case "M3":yd(e,g);d=!0;break;case "AR":a.g&&(d=a.g,jc(d,d.ga=g));d=!0;break;case "DR":a.g&&Ub(a.g,g);d=!0;break;case "SR":a.g&&kc(a.g,g);d=!0;break;default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){e.g[b]=g&65535;break}a.v("unknown register: "+
g);a.G=X(e.g[7]);break;case "N":e.I=g?32768:0;break;case "Z":e.L=g?0:1;break;case "V":e.G=g?32768:0;break;case "C":e.C=g?65536:0;break;case "PS":Bd(e,g);break;case "PI":zd(e,g);break;case "ER":e.P=g;d=!0;break;case "SL":e.Ga=g|255;break;case "M0":vd(e,g);d=!0;break;case "M3":yd(e,g);d=!0;break;case "AR":a.g&&(d=a.g,jc(d,d.ga=g));d=!0;break;case "DR":a.g&&Ub(a.g,g);d=!0;break;case "SR":a.g&&kc(a.g,g);d=!0;break;default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){e.g[b]=g&65535;break}a.v("unknown register: "+
f);return}H(a.J);a.v("updated registers:")}}a.v(Lk(a,d));c&&(a.G=X(e.g[7]),qk(a,Wj(a,a.G)))}}function Qk(a,b){b=za(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.v(c[2]):Hj(a,null,c[2].charCodeAt(0)):Gj(a,b,!1)}
function Rk(a,b,c){if("?"==c)a.v("trace commands:"),a.v("\tt [#]\ttrace # instructions"),a.v("\ttr [#]\ttrace # instructions with register updates"),a.v("\ttc [#]\ttrace # cycles"),a.v("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Cj(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ua=b;Pa(c,function(){return Fb(a,!0)&&vc(a,e,d,!1)},function(){a.g&&a.g.stop();H(a.J,-1);Fb(a,!1)})}}
function qk(a,b,c,d){if(b=Tj(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Cj(a,c.substr(1)),null!=c&&(d=c);else{d=Tj(a,c,!0);if(!d||d.K<b.K)return;e=d.K-b.K;if(256<e){a.v("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Eb(a,!1)||a.I?a.w:null;var g=null!=f?"cycles":null,k=Mk(a,b),l=b.K;if(k[0]&&d&&(!c&&d||0>k[0].indexOf("+"))){var m=k[0]+":";k[2]&&(m+=" "+k[2]);a.v(m)}k[3]&&(g=k[3],f=null);f=xk(a,b,g,f);a.v(f);a.G=b;e-=b.K-l;c++}}}
function wk(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.v(ok+b):(a.P&&(a.v("ended assemble at "+Wj(a,a.O)),a.G=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Db(a)&&0<b.length){a.P&&(b="a "+Wj(a,a.O)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var k=g[0],l=k.charAt(0),m=1;m<k.length;m++){var n=k.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=k.substr(m);g.unshift(k.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var q=
Tj(a,g[1],!0);if(q)if(a.O=q,void 0===g[2])a.v("begin assemble at "+Wj(a,q)),a.P=!0,H(a.J);else{var t;a.v("not supported yet");t=[];if(t.length){for(var r=0;r<t.length;r++)a.Qd(q,t[r],1);a.v(xk(a,a.O))}}break;case "b":a:{var D=g[0],A=g[1],B=b;if("?"==A)a.v("breakpoint commands:"),a.v("\tbp #\tset exec breakpoint"),a.v("\tbr #\tset read breakpoint"),a.v("\tbw #\tset write breakpoint"),a.v("\tbc #\tclear breakpoint (* to clear all)"),a.v("\tbl\tlist all breakpoints"),a.v("\tbn [#]\tbreak after # instruction(s)");
else{var J=D.charAt(1);if("l"==J){var ub;ub=0+vk(a,a.b);ub+=vk(a,a.L);(ub+=vk(a,a.C))||a.v("no breakpoints")}else if("n"==J){var Ed=+A||0;A&&(a.ha=Ed);a.v("break after "+Ed+" instruction(s)")}else if(void 0===A)a.v("missing breakpoint address");else{var sa=X();if("*"!=A&&(sa=Tj(a,A,!0),!sa))break a;"c"==J?null==sa.K?(Kj(a),a.v("all breakpoints cleared")):tk(a,a.b,sa)||tk(a,a.L,sa)||tk(a,a.C,sa)||a.v("breakpoint missing: "+Wj(a,sa)):null!=sa.K&&(Vj(a,sa,B),"p"==J?a.Bb(a.b,sa):"r"==J?a.Bb(a.L,sa):"w"==
J?a.Bb(a.C,sa):a.v("unknown breakpoint command: "+J))}}}break;case "c":a.Va&&(a.Va.value="");break;case "d":a:{var Zb,jb=g[0],Ta=g[1],kb=g[2],ql=g[3];if("?"==Ta){var $b="";for(Zb in Rb)a.ma[Zb]&&($b&&($b+=","),$b+=Zb);$b+=",state,symbols";a.v("dump memory commands:");a.v("\tda [a] dump info for address a");a.v("\tdb [a] [n] dump n bytes at address a");a.v("\tdw [a] [n] dump n words at address a");a.v("\tdd [a] [n] dump n dwords at address a");a.v("\tds [a] [n] dump n words at address a as JSON");
a.v("\tdh [p] [n] dump n instructions from history position p");$b.length&&a.v("dump extension commands:\n\t"+$b)}else if("state"==Ta){var gf=Sk(a.J,!0);"console"==kb?console.log(gf):(a.Va&&(a.Va.value=""),gf&&a.v(gf))}else if("symbols"==Ta)for(var hf=0;hf<a.B.length;hf++){var jf=a.B[hf],ac;for(ac in jf.ia)if("."!=ac.charAt(0)){var wi=jf.ia[ac].o;if(void 0!==wi){var xi=jf.ia[ac].l;xi&&(ac=xi);a.v(K(a,wi)+" "+ac)}}}else{if("d"==jb){for(Zb in Rb)if(g[1]==Zb){var yi=a.ma[Zb];yi?(g.shift(),g.shift(),
yi(g)):a.v("no dump registered for "+Ta);break a}Ta||(jb=a.Qa||"dw")}else a.Qa=jb;if("dh"==jb){var zi=Ta,Ai=kb,Bi="",Ci=0,Ia=a.R,Ua=a.i;if(Ua.length){var Ca=+zi||a.ta,Mc=+Ai||10;isNaN(Ca)?Ca=Mc:Bi="more ";Ca>Ua.length&&(a.v("note: only "+Ua.length+" available"),Ca=Ua.length);Ia-=Ca;0>Ia&&(null==Ua[Ua.length-1].K?(Ca=Ia+Ca,Ia=0):Ia+=Ua.length);var kf=[];"call"==Ai&&(Mc=1E5,kf=["CALL"]);for(void 0!==zi&&a.v(Ca+" instructions earlier:");0<Mc&&Ia!=a.R;){var Di=Ua[Ia++];if(null==Di.K)break;var Nc=X(Di.K),
rl=Ca--,Ei=xk(a,Nc,"history",rl);(!kf.length||0<=Ei.indexOf(kf[0]))&&a.v(Ei);Nc.yd&&(Ia+=Nc.yd,Mc-=Nc.yd,Ca-=Nc.yd);Ia>=Ua.length&&(Ia=0);a.ta=Ca;Ci++;Mc--}}Ci||(a.v("no "+Bi+"history available"),a.ta=void 0)}else{var oa=Tj(a,Ta);if(oa)if("da"==jb){var lf=oa.Na||65535<oa.K,O=Pe(a.f,oa.K||0,lf);a.v(ya("",lf?12:19)+pa(oa.K,lf?22:17,3)+" "+u(oa.K,8));6>O.length?(2<O.length&&(a.v(" OFFSET: "+pa(O[3],13,3)+" "+u(O[3],8)),a.v("UNIMAP["+qa(O[1],2)+"]: "+pa(O[2],22,3)+" "+u(O[2],8))),a.v(" PHYSICAL: "+
function wk(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.v(ok+b):(a.R&&(a.v("ended assemble at "+Wj(a,a.P)),a.G=a.P,a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.U=null;if(Db(a)&&0<b.length){a.R&&(b="a "+Wj(a,a.P)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var k=g[0],l=k.charAt(0),m=1;m<k.length;m++){var n=k.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=k.substr(m);g.unshift(k.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var q=
Tj(a,g[1],!0);if(q)if(a.P=q,void 0===g[2])a.v("begin assemble at "+Wj(a,q)),a.R=!0,H(a.J);else{var t;a.v("not supported yet");t=[];if(t.length){for(var r=0;r<t.length;r++)a.Rd(q,t[r],1);a.v(xk(a,a.P))}}break;case "b":a:{var D=g[0],A=g[1],B=b;if("?"==A)a.v("breakpoint commands:"),a.v("\tbp #\tset exec breakpoint"),a.v("\tbr #\tset read breakpoint"),a.v("\tbw #\tset write breakpoint"),a.v("\tbc #\tclear breakpoint (* to clear all)"),a.v("\tbl\tlist all breakpoints"),a.v("\tbn [#]\tbreak after # instruction(s)");
else{var J=D.charAt(1);if("l"==J){var ub;ub=0+vk(a,a.b);ub+=vk(a,a.M);(ub+=vk(a,a.C))||a.v("no breakpoints")}else if("n"==J){var Ed=+A||0;A&&(a.ha=Ed);a.v("break after "+Ed+" instruction(s)")}else if(void 0===A)a.v("missing breakpoint address");else{var sa=X();if("*"!=A&&(sa=Tj(a,A,!0),!sa))break a;"c"==J?null==sa.K?(Kj(a),a.v("all breakpoints cleared")):tk(a,a.b,sa)||tk(a,a.M,sa)||tk(a,a.C,sa)||a.v("breakpoint missing: "+Wj(a,sa)):null!=sa.K&&(Vj(a,sa,B),"p"==J?a.Cb(a.b,sa):"r"==J?a.Cb(a.M,sa):"w"==
J?a.Cb(a.C,sa):a.v("unknown breakpoint command: "+J))}}}break;case "c":a.Ua&&(a.Ua.value="");break;case "d":a:{var Zb,jb=g[0],Ta=g[1],kb=g[2],ql=g[3];if("?"==Ta){var $b="";for(Zb in Rb)a.ma[Zb]&&($b&&($b+=","),$b+=Zb);$b+=",state,symbols";a.v("dump memory commands:");a.v("\tda [a] dump info for address a");a.v("\tdb [a] [n] dump n bytes at address a");a.v("\tdw [a] [n] dump n words at address a");a.v("\tdd [a] [n] dump n dwords at address a");a.v("\tds [a] [n] dump n words at address a as JSON");
a.v("\tdh [p] [n] dump n instructions from history position p");$b.length&&a.v("dump extension commands:\n\t"+$b)}else if("state"==Ta){var gf=Sk(a.J,!0);"console"==kb?console.log(gf):(a.Ua&&(a.Ua.value=""),gf&&a.v(gf))}else if("symbols"==Ta)for(var hf=0;hf<a.B.length;hf++){var jf=a.B[hf],ac;for(ac in jf.ia)if("."!=ac.charAt(0)){var wi=jf.ia[ac].o;if(void 0!==wi){var xi=jf.ia[ac].l;xi&&(ac=xi);a.v(K(a,wi)+" "+ac)}}}else{if("d"==jb){for(Zb in Rb)if(g[1]==Zb){var yi=a.ma[Zb];yi?(g.shift(),g.shift(),
yi(g)):a.v("no dump registered for "+Ta);break a}Ta||(jb=a.La||"dw")}else a.La=jb;if("dh"==jb){var zi=Ta,Ai=kb,Bi="",Ci=0,Ia=a.S,Ua=a.i;if(Ua.length){var Ca=+zi||a.ta,Mc=+Ai||10;isNaN(Ca)?Ca=Mc:Bi="more ";Ca>Ua.length&&(a.v("note: only "+Ua.length+" available"),Ca=Ua.length);Ia-=Ca;0>Ia&&(null==Ua[Ua.length-1].K?(Ca=Ia+Ca,Ia=0):Ia+=Ua.length);var kf=[];"call"==Ai&&(Mc=1E5,kf=["CALL"]);for(void 0!==zi&&a.v(Ca+" instructions earlier:");0<Mc&&Ia!=a.S;){var Di=Ua[Ia++];if(null==Di.K)break;var Nc=X(Di.K),
rl=Ca--,Ei=xk(a,Nc,"history",rl);(!kf.length||0<=Ei.indexOf(kf[0]))&&a.v(Ei);Nc.zd&&(Ia+=Nc.zd,Mc-=Nc.zd,Ca-=Nc.zd);Ia>=Ua.length&&(Ia=0);a.ta=Ca;Ci++;Mc--}}Ci||(a.v("no "+Bi+"history available"),a.ta=void 0)}else{var oa=Tj(a,Ta);if(oa)if("da"==jb){var lf=oa.Na||65535<oa.K,O=Pe(a.f,oa.K||0,lf);a.v(ya("",lf?12:19)+pa(oa.K,lf?22:17,3)+" "+u(oa.K,8));6>O.length?(2<O.length&&(a.v(" OFFSET: "+pa(O[3],13,3)+" "+u(O[3],8)),a.v("UNIMAP["+qa(O[1],2)+"]: "+pa(O[2],22,3)+" "+u(O[2],8))),a.v(" PHYSICAL: "+
pa(O[0],22,3)+" "+u(O[0],8))):(a.v(" OFFSET: "+pa(O[1],13,3)+" "+u(O[1],8)),a.v("+ "+Tk[O[2]]+"PAR"+O[3]+": "+pa(O[4],22,3)+" "+u(O[4],8)),a.v("& MMUMASK: "+pa(O[5],22,3)+" "+u(O[5],8)),a.v("= PHYSICAL: "+pa(O[0],22,3)+" "+u(O[0],8)))}else{var wb=0,mf="ds"==jb;if(kb){if("l"==kb.charAt(0))kb=kb.substr(1)||ql,wb=Cj(a,kb);else{var Fi=Tj(a,kb);Fi&&(wb=Fi.K-oa.K)}0>wb&&(wb=0);65536<wb&&(wb=65536)}var tl=a.W;oa.W&&(a.W=oa.W);for(var xb="dd"==jb?4:"db"==jb?1:2,Nd=xb*wb||128,nf=mf?
16:a.W,ul=(Nd+nf-1)/nf|0||1,yb="";ul--&&0<Nd;){for(var zb="",of="",Ta=Wj(a,oa),Od=nf,Oc=0,Pc=0;0<Od&&0<Nd;){var bc=1,Pd=1==xb?a.Pd(oa,bc):a.Ta(oa,bc=2),Oc=Oc|Pd<<(Pc<<3),Pc=Pc+bc;Pc==xb&&(mf?(zb&&(zb+=","),zb+="0x"+v(Oc,xb<<1)):(zb+=K(a,Oc,xb<<3),zb+=1==xb?9==Od?"-":" ":" "),Oc=Pc=0);Od-=bc;for(Nd-=bc;1==xb&&bc--;)var pf=Pd&255,of=of+(32<=pf&&128>pf?String.fromCharCode(pf):"."),Pd=Pd>>8}yb&&(yb+="\n");yb=mf?yb+(zb+","):yb+(Ta+": "+zb+(Od?"":" "+of))}yb&&a.v(yb);a.Ha=oa;a.W=tl}}}}break;case "e":if("else"==
g[0])break;var cc,qf,rf,sf,tf=g[0],uf=g[1];"eb"==tf?(cc=1,qf=255,rf=a.Pd,sf=a.Qd):"e"==tf||"ew"==tf?(cc=2,qf=65535,rf=a.Ta,sf=a.Le):uf=null;if(null==uf)a.v("edit memory commands:"),a.v("\teb [a] [...] edit bytes at address a"),a.v("\tew [a] [...] edit words at address a");else{var Qd=Tj(a,uf);if(Qd)for(var Rd=2;Rd<g.length;Rd++){var Qc=Gj(a,g[Rd]);if(void 0===Qc){a.v("unrecognized value: "+g[Rd]);break}Qc&~qf&&a.v("warning: "+v(Qc)+" exceeds "+cc+"-byte value");a.v("changing "+Wj(a,Qd)+(E(a,16)?
"":" from "+K(a,rf.call(a,Qd),cc<<3))+" to "+K(a,Qc,cc<<3));sf.call(a,Qd,Qc,cc)}}break;case "g":a:{var Gi=g[1],vl=b;if(void 0!==Gi){var vf=Tj(a,Gi,!0);if(!vf)break a;Vj(a,vf,vl);a.Bb(a.b,vf,!0)}mk(a,!0,c)}break;case "h":a.A.V?(c||a.v("halting"),a.da()):Eb(a,!0)||c||a.v("already halted");break;case "i":if("if"==g[0]){var wf;var Rc=b.substr(2),Rc=za(Rc);Gj(a,Rc)?(c||a.v("true: "+Rc),wf=!0):(c||a.v("false: "+Rc),wf=!1);wf||(d=!1);break}f=!0;break;case "k":var wl=g[0];if("?"==g[1])a.v("stack trace commands:"),
a.v("\tk\tshow frame addresses"),a.v("\tks\tshow symbol information");else{var xf=0,yf=X(),Sc=X(a.f.g[6]);for(a.v("stack trace for "+Wj(a,Sc));10>xf;){for(var Ab=null,xl=256;65536>Sc.K>>>0;){yf.K=a.Ta(Sc,2);if(null==Sc.K||!xl--)break;if(!(yf.K&1)){for(var yl=a,Sd=yf,Hi=null,Tc=Sd.K,Ii=Tc,zf=1;6>=zf&&Tc;zf++){if(2<zf){Sd.K=Tc;var Td=xk(yl,Sd);if(0<=Td.indexOf("JSR")){var Ji=Td.indexOf(" ");if(Tc+(Td.indexOf(" ",Ji+1)-Ji-1)/2==Ii){Hi=Td;break}}}Tc-=2}Sd.K=Ii;if(Ab=Hi)break}}if(!Ab||null==Ab)break;var Ki=
16:a.W,ul=(Nd+nf-1)/nf|0||1,yb="";ul--&&0<Nd;){for(var zb="",of="",Ta=Wj(a,oa),Od=nf,Oc=0,Pc=0;0<Od&&0<Nd;){var bc=1,Pd=1==xb?a.Qd(oa,bc):a.Sa(oa,bc=2),Oc=Oc|Pd<<(Pc<<3),Pc=Pc+bc;Pc==xb&&(mf?(zb&&(zb+=","),zb+="0x"+v(Oc,xb<<1)):(zb+=K(a,Oc,xb<<3),zb+=1==xb?9==Od?"-":" ":" "),Oc=Pc=0);Od-=bc;for(Nd-=bc;1==xb&&bc--;)var pf=Pd&255,of=of+(32<=pf&&128>pf?String.fromCharCode(pf):"."),Pd=Pd>>8}yb&&(yb+="\n");yb=mf?yb+(zb+","):yb+(Ta+": "+zb+(Od?"":" "+of))}yb&&a.v(yb);a.Ga=oa;a.W=tl}}}}break;case "e":if("else"==
g[0])break;var cc,qf,rf,sf,tf=g[0],uf=g[1];"eb"==tf?(cc=1,qf=255,rf=a.Qd,sf=a.Rd):"e"==tf||"ew"==tf?(cc=2,qf=65535,rf=a.Sa,sf=a.Me):uf=null;if(null==uf)a.v("edit memory commands:"),a.v("\teb [a] [...] edit bytes at address a"),a.v("\tew [a] [...] edit words at address a");else{var Qd=Tj(a,uf);if(Qd)for(var Rd=2;Rd<g.length;Rd++){var Qc=Gj(a,g[Rd]);if(void 0===Qc){a.v("unrecognized value: "+g[Rd]);break}Qc&~qf&&a.v("warning: "+v(Qc)+" exceeds "+cc+"-byte value");a.v("changing "+Wj(a,Qd)+(E(a,16)?
"":" from "+K(a,rf.call(a,Qd),cc<<3))+" to "+K(a,Qc,cc<<3));sf.call(a,Qd,Qc,cc)}}break;case "g":a:{var Gi=g[1],vl=b;if(void 0!==Gi){var vf=Tj(a,Gi,!0);if(!vf)break a;Vj(a,vf,vl);a.Cb(a.b,vf,!0)}mk(a,!0,c)}break;case "h":a.A.V?(c||a.v("halting"),a.da()):Eb(a,!0)||c||a.v("already halted");break;case "i":if("if"==g[0]){var wf;var Rc=b.substr(2),Rc=za(Rc);Gj(a,Rc)?(c||a.v("true: "+Rc),wf=!0):(c||a.v("false: "+Rc),wf=!1);wf||(d=!1);break}f=!0;break;case "k":var wl=g[0];if("?"==g[1])a.v("stack trace commands:"),
a.v("\tk\tshow frame addresses"),a.v("\tks\tshow symbol information");else{var xf=0,yf=X(),Sc=X(a.f.g[6]);for(a.v("stack trace for "+Wj(a,Sc));10>xf;){for(var Ab=null,xl=256;65536>Sc.K>>>0;){yf.K=a.Sa(Sc,2);if(null==Sc.K||!xl--)break;if(!(yf.K&1)){for(var yl=a,Sd=yf,Hi=null,Tc=Sd.K,Ii=Tc,zf=1;6>=zf&&Tc;zf++){if(2<zf){Sd.K=Tc;var Td=xk(yl,Sd);if(0<=Td.indexOf("JSR")){var Ji=Td.indexOf(" ");if(Tc+(Td.indexOf(" ",Ji+1)-Ji-1)/2==Ii){Hi=Td;break}}}Tc-=2}Sd.K=Ii;if(Ab=Hi)break}}if(!Ab||null==Ab)break;var Ki=
null;if("ks"==wl){var Li=Ab.match(/[0-9A-F]+$/);Li&&(Ki=Pk(a,Li[0]))}Ab=ya(Ab,50)+" ;"+(Ki||"stack="+Wj(a,Sc));a.v(Ab);xf++}xf||a.v("no return addresses found")}break;case "l":if("ln"==g[0]){Pk(a,g[1],!0);break}f=!0;break;case "m":a:{var Va,Wa=null,T=g[1];"?"==T&&(T=void 0);if(void 0!==T){var lb=0;if("all"==T)lb=1879046143,T=null;else if("on"==T)Wa=!0,T=null;else if("off"==T)Wa=!1,T=null;else{"keys"==T&&(T="key");"kbd"==T&&(T="keyboard");for(Va in Rb)if(T==Va){lb=Rb[Va];Wa=!!(a.ja&lb);break}if(!lb){a.v("unknown message category: "+
T);break a}}if(lb)if("on"==g[2])a.ja|=lb,Wa=!0;else if("off"==g[2]&&(a.ja&=~lb,Wa=!1,1073741824==lb)){for(var Mi=1E3<=a.M.length?a.M.length-1E3:0;Mi<a.M.length;)a.v(a.M[Mi++]);a.M=[]}}var zl=0,Uc="";for(Va in Rb)if(!T||T==Va){var Al=!!(a.ja&Rb[Va]);if(null===Wa||Wa==Al)Uc&&(Uc+=","),++zl%10||(Uc+="\n\t"),"key"==Va&&(Va="keys"),Uc+=Va}void 0===T&&a.v("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.v((null!==Wa?Wa?"messages on: ":"messages off: ":"message categories:\n\t")+
(Uc||"none"));Lj(a)}break;case "p":if("print"==g[0]){Qk(a,b.substr(5));break}var Bl=g[0];if("?"==g[1])a.v("step commands:"),a.v("\tp\tstep over instruction"),a.v("\tpr\tstep over instruction with register update");else{var Ni="pr"==Bl?1:0,Oi=1+Ni;if(a.I)a.v("step in progress");else{var Ud=X(a.f.g[7]),dc=a.Ta(Ud);3==dc||4==dc||34816==(dc&65280)||32256==(dc&65024)||35072==(dc&65280)?(a.I=Oi,Uj(Ud,2)):2048==(dc&65024)&&(xk(a,Ud),a.I=Oi);a.I?(a.Bb(a.b,Ud,!0),mk(a)||(a.J&&qe(a.J),a.I=0)):Rk(a,Ni?"tr":
"t")}}break;case "r":if("reset"==b){a.J&&a.J.reset();break}pk(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Vc=+g[2];if(8==Vc||10==Vc||16==Vc)a.W=Vc;else{a.v("invalid base: "+Vc);break}}a.v("default base: "+a.W);break;case "cs":var Wc;void 0!==g[3]&&(Wc=+g[3]);switch(g[2]){case "int":a.f.Ob=Wc;break;case "start":a.f.pc=Wc;break;case "stop":a.f.Rb=Wc;break;default:a.v("unknown cs option");break a}void 0!==Wc&&ie(a.f);a.v("checksums "+(a.f.A.Nb?"enabled":"disabled"));break;case "sp":void 0!==
g[2]&&(ne(a.f,+g[2])||a.v("warning: using 1x multiplier, previous target not reached"));a.v("target speed: "+(a.f.xb.toFixed(2)+"Mhz")+" ("+a.f.mb+"x)");break;default:if(g[1]){a.v("unknown option: "+g[1]);break}case "?":a.v("debugger options:"),a.v("\tbase #\t\tset default base to #"),a.v("\tcs int #\tset checksum cycle interval to #"),a.v("\tcs start #\tset checksum cycle start count to #"),a.v("\tcs stop #\tset checksum cycle stop count to #"),a.v("\tsp #\t\tset speed multiplier to #")}break;case "t":Rk(a,
T);break a}}if(lb)if("on"==g[2])a.ja|=lb,Wa=!0;else if("off"==g[2]&&(a.ja&=~lb,Wa=!1,1073741824==lb)){for(var Mi=1E3<=a.N.length?a.N.length-1E3:0;Mi<a.N.length;)a.v(a.N[Mi++]);a.N=[]}}var zl=0,Uc="";for(Va in Rb)if(!T||T==Va){var Al=!!(a.ja&Rb[Va]);if(null===Wa||Wa==Al)Uc&&(Uc+=","),++zl%10||(Uc+="\n\t"),"key"==Va&&(Va="keys"),Uc+=Va}void 0===T&&a.v("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.v((null!==Wa?Wa?"messages on: ":"messages off: ":"message categories:\n\t")+
(Uc||"none"));Lj(a)}break;case "p":if("print"==g[0]){Qk(a,b.substr(5));break}var Bl=g[0];if("?"==g[1])a.v("step commands:"),a.v("\tp\tstep over instruction"),a.v("\tpr\tstep over instruction with register update");else{var Ni="pr"==Bl?1:0,Oi=1+Ni;if(a.I)a.v("step in progress");else{var Ud=X(a.f.g[7]),dc=a.Sa(Ud);3==dc||4==dc||34816==(dc&65280)||32256==(dc&65024)||35072==(dc&65280)?(a.I=Oi,Uj(Ud,2)):2048==(dc&65024)&&(xk(a,Ud),a.I=Oi);a.I?(a.Cb(a.b,Ud,!0),mk(a)||(a.J&&qe(a.J),a.I=0)):Rk(a,Ni?"tr":
"t")}}break;case "r":if("reset"==b){a.J&&a.J.reset();break}pk(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Vc=+g[2];if(8==Vc||10==Vc||16==Vc)a.W=Vc;else{a.v("invalid base: "+Vc);break}}a.v("default base: "+a.W);break;case "cs":var Wc;void 0!==g[3]&&(Wc=+g[3]);switch(g[2]){case "int":a.f.Pb=Wc;break;case "start":a.f.qc=Wc;break;case "stop":a.f.Sb=Wc;break;default:a.v("unknown cs option");break a}void 0!==Wc&&ie(a.f);a.v("checksums "+(a.f.A.Ob?"enabled":"disabled"));break;case "sp":void 0!==
g[2]&&(ne(a.f,+g[2])||a.v("warning: using 1x multiplier, previous target not reached"));a.v("target speed: "+(a.f.yb.toFixed(2)+"Mhz")+" ("+a.f.mb+"x)");break;default:if(g[1]){a.v("unknown option: "+g[1]);break}case "?":a.v("debugger options:"),a.v("\tbase #\t\tset default base to #"),a.v("\tcs int #\tset checksum cycle interval to #"),a.v("\tcs start #\tset checksum cycle start count to #"),a.v("\tcs stop #\tset checksum cycle stop count to #"),a.v("\tsp #\t\tset speed multiplier to #")}break;case "t":Rk(a,
g[0],g[1]);break;case "u":qk(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Ok(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.v((Hb||"PDP11")+" version 1.34.3 ("+a.f.ka+",RELEASE"+(Jb?",TYPEDARRAYS":Ib?",BYTEARRAYS":",LONGARRAYS")+")");a.v(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){Qk(a,b.substr(1));break}var Af="commands:",Bf;for(Bf in Uk)Af+="\n"+ya(Bf,9)+Uk[Bf];bf(a)||(Af+="\nnote: history disabled if no exec breakpoints");a.v(Af);break;default:f=!0}f&&(a.v("unknown command: "+
b),d=!1)}}catch(Qi){a.v("debugger error: "+(Qi.stack||Qi.message)),d=!1}return d}function le(a,b,c){b=yj(a,b,c);for(var d in b)if(!wk(a,b[+d]))return!1;return!0}
var Uk={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},zk=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
@ -364,30 +364,30 @@ bk=20,ck=21,dk=22,ek=23,fk=24,gk=25,hk=26,ik=27,Zj=28,jk=29,kk=30,Xj={SP:6,PC:7,
Fk,Z],45056:[19,Fk,Z],49152:[15,Fk,Z],53248:[17,Fk,Z],57344:[94,Fk,Z]},65024:{2048:[57,448,Z],28672:[100,Z,448],29184:[101,Z,448],29696:[102,Z,448],30208:[103,Z,448],30720:[104,448,Z],32256:[105,448,Bk]},65280:{256:[27,Y],512:[24,Y],768:[10,Y],1024:[11,Y],1280:[22,Y],1536:[12,Y],1792:[20,Y],32768:[25,Y],33024:[23,Y],33280:[13,Y],33536:[21,Y],33792:[28,Y],34048:[29,Y],34304:[8,Y],34560:[9,Y],34816:[106,Ek],35072:[107,Ek]},65472:{64:[56,Z],192:[95,Z],2560:[39,Z],2624:[49,Z],2688:[53,Z],2752:[51,Z],
2816:[67,Z],2880:[1,Z],2944:[77,Z],3008:[97,Z],3072:[73,Z],3136:[71,Z],3200:[6,Z],3264:[4,Z],3328:[58,Dk],3392:[60,Z],3456:[65,Z],3520:[96,Z],35328:[40,Z],35392:[50,Z],35456:[54,Z],35520:[52,Z],35584:[68,Z],35648:[2,Z],35712:[78,Z],35776:[98,Z],35840:[74,Z],35904:[72,Z],35968:[7,Z],36032:[5,Z],36096:[66,Z],36160:[59,Z],36224:[64,Z],36288:[61,Z]},65528:{128:[76,Gk],152:[108,Ck]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],
166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}},yk=[0],Rj=[58,60,65,96,110,100,101,102,103,104,105],Sj=[108,59,64],lk=1E3,ok=">> ";Sa(function(){for(var a=z(document,y,"debugger"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Jj(d);pb(d,c)}});
function Vk(a,b,c){x.call(this,"Computer",a,33554432);this.A.ca=!1;this.O=null;Wk(this,b);this.L=ge(this,"autoPower",a,6);this.j=0;this.S=+a.busWidth||+a.buswidth;this.G=this.w=this.I=null;this.C=this.R=!1;this.B=this.u=null;this.P=this.M=this.N=!1;this.U=ge(this,"url")||"";(Math.random()+.1).toString(36);this.g=Xk(this);if(this.f=nb("CPU",this.id)){this.D=nb("Debugger",this.id);this.F=new Gc({id:this.vb+".bus",busWidth:this.S},this.f,this.D);var d,e=ib(this.id);if((this.i=nb("Panel",this.id))&&this.i.Va)for(b=
0;b<e.length;b++)d=e[b],d.T=this.i.T,d.v=this.i.v,d.Va=this.i.Va;this.v(Hb+" v1.34.3\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.v("Portions adapted from the PDP-11/70 Emulator by Paul Nankervis <http://skn.noip.me/pdp11/pdp11.html>");for(b=0;b<e.length;b++)d=e[b],d.Ca&&d.Ca(this,this.F,this.f,this.D);b=null;d=ge(this,"resume",a);void 0!==d&&(1<d.length?b=this.w=d:this.b=parseInt(d,10));var f;if(a=ge(this,"state")||
(f=!0,a.state))this.I=b=a,f||(this.C=!0,this.b=Yk),this.b&&(this.B=new G(this,"1.34.3"),Zk(this.B)?b=null:delete this.B);!b&&this.b&&(b=$k(this))&&(this.C=!0);if(b){var g=this;Ea(b,null,!0,function(a,b,c){c?(g.w=null,g.C=!1,g.T("Unable to load machine state from server (error "+c+(b?": "+za(b):"")+")")):(g.G=b,g.R=!0);C(g)})}else C(this);this.H.power||(this.L=!0);!c&&this.L&&this.yc(this.rc)}else w("Unable to find CPU component")}p(Vk,x);
function Vk(a,b,c){x.call(this,"Computer",a,33554432);this.A.ca=!1;this.O=null;Wk(this,b);this.L=ge(this,"autoPower",a,6);this.j=0;this.S=+a.busWidth||+a.buswidth;this.G=this.w=this.I=null;this.C=this.R=!1;this.B=this.u=null;this.P=this.M=this.N=!1;this.U=ge(this,"url")||"";(Math.random()+.1).toString(36);this.g=Xk(this);if(this.f=nb("CPU",this.id)){this.D=nb("Debugger",this.id);this.F=new Gc({id:this.wb+".bus",busWidth:this.S},this.f,this.D);var d,e=ib(this.id);if((this.i=nb("Panel",this.id))&&this.i.Ua)for(b=
0;b<e.length;b++)d=e[b],d.T=this.i.T,d.v=this.i.v,d.Ua=this.i.Ua;this.v(Hb+" v1.34.3\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.v("Portions adapted from the PDP-11/70 Emulator by Paul Nankervis <http://skn.noip.me/pdp11/pdp11.html>");for(b=0;b<e.length;b++)d=e[b],d.Ba&&d.Ba(this,this.F,this.f,this.D);b=null;d=ge(this,"resume",a);void 0!==d&&(1<d.length?b=this.w=d:this.b=parseInt(d,10));var f;if(a=ge(this,"state")||
(f=!0,a.state))this.I=b=a,f||(this.C=!0,this.b=Yk),this.b&&(this.B=new G(this,"1.34.3"),Zk(this.B)?b=null:delete this.B);!b&&this.b&&(b=$k(this))&&(this.C=!0);if(b){var g=this;Ea(b,null,!0,function(a,b,c){c?(g.w=null,g.C=!1,g.T("Unable to load machine state from server (error "+c+(b?": "+za(b):"")+")")):(g.G=b,g.R=!0);C(g)})}else C(this);this.H.power||(this.L=!0);!c&&this.L&&this.zc(this.sc)}else w("Unable to find CPU component")}p(Vk,x);
function Wk(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.O=b}function ge(a,b,c,d){var e=b.toLowerCase(),e=Na(b)||Na(e);void 0===e&&a.O&&(e=a.O[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}h=Vk.prototype;
h.yc=function(a,b){for(var c=this,d=ib(this.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:this;if(!Db(f)){Db(f,function(){c.yc(a,b)});return}}a.call(this,b)};function al(a,b){var c=new G(a,"1.34.3",bl);if(Zk(c)&&cl(c)){var d=c.get(dl),e=b?b.get(dl):"unknown";d!=e&&(a.T("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
h.rc=function(a){void 0===a&&(a=this.b||(this.G?el:Yk));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.B||new G(this,"1.34.3");if(a==fl)b=!0;else if(a>Yk){if(Zk(d,this.G)){this.u=new G(this,"1.34.3",gl);Zk(this.u)&&(hl(this,d),a=il,jl(this.u));this.u.set(dl,Da());kl(this.u);var e=this.b&&!this.C;if(a==el||hb("Click OK to restore the previous "+Hb+" machine state, or CANCEL to reset the machine.")){if(c=cl(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Zk(d,g):("error"==f&&"no machine state"!=
g?(this.T("Error: "+g),"unable to verify user"==g&&(La(ll,""),this.g=null)):this.v(f+": "+g),jl(d),Zk(d)?(c=cl(d),e=!0):c=!1))}e&&al(this,c?d:null)}else a==il&&d.clear()}else al(this);delete this.G;delete this.B}e=ib(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=ml(this,g,d,b,c));b=[d,a,c];a!=fl?this.yc(this.ne,b):this.ne(b)}};
function ml(a,b,c,d,e){if(!b.A.ca){b.A.ca=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(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.I&&!a.R?(c.clear(),a.b=Yk,window&&window.location.reload()):a.N=!0,b.Ea(null),e=!1),!d&&b.Vd){var g=b.Vd.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){w("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
h.ne=function(a){var b=a[0],c=0>a[1];a=a[2];this.P=!0;this.A.ca=!0;var d=this.H.power;d&&(d.textContent="Shutdown");this.f&&(ml(this,this.f,b,c,a),H(this,-2),this.f.ra());this.N&&(hl(this,b),b.clear());!c&&this.u&&(this.u.clear(),delete this.u);this.j=0};
h.zc=function(a,b){for(var c=this,d=ib(this.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:this;if(!Db(f)){Db(f,function(){c.zc(a,b)});return}}a.call(this,b)};function al(a,b){var c=new G(a,"1.34.3",bl);if(Zk(c)&&cl(c)){var d=c.get(dl),e=b?b.get(dl):"unknown";d!=e&&(a.T("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
h.sc=function(a){void 0===a&&(a=this.b||(this.G?el:Yk));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.B||new G(this,"1.34.3");if(a==fl)b=!0;else if(a>Yk){if(Zk(d,this.G)){this.u=new G(this,"1.34.3",gl);Zk(this.u)&&(hl(this,d),a=il,jl(this.u));this.u.set(dl,Da());kl(this.u);var e=this.b&&!this.C;if(a==el||hb("Click OK to restore the previous "+Hb+" machine state, or CANCEL to reset the machine.")){if(c=cl(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Zk(d,g):("error"==f&&"no machine state"!=
g?(this.T("Error: "+g),"unable to verify user"==g&&(La(ll,""),this.g=null)):this.v(f+": "+g),jl(d),Zk(d)?(c=cl(d),e=!0):c=!1))}e&&al(this,c?d:null)}else a==il&&d.clear()}else al(this);delete this.G;delete this.B}e=ib(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=ml(this,g,d,b,c));b=[d,a,c];a!=fl?this.zc(this.oe,b):this.oe(b)}};
function ml(a,b,c,d,e){if(!b.A.ca){b.A.ca=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.Da(f,d)&&f&&(w("Unable to restore state for "+b.type),a.I&&!a.R?(c.clear(),a.b=Yk,window&&window.location.reload()):a.N=!0,b.Da(null),e=!1),!d&&b.Wd){var g=b.Wd.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){w("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
h.oe=function(a){var b=a[0],c=0>a[1];a=a[2];this.P=!0;this.A.ca=!0;var d=this.H.power;d&&(d.textContent="Shutdown");this.f&&(ml(this,this.f,b,c,a),H(this,-2),this.f.ra());this.N&&(hl(this,b),b.clear());!c&&this.u&&(this.u.clear(),delete this.u);this.j=0};
function hl(a,b){if(hb("There may be a problem with your "+Hb+" machine.\n\nTo help us diagnose it, click OK to send this "+Hb+" machine state to http://www.pcjs.org.")){var c=a.U;a=a.g||"";b=b.toString();var d={};d.app=Hb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ea("http://www.pcjs.org/api/v1/report",d,!0)}}
function Sk(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new G(a,"1.34.3"),g=new G(a,"1.34.3",bl),k=Da();g.set(dl,k);f.set(dl,k);f.set(nl,"1.34.3");f.set(ol,window?window.location.href:null);f.set(pl,window?window.navigator.userAgent:"");a.f&&a.f.Da&&(c&&(b&&(a.f.A.ra=a.f.A.V),a.f.da()),d=a.f.Da(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.A.ca=!1,!1===d&&(e=null)));for(var k=ib(a.id),l=0;l<k.length;l++){var m=k[l];m.A.ca&&(m.Da&&(d=m.Da(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.ca=
function Sk(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new G(a,"1.34.3"),g=new G(a,"1.34.3",bl),k=Da();g.set(dl,k);f.set(dl,k);f.set(nl,"1.34.3");f.set(ol,window?window.location.href:null);f.set(pl,window?window.navigator.userAgent:"");a.f&&a.f.Ca&&(c&&(b&&(a.f.A.ra=a.f.A.V),a.f.da()),d=a.f.Ca(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.A.ca=!1,!1===d&&(e=null)));for(var k=ib(a.id),l=0;l<k.length;l++){var m=k[l];m.A.ca&&(m.Ca&&(d=m.Ca(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.ca=
!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.g&&sl(a,a.g,f.toString()),kl(g)&&kl(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=a.b==Cl),d&&f.clear(k)):e=f.toString());c&&(a.A.ca=!1,b=a.H.power)&&(b.textContent="Power");a.j=0;return e}
h.reset=function(){this.A.reset=!0;this.F&&this.F.reset&&(F(this,"Resetting "+this.F.type),this.F.reset());this.f&&this.f.reset&&(F(this,"Resetting "+this.f.type),this.f.reset());for(var a=ib(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.F&&c!==this.f&&c.reset&&(F(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;H(this,-1)};h.start=function(a,b){for(var c=ib(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}H(this,-1)};
h.stop=function(a,b){for(var c=ib(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}H(this,-1)};
function H(a,b){if(a.f){var c=a.f,d=b||0,e=c.H.speed;e&&(0>=d||30<=(c.ad+=d))&&(e.textContent=c.A.V?c.wb.toFixed(2)+"Mhz":"Stopped",c.ad=0)}if(a.i&&(a=a.i,b=b||0,a.u)){c=a.f.A.V;d=!!(a.f.i&8);if(0>=b||60<=(a.j+=b)){for(e=0;e<a.f.g.length;e++)nc(a,"R"+e,a.f.g[e]);e=Ad(a.f);nc(a,"PS",e);nc(a,"NF",e&8?1:0,1);nc(a,"ZF",e&4?1:0,1);nc(a,"VF",e&2?1:0,1);nc(a,"CF",e&1?1:0,1);a.j=0}-1>b?a.ga=a.f.g[7]:0<b&&c&&!d&&(a.ga=a.f.Qa);jc(a,a.ga);Vb(a,a.Eb);b=a.f;b=b.yb?b.X&16?1:2:4;Ec(a,"B22",b&1);Ec(a,"B18",b&2);
function H(a,b){if(a.f){var c=a.f,d=b||0,e=c.H.speed;e&&(0>=d||30<=(c.bd+=d))&&(e.textContent=c.A.V?c.xb.toFixed(2)+"Mhz":"Stopped",c.bd=0)}if(a.i&&(a=a.i,b=b||0,a.u)){c=a.f.A.V;d=!!(a.f.i&8);if(0>=b||60<=(a.j+=b)){for(e=0;e<a.f.g.length;e++)nc(a,"R"+e,a.f.g[e]);e=Ad(a.f);nc(a,"PS",e);nc(a,"NF",e&8?1:0,1);nc(a,"ZF",e&4?1:0,1);nc(a,"VF",e&2?1:0,1);nc(a,"CF",e&1?1:0,1);a.j=0}-1>b?a.ga=a.f.g[7]:0<b&&c&&!d&&(a.ga=a.f.ib);jc(a,a.ga);Vb(a,a.Fb);b=a.f;b=b.zb?b.X&16?1:2:4;Ec(a,"B22",b&1);Ec(a,"B18",b&2);
Ec(a,"B16",b&4)}}
h.wa=function(a,b,c){var d=this;switch(b){case "power":return this.H[b]=c,c.onclick=function(){d.j||(d.A.ca?Sk(d,!1,!0):d.yc(d.rc))},!0;case "reset":return this.H[b]=c,c.onclick=function(){if(d.A.ca&&!d.j)if(d.b&&!d.w){var a=hb("Click OK to save changes to this "+Hb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Sk(d,a,!0);!a&&d.I?window&&window.location.reload():(a||(d.M=!0),d.rc(Yk),d.M=!1)}else d.reset(),d.f&&!d.D&&d.f.ra()},!0;case "save":if(va(Ga(),"pcjs.org"))c.parentNode.removeChild(c);
h.wa=function(a,b,c){var d=this;switch(b){case "power":return this.H[b]=c,c.onclick=function(){d.j||(d.A.ca?Sk(d,!1,!0):d.zc(d.sc))},!0;case "reset":return this.H[b]=c,c.onclick=function(){if(d.A.ca&&!d.j)if(d.b&&!d.w){var a=hb("Click OK to save changes to this "+Hb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Sk(d,a,!0);!a&&d.I?window&&window.location.reload():(a||(d.M=!0),d.sc(Yk),d.M=!1)}else d.reset(),d.f&&!d.D&&d.f.ra()},!0;case "save":if(va(Ga(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.H[b]=c,c.onclick=function(){var a=Xk(d,!0);if(a){var b=!!(d.b&&!d.w||d.I),c=Sk(d,b);b?sl(d,a,c):d.T("Resume disabled, machine state not saved")}},!0}return!1};
function Xk(a,b){var c=a.g;c||((c=Ka(ll),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Dl(a,c))||a.T("The user ID is invalid.")):b&&a.T("Browser local storage is not available"));return c}
function Dl(a,b){a.g=null;b=Ea(Ga()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(La(ll,b.data),a.g=b.data)}catch(d){w(d.message+" ("+c+")")}return a.g}function $k(a){var b=null;a.g&&(b=Ga()+"/api/v1/user?req=load&user="+a.g+"&state="+El(a,"1.34.3"));return b}
function sl(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=El(a,"1.34.3");d.data=c;b=Ea(Ga()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.T("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.T(c),La(ll,""),a.g=null)}}
function Uh(a){var b;a=ib(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function qe(a,b){if(a.Va){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.Va.focus();!b&&window&&window.scrollTo(c,d)}}var gl="failsafe",bl="validate",dl="timestamp",nl="version",ol="url",pl="browser",ll="user",fl=-1,Yk=0,el=1,il=2,Cl=3;
Sa(function(){for(var a=z(document,y+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=ob(c),c=z(c,y,"computer"),e=0;e<c.length;e++){var f=c[e],g=ob(f),g=new Vk(g,d,!0);pb(g,f);g.L&&g.yc(g.rc)}});Xa.show.push(function(){for(var a=z(document,y,"computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.P&&!c.A.ca&&c.rc(fl)}});Xa.exit.push(function(){for(var a=z(document,y,"computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.A.ca&&Sk(c,!(!c.b||c.w),!0)}});
function G(a,b,c){this.id=a.id;this.b="";this.f={};this.g=this.D=!1;this.key=El(a,b,c);jl(this,a.vf)}h=G.prototype;h.set=function(a,b){try{this.f[a]=b}catch(c){}};h.get=function(a){return this.f[a]||null};h.data=function(){return this.f};function Zk(a,b){return b?(a.b=b,a.g=!0,a.D=!1,!0):a.g?!0:Ha()&&(b=Ka(a.key))?(a.b=b,a.g=!0):!1}function cl(a){var b=!0;if(!a.D)try{a.f=JSON.parse(a.b),a.D=!0}catch(c){w(c.message||c),b=!1}return b}
function Uh(a){var b;a=ib(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function qe(a,b){if(a.Ua){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.Ua.focus();!b&&window&&window.scrollTo(c,d)}}var gl="failsafe",bl="validate",dl="timestamp",nl="version",ol="url",pl="browser",ll="user",fl=-1,Yk=0,el=1,il=2,Cl=3;
Sa(function(){for(var a=z(document,y+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=ob(c),c=z(c,y,"computer"),e=0;e<c.length;e++){var f=c[e],g=ob(f),g=new Vk(g,d,!0);pb(g,f);g.L&&g.zc(g.sc)}});Xa.show.push(function(){for(var a=z(document,y,"computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.P&&!c.A.ca&&c.sc(fl)}});Xa.exit.push(function(){for(var a=z(document,y,"computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.A.ca&&Sk(c,!(!c.b||c.w),!0)}});
function G(a,b,c){this.id=a.id;this.b="";this.f={};this.g=this.D=!1;this.key=El(a,b,c);jl(this,a.wf)}h=G.prototype;h.set=function(a,b){try{this.f[a]=b}catch(c){}};h.get=function(a){return this.f[a]||null};h.data=function(){return this.f};function Zk(a,b){return b?(a.b=b,a.g=!0,a.D=!1,!0):a.g?!0:Ha()&&(b=Ka(a.key))?(a.b=b,a.g=!0):!1}function cl(a){var b=!0;if(!a.D)try{a.f=JSON.parse(a.b),a.D=!0}catch(c){w(c.message||c),b=!1}return b}
function kl(a){var b=!0;if(Ha()){var c=JSON.stringify(a.f);La(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}h.toString=function(){return this.f?JSON.stringify(this.f):this.b};function jl(a,b){a.b="";a.f={};a.g=a.D=!1;b&&a.set("parms",b)}
h.clear=function(a){jl(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 El(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}var Fl=0;
function Gl(a,b,c,d,e,f,g){f("Loading "+a+"...");Ea(a,null,!0,function(k,l,m){m?(l||(l="unable to load "+a+" ("+m+")"),g(l,null)):Hl(l,a,b,c,d,e,f,g)})}