VT100 SET-UP screen is accessible now

This commit is contained in:
Jeff Parsons 2016-08-14 10:52:24 -07:00
commit e7324a5c6a
10 changed files with 5989 additions and 5856 deletions

View file

@ -1,6 +1,6 @@
--- ---
layout: page layout: page
title: DEC VT100 Terminal title: DEC VT100 Terminal with Debugger
permalink: /devices/pc8080/machine/vt100/debugger/ permalink: /devices/pc8080/machine/vt100/debugger/
machines: machines:
- type: pc8080 - type: pc8080
@ -13,10 +13,22 @@ DEC VT100 Terminal with Debugger
The [PC8080](/modules/pc8080/) machine below is configured to simulate a [VT100 Terminal](/devices/pc8080/machine/vt100/) The [PC8080](/modules/pc8080/) machine below is configured to simulate a [VT100 Terminal](/devices/pc8080/machine/vt100/)
with a Control Panel and Debugger. It is running the original [VT100 Firmware](/devices/pc8080/rom/vt100/) inside the with a Control Panel and Debugger. It is running the original [VT100 Firmware](/devices/pc8080/rom/vt100/) inside the
[PC8080](/modules/pc8080/) CPU emulator. [PC8080](/modules/pc8080/) CPU emulator. You'll also find assorted [Hardware Notes](#vt100-memory-usage) below.
Click the "Run" button to start the simulation. You'll also find assorted Click the "Run" button to start the simulation. The VT100 KEYMAP table in [keyboard.js](/modules/pc8080/lib/keyboard.js)
[Hardware Notes](#vt100-memory-usage) below. maps modern keys to VT100 key addresses, and most of the mappings are 1-1. Function keys are mapped as follows:
- F1: PF1
- F2: PF2
- F3: PF3
- F4: PF4
- F5: KEYPAD COMMA
- F6: BREAK
- F7: LINE FEED
- F8: NO SCROLL
- F9: SET-UP
The simulation is not fully operational yet, but it is now possible to access the SET-UP screen.
{% include machine.html id="vt100" %} {% include machine.html id="vt100" %}

View file

@ -3,7 +3,7 @@
<machine id="vt100" class="pc8080" border="1" pos="center" background="#FAEBD7"> <machine id="vt100" class="pc8080" border="1" pos="center" background="#FAEBD7">
<name pos="center">VT100 Terminal</name> <name pos="center">VT100 Terminal</name>
<computer id="computer" busWidth="16"/> <computer id="computer" busWidth="16"/>
<cpu id="cpu8080" model="8080" cycles="2764800"/> <cpu id="cpu8080" model="8080" cycles="1000000"/>
<rom id="rom" addr="0x0000" size="0x2000" file="/devices/pc8080/rom/vt100/VT100.json"/> <rom id="rom" addr="0x0000" size="0x2000" file="/devices/pc8080/rom/vt100/VT100.json"/>
<ram id="ram" addr="0x2000" size="0x0C00"/> <ram id="ram" addr="0x2000" size="0x0C00"/>
<video id="video" screenWidth="1600" screenHeight="960" smoothing="false" interruptRate="60" <video id="video" screenWidth="1600" screenHeight="960" smoothing="false" interruptRate="60"

View file

@ -3,7 +3,7 @@
<machine id="vt100" class="pc8080" border="1" pos="center" background="#FAEBD7"> <machine id="vt100" class="pc8080" border="1" pos="center" background="#FAEBD7">
<name pos="center">VT100 Terminal</name> <name pos="center">VT100 Terminal</name>
<computer id="computer" busWidth="16"/> <computer id="computer" busWidth="16"/>
<cpu id="cpu8080" model="8080" cycles="2764800"/> <cpu id="cpu8080" model="8080" cycles="1000000"/>
<rom id="rom" addr="0x0000" size="0x2000" file="/devices/pc8080/rom/vt100/VT100.json"/> <rom id="rom" addr="0x0000" size="0x2000" file="/devices/pc8080/rom/vt100/VT100.json"/>
<ram id="ram" addr="0x2000" size="0x0C00"/> <ram id="ram" addr="0x2000" size="0x0C00"/>
<video id="video" screenWidth="1600" screenHeight="960" smoothing="false" interruptRate="60" <video id="video" screenWidth="1600" screenHeight="960" smoothing="false" interruptRate="60"

View file

@ -6,60 +6,75 @@
; work at https://github.com/phooky/VT100-Hax/blob/master/ROMs/haxrom.d80 and http://vt100romhax.tumblr.com ; work at https://github.com/phooky/VT100-Hax/blob/master/ROMs/haxrom.d80 and http://vt100romhax.tumblr.com
; ;
; All other comments/annotations by Jeff Parsons (@jeffpar) <Jeff@pcjs.org> ; All other comments/annotations by Jeff Parsons (@jeffpar) <Jeff@pcjs.org>
;
;
; Data area definitions
;
stack_top equ 204eh
scratch_start equ 204eh
cursor_countdn equ 212dh
cursor_visible equ 21bah
;
; Reset vector
; ;
org 0 org 0
di
X0000: di lxi sp,stack_top ; SP = 0x204e
lxi sp,X204e jmp reset
jmp X003b ;
; Interrupt vector 0x1 for Keyboard
;
org 8 org 8
; call X00fd
; Interrupt vector 0x1 for keyboard
;
X0008: call X00fd
ei ei
ret ret
;
X000d: nop ; Interrupt vector 0x2 for PUSART
;
org 10h org 10h
call X03cc call X03cc
ei ei
X0014: ret ret
;
nop ; Interrupt vector 0x3 for Keyboard and PUSART
;
org 18h org 18h
call X03cc call X03cc
call X00fd call X00fd
ei ei
ret ret
;
; Interrupt vector 0x4 for Video (vertical retrace)
;
org 20h
call X04cf call X04cf
ret ret
;
nop ; Interrupt vector 0x5 for Keyboard and Video
;
org 28h org 28h
call X04cf call X04cf
ret ret
;
nop ; Interrupt vector 0x6 for PUSART and Video
;
org 30h org 30h
X0030: call X03cc X0030: call X03cc
call X04cf call X04cf
ei ei
ret ret
;
; Interrupt vector 0x7 for Keyboard and PUSART and Video
;
org 38h
jmp X0030 jmp X0030
X003b: mvi e,1 ;
; Beginning of power-up (reset) code at 0x003b
;
reset: mvi e,1
X003d: di X003d: di
mvi a,0fh mvi a,0fh
out 62h ;; 0x0f to NVR latch out 62h ;; 0x0f to NVR latch
@ -233,7 +248,7 @@ X00fd: push psw
sui 7ch ;; subtract 0x7c from a sui 7ch ;; subtract 0x7c from a
jm X011a ;; jump to 011a if a is a normal key jm X011a ;; jump to 011a if a is a normal key
mov h,a ;; otherwise h <- a mov h,a ;; otherwise h <- a
X0109: inr h ;; h++ inr h ;; h++
mvi a,10h ;; a <- 0x10 mvi a,10h ;; a <- 0x10
rrc rrc
X010d: rlc X010d: rlc
@ -370,7 +385,7 @@ X01ff: lxi h,X0812
X020e: sui 41h X020e: sui 41h
mov b,a mov b,a
X0211: mov a,m X0211: mov a,m
X0212: jz X0222 jz X0222
dcr b dcr b
jz X0226 jz X0226
dcr b dcr b
@ -408,7 +423,7 @@ X0245: mov a,c
jmp X0812 jmp X0812
X0251: di X0251: di
lxi sp,X204e lxi sp,stack_top ; SP = 0x204e
lxi h,2000h lxi h,2000h
push h push h
mov a,m mov a,m
@ -447,10 +462,10 @@ X0298: call X0bf2
;; ;;
;; Zero all scratch and screen RAM above stack ;; Zero all scratch and screen RAM above stack
;; ;;
X02a4: lxi h,X204e ;; HL <- 0x204e (top of stack) X02a4: lxi h,scratch_start ;; HL = 0x204e (just above stack)
lxi d,X0fb2 ;; DE <- 0x0fb2 lxi d,0fb2h ;; DE = 0x0fb2 (every byte from 0x204e up to 0x3000)
mvi b,0 ;; B <- 0 mvi b,0 ;; B = 0
call X1083 ;; memset(0x204e,0,0xfb2) call memset ;; memset(0x1083): set 0x0fb2 bytes to 0 starting at 0x204e
cma ;; invert A cma ;; invert A
sta X2104 ;; store A in 0x2104 sta X2104 ;; store A in 0x2104
lxi h,X2004 ;; HL <- 0x2004 lxi h,X2004 ;; HL <- 0x2004
@ -469,7 +484,7 @@ X02c0: call X0a15 ;; 0x2140 = 0xe605
lxi h,X3000 ;; HL = 0x3000 lxi h,X3000 ;; HL = 0x3000
lxi d,X1000 ;; DE = 0x1000 lxi d,X1000 ;; DE = 0x1000
mvi b,0ffh ;; B = 0xFF mvi b,0ffh ;; B = 0xFF
jmp X1083 ;; Set all of attribute RAM to 0xFF and return jmp memset ;; invoke memset(0x1083) to set all of attribute RAM to 0xFF and return
;; ;;
;; 0x02d9 through 0x02eb are the initial values for the screen RAM; ;; 0x02d9 through 0x02eb are the initial values for the screen RAM;
;; it's copied into low RAM at 0x2000 during init. ;; it's copied into low RAM at 0x2000 during init.
@ -484,8 +499,8 @@ X02d9:
;; ;;
;; Initialize several scratch values. We don't know what all of these are for yet. ;; Initialize several scratch values. We don't know what all of these are for yet.
;; ;;
X02eb: lxi h,X0212 ;; HL = 0x0212 X02eb: lxi h,212h ;; HL = 0x0212 (530.)
shld X212d ;; Store 0x1202 at 0x212d shld cursor_countdn ;; Store 0x0212 at cursor_countdn [0x212d]
mvi a,35h ;; A = 0x35 mvi a,35h ;; A = 0x35
sta X212c ;; 0x212c = 0x35 sta X212c ;; 0x212c = 0x35
mvi a,1 ;; A = 1 mvi a,1 ;; A = 1
@ -504,7 +519,7 @@ X02eb: lxi h,X0212 ;; HL = 0x0212
sta X2079 ;; else store 1 in 0x2079 sta X2079 ;; else store 1 in 0x2079
X031a: mvi a,0ffh ;; A = 0xff X031a: mvi a,0ffh ;; A = 0xff
sta X210e ;; 0x210e = 0xff sta X210e ;; 0x210e = 0xff
sta X21ba ;; 0x21ba = 0xff sta cursor_visible ;; set cursor_visible [0x21ba] to 0xff (initially visible)
mvi h,80h ;; H = 0x80 mvi h,80h ;; H = 0x80
mov l,h ;; L = 0x80 mov l,h ;; L = 0x80
shld X20c0 ;; Store 0x8080 at 0x20c0 shld X20c0 ;; Store 0x8080 at 0x20c0
@ -1592,7 +1607,7 @@ X0a7b: inx sp
mvi a,48h mvi a,48h
sta X207e sta X207e
lxi h,X0000 lxi h,0
shld X2130 shld X2130
pop h pop h
X0aa2: lxi h,X0a15 X0aa2: lxi h,X0a15
@ -2405,7 +2420,7 @@ X0fae: cmp m
rz rz
push h push h
push psw push psw
X0fb2: lda X207b lda X207b
ora a ora a
cz X1488 cz X1488
pop psw pop psw
@ -2415,11 +2430,11 @@ X0fb2: lda X207b
; End of main loop? ; End of main loop?
; ;
X0fbe: lhld X204e X0fbe: lhld scratch_start ; HL = [0x204e]
mov a,h mov a,h
ori 0f0h ori 0f0h
mov h,a mov h,a
shld X204e shld scratch_start ; update [0x204e]
X0fc8: lda X2050 X0fc8: lda X2050
X0fcb: mov b,a X0fcb: mov b,a
mov a,h mov a,h
@ -2525,15 +2540,14 @@ X1074: call X13e3
shld X214e shld X214e
ret ret
;; ;;
;; memset: Set memory from HL to HL+DE-1 to value B ;; memset(0x1083): Set DE bytes at address HL to B
;; ;;
memset: memset: mov m,b ;; M <- B
X1083: mov m,b ;; M <- B
inx h ;; HL++ inx h ;; HL++
dcx d ;; DE-- dcx d ;; DE--
mov a,d ;; mov a,d ;;
ora e ;; A = D | E ora e ;; A = D | E
jnz X1083 ;; repeat if A != 0 jnz memset ;; repeat if A != 0
ret ret
mvi c,0 mvi c,0
@ -2672,7 +2686,7 @@ X1159: mov m,e
X117e: mov a,h X117e: mov a,h
ori 0f0h ori 0f0h
mov h,a mov h,a
shld X204e shld scratch_start ; update [0x204e]
lxi h,X2113 lxi h,X2113
xra a xra a
X1189: mov m,a X1189: mov m,a
@ -2727,7 +2741,7 @@ X11ce: ora a
mov l,m mov l,m
ori 0f0h ori 0f0h
mov h,a mov h,a
shld X204e shld scratch_start ; update [0x204e]
call X1290 call X1290
pop h pop h
mov b,d mov b,d
@ -2747,7 +2761,7 @@ X11e8: call X127f
ori 0f0h ori 0f0h
mov h,a mov h,a
mov l,e mov l,e
shld X204e shld scratch_start ; update [0x204e]
pop h pop h
mov a,h mov a,h
ori 9fh ori 9fh
@ -2810,12 +2824,12 @@ X1252: call X129d
mov c,m mov c,m
call X13de call X13de
xchg xchg
lhld X204e lhld scratch_start ; load [0x204e]
xchg xchg
mov m,e mov m,e
dcx h dcx h
mov m,d mov m,d
X1271: lhld X204e X1271: lhld scratch_start ; load [0x204e]
shld X2056 shld X2056
call X1299 call X1299
mov m,b mov m,b
@ -3175,25 +3189,29 @@ X14a2: lxi h,X21a5 ;;
lda X2077 ;; load what's at 0x2077 lda X2077 ;; load what's at 0x2077
ora a ;; return if it's not zero ora a ;; return if it's not zero
rnz ;; rnz ;;
lda X2065 ;; A = 0x2065 lda X2065 ;; A = [0x2065]
lxi h,X2051 ;; lxi h,X2051 ;;
ora m ;; return if [0x2065] | [0x2051] != 0 ora m ;; return if [0x2065] | [0x2051] != 0
rnz rnz
lhld X212d
lhld cursor_countdn ; HL = cursor countdown from [0x212d]
dcx h dcx h
mov a,h mov a,h
ora l ora l
jz X14d4 jz X14d4
shld X212d shld cursor_countdn ; update cursor countdown with decremented value
ret ret
;
X14d4: lda X21ba ; Cursor countdown reached zero, time to invert the cursor;
xri 0ffh ; note that the cursor is on (visible) twice as long as it's off
sta X21ba ;
lxi h,X0212 X14d4: lda cursor_visible ; A = 0xff (visible) or 0x00 (invisible)
jnz X14e5 xri 0ffh ; invert
lxi h,X0109 sta cursor_visible ;
X14e5: shld X212d lxi h,212h ; new initial count; start with 0x0212
jnz X14e5 ; and stick with that if cursor still visible
lxi h,109h ; otherwise, use half that value (0x0109) if invisible
X14e5: shld cursor_countdn ; store new cursor countdown
lhld X20f6 lhld X20f6
mov b,m mov b,m
lda X2159 lda X2159
@ -3394,10 +3412,10 @@ X162b: inx h
inx h inx h
jmp X13db jmp X13db
X1636: lxi h,X000d X1636: lxi h,13
shld X212d shld cursor_countdn ; reset cursor countdown to 13 (0x000d)
xra a xra a
sta X21ba sta cursor_visible ; reset cursor visibility
lhld X20f6 lhld X20f6
lda X20f4 lda X20f4
mov b,a mov b,a
@ -3679,7 +3697,7 @@ X1837: cmp d
X1844: mov m,a X1844: mov m,a
jmp X1636 jmp X1636
X1848: lxi h,X0000 X1848: lxi h,0
shld X2130 shld X2130
mvi a,0ffh mvi a,0ffh
sta X210e sta X210e
@ -3786,7 +3804,7 @@ X1900: in 42h
out 62h out 62h
lxi d,X21d3 ;; DE = 0x21d3 lxi d,X21d3 ;; DE = 0x21d3
mvi b,0eh ;; B = 14 mvi b,0eh ;; B = 14
lxi h,X0000 ;; HL = 0 lxi h,0 ;; HL = 0
X1916: dad h ;; X1916: dad h ;;
ldax d ;; load next char ldax d ;; load next char
ani 20h ;; and with NVR data bit ani 20h ;; and with NVR data bit
@ -3967,7 +3985,7 @@ X1a2b: mvi c,80h
shld X2111 shld X2111
lxi h,X19ee lxi h,X19ee
shld X2140 shld X2140
lxi h,X0000 lxi h,0
shld X2143 shld X2143
shld X2172 shld X2172
X1a45: lhld X2004 X1a45: lhld X2004
@ -4170,7 +4188,7 @@ X1bb0: call X0394
shld X2140 shld X2140
ret ret
X1bba: lhld X204e X1bba: lhld scratch_start ; load [0x204e]
jmp X1bc3 jmp X1bc3
X1bc0: lxi h,X21cc X1bc0: lxi h,X21cc
@ -4374,7 +4392,7 @@ X1d17: mvi m,0
lda X21ac lda X21ac
call X1d61 call X1d61
call X1c9f call X1c9f
lxi d,X0008 lxi d,8
mvi c,4 mvi c,4
pop psw pop psw
jz X1d3d jz X1d3d
@ -4600,8 +4618,8 @@ X1e9f: call X1edd
inx h inx h
shld X21b4 shld X21b4
mov b,a mov b,a
lxi d,X0014 lxi d,20 ; DE = 20(0x0014)
call X1083 call memset ; call memset(0x1083)
lxi h,X1eb8 lxi h,X1eb8
shld X2140 shld X2140
ret ret
@ -4635,7 +4653,7 @@ X1ee5: call X05e3
ret ret
X1eea: push h X1eea: push h
lxi h,X204e lxi h,scratch_start ; HL -> 0x204e
mov c,a mov c,a
lda X21a2 lda X21a2
ora a ora a
@ -4804,7 +4822,6 @@ X1ccd equ 1ccdh
X2001 equ 2001h X2001 equ 2001h
X2002 equ 2002h X2002 equ 2002h
X2004 equ 2004h X2004 equ 2004h
X204e equ 204eh
X2050 equ 2050h X2050 equ 2050h
X2051 equ 2051h X2051 equ 2051h
X2052 equ 2052h X2052 equ 2052h
@ -4857,7 +4874,6 @@ X2111 equ 2111h
X2113 equ 2113h X2113 equ 2113h
X212b equ 212bh X212b equ 212bh
X212c equ 212ch X212c equ 212ch
X212d equ 212dh
X212f equ 212fh X212f equ 212fh
X2130 equ 2130h X2130 equ 2130h
X2131 equ 2131h X2131 equ 2131h
@ -4912,7 +4928,6 @@ X21af equ 21afh
X21b4 equ 21b4h X21b4 equ 21b4h
X21b8 equ 21b8h X21b8 equ 21b8h
X21b9 equ 21b9h X21b9 equ 21b9h
X21ba equ 21bah
X21bb equ 21bbh X21bb equ 21bbh
X21bc equ 21bch X21bc equ 21bch
X21bd equ 21bdh X21bd equ 21bdh

File diff suppressed because it is too large Load diff

View file

@ -169,13 +169,29 @@ ChipSet.SI1978 = {
/* /*
* One of the many chips in the VT100 is an 8224, which operates at 24.8832MHz. That frequency is divided by 9 * One of the many chips in the VT100 is an 8224, which operates at 24.8832MHz. That frequency is divided by 9
* to yield a 361.69ns clock period for the 8080 CPU, which means the CPU is running at 2.76Mhz (cycles per second). * to yield a 361.69ns clock period for the 8080 CPU, which means (in theory) that the CPU is running at 2.76Mhz.
* Hence the CPU component in the VT100's machine.xml is defined as: *
* Hence the CPU component in the VT100's machine.xml SHOULD be defined as:
* *
* <cpu id="cpu8080" model="8080" cycles="2764800"/> * <cpu id="cpu8080" model="8080" cycles="2764800"/>
* *
* where 2764800 = 24883200 / 9. You need to know this because we rely on the CPU frequency for simulating some * where 2764800 = 24883200 / 9. Unfortunately, the VT100 ROM decrements a countdown value in memory to determine
* of the other VT100 circuits. * cursor blink rate, and if we use 2764800 cycles per second, the cursor blinks MUCH too fast. It's surprising that
* the VT100 doesn't rely on vertical retrace interrupts for blink rate. Perhaps the designers were concerned about
* consistency across 60Hz and 50Hz display modes, although that seems like a minor concern, considering that the
* alternative means the ROM is now tied to a specific CPU operating frequency. However, short of rewriting portions
* of the ROM, we have to deal with it.
*
* And we deal with it by lowering cycles per second to 1000000 (1Mhz). I'm guessing that in a real VT100, the 8080
* gets bogged down by other factors (eg, the Video Processor's DMA requests), but we don't simulate the hardware to
* that level of detail, so the easiest solution is to lower the effective clock speed.
*
* NOTE: If you've noticed that the VT100 cursor blinks unevenly, you're right, and it's by design: the ROM uses a
* countdown value for the cursor's "on" state that is twice as large as that for the cursor's "off" state, so it's
* "on" twice as long as it's "off".
*
* WARNING: The choice of clock speed has an effect on other simulated VT100 circuits; see the DC011 Timing Chip
* discussion below, along with the getVT100LBA() function.
* *
* For reference, here is a list of all the VT100 I/O ports, from /devices/pc8080/machine/vt100/debugger/README.md, * For reference, here is a list of all the VT100 I/O ports, from /devices/pc8080/machine/vt100/debugger/README.md,
* which in turn comes from p. 4-17 of the VT100 Technical Manual (July 1982): * which in turn comes from p. 4-17 of the VT100 Technical Manual (July 1982):
@ -729,7 +745,7 @@ ChipSet.prototype.outSIWatchdog = function(port, b, addrFrom)
}; };
/** /**
* getVT100LBA(nBit) * getVT100LBA(iBit)
* *
* Returns the state of the requested (simulated) LBA bit. * Returns the state of the requested (simulated) LBA bit.
* *
@ -738,12 +754,12 @@ ChipSet.prototype.outSIWatchdog = function(port, b, addrFrom)
* period than if we divided the cycle count by 88, but a shorter LBA7 period is probably helpful in terms of * period than if we divided the cycle count by 88, but a shorter LBA7 period is probably helpful in terms of
* overall performance. * overall performance.
* *
* @param {number} nBit * @param {number} iBit
* @return {number} * @return {number}
*/ */
ChipSet.prototype.getVT100LBA = function(nBit) ChipSet.prototype.getVT100LBA = function(iBit)
{ {
return (this.cpu.getCycles() & (1 << (nBit - 1))) << 1; return (this.cpu.getCycles() & (1 << (iBit - 1))) << 1;
}; };
/** /**

View file

@ -109,7 +109,7 @@ Keyboard.ASCII = {
Keyboard.KEYCODE = { Keyboard.KEYCODE = {
/* 0x08 */ BS: 8, /* 0x08 */ BS: 8,
/* 0x09 */ TAB: 9, /* 0x09 */ TAB: 9,
/* 0x0A */ LF: 10, /* 0x0A */ LF: 10, // TODO: Determine if any key actually generates this (I suspect there is none)
/* 0x0D */ CR: 13, /* 0x0D */ CR: 13,
/* 0x10 */ SHIFT: 16, /* 0x10 */ SHIFT: 16,
/* 0x11 */ CTRL: 17, /* 0x11 */ CTRL: 17,
@ -249,7 +249,7 @@ Keyboard.STUPID_KEYCODES[Keyboard.KEYCODE.FF_DASH] = Keyboard.ASCII['-'];
Keyboard.MINPRESSTIME = 100; // 100ms Keyboard.MINPRESSTIME = 100; // 100ms
/** /**
* Alternate keyCode mappings (to support the popular WASD directional mappings) * Alternate keyCode mappings (to support popular "WASD"-style directional-key mappings)
* *
* TODO: ES6 computed property name support may now be in all mainstream browsers, allowing us to use * TODO: ES6 computed property name support may now be in all mainstream browsers, allowing us to use
* a simple object literal for this and all other object initializations. * a simple object literal for this and all other object initializations.
@ -289,7 +289,8 @@ Keyboard.VT100 = {
* in the aKeysActive array, along with a final interrupt for KEYLAST. * in the aKeysActive array, along with a final interrupt for KEYLAST.
*/ */
ADDRESS: { ADDRESS: {
PORT: 0x82 PORT: 0x82,
INIT: 0x7F
}, },
/* /*
* Writing port 0x82 updates the VT100's keyboard status byte via the keyboard's UART data input. * Writing port 0x82 updates the VT100's keyboard status byte via the keyboard's UART data input.
@ -376,7 +377,7 @@ Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_7] = 0x40;
Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.F4] = 0x41; // aka PF4 Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.F4] = 0x41; // aka PF4
Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.F2] = 0x42; // aka PF2 Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.F2] = 0x42; // aka PF2
Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_0] = 0x43; Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_0] = 0x43;
Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.LF] = 0x44; Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.F7] = 0x44; // aka LINE FEED
Keyboard.VT100.KEYMAP[Keyboard.ASCII['\\']] = 0x45; Keyboard.VT100.KEYMAP[Keyboard.ASCII['\\']] = 0x45;
Keyboard.VT100.KEYMAP[Keyboard.ASCII['|']] = 0xC5; Keyboard.VT100.KEYMAP[Keyboard.ASCII['|']] = 0xC5;
Keyboard.VT100.KEYMAP[Keyboard.ASCII.L] = 0x46; Keyboard.VT100.KEYMAP[Keyboard.ASCII.L] = 0x46;
@ -397,7 +398,7 @@ Keyboard.VT100.KEYMAP[Keyboard.ASCII.H] = 0x58;
Keyboard.VT100.KEYMAP[Keyboard.ASCII.D] = 0x59; Keyboard.VT100.KEYMAP[Keyboard.ASCII.D] = 0x59;
Keyboard.VT100.KEYMAP[Keyboard.ASCII.S] = 0x5A; Keyboard.VT100.KEYMAP[Keyboard.ASCII.S] = 0x5A;
Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_DEL] = 0x60; // keypad period Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_DEL] = 0x60; // keypad period
Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.F7] = 0x61; // aka KEYPAD COMMA Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.F5] = 0x61; // aka KEYPAD COMMA
Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_5] = 0x62; Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_5] = 0x62;
Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_4] = 0x63; Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_4] = 0x63;
Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.CR] = 0x64; // TODO: Figure out why the Technical Manual lists CR at both 0x04 and 0x64 Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.CR] = 0x64; // TODO: Figure out why the Technical Manual lists CR at both 0x04 and 0x64
@ -412,7 +413,7 @@ Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.F8] = 0x6A; // aka NO SCROLL
Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_9] = 0x70; Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_9] = 0x70;
Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_3] = 0x71; Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_3] = 0x71;
Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_6] = 0x72; Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_6] = 0x72;
Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_SUB] = 0x73; Keyboard.VT100.KEYMAP[Keyboard.KEYCODE.NUM_SUB] = 0x73; // aka KEYPAD MINUS
Keyboard.VT100.KEYMAP[Keyboard.ASCII['/']] = 0x75; Keyboard.VT100.KEYMAP[Keyboard.ASCII['/']] = 0x75;
Keyboard.VT100.KEYMAP[Keyboard.ASCII['?']] = 0xF5; Keyboard.VT100.KEYMAP[Keyboard.ASCII['?']] = 0xF5;
Keyboard.VT100.KEYMAP[Keyboard.ASCII.M] = 0x76; Keyboard.VT100.KEYMAP[Keyboard.ASCII.M] = 0x76;
@ -582,7 +583,8 @@ Keyboard.prototype.powerDown = function(fSave, fShutdown)
Keyboard.VT100.INIT = [ Keyboard.VT100.INIT = [
[ [
Keyboard.VT100.STATUS.INIT, Keyboard.VT100.STATUS.INIT, // bVT100Status
Keyboard.VT100.ADDRESS.INIT, // bVT100Address
-1 // iKeyNext -1 // iKeyNext
] ]
]; ];
@ -596,7 +598,7 @@ Keyboard.prototype.reset = function()
{ {
/* /*
* As keyDown events are encountered, a corresponding "softCode" is looked up. If one is found, * As keyDown events are encountered, a corresponding "softCode" is looked up. If one is found,
* then an entry for the key is added to the aKeysActive array. Each "key" entry contains: * then an entry for the key is added to the aKeysActive array. Each "key" entry in aKeysActive contains:
* *
* softCode: number or string representing the key pressed * softCode: number or string representing the key pressed
* msDown: timestamp of the most recent "down" event * msDown: timestamp of the most recent "down" event
@ -626,7 +628,7 @@ Keyboard.prototype.save = function()
case Keyboard.SI1978.MODEL: case Keyboard.SI1978.MODEL:
break; break;
case Keyboard.VT100.MODEL: case Keyboard.VT100.MODEL:
state.set(0, [this.bVT100Status]); state.set(0, [this.bVT100Status, this.bVT100Address, -1]);
break; break;
} }
return state.data(); return state.data();
@ -652,7 +654,8 @@ Keyboard.prototype.restore = function(data)
case Keyboard.VT100.MODEL: case Keyboard.VT100.MODEL:
this.bVT100Status = a[0]; this.bVT100Status = a[0];
this.updateLEDs(this.bVT100Status & Keyboard.VT100.STATUS.LEDS); this.updateLEDs(this.bVT100Status & Keyboard.VT100.STATUS.LEDS);
this.iKeyNext = a[1]; this.bVT100Address = a[1];
this.iKeyNext = a[2];
return true; return true;
} }
} }
@ -739,7 +742,7 @@ Keyboard.prototype.onKeyDown = function(event, fDown)
} }
if (!COMPILED && this.messageEnabled(Messages.KEYS)) { if (!COMPILED && this.messageEnabled(Messages.KEYS)) {
this.printMessage("onKey" + (fDown? "Down" : "Up") + "(" + keyCode + "): " + (fPass? "true" : "false"), true); this.printMessage("onKey" + (fDown? "Down" : "Up") + "(" + keyCode + "): softCode=" + softCode + ", pass=" + (fPass? "true" : "false"), true);
} }
return fPass; return fPass;
@ -888,6 +891,11 @@ Keyboard.prototype.checkBusy = function()
/** /**
* inVT100UARTAddress(port, addrFrom) * inVT100UARTAddress(port, addrFrom)
* *
* We take our cue from iKeyNext. If it's -1 (default), we simply return the last value latched
* in bVT100Address. Otherwise, if iKeyNext is a valid index into aKeysActive, we look up the key
* in the VT100.KEYMAP, latch it, and increment iKeyNext, else we latch Keyboard.VT100.KEYLAST
* and set iKeyNext to -1 again.
*
* @this {Keyboard} * @this {Keyboard}
* @param {number} port (0x82) * @param {number} port (0x82)
* @param {number} [addrFrom] (not defined if the Debugger is trying to write the specified port) * @param {number} [addrFrom] (not defined if the Debugger is trying to write the specified port)
@ -895,19 +903,24 @@ Keyboard.prototype.checkBusy = function()
*/ */
Keyboard.prototype.inVT100UARTAddress = function(port, addrFrom) Keyboard.prototype.inVT100UARTAddress = function(port, addrFrom)
{ {
var b = 0; var b = this.bVT100Address;
if (this.iKeyNext >= 0 && this.iKeyNext < this.aKeysActive.length) { if (this.iKeyNext >= 0) {
var key = this.aKeysActive[this.iKeyNext++]; if (this.iKeyNext < this.aKeysActive.length) {
b = Keyboard.VT100.KEYMAP[key.softCode]; var key = this.aKeysActive[this.iKeyNext++];
if (b & 0x80) { b = Keyboard.VT100.KEYMAP[key.softCode];
/* if (b & 0x80) {
* TODO: This code is supposed to be accompanied by a SHIFT key; make sure that it is. /*
*/ * TODO: This code is supposed to be accompanied by a SHIFT key; make sure that it is.
b &= 0x7F; */
b &= 0x7F;
}
} else {
this.iKeyNext = -1;
b = Keyboard.VT100.KEYLAST;
} }
this.println("keymap: " + str.toHexByte(b)); this.bVT100Address = b;
this.cpu.requestINTR(1);
} }
if (!b) b = Keyboard.VT100.KEYLAST;
this.printMessageIO(port, null, addrFrom, "KBDUART.ADDRESS", b); this.printMessageIO(port, null, addrFrom, "KBDUART.ADDRESS", b);
return b; return b;
}; };

View file

@ -320,7 +320,10 @@ Video.prototype.initBuffers = function()
* for each font and draw characters by drawing from the font canvas to the target canvas. * for each font and draw characters by drawing from the font canvas to the target canvas.
*/ */
if (this.cxCell > 1) { if (this.cxCell > 1) {
this.initCellCache(this.nColsBuffer * this.nRowsBuffer); /*
* We add an extra column per row to store the visible line length at the start of every row.
*/
this.initCellCache((this.nColsBuffer + 1) * this.nRowsBuffer);
} else { } else {
this.imageBuffer = this.contextScreen.createImageData(cxBuffer, cyBuffer); this.imageBuffer = this.contextScreen.createImageData(cxBuffer, cyBuffer);
this.nPixelsPerCell = (16 / this.nBitsPerPixel)|0; this.nPixelsPerCell = (16 / this.nBitsPerPixel)|0;
@ -959,11 +962,12 @@ Video.prototype.updateChar = function(idFont, col, row, data, context)
}; };
/** /**
* updateVT100() * updateVT100(fForced)
* *
* @this {Video} * @this {Video}
* @param {boolean} [fForced]
*/ */
Video.prototype.updateVT100 = function() Video.prototype.updateVT100 = function(fForced)
{ {
var addrNext = this.addrBuffer, fontNext = -1; var addrNext = this.addrBuffer, fontNext = -1;
@ -979,6 +983,8 @@ Video.prototype.updateVT100 = function()
var nCols = 0; var nCols = 0;
var addr = addrNext; var addr = addrNext;
var font = fontNext; var font = fontNext;
var nColsVisible = this.nColsBuffer;
if (font != Video.VT100.FONT.NORML) nColsVisible >>= 1;
while (true) { while (true) {
var data = this.bus.getByteDirect(addr++); var data = this.bus.getByteDirect(addr++);
if ((data & Video.VT100.LINETERM) == Video.VT100.LINETERM) { if ((data & Video.VT100.LINETERM) == Video.VT100.LINETERM) {
@ -988,7 +994,7 @@ Video.prototype.updateVT100 = function()
addrNext += (b & Video.VT100.LINEATTR.ADDRBIAS)? Video.VT100.ADDRBIAS_LO : Video.VT100.ADDRBIAS_HI; addrNext += (b & Video.VT100.LINEATTR.ADDRBIAS)? Video.VT100.ADDRBIAS_LO : Video.VT100.ADDRBIAS_HI;
break; break;
} }
if (nCols < this.abLineBuffer.length) { if (nCols < nColsVisible) {
this.abLineBuffer[nCols++] = data; this.abLineBuffer[nCols++] = data;
} else { } else {
break; // ideally, we would wait for a LINETERM byte, but it's not safe to loop without limit break; // ideally, we would wait for a LINETERM byte, but it's not safe to loop without limit
@ -1011,13 +1017,21 @@ Video.prototype.updateVT100 = function()
} }
/* /*
* Display the line buffer; ordinarily, the font number would always be valid after processing the "fill lines", * Display the line buffer; ordinarily, the font number would be valid after processing the "fill lines",
* but if the buffer isn't initialized yet, the usual LINETERM might be missing, so the font number might not be set. * but if the buffer isn't initialized yet, those lines might be missing, so the font number might not be set.
*/ */
if (font >= 0) { if (font >= 0) {
/*
* Cell cache logic is complicated by the fact that a line may be single-width one frame and double-width
* the next. So we store the visible line length at the start of each row in the cache, which must match if
* the cache is considered valid for the current line.
*/
var fLineCacheValid = this.fCellCacheValid && (this.aCellCache[iCell] == nColsVisible);
this.aCellCache[iCell++] = nColsVisible;
for (var iCol = 0; iCol < nCols; iCol++) { for (var iCol = 0; iCol < nCols; iCol++) {
data = this.abLineBuffer[iCol]; data = this.abLineBuffer[iCol];
if (!this.fCellCacheValid || data !== this.aCellCache[iCell]) { if (!fLineCacheValid || data !== this.aCellCache[iCell]) {
this.aCellCache[iCell] = data;
this.updateChar(font, iCol, nRows, data, this.contextBuffer); this.updateChar(font, iCol, nRows, data, this.contextBuffer);
cUpdated++; cUpdated++;
} }
@ -1027,6 +1041,18 @@ Video.prototype.updateVT100 = function()
nRows++; nRows++;
} }
this.assert(font < 0 || iCell === this.nCellCache);
if (MAXDEBUG && !fForced) {
var nSeconds = Date.now() / 1000;
if ((nSeconds|0) != (this.nUpdateSeconds|0)) {
this.nUpdateNumber = 0;
}
this.nUpdateNumber++;
this.nUpdateSeconds = nSeconds;
this.printMessage("updateVT100(): update #" + this.nUpdateNumber + " at " +this.nUpdateSeconds + " corner=" + str.toHexByte(this.aCellCache[1]) + " cycles=" + this.nCyclesPrev + " delta=" + this.nCyclesDelta);
}
this.fCellCacheValid = true; this.fCellCacheValid = true;
if (cUpdated && this.contextBuffer) { if (cUpdated && this.contextBuffer) {
@ -1056,9 +1082,10 @@ Video.prototype.updateScreen = function(n)
{ {
var fClean; var fClean;
var fUpdate = true; var fUpdate = true;
var fForced = true;
if (n >= 0) { if (n >= 0) {
fForced = false;
if (this.rateInterrupt) { if (this.rateInterrupt) {
/* /*
* TODO: Incorporate these hard-coded interrupt vector numbers into configuration blocks. * TODO: Incorporate these hard-coded interrupt vector numbers into configuration blocks.
@ -1093,11 +1120,11 @@ Video.prototype.updateScreen = function(n)
} }
} }
if (DEBUG) { if (DEBUG && !fForced) {
var nCycles = this.cpu.getCycles(); var nCycles = this.cpu.getCycles();
var nCyclesDelta = nCycles - this.nCyclesPrev; this.nCyclesDelta = nCycles - this.nCyclesPrev;
this.nCyclesPrev = nCycles; this.nCyclesPrev = nCycles;
this.printMessage("updateScreen(" + n + "): clean=" + fClean + ", update=" + fUpdate + ", cycles=" + nCycles + ", delta=" + nCyclesDelta); if (MAXDEBUG) this.printMessage("updateScreen(" + n + "): clean=" + fClean + ", update=" + fUpdate + ", cycles=" + this.nCyclesPrev + ", delta=" + this.nCyclesDelta);
} }
if (!fUpdate) { if (!fUpdate) {
@ -1105,32 +1132,34 @@ Video.prototype.updateScreen = function(n)
} }
if (this.cxCell > 1) { if (this.cxCell > 1) {
this.updateScreenText(); this.updateScreenText(fForced);
} else { } else {
this.updateScreenGraphics(); this.updateScreenGraphics(fForced);
} }
}; };
/** /**
* updateScreenText() * updateScreenText(fForced)
* *
* @this {Video} * @this {Video}
* @param {boolean} [fForced]
*/ */
Video.prototype.updateScreenText = function() Video.prototype.updateScreenText = function(fForced)
{ {
switch(this.nFormat) { switch(this.nFormat) {
case Video.FORMAT.VT100: case Video.FORMAT.VT100:
this.updateVT100(); this.updateVT100(fForced);
break; break;
} }
}; };
/** /**
* updateScreenGraphics() * updateScreenGraphics(fForced)
* *
* @this {Video} * @this {Video}
* @param {boolean} [fForced]
*/ */
Video.prototype.updateScreenGraphics = function() Video.prototype.updateScreenGraphics = function(fForced)
{ {
var addr = this.addrBuffer; var addr = this.addrBuffer;
var addrLimit = addr + this.sizeBuffer; var addrLimit = addr + this.sizeBuffer;

View file

@ -1,242 +1,243 @@
(function(){var m;function ba(a,b){var c;if(a){b||(b=16);if("$"==a.charAt(0))b=16,a=a.substr(1);else if("0x"==a.substr(0,2))b=16,a=a.substr(2);else{var d=a.charAt(a.length-1).toLowerCase();"h"==d?(b=16,d=null):"."==d&&(b=10,d=null);null==d&&(a=a.substr(0,a.length-1))}var e,d=a,f=b;(f&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):2==f&&null!==d.match(/^[01]+$/i):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c} (function(){var m;function ca(a,b){var c;if(a){b||(b=16);if("$"==a.charAt(0))b=16,a=a.substr(1);else if("0x"==a.substr(0,2))b=16,a=a.substr(2);else{var d=a.charAt(a.length-1).toLowerCase();"h"==d?(b=16,d=null):"."==d&&(b=10,d=null);null==d&&(a=a.substr(0,a.length-1))}var e,d=a,f=b;(f&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):2==f&&null!==d.match(/^[01]+$/i):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}
function n(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function ca(a){return"0x"+n(a,2)}function r(a){return"0x"+n(a,4)}function da(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c} function n(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function t(a){return"0x"+n(a,4)}function da(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function ea(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
function ea(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ga(a,b){return-1!==a.indexOf(b,a.length-b.length)}var ha={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ia(a){return a.replace(/[&<>"']/g,function(a){return ha[a]})}function ja(a,b){return(a+" ").slice(0,b)}function ka(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")} function fa(a,b){return-1!==a.indexOf(b,a.length-b.length)}var ha={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ia(a){return a.replace(/[&<>"']/g,function(a){return ha[a]})}function ja(a,b){return(a+" ").slice(0,b)}function ka(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
function la(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var h=d+e>>1,g;g=c(b,a[h]);0<g?d=h+1:(e=h,f=!g)}return f?d:~d}var ma=Date.now||function(){return+new Date};function na(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())} function la(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var h=d+e>>1,g;g=c(b,a[h]);0<g?d=h+1:(e=h,f=!g)}return f?d:~d}var ma=Date.now||function(){return+new Date};function na(){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 oa(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 oa(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 pa(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"== function pa(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"==
typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function qa(){return"http://"+(window?window.location.host:"www.pcjs.org")} typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function qa(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function ra(){return window?window.navigator.userAgent:""}function t(a){window&&window.alert(a)}function ta(a){var b=!1;window&&(b=window.confirm(a));return b}var ua=null;function va(){if(null==ua){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}ua=a}return ua} function ra(){return window?window.navigator.userAgent:""}function u(a){window&&window.alert(a)}function sa(a){var b=!1;window&&(b=window.confirm(a));return b}var ta=null;function ua(){if(null==ta){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}ta=a}return ta}
function wa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function xa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ya(a){if(window){var b=ra();return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function za(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()} function va(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function wa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function xa(a){if(window){var b=ra();return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function ya(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Aa(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Ga={init:[],show:[],exit:[]},Ha=!1,Ia=!0;function Ja(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ka(a){Ga.init.push(a)} function za(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Ba={init:[],show:[],exit:[]},Ga=!1,Ha=!0;function Ia(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ja(a){Ba.init.push(a)}
function La(a){if(Ia)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Ma("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Na(a){!Ia&&a?(Ia=!0,Ha&&Oa("init")):Ia=a}function Oa(a){Ga[a]&&La(Ga[a])}Ja("onload",function(){Ha=!0;La(Ga.init)});Ja("onpageshow",function(){La(Ga.show)});Ja(ya("Opera")||ya("iOS")?"onunload":"onbeforeunload",function(){La(Ga.exit)}); function Ka(a){if(Ha)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){La("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Ma(a){!Ha&&a?(Ha=!0,Ga&&Na("init")):Ha=a}function Na(a){Ba[a]&&Ka(Ba[a])}Ia("onload",function(){Ga=!0;Ka(Ba.init)});Ia("onpageshow",function(){Ka(Ba.show)});Ia(xa("Opera")||xa("iOS")?"onunload":"onbeforeunload",function(){Ka(Ba.exit)});
function u(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.fc=b.comment;this.zc=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Sb=this.id.substr(0,b),this.ab=this.id.substr(b+1)):this.ab=this.id;this[a]=c;this.C={jb:!1,gb:!1,Vb:!1,sa:!1,ib:!1};this.Mb=null;this.C.ib=!1;this.K={};this.H=null;this.oa=d||0;Ra.push(this)}var Sa=void 0,Ta={}; function v(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.fc=b.comment;this.zc=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Sb=this.id.substr(0,b),this.ab=this.id.substr(b+1)):this.ab=this.id;this[a]=c;this.C={jb:!1,gb:!1,Vb:!1,sa:!1,ib:!1};this.Mb=null;this.C.ib=!1;this.L={};this.I=null;this.oa=d||0;Oa.push(this)}var Ra=void 0,Sa={};
if(window){Sa||(Sa=window.location.search.substr(1));for(var Ua,Va=/\+/g,Wa=/([^&=]+)=?([^&]*)/g;Ua=Wa.exec(Sa);)Ta[decodeURIComponent(Ua[1].replace(Va," "))]=decodeURIComponent(Ua[2].replace(Va," "))}function $a(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} if(window){Ra||(Ra=window.location.search.substr(1));for(var Ta,Ua=/\+/g,Va=/([^&=]+)=?([^&]*)/g;Ta=Va.exec(Ra);)Sa[decodeURIComponent(Ta[1].replace(Ua," "))]=decodeURIComponent(Ta[2].replace(Ua," "))}function Za(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function ab(a,b){b||(b=u);a.prototype=$a(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Ra=[],bb={};function cb(a,b,c){bb[a]&&b&&(bb[a][b]=c)}function Ma(a,b,c){b||t((c?c+": ":"")+a)}function db(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ra.length;b++){var d=Ra[b];a&&d.id.indexOf(a)||c.push(d)}return c} function $a(a,b){b||(b=v);a.prototype=Za(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Oa=[],ab={};function bb(a,b,c){ab[a]&&b&&(ab[a][b]=c)}function La(a,b,c){b||u((c?c+": ":"")+a)}function cb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Oa.length;b++){var d=Oa[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function eb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<Ra.length;d++)if(c)c==Ra[d]&&(c=null);else if(!(a!=Ra[d].type||b&&Ra[d].id.indexOf(b)))return Ra[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b} function db(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<Oa.length;d++)if(c)c==Oa[d]&&(c=null);else if(!(a!=Oa[d].type||b&&Oa[d].id.indexOf(b)))return Oa[d]}return null}function y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){u(c.message+" ("+a+")")}return b}
function fb(a,b){for(var c=A(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pc8080-binding":(g=z(h))&&g.binding&&a.ja(g.type,g.binding,h,g.value),l=k.length}}}} function eb(a,b){for(var c=A(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pc8080-binding":(g=y(h))&&g.binding&&a.ja(g.type,g.binding,h,g.value),l=k.length}}}}
function A(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c} function A(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ja:function(a,b,c){switch(b){case "clear":return this.K[b]||(this.K[b]=c,c.onclick=function(a){return function(){a.K.print&&(a.K.print.value="")}}(this)),!0;case "print":return this.K[b]||(this.Ba=this.K[b]=c,c.value="",this.g=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c), v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ja:function(a,b,c){switch(b){case "clear":return this.L[b]||(this.L[b]=c,c.onclick=function(a){return function(){a.L.print&&(a.L.print.value="")}}(this)),!0;case "print":return this.L[b]||(this.Ba=this.L[b]=c,c.value="",this.g=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
this.ga=function(a){this.g(a,this.ab)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.ab+": "+a)},ga:function(a,b,c){Ma(a,b,c||this.type)},Aa:function(){return this.C.sa=!0},Da:function(a,b){b&&(this.C.sa=!1);return!0}};function C(a,b,c,d,e,f,h){a.H&&(!0===h?h=0:null==h&&(h=a.oa),gb(a.H,a,b,c,d,e,f,h))}function hb(a,b,c){a.H&&(!0===c||ib(a,c|0))&&a.H.message(b,void 0)} this.ga=function(a){this.g(a,this.ab)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.ab+": "+a)},ga:function(a,b,c){La(a,b,c||this.type)},Aa:function(){return this.C.sa=!0},Da:function(a,b){b&&(this.C.sa=!1);return!0}};function C(a,b,c,d,e,f,h){a.I&&(!0===h?h=0:null==h&&(h=a.oa),fb(a.I,a,b,c,d,e,f,h))}function gb(a,b,c){a.I&&(!0===c||hb(a,c|0))&&a.I.message(b,void 0)}
function ib(a,b){if(a.H){a===a.H?b|=0:b=b||a.oa;var c=a.H.oa&b;return!!b&&c===b||!!(c&a.H.md)}return!1}function jb(a,b){if(a.C.Vb)return a.C.gb&&(a.C.gb=!1),a.C.Vb=!1;if(a.C.ib)return a.g(a.toString()+" error"),!1;a.C.gb=b;return a.C.gb}function kb(a,b){a.C.gb&&(b?a.C.Vb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.C.gb}function E(a){if(!a.C.ib&&(a.C.jb=!0,a.C.jb)){var b=a.Mb;a.Mb=null;b&&b()}}function lb(a,b){b&&(a.C.jb?b():a.Mb=b);return a.C.jb}function mb(a,b){a.C.ib=!0;a.ga(b)} function hb(a,b){if(a.I){a===a.I?b|=0:b=b||a.oa;var c=a.I.oa&b;return!!b&&c===b||!!(c&a.I.nd)}return!1}function ib(a,b){if(a.C.Vb)return a.C.gb&&(a.C.gb=!1),a.C.Vb=!1;if(a.C.ib)return a.g(a.toString()+" error"),!1;a.C.gb=b;return a.C.gb}function jb(a,b){a.C.gb&&(b?a.C.Vb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.C.gb}function D(a){if(!a.C.ib&&(a.C.jb=!0,a.C.jb)){var b=a.Mb;a.Mb=null;b&&b()}}function kb(a,b){b&&(a.C.jb?b():a.Mb=b);return a.C.jb}function lb(a,b){a.C.ib=!0;a.ga(b)}
var pb="undefined"!==typeof ArrayBuffer,qb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1, var mb="undefined"!==typeof ArrayBuffer,pb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function rb(a){u.call(this,"Panel",a,rb)}ab(rb);m=rb.prototype;m.ja=function(a,b,c,d){return this.w&&this.w.ja(a,b,c,d)||this.b&&this.b.ja(a,b,c,d)||this.M&&this.M.ja(a,b,c,d)||this.H&&this.H.ja(a,b,c,d)?!0:this.parent.ja.call(this,a,b,c,d)};m.Na=function(a,b,c,d){this.w=a;this.B=b;this.b=c;this.H=d;this.M=sb(a,"Keyboard")};m.Aa=function(a,b){b||tb();return!0};m.Da=function(){return!0};m.Ea=function(){}; 0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function qb(a){v.call(this,"Panel",a,qb)}$a(qb);m=qb.prototype;m.ja=function(a,b,c,d){return this.w&&this.w.ja(a,b,c,d)||this.b&&this.b.ja(a,b,c,d)||this.M&&this.M.ja(a,b,c,d)||this.I&&this.I.ja(a,b,c,d)?!0:this.parent.ja.call(this,a,b,c,d)};m.Na=function(a,b,c,d){this.w=a;this.B=b;this.b=c;this.I=d;this.M=rb(a,"Keyboard")};m.Aa=function(a,b){b||sb();return!0};m.Da=function(){return!0};m.Ea=function(){};
function tb(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=z(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<Ra.length;h++)if(Ra[h].id===f){f=Ra[h];break a}f=null}f||(a=!0,f=new rb(e));fb(f,d);a&&E(f)}}Ka(tb); function sb(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=y(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<Oa.length;h++)if(Oa[h].id===f){f=Oa[h];break a}f=null}f||(a=!0,f=new qb(e));eb(f,d);a&&D(f)}}Ja(sb);
function ub(a,b,c){u.call(this,"Bus",a,ub);this.b=b;this.H=c;this.J=a.busWidth||16;this.O=Math.pow(2,this.J);this.D=this.O-1|0;this.la=16>=this.J?10:20>=this.J?12:24>=this.J?14:15;this.Ca=1<<this.la;this.P=this.Ca>>2;this.B=this.Ca-1;this.L=this.O/this.Ca|0;this.M=this.L-1;this.w=[];this.A=[];this.F=this.I=!1;this.Z=[];this.ba=[];a=new F;vb(a,this.H);this.W=Array(this.L);for(b=0;b<this.L;b++)this.W[b]=a;E(this)}ab(ub);m=ub.prototype;m.reset=function(){};m.Aa=function(a,b){b||this.reset();return!0}; function tb(a,b,c){v.call(this,"Bus",a,tb);this.b=b;this.I=c;this.J=a.busWidth||16;this.O=Math.pow(2,this.J);this.D=this.O-1|0;this.ma=16>=this.J?10:20>=this.J?12:24>=this.J?14:15;this.Ca=1<<this.ma;this.P=this.Ca>>2;this.B=this.Ca-1;this.M=this.O/this.Ca|0;this.K=this.M-1;this.w=[];this.A=[];this.F=this.H=!1;this.Z=[];this.ba=[];a=new E;ub(a,this.I);this.W=Array(this.M);for(b=0;b<this.M;b++)this.W[b]=a;D(this)}$a(tb);m=tb.prototype;m.reset=function(){};m.Aa=function(a,b){b||this.reset();return!0};
function wb(a,b,c,d){for(var e=b,f=c,h=e>>>a.la;0<f&&h<a.W.length;){var g=a.W[h],k=h*a.Ca,l=a.Ca-(e-k);l>f&&(l=f);if(g&&g.size){if(g.type==d){if(e+f<=g.G)return g.Fb+=g.G-e,g.G=e,!0;if(e>=g.G+g.Fb){l=g.size-(e-k);l>f&&(l=f);g.Fb=e-g.G+l;e=k+a.Ca;f-=l;h++;continue}}return xb(1,e,f)}e=new F(e,l,a.Ca,d);vb(e,a.H,g);a.W[h++]=e;e=k+a.Ca;f-=l}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+yb[d]+" at "+r(b)),!0):xb(2,b,c)}m.Y=function(a){return this.W[(a&this.D)>>>this.la].qb(a&this.B,a)}; function vb(a,b,c,d){for(var e=b,f=c,h=e>>>a.ma;0<f&&h<a.W.length;){var g=a.W[h],k=h*a.Ca,l=a.Ca-(e-k);l>f&&(l=f);if(g&&g.size){if(g.type==d){if(e+f<=g.G)return g.Fb+=g.G-e,g.G=e,!0;if(e>=g.G+g.Fb){l=g.size-(e-k);l>f&&(l=f);g.Fb=e-g.G+l;e=k+a.Ca;f-=l;h++;continue}}return wb(1,e,f)}e=new E(e,l,a.Ca,d);ub(e,a.I,g);a.W[h++]=e;e=k+a.Ca;f-=l}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+xb[d]+" at "+t(b)),!0):wb(2,b,c)}m.Y=function(a){return this.W[(a&this.D)>>>this.ma].qb(a&this.B,a)};
function zb(a,b){return a.W[(b&a.D)>>>a.la].Db(b&a.B,b)}m.Qa=function(a){var b=a&this.B,c=(a&this.D)>>>this.la;return b!=this.B?this.W[c].Ac(b,a):this.W[c++].qb(b,a)|this.W[c&this.M].qb(0,a+1)<<8};function Ab(a,b){var c=b&a.B,d=(b&a.D)>>>a.la;return c!=a.B?a.W[d].ac(c,b):a.W[d++].Db(c,b)|a.W[d&a.M].Db(0,b+1)<<8}m.qa=function(a,b){this.W[(a&this.D)>>>this.la].sb(a&this.B,b&255,a)};function Bb(a,b,c){a.W[(b&a.D)>>>a.la].Gb(b&a.B,c&255,b)} function yb(a,b){return a.W[(b&a.D)>>>a.ma].Db(b&a.B,b)}m.Qa=function(a){var b=a&this.B,c=(a&this.D)>>>this.ma;return b!=this.B?this.W[c].Ac(b,a):this.W[c++].qb(b,a)|this.W[c&this.K].qb(0,a+1)<<8};function zb(a,b){var c=b&a.B,d=(b&a.D)>>>a.ma;return c!=a.B?a.W[d].ac(c,b):a.W[d++].Db(c,b)|a.W[d&a.K].Db(0,b+1)<<8}m.qa=function(a,b){this.W[(a&this.D)>>>this.ma].sb(a&this.B,b&255,a)};function Ab(a,b,c){a.W[(b&a.D)>>>a.ma].Gb(b&a.B,c&255,b)}
m.Rb=function(a,b){var c=a&this.B,d=(a&this.D)>>>this.la;c!=this.B?this.W[d].Cc(c,b&65535,a):(this.W[d++].sb(c,b&255,a),this.W[d&this.M].sb(0,b>>8&255,a+1))};function Cb(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.w[b]&&(a.w[b]=[null,!1]);a.w[b][1]=!a.w[b][1];return a.w[b][1]}function Db(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.w[k]?t("Input port "+r(k)+" already registered"):f.w[k]=[g,!1]}} m.Rb=function(a,b){var c=a&this.B,d=(a&this.D)>>>this.ma;c!=this.B?this.W[d].Cc(c,b&65535,a):(this.W[d++].sb(c,b&255,a),this.W[d&this.K].sb(0,b>>8&255,a+1))};function Bb(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.w[b]&&(a.w[b]=[null,!1]);a.w[b][1]=!a.w[b][1];return a.w[b][1]}function Cb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.w[k]?u("Input port "+t(k)+" already registered"):f.w[k]=[g,!1]}}
function Eb(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.w[b],g=a.Z[b]||1,k=1==g?255:2==g?65535:-1,l=k;void 0!==h?(h[0]&&(l=h[0](b,c),void 0===l?l=k:l&=k),a.H&&a.F!=h[1]&&Fb(a.H,b,l)):a.H&&(gb(a.H,a,b,null,c),a.F&&Fb(a.H,b,l));e|=l<<f;f+=g<<3;b+=g;d-=g}return e}function Gb(a,b){if(void 0===b)return a.I=!a.I,a.I;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]} function Db(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.w[b],g=a.Z[b]||1,k=1==g?255:2==g?65535:-1,l=k;void 0!==h?(h[0]&&(l=h[0](b,c),void 0===l?l=k:l&=k),a.I&&a.F!=h[1]&&Eb(a.I,b,l)):a.I&&(fb(a.I,a,b,null,c),a.F&&Eb(a.I,b,l));e|=l<<f;f+=g<<3;b+=g;d-=g}return e}function Fb(a,b){if(void 0===b)return a.H=!a.H,a.H;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]}
function Hb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.A[k]?t("Output port "+r(k)+" already registered"):f.A[k]=[g,!1]}}function Ib(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.A[b],g=a.ba[b]||1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h){if(h[0])h[0](b,k,d);a.H&&a.I!=h[1]&&Jb(a.H,b,k)}else a.H&&(gb(a.H,a,b,k,d),a.I&&Jb(a.H,b,k));f+=g<<3;b+=g;e-=g}} function Gb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.A[k]?u("Output port "+t(k)+" already registered"):f.A[k]=[g,!1]}}function Hb(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.A[b],g=a.ba[b]||1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h){if(h[0])h[0](b,k,d);a.I&&a.H!=h[1]&&Ib(a.I,b,k)}else a.I&&(fb(a.I,a,b,k,d),a.H&&Ib(a.I,b,k));f+=g<<3;b+=g;e-=g}}
function xb(a,b,c){t("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Kb;if(pb){var Lb=new ArrayBuffer(2);(new DataView(Lb)).setUint16(0,256,!0);Kb=256===(new Uint16Array(Lb))[0]}else Kb=!1;var Mb=Kb; function wb(a,b,c){u("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Jb;if(mb){var Kb=new ArrayBuffer(2);(new DataView(Kb)).setUint16(0,256,!0);Jb=256===(new Uint16Array(Kb))[0]}else Jb=!1;var Lb=Jb;
function F(a,b,c,d){this.id=Vb+=2;this.b=null;this.G=a;this.Fb=b;this.size=c||0;this.type=d||Wb;this.K=d==Xb;vb(this);this.La=this.sc=!1;if(c)if(pb)this.F=new ArrayBuffer(c),this.I=new DataView(this.F,0,c),this.B=new Uint8Array(this.F,0,c),this.M=new Uint16Array(this.F,0,c>>1),this.b=new Int32Array(this.F,0,c>>2),Yb(this,Mb?Zb:$b);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Yb(this,ac)}else Yb(this)}var Wb=0,Xb=2,yb=["NONE","RAM","ROM","VID","H/W"],Vb=0; function E(a,b,c,d){this.id=Ub+=2;this.b=null;this.G=a;this.Fb=b;this.size=c||0;this.type=d||Vb;this.L=d==Wb;ub(this);this.La=this.sc=!1;if(c)if(mb)this.F=new ArrayBuffer(c),this.H=new DataView(this.F,0,c),this.B=new Uint8Array(this.F,0,c),this.K=new Uint16Array(this.F,0,c>>1),this.b=new Int32Array(this.F,0,c>>2),Xb(this,Lb?Yb:Zb);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Xb(this,$b)}else Xb(this)}var Vb=0,Wb=2,xb=["NONE","RAM","ROM","VID","H/W"],Ub=0;
F.prototype={constructor:F,parent:null,save:function(){var a,b;if(pb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.I.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(pb)for(b=0;b<a.length;b++)this.I.setInt32(b<<2,a[b],!0);else this.b=a;return this.La=!0}return!1},Va:function(a,b){b?0===this.A++&&bc(this,cc,!1):0===this.w++&&dc(this,cc,!1)},L:function(){this.H&&ib(this.H,129)&&this.H.message("attempt to read invalid block %"+n(this.G),!0); E.prototype={constructor:E,parent:null,save:function(){var a,b;if(mb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.H.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(mb)for(b=0;b<a.length;b++)this.H.setInt32(b<<2,a[b],!0);else this.b=a;return this.La=!0}return!1},Va:function(a,b){b?0===this.A++&&ac(this,bc,!1):0===this.w++&&cc(this,bc,!1)},M:function(){this.I&&hb(this.I,129)&&this.I.message("attempt to read invalid block %"+n(this.G),!0);
return 255},D:function(a,b){this.H&&ib(this.H,129)&&this.H.message("attempt to write "+r(b)+" to invalid block %"+n(this.G),!0)},O:function(a,b){return this.qb(a++,b++)|this.qb(a,b)<<8},J:function(a,b,c){this.sb(a++,b&255,c++);this.sb(a,b>>8,c)},da:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},na: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},Fa:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.La=!0},Ka:function(a, return 255},D:function(a,b){this.I&&hb(this.I,129)&&this.I.message("attempt to write "+t(b)+" to invalid block %"+n(this.G),!0)},O:function(a,b){return this.qb(a++,b++)|this.qb(a,b)<<8},J:function(a,b,c){this.sb(a++,b&255,c++);this.sb(a,b>>8,c)},da:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},na: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},Fa:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.La=!0},ab:function(a,
b){var c=a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.La=!0},Z:function(a,b){if(this.H&&null!=this.G){var c=this.H;ec(c,this.G+a,1,c.Z)&&c.ka(!0)}return this.Db(a,b)},fa:function(a,b){if(this.H&&null!=this.G){var c=this.H;ec(c,this.G+a,2,c.Z)&&c.ka(!0)}return this.ac(a,b)},wa:function(a,b,c){if(this.H&&null!=this.G){var d=this.H;ec(d,this.G+a,1,d.I)&&d.ka(!0)}this.K?this.D(a,b,c):this.Gb(a,b,c)},Ha:function(a, b){var c=a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.La=!0},Z:function(a,b){if(this.I&&null!=this.G){var c=this.I;dc(c,this.G+a,1,c.Z)&&c.ka(!0)}return this.Db(a,b)},fa:function(a,b){if(this.I&&null!=this.G){var c=this.I;dc(c,this.G+a,2,c.Z)&&c.ka(!0)}return this.ac(a,b)},wa:function(a,b,c){if(this.I&&null!=this.G){var d=this.I;dc(d,this.G+a,1,d.H)&&d.ka(!0)}this.L?this.D(a,b,c):this.Gb(a,b,c)},Ha:function(a,
b,c){if(this.H&&null!=this.G){var d=this.H;ec(d,this.G+a,2,d.I)&&d.ka(!0)}this.K?this.D(a,b,c):this.cc(a,b,c)},P:function(a){return this.B[a]},ba:function(a){return this.B[a]},ea:function(a){return this.I.getUint16(a,!0)},ma:function(a){return a&1?this.B[a]|this.B[a+1]<<8:this.M[a>>1]},ra:function(a,b){this.B[a]=b;this.La=!0},xa:function(a,b){this.B[a]=b;this.La=!0},Ga:function(a,b){this.I.setUint16(a,b,!0);this.La=!0},ab:function(a,b){a&1?(this.B[a]=b,this.B[a+1]=b>>8):this.M[a>>1]=b;this.La=!0}}; b,c){if(this.I&&null!=this.G){var d=this.I;dc(d,this.G+a,2,d.H)&&d.ka(!0)}this.L?this.D(a,b,c):this.cc(a,b,c)},P:function(a){return this.B[a]},ba:function(a){return this.B[a]},ea:function(a){return this.H.getUint16(a,!0)},la:function(a){return a&1?this.B[a]|this.B[a+1]<<8:this.K[a>>1]},ra:function(a,b){this.B[a]=b;this.La=!0},xa:function(a,b){this.B[a]=b;this.La=!0},Ga:function(a,b){this.H.setUint16(a,b,!0);this.La=!0},Ka:function(a,b){a&1?(this.B[a]=b,this.B[a+1]=b>>8):this.K[a>>1]=b;this.La=!0}};
function vb(a,b,c){a.H=b;a.w=a.A=0;c&&((a.w=c.w)&&dc(a,cc,!1),(a.A=c.A)&&bc(a,cc,!1))}function fc(a,b){b?0===--a.A&&(a.sb=a.K?a.D:a.Gb,a.Cc=a.K?a.J:a.cc):0===--a.w&&(a.qb=a.Db,a.Ac=a.ac)}function bc(a,b,c){c&&a.A||(a.sb=!a.K&&b[2]||a.D,a.Cc=!a.K&&b[3]||a.J);if(c||void 0===c)a.Gb=b[2]||a.D,a.cc=b[3]||a.J}function dc(a,b,c){c&&a.w||(a.qb=b[0]||a.L,a.Ac=b[1]||a.O);if(c||void 0===c)a.Db=b[0]||a.L,a.ac=b[1]||a.O}function Yb(a,b){b||(b=gc);dc(a,b,void 0);bc(a,b,void 0)} function ub(a,b,c){a.I=b;a.w=a.A=0;c&&((a.w=c.w)&&cc(a,bc,!1),(a.A=c.A)&&ac(a,bc,!1))}function ec(a,b){b?0===--a.A&&(a.sb=a.L?a.D:a.Gb,a.Cc=a.L?a.J:a.cc):0===--a.w&&(a.qb=a.Db,a.Ac=a.ac)}function ac(a,b,c){c&&a.A||(a.sb=!a.L&&b[2]||a.D,a.Cc=!a.L&&b[3]||a.J);if(c||void 0===c)a.Gb=b[2]||a.D,a.cc=b[3]||a.J}function cc(a,b,c){c&&a.w||(a.qb=b[0]||a.M,a.Ac=b[1]||a.O);if(c||void 0===c)a.Db=b[0]||a.M,a.ac=b[1]||a.O}function Xb(a,b){b||(b=fc);cc(a,b,void 0);ac(a,b,void 0)}
var gc=[],ac=[F.prototype.da,F.prototype.na,F.prototype.Fa,F.prototype.Ka],cc=[F.prototype.Z,F.prototype.fa,F.prototype.wa,F.prototype.Ha];if(pb)var $b=[F.prototype.P,F.prototype.ea,F.prototype.ra,F.prototype.Ga],Zb=[F.prototype.ba,F.prototype.ma,F.prototype.xa,F.prototype.ab]; var fc=[],$b=[E.prototype.da,E.prototype.na,E.prototype.Fa,E.prototype.ab],bc=[E.prototype.Z,E.prototype.fa,E.prototype.wa,E.prototype.Ha];if(mb)var Zb=[E.prototype.P,E.prototype.ea,E.prototype.ra,E.prototype.Ga],Yb=[E.prototype.ba,E.prototype.la,E.prototype.xa,E.prototype.Ka];
function hc(a,b){u.call(this,"CPU",a,hc,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.pb=c;this.i.Ob=0;this.i.Za=d;this.i.Xb=Math.round(this.i.pb/1E4)/100;this.i.Xa=this.i.Xb*this.i.Za;this.C.va=!1;this.C.Wb=!1;this.C.rc=a.autoStart;this.C.tc=!1;this.C.hb=!1;this.i.xb=this.i.mb=0;this.i.yb=a.csStart;this.i.lb=a.csInterval;this.i.nb=a.csStop;this.ba=this.$a.bind(this);E(this)}ab(hc);var ic=["power","reset"];m=hc.prototype; function gc(a,b){v.call(this,"CPU",a,gc,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.pb=c;this.i.Ob=0;this.i.Za=d;this.i.Xb=Math.round(this.i.pb/1E4)/100;this.i.Xa=this.i.Xb*this.i.Za;this.C.va=!1;this.C.Wb=!1;this.C.rc=a.autoStart;this.C.tc=!1;this.C.hb=!1;this.i.xb=this.i.mb=0;this.i.yb=a.csStart;this.i.lb=a.csInterval;this.i.nb=a.csStop;this.ba=this.$a.bind(this);D(this)}$a(gc);var hc=["power","reset"];m=gc.prototype;
m.Na=function(a,b,c,d){this.w=a;this.B=b;this.H=d;for(b=0;b<ic.length;b++)(c=this.K[ic[b]])&&this.w.ja(null,ic[b],c);this.L=(b=sb(a,"Video"))&&Math.max(b.kd,b.Tb)||60;this.D=sb(a,"ChipSet");a=jc(a,"autoStart");null!=a&&(this.C.rc="true"==a?!0:"false"==a?!1:!!a);E(this)};m.reset=function(){this.i.Ob=0};m.save=function(){return null};m.restore=function(){return!1}; m.Na=function(a,b,c,d){this.w=a;this.B=b;this.I=d;for(b=0;b<hc.length;b++)(c=this.L[hc[b]])&&this.w.ja(null,hc[b],c);this.M=(b=rb(a,"Video"))&&Math.max(b.ld,b.Tb)||60;this.D=rb(a,"ChipSet");a=ic(a,"autoStart");null!=a&&(this.C.rc="true"==a?!0:"false"==a?!1:!!a);D(this)};m.reset=function(){this.i.Ob=0};m.save=function(){return null};m.restore=function(){return!1};
m.Aa=function(a,b){if(!b){if(a&&this.restore){kc(this);if(!this.restore(a))return!1;lc(this)}else this.reset();if(this.H){var c=this.H;c.g("Type ? for help with PC8080 Debugger commands");c.Ea();if(c.Ka){var d=c.Ka;c.Ka=null;mc(c,d)}}else this.g("No debugger detected")}nc(this);return!0};m.Da=function(a){return a?this.save():!0};function oc(a){(a.C.rc||!a.H&&void 0===a.K.run)&&a.$a(!0)}m.uc=function(){return 0}; m.Aa=function(a,b){if(!b){if(a&&this.restore){jc(this);if(!this.restore(a))return!1;kc(this)}else this.reset();if(this.I){var c=this.I;c.g("Type ? for help with PC8080 Debugger commands");c.Ea();if(c.Ka){var d=c.Ka;c.Ka=null;lc(c,d)}}else this.g("No debugger detected")}mc(this);return!0};m.Da=function(a){return a?this.save():!0};function nc(a){(a.C.rc||!a.I&&void 0===a.L.run)&&a.$a(!0)}m.uc=function(){return 0};
function lc(a){void 0===a.i.yb&&(a.i.yb=0);void 0===a.i.lb&&(a.i.lb=-1);void 0===a.i.nb&&(a.i.nb=-1);a.C.hb=0<=a.i.yb&&0<a.i.lb;a.C.hb&&(a.i.xb=0,a.i.mb=a.i.yb-a.J)}function pc(a,b){if(a.C.hb){var c=!1;a.i.xb=a.i.xb+a.uc()|0;a.i.mb-=b;0>=a.i.mb&&(a.i.mb+=a.i.lb,c=!0);0<=a.i.nb&&a.i.nb<=qc(a)&&(a.i.lb=a.i.nb=-1,lc(a),a.ka(),c=!0);c&&a.g(qc(a)+" cycles: checksum="+n(a.i.xb))}} function kc(a){void 0===a.i.yb&&(a.i.yb=0);void 0===a.i.lb&&(a.i.lb=-1);void 0===a.i.nb&&(a.i.nb=-1);a.C.hb=0<=a.i.yb&&0<a.i.lb;a.C.hb&&(a.i.xb=0,a.i.mb=a.i.yb-a.J)}function oc(a,b){if(a.C.hb){var c=!1;a.i.xb=a.i.xb+a.uc()|0;a.i.mb-=b;0>=a.i.mb&&(a.i.mb+=a.i.lb,c=!0);0<=a.i.nb&&a.i.nb<=pc(a)&&(a.i.lb=a.i.nb=-1,kc(a),a.ka(),c=!0);c&&a.g(pc(a)+" cycles: checksum="+n(a.i.xb))}}
m.ja=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.K[b]=c;a=!0;break;case "run":this.K[b]=c;c.onclick=function(){var a;if(a=d.w)if(a=d.w,a.C.sa)a=!0;else{var b=null,c,g=db(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.C.jb);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.C.sa);c++);c==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.C.jb?"powered yet":"ready yet"+(b.Mb?" (waiting for notification)":""))+".");a=!1}a&&(d.C.va?d.ka(!0):d.$a(!0))};a= m.ja=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.L[b]=c;a=!0;break;case "run":this.L[b]=c;c.onclick=function(){var a;if(a=d.w)if(a=d.w,a.C.sa)a=!0;else{var b=null,c,g=cb(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.C.jb);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.C.sa);c++);c==g.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.C.jb?"powered yet":"ready yet"+(b.Mb?" (waiting for notification)":""))+".");a=!1}a&&(d.C.va?d.ka(!0):d.$a(!0))};a=
!0;break;case "speed":this.K[b]=c;a=!0;break;case "setSpeed":this.K[b]=c,c.onclick=function(){Dc(d,d.i.Za<<1,!0)},c.textContent=this.i.Xa.toFixed(2)+"Mhz",a=!0}return a};function Ec(a,b,c){a.J+=b;c&&(a.F=a.b=0)} !0;break;case "speed":this.L[b]=c;a=!0;break;case "setSpeed":this.L[b]=c,c.onclick=function(){Cc(d,d.i.Za<<1,!0)},c.textContent=this.i.Xa.toFixed(2)+"Mhz",a=!0}return a};function Dc(a,b,c){a.J+=b;c&&(a.F=a.b=0)}
function Fc(a,b){var c=30;c<a.L&&(c=a.L);2>c&&(c=2);var d=1;b&&1<a.i.Za&&a.i.Wa&&(d=a.i.Wa/a.i.Xb);a.i.wc=Math.round(1E3/30);a.i.xd=Math.floor(a.i.pb/c*d);a.i.Zb=Math.floor(a.i.pb/30*d);a.i.yc=Math.floor(a.i.pb/a.L*d);a.i.xc=Math.floor(a.i.pb/2*d);b||(a.i.ob=a.i.Zb,a.i.Ab=a.i.yc,a.i.zb=a.i.xc);a.i.$b=0}function qc(a){return a.J+a.I+a.F-a.b}function kc(a){a.i.Wa=0;a.J=a.I=a.F=a.b=0;lc(a);Dc(a,1)} function Ec(a,b){var c=30;c<a.M&&(c=a.M);2>c&&(c=2);var d=1;b&&1<a.i.Za&&a.i.Wa&&(d=a.i.Wa/a.i.Xb);a.i.wc=Math.round(1E3/30);a.i.yd=Math.floor(a.i.pb/c*d);a.i.Zb=Math.floor(a.i.pb/30*d);a.i.yc=Math.floor(a.i.pb/a.M*d);a.i.xc=Math.floor(a.i.pb/2*d);b||(a.i.ob=a.i.Zb,a.i.Ab=a.i.yc,a.i.zb=a.i.xc);a.i.$b=0}function pc(a){return a.J+a.H+a.F-a.b}function jc(a){a.i.Wa=0;a.J=a.H=a.F=a.b=0;kc(a);Cc(a,1)}
function Dc(a,b,c){var d=!1;if(void 0!==b){.8>a.i.Wa/a.i.Xa?b=1:d=!0;a.i.Za=b;b=a.i.Xb*a.i.Za;if(a.i.Xa!=b){a.i.Xa=b;b=a.i.Xa.toFixed(2)+"Mhz";var e=a.K.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.w&&a.w.Eb()}Ec(a,a.I);a.I=0;a.i.kb=ma();a.i.Ya=0;Fc(a);return d} function Cc(a,b,c){var d=!1;if(void 0!==b){.8>a.i.Wa/a.i.Xa?b=1:d=!0;a.i.Za=b;b=a.i.Xb*a.i.Za;if(a.i.Xa!=b){a.i.Xa=b;b=a.i.Xa.toFixed(2)+"Mhz";var e=a.L.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.w&&a.w.Eb()}Dc(a,a.H);a.H=0;a.i.kb=ma();a.i.Ya=0;Ec(a);return d}
m.$a=function(a){if(jb(this,!0)){if(!this.C.va){Dc(this);this.w&&this.w.start(this.i.kb,qc(this));this.C.va=!0;this.C.Wb=!0;this.D&&this.D.start();var b=this.K.run;b&&(b.textContent="Halt");this.w&&(this.w.Ea(!0),a&&this.w.Eb(!0))}this.i.$b>=this.i.pb&&Fc(this,!0);this.i.Bb=0;this.i.Nb=ma();this.i.Ya&&(a=this.i.Nb-this.i.Ya,a>this.i.wc&&(this.i.kb+=a,this.i.kb>this.i.Nb&&(this.i.kb=this.i.Nb)));try{do{this.rb(this.C.hb?1:this.i.xd);var c=this.F-this.b;this.I+=c;this.i.Bb+=c;Ec(this,0,!0);pc(this, m.$a=function(a){if(ib(this,!0)){if(!this.C.va){Cc(this);this.w&&this.w.start(this.i.kb,pc(this));this.C.va=!0;this.C.Wb=!0;this.D&&this.D.start();var b=this.L.run;b&&(b.textContent="Halt");this.w&&(this.w.Ea(!0),a&&this.w.Eb(!0))}this.i.$b>=this.i.pb&&Ec(this,!0);this.i.Bb=0;this.i.Nb=ma();this.i.Ya&&(a=this.i.Nb-this.i.Ya,a>this.i.wc&&(this.i.kb+=a,this.i.kb>this.i.Nb&&(this.i.kb=this.i.Nb)));try{do{this.rb(this.C.hb?1:this.i.yd);var c=this.F-this.b;this.H+=c;this.i.Bb+=c;Dc(this,0,!0);oc(this,
c);this.i.Ab-=c;0>=this.i.Ab&&(this.i.Ab+=this.i.yc,this.w&&Gc(this.w,this.i.Ob++),this.i.Ob>this.L&&(this.i.Ob=0));this.i.zb-=c;0>=this.i.zb&&(this.i.zb+=this.i.xc,this.w&&this.w.Ea());this.i.ob-=c;if(0>=this.i.ob){this.i.ob+=this.i.Zb;break}}while(this.C.va)}catch(e){this.ka();nc(this);this.w&&this.w.stop(ma(),qc(this));jb(this,!1);mb(this,e.stack||e.message);return}c=setTimeout;a=this.ba;this.i.Ya=ma();b=this.i.wc;this.i.Bb&&(b=Math.round(b*this.i.Bb/this.i.Zb));var b=b-(this.i.Ya-this.i.Nb),d= c);this.i.Ab-=c;0>=this.i.Ab&&(this.i.Ab+=this.i.yc,this.w&&Fc(this.w,this.i.Ob++),this.i.Ob>this.M&&(this.i.Ob=0));this.i.zb-=c;0>=this.i.zb&&(this.i.zb+=this.i.xc,this.w&&this.w.Ea());this.i.ob-=c;if(0>=this.i.ob){this.i.ob+=this.i.Zb;break}}while(this.C.va)}catch(e){this.ka();mc(this);this.w&&this.w.stop(ma(),pc(this));ib(this,!1);lb(this,e.stack||e.message);return}c=setTimeout;a=this.ba;this.i.Ya=ma();b=this.i.wc;this.i.Bb&&(b=Math.round(b*this.i.Bb/this.i.Zb));var b=b-(this.i.Ya-this.i.Nb),d=
this.i.Ya-this.i.kb;d&&(this.i.Wa=Math.round(this.I/(10*d))/100,864E5<=d&&(this.J=0,Dc(this)));if(0>b||this.i.Wa<this.i.Xa)b=0;this.i.$b+=this.i.Bb;this.i.Ya+=b;c(a,b)}else nc(this),this.w&&this.w.stop(ma(),qc(this))};m.rb=function(){return 0};m.ka=function(a){kb(this,!0);this.F-=this.b;this.b=0;Ec(this,this.I);this.I=0;if(this.C.va){this.C.va=!1;this.D&&this.D.stop();var b=this.K.run;b&&(b.textContent="Run")}this.C.Lb=a};function nc(a,b){a.w&&(Gc(a.w,-1),a.w.Ea(b))} this.i.Ya-this.i.kb;d&&(this.i.Wa=Math.round(this.H/(10*d))/100,864E5<=d&&(this.J=0,Cc(this)));if(0>b||this.i.Wa<this.i.Xa)b=0;this.i.$b+=this.i.Bb;this.i.Ya+=b;c(a,b)}else mc(this),this.w&&this.w.stop(ma(),pc(this))};m.rb=function(){return 0};m.ka=function(a){jb(this,!0);this.F-=this.b;this.b=0;Dc(this,this.H);this.H=0;if(this.C.va){this.C.va=!1;this.D&&this.D.stop();var b=this.L.run;b&&(b.textContent="Run")}this.C.Lb=a};function mc(a,b){a.w&&(Fc(a.w,-1),a.w.Ea(b))}
function Hc(a){this.vc=+a.model||8080;hc.call(this,a,1E6);this.O=Ic;kc(this);this.C.Lb=this.C.nd=!1;this.Z=0;this.M=[];this.P=0;Jc(this)}ab(Hc,hc);function Kc(a,b){a.M.push(b)}m=Hc.prototype;m.reset=function(){this.C.va&&this.ka();Jc(this);kc(this);this.C.ib=!1;this.parent.reset.call(this)};function Jc(a){a.j=0;a.R=0;a.S=0;a.T=0;a.U=0;a.V=0;a.X=0;a.ia=0;G(a,a.P);Lc(a,0);a.A=0}function Mc(a,b){a.P=b;G(a,b)} function Gc(a){this.vc=+a.model||8080;gc.call(this,a,1E6);this.O=Hc;jc(this);this.C.Lb=this.C.od=!1;this.Z=0;this.K=[];this.P=0;Ic(this)}$a(Gc,gc);function Jc(a,b){a.K.push(b)}m=Gc.prototype;m.reset=function(){this.C.va&&this.ka();Ic(this);jc(this);this.C.ib=!1;this.parent.reset.call(this)};function Ic(a){a.j=0;a.R=0;a.S=0;a.T=0;a.U=0;a.V=0;a.X=0;a.ia=0;F(a,a.P);Kc(a,0);a.A=0}function Lc(a,b){a.P=b;F(a,b)}
m.uc=function(){var a=this.j+this.R+this.S+this.T+this.U+this.V+this.X|0;return a=a+this.ia+this.N+Nc(this)|0}; m.uc=function(){var a=this.j+this.R+this.S+this.T+this.U+this.V+this.X|0;return a=a+this.ia+this.N+Mc(this)|0};
m.save=function(){var a=new H(this);I(a,0,[this.j,this.R,this.S,this.T,this.U,this.V,this.X,this.ia,this.N,Nc(this)]);I(a,1,[this.A,this.J,this.i.Za]);for(var b=this.B,c=0,d=[],e=0;e<b.L;e++){var f=b.W[e];if(f.La||f.sc){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var p=f[g],q=g+1;q<f.length&&f[q]===p;)q++;l[k++]=q-g;l[k++]=p;g=q}if(l.length<f.length){f=l;break a}}d[h]=f}}I(a,2,d);return a.data()}; m.save=function(){var a=new G(this);H(a,0,[this.j,this.R,this.S,this.T,this.U,this.V,this.X,this.ia,this.N,Mc(this)]);H(a,1,[this.A,this.J,this.i.Za]);for(var b=this.B,c=0,d=[],e=0;e<b.M;e++){var f=b.W[e];if(f.La||f.sc){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var p=f[g],q=g+1;q<f.length&&f[q]===p;)q++;l[k++]=q-g;l[k++]=p;g=q}if(l.length<f.length){f=l;break a}}d[h]=f}}H(a,2,d);return a.data()};
m.restore=function(a){var b=a[0];this.j=b[0];this.R=b[1];this.S=b[2];this.T=b[3];this.U=b[4];this.V=b[5];this.X=b[6];this.ia=b[7]&65535;G(this,b[8]);Lc(this,b[9]);b=a[1];this.A=b[0];this.J=b[1];Dc(this,b[3]);a:{b=this.B;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.P){for(var f=0,h=Array(b.P),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.W[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b}; m.restore=function(a){var b=a[0];this.j=b[0];this.R=b[1];this.S=b[2];this.T=b[3];this.U=b[4];this.V=b[5];this.X=b[6];this.ia=b[7]&65535;F(this,b[8]);Kc(this,b[9]);b=a[1];this.A=b[0];this.J=b[1];Cc(this,b[3]);a:{b=this.B;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.P){for(var f=0,h=Array(b.P),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.W[d];if(!f||!f.restore(e)){u("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
m.ja=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.K[b]=c;this.Z++;d=!0;break;default:d=this.parent.ja.call(this,a,b,c)}return d};function Oc(a){return a.R<<8|a.S}function Pc(a,b){a.R=b>>8&255;a.S=b&255}function Qc(a){return a.T<<8|a.U}function Rc(a,b){a.T=b>>8&255;a.U=b&255}function J(a){return a.V<<8|a.X} m.ja=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.L[b]=c;this.Z++;d=!0;break;default:d=this.parent.ja.call(this,a,b,c)}return d};function Nc(a){return a.R<<8|a.S}function Oc(a,b){a.R=b>>8&255;a.S=b&255}function Pc(a){return a.T<<8|a.U}function Qc(a,b){a.T=b>>8&255;a.U=b&255}function I(a){return a.V<<8|a.X}
function Sc(a,b){a.V=b>>8&255;a.X=b&255}function G(a,b){a.N=b&65535}function Tc(a){return a.aa&256?1:0}function Uc(a,b){a.aa=a.aa&255|b}function Vc(a){return qb[a.ca&255]?4:0}function Wc(a){return(a.ca^a.ua)&16?16:0}function Xc(a){return a.aa&255?0:64}function Yc(a){return a.ca&128?128:0}function Nc(a){return a.ta&-214|Yc(a)|Xc(a)|Wc(a)|Vc(a)|Tc(a)}function Lc(a,b){a.aa=a.ca=a.ua=0;b&1&&(a.aa|=256);b&4||(a.ca|=1);b&16&&(a.ua|=16);b&64||(a.aa|=255);b&128&&(a.ca^=192);a.ta=a.ta&-726|b&512|2} function Rc(a,b){a.V=b>>8&255;a.X=b&255}function F(a,b){a.N=b&65535}function Sc(a){return a.aa&256?1:0}function Tc(a,b){a.aa=a.aa&255|b}function Uc(a){return pb[a.ca&255]?4:0}function Vc(a){return(a.ca^a.ua)&16?16:0}function Wc(a){return a.aa&255?0:64}function Xc(a){return a.ca&128?128:0}function Mc(a){return a.ta&-214|Xc(a)|Wc(a)|Vc(a)|Uc(a)|Sc(a)}function Kc(a,b){a.aa=a.ca=a.ua=0;b&1&&(a.aa|=256);b&4||(a.ca|=1);b&16&&(a.ua|=16);b&64||(a.aa|=255);b&128&&(a.ca^=192);a.ta=a.ta&-726|b&512|2}
function Zc(a,b){a.ua=a.j^b;return a.ca=(a.aa=a.j+b)&255}function $c(a,b){a.ua=a.j^b;return a.ca=(a.aa=a.j+b+(a.aa&256?1:0))&255}function ad(a,b){a.aa=a.ca=a.ua=a.j&b;(a.j|b)&8&&(a.ua^=16);return a.aa}function bd(a,b){a.ua=b^255;b=a.ca=b+255&255;a.aa=a.aa&-256|b;return b}function cd(a,b){a.ua=b;b=a.ca=b+1&255;a.aa=a.aa&-256|b;return b}function dd(a,b){return a.ca=a.aa=a.ua=a.j|b}function L(a,b){b^=255;a.ua=a.j^b;return a.ca=(a.aa=a.j+b+1^256)&255} function Yc(a,b){a.ua=a.j^b;return a.ca=(a.aa=a.j+b)&255}function Zc(a,b){a.ua=a.j^b;return a.ca=(a.aa=a.j+b+(a.aa&256?1:0))&255}function $c(a,b){a.aa=a.ca=a.ua=a.j&b;(a.j|b)&8&&(a.ua^=16);return a.aa}function ad(a,b){a.ua=b^255;b=a.ca=b+255&255;a.aa=a.aa&-256|b;return b}function bd(a,b){a.ua=b;b=a.ca=b+1&255;a.aa=a.aa&-256|b;return b}function cd(a,b){return a.ca=a.aa=a.ua=a.j|b}function L(a,b){b^=255;a.ua=a.j^b;return a.ca=(a.aa=a.j+b+1^256)&255}
function ed(a,b){b^=255;a.ua=a.j^b;return a.ca=(a.aa=a.j+b+(a.aa&256?0:1)^256)&255}function fd(a,b){return a.ca=a.aa=a.ua=a.j^b}m.Y=function(a){return this.B.Y(a)};m.qa=function(a,b){this.B.qa(a,b)};function M(a){var b=a.Y(a.N);G(a,a.N+1);return b}function N(a){var b=a.B.Qa(a.N);G(a,a.N+2);return b}function O(a){var b=a.B.Qa(a.ia);a.ia=a.ia+2&65535;return b}function Q(a,b){a.ia=a.ia-2&65535;a.B.Rb(a.ia,b)}function gd(a,b){a.A=a.A&-8|b|8} function dd(a,b){b^=255;a.ua=a.j^b;return a.ca=(a.aa=a.j+b+(a.aa&256?0:1)^256)&255}function ed(a,b){return a.ca=a.aa=a.ua=a.j^b}m.Y=function(a){return this.B.Y(a)};m.qa=function(a,b){this.B.qa(a,b)};function M(a){var b=a.Y(a.N);F(a,a.N+1);return b}function N(a){var b=a.B.Qa(a.N);F(a,a.N+2);return b}function O(a){var b=a.B.Qa(a.ia);a.ia=a.ia+2&65535;return b}function Q(a,b){a.ia=a.ia-2&65535;a.B.Rb(a.ia,b)}function fd(a,b){a.A=a.A&-8|b|8}
function R(a,b,c,d){d=d||2;a.K[b]&&(void 0===c&&(mb(a,"Value for "+b+" is invalid"),a.ka()),c=!a.C.va||a.C.tc?n(c,d):"--------".substr(0,d),a.K[b].textContent!=c&&(a.K[b].textContent=c))} function R(a,b,c,d){d=d||2;a.L[b]&&(void 0===c&&(lb(a,"Value for "+b+" is invalid"),a.ka()),c=!a.C.va||a.C.tc?n(c,d):"--------".substr(0,d),a.L[b].textContent!=c&&(a.L[b].textContent=c))}
m.Ea=function(a){this.Z&&(a||!this.C.va||this.C.tc)&&(R(this,"A",this.j),R(this,"B",this.R),R(this,"C",this.S),R(this,"BC",Oc(this),4),R(this,"D",this.T),R(this,"E",this.U),R(this,"DE",Qc(this),4),R(this,"H",this.V),R(this,"L",this.X),R(this,"HL",J(this),4),R(this,"SP",this.ia,4),R(this,"PC",this.N,4),a=Nc(this),R(this,"PS",a,4),R(this,"IF",a&512?1:0,1),R(this,"SF",a&128?1:0,1),R(this,"ZF",a&64?1:0,1),R(this,"AF",a&16?1:0,1),R(this,"PF",a&4?1:0,1),R(this,"CF",a&1?1:0,1));if(a=this.K.speed)a.textContent= m.Ea=function(a){this.Z&&(a||!this.C.va||this.C.tc)&&(R(this,"A",this.j),R(this,"B",this.R),R(this,"C",this.S),R(this,"BC",Nc(this),4),R(this,"D",this.T),R(this,"E",this.U),R(this,"DE",Pc(this),4),R(this,"H",this.V),R(this,"L",this.X),R(this,"HL",I(this),4),R(this,"SP",this.ia,4),R(this,"PC",this.N,4),a=Mc(this),R(this,"PS",a,4),R(this,"IF",a&512?1:0,1),R(this,"SF",a&128?1:0,1),R(this,"ZF",a&64?1:0,1),R(this,"AF",a&16?1:0,1),R(this,"PF",a&4?1:0,1),R(this,"CF",a&1?1:0,1));if(a=this.L.speed)a.textContent=
this.C.va&&this.i.Wa?this.i.Wa.toFixed(2)+"Mhz":"Stopped"};m.rb=function(a){this.C.Lb=!0;var b=this.C.nd=this.H&&hd(this.H),c=a?this.C.Wb?0:1:-1;this.C.Wb=!1;this.F=this.b=a;do{if(this.A){if(a&&this.A&8&&this.ta&512){var d=199|(this.A&7)<<3;this.A&=-17;this.A&=-16;this.ta&=-513;this.O[d].call(this)}if(this.A&16){this.b=0;break}}if(b){if(Bd(this.H,this.N,c)){this.ka();break}c=1}this.O[M(this)].call(this)}while(0<this.b);return this.C.Lb?this.F-this.b:void 0===this.C.Lb?0:-1}; this.C.va&&this.i.Wa?this.i.Wa.toFixed(2)+"Mhz":"Stopped"};m.rb=function(a){this.C.Lb=!0;var b=this.C.od=this.I&&gd(this.I),c=a?this.C.Wb?0:1:-1;this.C.Wb=!1;this.F=this.b=a;do{if(this.A){if(a&&this.A&8&&this.ta&512){var d=199|(this.A&7)<<3;this.A&=-17;this.A&=-16;this.ta&=-513;this.O[d].call(this)}if(this.A&16){this.b=0;break}}if(b){if(Ad(this.I,this.N,c)){this.ka();break}c=1}this.O[M(this)].call(this)}while(0<this.b);return this.C.Lb?this.F-this.b:void 0===this.C.Lb?0:-1};
Ka(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Hc(d);fb(d,c)}});function Cd(){this.b-=4}function Dd(){G(this,N(this));this.b-=10}function Ed(){G(this,O(this));this.b-=10}function Fd(){var a=N(this);Q(this,this.N);G(this,a);this.b-=17} Ja(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Gc(d);eb(d,c)}});function Bd(){this.b-=4}function Cd(){F(this,N(this));this.b-=10}function Dd(){F(this,O(this));this.b-=10}function Ed(){var a=N(this);Q(this,this.N);F(this,a);this.b-=17}
var Ic=[Cd,function(){Pc(this,N(this));this.b-=10},function(){this.qa(Oc(this),this.j);this.b-=7},function(){Pc(this,Oc(this)+1);this.b-=5},function(){this.R=cd(this,this.R);this.b-=5},function(){this.R=bd(this,this.R);this.b-=5},function(){this.R=M(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255|a>>8;Uc(this,a&256);this.b-=4},Cd,function(){var a;Sc(this,a=J(this)+Oc(this));Uc(this,a>>8&256);this.b-=10},function(){this.j=this.Y(Oc(this));this.b-=7},function(){Pc(this,Oc(this)-1);this.b-= var Hc=[Bd,function(){Oc(this,N(this));this.b-=10},function(){this.qa(Nc(this),this.j);this.b-=7},function(){Oc(this,Nc(this)+1);this.b-=5},function(){this.R=bd(this,this.R);this.b-=5},function(){this.R=ad(this,this.R);this.b-=5},function(){this.R=M(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255|a>>8;Tc(this,a&256);this.b-=4},Bd,function(){var a;Rc(this,a=I(this)+Nc(this));Tc(this,a>>8&256);this.b-=10},function(){this.j=this.Y(Nc(this));this.b-=7},function(){Oc(this,Nc(this)-1);this.b-=
5},function(){this.S=cd(this,this.S);this.b-=5},function(){this.S=bd(this,this.S);this.b-=5},function(){this.S=M(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;Uc(this,a);this.b-=4},Cd,function(){Rc(this,N(this));this.b-=10},function(){this.qa(Qc(this),this.j);this.b-=7},function(){Rc(this,Qc(this)+1);this.b-=5},function(){this.T=cd(this,this.T);this.b-=5},function(){this.T=bd(this,this.T);this.b-=5},function(){this.T=M(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255| 5},function(){this.S=bd(this,this.S);this.b-=5},function(){this.S=ad(this,this.S);this.b-=5},function(){this.S=M(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;Tc(this,a);this.b-=4},Bd,function(){Qc(this,N(this));this.b-=10},function(){this.qa(Pc(this),this.j);this.b-=7},function(){Qc(this,Pc(this)+1);this.b-=5},function(){this.T=bd(this,this.T);this.b-=5},function(){this.T=ad(this,this.T);this.b-=5},function(){this.T=M(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255|
Tc(this);Uc(this,a&256);this.b-=4},Cd,function(){var a;Sc(this,a=J(this)+Qc(this));Uc(this,a>>8&256);this.b-=10},function(){this.j=this.Y(Qc(this));this.b-=7},function(){Rc(this,Qc(this)-1);this.b-=5},function(){this.U=cd(this,this.U);this.b-=5},function(){this.U=bd(this,this.U);this.b-=5},function(){this.U=M(this);this.b-=7},function(){var a=this.j<<8;this.j=(Tc(this)<<8|this.j)>>1;Uc(this,a&256);this.b-=4},Cd,function(){Sc(this,N(this));this.b-=10},function(){var a=N(this);this.B.Rb(a,J(this)); Sc(this);Tc(this,a&256);this.b-=4},Bd,function(){var a;Rc(this,a=I(this)+Pc(this));Tc(this,a>>8&256);this.b-=10},function(){this.j=this.Y(Pc(this));this.b-=7},function(){Qc(this,Pc(this)-1);this.b-=5},function(){this.U=bd(this,this.U);this.b-=5},function(){this.U=ad(this,this.U);this.b-=5},function(){this.U=M(this);this.b-=7},function(){var a=this.j<<8;this.j=(Sc(this)<<8|this.j)>>1;Tc(this,a&256);this.b-=4},Bd,function(){Rc(this,N(this));this.b-=10},function(){var a=N(this);this.B.Rb(a,I(this));
this.b-=16},function(){Sc(this,J(this)+1);this.b-=5},function(){this.V=cd(this,this.V);this.b-=5},function(){this.V=bd(this,this.V);this.b-=5},function(){this.V=M(this);this.b-=7},function(){var a=0,b=Tc(this);if(Wc(this)||9<(this.j&15))a|=6;if(b||154<=this.j)a|=96,b=1;this.j=Zc(this,a);Uc(this,b?256:0);this.b-=4},Cd,function(){var a;Sc(this,a=J(this)+J(this));Uc(this,a>>8&256);this.b-=10},function(){var a;a=N(this);a=this.B.Qa(a);Sc(this,a);this.b-=16},function(){Sc(this,J(this)-1);this.b-=5},function(){this.X= this.b-=16},function(){Rc(this,I(this)+1);this.b-=5},function(){this.V=bd(this,this.V);this.b-=5},function(){this.V=ad(this,this.V);this.b-=5},function(){this.V=M(this);this.b-=7},function(){var a=0,b=Sc(this);if(Vc(this)||9<(this.j&15))a|=6;if(b||154<=this.j)a|=96,b=1;this.j=Yc(this,a);Tc(this,b?256:0);this.b-=4},Bd,function(){var a;Rc(this,a=I(this)+I(this));Tc(this,a>>8&256);this.b-=10},function(){var a;a=N(this);a=this.B.Qa(a);Rc(this,a);this.b-=16},function(){Rc(this,I(this)-1);this.b-=5},function(){this.X=
cd(this,this.X);this.b-=5},function(){this.X=bd(this,this.X);this.b-=5},function(){this.X=M(this);this.b-=7},function(){this.j=~this.j&255;this.b-=4},Cd,function(){this.ia=N(this)&65535;this.b-=10},function(){this.qa(N(this),this.j);this.b-=13},function(){this.ia=this.ia+1&65535;this.b-=5},function(){var a=J(this);this.qa(a,cd(this,this.Y(a)));this.b-=10},function(){var a=J(this);this.qa(a,bd(this,this.Y(a)));this.b-=10},function(){this.qa(J(this),M(this));this.b-=10},function(){this.aa|=256;this.b-= bd(this,this.X);this.b-=5},function(){this.X=ad(this,this.X);this.b-=5},function(){this.X=M(this);this.b-=7},function(){this.j=~this.j&255;this.b-=4},Bd,function(){this.ia=N(this)&65535;this.b-=10},function(){this.qa(N(this),this.j);this.b-=13},function(){this.ia=this.ia+1&65535;this.b-=5},function(){var a=I(this);this.qa(a,bd(this,this.Y(a)));this.b-=10},function(){var a=I(this);this.qa(a,ad(this,this.Y(a)));this.b-=10},function(){this.qa(I(this),M(this));this.b-=10},function(){this.aa|=256;this.b-=
4},Cd,function(){var a;Sc(this,a=J(this)+this.ia);Uc(this,a>>8&256);this.b-=10},function(){this.j=this.Y(N(this));this.b-=13},function(){this.ia=this.ia-1&65535;this.b-=5},function(){this.j=cd(this,this.j);this.b-=5},function(){this.j=bd(this,this.j);this.b-=5},function(){this.j=M(this);this.b-=7},function(){Uc(this,Tc(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.R=this.S;this.b-=5},function(){this.R=this.T;this.b-=5},function(){this.R=this.U;this.b-=5},function(){this.R=this.V;this.b-= 4},Bd,function(){var a;Rc(this,a=I(this)+this.ia);Tc(this,a>>8&256);this.b-=10},function(){this.j=this.Y(N(this));this.b-=13},function(){this.ia=this.ia-1&65535;this.b-=5},function(){this.j=bd(this,this.j);this.b-=5},function(){this.j=ad(this,this.j);this.b-=5},function(){this.j=M(this);this.b-=7},function(){Tc(this,Sc(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.R=this.S;this.b-=5},function(){this.R=this.T;this.b-=5},function(){this.R=this.U;this.b-=5},function(){this.R=this.V;this.b-=
5},function(){this.R=this.X;this.b-=5},function(){this.R=this.Y(J(this));this.b-=7},function(){this.R=this.j;this.b-=5},function(){this.S=this.R;this.b-=5},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.U;this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.X;this.b-=5},function(){this.S=this.Y(J(this));this.b-=7},function(){this.S=this.j;this.b-=5},function(){this.T=this.R;this.b-=5},function(){this.T=this.S;this.b-=5},function(){this.b-=5},function(){this.T= 5},function(){this.R=this.X;this.b-=5},function(){this.R=this.Y(I(this));this.b-=7},function(){this.R=this.j;this.b-=5},function(){this.S=this.R;this.b-=5},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.U;this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.X;this.b-=5},function(){this.S=this.Y(I(this));this.b-=7},function(){this.S=this.j;this.b-=5},function(){this.T=this.R;this.b-=5},function(){this.T=this.S;this.b-=5},function(){this.b-=5},function(){this.T=
this.U;this.b-=5},function(){this.T=this.V;this.b-=5},function(){this.T=this.X;this.b-=5},function(){this.T=this.Y(J(this));this.b-=7},function(){this.T=this.j;this.b-=5},function(){this.U=this.R;this.b-=5},function(){this.U=this.S;this.b-=5},function(){this.U=this.T;this.b-=5},function(){this.b-=5},function(){this.U=this.V;this.b-=5},function(){this.U=this.X;this.b-=5},function(){this.U=this.Y(J(this));this.b-=7},function(){this.U=this.j;this.b-=5},function(){this.V=this.R;this.b-=5},function(){this.V= this.U;this.b-=5},function(){this.T=this.V;this.b-=5},function(){this.T=this.X;this.b-=5},function(){this.T=this.Y(I(this));this.b-=7},function(){this.T=this.j;this.b-=5},function(){this.U=this.R;this.b-=5},function(){this.U=this.S;this.b-=5},function(){this.U=this.T;this.b-=5},function(){this.b-=5},function(){this.U=this.V;this.b-=5},function(){this.U=this.X;this.b-=5},function(){this.U=this.Y(I(this));this.b-=7},function(){this.U=this.j;this.b-=5},function(){this.V=this.R;this.b-=5},function(){this.V=
this.S;this.b-=5},function(){this.V=this.T;this.b-=5},function(){this.V=this.U;this.b-=5},function(){this.b-=5},function(){this.V=this.X;this.b-=5},function(){this.V=this.Y(J(this));this.b-=7},function(){this.V=this.j;this.b-=5},function(){this.X=this.R;this.b-=5},function(){this.X=this.S;this.b-=5},function(){this.X=this.T;this.b-=5},function(){this.X=this.U;this.b-=5},function(){this.X=this.V;this.b-=5},function(){this.b-=5},function(){this.X=this.Y(J(this));this.b-=7},function(){this.X=this.j; this.S;this.b-=5},function(){this.V=this.T;this.b-=5},function(){this.V=this.U;this.b-=5},function(){this.b-=5},function(){this.V=this.X;this.b-=5},function(){this.V=this.Y(I(this));this.b-=7},function(){this.V=this.j;this.b-=5},function(){this.X=this.R;this.b-=5},function(){this.X=this.S;this.b-=5},function(){this.X=this.T;this.b-=5},function(){this.X=this.U;this.b-=5},function(){this.X=this.V;this.b-=5},function(){this.b-=5},function(){this.X=this.Y(I(this));this.b-=7},function(){this.X=this.j;
this.b-=5},function(){this.qa(J(this),this.R);this.b-=7},function(){this.qa(J(this),this.S);this.b-=7},function(){this.qa(J(this),this.T);this.b-=7},function(){this.qa(J(this),this.U);this.b-=7},function(){this.qa(J(this),this.V);this.b-=7},function(){this.qa(J(this),this.X);this.b-=7},function(){var a=this.N-1;if(this.M.length)for(var b=0;b<this.M.length;b++)if(this.M[b](a))return;this.A|=16;this.b-=7;this.H&&ib(this,-2147483648)?(G(this,a),this.H.ka()):this.ta&512||(this.H&&G(this,a),this.ka())}, this.b-=5},function(){this.qa(I(this),this.R);this.b-=7},function(){this.qa(I(this),this.S);this.b-=7},function(){this.qa(I(this),this.T);this.b-=7},function(){this.qa(I(this),this.U);this.b-=7},function(){this.qa(I(this),this.V);this.b-=7},function(){this.qa(I(this),this.X);this.b-=7},function(){var a=this.N-1;if(this.K.length)for(var b=0;b<this.K.length;b++)if(this.K[b](a))return;this.A|=16;this.b-=7;this.I&&hb(this,-2147483648)?(F(this,a),this.I.ka()):this.ta&512||(this.I&&F(this,a),this.ka())},
function(){this.qa(J(this),this.j);this.b-=7},function(){this.j=this.R;this.b-=5},function(){this.j=this.S;this.b-=5},function(){this.j=this.T;this.b-=5},function(){this.j=this.U;this.b-=5},function(){this.j=this.V;this.b-=5},function(){this.j=this.X;this.b-=5},function(){this.j=this.Y(J(this));this.b-=7},function(){this.b-=5},function(){this.j=Zc(this,this.R);this.b-=4},function(){this.j=Zc(this,this.S);this.b-=4},function(){this.j=Zc(this,this.T);this.b-=4},function(){this.j=Zc(this,this.U);this.b-= function(){this.qa(I(this),this.j);this.b-=7},function(){this.j=this.R;this.b-=5},function(){this.j=this.S;this.b-=5},function(){this.j=this.T;this.b-=5},function(){this.j=this.U;this.b-=5},function(){this.j=this.V;this.b-=5},function(){this.j=this.X;this.b-=5},function(){this.j=this.Y(I(this));this.b-=7},function(){this.b-=5},function(){this.j=Yc(this,this.R);this.b-=4},function(){this.j=Yc(this,this.S);this.b-=4},function(){this.j=Yc(this,this.T);this.b-=4},function(){this.j=Yc(this,this.U);this.b-=
4},function(){this.j=Zc(this,this.V);this.b-=4},function(){this.j=Zc(this,this.X);this.b-=4},function(){this.j=Zc(this,this.Y(J(this)));this.b-=7},function(){this.j=Zc(this,this.j);this.b-=4},function(){this.j=$c(this,this.R);this.b-=4},function(){this.j=$c(this,this.S);this.b-=4},function(){this.j=$c(this,this.T);this.b-=4},function(){this.j=$c(this,this.U);this.b-=4},function(){this.j=$c(this,this.V);this.b-=4},function(){this.j=$c(this,this.X);this.b-=4},function(){this.j=$c(this,this.Y(J(this))); 4},function(){this.j=Yc(this,this.V);this.b-=4},function(){this.j=Yc(this,this.X);this.b-=4},function(){this.j=Yc(this,this.Y(I(this)));this.b-=7},function(){this.j=Yc(this,this.j);this.b-=4},function(){this.j=Zc(this,this.R);this.b-=4},function(){this.j=Zc(this,this.S);this.b-=4},function(){this.j=Zc(this,this.T);this.b-=4},function(){this.j=Zc(this,this.U);this.b-=4},function(){this.j=Zc(this,this.V);this.b-=4},function(){this.j=Zc(this,this.X);this.b-=4},function(){this.j=Zc(this,this.Y(I(this)));
this.b-=7},function(){this.j=$c(this,this.j);this.b-=4},function(){this.j=L(this,this.R);this.b-=4},function(){this.j=L(this,this.S);this.b-=4},function(){this.j=L(this,this.T);this.b-=4},function(){this.j=L(this,this.U);this.b-=4},function(){this.j=L(this,this.V);this.b-=4},function(){this.j=L(this,this.X);this.b-=4},function(){this.j=L(this,this.Y(J(this)));this.b-=7},function(){this.j=L(this,this.j);this.b-=4},function(){this.j=ed(this,this.R);this.b-=4},function(){this.j=ed(this,this.S);this.b-= this.b-=7},function(){this.j=Zc(this,this.j);this.b-=4},function(){this.j=L(this,this.R);this.b-=4},function(){this.j=L(this,this.S);this.b-=4},function(){this.j=L(this,this.T);this.b-=4},function(){this.j=L(this,this.U);this.b-=4},function(){this.j=L(this,this.V);this.b-=4},function(){this.j=L(this,this.X);this.b-=4},function(){this.j=L(this,this.Y(I(this)));this.b-=7},function(){this.j=L(this,this.j);this.b-=4},function(){this.j=dd(this,this.R);this.b-=4},function(){this.j=dd(this,this.S);this.b-=
4},function(){this.j=ed(this,this.T);this.b-=4},function(){this.j=ed(this,this.U);this.b-=4},function(){this.j=ed(this,this.V);this.b-=4},function(){this.j=ed(this,this.X);this.b-=4},function(){this.j=ed(this,this.Y(J(this)));this.b-=7},function(){this.j=ed(this,this.j);this.b-=4},function(){this.j=ad(this,this.R);this.b-=4},function(){this.j=ad(this,this.S);this.b-=4},function(){this.j=ad(this,this.T);this.b-=4},function(){this.j=ad(this,this.U);this.b-=4},function(){this.j=ad(this,this.V);this.b-= 4},function(){this.j=dd(this,this.T);this.b-=4},function(){this.j=dd(this,this.U);this.b-=4},function(){this.j=dd(this,this.V);this.b-=4},function(){this.j=dd(this,this.X);this.b-=4},function(){this.j=dd(this,this.Y(I(this)));this.b-=7},function(){this.j=dd(this,this.j);this.b-=4},function(){this.j=$c(this,this.R);this.b-=4},function(){this.j=$c(this,this.S);this.b-=4},function(){this.j=$c(this,this.T);this.b-=4},function(){this.j=$c(this,this.U);this.b-=4},function(){this.j=$c(this,this.V);this.b-=
4},function(){this.j=ad(this,this.X);this.b-=4},function(){this.j=ad(this,this.Y(J(this)));this.b-=7},function(){this.j=ad(this,this.j);this.b-=4},function(){this.j=fd(this,this.R);this.b-=4},function(){this.j=fd(this,this.S);this.b-=4},function(){this.j=fd(this,this.T);this.b-=4},function(){this.j=fd(this,this.U);this.b-=4},function(){this.j=fd(this,this.V);this.b-=4},function(){this.j=fd(this,this.X);this.b-=4},function(){this.j=fd(this,this.Y(J(this)));this.b-=7},function(){this.j=fd(this,this.j); 4},function(){this.j=$c(this,this.X);this.b-=4},function(){this.j=$c(this,this.Y(I(this)));this.b-=7},function(){this.j=$c(this,this.j);this.b-=4},function(){this.j=ed(this,this.R);this.b-=4},function(){this.j=ed(this,this.S);this.b-=4},function(){this.j=ed(this,this.T);this.b-=4},function(){this.j=ed(this,this.U);this.b-=4},function(){this.j=ed(this,this.V);this.b-=4},function(){this.j=ed(this,this.X);this.b-=4},function(){this.j=ed(this,this.Y(I(this)));this.b-=7},function(){this.j=ed(this,this.j);
this.b-=4},function(){this.j=dd(this,this.R);this.b-=4},function(){this.j=dd(this,this.S);this.b-=4},function(){this.j=dd(this,this.T);this.b-=4},function(){this.j=dd(this,this.U);this.b-=4},function(){this.j=dd(this,this.V);this.b-=4},function(){this.j=dd(this,this.X);this.b-=4},function(){this.j=dd(this,this.Y(J(this)));this.b-=7},function(){this.j=dd(this,this.j);this.b-=4},function(){L(this,this.R);this.b-=4},function(){L(this,this.S);this.b-=4},function(){L(this,this.T);this.b-=4},function(){L(this, this.b-=4},function(){this.j=cd(this,this.R);this.b-=4},function(){this.j=cd(this,this.S);this.b-=4},function(){this.j=cd(this,this.T);this.b-=4},function(){this.j=cd(this,this.U);this.b-=4},function(){this.j=cd(this,this.V);this.b-=4},function(){this.j=cd(this,this.X);this.b-=4},function(){this.j=cd(this,this.Y(I(this)));this.b-=7},function(){this.j=cd(this,this.j);this.b-=4},function(){L(this,this.R);this.b-=4},function(){L(this,this.S);this.b-=4},function(){L(this,this.T);this.b-=4},function(){L(this,
this.U);this.b-=4},function(){L(this,this.V);this.b-=4},function(){L(this,this.X);this.b-=4},function(){L(this,this.Y(J(this)));this.b-=7},function(){L(this,this.j);this.b-=4},function(){Xc(this)||(G(this,O(this)),this.b-=6);this.b-=5},function(){Pc(this,O(this));this.b-=10},function(){var a=N(this);Xc(this)||G(this,a);this.b-=10},Dd,function(){var a=N(this);Xc(this)||(Q(this,this.N),G(this,a),this.b-=6);this.b-=11},function(){Q(this,Oc(this));this.b-=11},function(){this.j=Zc(this,M(this));this.b-= this.U);this.b-=4},function(){L(this,this.V);this.b-=4},function(){L(this,this.X);this.b-=4},function(){L(this,this.Y(I(this)));this.b-=7},function(){L(this,this.j);this.b-=4},function(){Wc(this)||(F(this,O(this)),this.b-=6);this.b-=5},function(){Oc(this,O(this));this.b-=10},function(){var a=N(this);Wc(this)||F(this,a);this.b-=10},Cd,function(){var a=N(this);Wc(this)||(Q(this,this.N),F(this,a),this.b-=6);this.b-=11},function(){Q(this,Nc(this));this.b-=11},function(){this.j=Yc(this,M(this));this.b-=
7},function(){Q(this,this.N);G(this,0);this.b-=11},function(){Xc(this)&&(G(this,O(this)),this.b-=6);this.b-=5},Ed,function(){var a=N(this);Xc(this)&&G(this,a);this.b-=10},Dd,function(){var a=N(this);Xc(this)&&(Q(this,this.N),G(this,a),this.b-=6);this.b-=11},Fd,function(){this.j=$c(this,M(this));this.b-=7},function(){Q(this,this.N);G(this,8);this.b-=11},function(){Tc(this)||(G(this,O(this)),this.b-=6);this.b-=5},function(){Rc(this,O(this));this.b-=10},function(){var a=N(this);Tc(this)||G(this,a);this.b-= 7},function(){Q(this,this.N);F(this,0);this.b-=11},function(){Wc(this)&&(F(this,O(this)),this.b-=6);this.b-=5},Dd,function(){var a=N(this);Wc(this)&&F(this,a);this.b-=10},Cd,function(){var a=N(this);Wc(this)&&(Q(this,this.N),F(this,a),this.b-=6);this.b-=11},Ed,function(){this.j=Zc(this,M(this));this.b-=7},function(){Q(this,this.N);F(this,8);this.b-=11},function(){Sc(this)||(F(this,O(this)),this.b-=6);this.b-=5},function(){Qc(this,O(this));this.b-=10},function(){var a=N(this);Sc(this)||F(this,a);this.b-=
10},function(){var a=M(this);Ib(this.B,a,this.j,this.N+-2&65535);this.b-=10},function(){var a=N(this);Tc(this)||(Q(this,this.N),G(this,a),this.b-=6);this.b-=11},function(){Q(this,Qc(this));this.b-=11},function(){this.j=L(this,M(this));this.b-=7},function(){Q(this,this.N);G(this,16);this.b-=11},function(){Tc(this)&&(G(this,O(this)),this.b-=6);this.b-=5},Ed,function(){var a=N(this);Tc(this)&&G(this,a);this.b-=10},function(){var a=M(this);this.j=Eb(this.B,a,this.N+-2&65535)&255;this.b-=10},function(){var a= 10},function(){var a=M(this);Hb(this.B,a,this.j,this.N+-2&65535);this.b-=10},function(){var a=N(this);Sc(this)||(Q(this,this.N),F(this,a),this.b-=6);this.b-=11},function(){Q(this,Pc(this));this.b-=11},function(){this.j=L(this,M(this));this.b-=7},function(){Q(this,this.N);F(this,16);this.b-=11},function(){Sc(this)&&(F(this,O(this)),this.b-=6);this.b-=5},Dd,function(){var a=N(this);Sc(this)&&F(this,a);this.b-=10},function(){var a=M(this);this.j=Db(this.B,a,this.N+-2&65535)&255;this.b-=10},function(){var a=
N(this);Tc(this)&&(Q(this,this.N),G(this,a),this.b-=6);this.b-=11},Fd,function(){this.j=ed(this,M(this));this.b-=7},function(){Q(this,this.N);G(this,24);this.b-=11},function(){Vc(this)||(G(this,O(this)),this.b-=6);this.b-=5},function(){Sc(this,O(this));this.b-=10},function(){var a=N(this);Vc(this)||G(this,a);this.b-=10},function(){var a=O(this);Q(this,J(this));Sc(this,a);this.b-=18},function(){var a=N(this);Vc(this)||(Q(this,this.N),G(this,a),this.b-=6);this.b-=11},function(){Q(this,J(this));this.b-= N(this);Sc(this)&&(Q(this,this.N),F(this,a),this.b-=6);this.b-=11},Ed,function(){this.j=dd(this,M(this));this.b-=7},function(){Q(this,this.N);F(this,24);this.b-=11},function(){Uc(this)||(F(this,O(this)),this.b-=6);this.b-=5},function(){Rc(this,O(this));this.b-=10},function(){var a=N(this);Uc(this)||F(this,a);this.b-=10},function(){var a=O(this);Q(this,I(this));Rc(this,a);this.b-=18},function(){var a=N(this);Uc(this)||(Q(this,this.N),F(this,a),this.b-=6);this.b-=11},function(){Q(this,I(this));this.b-=
11},function(){this.j=ad(this,M(this));this.b-=7},function(){Q(this,this.N);G(this,32);this.b-=11},function(){Vc(this)&&(G(this,O(this)),this.b-=6);this.b-=5},function(){G(this,J(this));this.b-=5},function(){var a=N(this);Vc(this)&&G(this,a);this.b-=10},function(){var a=J(this);Sc(this,Qc(this));Rc(this,a);this.b-=5},function(){var a=N(this);Vc(this)&&(Q(this,this.N),G(this,a),this.b-=6);this.b-=11},Fd,function(){this.j=fd(this,M(this));this.b-=7},function(){Q(this,this.N);G(this,40);this.b-=11}, 11},function(){this.j=$c(this,M(this));this.b-=7},function(){Q(this,this.N);F(this,32);this.b-=11},function(){Uc(this)&&(F(this,O(this)),this.b-=6);this.b-=5},function(){F(this,I(this));this.b-=5},function(){var a=N(this);Uc(this)&&F(this,a);this.b-=10},function(){var a=I(this);Rc(this,Pc(this));Qc(this,a);this.b-=5},function(){var a=N(this);Uc(this)&&(Q(this,this.N),F(this,a),this.b-=6);this.b-=11},Ed,function(){this.j=ed(this,M(this));this.b-=7},function(){Q(this,this.N);F(this,40);this.b-=11},
function(){Yc(this)||(G(this,O(this)),this.b-=6);this.b-=5},function(){var a=O(this);Lc(this,a&255|this.ta&-256);this.j=a>>8;this.b-=10},function(){var a=N(this);Yc(this)||G(this,a);this.b-=10},function(){this.ta&=-513;this.b-=4},function(){var a=N(this);Yc(this)||(Q(this,this.N),G(this,a),this.b-=6);this.b-=11},function(){Q(this,Nc(this)&255|this.j<<8);this.b-=11},function(){this.j=dd(this,M(this));this.b-=7},function(){Q(this,this.N);G(this,48);this.b-=11},function(){Yc(this)&&(G(this,O(this)), function(){Xc(this)||(F(this,O(this)),this.b-=6);this.b-=5},function(){var a=O(this);Kc(this,a&255|this.ta&-256);this.j=a>>8;this.b-=10},function(){var a=N(this);Xc(this)||F(this,a);this.b-=10},function(){this.ta&=-513;this.b-=4},function(){var a=N(this);Xc(this)||(Q(this,this.N),F(this,a),this.b-=6);this.b-=11},function(){Q(this,Mc(this)&255|this.j<<8);this.b-=11},function(){this.j=cd(this,M(this));this.b-=7},function(){Q(this,this.N);F(this,48);this.b-=11},function(){Xc(this)&&(F(this,O(this)),
this.b-=6);this.b-=5},function(){this.ia=J(this)&65535;this.b-=5},function(){var a=N(this);Yc(this)&&G(this,a);this.b-=10},function(){this.ta|=512;this.b-=4},function(){var a=N(this);Yc(this)&&(Q(this,this.N),G(this,a),this.b-=6);this.b-=11},Fd,function(){L(this,M(this));this.b-=7},function(){Q(this,this.N);G(this,56);this.b-=11}]; this.b-=6);this.b-=5},function(){this.ia=I(this)&65535;this.b-=5},function(){var a=N(this);Xc(this)&&F(this,a);this.b-=10},function(){this.ta|=512;this.b-=4},function(){var a=N(this);Xc(this)&&(Q(this,this.N),F(this,a),this.b-=6);this.b-=11},Ed,function(){L(this,M(this));this.b-=7},function(){Q(this,this.N);F(this,56);this.b-=11}];
function S(a){u.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!Gd[b]&&Ma("Unrecognized ChipSet model: "+b);this.D=Gd[b]||{};a.sound&&(this.da=null,window&&(this.da=window.AudioContext||window.webkitAudioContext),this.da&&new this.da);E(this)}ab(S); function T(a){v.call(this,"ChipSet",a,T,32768);var b=a.model;b&&!Fd[b]&&La("Unrecognized ChipSet model: "+b);this.D=Fd[b]||{};a.sound&&(this.da=null,window&&(this.da=window.AudioContext||window.webkitAudioContext),this.da&&new this.da);D(this)}$a(T);
var T={ya:1978.1,bd:{za:0,Wd:1,ae:16,ne:32,Be:64,ze:128,tb:14},Ua:{za:1,Hc:1,Xc:2,Tc:4,Uc:16,Vc:32,Wc:64,tb:8},cd:{za:2,Vd:3,Ke:4,Xd:8,ve:16,we:32,xe:64,Yd:128,tb:0},Fe:{za:3},De:{za:2,pe:7},He:{za:3,Me:1,Ge:2,ye:4,ie:8,Zd:16,Nd:32},Ee:{za:4},Ie:{za:5,be:1,ce:2,de:4,ee:8,Ne:16}},U={ya:100,Pa:{za:66,Re:1,Rc:2,Sc:4,te:8,re:16,hc:32,gc:64,dc:128},Gc:{za:66,INIT:0},Ia:{me:{za:98},Ra:{Fc:0,Ec:1,Zc:2,fd:4,Kc:5,Yc:6,$c:7},Jb:16383},Jc:{za:162,INIT:0},Ic:{za:194,INIT:0}},Gd={SI1978:T,VT100:U}; var U={ya:1978.1,cd:{za:0,Wd:1,ae:16,ne:32,Be:64,ze:128,tb:14},Ua:{za:1,Ic:1,Yc:2,Uc:4,Vc:16,Wc:32,Xc:64,tb:8},dd:{za:2,Vd:3,Ke:4,Xd:8,ve:16,we:32,xe:64,Yd:128,tb:0},Fe:{za:3},De:{za:2,pe:7},He:{za:3,Me:1,Ge:2,ye:4,ie:8,Zd:16,Nd:32},Ee:{za:4},Ie:{za:5,be:1,ce:2,de:4,ee:8,Ne:16}},V={ya:100,Pa:{za:66,Re:1,Sc:2,Tc:4,te:8,re:16,hc:32,gc:64,dc:128},Hc:{za:66,INIT:0},Ia:{me:{za:98},Ra:{Fc:0,Ec:1,$c:2,gd:4,Lc:5,Zc:6,ad:7},Jb:16383},Kc:{za:162,INIT:0},Jc:{za:194,INIT:0}},Fd={SI1978:U,VT100:V};
S.prototype.ja=function(){return!1};S.prototype.Na=function(a,b,c,d){this.B=b;this.b=c;this.H=d;this.w=a;this.M=sb(a,"Keyboard");Db(b,this,this.D.Pb);Hb(b,this,this.D.Qb)};S.prototype.Aa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};S.prototype.Da=function(a){return a?this.save():!0};T.INIT=[[T.bd.tb,T.Ua.tb,T.cd.tb,0,0,0,0]]; T.prototype.ja=function(){return!1};T.prototype.Na=function(a,b,c,d){this.B=b;this.b=c;this.I=d;this.w=a;this.M=rb(a,"Keyboard");Cb(b,this,this.D.Pb);Gb(b,this,this.D.Qb)};T.prototype.Aa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};T.prototype.Da=function(a){return a?this.save():!0};U.INIT=[[U.cd.tb,U.Ua.tb,U.dd.tb,0,0,0,0]];
U.INIT=[[U.Gc.INIT,U.Pa.Rc|U.Pa.Sc,U.Jc.INIT,U.Ic.INIT],[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,11856,11824,11840,11808,11776,12E3,12E3,11857,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];m=S.prototype; V.INIT=[[V.Hc.INIT,V.Pa.Sc|V.Pa.Tc,V.Kc.INIT,V.Jc.INIT],[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,11856,11824,11840,11808,11776,12E3,12E3,11857,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];m=T.prototype;
m.reset=function(){this.D.INIT&&!this.restore(this.D.INIT)&&this.ga("reset error")};m.save=function(){var a=new H(this);switch(this.D.ya){case T.ya:I(a,0,[this.wa,this.F,this.xa,this.P,this.ba,this.na,this.ra]);break;case U.ya:I(a,0,[this.ea,this.J,this.ma,this.fa]),I(a,1,[this.O,this.A,this.L,this.Z,this.I])}return a.data()}; m.reset=function(){this.D.INIT&&!this.restore(this.D.INIT)&&this.ga("reset error")};m.save=function(){var a=new G(this);switch(this.D.ya){case U.ya:H(a,0,[this.wa,this.F,this.xa,this.P,this.ba,this.na,this.ra]);break;case V.ya:H(a,0,[this.ea,this.J,this.la,this.fa]),H(a,1,[this.O,this.A,this.K,this.Z,this.H])}return a.data()};
m.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.D.ya){case T.ya:return this.wa=b[0],this.F=b[1],this.xa=b[2],this.P=b[3],this.ba=b[4],this.na=b[5],this.ra=b[6],!0;case U.ya:return this.ea=b[0],this.J=b[1],this.ma=b[2],this.fa=b[3],b=a[1],this.O=b[0],this.A=b[1],this.L=b[2],this.Z=b[3],this.I=b[4],!0}return!1};m.start=function(){};m.stop=function(){};function Hd(a,b,c){a.F&=~b;c&&(a.F|=b)}m.rd=function(a,b){var c=this.wa;C(this,a,null,b,"STATUS0",c,!0);return c}; m.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.D.ya){case U.ya:return this.wa=b[0],this.F=b[1],this.xa=b[2],this.P=b[3],this.ba=b[4],this.na=b[5],this.ra=b[6],!0;case V.ya:return this.ea=b[0],this.J=b[1],this.la=b[2],this.fa=b[3],b=a[1],this.O=b[0],this.A=b[1],this.K=b[2],this.Z=b[3],this.H=b[4],!0}return!1};m.start=function(){};m.stop=function(){};function Gd(a,b,c){a.F&=~b;c&&(a.F|=b)}m.sd=function(a,b){var c=this.wa;C(this,a,null,b,"STATUS0",c,!0);return c};
m.sd=function(a,b){var c=this.F;C(this,a,null,b,"STATUS1",c,!0);return c};m.td=function(a,b){var c=this.xa;C(this,a,null,b,"STATUS2",c,!0);return c};m.qd=function(a,b){var c=this.P>>8-this.ba&255;C(this,a,null,b,"SHIFT.RESULT",c,!0);return c};m.Bd=function(a,b,c){C(this,a,b,c,"SHIFT.COUNT",null,!0);this.ba=b};m.Dd=function(a,b,c){C(this,a,b,c,"SOUND1",null,!0);this.na=b};m.Cd=function(a,b,c){C(this,a,b,c,"SHIFT.DATA",null,!0);this.P=b<<8|this.P>>8}; m.td=function(a,b){var c=this.F;C(this,a,null,b,"STATUS1",c,!0);return c};m.ud=function(a,b){var c=this.xa;C(this,a,null,b,"STATUS2",c,!0);return c};m.rd=function(a,b){var c=this.P>>8-this.ba&255;C(this,a,null,b,"SHIFT.RESULT",c,!0);return c};m.Cd=function(a,b,c){C(this,a,b,c,"SHIFT.COUNT",null,!0);this.ba=b};m.Ed=function(a,b,c){C(this,a,b,c,"SOUND1",null,!0);this.na=b};m.Dd=function(a,b,c){C(this,a,b,c,"SHIFT.DATA",null,!0);this.P=b<<8|this.P>>8};
m.Ed=function(a,b,c){C(this,a,b,c,"SOUND2",null,!0);this.ra=b};m.Fd=function(a,b,c){C(this,a,b,c,"WATCHDOG",null,!0)};function Id(a){var b=0,c=0,d=~a.O;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} m.Fd=function(a,b,c){C(this,a,b,c,"SOUND2",null,!0);this.ra=b};m.Gd=function(a,b,c){C(this,a,b,c,"WATCHDOG",null,!0)};function Hd(a){var b=0,c=0,d=~a.O;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}
m.ud=function(a,b){var c=this.J,c=c&~U.Pa.gc;if((qc(this.b)&64)<<1&&(c|=U.Pa.gc,c!=this.J)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case U.Ia.Ra.$c:break;case U.Ia.Ra.Ec:this.O=this.O<<1|d;break;case U.Ia.Ra.Kc:d=Id(this);this.I[d]=U.Ia.Jb;hb(this,"doNVRCommand(): erase data at addr "+r(d));break;case U.Ia.Ra.Fc:this.A=this.A<<1|d;break;case U.Ia.Ra.fd:d=Id(this);e=this.A&U.Ia.Jb;this.I[d]=e;hb(this,"doNVRCommand(): write data "+r(e)+" to addr "+r(d));break;case U.Ia.Ra.Yc:d=Id(this);e=this.I[d]; m.vd=function(a,b){var c=this.J,c=c&~V.Pa.gc;if((pc(this.b)&64)<<1&&(c|=V.Pa.gc,c!=this.J)){var d,e;d=this.K&1;e=this.K>>1&7;switch(e){case V.Ia.Ra.ad:break;case V.Ia.Ra.Ec:this.O=this.O<<1|d;break;case V.Ia.Ra.Lc:d=Hd(this);this.H[d]=V.Ia.Jb;gb(this,"doNVRCommand(): erase data at addr "+t(d));break;case V.Ia.Ra.Fc:this.A=this.A<<1|d;break;case V.Ia.Ra.gd:d=Hd(this);e=this.A&V.Ia.Jb;this.H[d]=e;gb(this,"doNVRCommand(): write data "+t(e)+" to addr "+t(d));break;case V.Ia.Ra.Zc:d=Hd(this);e=this.H[d];
null==e&&(e=U.Ia.Jb);this.A=e;hb(this,"doNVRCommand(): read data "+r(e)+" from addr "+r(d));break;case U.Ia.Ra.Zc:this.A<<=1;this.Z=this.A&U.Ia.Jb+1;break;default:hb(this,"doNVRCommand(): unrecognized command "+ca(e))}}c&=~U.Pa.hc;this.Z&&(c|=U.Pa.hc);c&=~U.Pa.dc;this.M&&(c|=U.Pa.dc);this.J=c;C(this,a,null,b,"FLAGS.BUFFER",c);return c};m.Gd=function(a,b,c){C(this,a,b,c,"BRIGHTNESS");this.ea=b};m.Jd=function(a,b,c){C(this,a,b,c,"NVR.LATCH");this.L=b}; null==e&&(e=V.Ia.Jb);this.A=e;gb(this,"doNVRCommand(): read data "+t(e)+" from addr "+t(d));break;case V.Ia.Ra.$c:this.A<<=1;this.Z=this.A&V.Ia.Jb+1;break;default:gb(this,"doNVRCommand(): unrecognized command 0x"+n(e,2))}}c&=~V.Pa.hc;this.Z&&(c|=V.Pa.hc);c&=~V.Pa.dc;this.M&&(c|=V.Pa.dc);this.J=c;C(this,a,null,b,"FLAGS.BUFFER",c);return c};m.Hd=function(a,b,c){C(this,a,b,c,"BRIGHTNESS");this.ea=b};m.Kd=function(a,b,c){C(this,a,b,c,"NVR.LATCH");this.K=b};
m.Id=function(a,b,c){C(this,a,b,c,"DC012");this.ma=b};m.Hd=function(a,b,c){C(this,a,b,c,"DC011");this.fa=b};T.Pb={0:S.prototype.rd,1:S.prototype.sd,2:S.prototype.td,3:S.prototype.qd};T.Qb={2:S.prototype.Bd,3:S.prototype.Dd,4:S.prototype.Cd,5:S.prototype.Ed,6:S.prototype.Fd};U.Pb={66:S.prototype.ud};U.Qb={66:S.prototype.Gd,98:S.prototype.Jd,162:S.prototype.Id,194:S.prototype.Hd};Ka(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new S(d);fb(d,c)}}); m.Jd=function(a,b,c){C(this,a,b,c,"DC012");this.la=b};m.Id=function(a,b,c){C(this,a,b,c,"DC011");this.fa=b};U.Pb={0:T.prototype.sd,1:T.prototype.td,2:T.prototype.ud,3:T.prototype.rd};U.Qb={2:T.prototype.Cd,3:T.prototype.Ed,4:T.prototype.Dd,5:T.prototype.Fd,6:T.prototype.Gd};V.Pb={66:T.prototype.vd};V.Qb={66:T.prototype.Hd,98:T.prototype.Kd,162:T.prototype.Jd,194:T.prototype.Id};Ja(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new T(d);eb(d,c)}});
function Jd(a){u.call(this,"ROM",a,Jd);this.w=null;this.I=a.addr;this.A=a.size;this.J=a.writable;this.D=a.alias;this.F=a.file;this.M=da(this.F);if(this.F){a=this.F;var b=ea(this.M);"json"!=b&&"hex"!=b&&(a=qa()+"/api/v1/dump?file="+this.F+"&format=bytes&decimal=true");var c=this;pa(a,null,!0,function(a,b,f){Kd(c,a,b,f)})}}ab(Jd);var Ld=[0,5];Jd.prototype.Na=function(a,b,c,d){this.B=b;this.b=c;this.H=d;Md(this)}; function Id(a){v.call(this,"ROM",a,Id);this.w=null;this.H=a.addr;this.A=a.size;this.J=a.writable;this.D=a.alias;this.F=a.file;this.K=da(this.F);if(this.F){a=this.F;var b=ea(this.K);"json"!=b&&"hex"!=b&&(a=qa()+"/api/v1/dump?file="+this.F+"&format=bytes&decimal=true");var c=this;pa(a,null,!0,function(a,b,f){Jd(c,a,b,f)})}}$a(Id);var Kd=[0,5];Id.prototype.Na=function(a,b,c,d){this.B=b;this.b=c;this.I=d;Ld(this)};
Jd.prototype.Aa=function(){if(this.Oa){if(this.H){var a=this.H,b=this.id,c=this.I,d=this.A,e=this.Oa,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var p=f,k=[k>>>0,h],q=la(p,k,a.Ta);0>q&&p.splice(-(q+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.J.push({ff:b,G:c,wd:d,Oa:e,pc:f})}delete this.Oa}return!0};Jd.prototype.Da=function(){return!0}; Id.prototype.Aa=function(){if(this.Oa){if(this.I){var a=this.I,b=this.id,c=this.H,d=this.A,e=this.Oa,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var p=f,k=[k>>>0,h],q=la(p,k,a.Ta);0>q&&p.splice(-(q+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.J.push({ff:b,G:c,xd:d,Oa:e,pc:f})}delete this.Oa}return!0};Id.prototype.Da=function(){return!0};
function Kd(a,b,c,d){if(d)a.ga("Unable to load system ROM (error "+d+": "+b+")");else{cb(a.Sb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.w=f;else if(h)for(a.w=Array(4*h.length),d=c=0;c<h.length;c++)a.w[d++]=h[c]&255,a.w[d++]=h[c]>>8&255,a.w[d++]=h[c]>>16&255,a.w[d++]=h[c]>>24&255;else a.w=e;a.Oa=e.symbols;if(!a.w.length){t("Empty ROM: "+b);return}if(1==a.w.length){t(a.w[0]);return}}catch(g){a.ga("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm, function Jd(a,b,c,d){if(d)a.ga("Unable to load system ROM (error "+d+": "+b+")");else{bb(a.Sb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.w=f;else if(h)for(a.w=Array(4*h.length),d=c=0;c<h.length;c++)a.w[d++]=h[c]&255,a.w[d++]=h[c]>>8&255,a.w[d++]=h[c]>>16&255,a.w[d++]=h[c]>>24&255;else a.w=e;a.Oa=e.symbols;if(!a.w.length){u("Empty ROM: "+b);return}if(1==a.w.length){u(a.w[0]);return}}catch(g){a.ga("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.w=Array(b.length),e=0;e<b.length;e++)a.w[e]=ba(b[e],16);Md(a)}} " ").replace(/ +$/,"").split(" "),a.w=Array(b.length),e=0;e<b.length;e++)a.w[e]=ca(b[e],16);Ld(a)}}
function Md(a){if(!lb(a))if(!a.F)E(a);else if(a.w&&a.B){a.A||(a.A=a.w.length);if(a.w.length!=a.A)mb(a,"ROM size (0x"+n(a.w.length)+") does not match specified size ("+("0x"+n(a.A))+")");else if(Nd(a,a.I)){var b=[];"number"==typeof a.D?b.push(a.D):null!=a.D&&a.D.length&&(b=a.D);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.B,h=d.A,g=[],k=d.I>>>f.la;0<h&&k<f.W.length;)g.push(f.W[k++]),h-=f.Ca;f=d.B;d=d.A;h=0;for(e>>>=f.la;0<d&&e<f.W.length;){k=g[h++];if(!k)break;f.W[e++]=k;d-=f.Ca}}delete a.w}E(a)}} function Ld(a){if(!kb(a))if(!a.F)D(a);else if(a.w&&a.B){a.A||(a.A=a.w.length);if(a.w.length!=a.A)lb(a,"ROM size (0x"+n(a.w.length)+") does not match specified size ("+("0x"+n(a.A))+")");else if(Md(a,a.H)){var b=[];"number"==typeof a.D?b.push(a.D):null!=a.D&&a.D.length&&(b=a.D);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.B,h=d.A,g=[],k=d.H>>>f.ma;0<h&&k<f.W.length;)g.push(f.W[k++]),h-=f.Ca;f=d.B;d=d.A;h=0;for(e>>>=f.ma;0<d&&e<f.W.length;){k=g[h++];if(!k)break;f.W[e++]=k;d-=f.Ca}}delete a.w}D(a)}}
function Nd(a,b){if(wb(a.B,b,a.A,a.J?1:Xb)){var c;for(c=0;c<a.w.length;c++)Bb(a.B,b+c,a.w[c]);if(a.J&&256==b){for(c=0;c<Ld.length;c++)Bb(a.B,Ld[c],118);Kc(a.b,function(a){return function(b){if(0<=Ld.indexOf(b)){var c=!1,h=a.b,g=a.H;if(5==b)switch(c=!0,h.S){case 2:Od(a,String.fromCharCode(h.U));break;case 9:for(var k=Qc(h),l="",p=255;p--;){var q=a.b.Y(k++);if(36==q)break;l+=String.fromCharCode(q)}Od(a,l);break;default:c=!1}c?Ed.call(h):g&&(a.g("\nCP/M vector "+r(b)),G(h,b),g.ka());b=!0}else b=!1;return b}}(a)); function Md(a,b){if(vb(a.B,b,a.A,a.J?1:Wb)){var c;for(c=0;c<a.w.length;c++)Ab(a.B,b+c,a.w[c]);if(a.J&&256==b){for(c=0;c<Kd.length;c++)Ab(a.B,Kd[c],118);Jc(a.b,function(a){return function(b){if(0<=Kd.indexOf(b)){var c=!1,h=a.b,g=a.I;if(5==b)switch(c=!0,h.S){case 2:Nd(a,String.fromCharCode(h.U));break;case 9:for(var k=Pc(h),l="",p=255;p--;){var q=a.b.Y(k++);if(36==q)break;l+=String.fromCharCode(q)}Nd(a,l);break;default:c=!1}c?Dd.call(h):g&&(a.g("\nCP/M vector "+t(b)),F(h,b),g.ka());b=!0}else b=!1;return b}}(a));
Mc(a.b,b)}return!0}return!1}function Od(a,b){b=b.replace(/\r/g,"");a.Ba&&(a.Ba.value+=b,a.Ba.scrollTop=a.Ba.scrollHeight)}Ka(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Jd(d);fb(d,c)}});function Pd(a){u.call(this,"RAM",a,Pd);this.D=a.addr;this.A=a.size;this.w=!1}ab(Pd);m=Pd.prototype;m.Na=function(a,b,c,d){this.B=b;this.b=c;this.H=d;E(this)};m.Aa=function(a,b){b||this.reset();return!0};m.Da=function(a){return a?this.save():!0}; Lc(a.b,b)}return!0}return!1}function Nd(a,b){b=b.replace(/\r/g,"");a.Ba&&(a.Ba.value+=b,a.Ba.scrollTop=a.Ba.scrollHeight)}Ja(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Id(d);eb(d,c)}});function Od(a){v.call(this,"RAM",a,Od);this.D=a.addr;this.A=a.size;this.w=!1}$a(Od);m=Od.prototype;m.Na=function(a,b,c,d){this.B=b;this.b=c;this.I=d;D(this)};m.Aa=function(a,b){b||this.reset();return!0};m.Da=function(a){return a?this.save():!0};
m.reset=function(){!this.w&&this.A&&wb(this.B,this.D,this.A,1)&&(this.w=!0);this.w||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Ka(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Pd(d);fb(d,c)}});function Qd(a){u.call(this,"Keyboard",a,Qd,65536);(a=a.model)&&!Rd[a]&&Ma("Unrecognized Keyboard model: "+a);this.w=Rd[a]||{};this.reset();E(this)}ab(Qd); m.reset=function(){!this.w&&this.A&&vb(this.B,this.D,this.A,1)&&(this.w=!0);this.w||u("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Ja(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Od(d);eb(d,c)}});function Pd(a){v.call(this,"Keyboard",a,Pd,65536);(a=a.model)&&!Qd[a]&&La("Unrecognized Keyboard model: "+a);this.w=Qd[a]||{};this.reset();D(this)}$a(Pd);
var V={Rd:1,Sd:3,Td: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,Od:66,Pd:67,Ud:68,E:69,$d:70,fe:71,ge:72,he:73,je:74,ke:75,le:76,oe:77,qe:78,se:79,ue:80,Q:81,Ae:82,Ce:83,Je:84,Le:85,Oe:86,Pe:87,Qe:88,Se:89,Te:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Ue:97,Ve:98,We:99,d:100,e:101,Xe:102,Ye:103,Ze:104,$e:105,af:106,k:107,bf:108, var W={Rd:1,Sd:3,Td: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,Md:65,Od:66,Pd:67,Ud:68,E:69,$d:70,fe:71,ge:72,he:73,je:74,ke:75,le:76,oe:77,qe:78,se:79,ue:80,Q:81,Ae:82,Ce:83,Je:84,Le:85,Oe:86,Pe:87,Qe:88,Se:89,Te:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Ue:97,Ve:98,We:99,d:100,e:101,Xe:102,Ye:103,Ze:104,$e:105,af:106,k:107,bf:108,
cf:109,n:110,df:111,p:112,q:113,r:114,ef:115,t:116,gf:117,hf:118,jf:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},Sd={65:37,68:39,76:32},Td={ya:1978.1,u:{},vb:{},wb:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},W={ya:100,u:{},vb:{},wb:{},Md:{za:130},Ja:{za:130,Pc:1,Oc:2,Nc:4,Mc:8,Qc:16,ic:32,ec:63,ad:64,Qd:128,INIT:0},Lc:127};W.u[46]=3;W.u[80]=5;W.u[79]=6;W.u[89]=7;W.u[84]=8;W.u[87]=9;W.u[81]=10;W.u[39]=16;W.u[V["]"]]=20;W.u[V["}"]]=148;W.u[V["["]]=21;W.u[V["{"]]=149;W.u[73]=22; cf:109,n:110,df:111,p:112,q:113,r:114,ef:115,t:116,gf:117,hf:118,jf:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},Rd={65:37,68:39,76:32},Sd={ya:1978.1,u:{},vb:{},wb:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},X={ya:100,u:{},vb:{},wb:{},Gc:{za:130,INIT:127},Ja:{za:130,Qc:1,Pc:2,Oc:4,Nc:8,Rc:16,ic:32,ec:63,bd:64,Qd:128,INIT:0},Mc:127};X.u[46]=3;X.u[80]=5;X.u[79]=6;X.u[89]=7;X.u[84]=8;X.u[87]=9;X.u[81]=10;X.u[39]=16;X.u[W["]"]]=20;X.u[W["}"]]=148;X.u[W["["]]=21;X.u[W["{"]]=149;
W.u[85]=23;W.u[82]=24;W.u[69]=25;W.u[V["1"]]=26;W.u[V["!"]]=154;W.u[37]=32;W.u[40]=34;W.u[117]=35;W.u[19]=35;W.u[V["`"]]=36;W.u[V["~"]]=164;W.u[V["-"]]=37;W.u[V._]=165;W.u[V["9"]]=38;W.u[V["("]]=166;W.u[V["7"]]=39;W.u[V["&"]]=167;W.u[V["4"]]=40;W.u[V.$]=168;W.u[V["3"]]=41;W.u[V["#"]]=169;W.u[27]=42;W.u[38]=48;W.u[114]=49;W.u[112]=50;W.u[8]=51;W.u[V["="]]=52;W.u[V["+"]]=180;W.u[V["0"]]=53;W.u[V[")"]]=181;W.u[V["8"]]=54;W.u[V["*"]]=182;W.u[V["6"]]=55;W.u[V["^"]]=183;W.u[V["5"]]=56;W.u[V["%"]]=184; X.u[73]=22;X.u[85]=23;X.u[82]=24;X.u[69]=25;X.u[W["1"]]=26;X.u[W["!"]]=154;X.u[37]=32;X.u[40]=34;X.u[117]=35;X.u[19]=35;X.u[W["`"]]=36;X.u[W["~"]]=164;X.u[W["-"]]=37;X.u[W._]=165;X.u[W["9"]]=38;X.u[W["("]]=166;X.u[W["7"]]=39;X.u[W["&"]]=167;X.u[W["4"]]=40;X.u[W.$]=168;X.u[W["3"]]=41;X.u[W["#"]]=169;X.u[27]=42;X.u[38]=48;X.u[114]=49;X.u[112]=50;X.u[8]=51;X.u[W["="]]=52;X.u[W["+"]]=180;X.u[W["0"]]=53;X.u[W[")"]]=181;X.u[W["8"]]=54;X.u[W["*"]]=182;X.u[W["6"]]=55;X.u[W["^"]]=183;X.u[W["5"]]=56;
W.u[V["2"]]=57;W.u[V["@"]]=185;W.u[9]=58;W.u[103]=64;W.u[115]=65;W.u[113]=66;W.u[96]=67;W.u[10]=68;W.u[V["\\"]]=69;W.u[V["|"]]=197;W.u[76]=70;W.u[75]=71;W.u[71]=72;W.u[70]=73;W.u[65]=74;W.u[104]=80;W.u[2013]=81;W.u[98]=82;W.u[97]=83;W.u[V["'"]]=85;W.u[V['"']]=213;W.u[V[";"]]=86;W.u[V[":"]]=214;W.u[74]=87;W.u[72]=88;W.u[68]=89;W.u[83]=90;W.u[110]=96;W.u[118]=97;W.u[101]=98;W.u[100]=99;W.u[13]=100;W.u[V["."]]=101;W.u[V[">"]]=229;W.u[V[","]]=102;W.u[V["<"]]=230;W.u[78]=103;W.u[66]=104;W.u[88]=105; X.u[W["%"]]=184;X.u[W["2"]]=57;X.u[W["@"]]=185;X.u[9]=58;X.u[103]=64;X.u[115]=65;X.u[113]=66;X.u[96]=67;X.u[118]=68;X.u[W["\\"]]=69;X.u[W["|"]]=197;X.u[76]=70;X.u[75]=71;X.u[71]=72;X.u[70]=73;X.u[65]=74;X.u[104]=80;X.u[2013]=81;X.u[98]=82;X.u[97]=83;X.u[W["'"]]=85;X.u[W['"']]=213;X.u[W[";"]]=86;X.u[W[":"]]=214;X.u[74]=87;X.u[72]=88;X.u[68]=89;X.u[83]=90;X.u[110]=96;X.u[116]=97;X.u[101]=98;X.u[100]=99;X.u[13]=100;X.u[W["."]]=101;X.u[W[">"]]=229;X.u[W[","]]=102;X.u[W["<"]]=230;X.u[78]=103;X.u[66]=104;
W.u[119]=106;W.u[105]=112;W.u[99]=113;W.u[102]=114;W.u[109]=115;W.u[V["/"]]=117;W.u[V["?"]]=245;W.u[77]=118;W.u[V[" "]]=119;W.u[86]=120;W.u[67]=121;W.u[90]=122;W.u[120]=123;W.u[17]=124;W.u[16]=125;W.u[20]=126;W.vb={l4:W.Ja.Pc,l3:W.Ja.Oc,l2:W.Ja.Nc,l1:W.Ja.Mc,locked:W.Ja.Qc,online:W.Ja.ic,local:~W.Ja.ic};var Rd={SI1978:Td,VT100:W}; X.u[88]=105;X.u[119]=106;X.u[105]=112;X.u[99]=113;X.u[102]=114;X.u[109]=115;X.u[W["/"]]=117;X.u[W["?"]]=245;X.u[77]=118;X.u[W[" "]]=119;X.u[86]=120;X.u[67]=121;X.u[90]=122;X.u[120]=123;X.u[17]=124;X.u[16]=125;X.u[20]=126;X.vb={l4:X.Ja.Qc,l3:X.Ja.Pc,l2:X.Ja.Oc,l1:X.Ja.Nc,locked:X.Ja.Rc,online:X.Ja.ic,local:~X.Ja.ic};var Qd={SI1978:Sd,VT100:X};
Qd.prototype.ja=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.K[e]){if("led"==a&&this.w.vb[b])return this.K[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return Ud(d,a,!0)},c.onkeyup=function(a){return Ud(d,a,!1)},!0;default:if(this.w.wb&&void 0!==this.w.wb[b])return this.K[e]=c,a=function(a,b){return function(){Vd(a,b,!0)}}(this,b),b=function(a,b){return function(){Vd(a,b,!1)}}(this,b),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=a,c.onmouseup=c.onmouseout= Pd.prototype.ja=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.L[e]){if("led"==a&&this.w.vb[b])return this.L[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return Td(d,a,!0)},c.onkeyup=function(a){return Td(d,a,!1)},!0;default:if(this.w.wb&&void 0!==this.w.wb[b])return this.L[e]=c,a=function(a,b){return function(){Ud(a,b,!0)}}(this,b),b=function(a,b){return function(){Ud(a,b,!1)}}(this,b),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=a,c.onmouseup=c.onmouseout=
b),!0}}return!1};Qd.prototype.Na=function(a,b,c,d){this.b=c;this.H=d;this.D=sb(a,"ChipSet");Db(b,this,this.w.Pb);Hb(b,this,this.w.Qb)};Qd.prototype.Aa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};Qd.prototype.Da=function(a){return a?this.save():!0};W.INIT=[[W.Ja.INIT,-1]];m=Qd.prototype;m.reset=function(){this.B=[];this.w.INIT&&!this.restore(this.w.INIT)&&this.ga("reset error")};m.save=function(){var a=new H(this);switch(this.w.ya){case W.ya:I(a,0,[this.F])}return a.data()}; b),!0}}return!1};Pd.prototype.Na=function(a,b,c,d){this.b=c;this.I=d;this.D=rb(a,"ChipSet");Cb(b,this,this.w.Pb);Gb(b,this,this.w.Qb)};Pd.prototype.Aa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};Pd.prototype.Da=function(a){return a?this.save():!0};X.INIT=[[X.Ja.INIT,X.Gc.INIT,-1]];m=Pd.prototype;m.reset=function(){this.B=[];this.w.INIT&&!this.restore(this.w.INIT)&&this.ga("reset error")};
m.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.w.ya){case Td.ya:return!0;case W.ya:return this.F=b[0],Wd(this,this.F&W.Ja.ec),this.A=b[1],!0}return!1};function Wd(a,b){for(var c in a.w.vb){var d=a.K["led-"+c];if(d){var e=a.w.vb[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}}function Ud(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=Sd[e]||e,!a.w.u[e]){for(var f in a.w.wb)if(a.w.wb[f]===e){e=f;break a}e=null}e&&(d=Vd(a,e,c),b.preventDefault());return d} m.save=function(){var a=new G(this);switch(this.w.ya){case X.ya:H(a,0,[this.H,this.F,-1])}return a.data()};m.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.w.ya){case Sd.ya:return!0;case X.ya:return this.H=b[0],Vd(this,this.H&X.Ja.ec),this.F=b[1],this.A=b[2],!0}return!1};function Vd(a,b){for(var c in a.w.vb){var d=a.L["led-"+c];if(d){var e=a.w.vb[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}}
function Vd(a,b,c){var d;a:{for(d=0;d<a.B.length;d++)if(a.B[d].bc==b)break a;d=-1}if(c)0>d?a.B.push({bc:b,Yb:Date.now(),Kb:!1}):(a.B[d].Yb=Date.now(),a.B[d].Kb=!1);else if(0<=d){if(!a.B[d].Kb){var e=a.B[d].Yb;if(e&&100>Date.now()-e)return a.B[d].Kb=!0,Xd(a),!0}a.B.splice(d,1)}if(a.D)switch(b){case "1p":Hd(a.D,T.Ua.Tc,c);break;case "2p":Hd(a.D,T.Ua.Xc,c);break;case "coin":Hd(a.D,T.Ua.Hc,c);break;case "left":Hd(a.D,T.Ua.Vc,c);break;case "right":Hd(a.D,T.Ua.Wc,c);break;case "fire":Hd(a.D,T.Ua.Uc,c)}return!0} function Td(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=Rd[e]||e,!a.w.u[e]){for(var f in a.w.wb)if(a.w.wb[f]===e){e=f;break a}e=null}e&&(d=Ud(a,e,c),b.preventDefault());return d}
function Xd(a){for(var b=0,c=-1;b<a.B.length;){if(a.B[b].Kb){var d=a.B[b].bc,e=100-(Date.now()-a.B[b].Yb);if(0<e){if(0>c||c>e)c=e}else{Vd(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){Xd(a)},c)}m.vd=function(a,b){var c=0;0<=this.A&&this.A<this.B.length&&(c=this.B[this.A++],c=W.u[c.bc],c&128&&(c&=127),this.g("keymap: "+ca(c)));c||(c=W.Lc);C(this,a,null,b,"KBDUART.ADDRESS",c);return c}; function Ud(a,b,c){var d;a:{for(d=0;d<a.B.length;d++)if(a.B[d].bc==b)break a;d=-1}if(c)0>d?a.B.push({bc:b,Yb:Date.now(),Kb:!1}):(a.B[d].Yb=Date.now(),a.B[d].Kb=!1);else if(0<=d){if(!a.B[d].Kb){var e=a.B[d].Yb;if(e&&100>Date.now()-e)return a.B[d].Kb=!0,Wd(a),!0}a.B.splice(d,1)}if(a.D)switch(b){case "1p":Gd(a.D,U.Ua.Uc,c);break;case "2p":Gd(a.D,U.Ua.Yc,c);break;case "coin":Gd(a.D,U.Ua.Ic,c);break;case "left":Gd(a.D,U.Ua.Wc,c);break;case "right":Gd(a.D,U.Ua.Xc,c);break;case "fire":Gd(a.D,U.Ua.Vc,c)}return!0}
m.Kd=function(a,b,c){C(this,a,b,c,"KBDUART.STATUS");this.F=b;Wd(this,b&W.Ja.ec);b&W.Ja.ad&&(this.A=0,gd(this.b,1))};W.Pb={130:Qd.prototype.vd};W.Qb={130:Qd.prototype.Kd};Ka(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Qd(d);fb(d,c)}}); function Wd(a){for(var b=0,c=-1;b<a.B.length;){if(a.B[b].Kb){var d=a.B[b].bc,e=100-(Date.now()-a.B[b].Yb);if(0<e){if(0>c||c>e)c=e}else{Ud(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){Wd(a)},c)}m.wd=function(a,b){var c=this.F;0<=this.A&&(this.A<this.B.length?(c=this.B[this.A++],c=X.u[c.bc],c&128&&(c&=127)):(this.A=-1,c=X.Mc),this.F=c,fd(this.b,1));C(this,a,null,b,"KBDUART.ADDRESS",c);return c};
function Yd(a,b,c,d,e){var f=this;this.kc=ya("Gecko/");var h=["","moz","ms","webkit"];u.call(this,"Video",a,Yd,262144);this.Z=a.screenWidth;this.P=a.screenHeight;this.xa=a.bufferAddr;this.hd=a.bufferRAM;var g=a.bufferFormat;this.da=g&&Zd[g.toUpperCase()]||$d;this.Sa=a.bufferCols;this.ea=a.bufferRows;this.dd=this.pa=a.cellWidth||1;this.ha=a.cellHeight||1;this.bb=null;this.jc=!1;this.Ka=a.bufferBits||1;this.jd=a.bufferLeft||0;if(this.D=a.bufferRotate)this.D=this.D%360,0<this.D&&(this.D-=360),-90!=this.D&& m.Ld=function(a,b,c){C(this,a,b,c,"KBDUART.STATUS");this.H=b;Vd(this,b&X.Ja.ec);b&X.Ja.bd&&(this.A=0,fd(this.b,1))};X.Pb={130:Pd.prototype.wd};X.Qb={130:Pd.prototype.Ld};Ja(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Pd(d);eb(d,c)}});
(this.ga("unsupported buffer rotation: "+this.D),this.D=0);this.Tb=a.interruptRate;this.kd=a.refreshRate||60;this.O=b;this.F=c;this.Ga=(this.Dc=d)||b||null;this.ed=this.Z;this.gd=this.P;this.Hb=this.Z/this.Sa|0;this.Ib=this.P/this.ea|0;1<this.ha&&this.ea++;b=a.smoothing;(c=Ta.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.F[d]){this.F[d]=b;break}if(this.I=a.screenRotate)this.I=this.I%360,0<this.I&&(this.I-= function Xd(a,b,c,d,e){var f=this;this.kc=xa("Gecko/");var h=["","moz","ms","webkit"];v.call(this,"Video",a,Xd,262144);this.ba=a.screenWidth;this.Z=a.screenHeight;this.wa=a.bufferAddr;this.jd=a.bufferRAM;var g=a.bufferFormat;this.ea=g&&Yd[g.toUpperCase()]||Zd;this.Ha=a.bufferCols;this.fa=a.bufferRows;this.ed=this.pa=a.cellWidth||1;this.ha=a.cellHeight||1;this.bb=null;this.jc=!1;this.Sa=a.bufferBits||1;this.kd=a.bufferLeft||0;if(this.D=a.bufferRotate)this.D=this.D%360,0<this.D&&(this.D-=360),-90!=
360),-90!=this.I?(this.ga("unsupported screen rotation: "+this.I),this.I=0):(this.F.translate(0,this.P),this.F.rotate(this.I*Math.PI/180),this.F.scale(this.P/this.Z,this.Z/this.P));if(this.A=e)if(this.A.fb=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.A.fb){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){ae(f,document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement|| this.D&&(this.ga("unsupported buffer rotation: "+this.D),this.D=0);this.Tb=a.interruptRate;this.ld=a.refreshRate||60;this.P=b;this.F=c;this.Fa=(this.Dc=d)||b||null;this.fd=this.ba;this.hd=this.Z;this.Hb=this.ba/this.Ha|0;this.Ib=this.Z/this.fa|0;1<this.ha&&this.fa++;b=a.smoothing;(c=Sa.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.F[d]){this.F[d]=b;break}if(this.H=a.screenRotate)this.H=this.H%360,0<this.H&&
document.webkitFullscreenElement?!0:!1)},!1);break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){ae(f,null)},!1);break}}if(this.fa=a.fontROM)"json"!=ea(this.fa)&&(this.fa=qa()+"/api/v1/dump?file="+this.fa+"&format=bytes"),pa(this.fa,null,!0,function(a,b,c){be(f,a,b,c)});this.ub={}}ab(Yd);var $d=0,Zd={SI1978:1,VT100:2}; (this.H-=360),-90!=this.H?(this.ga("unsupported screen rotation: "+this.H),this.H=0):(this.F.translate(0,this.Z),this.F.rotate(this.H*Math.PI/180),this.F.scale(this.Z/this.ba,this.ba/this.Z));if(this.A=e)if(this.A.fb=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.A.fb){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){$d(f,document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||
Yd.prototype.Na=function(a,b,c,d){this.w=a;this.B=b;this.b=c;this.H=d;this.J=this.Sa*this.pa;this.ba=this.ea*this.ha;b=this.J;c=this.ba;this.D&&(b=this.ba,c=this.J);this.Ta=(this.J*this.Ka>>3)*this.ba;if(this.hd||wb(this.B,this.xa,this.Ta,3))1<this.pa?ce(this,this.Sa*this.ea):(this.lc=this.F.createImageData(b,c),this.nc=16/this.Ka|0,ce(this,this.Ta>>1)),this.L=document.createElement("canvas"),this.L.width=b,this.L.height=c,this.cb=this.L.getContext("2d"),this.na={},this.Ha=1<<this.Ka,this.ra=Array(this.Ha+ document.webkitFullscreenElement?!0:!1)},!1);break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){$d(f,null)},!1);break}}if(this.la=a.fontROM)"json"!=ea(this.la)&&(this.la=qa()+"/api/v1/dump?file="+this.la+"&format=bytes"),pa(this.la,null,!0,function(a,b,c){ae(f,a,b,c)});this.ub={}}$a(Xd);var Zd=0,Yd={SI1978:1,VT100:2};
2),this.ra[0]=[0,0,0,255],this.ra[1]=[255,255,255,255],1==this.da&&(this.ra[this.Ha+0]=[255,255,0,255],this.ra[this.Ha+1]=[0,255,0,255]),2==this.da&&(this.oc=60,this.eb=!1,this.wa=Array(this.Sa));if(this.M=sb(a,"Keyboard")){for(var e in this.ub)this.M.ja("led",e,this.ub[e]);this.O&&this.M.ja(this.Dc?"textarea":"canvas","kbd",this.Ga)}this.fa||E(this)}; Xd.prototype.Na=function(a,b,c,d){this.w=a;this.B=b;this.b=c;this.I=d;this.K=this.Ha*this.pa;this.da=this.fa*this.ha;b=this.K;c=this.da;this.D&&(b=this.da,c=this.K);this.Ta=(this.K*this.Sa>>3)*this.da;if(this.jd||vb(this.B,this.wa,this.Ta,3))1<this.pa?be(this,(this.Ha+1)*this.fa):(this.lc=this.F.createImageData(b,c),this.nc=16/this.Sa|0,be(this,this.Ta>>1)),this.O=document.createElement("canvas"),this.O.width=b,this.O.height=c,this.cb=this.O.getContext("2d"),this.na={},this.Ga=1<<this.Sa,this.ra=
function be(a,b,c,d){if(d)a.ga("Unable to load font ROM (error "+d+": "+b+")");else{cb(a.Sb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){t("Empty font ROM: "+b);return}if(1==f.length){t(f[0]);return}if(2048==f.length)de(a,f);else{a.ga("Unrecognized font data length ("+f.length+")");return}}catch(h){a.ga("Font ROM data error: "+h.message);return}(a.F||a.H)&&E(a)}} Array(this.Ga+2),this.ra[0]=[0,0,0,255],this.ra[1]=[255,255,255,255],1==this.ea&&(this.ra[this.Ga+0]=[255,255,0,255],this.ra[this.Ga+1]=[0,255,0,255]),2==this.ea&&(this.oc=60,this.eb=!1,this.Ka=Array(this.Ha));if(this.M=rb(a,"Keyboard")){for(var e in this.ub)this.M.ja("led",e,this.ub[e]);this.P&&this.M.ja(this.Dc?"textarea":"canvas","kbd",this.Fa)}this.la||D(this)};
function de(a,b){a.bb=b;a.jc=2==a.da;a.na[96]=[ee(a,a.pa,a.ha),ee(a,a.pa,a.ha,a.eb)];a.na[64]=[ee(a,2*a.pa,a.ha),ee(a,2*a.pa,a.ha,a.eb)];a.na[32]=a.na[0]=[ee(a,2*a.pa,2*a.ha),ee(a,2*a.pa,2*a.ha,a.eb)]} function ae(a,b,c,d){if(d)a.ga("Unable to load font ROM (error "+d+": "+b+")");else{bb(a.Sb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){u("Empty font ROM: "+b);return}if(1==f.length){u(f[0]);return}if(2048==f.length)ce(a,f);else{a.ga("Unrecognized font data length ("+f.length+")");return}}catch(h){a.ga("Font ROM data error: "+h.message);return}(a.F||a.I)&&D(a)}}
function ee(a,b,c,d){var e=8>=a.dd?8:16,f=8<e?15:0,h=a.bb.length/e,g=!1===d,k={pa:b,ha:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=h/16*c;k.context=k.canvas.getContext("2d");for(var l=k.context.createImageData(b,c),p=0;p<h;p++){for(var q=0,y=q;q<a.ha;q++)for(var x=p*e+(f+q&e-1),x=d&&8==q?255:a.bb[x],w=0;w<c/a.ha;w++){for(var B=0,v=0,K=v;v<a.pa;v++){for(var D=x&128>>(7<v?7:v),B=a.jc&&!D&&B?B:D,Y=0;Y<b/a.pa;Y++)g&&(B=!B),fe(a,l,K,y,B?1:0),K++;B=D}y++}k.context.putImageData(l, function ce(a,b){a.bb=b;a.jc=2==a.ea;a.na[96]=[de(a,a.pa,a.ha),de(a,a.pa,a.ha,a.eb)];a.na[64]=[de(a,2*a.pa,a.ha),de(a,2*a.pa,a.ha,a.eb)];a.na[32]=a.na[0]=[de(a,2*a.pa,2*a.ha),de(a,2*a.pa,2*a.ha,a.eb)]}
function de(a,b,c,d){var e=8>=a.ed?8:16,f=8<e?15:0,h=a.bb.length/e,g=!1===d,k={pa:b,ha:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=h/16*c;k.context=k.canvas.getContext("2d");for(var l=k.context.createImageData(b,c),p=0;p<h;p++){for(var q=0,r=q;q<a.ha;q++)for(var z=p*e+(f+q&e-1),z=d&&8==q?255:a.bb[z],w=0;w<c/a.ha;w++){for(var J=0,x=0,K=x;x<a.pa;x++){for(var B=z&128>>(7<x?7:x),J=a.jc&&!B&&J?J:B,S=0;S<b/a.pa;S++)g&&(J=!J),ee(a,l,K,r,J?1:0),K++;J=B}r++}k.context.putImageData(l,
(p&15)*b,(p>>4)*c)}return k} (p&15)*b,(p>>4)*c)}return k}
Yd.prototype.Aa=function(){if(2==this.da){for(var a={0:[32,"SET-UP A"],2:[64,'TO EXIT PRESS "SET-UP"'],22:[96," T T T T T T T T T"],23:[96,"1234567890","1234567890","1234567890","1234567890","1234567890","1234567890","1234567890","1234567890"],24:[]},b=this.xa,c=-1,d=-1,e,f=-(60==this.oc?2:5);f<this.ea;f++){var h=a[f];if(0<=c){var g=!1,c=b+2;h?h.length?d=h[0]:(c=b-1,g=!0):32==d&&(h=a[f-1],d=0);e=d&96|c>>8&15|16;Bb(this.B,b++,e);Bb(this.B,b++, Xd.prototype.Aa=function(){if(2==this.ea){for(var a={0:[32,"SET-UP A"],2:[64,'TO EXIT PRESS "SET-UP"'],22:[96," T T T T T T T T T"],23:[96,"1234567890","1234567890","1234567890","1234567890","1234567890","1234567890","1234567890","1234567890"],24:[]},b=this.wa,c=-1,d=-1,e,f=-(60==this.oc?2:5);f<this.fa;f++){var h=a[f];if(0<=c){var g=!1,c=b+2;h?h.length?d=h[0]:(c=b-1,g=!0):32==d&&(h=a[f-1],d=0);e=d&96|c>>8&15|16;Ab(this.B,b++,e);Ab(this.B,b++,
c&255);if(g)break}if(h)for(c=0,e=1;e<h.length;e++){for(var g=h[e],k=0;k<g.length;k++)Bb(this.B,b++,g.charCodeAt(k)|c);c^=128}Bb(this.B,b++,127);c=b}ge(this)}return!0};Yd.prototype.ja=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.ub[b]=c,!0;switch(b){case "fullScreen":return this.K[b]=c,this.A&&this.A.fb?c.onclick=function(){d.fb()}:c.parentNode.removeChild(c),!0}return!1}; c&255);if(g)break}if(h)for(c=0,e=1;e<h.length;e++){for(var g=h[e],k=0;k<g.length;k++)Ab(this.B,b++,g.charCodeAt(k)|c);c^=128}Ab(this.B,b++,127);c=b}fe(this)}return!0};Xd.prototype.ja=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.ub[b]=c,!0;switch(b){case "fullScreen":return this.L[b]=c,this.A&&this.A.fb?c.onclick=function(){d.fb()}:c.parentNode.removeChild(c),!0}return!1};
Yd.prototype.fb=function(){var a=!1;if(this.A){if(this.A.fb){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Z/this.P;b>c&&(a=Math.round(c/b*100)+"%")}this.kc?(this.O.style.width=a,this.O.style.width=a,this.O.style.display="block",this.O.style.margin="auto"):(this.A.style.width=a,this.A.style.height="auto");this.A.style.backgroundColor="black";this.A.fb();a=!0}this.Ga&&this.Ga.focus()}return a}; Xd.prototype.fb=function(){var a=!1;if(this.A){if(this.A.fb){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.ba/this.Z;b>c&&(a=Math.round(c/b*100)+"%")}this.kc?(this.P.style.width=a,this.P.style.width=a,this.P.style.display="block",this.P.style.margin="auto"):(this.A.style.width=a,this.A.style.height="auto");this.A.style.backgroundColor="black";this.A.fb();a=!0}this.Fa&&this.Fa.focus()}return a};
function ae(a,b){!b&&a.A&&(a.kc?a.O.style.width=a.O.style.height="":a.A.style.width=a.A.style.height="");hb(a,"notifyFullScreen("+b+")",!0)}function ce(a,b){a.mc=b;a.Fa=!1;if(void 0===a.ma||a.ma.length!=a.mc)a.ma=Array(a.mc)}function fe(a,b,c,d,e){d=a.D?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.da&&(208<=c&&236>c?e=a.Ha+0:28<=c&&72>c&&(e=a.Ha+1));a=a.ra[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 $d(a,b){!b&&a.A&&(a.kc?a.P.style.width=a.P.style.height="":a.A.style.width=a.A.style.height="");gb(a,"notifyFullScreen("+b+")",!0)}function be(a,b){a.mc=b;a.xa=!1;if(void 0===a.J||a.J.length!=a.mc)a.J=Array(a.mc)}function ee(a,b,c,d,e){d=a.D?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.ea&&(208<=c&&236>c?e=a.Ga+0:28<=c&&72>c&&(e=a.Ga+1));a=a.ra[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 ge(a){for(var b=a.xa,c=-1,d=0,e=60==a.oc?2:5,f=0,h=0;d<a.ea;){for(var g=0,k=b,l=c;;){var p=zb(a.B,k++);if(127==(p&127)){var q=zb(a.B,k++),c=q&96,b=(q&15)<<8|zb(a.B,k),b=b+(q&16?8192:16384);break}if(g<a.wa.length)a.wa[g++]=p;else break}if(e)e--;else{for(;g<a.wa.length;)a.wa[g++]=0;if(0<=l)for(k=0;k<g;k++){p=a.wa[k];if(!a.Fa||p!==a.ma[f]){var q=a,y=a.cb,x=p&127;if(p=q.na[l][p&128?1:0]){var w=(x&15)*p.pa,x=(x>>4)*p.ha,B=void 0,v=void 0,K=void 0,D=void 0,Y=p.pa,sa=p.ha;y?(B=k*q.pa,v=d*q.ha,K= function fe(a){for(var b=a.wa,c=-1,d=0,e=60==a.oc?2:5,f=0,h=0;d<a.fa;){var g=0,k=b,l=c,p=a.Ha;for(96!=l&&(p>>=1);;){var q=yb(a.B,k++);if(127==(q&127)){var r=yb(a.B,k++),c=r&96,b=(r&15)<<8|yb(a.B,k),b=b+(r&16?8192:16384);break}if(g<p)a.Ka[g++]=q;else break}if(e)e--;else{for(;g<a.Ka.length;)a.Ka[g++]=0;if(0<=l)for(k=a.xa&&a.J[f]==p,a.J[f++]=p,p=0;p<g;p++){q=a.Ka[p];if(!k||q!==a.J[f]){a.J[f]=q;var r=a,z=a.cb,w=q&127;if(q=r.na[l][q&128?1:0]){var J=(w&15)*q.pa,w=(w>>4)*q.ha,x=void 0,K=void 0,B=void 0,
q.pa,D=q.ha):(B=k*q.Hb,v=d*q.Ib,K=q.Hb,D=q.Ib);p.pa>q.pa&&(B*=2,K*=2);p.ha>q.ha&&(0==l&&(x+=q.ha),sa=q.ha);y?y.drawImage(p.canvas,w,x,Y,sa,B,v,K,D):(B+=0,v+=0,q.F.drawImage(p.canvas,w,x,Y,sa,B,v,K,D))}h++}f++}d++}}a.Fa=!0;h&&a.cb&&a.F.drawImage(a.L,0,0,a.J,a.ba-a.ha,0,0,a.ed,a.gd)} S=void 0,Aa=q.pa,aa=q.ha;z?(x=p*r.pa,K=d*r.ha,B=r.pa,S=r.ha):(x=p*r.Hb,K=d*r.Ib,B=r.Hb,S=r.Ib);q.pa>r.pa&&(x*=2,B*=2);q.ha>r.ha&&(0==l&&(w+=r.ha),aa=r.ha);z?z.drawImage(q.canvas,J,w,Aa,aa,x,K,B,S):(x+=0,K+=0,r.F.drawImage(q.canvas,J,w,Aa,aa,x,K,B,S))}h++}f++}d++}}a.xa=!0;h&&a.cb&&a.F.drawImage(a.O,0,0,a.K,a.da-a.ha,0,0,a.fd,a.hd)}
Ka(function(){for(var a=A(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=z(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=ra().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= Ja(function(){for(var a=A(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=y(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=ra().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||Ta.aspect);f&&.3<=f&&3.33>=f&&(Ja("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");ya("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new Yd(d,e,h,f,c);fb(d,c)}}); (a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Sa.aspect);f&&.3<=f&&3.33>=f&&(Ia("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");xa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new Xd(d,e,h,f,c);eb(d,c)}});
function he(a){this.I=+a.adapter;switch(this.I){case 0:this.J=0;break;default:t("Unrecognized serial adapter #"+this.I);return}u.call(this,"SerialPort",a,he,8388608);var b=a.binding;if("console"!=b){var c;a=ie;b&&(void 0===c&&(c="Panel"),(c=eb(c,this.id))&&(b=c.K[b])&&this.ja(null,a,b))}}ab(he);var ie="buffer";m=he.prototype; function ge(a){this.H=+a.adapter;switch(this.H){case 0:this.J=0;break;default:u("Unrecognized serial adapter #"+this.H);return}v.call(this,"SerialPort",a,ge,8388608);var b=a.binding;if("console"!=b){var c;a=he;b&&(void 0===c&&(c="Panel"),(c=db(c,this.id))&&(b=c.L[b])&&this.ja(null,a,b))}}$a(ge);var he="buffer";m=ge.prototype;
m.ja=function(a,b,c){switch(b){case ie:return this.K[b]=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;(8===b||a.ctrlKey&&65<=b&&90>=b)&&a.preventDefault&&a.preventDefault();return!0},c.onkeypress=function(a){a=a||window.event;a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};m.Na=function(a,b,c,d){this.B=b;this.b=c;this.H=d;this.D=sb(a,"ChipSet");Db(b,this,je,this.J);Hb(b,this,ke,this.J);E(this)}; m.ja=function(a,b,c){switch(b){case he:return this.L[b]=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;(8===b||a.ctrlKey&&65<=b&&90>=b)&&a.preventDefault&&a.preventDefault();return!0},c.onkeypress=function(a){a=a||window.event;a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};m.Na=function(a,b,c,d){this.B=b;this.b=c;this.I=d;this.D=rb(a,"ChipSet");Cb(b,this,ie,this.J);Gb(b,this,je,this.J);D(this)};
m.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};m.Da=function(a){return a?this.save():!0};m.reset=function(){le(this)};m.save=function(){var a=new H(this),b=0,c=[];c[b++]=this.A;c[b++]=this.w;c[b++]=this.F;I(a,0,c);return a.data()};m.restore=function(a){return le(this,a[0])};function le(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.A=b[c++];a.w=b[c++];a.F=b[c++];return!0}m.pd=function(a,b){var c=this.A;C(this,a,null,b,"DATA",c);return c}; m.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};m.Da=function(a){return a?this.save():!0};m.reset=function(){ke(this)};m.save=function(){var a=new G(this),b=0,c=[];c[b++]=this.A;c[b++]=this.w;c[b++]=this.F;H(a,0,c);return a.data()};m.restore=function(a){return ke(this,a[0])};function ke(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.A=b[c++];a.w=b[c++];a.F=b[c++];return!0}m.qd=function(a,b){var c=this.A;C(this,a,null,b,"DATA",c);return c};
m.od=function(a,b){var c=this.w;C(this,a,null,b,"COMMAND",c);return c};m.Ad=function(a,b,c){C(this,a,b,c,"DATA");this.A=b};m.zd=function(a,b,c){C(this,a,b,c,"COMMAND");this.w=b};m.yd=function(a,b,c){C(this,a,b,c,"BAUDRATE");this.F=b};var je={0:he.prototype.pd,1:he.prototype.od},ke={0:he.prototype.Ad,1:he.prototype.zd,2:he.prototype.yd};Ka(function(){for(var a=A(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new he(d);fb(d,c)}}); m.pd=function(a,b){var c=this.w;C(this,a,null,b,"COMMAND",c);return c};m.Bd=function(a,b,c){C(this,a,b,c,"DATA");this.A=b};m.Ad=function(a,b,c){C(this,a,b,c,"COMMAND");this.w=b};m.zd=function(a,b,c){C(this,a,b,c,"BAUDRATE");this.F=b};var ie={0:ge.prototype.qd,1:ge.prototype.pd},je={0:ge.prototype.Bd,1:ge.prototype.Ad,2:ge.prototype.zd};Ja(function(){for(var a=A(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new ge(d);eb(d,c)}});
function me(a){u.call(this,"Debugger",a,me);this.style=ne;this.da=this.Ga=this.L=0;this.P=X();this.bb=X();this.F=-1;this.D=[];this.fa=!1;this.ea=X();this.J=[];this.ma={};this.A=this.Z=this.I=[];oe(this);this.wa=0;pe(this);this.Ha=[];qe(this,a.messages);this.Ka=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return mc(b,a)}):void 0===global.$&&(global.$=function(a){return mc(b,a)})}ab(me); function le(a){v.call(this,"Debugger",a,le);this.style=me;this.da=this.Ga=this.M=0;this.P=Y();this.bb=Y();this.F=-1;this.D=[];this.fa=!1;this.ea=Y();this.J=[];this.la={};this.A=this.Z=this.H=[];ne(this);this.wa=0;oe(this);this.Ha=[];pe(this,a.messages);this.Ka=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return lc(b,a)}):void 0===global.$&&(global.$=function(a){return lc(b,a)})}$a(le);
var re={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"}, var qe={"?":"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"},
ne=8080,se="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(" "),te="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(" "), me=8080,re="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(" "),se="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(" "),
ue="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),ve=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963, te="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),ue=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,
2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617],[44,1617,32],[72],[45,32768],[21,18963,2835],[39,18193,115],[23,2835],[28,1809],[22,1809],[44,1809,32],[17],[43,17,17],[43,17,273],[43,17,529],[43,17,785],[43,17,1041],[43,17,1297],[43,17,1617],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1617],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529, 2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617],[44,1617,32],[72],[45,32768],[21,18963,2835],[39,18193,115],[23,2835],[28,1809],[22,1809],[44,1809,32],[17],[43,17,17],[43,17,273],[43,17,529],[43,17,785],[43,17,1041],[43,17,1297],[43,17,1617],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1617],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529,
785],[43,529,1041],[43,529,1297],[43,529,1617],[43,529,1809],[43,785,17],[43,785,273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43,785,1617],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1617],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1617],[43,1297,1809],[43,1617,17],[43,1617,273],[43,1617,529],[43,1617,785],[43,1617,1041],[43,1617,1297],[26],[43,1617,1809], 785],[43,529,1041],[43,529,1297],[43,529,1617],[43,529,1809],[43,785,17],[43,785,273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43,785,1617],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1617],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1617],[43,1297,1809],[43,1617,17],[43,1617,273],[43,1617,529],[43,1617,785],[43,1617,1041],[43,1617,1297],[26],[43,1617,1809],
[43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],[43,1809,1297],[43,1809,1617],[43,1809,1809],[3,18193,17],[3,18193,273],[3,18193,529],[3,18193,785],[3,18193,1041],[3,18193,1297],[3,18193,1617],[3,18193,1809],[2,18193,17],[2,18193,273],[2,18193,529],[2,18193,785],[2,18193,1041],[2,18193,1297],[2,18193,1617],[2,18193,1809],[73,18193,17],[73,18193,273],[73,18193,529],[73,18193,785],[73,18193,1041],[73,18193,1297],[73,18193,1617],[73,18193,1809],[66,18193,17],[66,18193,273],[66, [43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],[43,1809,1297],[43,1809,1617],[43,1809,1809],[3,18193,17],[3,18193,273],[3,18193,529],[3,18193,785],[3,18193,1041],[3,18193,1297],[3,18193,1617],[3,18193,1809],[2,18193,17],[2,18193,273],[2,18193,529],[2,18193,785],[2,18193,1041],[2,18193,1297],[2,18193,1617],[2,18193,1809],[73,18193,17],[73,18193,273],[73,18193,529],[73,18193,785],[73,18193,1041],[73,18193,1297],[73,18193,1617],[73,18193,1809],[66,18193,17],[66,18193,273],[66,
18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785],[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193, 18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785],[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,
785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62],[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77, 785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62],[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77,
18193,33],[65,128],[59],[50,3603],[35,51],[24],[12,51],[51,3603],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19,18193,33],[65,128]],we={cpu:1,bus:64,mem:128,port:256,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};m=me.prototype; 18193,33],[65,128],[59],[50,3603],[35,51],[24],[12,51],[51,3603],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19,18193,33],[65,128]],ve={cpu:1,bus:64,mem:128,port:256,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};m=le.prototype;
m.Na=function(a,b,c,d){this.B=b;this.b=c;this.w=a;(a=jc(a,"messages"))&&qe(this,a);this.Sa=ve;xe(this,function(a){a:{var b=d.B.W,c=a[0],g=a=0,k=b.length;if(c){a=ye(ze(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.B.la;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[g];p.type==c?l++||d.g("..."):(c=p.type,l=yb[c],p&&d.g(n(p.id)+" %"+n(g<<d.B.la)+" %%"+n(p.G)+" "+r(p.Fb)+" "+ m.Na=function(a,b,c,d){this.B=b;this.b=c;this.w=a;(a=ic(a,"messages"))&&pe(this,a);this.Sa=ue;we(this,function(a){a:{var b=d.B.W,c=a[0],g=a=0,k=b.length;if(c){a=xe(ye(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.B.ma;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[g];p.type==c?l++||d.g("..."):(c=p.type,l=xb[c],p&&d.g(n(p.id)+" %"+n(g<<d.B.ma)+" %%"+n(p.G)+" "+t(p.Fb)+" "+
r(p.size)+" "+l),c!=Wb&&(c=-1),l=0);a+=d.B.Ca;g++}}});E(this)}; t(p.size)+" "+l),c!=Vb&&(c=-1),l=0);a+=d.B.Ca;g++}}});D(this)};
m.ja=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ra=this.K[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",mc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.F<d.D.length-1&&(b=d.D[++d.F]):40==a.keyCode&&(0<d.F?b=d.D[--d.F]:(b="",d.F=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.K[b]=c,Aa(c,function(){if(d.ra){var a=d.ra.value;d.ra.value= m.ja=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ra=this.L[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",lc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.F<d.D.length-1&&(b=d.D[++d.F]):40==a.keyCode&&(0<d.F?b=d.D[--d.F]:(b="",d.F=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.L[b]=c,za(c,function(){if(d.ra){var a=d.ra.value;d.ra.value=
"";mc(d,a,!0);return!0}return!1}),!0;case "step":return this.K[b]=c,Aa(c,function(a){var b=!1;kb(d,!0)||(jb(d,!0),b=d.rb(a?1:0),jb(d,!1));return b}),!0}return!1};m.Eb=function(){this.ra&&this.ra.focus()};function ye(a){a=a&&a.G;null==a&&(a=-1);return a}m.Y=function(a,b){var c=255,d=ye(a);-1!==d&&(c=zb(this.B,d),b&&Ae(a,b));return c};m.Qa=function(a,b){var c=65535,d=ye(a);-1!==d&&(c=Ab(this.B,d),b&&Ae(a,b));return c};m.qa=function(a,b,c){var d=ye(a);-1!==d&&(Bb(this.B,d,b),c&&Ae(a,c),nc(this.b,!0))}; "";lc(d,a,!0);return!0}return!1}),!0;case "step":return this.L[b]=c,za(c,function(a){var b=!1;jb(d,!0)||(ib(d,!0),b=d.rb(a?1:0),ib(d,!1));return b}),!0}return!1};m.Eb=function(){this.ra&&this.ra.focus()};function xe(a){a=a&&a.G;null==a&&(a=-1);return a}m.Y=function(a,b){var c=255,d=xe(a);-1!==d&&(c=yb(this.B,d),b&&ze(a,b));return c};m.Qa=function(a,b){var c=65535,d=xe(a);-1!==d&&(c=zb(this.B,d),b&&ze(a,b));return c};m.qa=function(a,b,c){var d=xe(a);-1!==d&&(Ab(this.B,d,b),c&&ze(a,c),mc(this.b,!0))};
m.Rb=function(a,b,c){var d=ye(a);if(-1!==d){var e=this.B,f=d&e.B,h=(d&e.D)>>>e.la;f!=e.B?e.W[h].cc(f,b&65535,d):(e.W[h++].Gb(f,b&255,d),e.W[h&e.M].Gb(0,b>>8&255,d+1));c&&Ae(a,c);nc(this.b,!0)}};function X(a){return{G:a,Ma:!1}}function Be(a){return[a.G,a.Ma]}function Ce(a){return{G:a[0],Ma:a[1]}} m.Rb=function(a,b,c){var d=xe(a);if(-1!==d){var e=this.B,f=d&e.B,h=(d&e.D)>>>e.ma;f!=e.B?e.W[h].cc(f,b&65535,d):(e.W[h++].Gb(f,b&255,d),e.W[h&e.K].Gb(0,b>>8&255,d+1));c&&ze(a,c);mc(this.b,!0)}};function Y(a){return{G:a,Ma:!1}}function Ae(a){return[a.G,a.Ma]}function Be(a){return{G:a[0],Ma:a[1]}}
function ze(a,b,c){var d;c=(c?a.P:a.bb).G;if(void 0!==b){d=b=De(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.J.length;c++){var f=a.J[c].Oa[d];if(void 0!==f){d=f.o;void 0!==d&&(e=X(d));break}}if(d=e)return d;c=Ee(a,b,void 0)}null!=c&&(d=X(c));return d}function Fe(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.ld=Ge(a,b.Bc=c[2]))}function Ae(a,b){null!=a.G&&(a.G+=b||1)}function Z(a){return n(a,4)} function ye(a,b,c){var d;c=(c?a.P:a.bb).G;if(void 0!==b){d=b=Ce(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.J.length;c++){var f=a.J[c].Oa[d];if(void 0!==f){d=f.o;void 0!==d&&(e=Y(d));break}}if(d=e)return d;c=De(a,b,void 0)}null!=c&&(d=Y(c));return d}function Ee(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.md=Fe(a,b.Bc=c[2]))}function ze(a,b){null!=a.G&&(a.G+=b||1)}function Z(a){return n(a,4)}
function He(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Y(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function qe(a,b){a.H=a;a.oa=a.md=536870912;a.xa=null;a.Fa=[];var c=Ge(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in we)0<=oa(c,d)&&(a.oa|=we[d],a.g(d+" messages enabled"))}function xe(a,b){for(var c in we)if(64==we[c]){a.Ha[c]=b;break}} function Ge(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Y(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function pe(a,b){a.I=a;a.oa=a.nd=536870912;a.xa=null;a.Fa=[];var c=Fe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in ve)0<=oa(c,d)&&(a.oa|=ve[d],a.g(d+" messages enabled"))}function we(a,b){for(var c in ve)if(64==ve[c]){a.Ha[c]=b;break}}
function Ie(a,b){var c;a=a.toUpperCase();null==b?c=oa(ue,a):(c=oa(ue,a.substr(b,2)),0>c&&(c=oa(ue,a.substr(b,1))));return c}function Je(a,b){var c=0,d=Ke(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?n(d,c):"??"} function He(a,b){var c;a=a.toUpperCase();null==b?c=oa(te,a):(c=oa(te,a.substr(b,2)),0>c&&(c=oa(te,a.substr(b,1))));return c}function Ie(a,b){var c=0,d=Je(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?n(d,c):"??"}
function Ke(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.R;break;case 1:c=d.S;break;case 8:c=Oc(d);break;case 2:c=d.T;break;case 3:c=d.U;break;case 9:c=Qc(d);break;case 4:c=d.V;break;case 5:c=d.X;break;case 10:c=J(d);break;case 6:c=d.Y(J(d));break;case 11:c=d.ia;break;case 12:c=d.N;break;case 13:c=Nc(d);break;case 14:c=Nc(d)&255|d.j<<8}}return c} function Je(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.R;break;case 1:c=d.S;break;case 8:c=Nc(d);break;case 2:c=d.T;break;case 3:c=d.U;break;case 9:c=Pc(d);break;case 4:c=d.V;break;case 5:c=d.X;break;case 10:c=I(d);break;case 6:c=d.Y(I(d));break;case 11:c=d.ia;break;case 12:c=d.N;break;case 13:c=Mc(d);break;case 14:c=Mc(d)&255|d.j<<8}}return c}
function Le(a,b){b=De(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=Ie(b,c+1),0<=e&&(b=b.substr(0,c)+Je(a,e)+b.substr(c+1+ue[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ba(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=ze(a,e))?(d=e+' "'+He(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=ze(a,e))?(Ae(d),d=e+' "'+ function Ke(a,b){b=Ce(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=He(b,c+1),0<=e&&(b=b.substr(0,c)+Ie(a,e)+b.substr(c+1+te[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ca(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=ye(a,e))?(d=e+' "'+Ge(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=ye(a,e))?(ze(d),d=e+' "'+
He(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(X(this.b.N).G));if(this.oa&1073741824)this.Fa.push(a);else if(!this.xa||a!=this.xa)if(this.xa=a,this.oa&-2147483648&&(this.ka(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.ob=0;c.F-=c.b;c.b=0;nc(c)}}; Ge(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(Y(this.b.N).G));if(this.oa&1073741824)this.Fa.push(a);else if(!this.xa||a!=this.xa)if(this.xa=a,this.oa&-2147483648&&(this.ka(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.ob=0;c.F-=c.b;c.b=0;mc(c)}};
function gb(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.oa&g)!=g||a.message(b.ab+"."+(null!=d?"outPort":"inPort")+"("+r(c)+","+(f?f:"unknown")+(null!=d?","+ca(d):"")+")"+(null!=h?": "+ca(h):"")+(null!=e?" at "+Z(e):""))} function fb(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.oa&g)!=g||a.message(b.ab+"."+(null!=d?"outPort":"inPort")+"("+t(c)+","+(f?f:"unknown")+(null!=d?",0x"+n(d,2):"")+")"+(null!=h?": 0x"+n(h,2):"")+(null!=e?" at "+Z(e):""))}
function pe(a){var b;if(hd(a)){if(!a.O||!a.O.length){a.O=Array(1E3);for(b=0;b<a.O.length;b++)a.O[b]=X();a.na=0;a.g("instruction history buffer allocated")}if(!a.M||!a.M.length)for(a.M=Array(256),b=0;b<a.M.length;b++)a.M[b]=[b,0]}else a.O&&a.O.length&&a.g("instruction history buffer freed"),a.na=0,a.O=[],a.M=[]}m.$a=function(a){if(!Me(this))return!1;this.b.$a(a);return!0}; function oe(a){var b;if(gd(a)){if(!a.O||!a.O.length){a.O=Array(1E3);for(b=0;b<a.O.length;b++)a.O[b]=Y();a.na=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.O&&a.O.length&&a.g("instruction history buffer freed"),a.na=0,a.O=[],a.K=[]}m.$a=function(a){if(!Le(this))return!1;this.b.$a(a);return!0};
m.rb=function(a,b,c){if(!Me(this))return!1;this.L=0;a||hd(this)&&Bd(this,this.b.N,0);try{var d=this.b.rb(a);0<d&&(this.L+=d,Ec(this.b,d,!0),pc(this.b,d),this.da++)}catch(e){"number"!=typeof e&&(this.L=0,mb(this.b,e.stack||e.message))}!1!==c&&nc(this.b);this.Ea(b||!1);return 0<this.L};m.ka=function(a){this.b&&this.b.ka(a)};m.Ea=function(a){void 0===a&&(a=!0);this.P=X(this.b.N);a&&1!=this.ba?Ne(this):Oe(this)}; m.rb=function(a,b,c){if(!Le(this))return!1;this.M=0;a||gd(this)&&Ad(this,this.b.N,0);try{var d=this.b.rb(a);0<d&&(this.M+=d,Dc(this.b,d,!0),oc(this.b,d),this.da++)}catch(e){"number"!=typeof e&&(this.M=0,lb(this.b,e.stack||e.message))}!1!==c&&mc(this.b);this.Ea(b||!1);return 0<this.M};m.ka=function(a){this.b&&this.b.ka(a)};m.Ea=function(a){void 0===a&&(a=!0);this.P=Y(this.b.N);a&&1!=this.ba?Me(this):Ne(this)};
function Me(a){var b;if(b=a.b&&lb(a.b))b=a.b,b.C.sa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!kb(a.b)?(a=a.b,a.C.ib?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Aa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Da=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){pe(this);this.da=this.Ga=0;this.xa=null;this.L=0;this.P=X(this.b.N);this.C.va=!1;Pe(this);a||this.Ea()}; function Le(a){var b;if(b=a.b&&kb(a.b))b=a.b,b.C.sa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!jb(a.b)?(a=a.b,a.C.ib?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Aa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Da=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){oe(this);this.da=this.Ga=0;this.xa=null;this.M=0;this.P=Y(this.b.N);this.C.va=!1;Oe(this);a||this.Ea()};
m.save=function(){var a=new H(this);I(a,0,Be(this.P));I(a,1,Be(this.ea));I(a,2,[this.D,this.fa,this.oa]);I(a,3,this.J);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.P=Ce(a[b++]),this.ea=Ce(a[b++]),this.D=a[b][0],"string"==typeof this.D&&(this.D=[this.D]),this.fa=a[b][1],this.oa|=a[b][2]);a[3]&&(this.J=a[3]);return!0};m.start=function(a,b){this.ba||this.g("running");this.C.va=!0;this.ub=a;this.Hb=b}; m.save=function(){var a=new G(this);H(a,0,Ae(this.P));H(a,1,Ae(this.ea));H(a,2,[this.D,this.fa,this.oa]);H(a,3,this.J);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.P=Be(a[b++]),this.ea=Be(a[b++]),this.D=a[b][0],"string"==typeof this.D&&(this.D=[this.D]),this.fa=a[b][1],this.oa|=a[b][2]);a[3]&&(this.J=a[3]);return!0};m.start=function(a,b){this.ba||this.g("running");this.C.va=!0;this.ub=a;this.Hb=b};
m.stop=function(a,b){if(this.C.va){this.C.va=!1;this.L=b-this.Hb;if(!this.ba){var c="stopped";if(this.L){var d=a-this.ub,e=0<d?Math.round(1E3*this.L/d):0,c=c+" (";hd(this)&&(c+=this.da+" opcodes, ",this.Ga-=this.da,this.da=0);c+=this.L+" cycles, "+d+" ms, "+e+" hz)"}else ib(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.Ea(!0);this.Eb();Pe(this,this.b.N)}};function hd(a){return 1<a.A.length||!!a.wa} m.stop=function(a,b){if(this.C.va){this.C.va=!1;this.M=b-this.Hb;if(!this.ba){var c="stopped";if(this.M){var d=a-this.ub,e=0<d?Math.round(1E3*this.M/d):0,c=c+" (";gd(this)&&(c+=this.da+" opcodes, ",this.Ga-=this.da,this.da=0);c+=this.M+" cycles, "+d+" ms, "+e+" hz)"}else hb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.Ea(!0);this.Eb();Oe(this,this.b.N)}};function gd(a){return 1<a.A.length||!!a.wa}
function Bd(a,b,c){var d=a.b;if(0<c&&(a.wa&&!--a.wa||ec(a,b,1,a.A)))return!0;0<=c&&a.M.length&&(a.da++,b=zb(a.B,b),null!=b&&(a.M[b][1]++,b=a.O[a.na],b.G=d.N,b.Ma=!1,++a.na==a.O.length&&(a.na=0)));return!1}function Fb(a,b,c){a.g("break on input from port "+r(b)+": "+n(c));a.ka(!0)}function Jb(a,b,c){a.g("break on output to port "+r(b)+": "+n(c));a.ka(!0)} function Ad(a,b,c){var d=a.b;if(0<c&&(a.wa&&!--a.wa||dc(a,b,1,a.A)))return!0;0<=c&&a.K.length&&(a.da++,b=yb(a.B,b),null!=b&&(a.K[b][1]++,b=a.O[a.na],b.G=d.N,b.Ma=!1,++a.na==a.O.length&&(a.na=0)));return!1}function Eb(a,b,c){a.g("break on input from port "+t(b)+": "+n(c));a.ka(!0)}function Ib(a,b,c){a.g("break on output to port "+t(b)+": "+n(c));a.ka(!0)}
function oe(a){var b,c;a.A=["bp"];if(void 0!==a.Z)for(b=1;b<a.Z.length;b++){c=a.Z[b];var d=a.B;fc(d.W[ye(c)>>>d.la],!1)}a.Z=["br"];if(void 0!==a.I)for(b=1;b<a.I.length;b++)c=a.I[b],d=a.B,fc(d.W[ye(c)>>>d.la],!0);a.I=["bw"];a.cb=0}m.Va=function(a,b,c){var d=!0;c||of(this,a,b,!1,!0);if(a!=this.A){var e=ye(b);if(-1===e)this.g("invalid address: "+Z(b.G)),d=!1;else{var f=this.B;f.W[e>>>f.la].Va(e&f.B,a==this.I)}}d&&(a.push(b),c?b.Ma=!0:(pf(this,a,a.length-1,"set"),pe(this)));return d}; function ne(a){var b,c;a.A=["bp"];if(void 0!==a.Z)for(b=1;b<a.Z.length;b++){c=a.Z[b];var d=a.B;ec(d.W[xe(c)>>>d.ma],!1)}a.Z=["br"];if(void 0!==a.H)for(b=1;b<a.H.length;b++)c=a.H[b],d=a.B,ec(d.W[xe(c)>>>d.ma],!0);a.H=["bw"];a.cb=0}m.Va=function(a,b,c){var d=!0;c||nf(this,a,b,!1,!0);if(a!=this.A){var e=xe(b);if(-1===e)this.g("invalid address: "+Z(b.G)),d=!1;else{var f=this.B;f.W[e>>>f.ma].Va(e&f.B,a==this.H)}}d&&(a.push(b),c?b.Ma=!0:(of(this,a,a.length-1,"set"),oe(this)));return d};
function of(a,b,c,d,e){var f=!1;c=ye(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==ye(g)&&(!d||g.Ma)){f=!0;g.Ma||e||pf(a,b,h,"cleared");b.splice(h,1);b!=a.A&&(d=a.B,fc(d.W[c>>>d.la],b==a.I));g.Ma||pe(a);break}}return f}function qf(a,b){for(var c=1;c<b.length;c++)pf(a,b,c);return b.length-1}function pf(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.G)+(d?" "+d:c.Bc?' "'+c.Bc+'"':""))} function nf(a,b,c,d,e){var f=!1;c=xe(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==xe(g)&&(!d||g.Ma)){f=!0;g.Ma||e||of(a,b,h,"cleared");b.splice(h,1);b!=a.A&&(d=a.B,ec(d.W[c>>>d.ma],b==a.H));g.Ma||oe(a);break}}return f}function pf(a,b){for(var c=1;c<b.length;c++)of(a,b,c);return b.length-1}function of(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.G)+(d?" "+d:c.Bc?' "'+c.Bc+'"':""))}
function Pe(a,b){if(void 0!==b)ec(a,b,1,a.A,!0),a.ba=0;else for(var c=1;c<a.A.length;c++){var d=a.A[c];if(d.Ma){if(!of(a,a.A,d,!0))break;c=0}}} function Oe(a,b){if(void 0!==b)dc(a,b,1,a.A,!0),a.ba=0;else for(var c=1;c<a.A.length;c++){var d=a.A[c];if(d.Ma){if(!nf(a,a.A,d,!0))break;c=0}}}
function ec(a,b,c,d,e){var f=!1;if(!a.cb++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.Ma)for(var k=ye(g),l=0;l<c;l++)if(b+l==k){var p,f=!0;g.Ma&&(of(a,d,g,!0),e=!0);if(p=g.ld){for(var f=!1,q=0;q<p.length;q++)if(!rf(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var y=q+1;y<p.length&&p[y].indexOf("else");y++)q++;if(y==p.length){f=!0;break}}a.b.C.va||(f=!0)}if(f){e||pf(a,d,h,"hit");break}}}a.cb--;return f} function dc(a,b,c,d,e){var f=!1;if(!a.cb++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.Ma)for(var k=xe(g),l=0;l<c;l++)if(b+l==k){var p,f=!0;g.Ma&&(nf(a,d,g,!0),e=!0);if(p=g.md){for(var f=!1,q=0;q<p.length;q++)if(!qf(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var r=q+1;r<p.length&&p[r].indexOf("else");r++)q++;if(r==p.length){f=!0;break}}a.b.C.va||(f=!0)}if(f){e||of(a,d,h,"hit");break}}}a.cb--;return f}
function sf(a,b,c,d){for(var e=X(b.G),f=a.Y(b,1),h=a.Sa[f],g="",k=(8086!=a.style?se:te)[h[0]],l=h.length-1,p=0,q,y=1;y<=l;y++){var x="";q=h[y];if(void 0!==q&&!(q&16384&&a.style==ne)){var w=q&240;if(w){var B=q&15;B?p=B:q|=p;q&61440||(q|=1==y?8192:4096);if(w&32)a:{var x=a,w=q,B=b,v=" ";switch(w&15){case 1:v=n(x.Y(B,1),2);break;case 2:v=n(x.Y(B,1)<<24>>24,4);break;case 3:v=n(x.Qa(B,2),4);break;default:x="imm("+r(w)+")";break a}8086==x.style&&w&64?v="["+v+"]":w&16||(v=(x.style==ne?"$":"0x")+v);x=v}else w& function rf(a,b,c,d){for(var e=Y(b.G),f=a.Y(b,1),h=a.Sa[f],g="",k=(8086!=a.style?re:se)[h[0]],l=h.length-1,p=0,q,r=1;r<=l;r++){var z="";q=h[r];if(void 0!==q&&!(q&16384&&a.style==me)){var w=q&240;if(w){var J=q&15;J?p=J:q|=p;q&61440||(q|=1==r?8192:4096);if(w&32)a:{var z=a,w=q,J=b,x=" ";switch(w&15){case 1:x=n(z.Y(J,1),2);break;case 2:x=n(z.Y(J,1)<<24>>24,4);break;case 3:x=n(z.Qa(J,2),4);break;default:z="imm("+t(w)+")";break a}8086==z.style&&w&64?x="["+x+"]":w&16||(x=(z.style==me?"$":"0x")+x);z=x}else w&
16?(x=(q&3840)>>8,w=ue[x],8086==a.style&&q&64&&(6==x&&(w="HL"),w="["+w+"]"),x=w):w&128&&(x=(f>>3&7).toString());if(!x||!x.length){g="INVALID";break}0<g.length&&(g+=",");g+=x||"???"}}}f="";h=Z(e.G)+" ";if(-1!==e.G&&-1!==b.G){do if(f+=n(a.Y(e,1),2),null==e.G)break;while(e.G!=b.G)}h+=ja(f,10);h=h+(q&32768?"*":" ")+ja(k,7);g&&(h+=" "+g);c&&(h=ja(h,40)+";"+c,h=a.b.C.hb?h+("cycles="+qc(a.b).toString()+" cs="+n(a.b.i.xb)):h+(null!=d?"="+d.toString():""));return h} 16?(z=(q&3840)>>8,w=te[z],8086==a.style&&q&64&&(6==z&&(w="HL"),w="["+w+"]"),z=w):w&128&&(z=(f>>3&7).toString());if(!z||!z.length){g="INVALID";break}0<g.length&&(g+=",");g+=z||"???"}}}f="";h=Z(e.G)+" ";if(-1!==e.G&&-1!==b.G){do if(f+=n(a.Y(e,1),2),null==e.G)break;while(e.G!=b.G)}h+=ja(f,10);h=h+(q&32768?"*":" ")+ja(k,7);g&&(h+=" "+g);c&&(h=ja(h,40)+";"+c,h=a.b.C.hb?h+("cycles="+pc(a.b).toString()+" cs="+n(a.b.i.xb)):h+(null!=d?"="+d.toString():""));return h}
function tf(a,b){var c;switch(b){case "IF":c=a.b.ta&512;break;case "SF":c=Yc(a.b);break;case "ZF":c=Xc(a.b);break;case "AF":c=Wc(a.b);break;case "PF":c=Vc(a.b);break;case "CF":c=Tc(a.b);break;default:c=0}return b.charAt(0)+(c?"1":"0")+" "}function uf(a,b){return ue[b]+"="+Je(a,b)+" "}function vf(a){return uf(a,7)+uf(a,8)+uf(a,9)+uf(a,10)+uf(a,11)+tf(a,"IF")+tf(a,"SF")+tf(a,"ZF")+tf(a,"AF")+tf(a,"PF")+tf(a,"CF")} function sf(a,b){var c;switch(b){case "IF":c=a.b.ta&512;break;case "SF":c=Xc(a.b);break;case "ZF":c=Wc(a.b);break;case "AF":c=Vc(a.b);break;case "PF":c=Uc(a.b);break;case "CF":c=Sc(a.b);break;default:c=0}return b.charAt(0)+(c?"1":"0")+" "}function tf(a,b){return te[b]+"="+Ie(a,b)+" "}function uf(a){return tf(a,7)+tf(a,8)+tf(a,9)+tf(a,10)+tf(a,11)+sf(a,"IF")+sf(a,"SF")+sf(a,"ZF")+sf(a,"AF")+sf(a,"PF")+sf(a,"CF")}
var wf={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; var vf={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function xf(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; function wf(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function Ee(a,b,c){var d;if(b){b=De(a,b);for(var e=0,f=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<l.length;){var p=l[e++],q=p.length,p=ka(p);if(!p){f=!0;break}p=yf(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}g.push(p);if(e==l.length)break;var p=l[e++],y=p.length;k.length&&wf[p]<wf[k[k.length-1]]&&xf(g,k,1);k.push(p);b=b.substr(q+y)}xf(g,k)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&zf(a,null, function De(a,b,c){var d;if(b){b=Ce(a,b);for(var e=0,f=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<l.length;){var p=l[e++],q=p.length,p=ka(p);if(!p){f=!0;break}p=xf(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}g.push(p);if(e==l.length)break;var p=l[e++],r=p.length;k.length&&vf[p]<vf[k[k.length-1]]&&wf(g,k,1);k.push(p);b=b.substr(q+r)}wf(g,k)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&yf(a,null,
d))}return d}function De(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=Ee(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?n(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=ze(a,c[1]),b=b.replace("["+c[1]+"]",d?n(a.Qa(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.da-a.Ga}if(null==e)break;c=c.replace(d[0],e.toString())}return c} d))}return d}function Ce(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=De(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?n(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=ye(a,c[1]),b=b.replace("["+c[1]+"]",d?n(a.Qa(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.da-a.Ga}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
function yf(a,b,c,d){var e;void 0!==b?(e=Ie(b),0<=e?e=Ke(a,e):(e=a.ma[b],void 0===e&&(e=ba(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e} function xf(a,b,c,d){var e;void 0!==b?(e=He(b),0<=e?e=Je(a,e):(e=a.la[b],void 0===e&&(e=ca(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
function zf(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var k=d&255,l=8,p="";void 0===l?l=32:32<l&&(l=32);if(null==k||isNaN(k))for(;0<l--;)p="?"+p;else for(;0<l--;)p=(k&1?"1":"0")+p,k>>=1;h=p+"b"+h;d>>=8}d="0x"+n(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function Af(a,b){if(b)return zf(a,b,a.ma[b]);var c=0;for(b in a.ma)zf(a,b,a.ma[b]),c++;return 0<c}me.prototype.Ta=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0}; function yf(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var k=d&255,l=8,p="";void 0===l?l=32:32<l&&(l=32);if(null==k||isNaN(k))for(;0<l--;)p="?"+p;else for(;0<l--;)p=(k&1?"1":"0")+p,k>>=1;h=p+"b"+h;d>>=8}d="0x"+n(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function zf(a,b){if(b)return yf(a,b,a.la[b]);var c=0;for(b in a.la)yf(a,b,a.la[b]),c++;return 0<c}le.prototype.Ta=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Bf(a,b,c){var d=[],e=ye(b)>>>0;for(b=0;b<a.J.length;b++){var f=a.J[b],h=f.G>>>0,g=f.wd;if(e>=h&&e<h+g){e=la(f.pc,[e-h],a.Ta);0<=e?Cf(a,b,e,d):c&&(e=~e,Cf(a,b,e-1,d),Cf(a,b,e,d));break}}return d}function Cf(a,b,c,d){var e={},f=a.J[b].pc,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.J[b].Oa[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)} function Af(a,b,c){var d=[],e=xe(b)>>>0;for(b=0;b<a.J.length;b++){var f=a.J[b],h=f.G>>>0,g=f.xd;if(e>=h&&e<h+g){e=la(f.pc,[e-h],a.Ta);0<=e?Bf(a,b,e,d):c&&(e=~e,Bf(a,b,e-1,d),Bf(a,b,e,d));break}}return d}function Bf(a,b,c,d){var e={},f=a.J[b].pc,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.J[b].Oa[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)}
function Df(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.M)if("clear"==b){for(c=0;c<a.M.length;c++)a.M[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.M.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.style?se:te;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.Sa[h][0]]+" ").substr(0,5)+" ("+ca(h)+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}} function Cf(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.K)if("clear"==b){for(c=0;c<a.K.length;c++)a.K[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.K.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.style?re:se;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.Sa[h][0]]+" ").substr(0,5)+" ("+("0x"+n(h,2))+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}}
function Ef(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Af(a)||a.g("no variables"),!0;if(!c[2])return Af(a,c[1]);if(!c[3])return delete a.ma[c[1]],!0;var d=Ee(a,c[3]);return void 0!==d?(a.ma[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1} function Df(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return zf(a)||a.g("no variables"),!0;if(!c[2])return zf(a,c[1]);if(!c[3])return delete a.la[c[1]],!0;var d=De(a,c[3]);return void 0!==d?(a.la[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1}
function Ff(a,b,c){var d=null;if(b=ze(a,b,!0)){var e=Bf(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.G-e[1])&&(h=" + "+r(f)),f=e[0]+" ("+Z(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.G)&&(h=" - "+r(f)),f=e[4]+" ("+Z(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d} function Ef(a,b,c){var d=null;if(b=ye(a,b,!0)){var e=Af(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.G-e[1])&&(h=" + "+t(f)),f=e[0]+" ("+Z(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.G)&&(h=" - "+t(f)),f=e[4]+" ("+Z(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
function Gf(a,b){switch(b[1]){case "8080":a.style=ne;break;case "8086":a.style=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.i.lb=c;break;case "start":a.b.i.yb=c;break;case "stop":a.b.i.nb=c;break;default:a.g("unknown cs option");return}void 0!==c&&lc(a.b);a.g("checksums "+(a.b.C.hb?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Dc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.i.Xa.toFixed(2)+"Mhz")+ function Ff(a,b){switch(b[1]){case "8080":a.style=me;break;case "8086":a.style=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.i.lb=c;break;case "start":a.b.i.yb=c;break;case "stop":a.b.i.nb=c;break;default:a.g("unknown cs option");return}void 0!==c&&kc(a.b);a.g("checksums "+(a.b.C.hb?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Cc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.i.Xa.toFixed(2)+"Mhz")+
" ("+a.b.i.Za+"x)");return;case "?":a.g("debugger options:");a.g("\t8080\t\tselect 8080-style mnemonics");a.g("\t8086\t\tselect 8086-style mnemonics");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.g("unknown option: "+b[1]);return}}a.g(a.style+"-style mnemonics enabled")} " ("+a.b.i.Za+"x)");return;case "?":a.g("debugger options:");a.g("\t8080\t\tselect 8080-style mnemonics");a.g("\t8086\t\tselect 8086-style mnemonics");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.g("unknown option: "+b[1]);return}}a.g(a.style+"-style mnemonics enabled")}
function Ne(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=Ee(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "A":d.j=g&255;break;case "B":d.R=g&255;break;case "BC":d.R=g>>8&255;case "C":d.S=g&255;break;case "D":d.T= function Me(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=De(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "A":d.j=g&255;break;case "B":d.R=g&255;break;case "BC":d.R=g>>8&255;case "C":d.S=g&255;break;case "D":d.T=
g&255;break;case "DE":d.T=g>>8&255;case "E":d.U=g&255;break;case "H":d.V=g&255;break;case "HL":d.V=g>>8&255;case "L":d.X=g&255;break;case "SP":d.ia=g&65535;break;case "PC":G(d,g);a.P=X(d.N);break;case "PS":Lc(d,g);break;case "PSW":Lc(d,g&255|d.ta&-256);d.j=g>>8;break;case "CF":d.aa=g?d.aa|256:d.aa&255;break;case "PF":g?Vc(d)||(d.ca^=1):Vc(d)&&(d.ca^=1);break;case "AF":d.ua=g?~d.ca&16|d.ua&-17:d.ca&16|d.ua&-17;break;case "ZF":d.aa=g?d.aa&-256:d.aa|255;break;case "SF":g?Yc(d)||(d.ca^=192):Yc(d)&&(d.ca^= g&255;break;case "DE":d.T=g>>8&255;case "E":d.U=g&255;break;case "H":d.V=g&255;break;case "HL":d.V=g>>8&255;case "L":d.X=g&255;break;case "SP":d.ia=g&65535;break;case "PC":F(d,g);a.P=Y(d.N);break;case "PS":Kc(d,g);break;case "PSW":Kc(d,g&255|d.ta&-256);d.j=g>>8;break;case "CF":d.aa=g?d.aa|256:d.aa&255;break;case "PF":g?Uc(d)||(d.ca^=1):Uc(d)&&(d.ca^=1);break;case "AF":d.ua=g?~d.ca&16|d.ua&-17:d.ca&16|d.ua&-17;break;case "ZF":d.aa=g?d.aa&-256:d.aa|255;break;case "SF":g?Xc(d)||(d.ca^=192):Xc(d)&&(d.ca^=
192);break;case "IF":d.ta=g?d.ta|512:d.ta&-513;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}nc(d);a.g("updated registers:")}a.g(vf(a));c&&(a.P=X(d.N),Oe(a,Z(a.P.G)))}}function Hf(a,b){b=ka(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(Le(a,c[2])):Ee(a,b,!0)}function If(a,b,c){var d="t"!=b;c=yf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);za(c,function(){return jb(a,!0)&&a.rb(e,d,!1)},function(){nc(a.b);jb(a,!1)})} 192);break;case "IF":d.ta=g?d.ta|512:d.ta&-513;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}mc(d);a.g("updated registers:")}a.g(uf(a));c&&(a.P=Y(d.N),Ne(a,Z(a.P.G)))}}function Gf(a,b){b=ka(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(Ke(a,c[2])):De(a,b,!0)}function Hf(a,b,c){var d="t"!=b;c=xf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);ya(c,function(){return ib(a,!0)&&a.rb(e,d,!1)},function(){mc(a.b);ib(a,!1)})}
function Oe(a,b,c,d){if(b=ze(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=ze(a,c,!0);if(!d||d.G<b.G)return;e=d.G-b.G;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=kb(a,!1)||a.ba?a.L:null;var h=null!=f?"cycles":null,g=Bf(a,b),k=b.G;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=sf(a,b,h,f);a.g(f);a.P=b;e-=b.G-k;c++}}} function Ne(a,b,c,d){if(b=ye(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=ye(a,c,!0);if(!d||d.G<b.G)return;e=d.G-b.G;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=jb(a,!1)||a.ba?a.M:null;var h=null!=f?"cycles":null,g=Af(a,b),k=b.G;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=rf(a,b,h,f);a.g(f);a.P=b;e-=b.G-k;c++}}}
function Ge(a,b,c,d){if(c)if(b){0>a.F&&a.D.length&&(a.F=0);if(0>a.F||b!=a.D[a.F])a.D.splice(0,0,b),a.F=0;a.F--}else a.fa?b="end":b=a.D[a.F+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ka(b.substring(c,f))),c=f+1}}return a} function Fe(a,b,c,d){if(c)if(b){0>a.F&&a.D.length&&(a.F=0);if(0>a.F||b!=a.D[a.F])a.D.splice(0,0,b),a.F=0;a.F--}else a.fa?b="end":b=a.D[a.F+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ka(b.substring(c,f))),c=f+1}}return a}
function rf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.fa&&(a.g("ended assemble at "+Z(a.ea.G)),a.P=a.ea,a.fa=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.xa=null;if(lb(a)&&0<b.length){a.fa&&(b="a "+Z(a.ea.G)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var p=ze(a,f[1],!0);if(p)if(a.ea= function qf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.fa&&(a.g("ended assemble at "+Z(a.ea.G)),a.P=a.ea,a.fa=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.xa=null;if(kb(a)&&0<b.length){a.fa&&(b="a "+Z(a.ea.G)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var p=ye(a,f[1],!0);if(p)if(a.ea=
p,void 0===f[2])a.g("begin assemble at "+Z(p.G)),a.fa=!0,nc(a.b);else{var q;a.g("not supported yet");q=[];if(q.length){for(var y=0;y<q.length;y++)a.qa(p,q[y],1);a.g(sf(a,a.ea))}}break;case "b":a:{var x=f[0],w=f[1],B=b;if("?"==w)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"), p,void 0===f[2])a.g("begin assemble at "+Z(p.G)),a.fa=!0,mc(a.b);else{var q;a.g("not supported yet");q=[];if(q.length){for(var r=0;r<q.length;r++)a.qa(p,q[r],1);a.g(rf(a,a.ea))}}break;case "b":a:{var z=f[0],w=f[1],J=b;if("?"==w)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),
a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");else{var v=x.charAt(1);if("l"==v){var K=0,K=K+qf(a,a.A),K=K+qf(a,a.Z);(K+=qf(a,a.I))||a.g("no breakpoints")}else if("n"==v)a.wa=yf(a,w),a.g("break after "+a.wa+" instruction(s)");else if(void 0===w)a.g("missing breakpoint address");else{var D=X();if("*"!=w&&(D=ze(a,w,!0),!D))break a;w=r(D.G);"c"==v?null==D.G?(oe(a),a.g("all breakpoints cleared")):of(a,a.A,D)||of(a,a.Z,D)|| a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");else{var x=z.charAt(1);if("l"==x){var K=0,K=K+pf(a,a.A),K=K+pf(a,a.Z);(K+=pf(a,a.H))||a.g("no breakpoints")}else if("n"==x)a.wa=xf(a,w),a.g("break after "+a.wa+" instruction(s)");else if(void 0===w)a.g("missing breakpoint address");else{var B=Y();if("*"!=w&&(B=ye(a,w,!0),!B))break a;w=t(B.G);"c"==x?null==B.G?(ne(a),a.g("all breakpoints cleared")):nf(a,a.A,B)||nf(a,a.Z,B)||
of(a,a.I,D)||a.g("breakpoint missing: "+Z(D.G)):"i"==v?a.g("breakpoint "+(Cb(a.B,D.G)?"enabled":"cleared")+": port "+w+" (input)"):"o"==v?a.g("breakpoint "+(Gb(a.B,D.G)?"enabled":"cleared")+": port "+w+" (output)"):null!=D.G&&(Fe(a,D,B),"p"==v?a.Va(a.A,D):"r"==v?a.Va(a.Z,D):"w"==v?a.Va(a.I,D):a.g("unknown breakpoint command: "+v))}}}break;case "c":a.Ba&&(a.Ba.value="");break;case "d":a:{var Y,sa=f[0],Ba=f[1],Xa=f[2],cg=f[3];if("?"==Ba){var Ca="";for(Y in we)a.Ha[Y]&&(Ca&&(Ca+=","),Ca+=Y);Ca+=",state,symbols"; nf(a,a.H,B)||a.g("breakpoint missing: "+Z(B.G)):"i"==x?a.g("breakpoint "+(Bb(a.B,B.G)?"enabled":"cleared")+": port "+w+" (input)"):"o"==x?a.g("breakpoint "+(Fb(a.B,B.G)?"enabled":"cleared")+": port "+w+" (output)"):null!=B.G&&(Ee(a,B,J),"p"==x?a.Va(a.A,B):"r"==x?a.Va(a.Z,B):"w"==x?a.Va(a.H,B):a.g("unknown breakpoint command: "+x))}}}break;case "c":a.Ba&&(a.Ba.value="");break;case "d":a:{var S,Aa=f[0],aa=f[1],Wa=f[2],bg=f[3];if("?"==aa){var Ca="";for(S in ve)a.Ha[S]&&(Ca&&(Ca+=","),Ca+=S);Ca+=",state,symbols";
a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");Ca.length&&a.g("dump extension commands:\n\t"+Ca)}else if("state"==Ba){var Qe=Jf(a.w,!0);"console"==Xa?console.log(Qe):(a.Ba&&(a.Ba.value=""),a.g(Qe))}else if("symbols"==Ba)for(var id=0;id<a.J.length;id++){var jd=a.J[id],nb;for(nb in jd.Oa)if("."!=nb.charAt(0)){var Re= a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");Ca.length&&a.g("dump extension commands:\n\t"+Ca)}else if("state"==aa){var Pe=If(a.w,!0);"console"==Wa?console.log(Pe):(a.Ba&&(a.Ba.value=""),a.g(Pe))}else if("symbols"==aa)for(var hd=0;hd<a.J.length;hd++){var id=a.J[hd],nb;for(nb in id.Oa)if("."!=nb.charAt(0)){var Qe=
jd.Oa[nb].o;if(void 0!==Re){var Se=jd.Oa[nb].l;Se&&(nb=Se);a.g(Z(Re)+" "+nb)}}}else{if("d"==sa){for(Y in we)if(f[1]==Y){var Te=a.Ha[Y];Te?(f.shift(),f.shift(),Te(f)):a.g("no dump registered for "+Ba);break a}Ba||(sa=a.Ib||"db")}else a.Ib=sa;if("dh"==sa){var Ue=Ba,Ve=Xa,We="",Xe=0,aa=a.na,Da=a.O;if(Da.length){var fa=+Ue||a.eb,ob=+Ve||10;isNaN(fa)?fa=ob:We="more ";fa>Da.length&&(a.g("note: only "+Da.length+" available"),fa=Da.length);aa-=fa;0>aa&&(null==Da[Da.length-1].G?(fa=aa+fa,aa=0):aa+=Da.length); id.Oa[nb].o;if(void 0!==Qe){var Re=id.Oa[nb].l;Re&&(nb=Re);a.g(Z(Qe)+" "+nb)}}}else{if("d"==Aa){for(S in ve)if(f[1]==S){var Se=a.Ha[S];Se?(f.shift(),f.shift(),Se(f)):a.g("no dump registered for "+aa);break a}aa||(Aa=a.Ib||"db")}else a.Ib=Aa;if("dh"==Aa){var Te=aa,Ue=Wa,Ve="",We=0,ba=a.na,Da=a.O;if(Da.length){var ga=+Te||a.eb,ob=+Ue||10;isNaN(ga)?ga=ob:Ve="more ";ga>Da.length&&(a.g("note: only "+Da.length+" available"),ga=Da.length);ba-=ga;0>ba&&(null==Da[Da.length-1].G?(ga=ba+ga,ba=0):ba+=Da.length);
var kd=[];"call"==Ve&&(ob=1E5,kd=["CALL"]);for(void 0!==Ue&&a.g(fa+" instructions earlier:");0<ob&&aa!=a.na;){var Ye=Da[aa++];if(null==Ye.G)break;var Nb=X(Ye.G),dg=fa--,Ze=sf(a,Nb,"history",dg);(!kd.length||0<=Ze.indexOf(kd[0]))&&a.g(Ze);Nb.Ub&&(aa+=Nb.Ub,ob-=Nb.Ub,fa-=Nb.Ub);aa>=Da.length&&(aa=0);a.eb=fa;Xe++;ob--}}Xe||(a.g("no "+We+"history available"),a.eb=void 0)}else{var rc=ze(a,Ba);if(rc){var sc=0;Xa&&("l"==Xa.charAt(0)&&(Xa=Xa.substr(1)||cg),sc=yf(a,Xa)>>>0,65536<sc&&(sc=65536));for(var Ya= var jd=[];"call"==Ue&&(ob=1E5,jd=["CALL"]);for(void 0!==Te&&a.g(ga+" instructions earlier:");0<ob&&ba!=a.na;){var Xe=Da[ba++];if(null==Xe.G)break;var Mb=Y(Xe.G),cg=ga--,Ye=rf(a,Mb,"history",cg);(!jd.length||0<=Ye.indexOf(jd[0]))&&a.g(Ye);Mb.Ub&&(ba+=Mb.Ub,ob-=Mb.Ub,ga-=Mb.Ub);ba>=Da.length&&(ba=0);a.eb=ga;We++;ob--}}We||(a.g("no "+Ve+"history available"),a.eb=void 0)}else{var qc=ye(a,aa);if(qc){var rc=0;Wa&&("l"==Wa.charAt(0)&&(Wa=Wa.substr(1)||bg),rc=xf(a,Wa)>>>0,65536<rc&&(rc=65536));for(var Xa=
"",tc="dd"==sa?4:"dw"==sa?2:1,uc=tc*sc||128,eg=uc+15>>4||1;eg--&&0<uc;){var vc=0,ld=0,Ob,Pb="",md="",Ba=Z(rc.G);for(Ob=16;0<Ob&&0<uc;Ob--){var wc=a.Y(rc,1),vc=vc|wc<<(ld++<<3);ld==tc&&(Pb+=n(vc,2*tc),Pb+=1==tc?9==Ob?"-":" ":" ",vc=ld=0);md+=32<=wc&&128>wc?String.fromCharCode(wc):".";uc--}Ya&&(Ya+="\n");Ya+=Ba+" "+Pb+(0==Ob?" "+md:"")}Ya&&a.g(Ya);a.bb=rc}}}}break;case "e":if("else"==f[0])break;var xc=1,$e=255,af=a.Y,bf=a.qa;"ew"==f[0]&&(xc=2,$e=65535,af=a.Qa,bf=a.Rb);var cf=xc<<1,df=f[1];if(null== "",sc="dd"==Aa?4:"dw"==Aa?2:1,tc=sc*rc||128,dg=tc+15>>4||1;dg--&&0<tc;){var uc=0,kd=0,Nb,Ob="",ld="",aa=Z(qc.G);for(Nb=16;0<Nb&&0<tc;Nb--){var vc=a.Y(qc,1),uc=uc|vc<<(kd++<<3);kd==sc&&(Ob+=n(uc,2*sc),Ob+=1==sc?9==Nb?"-":" ":" ",uc=kd=0);ld+=32<=vc&&128>vc?String.fromCharCode(vc):".";tc--}Xa&&(Xa+="\n");Xa+=aa+" "+Ob+(0==Nb?" "+ld:"")}Xa&&a.g(Xa);a.bb=qc}}}}break;case "e":if("else"==f[0])break;var wc=1,Ze=255,$e=a.Y,af=a.qa;"ew"==f[0]&&(wc=2,Ze=65535,$e=a.Qa,af=a.Rb);var bf=wc<<1,cf=f[1];if(null==
df)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var yc=ze(a,df);if(yc)for(var zc=2;zc<f.length;zc++){var Qb=Ee(a,f[zc]);if(void 0===Qb){a.g("unrecognized value: "+f[zc]);break}Qb&~$e&&a.g("warning: "+n(Qb)+" exceeds "+xc+"-byte value");var fg=af.call(a,yc);a.g("changing "+Z(yc.G)+" from 0x"+n(fg,cf)+" to 0x"+n(Qb,cf));bf.call(a,yc,Qb,xc)}}break;case "f":Df(a,f[1]);break;case "g":a:{var ef=f[1],gg=b;if(void 0!==ef){var nd= cf)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var xc=ye(a,cf);if(xc)for(var yc=2;yc<f.length;yc++){var Pb=De(a,f[yc]);if(void 0===Pb){a.g("unrecognized value: "+f[yc]);break}Pb&~Ze&&a.g("warning: "+n(Pb)+" exceeds "+wc+"-byte value");var eg=$e.call(a,xc);a.g("changing "+Z(xc.G)+" from 0x"+n(eg,bf)+" to 0x"+n(Pb,bf));af.call(a,xc,Pb,wc)}}break;case "f":Cf(a,f[1]);break;case "g":a:{var df=f[1],fg=b;if(void 0!==df){var md=
ze(a,ef,!0);if(!nd)break a;Fe(a,nd,gg);a.Va(a.A,nd,!0)}a.$a(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var od;if(a.C.va)od="halting",a.ka();else{if(kb(a,!0))break a;od="already halted"}c||a.g(od)}break;case "i":if("if"==f[0]){var pd;var Rb=b.substr(2),Rb=ka(Rb);Ee(a,Rb)?(c||a.g("true: "+Rb),pd=!0):(c||a.g("false: "+Rb),pd=!1);pd||(d=!1);break}if("int"==f[0]){var Ac;var hg=f[1];if(a.b.ta&512){var qd=Ee(a,hg);null==qd?Ac=!1:(a.g("requesting interrupt level "+qd),gd(a.b, ye(a,df,!0);if(!md)break a;Ee(a,md,fg);a.Va(a.A,md,!0)}a.$a(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var nd;if(a.C.va)nd="halting",a.ka();else{if(jb(a,!0))break a;nd="already halted"}c||a.g(nd)}break;case "i":if("if"==f[0]){var od;var Qb=b.substr(2),Qb=ka(Qb);De(a,Qb)?(c||a.g("true: "+Qb),od=!0):(c||a.g("false: "+Qb),od=!1);od||(d=!1);break}if("int"==f[0]){var zc;var gg=f[1];if(a.b.ta&512){var pd=De(a,gg);null==pd?zc=!1:(a.g("requesting interrupt level "+pd),fd(a.b,
qd),Ac=!0)}else a.g("interrupts disabled (use rif=1 to enable)"),Ac=!1;Ac||(d=!1);break}var rd=f[1];if(rd&&"?"!=rd){var sd=yf(a,rd);if(void 0!==sd){var ig=Eb(a.B,sd);a.g(r(sd)+": "+ca(ig))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var jg=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var td=0,ff=X(),Sb=X(a.b.ia);for(a.g("stack trace for "+ pd),zc=!0)}else a.g("interrupts disabled (use rif=1 to enable)"),zc=!1;zc||(d=!1);break}var qd=f[1];if(qd&&"?"!=qd){var rd=xf(a,qd);if(void 0!==rd){var hg=Db(a.B,rd);a.g(t(rd)+": "+("0x"+n(hg,2)))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var ig=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var sd=0,ef=Y(),Rb=Y(a.b.ia);for(a.g("stack trace for "+
Z(Sb.G));10>td;){for(var Za=null,kg=256;65536>Sb.G>>>0;){ff.G=a.Qa(Sb,2);if(null==Sb.G||!kg--)break;for(var lg=a,Bc=ff,gf=null,Tb=Bc.G,hf=Tb,ud=1;6>=ud&&Tb;ud++){if(2<ud){Bc.G=Tb;var Cc=sf(lg,Bc);if(0<=Cc.indexOf("CALL")){var jf=Cc.indexOf(" ");if(Tb+(Cc.indexOf(" ",jf+1)-jf-1)/2==hf){gf=Cc;break}}}Tb--}Bc.G=hf;if(Za=gf)break}if(!Za||null==Za)break;var kf=null;if("ks"==jg){var lf=Za.match(/[0-9A-F]+$/);lf&&(kf=Ff(a,lf[0]))}Za=ja(Za,50)+" ;"+(kf||"stack="+Z(Sb.G));a.g(Za);td++}td||a.g("no return addresses found")}break; Z(Rb.G));10>sd;){for(var Ya=null,jg=256;65536>Rb.G>>>0;){ef.G=a.Qa(Rb,2);if(null==Rb.G||!jg--)break;for(var kg=a,Ac=ef,ff=null,Sb=Ac.G,gf=Sb,td=1;6>=td&&Sb;td++){if(2<td){Ac.G=Sb;var Bc=rf(kg,Ac);if(0<=Bc.indexOf("CALL")){var hf=Bc.indexOf(" ");if(Sb+(Bc.indexOf(" ",hf+1)-hf-1)/2==gf){ff=Bc;break}}}Sb--}Ac.G=gf;if(Ya=ff)break}if(!Ya||null==Ya)break;var jf=null;if("ks"==ig){var kf=Ya.match(/[0-9A-F]+$/);kf&&(jf=Ef(a,kf[0]))}Ya=ja(Ya,50)+" ;"+(jf||"stack="+Z(Rb.G));a.g(Ya);sd++}sd||a.g("no return addresses found")}break;
case "l":if("ln"==f[0]){Ff(a,f[1],!0);break}break;case "m":a:{var Ea,Fa=null,P=f[1];"?"==P&&(P=void 0);if(void 0!==P){var Pa=0;if("all"==P)Pa=1878917119,P=null;else if("on"==P)Fa=!0,P=null;else if("off"==P)Fa=!1,P=null;else{"keys"==P&&(P="key");"kbd"==P&&(P="keyboard");for(Ea in we)if(P==Ea){Pa=we[Ea];Fa=!!(a.oa&Pa);break}if(!Pa){a.g("unknown message category: "+P);break a}}if(Pa)if("on"==f[2])a.oa|=Pa,Fa=!0;else if("off"==f[2]&&(a.oa&=~Pa,Fa=!1,1073741824==Pa)){for(var vd=0;vd<a.Fa.length;vd++)a.g(a.Fa[vd]); case "l":if("ln"==f[0]){Ef(a,f[1],!0);break}break;case "m":a:{var Ea,Fa=null,P=f[1];"?"==P&&(P=void 0);if(void 0!==P){var Pa=0;if("all"==P)Pa=1878917119,P=null;else if("on"==P)Fa=!0,P=null;else if("off"==P)Fa=!1,P=null;else{"keys"==P&&(P="key");"kbd"==P&&(P="keyboard");for(Ea in ve)if(P==Ea){Pa=ve[Ea];Fa=!!(a.oa&Pa);break}if(!Pa){a.g("unknown message category: "+P);break a}}if(Pa)if("on"==f[2])a.oa|=Pa,Fa=!0;else if("off"==f[2]&&(a.oa&=~Pa,Fa=!1,1073741824==Pa)){for(var ud=0;ud<a.Fa.length;ud++)a.g(a.Fa[ud]);
a.Fa=[]}}var mg=0,Qa="";for(Ea in we)if(!P||P==Ea){var ng=!!(a.oa&we[Ea]);if(null===Fa||Fa==ng)Qa&&(Qa+=","),++mg%10||(Qa+="\n\t"),"key"==Ea&&(Ea="keys"),Qa+=Ea}void 0===P&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Fa?Fa?"messages on: ":"messages off: ":"message categories:\n\t")+(Qa||"none"));pe(a)}break;case "o":var wd=f[1],og=f[2];if(wd&&"?"!=wd){var xd=yf(a,wd,"port #"),yd=yf(a,og);void 0!==xd&&void 0!==yd&&(Ib(a.B,xd,yd),a.g(r(xd)+": "+ca(yd)))}else a.g("output commands:"), a.Fa=[]}}var lg=0,Qa="";for(Ea in ve)if(!P||P==Ea){var mg=!!(a.oa&ve[Ea]);if(null===Fa||Fa==mg)Qa&&(Qa+=","),++lg%10||(Qa+="\n\t"),"key"==Ea&&(Ea="keys"),Qa+=Ea}void 0===P&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Fa?Fa?"messages on: ":"messages off: ":"message categories:\n\t")+(Qa||"none"));oe(a)}break;case "o":var vd=f[1],ng=f[2];if(vd&&"?"!=vd){var wd=xf(a,vd,"port #"),xd=xf(a,ng);void 0!==wd&&void 0!==xd&&(Hb(a.B,wd,xd),a.g(t(wd)+": "+("0x"+n(xd,
a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");break;case "p":if("print"==f[0]){Hf(a,b.substr(5));break}var mf="pr"==f[0]?1:0,pg=1+mf;if(a.ba)a.g("step in progress");else{var zd=X(a.b.N);switch(a.Y(zd)){case 205:a.ba=pg,Ae(zd,3)}a.ba?(a.Va(a.A,zd,!0),a.$a()||(a.w&&a.w.Eb(),a.ba=0)):If(a,mf?"tr":"t")}break;case "r":if("reset"==b){a.w&&a.w.reset();break}Ne(a,f);break;case "s":Gf(a,f);break;case "t":If(a,f[0],f[1]);break;case "u":Oe(a,f[1],f[2], 2))))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");break;case "p":if("print"==f[0]){Gf(a,b.substr(5));break}var lf="pr"==f[0]?1:0,og=1+lf;if(a.ba)a.g("step in progress");else{var yd=Y(a.b.N);switch(a.Y(yd)){case 205:a.ba=og,ze(yd,3)}a.ba?(a.Va(a.A,yd,!0),a.$a()||(a.w&&a.w.Eb(),a.ba=0)):Hf(a,lf?"tr":"t")}break;case "r":if("reset"==b){a.w&&a.w.reset();break}Me(a,f);break;case "s":Ff(a,f);break;case "t":Hf(a,f[0],
8);break;case "v":if("var"==f[0]){Ef(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.23.3 ("+a.b.vc+",RELEASE"+(pb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(ra());break;case "?":if(f[1]){Hf(a,b.substr(1));break}var Ub="commands:",Ad;for(Ad in re)Ub+="\n"+ja(Ad,9)+re[Ad];hd(a)||(Ub+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Ub);break;default:a.g("unknown command: "+b),d=!1}}}catch(nf){a.g("debugger error: "+(nf.stack||nf.message)),d=!1}return d} f[1]);break;case "u":Ne(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Df(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.23.3 ("+a.b.vc+",RELEASE"+(mb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(ra());break;case "?":if(f[1]){Gf(a,b.substr(1));break}var Tb="commands:",zd;for(zd in qe)Tb+="\n"+ja(zd,9)+qe[zd];gd(a)||(Tb+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Tb);break;default:a.g("unknown command: "+b),d=!1}}}catch(mf){a.g("debugger error: "+(mf.stack||mf.message)),d=!1}return d}
function mc(a,b,c){b=Ge(a,b,c);for(var d in b)if(!rf(a,b[d]))return!1;return!0}Ka(function(){for(var a=A(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new me(d);fb(d,c)}});function H(a,b,c){this.id=a.id;this.key=Kf(a,b,c);this.H=a.H;Lf(this,a.zc)}function Kf(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a} function lc(a,b,c){b=Fe(a,b,c);for(var d in b)if(!qf(a,b[d]))return!1;return!0}Ja(function(){for(var a=A(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new le(d);eb(d,c)}});function G(a,b,c){this.id=a.id;this.key=Jf(a,b,c);this.I=a.I;Kf(this,a.zc)}function Jf(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}
H.prototype={constructor:H,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Lf(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}}}; G.prototype={constructor:G,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Kf(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 Lf(a,b){a[a.id]={};b&&I(a,"parms",b);a.b=!1}function Mf(a){var b=!0;if(va()){var c=JSON.stringify(a[a.id]);xa(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Nf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function Of(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:va()&&(b=wa(a.key))?(a[a.id]=b,a.b=!0):!1}function Pf(a,b){return a[a.id][b]||null}function I(a,b,c){try{a[a.id][b]=c}catch(d){}} function Kf(a,b){a[a.id]={};b&&H(a,"parms",b);a.b=!1}function Lf(a){var b=!0;if(ua()){var c=JSON.stringify(a[a.id]);wa(a.key,c)||(u("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Mf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){u(c.message||c),b=!1}return b}function Nf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:ua()&&(b=va(a.key))?(a[a.id]=b,a.b=!0):!1}function Of(a,b){return a[a.id][b]||null}function H(a,b,c){try{a[a.id][b]=c}catch(d){}}
function Qf(a,b,c){u.call(this,"Computer",a,Qf,67108864);this.C.sa=!1;Rf(this,b);this.ba=jc(this,"autoPower",a);this.D=0;this.ma=a.busWidth||a.buswidth;this.w=Sf;this.P=null;this.M=this.fa=!1;this.na=jc(this,"url")||"";(Math.random()+.1).toString(36);this.A=Tf(this);if(this.b=eb("CPU",this.id)){this.H=eb("Debugger",this.id);this.J=[];for(b=null;b=sb(this,"Video",b);)this.J.push(b);this.B=new ub({id:this.Sb+".bus",busWidth:this.ma},this.b,this.H);var d,e=db(this.id);if((this.F=eb("Panel",this.id))&& function Pf(a,b,c){v.call(this,"Computer",a,Pf,67108864);this.C.sa=!1;Qf(this,b);this.ba=ic(this,"autoPower",a);this.D=0;this.la=a.busWidth||a.buswidth;this.w=Rf;this.P=null;this.K=this.fa=!1;this.na=ic(this,"url")||"";(Math.random()+.1).toString(36);this.A=Sf(this);if(this.b=db("CPU",this.id)){this.I=db("Debugger",this.id);this.J=[];for(b=null;b=rb(this,"Video",b);)this.J.push(b);this.B=new tb({id:this.Sb+".bus",busWidth:this.la},this.b,this.I);var d,e=cb(this.id);if((this.F=db("Panel",this.id))&&
this.F.Ba)for(b=0;b<e.length;b++)d=e[b],d.ga=this.F.ga,d.g=this.F.g,d.Ba=this.F.Ba;this.g("PC8080 v1.23.3\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Na&&d.Na(this,this.B,this.b,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.O=d:this.w=parseInt(d,10));var f;if(a=jc(this,"state")||(f=!0,a.state))b=this.da=a,f||(this.M=!0,this.w=Sf),this.w&&(this.Z=new H(this,"1.23.3"),Of(this.Z)? this.F.Ba)for(b=0;b<e.length;b++)d=e[b],d.ga=this.F.ga,d.g=this.F.g,d.Ba=this.F.Ba;this.g("PC8080 v1.23.3\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Na&&d.Na(this,this.B,this.b,this.I);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.O=d:this.w=parseInt(d,10));var f;if(a=ic(this,"state")||(f=!0,a.state))b=this.da=a,f||(this.K=!0,this.w=Rf),this.w&&(this.Z=new G(this,"1.23.3"),Nf(this.Z)?
b=null:delete this.Z);!b&&this.w&&(b=Uf(this))&&(this.M=!0);if(b){var h=this;pa(b,null,!0,function(a,b,c){c?(h.O=null,h.M=!1,h.ga("Unable to load machine state from server (error "+c+(b?": "+ka(b):"")+")")):(h.P=b,h.fa=!0);E(h)})}else E(this);this.K.power||(this.ba=!0);!c&&this.ba&&Vf(this,this.Cb)}else t("Unable to find CPU component")}ab(Qf);var Sf=0;function Rf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.L=b} b=null:delete this.Z);!b&&this.w&&(b=Tf(this))&&(this.K=!0);if(b){var h=this;pa(b,null,!0,function(a,b,c){c?(h.O=null,h.K=!1,h.ga("Unable to load machine state from server (error "+c+(b?": "+ka(b):"")+")")):(h.P=b,h.fa=!0);D(h)})}else D(this);this.L.power||(this.ba=!0);!c&&this.ba&&Uf(this,this.Cb)}else u("Unable to find CPU component")}$a(Pf);var Rf=0;function Qf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.M=b}
function jc(a,b,c){var d=b.toLowerCase(),d=Ta[b]||Ta[d];void 0===d&&a.L&&(d=a.L[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Vf(a,b,c){for(var d=db(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!lb(f)){lb(f,function(){Vf(a,b,c)});return}}b.call(a,c)} function ic(a,b,c){var d=b.toLowerCase(),d=Sa[b]||Sa[d];void 0===d&&a.M&&(d=a.M[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Uf(a,b,c){for(var d=cb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!kb(f)){kb(f,function(){Uf(a,b,c)});return}}b.call(a,c)}
function Wf(a,b){var c=new H(a,"1.23.3","validate");if(Of(c)&&Nf(c)){var d=Pf(c,"timestamp"),e=b?Pf(b,"timestamp"):"unknown";d!=e&&(a.ga("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Qf.prototype; function Vf(a,b){var c=new G(a,"1.23.3","validate");if(Nf(c)&&Mf(c)){var d=Of(c,"timestamp"),e=b?Of(b,"timestamp"):"unknown";d!=e&&(a.ga("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Pf.prototype;
m.Cb=function(a){void 0===a&&(a=this.w||(this.P?1:Sf));if(!this.D){this.D++;var b=!1,c=!1;this.ea=!1;var d=this.Z||new H(this,"1.23.3");if(-1==a)b=!0;else if(a>Sf){if(Of(d,this.P)){this.I=new H(this,"1.23.3","failsafe");Of(this.I)&&(Xf(this,d),a=2,Lf(this.I));I(this.I,"timestamp",na());Mf(this.I);var e=this.w&&!this.M;if(1==a||ta("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=Nf(d)){var f=Pf(d,"code"),h=Pf(d,"data");f&&("ok"==f?Of(d,h):("error"==f&& m.Cb=function(a){void 0===a&&(a=this.w||(this.P?1:Rf));if(!this.D){this.D++;var b=!1,c=!1;this.ea=!1;var d=this.Z||new G(this,"1.23.3");if(-1==a)b=!0;else if(a>Rf){if(Nf(d,this.P)){this.H=new G(this,"1.23.3","failsafe");Nf(this.H)&&(Wf(this,d),a=2,Kf(this.H));H(this.H,"timestamp",na());Lf(this.H);var e=this.w&&!this.K;if(1==a||sa("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=Mf(d)){var f=Of(d,"code"),h=Of(d,"data");f&&("ok"==f?Nf(d,h):("error"==f&&
"no machine state"!=h?(this.ga("Error: "+h),"unable to verify user"==h&&(xa("user",""),this.A=null)):this.g(f+": "+h),Lf(d),Of(d)?(c=Nf(d),e=!0):c=!1))}e&&Wf(this,c?d:null)}else 2==a&&d.clear()}else Wf(this);delete this.P;delete this.Z}e=db(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=Yf(this,h,d,b,c));b=[d,a,c];-1!=a?Vf(this,this.qc,b):this.qc(b)}}; "no machine state"!=h?(this.ga("Error: "+h),"unable to verify user"==h&&(wa("user",""),this.A=null)):this.g(f+": "+h),Kf(d),Nf(d)?(c=Mf(d),e=!0):c=!1))}e&&Vf(this,c?d:null)}else 2==a&&d.clear()}else Vf(this);delete this.P;delete this.Z}e=cb(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=Xf(this,h,d,b,c));b=[d,a,c];-1!=a?Uf(this,this.qc,b):this.qc(b)}};
function Yf(a,b,c,d,e){if(!b.C.sa){b.C.sa=!0;if(b.Aa){var f=null;e&&((f=Pf(c,b.id))||(f=Pf(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Aa(f,d)&&f&&(t("Unable to restore state for "+b.type),a.da&&!a.fa?(c.clear(),a.w=Sf,window&&window.location.reload()):a.ea=!0,b.Aa(null),e=!1)}if(!d&&b.fc)for(a=b.fc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e} function Xf(a,b,c,d,e){if(!b.C.sa){b.C.sa=!0;if(b.Aa){var f=null;e&&((f=Of(c,b.id))||(f=Of(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Aa(f,d)&&f&&(u("Unable to restore state for "+b.type),a.da&&!a.fa?(c.clear(),a.w=Rf,window&&window.location.reload()):a.ea=!0,b.Aa(null),e=!1)}if(!d&&b.fc)for(a=b.fc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
m.qc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ra=!0;this.C.sa=!0;var d=this.K.power;d&&(d.textContent="Shutdown");this.b&&(Yf(this,this.b,b,c,a),oc(this.b));this.ea&&(Xf(this,b),b.clear());!c&&this.I&&(this.I.clear(),delete this.I);this.D=0}; m.qc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ra=!0;this.C.sa=!0;var d=this.L.power;d&&(d.textContent="Shutdown");this.b&&(Xf(this,this.b,b,c,a),nc(this.b));this.ea&&(Wf(this,b),b.clear());!c&&this.H&&(this.H.clear(),delete this.H);this.D=0};
function Xf(a,b){if(ta("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.A||"",d=b.toString(),e={app:"PC8080",ver:"1.23.3"};e.url=a.na;e.user=c;e.type="bug";e.data=d;pa("http://www.pcjs.org/api/v1/report",e,!0)}} function Wf(a,b){if(sa("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.A||"",d=b.toString(),e={app:"PC8080",ver:"1.23.3"};e.url=a.na;e.user=c;e.type="bug";e.data=d;pa("http://www.pcjs.org/api/v1/report",e,!0)}}
function Jf(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new H(a,"1.23.3"),h=new H(a,"1.23.3","validate"),g=na();I(h,"timestamp",g);I(f,"timestamp",g);I(f,"version","1.23.3");I(f,"url",window?window.location.href:null);I(f,"browser",ra());a.b&&a.b.Da&&(c&&a.b.ka(),d=a.b.Da(b,c),"object"===typeof d&&I(f,a.b.id,d),c&&(a.b.C.sa=!1,!1===d&&(e=null)));for(var g=db(a.id),k=0;k<g.length;k++){var l=g[k];l.C.sa&&(l.Da&&(d=l.Da(b,c),"object"===typeof d&&I(f,l.id,d)),c&&(l.C.sa=!1,!1===d&&(e=null)))}e&& function If(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new G(a,"1.23.3"),h=new G(a,"1.23.3","validate"),g=na();H(h,"timestamp",g);H(f,"timestamp",g);H(f,"version","1.23.3");H(f,"url",window?window.location.href:null);H(f,"browser",ra());a.b&&a.b.Da&&(c&&a.b.ka(),d=a.b.Da(b,c),"object"===typeof d&&H(f,a.b.id,d),c&&(a.b.C.sa=!1,!1===d&&(e=null)));for(var g=cb(a.id),k=0;k<g.length;k++){var l=g[k];l.C.sa&&(l.Da&&(d=l.Da(b,c),"object"===typeof d&&H(f,l.id,d)),c&&(l.C.sa=!1,!1===d&&(e=null)))}e&&
(c?(g=d=!1,b?(a.A&&Zf(a,a.A,f.toString()),Mf(h)&&Mf(f)||(e=null,d=g=!0)):a.w&&(d=!0,g=3==a.w),d&&f.clear(g)):e=f.toString());c&&(a.C.sa=!1,b=a.K.power)&&(b.textContent="Power");a.D=0;return e}m.reset=function(){this.B&&this.B.reset&&(hb(this,"Resetting "+this.B.type),this.B.reset());for(var a=db(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.B&&c.reset&&(hb(this,"Resetting "+c.type),c.reset())}}; (c?(g=d=!1,b?(a.A&&Yf(a,a.A,f.toString()),Lf(h)&&Lf(f)||(e=null,d=g=!0)):a.w&&(d=!0,g=3==a.w),d&&f.clear(g)):e=f.toString());c&&(a.C.sa=!1,b=a.L.power)&&(b.textContent="Power");a.D=0;return e}m.reset=function(){this.B&&this.B.reset&&(gb(this,"Resetting "+this.B.type),this.B.reset());for(var a=cb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.B&&c.reset&&(gb(this,"Resetting "+c.type),c.reset())}};
m.start=function(a,b){for(var c=db(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var c=db(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}}; m.start=function(a,b){for(var c=cb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var c=cb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
m.ja=function(a,b,c){var d=this;switch(b){case "power":return this.K[b]=c,c.onclick=function(){d.D||(d.C.sa?Jf(d,!1,!0):Vf(d,d.Cb))},!0;case "reset":return this.K[b]=c,c.onclick=function(){if(d.C.sa&&!d.D)if(d.w&&!d.O){var a=ta("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Jf(d,a,!0);!a&&d.da?window&&window.location.reload():d.Cb(Sf)}else d.reset(),d.b&&oc(d.b)},!0;case "save":if(ga(qa(),"pcjs.org")){c.parentNode.removeChild(c); m.ja=function(a,b,c){var d=this;switch(b){case "power":return this.L[b]=c,c.onclick=function(){d.D||(d.C.sa?If(d,!1,!0):Uf(d,d.Cb))},!0;case "reset":return this.L[b]=c,c.onclick=function(){if(d.C.sa&&!d.D)if(d.w&&!d.O){var a=sa("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");If(d,a,!0);!a&&d.da?window&&window.location.reload():d.Cb(Rf)}else d.reset(),d.b&&nc(d.b)},!0;case "save":if(fa(qa(),"pcjs.org")){c.parentNode.removeChild(c);
break}this.K[b]=c;c.onclick=function(){var a=Tf(d,!0);if(a){var b=!!(d.w&&!d.O||d.da),c=Jf(d,b);b?Zf(d,a,c):d.ga("Resume disabled, machine state not saved")}};return!0}return!1}; break}this.L[b]=c;c.onclick=function(){var a=Sf(d,!0);if(a){var b=!!(d.w&&!d.O||d.da),c=If(d,b);b?Yf(d,a,c):d.ga("Resume disabled, machine state not saved")}};return!0}return!1};
function Tf(a,b){var c=a.A;c||(c=wa("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=$f(a,c))||a.ga("The user ID is invalid."))):b&&a.ga("Browser local storage is not available"));return c} function Sf(a,b){var c=a.A;c||(c=va("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=Zf(a,c))||a.ga("The user ID is invalid."))):b&&a.ga("Browser local storage is not available"));return c}
function $f(a,b){a.A=null;var c=pa(qa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(xa("user",c.data),a.A=c.data)}catch(e){t(e.message+" ("+d+")")}return a.A}function Uf(a){var b=null;a.A&&(b=qa()+"/api/v1/user?req=load&user="+a.A+"&state="+Kf(a,"1.23.3"));return b} function Zf(a,b){a.A=null;var c=pa(qa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(wa("user",c.data),a.A=c.data)}catch(e){u(e.message+" ("+d+")")}return a.A}function Tf(a){var b=null;a.A&&(b=qa()+"/api/v1/user?req=load&user="+a.A+"&state="+Jf(a,"1.23.3"));return b}
function Zf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Kf(a,"1.23.3");d.data=c;b=pa(qa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ga("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.ga(c),xa("user",""),a.A=null)}} function Yf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Jf(a,"1.23.3");d.data=c;b=pa(qa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ga("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.ga(c),wa("user",""),a.A=null)}}
function sb(a,b,c){a=db(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.Eb=function(a){if(this.J.length){var b=0,c=0;a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.J[0];d.Ga&&d.Ga.focus();a&&window&&window.scrollTo(b,c)}};m.Ea=function(a){this.b&&this.b.Ea(a);this.F&&this.F.Ea(a)}; function rb(a,b,c){a=cb(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}m.Eb=function(a){if(this.J.length){var b=0,c=0;a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.J[0];d.Fa&&d.Fa.focus();a&&window&&window.scrollTo(b,c)}};m.Ea=function(a){this.b&&this.b.Ea(a);this.F&&this.F.Ea(a)};
function Gc(a,b){for(var c=0;c<a.J.length;c++){var d=a.J[c],e=!0;if(0<=b){d.Tb&&(120==d.Tb?b&1?(gd(d.b,2),e=!1):gd(d.b,1):gd(d.b,4));var f;if(f=e&&d.Fa){f=d.B;for(var h=d.Ta,g=!0,k=d.xa>>>f.la;0<h&&k<f.W.length;)f.W[k].La&&(f.W[k].La=g=!1,f.W[k].sc=!0),h-=f.Ca,k++;f=g}f&&(e=!1)}if(e)if(1<d.pa)switch(d.da){case 2:ge(d)}else{var g=d.xa,k=g+d.Ta,l=0,p=0,q=0,e=d.J,y=0;f=d.ba;var x=h=0,w=d.Ka,B=(1<<w)-1;d.jd&&(w=-w,x=16+w);for(;g<k;){var v=Ab(d.B,g);if(d.Fa&&v===d.ma[l])p+=d.nc;else{d.ma[l]=v;var K=x; function Fc(a,b){for(var c=0;c<a.J.length;c++){var d=a.J[c],e=!0;if(0<=b){d.Tb&&(120==d.Tb?b&1?(fd(d.b,2),e=!1):fd(d.b,1):fd(d.b,4));var f;if(f=e&&d.xa){f=d.B;for(var h=d.Ta,g=!0,k=d.wa>>>f.ma;0<h&&k<f.W.length;)f.W[k].La&&(f.W[k].La=g=!1,f.W[k].sc=!0),h-=f.Ca,k++;f=g}f&&(e=!1)}if(e)if(1<d.pa)switch(d.ea){case 2:fe(d)}else{var g=d.wa,k=g+d.Ta,l=0,p=0,q=0,e=d.K,r=0;f=d.da;var z=h=0,w=d.Sa,J=(1<<w)-1;d.kd&&(w=-w,z=16+w);for(;g<k;){var x=zb(d.B,g);if(d.xa&&x===d.J[l])p+=d.nc;else{d.J[l]=x;var K=z;K&&
K&&(v=v>>8|(v&255)<<8);p<e&&(e=p);for(var D=d.nc;D--;){var Y=v>>K&B;fe(d,d.lc,p++,q,Y);K+=w}p>y&&(y=p);q<f&&(f=q);q>=h&&(h=q+1)}g+=2;l++;if(p>=d.J&&(p=0,q++,q>d.ba))break}d.Fa=!0;e<d.J&&(g=y-e,h-=f,d.D&&(k=e,l=g,e=f,g=h,f=d.J-(k+l),h=l),d.cb.putImageData(d.lc,0,0,e,f,g,h),d.F.drawImage(d.L,0,0,d.L.width,d.L.height,0,0,d.Z,d.P))}}} (x=x>>8|(x&255)<<8);p<e&&(e=p);for(var B=d.nc;B--;){var S=x>>K&J;ee(d,d.lc,p++,q,S);K+=w}p>r&&(r=p);q<f&&(f=q);q>=h&&(h=q+1)}g+=2;l++;if(p>=d.K&&(p=0,q++,q>d.da))break}d.xa=!0;e<d.K&&(g=r-e,h-=f,d.D&&(k=e,l=g,e=f,g=h,f=d.K-(k+l),h=l),d.cb.putImageData(d.lc,0,0,e,f,g,h),d.F.drawImage(d.O,0,0,d.O.width,d.O.height,0,0,d.ba,d.Z))}}}
Ka(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=z(f),h=new Qf(h,d,!0);fb(h,f);h.ba&&Vf(h,h.Cb)}});Ga.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=eb("Computer",c.id))&&c.ra&&!c.C.sa&&c.Cb(-1)}}); Ja(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=y(f),h=new Pf(h,d,!0);eb(h,f);h.ba&&Uf(h,h.Cb)}});Ba.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=db("Computer",c.id))&&c.ra&&!c.C.sa&&c.Cb(-1)}});
Ga.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=eb("Computer",c.id))&&c.C.sa&&Jf(c,!(!c.w||c.O),!0)}});var ag=0;function bg(a,b,c,d,e,f){e("Loading "+a+"...");pa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):qg(g,a,b,c,d,e,f)})} Ba.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=db("Computer",c.id))&&c.C.sa&&If(c,!(!c.w||c.O),!0)}});var $f=0;function ag(a,b,c,d,e,f){e("Loading "+a+"...");pa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):pg(g,a,b,c,d,e,f)})}
function qg(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){cb(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2")); function pg(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){bb(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?rg(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)} g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?qg(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function rg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pa(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],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]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, function qg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pa(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],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]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);rg(a,b,c)}})}else c(a,null)} "");a=a.replace(d[0],h);qg(a,b,c)}})}else c(a,null)}
function sg(a,b,c,d){function e(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ia(a))}function f(a){e("Error: "+a);k&&(--ag||Na(!0));k=!1}var h,g,k=!0;ag++;bb[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=l:q.appendChild(document.createTextNode(l));p.appendChild(q)}c|| function rg(a,b,c,d){function e(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ia(a))}function f(a){e("Error: "+a);k&&(--$f||Ma(!0));k=!1}var h,g,k=!0;$f++;ab[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=l:q.appendChild(document.createTextNode(l));p.appendChild(q)}c||
(c="/versions/pc8080/1.23.3/components.xsl");l=function(d,g){g?bg(c,null,null,!1,e,function(d,k){if(k)if(cb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--ag||Na(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--ag||Na(!0)):f("invalid machine element: "+ (c="/versions/pc8080/1.23.3/components.xsl");l=function(d,g){g?ag(c,null,null,!1,e,function(d,k){if(k)if(bb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--$f||Ma(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--$f||Ma(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?bg(b,a,d,!0,e,l):qg(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(y){f(y.message)}return k}window.embedPC8080=function(a,b,c,d){Na(!1);return sg(a,b,c,d)};window.enableEvents=Na;window.sendEvent=Oa; a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?ag(b,a,d,!0,e,l):pg(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(r){f(r.message)}return k}window.embedPC8080=function(a,b,c,d){Ma(!1);return rg(a,b,c,d)};window.enableEvents=Ma;window.sendEvent=Na;
function tg(a,b,c,d){if(!c&&b){d.push(b);a=bb[d[0]];b=null;for(var e in a)if(ga(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?pa(b,null,!0,function(a,b){ug(b,d)}):ug(null,d)}else t("Error ("+c+") requesting "+a)} function sg(a,b,c,d){if(!c&&b){d.push(b);a=ab[d[0]];b=null;for(var e in a)if(fa(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?pa(b,null,!0,function(a,b){tg(b,d)}):tg(null,d)}else u("Error ("+c+") requesting "+a)}
function ug(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=bb[f],k={},l;for(l in g){var p=g[l],q=ea(l);if("xml"==q){for(q=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=q.exec(g[l]);){var y=d[2];y&&(g[y]||(p=p.replace(d[0],"")))}d=l=da(l)}else"xsl"==q&&(e=l=da(l));k[l]=p}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g, function tg(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=ab[f],k={},l;for(l in g){var p=g[l],q=ea(l);if("xml"==q){for(q=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=q.exec(g[l]);){var r=d[2];r&&(g[r]||(p=p.replace(d[0],"")))}d=l=da(l)}else"xsl"==q&&(e=l=da(l));k[l]=p}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
"&#xA9;"),l=h,g=null,k="data:application/javascript,",k=ya("Firefox")?k+encodeURIComponent(c):k+encodeURI(c),l&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=k,g.download=l,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+l+"."):(window.open(k),c="Check your browser for a new window/tab containing the requested data"+(l?" ("+l+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n', "&#xA9;"),l=h,g=null,k="data:application/javascript,",k=xa("Firefox")?k+encodeURIComponent(c):k+encodeURI(c),l&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=k,g.download=l,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+l+"."):(window.open(k),c="Check your browser for a new window/tab containing the requested data"+(l?" ("+l+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",t(c)):t("Missing XML/XSL resources")} c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",u(c)):u("Missing XML/XSL resources")}
window.savePC=function(a,b,c){var d=eb("Computer",a),e=eb("Debugger",a);if(d){var f=Jf(d,!0),h=d.L?JSON.stringify(d.L):null;b||(b="/versions/pcjs/1.23.3/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,zc:h}))return!0;pa(b,null,!0,function(c,d,e){tg(c,d,e,[a,da(b,!0),h,f])});return!0}t("Unable to identify machine '"+a+"'");return!1};})(); window.savePC=function(a,b,c){var d=db("Computer",a),e=db("Debugger",a);if(d){var f=If(d,!0),h=d.M?JSON.stringify(d.M):null;b||(b="/versions/pcjs/1.23.3/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,zc:h}))return!0;pa(b,null,!0,function(c,d,e){sg(c,d,e,[a,da(b,!0),h,f])});return!0}u("Unable to identify machine '"+a+"'");return!1};})();

View file

@ -1,162 +1,163 @@
(function(){var k;function aa(a){var b=16,c;if(a){b||(b=16);if("$"==a.charAt(0))b=16,a=a.substr(1);else if("0x"==a.substr(0,2))b=16,a=a.substr(2);else{var d=a.charAt(a.length-1).toLowerCase();"h"==d?(b=16,d=null):"."==d&&(b=10,d=null);null==d&&(a=a.substr(0,a.length-1))}var e,d=a,f=b;(f&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):2==f&&null!==d.match(/^[01]+$/i):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c} (function(){var k;function aa(a){var b=16,c;if(a){b||(b=16);if("$"==a.charAt(0))b=16,a=a.substr(1);else if("0x"==a.substr(0,2))b=16,a=a.substr(2);else{var d=a.charAt(a.length-1).toLowerCase();"h"==d?(b=16,d=null):"."==d&&(b=10,d=null);null==d&&(a=a.substr(0,a.length-1))}var e,d=a,f=b;(f&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):2==f&&null!==d.match(/^[01]+$/i):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}
function n(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function ba(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function ca(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b} function n(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function ba(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function da(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
function da(a,b){return-1!==a.indexOf(b,a.length-b.length)}var ea={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function fa(a){return a.replace(/[&<>"']/g,function(a){return ea[a]})}var ga=Date.now||function(){return+new Date};function ha(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())} function ea(a,b){return-1!==a.indexOf(b,a.length-b.length)}var fa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ga(a){return a.replace(/[&<>"']/g,function(a){return fa[a]})}var ha=Date.now||function(){return+new Date};function ia(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function r(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"== function q(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"==
typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(l)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function ia(){return"http://"+(window?window.location.host:"www.pcjs.org")} typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(l)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function ja(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function t(a){window&&window.alert(a)}function ja(a){var b=!1;window&&(b=window.confirm(a));return b}var ka=null;function la(){if(null==ka){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ka=a}return ka}function ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b} function r(a){window&&window.alert(a)}function ka(a){var b=!1;window&&(b=window.confirm(a));return b}var la=null;function ma(){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 na(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function na(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function oa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var pa={init:[],show:[],exit:[]},qa=!1,ra=!0;function sa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function ta(a){pa.init.push(a)} function oa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function pa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var qa={init:[],show:[],exit:[]},ra=!1,sa=!0;function ta(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function ua(a){qa.init.push(a)}
function ua(a){if(ra)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){va("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function wa(a){!ra&&a?(ra=!0,qa&&xa("init")):ra=a}function xa(a){pa[a]&&ua(pa[a])}sa("onload",function(){qa=!0;ua(pa.init)});sa("onpageshow",function(){ua(pa.show)});sa(oa("Opera")||oa("iOS")?"onunload":"onbeforeunload",function(){ua(pa.exit)}); function va(a){if(sa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){wa("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function xa(a){!sa&&a?(sa=!0,ra&&ya("init")):sa=a}function ya(a){qa[a]&&va(qa[a])}ta("onload",function(){ra=!0;va(qa.init)});ta("onpageshow",function(){va(qa.show)});ta(pa("Opera")||pa("iOS")?"onunload":"onbeforeunload",function(){va(qa.exit)});
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.sb=b.comment;this.Nb=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.gb=this.id.substr(0,b),this.fb=this.id.substr(b+1)):this.fb=this.id;this[a]=c;this.j={va:!1,Fa:!1,jb:!1,S:!1,oa:!1};this.Ta=null;this.j.oa=!1;this.w={};this.K=null;w.push(this)}var ya=void 0,za={}; function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.sb=b.comment;this.Nb=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.gb=this.id.substr(0,b),this.fb=this.id.substr(b+1)):this.fb=this.id;this[a]=c;this.j={va:!1,Fa:!1,jb:!1,S:!1,oa:!1};this.Ta=null;this.j.oa=!1;this.w={};this.L=null;x.push(this)}var za=void 0,Aa={};
if(window){ya||(ya=window.location.search.substr(1));for(var Aa,Ba=/\+/g,Ca=/([^&=]+)=?([^&]*)/g;Aa=Ca.exec(ya);)za[decodeURIComponent(Aa[1].replace(Ba," "))]=decodeURIComponent(Aa[2].replace(Ba," "))}function Da(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} if(window){za||(za=window.location.search.substr(1));for(var Ba,Ca=/\+/g,Da=/([^&=]+)=?([^&]*)/g;Ba=Da.exec(za);)Aa[decodeURIComponent(Ba[1].replace(Ca," "))]=decodeURIComponent(Ba[2].replace(Ca," "))}function Ea(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function x(a,b){b||(b=u);a.prototype=Da(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var w=[],Ea={};function Fa(a,b,c){Ea[a]&&b&&(Ea[a][b]=c)}function va(a,b,c){b||t((c?c+": ":"")+a)}function Ga(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<w.length;b++){var d=w[b];a&&d.id.indexOf(a)||c.push(d)}return c} function y(a,b){b||(b=u);a.prototype=Ea(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var x=[],Fa={};function Ga(a,b,c){Fa[a]&&b&&(Fa[a][b]=c)}function wa(a,b,c){b||r((c?c+": ":"")+a)}function Ha(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<x.length;b++){var d=x[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function Ha(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<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b} function Ia(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<x.length;d++)if(c)c==x[d]&&(c=null);else if(!(a!=x[d].type||b&&x[d].id.indexOf(b)))return x[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function Ia(a,b){for(var c=z(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var l=g.split(" "),m=0;m<l.length;m++)switch(g=l[m],g){case "pc8080-binding":(g=y(h))&&g.binding&&a.R(g.type,g.binding,h,g.value),m=l.length}}}} function Ja(a,b){for(var c=A(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var l=g.split(" "),m=0;m<l.length;m++)switch(g=l[m],g){case "pc8080-binding":(g=z(h))&&g.binding&&a.R(g.type,g.binding,h,g.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 A(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},R:function(a,b,c){switch(b){case "clear":return this.w[b]||(this.w[b]=c,c.onclick=function(a){return function(){a.w.print&&(a.w.print.value="")}}(this)),!0;case "print":return this.w[b]||(this.ma=this.w[b]=c,c.value="",this.Y=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c), u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},R:function(a,b,c){switch(b){case "clear":return this.w[b]||(this.w[b]=c,c.onclick=function(a){return function(){a.w.print&&(a.w.print.value="")}}(this)),!0;case "print":return this.w[b]||(this.ma=this.w[b]=c,c.value="",this.Z=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.J=function(a){this.Y(a,this.fb)}),!0;default:return!1}},log:function(){},Y:function(){},status:function(a){this.Y(this.fb+": "+a)},J:function(a,b,c){va(a,b,c||this.type)},Z:function(){return this.j.S=!0},ba:function(a,b){b&&(this.j.S=!1);return!0}};function Ja(a,b){if(a.j.jb)return a.j.Fa&&(a.j.Fa=!1),a.j.jb=!1;if(a.j.oa)return a.Y(a.toString()+" error"),!1;a.j.Fa=b;return a.j.Fa}function A(a){if(!a.j.oa&&(a.j.va=!0,a.j.va)){var b=a.Ta;a.Ta=null;b&&b()}} this.J=function(a){this.Z(a,this.fb)}),!0;default:return!1}},log:function(){},Z:function(){},status:function(a){this.Z(this.fb+": "+a)},J:function(a,b,c){wa(a,b,c||this.type)},Y:function(){return this.j.S=!0},ba:function(a,b){b&&(this.j.S=!1);return!0}};function Ka(a,b){if(a.j.jb)return a.j.Fa&&(a.j.Fa=!1),a.j.jb=!1;if(a.j.oa)return a.Z(a.toString()+" error"),!1;a.j.Fa=b;return a.j.Fa}function B(a){if(!a.j.oa&&(a.j.va=!0,a.j.va)){var b=a.Ta;a.Ta=null;b&&b()}}
function Ka(a,b){b&&(a.j.va?b():a.Ta=b);return a.j.va} function La(a,b){b&&(a.j.va?b():a.Ta=b);return a.j.va}
var La="undefined"!==typeof ArrayBuffer,Ma=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1, var Ma="undefined"!==typeof ArrayBuffer,Na=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function Na(a){u.call(this,"Panel",a,Na)}x(Na);k=Na.prototype;k.R=function(a,b,c,d){return this.A&&this.A.R(a,b,c,d)||this.a&&this.a.R(a,b,c,d)||this.m&&this.m.R(a,b,c,d)?!0:this.parent.R.call(this,a,b,c,d)};k.ia=function(a,b,c,d){this.A=a;this.l=b;this.a=c;this.K=d;this.m=Oa(a,"Keyboard")};k.Z=function(a,b){b||Pa();return!0};k.ba=function(){return!0};k.ra=function(){}; 0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function Oa(a){u.call(this,"Panel",a,Oa)}y(Oa);k=Oa.prototype;k.R=function(a,b,c,d){return this.A&&this.A.R(a,b,c,d)||this.a&&this.a.R(a,b,c,d)||this.o&&this.o.R(a,b,c,d)?!0:this.parent.R.call(this,a,b,c,d)};k.ia=function(a,b,c,d){this.A=a;this.m=b;this.a=c;this.L=d;this.o=Pa(a,"Keyboard")};k.Y=function(a,b){b||Qa();return!0};k.ba=function(){return!0};k.ra=function(){};
function Pa(){for(var a=!1,b=z(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=y(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<w.length;h++)if(w[h].id===f){f=w[h];break a}f=null}f||(a=!0,f=new Na(e));Ia(f,d);a&&A(f)}}ta(Pa); function Qa(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=z(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<x.length;h++)if(x[h].id===f){f=x[h];break a}f=null}f||(a=!0,f=new Oa(e));Ja(f,d);a&&B(f)}}ua(Qa);
function Qa(a,b,c){u.call(this,"Bus",a,Qa);this.a=b;this.K=c;this.i=a.busWidth||16;this.u=Math.pow(2,this.i);this.h=this.u-1|0;this.c=16>=this.i?10:20>=this.i?12:24>=this.i?14:15;this.l=1<<this.c;this.v=this.l>>2;this.g=this.l-1;this.m=this.u/this.l|0;this.A=this.m-1;this.o=[];this.s=[];this.B=[];this.C=[];a=new B;Ra(a,this.K);this.b=Array(this.m);for(b=0;b<this.m;b++)this.b[b]=a;A(this)}x(Qa);Qa.prototype.reset=function(){};Qa.prototype.Z=function(a,b){b||this.reset();return!0}; function Ra(a,b,c){u.call(this,"Bus",a,Ra);this.a=b;this.L=c;this.i=a.busWidth||16;this.u=Math.pow(2,this.i);this.h=this.u-1|0;this.c=16>=this.i?10:20>=this.i?12:24>=this.i?14:15;this.m=1<<this.c;this.v=this.m>>2;this.g=this.m-1;this.l=this.u/this.m|0;this.A=this.l-1;this.o=[];this.s=[];this.B=[];this.F=[];a=new C;Sa(a,this.L);this.b=Array(this.l);for(b=0;b<this.l;b++)this.b[b]=a;B(this)}y(Ra);Ra.prototype.reset=function(){};Ra.prototype.Y=function(a,b){b||this.reset();return!0};
function Sa(a,b,c,d){for(var e=b,f=c,h=e>>>a.c;0<f&&h<a.b.length;){var g=a.b[h],l=h*a.l,m=a.l-(e-l);m>f&&(m=f);if(g&&g.size){if(g.type==d){if(e+f<=g.Ea)return g.ab+=g.Ea-e,g.Ea=e,!0;if(e>=g.Ea+g.ab){m=g.size-(e-l);m>f&&(m=f);g.ab=e-g.Ea+m;e=l+a.l;f-=m;h++;continue}}return Ta(1,e,f)}e=new B(e,m,a.l,d);Ra(e,a.K,g);a.b[h++]=e;e=l+a.l;f-=m}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Ua[d]+" at "+("0x"+n(b,4))),!0):Ta(2,b,c)} function Ta(a,b,c,d){for(var e=b,f=c,h=e>>>a.c;0<f&&h<a.b.length;){var g=a.b[h],l=h*a.m,m=a.m-(e-l);m>f&&(m=f);if(g&&g.size){if(g.type==d){if(e+f<=g.Ea)return g.ab+=g.Ea-e,g.Ea=e,!0;if(e>=g.Ea+g.ab){m=g.size-(e-l);m>f&&(m=f);g.ab=e-g.Ea+m;e=l+a.m;f-=m;h++;continue}}return Ua(1,e,f)}e=new C(e,m,a.m,d);Sa(e,a.L,g);a.b[h++]=e;e=l+a.m;f-=m}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Va[d]+" at "+("0x"+n(b,4))),!0):Ua(2,b,c)}
Qa.prototype.I=function(a){return this.b[(a&this.h)>>>this.c].Na(a&this.g,a)};function Va(a,b){return a.b[(b&a.h)>>>a.c].$a(b&a.g,b)}function Wa(a,b){var c=b&a.g,d=(b&a.h)>>>a.c;return c!=a.g?a.b[d].Uc(c,b):a.b[d++].Na(c,b)|a.b[d&a.A].Na(0,b+1)<<8}Qa.prototype.T=function(a,b){this.b[(a&this.h)>>>this.c].Oa(a&this.g,b&255,a)};function Xa(a,b,c){a.b[(b&a.h)>>>a.c].Qb(b&a.g,c&255,b)} Ra.prototype.I=function(a){return this.b[(a&this.h)>>>this.c].Na(a&this.g,a)};function Wa(a,b){return a.b[(b&a.h)>>>a.c].$a(b&a.g,b)}function Xa(a,b){var c=b&a.g,d=(b&a.h)>>>a.c;return c!=a.g?a.b[d].Vc(c,b):a.b[d++].Na(c,b)|a.b[d&a.A].Na(0,b+1)<<8}Ra.prototype.T=function(a,b){this.b[(a&this.h)>>>this.c].Oa(a&this.g,b&255,a)};function Ya(a,b,c){a.b[(b&a.h)>>>a.c].Qb(b&a.g,c&255,b)}
function Ya(a,b,c){var d=b&a.g,e=(b&a.h)>>>a.c;d!=a.g?a.b[e].Vc(d,c&65535,b):(a.b[e++].Oa(d,c&255,b),a.b[e&a.A].Oa(0,c>>8&255,b+1))}function Za(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var l=+e+d;l<=h;l++)void 0!==f.o[l]?t("Input port 0x"+n(l,4)+" already registered"):f.o[l]=[g,!1]}} function Za(a,b,c){var d=b&a.g,e=(b&a.h)>>>a.c;d!=a.g?a.b[e].Wc(d,c&65535,b):(a.b[e++].Oa(d,c&255,b),a.b[e&a.A].Oa(0,c>>8&255,b+1))}function $a(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var l=+e+d;l<=h;l++)void 0!==f.o[l]?r("Input port 0x"+n(l,4)+" already registered"):f.o[l]=[g,!1]}}
function $a(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var l=+e+d;l<=h;l++)void 0!==f.s[l]?t("Output port 0x"+n(l,4)+" already registered"):f.s[l]=[g,!1]}}function Ta(a,b,c){t("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var ab;if(La){var bb=new ArrayBuffer(2);(new DataView(bb)).setUint16(0,256,!0);ab=256===(new Uint16Array(bb))[0]}else ab=!1;var cb=ab; function ab(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var l=+e+d;l<=h;l++)void 0!==f.s[l]?r("Output port 0x"+n(l,4)+" already registered"):f.s[l]=[g,!1]}}function Ua(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var bb;if(Ma){var cb=new ArrayBuffer(2);(new DataView(cb)).setUint16(0,256,!0);bb=256===(new Uint16Array(cb))[0]}else bb=!1;var db=bb;
function B(a,b,c,d){this.id=db+=2;this.a=null;this.Ea=a;this.ab=b;this.size=c||0;this.type=d||eb;this.w=d==fb;Ra(this);this.ea=this.Gb=!1;if(c)if(La)this.c=new ArrayBuffer(c),this.l=new DataView(this.c,0,c),this.b=new Uint8Array(this.c,0,c),this.i=new Uint16Array(this.c,0,c>>1),this.a=new Int32Array(this.c,0,c>>2),gb(this,cb?hb:ib);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;gb(this,jb)}else gb(this)}var eb=0,fb=2,Ua=["NONE","RAM","ROM","VID","H/W"],db=0; function C(a,b,c,d){this.id=eb+=2;this.a=null;this.Ea=a;this.ab=b;this.size=c||0;this.type=d||fb;this.w=d==gb;Sa(this);this.ea=this.Gb=!1;if(c)if(Ma)this.c=new ArrayBuffer(c),this.m=new DataView(this.c,0,c),this.b=new Uint8Array(this.c,0,c),this.i=new Uint16Array(this.c,0,c>>1),this.a=new Int32Array(this.c,0,c>>2),hb(this,db?ib:jb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;hb(this,kb)}else hb(this)}var fb=0,gb=2,Va=["NONE","RAM","ROM","VID","H/W"],eb=0;
B.prototype={constructor:B,parent:null,save:function(){var a,b;if(La)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.l.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(La)for(b=0;b<a.length;b++)this.l.setInt32(b<<2,a[b],!0);else this.a=a;return this.ea=!0}return!1},m:function(){return 255},s:function(){},o:function(a,b){return this.Na(a++,b++)|this.Na(a,b)<<8},A:function(a,b,c){this.Oa(a++,b&255,c++);this.Oa(a,b>>8,c)},C:function(a){return this.a[a>> C.prototype={constructor:C,parent:null,save:function(){var a,b;if(Ma)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.m.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(Ma)for(b=0;b<a.length;b++)this.m.setInt32(b<<2,a[b],!0);else this.a=a;return this.ea=!0}return!1},l:function(){return 255},s:function(){},o:function(a,b){return this.Na(a++,b++)|this.Na(a,b)<<8},A:function(a,b,c){this.Oa(a++,b&255,c++);this.Oa(a,b>>8,c)},F:function(a){return this.a[a>>
2]>>>((a&3)<<3)&255},N:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},ga:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.ea=!0},ta:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<<d)|b<<d:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.ea=!0},v:function(a,b){return this.$a(a,b)},H:function(a,b){return this.Ob(a,b)},U:function(a,b,c){this.w||this.Qb(a,b,c)},ca:function(a, 2]>>>((a&3)<<3)&255},N:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},ga:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.ea=!0},ta:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<<d)|b<<d:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.ea=!0},v:function(a,b){return this.$a(a,b)},H:function(a,b){return this.Ob(a,b)},U:function(a,b,c){this.w||this.Qb(a,b,c)},ca:function(a,
b,c){this.w||this.ja(a,b,c)},u:function(a){return this.b[a]},B:function(a){return this.b[a]},G:function(a){return this.l.getUint16(a,!0)},L:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.i[a>>1]},O:function(a,b){this.b[a]=b;this.ea=!0},V:function(a,b){this.b[a]=b;this.ea=!0},ha:function(a,b){this.l.setUint16(a,b,!0);this.ea=!0},ka:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.i[a>>1]=b;this.ea=!0}}; b,c){this.w||this.ja(a,b,c)},u:function(a){return this.b[a]},B:function(a){return this.b[a]},G:function(a){return this.m.getUint16(a,!0)},K:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.i[a>>1]},O:function(a,b){this.b[a]=b;this.ea=!0},V:function(a,b){this.b[a]=b;this.ea=!0},ha:function(a,b){this.m.setUint16(a,b,!0);this.ea=!0},ka:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.i[a>>1]=b;this.ea=!0}};
function Ra(a,b,c){a.K=b;a.g=a.h=0;c&&((a.g=c.g)&&kb(a,lb,!1),(a.h=c.h)&&mb(a,lb,!1))}function mb(a,b,c){c&&a.h||(a.Oa=!a.w&&b[2]||a.s,a.Vc=!a.w&&b[3]||a.A);if(c||void 0===c)a.Qb=b[2]||a.s,a.ja=b[3]||a.A}function kb(a,b,c){c&&a.g||(a.Na=b[0]||a.m,a.Uc=b[1]||a.o);if(c||void 0===c)a.$a=b[0]||a.m,a.Ob=b[1]||a.o}function gb(a,b){b||(b=nb);kb(a,b,void 0);mb(a,b,void 0)}var nb=[],jb=[B.prototype.C,B.prototype.N,B.prototype.ga,B.prototype.ta],lb=[B.prototype.v,B.prototype.H,B.prototype.U,B.prototype.ca]; function Sa(a,b,c){a.L=b;a.g=a.h=0;c&&((a.g=c.g)&&lb(a,mb,!1),(a.h=c.h)&&nb(a,mb,!1))}function nb(a,b,c){c&&a.h||(a.Oa=!a.w&&b[2]||a.s,a.Wc=!a.w&&b[3]||a.A);if(c||void 0===c)a.Qb=b[2]||a.s,a.ja=b[3]||a.A}function lb(a,b,c){c&&a.g||(a.Na=b[0]||a.l,a.Vc=b[1]||a.o);if(c||void 0===c)a.$a=b[0]||a.l,a.Ob=b[1]||a.o}function hb(a,b){b||(b=ob);lb(a,b,void 0);nb(a,b,void 0)}var ob=[],kb=[C.prototype.F,C.prototype.N,C.prototype.ga,C.prototype.ta],mb=[C.prototype.v,C.prototype.H,C.prototype.U,C.prototype.ca];
if(La)var ib=[B.prototype.u,B.prototype.G,B.prototype.O,B.prototype.ha],hb=[B.prototype.B,B.prototype.L,B.prototype.V,B.prototype.ka]; if(Ma)var jb=[C.prototype.u,C.prototype.G,C.prototype.O,C.prototype.ha],ib=[C.prototype.B,C.prototype.K,C.prototype.V,C.prototype.ka];
function ob(a,b){u.call(this,"CPU",a,ob);var c=a.cycles||b,d=a.multiplier||1;this.c={};this.c.Aa=c;this.c.Xa=0;this.c.za=d;this.c.kb=Math.round(this.c.Aa/1E4)/100;this.c.wa=this.c.kb*this.c.za;this.j.fa=!1;this.j.Ib=!1;this.j.Fb=a.autoStart;this.j.Hb=!1;this.j.Ra=!1;this.c.Va=this.c.ya=0;this.c.Wa=a.csStart;this.c.Ga=a.csInterval;this.c.Ha=a.csStop;this.ka=this.ob.bind(this);A(this)}x(ob);var pb=["power","reset"];k=ob.prototype; function pb(a,b){u.call(this,"CPU",a,pb);var c=a.cycles||b,d=a.multiplier||1;this.c={};this.c.Aa=c;this.c.Xa=0;this.c.za=d;this.c.kb=Math.round(this.c.Aa/1E4)/100;this.c.wa=this.c.kb*this.c.za;this.j.fa=!1;this.j.Ib=!1;this.j.Fb=a.autoStart;this.j.Hb=!1;this.j.Ra=!1;this.c.Va=this.c.ya=0;this.c.Wa=a.csStart;this.c.Ga=a.csInterval;this.c.Ha=a.csStop;this.ka=this.ob.bind(this);B(this)}y(pb);var qb=["power","reset"];k=pb.prototype;
k.ia=function(a,b,c,d){this.A=a;this.l=b;this.K=d;for(b=0;b<pb.length;b++)(c=this.w[pb[b]])&&this.A.R(null,pb[b],c);this.V=(b=Oa(a,"Video"))&&Math.max(b.wc,b.ib)||60;this.G=Oa(a,"ChipSet");a=qb(a,"autoStart");null!=a&&(this.j.Fb="true"==a?!0:"false"==a?!1:!!a);A(this)};k.reset=function(){this.c.Xa=0};k.save=function(){return null};k.restore=function(){return!1}; k.ia=function(a,b,c,d){this.A=a;this.m=b;this.L=d;for(b=0;b<qb.length;b++)(c=this.w[qb[b]])&&this.A.R(null,qb[b],c);this.V=(b=Pa(a,"Video"))&&Math.max(b.xc,b.ib)||60;this.G=Pa(a,"ChipSet");a=rb(a,"autoStart");null!=a&&(this.j.Fb="true"==a?!0:"false"==a?!1:!!a);B(this)};k.reset=function(){this.c.Xa=0};k.save=function(){return null};k.restore=function(){return!1};
k.Z=function(a,b){if(!b){if(a&&this.restore){rb(this);if(!this.restore(a))return!1;sb(this)}else this.reset();this.Y("No debugger detected")}tb(this);return!0};k.ba=function(a){return a?this.save():!0};function ub(a){(a.j.Fb||void 0===a.w.run)&&a.ob(!0)}k.Jb=function(){return 0};function sb(a){void 0===a.c.Wa&&(a.c.Wa=0);void 0===a.c.Ga&&(a.c.Ga=-1);void 0===a.c.Ha&&(a.c.Ha=-1);a.j.Ra=0<=a.c.Wa&&0<a.c.Ga;a.j.Ra&&(a.c.Va=0,a.c.ya=a.c.Wa-a.O)} k.Y=function(a,b){if(!b){if(a&&this.restore){sb(this);if(!this.restore(a))return!1;tb(this)}else this.reset();this.Z("No debugger detected")}ub(this);return!0};k.ba=function(a){return a?this.save():!0};function vb(a){(a.j.Fb||void 0===a.w.run)&&a.ob(!0)}k.Jb=function(){return 0};function tb(a){void 0===a.c.Wa&&(a.c.Wa=0);void 0===a.c.Ga&&(a.c.Ga=-1);void 0===a.c.Ha&&(a.c.Ha=-1);a.j.Ra=0<=a.c.Wa&&0<a.c.Ga;a.j.Ra&&(a.c.Va=0,a.c.ya=a.c.Wa-a.O)}
k.R=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.w[b]=c;a=!0;break;case "run":this.w[b]=c;c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.j.S)a=!0;else{var b=null,c,g=Ga(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.j.va);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.j.S);c++);c==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.j.va?"powered yet":"ready yet"+(b.Ta?" (waiting for notification)":""))+".");a=!1}a&&(d.j.fa?vb(d,!0):d.ob(!0))};a=!0; k.R=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.w[b]=c;a=!0;break;case "run":this.w[b]=c;c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.j.S)a=!0;else{var b=null,c,g=Ha(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.j.va);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.j.S);c++);c==g.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.j.va?"powered yet":"ready yet"+(b.Ta?" (waiting for notification)":""))+".");a=!1}a&&(d.j.fa?wb(d,!0):d.ob(!0))};a=!0;
break;case "speed":this.w[b]=c;a=!0;break;case "setSpeed":this.w[b]=c,c.onclick=function(){wb(d,d.c.za<<1,!0)},c.textContent=this.c.wa.toFixed(2)+"Mhz",a=!0}return a};function xb(a,b,c){a.O+=b;c&&(a.N=a.a=0)} break;case "speed":this.w[b]=c;a=!0;break;case "setSpeed":this.w[b]=c,c.onclick=function(){xb(d,d.c.za<<1,!0)},c.textContent=this.c.wa.toFixed(2)+"Mhz",a=!0}return a};function yb(a,b,c){a.O+=b;c&&(a.N=a.a=0)}
function yb(a,b){var c=30;c<a.V&&(c=a.V);2>c&&(c=2);var d=1;b&&1<a.c.za&&a.c.pa&&(d=a.c.pa/a.c.kb);a.c.Kb=Math.round(1E3/30);a.c.Gc=Math.floor(a.c.Aa/c*d);a.c.mb=Math.floor(a.c.Aa/30*d);a.c.Mb=Math.floor(a.c.Aa/a.V*d);a.c.Lb=Math.floor(a.c.Aa/2*d);b||(a.c.Ka=a.c.mb,a.c.Ja=a.c.Mb,a.c.Ia=a.c.Lb);a.c.nb=0}function zb(a){return a.O+a.L+a.N-a.a}function rb(a){a.c.pa=0;a.O=a.L=a.N=a.a=0;sb(a);wb(a,1)} function zb(a,b){var c=30;c<a.V&&(c=a.V);2>c&&(c=2);var d=1;b&&1<a.c.za&&a.c.pa&&(d=a.c.pa/a.c.kb);a.c.Kb=Math.round(1E3/30);a.c.Hc=Math.floor(a.c.Aa/c*d);a.c.mb=Math.floor(a.c.Aa/30*d);a.c.Mb=Math.floor(a.c.Aa/a.V*d);a.c.Lb=Math.floor(a.c.Aa/2*d);b||(a.c.Ka=a.c.mb,a.c.Ja=a.c.Mb,a.c.Ia=a.c.Lb);a.c.nb=0}function Ab(a){return a.O+a.K+a.N-a.a}function sb(a){a.c.pa=0;a.O=a.K=a.N=a.a=0;tb(a);xb(a,1)}
function wb(a,b,c){if(void 0!==b){.8>a.c.pa/a.c.wa&&(b=1);a.c.za=b;b=a.c.kb*a.c.za;if(a.c.wa!=b){a.c.wa=b;b=a.c.wa.toFixed(2)+"Mhz";var d=a.w.setSpeed;d&&(d.textContent=b);a.Y("target speed: "+b)}c&&a.A&&Ab(a.A)}xb(a,a.L);a.L=0;a.c.xa=ga();a.c.qa=0;yb(a)} function xb(a,b,c){if(void 0!==b){.8>a.c.pa/a.c.wa&&(b=1);a.c.za=b;b=a.c.kb*a.c.za;if(a.c.wa!=b){a.c.wa=b;b=a.c.wa.toFixed(2)+"Mhz";var d=a.w.setSpeed;d&&(d.textContent=b);a.Z("target speed: "+b)}c&&a.A&&Bb(a.A)}yb(a,a.K);a.K=0;a.c.xa=ha();a.c.qa=0;zb(a)}
k.ob=function(a){if(Ja(this,!0)){if(!this.j.fa){wb(this);this.A&&this.A.start(this.c.xa,zb(this));this.j.fa=!0;this.j.Ib=!0;this.G&&this.G.start();var b=this.w.run;b&&(b.textContent="Halt");this.A&&(this.A.ra(!0),a&&Ab(this.A,!0))}this.c.nb>=this.c.Aa&&yb(this,!0);this.c.La=0;this.c.Ua=ga();this.c.qa&&(a=this.c.Ua-this.c.qa,a>this.c.Kb&&(this.c.xa+=a,this.c.xa>this.c.Ua&&(this.c.xa=this.c.Ua)));try{do{this.Pb(this.j.Ra?1:this.c.Gc);var c=this.N-this.a;this.L+=c;this.c.La+=c;xb(this,0,!0);a=c;this.j.Ra&& k.ob=function(a){if(Ka(this,!0)){if(!this.j.fa){xb(this);this.A&&this.A.start(this.c.xa,Ab(this));this.j.fa=!0;this.j.Ib=!0;this.G&&this.G.start();var b=this.w.run;b&&(b.textContent="Halt");this.A&&(this.A.ra(!0),a&&Bb(this.A,!0))}this.c.nb>=this.c.Aa&&zb(this,!0);this.c.La=0;this.c.Ua=ha();this.c.qa&&(a=this.c.Ua-this.c.qa,a>this.c.Kb&&(this.c.xa+=a,this.c.xa>this.c.Ua&&(this.c.xa=this.c.Ua)));try{do{this.Pb(this.j.Ra?1:this.c.Hc);var c=this.N-this.a;this.K+=c;this.c.La+=c;yb(this,0,!0);a=c;this.j.Ra&&
(b=!1,this.c.Va=this.c.Va+this.Jb()|0,this.c.ya-=a,0>=this.c.ya&&(this.c.ya+=this.c.Ga,b=!0),0<=this.c.Ha&&this.c.Ha<=zb(this)&&(this.c.Ga=this.c.Ha=-1,sb(this),vb(this),b=!0),b&&this.Y(zb(this)+" cycles: checksum="+n(this.c.Va)));this.c.Ja-=c;0>=this.c.Ja&&(this.c.Ja+=this.c.Mb,this.A&&Bb(this.A,this.c.Xa++),this.c.Xa>this.V&&(this.c.Xa=0));this.c.Ia-=c;0>=this.c.Ia&&(this.c.Ia+=this.c.Lb,this.A&&this.A.ra());this.c.Ka-=c;if(0>=this.c.Ka){this.c.Ka+=this.c.mb;break}}while(this.j.fa)}catch(e){vb(this); (b=!1,this.c.Va=this.c.Va+this.Jb()|0,this.c.ya-=a,0>=this.c.ya&&(this.c.ya+=this.c.Ga,b=!0),0<=this.c.Ha&&this.c.Ha<=Ab(this)&&(this.c.Ga=this.c.Ha=-1,tb(this),wb(this),b=!0),b&&this.Z(Ab(this)+" cycles: checksum="+n(this.c.Va)));this.c.Ja-=c;0>=this.c.Ja&&(this.c.Ja+=this.c.Mb,this.A&&Cb(this.A,this.c.Xa++),this.c.Xa>this.V&&(this.c.Xa=0));this.c.Ia-=c;0>=this.c.Ia&&(this.c.Ia+=this.c.Lb,this.A&&this.A.ra());this.c.Ka-=c;if(0>=this.c.Ka){this.c.Ka+=this.c.mb;break}}while(this.j.fa)}catch(e){wb(this);
tb(this);this.A&&this.A.stop(ga(),zb(this));Ja(this,!1);c=e.stack||e.message;this.j.oa=!0;this.J(c);return}c=setTimeout;a=this.ka;this.c.qa=ga();b=this.c.Kb;this.c.La&&(b=Math.round(b*this.c.La/this.c.mb));var b=b-(this.c.qa-this.c.Ua),d=this.c.qa-this.c.xa;d&&(this.c.pa=Math.round(this.L/(10*d))/100,864E5<=d&&(this.O=0,wb(this)));if(0>b||this.c.pa<this.c.wa)b=0;this.c.nb+=this.c.La;this.c.qa+=b;c(a,b)}else tb(this),this.A&&this.A.stop(ga(),zb(this))};k.Pb=function(){return 0}; ub(this);this.A&&this.A.stop(ha(),Ab(this));Ka(this,!1);c=e.stack||e.message;this.j.oa=!0;this.J(c);return}c=setTimeout;a=this.ka;this.c.qa=ha();b=this.c.Kb;this.c.La&&(b=Math.round(b*this.c.La/this.c.mb));var b=b-(this.c.qa-this.c.Ua),d=this.c.qa-this.c.xa;d&&(this.c.pa=Math.round(this.K/(10*d))/100,864E5<=d&&(this.O=0,xb(this)));if(0>b||this.c.pa<this.c.wa)b=0;this.c.nb+=this.c.La;this.c.qa+=b;c(a,b)}else ub(this),this.A&&this.A.stop(ha(),Ab(this))};k.Pb=function(){return 0};
function vb(a,b){a.j.Fa&&(a.j.jb=!0);a.N-=a.a;a.a=0;xb(a,a.L);a.L=0;if(a.j.fa){a.j.fa=!1;a.G&&a.G.stop();var c=a.w.run;c&&(c.textContent="Run")}a.j.Sa=b}function tb(a){a.A&&(Bb(a.A,-1),a.A.ra(void 0))}function Cb(a){this.ja=+a.model||8080;ob.call(this,a,1E6);this.ga=Db;rb(this);this.j.Sa=this.j.xc=!1;this.ca=0;this.U=[];this.ha=0;Eb(this)}x(Cb,ob);function Fb(a,b){a.U.push(b)}k=Cb.prototype;k.reset=function(){this.j.fa&&vb(this);Eb(this);rb(this);this.j.oa=!1;this.parent.reset.call(this)}; function wb(a,b){a.j.Fa&&(a.j.jb=!0);a.N-=a.a;a.a=0;yb(a,a.K);a.K=0;if(a.j.fa){a.j.fa=!1;a.G&&a.G.stop();var c=a.w.run;c&&(c.textContent="Run")}a.j.Sa=b}function ub(a){a.A&&(Cb(a.A,-1),a.A.ra(void 0))}function Db(a){this.ja=+a.model||8080;pb.call(this,a,1E6);this.ga=Eb;sb(this);this.j.Sa=this.j.yc=!1;this.ca=0;this.U=[];this.ha=0;Fb(this)}y(Db,pb);function Gb(a,b){a.U.push(b)}k=Db.prototype;k.reset=function(){this.j.fa&&wb(this);Fb(this);sb(this);this.j.oa=!1;this.parent.reset.call(this)};
function Eb(a){a.b=0;a.g=0;a.D=0;a.h=0;a.F=0;a.i=0;a.m=0;a.B=0;C(a,a.ha);Hb(a,0);a.v=0}function Ib(a,b){a.ha=b;C(a,b)}k.Jb=function(){var a=this.b+this.g+this.D+this.h+this.F+this.i+this.m|0;return a=a+this.B+this.s+Jb(this)|0}; function Fb(a){a.b=0;a.g=0;a.C=0;a.h=0;a.D=0;a.i=0;a.l=0;a.v=0;D(a,a.ha);Ib(a,0);a.F=0}function Jb(a,b){a.ha=b;D(a,b)}k.Jb=function(){var a=this.b+this.g+this.C+this.h+this.D+this.i+this.l|0;return a=a+this.v+this.s+Kb(this)|0};
k.save=function(){var a=new D(this);F(a,0,[this.b,this.g,this.D,this.h,this.F,this.i,this.m,this.B,this.s,Jb(this)]);F(a,1,[this.v,this.O,this.c.za]);for(var b=this.l,c=0,d=[],e=0;e<b.m;e++){var f=b.b[e];if(f.ea||f.Gb){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,l=0,m=[];g<f.length;){for(var q=f[g],p=g+1;p<f.length&&f[p]===q;)p++;m[l++]=p-g;m[l++]=q;g=p}if(m.length<f.length){f=m;break a}}d[h]=f}}F(a,2,d);return a.data()}; k.save=function(){var a=new E(this);G(a,0,[this.b,this.g,this.C,this.h,this.D,this.i,this.l,this.v,this.s,Kb(this)]);G(a,1,[this.F,this.O,this.c.za]);for(var b=this.m,c=0,d=[],e=0;e<b.l;e++){var f=b.b[e];if(f.ea||f.Gb){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,l=0,m=[];g<f.length;){for(var t=f[g],p=g+1;p<f.length&&f[p]===t;)p++;m[l++]=p-g;m[l++]=t;g=p}if(m.length<f.length){f=m;break a}}d[h]=f}}G(a,2,d);return a.data()};
k.restore=function(a){var b=a[0];this.b=b[0];this.g=b[1];this.D=b[2];this.h=b[3];this.F=b[4];this.i=b[5];this.m=b[6];this.B=b[7]&65535;C(this,b[8]);Hb(this,b[9]);b=a[1];this.v=b[0];this.O=b[1];wb(this,b[3]);a:{b=this.l;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.v){for(var f=0,h=Array(b.v),g=0;g<e.length-1;)for(var l=e[g++],m=e[g++];l--;)h[f++]=m;e=h}f=b.b[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b}; k.restore=function(a){var b=a[0];this.b=b[0];this.g=b[1];this.C=b[2];this.h=b[3];this.D=b[4];this.i=b[5];this.l=b[6];this.v=b[7]&65535;D(this,b[8]);Ib(this,b[9]);b=a[1];this.F=b[0];this.O=b[1];xb(this,b[3]);a:{b=this.m;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.v){for(var f=0,h=Array(b.v),g=0;g<e.length-1;)for(var l=e[g++],m=e[g++];l--;)h[f++]=m;e=h}f=b.b[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
k.R=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.w[b]=c;this.ca++;d=!0;break;default:d=this.parent.R.call(this,a,b,c)}return d};function Kb(a){return a.g<<8|a.D}function Lb(a,b){a.g=b>>8&255;a.D=b&255}function Mb(a){return a.h<<8|a.F}function Nb(a,b){a.h=b>>8&255;a.F=b&255}function H(a){return a.i<<8|a.m} k.R=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.w[b]=c;this.ca++;d=!0;break;default:d=this.parent.R.call(this,a,b,c)}return d};function Lb(a){return a.g<<8|a.C}function Mb(a,b){a.g=b>>8&255;a.C=b&255}function Nb(a){return a.h<<8|a.D}function Ob(a,b){a.h=b>>8&255;a.D=b&255}function H(a){return a.i<<8|a.l}
function I(a,b){a.i=b>>8&255;a.m=b&255}function C(a,b){a.s=b&65535}function K(a){return a.o&256?1:0}function Ob(a,b){a.o=a.o&255|b}function Pb(a){return Ma[a.u&255]?4:0}function Jb(a){return a.H&-214|(a.u&128?128:0)|(a.o&255?0:64)|((a.u^a.C)&16?16:0)|Pb(a)|K(a)}function Hb(a,b){a.o=a.u=a.C=0;b&1&&(a.o|=256);b&4||(a.u|=1);b&16&&(a.C|=16);b&64||(a.o|=255);b&128&&(a.u^=192);a.H=a.H&-726|b&512|2}function Qb(a,b){a.C=a.b^b;return a.u=(a.o=a.b+b)&255} function K(a,b){a.i=b>>8&255;a.l=b&255}function D(a,b){a.s=b&65535}function L(a){return a.o&256?1:0}function M(a,b){a.o=a.o&255|b}function Pb(a){return Na[a.u&255]?4:0}function Kb(a){return a.H&-214|(a.u&128?128:0)|(a.o&255?0:64)|((a.u^a.B)&16?16:0)|Pb(a)|L(a)}function Ib(a,b){a.o=a.u=a.B=0;b&1&&(a.o|=256);b&4||(a.u|=1);b&16&&(a.B|=16);b&64||(a.o|=255);b&128&&(a.u^=192);a.H=a.H&-726|b&512|2}function Qb(a,b){a.B=a.b^b;return a.u=(a.o=a.b+b)&255}
function Rb(a,b){a.C=a.b^b;return a.u=(a.o=a.b+b+(a.o&256?1:0))&255}function Sb(a,b){a.o=a.u=a.C=a.b&b;(a.b|b)&8&&(a.C^=16);return a.o}function Tb(a,b){a.C=b^255;b=a.u=b+255&255;a.o=a.o&-256|b;return b}function Ub(a,b){a.C=b;b=a.u=b+1&255;a.o=a.o&-256|b;return b}function Vb(a,b){return a.u=a.o=a.C=a.b|b}function L(a,b){b^=255;a.C=a.b^b;return a.u=(a.o=a.b+b+1^256)&255}function Wb(a,b){b^=255;a.C=a.b^b;return a.u=(a.o=a.b+b+(a.o&256?0:1)^256)&255}function Xb(a,b){return a.u=a.o=a.C=a.b^b}k.I=function(a){return this.l.I(a)}; function Rb(a,b){a.B=a.b^b;return a.u=(a.o=a.b+b+(a.o&256?1:0))&255}function Sb(a,b){a.o=a.u=a.B=a.b&b;(a.b|b)&8&&(a.B^=16);return a.o}function Tb(a,b){a.B=b^255;b=a.u=b+255&255;a.o=a.o&-256|b;return b}function Ub(a,b){a.B=b;b=a.u=b+1&255;a.o=a.o&-256|b;return b}function Vb(a,b){return a.u=a.o=a.B=a.b|b}function N(a,b){b^=255;a.B=a.b^b;return a.u=(a.o=a.b+b+1^256)&255}function Wb(a,b){b^=255;a.B=a.b^b;return a.u=(a.o=a.b+b+(a.o&256?0:1)^256)&255}function Xb(a,b){return a.u=a.o=a.B=a.b^b}k.I=function(a){return this.m.I(a)};
k.T=function(a,b){this.l.T(a,b)};function M(a){var b=a.I(a.s);C(a,a.s+1);return b}function P(a){var b=Wa(a.l,a.s);C(a,a.s+2);return b}function Q(a){var b=Wa(a.l,a.B);a.B=a.B+2&65535;return b}function R(a,b){a.B=a.B-2&65535;Ya(a.l,a.B,b)}function S(a,b,c,d){d=d||2;a.w[b]&&(void 0===c&&(a.j.oa=!0,a.J("Value for "+b+" is invalid"),vb(a)),c=!a.j.fa||a.j.Hb?n(c,d):"--------".substr(0,d),a.w[b].textContent!=c&&(a.w[b].textContent=c))} k.T=function(a,b){this.m.T(a,b)};function O(a){var b=a.I(a.s);D(a,a.s+1);return b}function P(a){var b=Xa(a.m,a.s);D(a,a.s+2);return b}function R(a){var b=Xa(a.m,a.v);a.v=a.v+2&65535;return b}function T(a,b){a.v=a.v-2&65535;Za(a.m,a.v,b)}function Yb(a,b){a.F=a.F&-8|b|8}function U(a,b,c,d){d=d||2;a.w[b]&&(void 0===c&&(a.j.oa=!0,a.J("Value for "+b+" is invalid"),wb(a)),c=!a.j.fa||a.j.Hb?n(c,d):"--------".substr(0,d),a.w[b].textContent!=c&&(a.w[b].textContent=c))}
k.ra=function(a){this.ca&&(a||!this.j.fa||this.j.Hb)&&(S(this,"A",this.b),S(this,"B",this.g),S(this,"C",this.D),S(this,"BC",Kb(this),4),S(this,"D",this.h),S(this,"E",this.F),S(this,"DE",Mb(this),4),S(this,"H",this.i),S(this,"L",this.m),S(this,"HL",H(this),4),S(this,"SP",this.B,4),S(this,"PC",this.s,4),a=Jb(this),S(this,"PS",a,4),S(this,"IF",a&512?1:0,1),S(this,"SF",a&128?1:0,1),S(this,"ZF",a&64?1:0,1),S(this,"AF",a&16?1:0,1),S(this,"PF",a&4?1:0,1),S(this,"CF",a&1?1:0,1));if(a=this.w.speed)a.textContent= k.ra=function(a){this.ca&&(a||!this.j.fa||this.j.Hb)&&(U(this,"A",this.b),U(this,"B",this.g),U(this,"C",this.C),U(this,"BC",Lb(this),4),U(this,"D",this.h),U(this,"E",this.D),U(this,"DE",Nb(this),4),U(this,"H",this.i),U(this,"L",this.l),U(this,"HL",H(this),4),U(this,"SP",this.v,4),U(this,"PC",this.s,4),a=Kb(this),U(this,"PS",a,4),U(this,"IF",a&512?1:0,1),U(this,"SF",a&128?1:0,1),U(this,"ZF",a&64?1:0,1),U(this,"AF",a&16?1:0,1),U(this,"PF",a&4?1:0,1),U(this,"CF",a&1?1:0,1));if(a=this.w.speed)a.textContent=
this.j.fa&&this.c.pa?this.c.pa.toFixed(2)+"Mhz":"Stopped"};k.Pb=function(a){this.j.Sa=!0;this.j.xc=!1;this.j.Ib=!1;this.N=this.a=a;do{if(this.v){if(a&&this.v&8&&this.H&512){var b=199|(this.v&7)<<3;this.v&=-17;this.v&=-16;this.H&=-513;this.ga[b].call(this)}if(this.v&16){this.a=0;break}}this.ga[M(this)].call(this)}while(0<this.a);return this.j.Sa?this.N-this.a:void 0===this.j.Sa?0:-1};ta(function(){for(var a=z(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Cb(d);Ia(d,c)}}); this.j.fa&&this.c.pa?this.c.pa.toFixed(2)+"Mhz":"Stopped"};k.Pb=function(a){this.j.Sa=!0;this.j.yc=!1;this.j.Ib=!1;this.N=this.a=a;do{if(this.F){if(a&&this.F&8&&this.H&512){var b=199|(this.F&7)<<3;this.F&=-17;this.F&=-16;this.H&=-513;this.ga[b].call(this)}if(this.F&16){this.a=0;break}}this.ga[O(this)].call(this)}while(0<this.a);return this.j.Sa?this.N-this.a:void 0===this.j.Sa?0:-1};ua(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Db(d);Ja(d,c)}});
function Yb(){this.a-=4}function Zb(){C(this,P(this));this.a-=10}function $b(){C(this,Q(this));this.a-=10}function ac(){var a=P(this);R(this,this.s);C(this,a);this.a-=17} function Zb(){this.a-=4}function $b(){D(this,P(this));this.a-=10}function ac(){D(this,R(this));this.a-=10}function bc(){var a=P(this);T(this,this.s);D(this,a);this.a-=17}
var Db=[Yb,function(){Lb(this,P(this));this.a-=10},function(){this.T(Kb(this),this.b);this.a-=7},function(){Lb(this,Kb(this)+1);this.a-=5},function(){this.g=Ub(this,this.g);this.a-=5},function(){this.g=Tb(this,this.g);this.a-=5},function(){this.g=M(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;Ob(this,a&256);this.a-=4},Yb,function(){var a;I(this,a=H(this)+Kb(this));Ob(this,a>>8&256);this.a-=10},function(){this.b=this.I(Kb(this));this.a-=7},function(){Lb(this,Kb(this)-1);this.a-=5}, var Eb=[Zb,function(){Mb(this,P(this));this.a-=10},function(){this.T(Lb(this),this.b);this.a-=7},function(){Mb(this,Lb(this)+1);this.a-=5},function(){this.g=Ub(this,this.g);this.a-=5},function(){this.g=Tb(this,this.g);this.a-=5},function(){this.g=O(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;M(this,a&256);this.a-=4},Zb,function(){var a;K(this,a=H(this)+Lb(this));M(this,a>>8&256);this.a-=10},function(){this.b=this.I(Lb(this));this.a-=7},function(){Mb(this,Lb(this)-1);this.a-=5},function(){this.C=
function(){this.D=Ub(this,this.D);this.a-=5},function(){this.D=Tb(this,this.D);this.a-=5},function(){this.D=M(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;Ob(this,a);this.a-=4},Yb,function(){Nb(this,P(this));this.a-=10},function(){this.T(Mb(this),this.b);this.a-=7},function(){Nb(this,Mb(this)+1);this.a-=5},function(){this.h=Ub(this,this.h);this.a-=5},function(){this.h=Tb(this,this.h);this.a-=5},function(){this.h=M(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|K(this); Ub(this,this.C);this.a-=5},function(){this.C=Tb(this,this.C);this.a-=5},function(){this.C=O(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;M(this,a);this.a-=4},Zb,function(){Ob(this,P(this));this.a-=10},function(){this.T(Nb(this),this.b);this.a-=7},function(){Ob(this,Nb(this)+1);this.a-=5},function(){this.h=Ub(this,this.h);this.a-=5},function(){this.h=Tb(this,this.h);this.a-=5},function(){this.h=O(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|L(this);M(this,a&256);
Ob(this,a&256);this.a-=4},Yb,function(){var a;I(this,a=H(this)+Mb(this));Ob(this,a>>8&256);this.a-=10},function(){this.b=this.I(Mb(this));this.a-=7},function(){Nb(this,Mb(this)-1);this.a-=5},function(){this.F=Ub(this,this.F);this.a-=5},function(){this.F=Tb(this,this.F);this.a-=5},function(){this.F=M(this);this.a-=7},function(){var a=this.b<<8;this.b=(K(this)<<8|this.b)>>1;Ob(this,a&256);this.a-=4},Yb,function(){I(this,P(this));this.a-=10},function(){var a=P(this);Ya(this.l,a,H(this));this.a-=16}, this.a-=4},Zb,function(){var a;K(this,a=H(this)+Nb(this));M(this,a>>8&256);this.a-=10},function(){this.b=this.I(Nb(this));this.a-=7},function(){Ob(this,Nb(this)-1);this.a-=5},function(){this.D=Ub(this,this.D);this.a-=5},function(){this.D=Tb(this,this.D);this.a-=5},function(){this.D=O(this);this.a-=7},function(){var a=this.b<<8;this.b=(L(this)<<8|this.b)>>1;M(this,a&256);this.a-=4},Zb,function(){K(this,P(this));this.a-=10},function(){var a=P(this);Za(this.m,a,H(this));this.a-=16},function(){K(this,
function(){I(this,H(this)+1);this.a-=5},function(){this.i=Ub(this,this.i);this.a-=5},function(){this.i=Tb(this,this.i);this.a-=5},function(){this.i=M(this);this.a-=7},function(){var a=0,b=K(this);if((this.u^this.C)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=Qb(this,a);Ob(this,b?256:0);this.a-=4},Yb,function(){var a;I(this,a=H(this)+H(this));Ob(this,a>>8&256);this.a-=10},function(){var a;a=P(this);a=Wa(this.l,a);I(this,a);this.a-=16},function(){I(this,H(this)-1);this.a-=5},function(){this.m= H(this)+1);this.a-=5},function(){this.i=Ub(this,this.i);this.a-=5},function(){this.i=Tb(this,this.i);this.a-=5},function(){this.i=O(this);this.a-=7},function(){var a=0,b=L(this);if((this.u^this.B)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=Qb(this,a);M(this,b?256:0);this.a-=4},Zb,function(){var a;K(this,a=H(this)+H(this));M(this,a>>8&256);this.a-=10},function(){var a;a=P(this);a=Xa(this.m,a);K(this,a);this.a-=16},function(){K(this,H(this)-1);this.a-=5},function(){this.l=Ub(this,this.l);
Ub(this,this.m);this.a-=5},function(){this.m=Tb(this,this.m);this.a-=5},function(){this.m=M(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},Yb,function(){this.B=P(this)&65535;this.a-=10},function(){this.T(P(this),this.b);this.a-=13},function(){this.B=this.B+1&65535;this.a-=5},function(){var a=H(this);this.T(a,Ub(this,this.I(a)));this.a-=10},function(){var a=H(this);this.T(a,Tb(this,this.I(a)));this.a-=10},function(){this.T(H(this),M(this));this.a-=10},function(){this.o|=256;this.a-=4},Yb, this.a-=5},function(){this.l=Tb(this,this.l);this.a-=5},function(){this.l=O(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},Zb,function(){this.v=P(this)&65535;this.a-=10},function(){this.T(P(this),this.b);this.a-=13},function(){this.v=this.v+1&65535;this.a-=5},function(){var a=H(this);this.T(a,Ub(this,this.I(a)));this.a-=10},function(){var a=H(this);this.T(a,Tb(this,this.I(a)));this.a-=10},function(){this.T(H(this),O(this));this.a-=10},function(){this.o|=256;this.a-=4},Zb,function(){var a;
function(){var a;I(this,a=H(this)+this.B);Ob(this,a>>8&256);this.a-=10},function(){this.b=this.I(P(this));this.a-=13},function(){this.B=this.B-1&65535;this.a-=5},function(){this.b=Ub(this,this.b);this.a-=5},function(){this.b=Tb(this,this.b);this.a-=5},function(){this.b=M(this);this.a-=7},function(){Ob(this,K(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.g=this.D;this.a-=5},function(){this.g=this.h;this.a-=5},function(){this.g=this.F;this.a-=5},function(){this.g=this.i;this.a-=5},function(){this.g= K(this,a=H(this)+this.v);M(this,a>>8&256);this.a-=10},function(){this.b=this.I(P(this));this.a-=13},function(){this.v=this.v-1&65535;this.a-=5},function(){this.b=Ub(this,this.b);this.a-=5},function(){this.b=Tb(this,this.b);this.a-=5},function(){this.b=O(this);this.a-=7},function(){M(this,L(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.g=this.C;this.a-=5},function(){this.g=this.h;this.a-=5},function(){this.g=this.D;this.a-=5},function(){this.g=this.i;this.a-=5},function(){this.g=this.l;
this.m;this.a-=5},function(){this.g=this.I(H(this));this.a-=7},function(){this.g=this.b;this.a-=5},function(){this.D=this.g;this.a-=5},function(){this.a-=5},function(){this.D=this.h;this.a-=5},function(){this.D=this.F;this.a-=5},function(){this.D=this.i;this.a-=5},function(){this.D=this.m;this.a-=5},function(){this.D=this.I(H(this));this.a-=7},function(){this.D=this.b;this.a-=5},function(){this.h=this.g;this.a-=5},function(){this.h=this.D;this.a-=5},function(){this.a-=5},function(){this.h=this.F; this.a-=5},function(){this.g=this.I(H(this));this.a-=7},function(){this.g=this.b;this.a-=5},function(){this.C=this.g;this.a-=5},function(){this.a-=5},function(){this.C=this.h;this.a-=5},function(){this.C=this.D;this.a-=5},function(){this.C=this.i;this.a-=5},function(){this.C=this.l;this.a-=5},function(){this.C=this.I(H(this));this.a-=7},function(){this.C=this.b;this.a-=5},function(){this.h=this.g;this.a-=5},function(){this.h=this.C;this.a-=5},function(){this.a-=5},function(){this.h=this.D;this.a-=
this.a-=5},function(){this.h=this.i;this.a-=5},function(){this.h=this.m;this.a-=5},function(){this.h=this.I(H(this));this.a-=7},function(){this.h=this.b;this.a-=5},function(){this.F=this.g;this.a-=5},function(){this.F=this.D;this.a-=5},function(){this.F=this.h;this.a-=5},function(){this.a-=5},function(){this.F=this.i;this.a-=5},function(){this.F=this.m;this.a-=5},function(){this.F=this.I(H(this));this.a-=7},function(){this.F=this.b;this.a-=5},function(){this.i=this.g;this.a-=5},function(){this.i= 5},function(){this.h=this.i;this.a-=5},function(){this.h=this.l;this.a-=5},function(){this.h=this.I(H(this));this.a-=7},function(){this.h=this.b;this.a-=5},function(){this.D=this.g;this.a-=5},function(){this.D=this.C;this.a-=5},function(){this.D=this.h;this.a-=5},function(){this.a-=5},function(){this.D=this.i;this.a-=5},function(){this.D=this.l;this.a-=5},function(){this.D=this.I(H(this));this.a-=7},function(){this.D=this.b;this.a-=5},function(){this.i=this.g;this.a-=5},function(){this.i=this.C;this.a-=
this.D;this.a-=5},function(){this.i=this.h;this.a-=5},function(){this.i=this.F;this.a-=5},function(){this.a-=5},function(){this.i=this.m;this.a-=5},function(){this.i=this.I(H(this));this.a-=7},function(){this.i=this.b;this.a-=5},function(){this.m=this.g;this.a-=5},function(){this.m=this.D;this.a-=5},function(){this.m=this.h;this.a-=5},function(){this.m=this.F;this.a-=5},function(){this.m=this.i;this.a-=5},function(){this.a-=5},function(){this.m=this.I(H(this));this.a-=7},function(){this.m=this.b; 5},function(){this.i=this.h;this.a-=5},function(){this.i=this.D;this.a-=5},function(){this.a-=5},function(){this.i=this.l;this.a-=5},function(){this.i=this.I(H(this));this.a-=7},function(){this.i=this.b;this.a-=5},function(){this.l=this.g;this.a-=5},function(){this.l=this.C;this.a-=5},function(){this.l=this.h;this.a-=5},function(){this.l=this.D;this.a-=5},function(){this.l=this.i;this.a-=5},function(){this.a-=5},function(){this.l=this.I(H(this));this.a-=7},function(){this.l=this.b;this.a-=5},function(){this.T(H(this),
this.a-=5},function(){this.T(H(this),this.g);this.a-=7},function(){this.T(H(this),this.D);this.a-=7},function(){this.T(H(this),this.h);this.a-=7},function(){this.T(H(this),this.F);this.a-=7},function(){this.T(H(this),this.i);this.a-=7},function(){this.T(H(this),this.m);this.a-=7},function(){var a=this.s-1;if(this.U.length)for(var b=0;b<this.U.length;b++)if(this.U[b](a))return;this.v|=16;this.a-=7;this.H&512||vb(this)},function(){this.T(H(this),this.b);this.a-=7},function(){this.b=this.g;this.a-=5}, this.g);this.a-=7},function(){this.T(H(this),this.C);this.a-=7},function(){this.T(H(this),this.h);this.a-=7},function(){this.T(H(this),this.D);this.a-=7},function(){this.T(H(this),this.i);this.a-=7},function(){this.T(H(this),this.l);this.a-=7},function(){var a=this.s-1;if(this.U.length)for(var b=0;b<this.U.length;b++)if(this.U[b](a))return;this.F|=16;this.a-=7;this.H&512||wb(this)},function(){this.T(H(this),this.b);this.a-=7},function(){this.b=this.g;this.a-=5},function(){this.b=this.C;this.a-=5},
function(){this.b=this.D;this.a-=5},function(){this.b=this.h;this.a-=5},function(){this.b=this.F;this.a-=5},function(){this.b=this.i;this.a-=5},function(){this.b=this.m;this.a-=5},function(){this.b=this.I(H(this));this.a-=7},function(){this.a-=5},function(){this.b=Qb(this,this.g);this.a-=4},function(){this.b=Qb(this,this.D);this.a-=4},function(){this.b=Qb(this,this.h);this.a-=4},function(){this.b=Qb(this,this.F);this.a-=4},function(){this.b=Qb(this,this.i);this.a-=4},function(){this.b=Qb(this,this.m); function(){this.b=this.h;this.a-=5},function(){this.b=this.D;this.a-=5},function(){this.b=this.i;this.a-=5},function(){this.b=this.l;this.a-=5},function(){this.b=this.I(H(this));this.a-=7},function(){this.a-=5},function(){this.b=Qb(this,this.g);this.a-=4},function(){this.b=Qb(this,this.C);this.a-=4},function(){this.b=Qb(this,this.h);this.a-=4},function(){this.b=Qb(this,this.D);this.a-=4},function(){this.b=Qb(this,this.i);this.a-=4},function(){this.b=Qb(this,this.l);this.a-=4},function(){this.b=Qb(this,
this.a-=4},function(){this.b=Qb(this,this.I(H(this)));this.a-=7},function(){this.b=Qb(this,this.b);this.a-=4},function(){this.b=Rb(this,this.g);this.a-=4},function(){this.b=Rb(this,this.D);this.a-=4},function(){this.b=Rb(this,this.h);this.a-=4},function(){this.b=Rb(this,this.F);this.a-=4},function(){this.b=Rb(this,this.i);this.a-=4},function(){this.b=Rb(this,this.m);this.a-=4},function(){this.b=Rb(this,this.I(H(this)));this.a-=7},function(){this.b=Rb(this,this.b);this.a-=4},function(){this.b=L(this, this.I(H(this)));this.a-=7},function(){this.b=Qb(this,this.b);this.a-=4},function(){this.b=Rb(this,this.g);this.a-=4},function(){this.b=Rb(this,this.C);this.a-=4},function(){this.b=Rb(this,this.h);this.a-=4},function(){this.b=Rb(this,this.D);this.a-=4},function(){this.b=Rb(this,this.i);this.a-=4},function(){this.b=Rb(this,this.l);this.a-=4},function(){this.b=Rb(this,this.I(H(this)));this.a-=7},function(){this.b=Rb(this,this.b);this.a-=4},function(){this.b=N(this,this.g);this.a-=4},function(){this.b=
this.g);this.a-=4},function(){this.b=L(this,this.D);this.a-=4},function(){this.b=L(this,this.h);this.a-=4},function(){this.b=L(this,this.F);this.a-=4},function(){this.b=L(this,this.i);this.a-=4},function(){this.b=L(this,this.m);this.a-=4},function(){this.b=L(this,this.I(H(this)));this.a-=7},function(){this.b=L(this,this.b);this.a-=4},function(){this.b=Wb(this,this.g);this.a-=4},function(){this.b=Wb(this,this.D);this.a-=4},function(){this.b=Wb(this,this.h);this.a-=4},function(){this.b=Wb(this,this.F); N(this,this.C);this.a-=4},function(){this.b=N(this,this.h);this.a-=4},function(){this.b=N(this,this.D);this.a-=4},function(){this.b=N(this,this.i);this.a-=4},function(){this.b=N(this,this.l);this.a-=4},function(){this.b=N(this,this.I(H(this)));this.a-=7},function(){this.b=N(this,this.b);this.a-=4},function(){this.b=Wb(this,this.g);this.a-=4},function(){this.b=Wb(this,this.C);this.a-=4},function(){this.b=Wb(this,this.h);this.a-=4},function(){this.b=Wb(this,this.D);this.a-=4},function(){this.b=Wb(this,
this.a-=4},function(){this.b=Wb(this,this.i);this.a-=4},function(){this.b=Wb(this,this.m);this.a-=4},function(){this.b=Wb(this,this.I(H(this)));this.a-=7},function(){this.b=Wb(this,this.b);this.a-=4},function(){this.b=Sb(this,this.g);this.a-=4},function(){this.b=Sb(this,this.D);this.a-=4},function(){this.b=Sb(this,this.h);this.a-=4},function(){this.b=Sb(this,this.F);this.a-=4},function(){this.b=Sb(this,this.i);this.a-=4},function(){this.b=Sb(this,this.m);this.a-=4},function(){this.b=Sb(this,this.I(H(this))); this.i);this.a-=4},function(){this.b=Wb(this,this.l);this.a-=4},function(){this.b=Wb(this,this.I(H(this)));this.a-=7},function(){this.b=Wb(this,this.b);this.a-=4},function(){this.b=Sb(this,this.g);this.a-=4},function(){this.b=Sb(this,this.C);this.a-=4},function(){this.b=Sb(this,this.h);this.a-=4},function(){this.b=Sb(this,this.D);this.a-=4},function(){this.b=Sb(this,this.i);this.a-=4},function(){this.b=Sb(this,this.l);this.a-=4},function(){this.b=Sb(this,this.I(H(this)));this.a-=7},function(){this.b=
this.a-=7},function(){this.b=Sb(this,this.b);this.a-=4},function(){this.b=Xb(this,this.g);this.a-=4},function(){this.b=Xb(this,this.D);this.a-=4},function(){this.b=Xb(this,this.h);this.a-=4},function(){this.b=Xb(this,this.F);this.a-=4},function(){this.b=Xb(this,this.i);this.a-=4},function(){this.b=Xb(this,this.m);this.a-=4},function(){this.b=Xb(this,this.I(H(this)));this.a-=7},function(){this.b=Xb(this,this.b);this.a-=4},function(){this.b=Vb(this,this.g);this.a-=4},function(){this.b=Vb(this,this.D); Sb(this,this.b);this.a-=4},function(){this.b=Xb(this,this.g);this.a-=4},function(){this.b=Xb(this,this.C);this.a-=4},function(){this.b=Xb(this,this.h);this.a-=4},function(){this.b=Xb(this,this.D);this.a-=4},function(){this.b=Xb(this,this.i);this.a-=4},function(){this.b=Xb(this,this.l);this.a-=4},function(){this.b=Xb(this,this.I(H(this)));this.a-=7},function(){this.b=Xb(this,this.b);this.a-=4},function(){this.b=Vb(this,this.g);this.a-=4},function(){this.b=Vb(this,this.C);this.a-=4},function(){this.b=
this.a-=4},function(){this.b=Vb(this,this.h);this.a-=4},function(){this.b=Vb(this,this.F);this.a-=4},function(){this.b=Vb(this,this.i);this.a-=4},function(){this.b=Vb(this,this.m);this.a-=4},function(){this.b=Vb(this,this.I(H(this)));this.a-=7},function(){this.b=Vb(this,this.b);this.a-=4},function(){L(this,this.g);this.a-=4},function(){L(this,this.D);this.a-=4},function(){L(this,this.h);this.a-=4},function(){L(this,this.F);this.a-=4},function(){L(this,this.i);this.a-=4},function(){L(this,this.m); Vb(this,this.h);this.a-=4},function(){this.b=Vb(this,this.D);this.a-=4},function(){this.b=Vb(this,this.i);this.a-=4},function(){this.b=Vb(this,this.l);this.a-=4},function(){this.b=Vb(this,this.I(H(this)));this.a-=7},function(){this.b=Vb(this,this.b);this.a-=4},function(){N(this,this.g);this.a-=4},function(){N(this,this.C);this.a-=4},function(){N(this,this.h);this.a-=4},function(){N(this,this.D);this.a-=4},function(){N(this,this.i);this.a-=4},function(){N(this,this.l);this.a-=4},function(){N(this,
this.a-=4},function(){L(this,this.I(H(this)));this.a-=7},function(){L(this,this.b);this.a-=4},function(){this.o&255&&(C(this,Q(this)),this.a-=6);this.a-=5},function(){Lb(this,Q(this));this.a-=10},function(){var a=P(this);this.o&255&&C(this,a);this.a-=10},Zb,function(){var a=P(this);this.o&255&&(R(this,this.s),C(this,a),this.a-=6);this.a-=11},function(){R(this,Kb(this));this.a-=11},function(){this.b=Qb(this,M(this));this.a-=7},function(){R(this,this.s);C(this,0);this.a-=11},function(){this.o&255|| this.I(H(this)));this.a-=7},function(){N(this,this.b);this.a-=4},function(){this.o&255&&(D(this,R(this)),this.a-=6);this.a-=5},function(){Mb(this,R(this));this.a-=10},function(){var a=P(this);this.o&255&&D(this,a);this.a-=10},$b,function(){var a=P(this);this.o&255&&(T(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){T(this,Lb(this));this.a-=11},function(){this.b=Qb(this,O(this));this.a-=7},function(){T(this,this.s);D(this,0);this.a-=11},function(){this.o&255||(D(this,R(this)),this.a-=6);this.a-=
(C(this,Q(this)),this.a-=6);this.a-=5},$b,function(){var a=P(this);this.o&255||C(this,a);this.a-=10},Zb,function(){var a=P(this);this.o&255||(R(this,this.s),C(this,a),this.a-=6);this.a-=11},ac,function(){this.b=Rb(this,M(this));this.a-=7},function(){R(this,this.s);C(this,8);this.a-=11},function(){K(this)||(C(this,Q(this)),this.a-=6);this.a-=5},function(){Nb(this,Q(this));this.a-=10},function(){var a=P(this);K(this)||C(this,a);this.a-=10},function(){for(var a=M(this),b=this.l,c=this.b,d=this.s+-2& 5},ac,function(){var a=P(this);this.o&255||D(this,a);this.a-=10},$b,function(){var a=P(this);this.o&255||(T(this,this.s),D(this,a),this.a-=6);this.a-=11},bc,function(){this.b=Rb(this,O(this));this.a-=7},function(){T(this,this.s);D(this,8);this.a-=11},function(){L(this)||(D(this,R(this)),this.a-=6);this.a-=5},function(){Ob(this,R(this));this.a-=10},function(){var a=P(this);L(this)||D(this,a);this.a-=10},function(){for(var a=O(this),b=this.m,c=this.b,d=this.s+-2&65535,e=1,f=0;0<e;){var h=b.s[a],g=b.F[a]||
65535,e=1,f=0;0<e;){var h=b.s[a],g=b.C[a]||1,l=1==g?255:2==g?65535:-1,l=(c>>>=f)&l;if(void 0!==h&&h[0])h[0](a,l,d);f+=g<<3;a+=g;e-=g}this.a-=10},function(){var a=P(this);K(this)||(R(this,this.s),C(this,a),this.a-=6);this.a-=11},function(){R(this,Mb(this));this.a-=11},function(){this.b=L(this,M(this));this.a-=7},function(){R(this,this.s);C(this,16);this.a-=11},function(){K(this)&&(C(this,Q(this)),this.a-=6);this.a-=5},$b,function(){var a=P(this);K(this)&&C(this,a);this.a-=10},function(){for(var a= 1,l=1==g?255:2==g?65535:-1,l=(c>>>=f)&l;if(void 0!==h&&h[0])h[0](a,l,d);f+=g<<3;a+=g;e-=g}this.a-=10},function(){var a=P(this);L(this)||(T(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){T(this,Nb(this));this.a-=11},function(){this.b=N(this,O(this));this.a-=7},function(){T(this,this.s);D(this,16);this.a-=11},function(){L(this)&&(D(this,R(this)),this.a-=6);this.a-=5},ac,function(){var a=P(this);L(this)&&D(this,a);this.a-=10},function(){for(var a=O(this),b=this.m,c=this.s+-2&65535,d=1,e=0,
M(this),b=this.l,c=this.s+-2&65535,d=1,e=0,f=0;0<d;){var h=b.o[a],g=b.B[a]||1,l=1==g?255:2==g?65535:-1,m=l;void 0!==h&&h[0]&&(m=h[0](a,c),void 0===m?m=l:m&=l);e|=m<<f;f+=g<<3;a+=g;d-=g}this.b=e&255;this.a-=10},function(){var a=P(this);K(this)&&(R(this,this.s),C(this,a),this.a-=6);this.a-=11},ac,function(){this.b=Wb(this,M(this));this.a-=7},function(){R(this,this.s);C(this,24);this.a-=11},function(){Pb(this)||(C(this,Q(this)),this.a-=6);this.a-=5},function(){I(this,Q(this));this.a-=10},function(){var a= f=0;0<d;){var h=b.o[a],g=b.B[a]||1,l=1==g?255:2==g?65535:-1,m=l;void 0!==h&&h[0]&&(m=h[0](a,c),void 0===m?m=l:m&=l);e|=m<<f;f+=g<<3;a+=g;d-=g}this.b=e&255;this.a-=10},function(){var a=P(this);L(this)&&(T(this,this.s),D(this,a),this.a-=6);this.a-=11},bc,function(){this.b=Wb(this,O(this));this.a-=7},function(){T(this,this.s);D(this,24);this.a-=11},function(){Pb(this)||(D(this,R(this)),this.a-=6);this.a-=5},function(){K(this,R(this));this.a-=10},function(){var a=P(this);Pb(this)||D(this,a);this.a-=10},
P(this);Pb(this)||C(this,a);this.a-=10},function(){var a=Q(this);R(this,H(this));I(this,a);this.a-=18},function(){var a=P(this);Pb(this)||(R(this,this.s),C(this,a),this.a-=6);this.a-=11},function(){R(this,H(this));this.a-=11},function(){this.b=Sb(this,M(this));this.a-=7},function(){R(this,this.s);C(this,32);this.a-=11},function(){Pb(this)&&(C(this,Q(this)),this.a-=6);this.a-=5},function(){C(this,H(this));this.a-=5},function(){var a=P(this);Pb(this)&&C(this,a);this.a-=10},function(){var a=H(this); function(){var a=R(this);T(this,H(this));K(this,a);this.a-=18},function(){var a=P(this);Pb(this)||(T(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){T(this,H(this));this.a-=11},function(){this.b=Sb(this,O(this));this.a-=7},function(){T(this,this.s);D(this,32);this.a-=11},function(){Pb(this)&&(D(this,R(this)),this.a-=6);this.a-=5},function(){D(this,H(this));this.a-=5},function(){var a=P(this);Pb(this)&&D(this,a);this.a-=10},function(){var a=H(this);K(this,Nb(this));Ob(this,a);this.a-=5},function(){var a=
I(this,Mb(this));Nb(this,a);this.a-=5},function(){var a=P(this);Pb(this)&&(R(this,this.s),C(this,a),this.a-=6);this.a-=11},ac,function(){this.b=Xb(this,M(this));this.a-=7},function(){R(this,this.s);C(this,40);this.a-=11},function(){this.u&128||(C(this,Q(this)),this.a-=6);this.a-=5},function(){var a=Q(this);Hb(this,a&255|this.H&-256);this.b=a>>8;this.a-=10},function(){var a=P(this);this.u&128||C(this,a);this.a-=10},function(){this.H&=-513;this.a-=4},function(){var a=P(this);this.u&128||(R(this,this.s), P(this);Pb(this)&&(T(this,this.s),D(this,a),this.a-=6);this.a-=11},bc,function(){this.b=Xb(this,O(this));this.a-=7},function(){T(this,this.s);D(this,40);this.a-=11},function(){this.u&128||(D(this,R(this)),this.a-=6);this.a-=5},function(){var a=R(this);Ib(this,a&255|this.H&-256);this.b=a>>8;this.a-=10},function(){var a=P(this);this.u&128||D(this,a);this.a-=10},function(){this.H&=-513;this.a-=4},function(){var a=P(this);this.u&128||(T(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){T(this,
C(this,a),this.a-=6);this.a-=11},function(){R(this,Jb(this)&255|this.b<<8);this.a-=11},function(){this.b=Vb(this,M(this));this.a-=7},function(){R(this,this.s);C(this,48);this.a-=11},function(){this.u&128&&(C(this,Q(this)),this.a-=6);this.a-=5},function(){this.B=H(this)&65535;this.a-=5},function(){var a=P(this);this.u&128&&C(this,a);this.a-=10},function(){this.H|=512;this.a-=4},function(){var a=P(this);this.u&128&&(R(this,this.s),C(this,a),this.a-=6);this.a-=11},ac,function(){L(this,M(this));this.a-= Kb(this)&255|this.b<<8);this.a-=11},function(){this.b=Vb(this,O(this));this.a-=7},function(){T(this,this.s);D(this,48);this.a-=11},function(){this.u&128&&(D(this,R(this)),this.a-=6);this.a-=5},function(){this.v=H(this)&65535;this.a-=5},function(){var a=P(this);this.u&128&&D(this,a);this.a-=10},function(){this.H|=512;this.a-=4},function(){var a=P(this);this.u&128&&(T(this,this.s),D(this,a),this.a-=6);this.a-=11},bc,function(){N(this,O(this));this.a-=7},function(){T(this,this.s);D(this,56);this.a-=
7},function(){R(this,this.s);C(this,56);this.a-=11}];function T(a){u.call(this,"ChipSet",a,T);var b=a.model;b&&!bc[b]&&va("Unrecognized ChipSet model: "+b);this.c=bc[b]||{};a.sound&&(this.C=null,window&&(this.C=window.AudioContext||window.webkitAudioContext),this.C&&new this.C);A(this)}x(T); 11}];function V(a){u.call(this,"ChipSet",a,V);var b=a.model;b&&!cc[b]&&wa("Unrecognized ChipSet model: "+b);this.c=cc[b]||{};a.sound&&(this.F=null,window&&(this.F=window.AudioContext||window.webkitAudioContext),this.F&&new this.F);B(this)}y(V);
var U={W:1978.1,oc:{X:0,gd:1,md:16,zd:32,Nd:64,Ld:128,Ba:14},na:{X:1,Vb:1,kc:2,gc:4,hc:16,ic:32,jc:64,Ba:8},pc:{X:2,fd:3,Xd:4,hd:8,Hd:16,Id:32,Jd:64,jd:128,Ba:0},Rd:{X:3},Pd:{X:2,Bd:7},Td:{X:3,Zd:1,Sd:2,Kd:4,ud:8,kd:16,Yc:32},Qd:{X:4},Ud:{X:5,nd:1,od:2,pd:4,qd:8,$d:16}},V={W:100,la:{X:66,de:1,ec:2,fc:4,Fd:8,Dd:16,vb:32,ub:64,qb:128},Ub:{X:66,INIT:0},da:{yd:{X:98},sa:{Tb:0,Sb:1,mc:2,sc:4,Yb:5,lc:6,Vd:7},Pa:16383},Xb:{X:162,INIT:0},Wb:{X:194,INIT:0}},bc={SI1978:U,VT100:V};T.prototype.R=function(){return!1}; var W={W:1978.1,pc:{X:0,gd:1,md:16,zd:32,Nd:64,Ld:128,Ba:14},na:{X:1,Wb:1,lc:2,hc:4,ic:16,jc:32,kc:64,Ba:8},qc:{X:2,fd:3,Xd:4,hd:8,Hd:16,Id:32,Jd:64,jd:128,Ba:0},Rd:{X:3},Pd:{X:2,Bd:7},Td:{X:3,Zd:1,Sd:2,Kd:4,ud:8,kd:16,Yc:32},Qd:{X:4},Ud:{X:5,nd:1,od:2,pd:4,qd:8,$d:16}},X={W:100,la:{X:66,de:1,fc:2,gc:4,Fd:8,Dd:16,vb:32,ub:64,qb:128},Vb:{X:66,INIT:0},da:{yd:{X:98},sa:{Tb:0,Sb:1,nc:2,tc:4,Zb:5,mc:6,Vd:7},Pa:16383},Yb:{X:162,INIT:0},Xb:{X:194,INIT:0}},cc={SI1978:W,VT100:X};V.prototype.R=function(){return!1};
T.prototype.ia=function(a,b,c,d){this.l=b;this.a=c;this.K=d;this.A=a;this.m=Oa(a,"Keyboard");Za(b,this,this.c.Ya);$a(b,this,this.c.Za)};T.prototype.Z=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};T.prototype.ba=function(a){return a?this.save():!0};U.INIT=[[U.oc.Ba,U.na.Ba,U.pc.Ba,0,0,0,0]]; V.prototype.ia=function(a,b,c,d){this.m=b;this.a=c;this.L=d;this.A=a;this.o=Pa(a,"Keyboard");$a(b,this,this.c.Ya);ab(b,this,this.c.Za)};V.prototype.Y=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};V.prototype.ba=function(a){return a?this.save():!0};W.INIT=[[W.pc.Ba,W.na.Ba,W.qc.Ba,0,0,0,0]];
V.INIT=[[V.Ub.INIT,V.la.ec|V.la.fc,V.Xb.INIT,V.Wb.INIT],[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,11856,11824,11840,11808,11776,12E3,12E3,11857,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];k=T.prototype; X.INIT=[[X.Vb.INIT,X.la.fc|X.la.gc,X.Yb.INIT,X.Xb.INIT],[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,11856,11824,11840,11808,11776,12E3,12E3,11857,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];k=V.prototype;
k.reset=function(){this.c.INIT&&!this.restore(this.c.INIT)&&this.J("reset error")};k.save=function(){var a=new D(this);switch(this.c.W){case U.W:F(a,0,[this.U,this.g,this.V,this.u,this.B,this.N,this.O]);break;case V.W:F(a,0,[this.G,this.i,this.L,this.H]),F(a,1,[this.s,this.b,this.o,this.v,this.h])}return a.data()}; k.reset=function(){this.c.INIT&&!this.restore(this.c.INIT)&&this.J("reset error")};k.save=function(){var a=new E(this);switch(this.c.W){case W.W:G(a,0,[this.U,this.g,this.V,this.u,this.B,this.N,this.O]);break;case X.W:G(a,0,[this.G,this.i,this.K,this.H]),G(a,1,[this.s,this.b,this.l,this.v,this.h])}return a.data()};
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.c.W){case U.W:return this.U=b[0],this.g=b[1],this.V=b[2],this.u=b[3],this.B=b[4],this.N=b[5],this.O=b[6],!0;case V.W:return this.G=b[0],this.i=b[1],this.L=b[2],this.H=b[3],b=a[1],this.s=b[0],this.b=b[1],this.o=b[2],this.v=b[3],this.h=b[4],!0}return!1};k.start=function(){};k.stop=function(){};function cc(a,b,c){a.g&=~b;c&&(a.g|=b)}k.Bc=function(){return this.U};k.Cc=function(){return this.g};k.Dc=function(){return this.V}; k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.c.W){case W.W:return this.U=b[0],this.g=b[1],this.V=b[2],this.u=b[3],this.B=b[4],this.N=b[5],this.O=b[6],!0;case X.W:return this.G=b[0],this.i=b[1],this.K=b[2],this.H=b[3],b=a[1],this.s=b[0],this.b=b[1],this.l=b[2],this.v=b[3],this.h=b[4],!0}return!1};k.start=function(){};k.stop=function(){};function dc(a,b,c){a.g&=~b;c&&(a.g|=b)}k.Cc=function(){return this.U};k.Dc=function(){return this.g};k.Ec=function(){return this.V};
k.Ac=function(){return this.u>>8-this.B&255};k.Kc=function(a,b){this.B=b};k.Mc=function(a,b){this.N=b};k.Lc=function(a,b){this.u=b<<8|this.u>>8};k.Nc=function(a,b){this.O=b};k.Oc=function(){};function dc(a){var b=0,c=0,d=~a.s;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c} k.Bc=function(){return this.u>>8-this.B&255};k.Lc=function(a,b){this.B=b};k.Nc=function(a,b){this.N=b};k.Mc=function(a,b){this.u=b<<8|this.u>>8};k.Oc=function(a,b){this.O=b};k.Pc=function(){};function ec(a){var b=0,c=0,d=~a.s;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
k.Ec=function(){var a=this.i,a=a&~V.la.ub;if((zb(this.a)&64)<<1&&(a|=V.la.ub,a!=this.i)){var b,c;b=this.o&1;switch(this.o>>1&7){case V.da.sa.Sb:this.s=this.s<<1|b;break;case V.da.sa.Yb:b=dc(this);this.h[b]=V.da.Pa;break;case V.da.sa.Tb:this.b=this.b<<1|b;break;case V.da.sa.sc:b=dc(this);c=this.b&V.da.Pa;this.h[b]=c;break;case V.da.sa.lc:b=dc(this);c=this.h[b];null==c&&(c=V.da.Pa);this.b=c;break;case V.da.sa.mc:this.b<<=1,this.v=this.b&V.da.Pa+1}}a&=~V.la.vb;this.v&&(a|=V.la.vb);a&=~V.la.qb;this.m&& k.Fc=function(){var a=this.i,a=a&~X.la.ub;if((Ab(this.a)&64)<<1&&(a|=X.la.ub,a!=this.i)){var b,c;b=this.l&1;switch(this.l>>1&7){case X.da.sa.Sb:this.s=this.s<<1|b;break;case X.da.sa.Zb:b=ec(this);this.h[b]=X.da.Pa;break;case X.da.sa.Tb:this.b=this.b<<1|b;break;case X.da.sa.tc:b=ec(this);c=this.b&X.da.Pa;this.h[b]=c;break;case X.da.sa.mc:b=ec(this);c=this.h[b];null==c&&(c=X.da.Pa);this.b=c;break;case X.da.sa.nc:this.b<<=1,this.v=this.b&X.da.Pa+1}}a&=~X.la.vb;this.v&&(a|=X.la.vb);a&=~X.la.qb;this.o&&
(a|=V.la.qb);return this.i=a};k.Pc=function(a,b){this.G=b};k.Sc=function(a,b){this.o=b};k.Rc=function(a,b){this.L=b};k.Qc=function(a,b){this.H=b};U.Ya={0:T.prototype.Bc,1:T.prototype.Cc,2:T.prototype.Dc,3:T.prototype.Ac};U.Za={2:T.prototype.Kc,3:T.prototype.Mc,4:T.prototype.Lc,5:T.prototype.Nc,6:T.prototype.Oc};V.Ya={66:T.prototype.Ec};V.Za={66:T.prototype.Pc,98:T.prototype.Sc,162:T.prototype.Rc,194:T.prototype.Qc}; (a|=X.la.qb);return this.i=a};k.Qc=function(a,b){this.G=b};k.Tc=function(a,b){this.l=b};k.Sc=function(a,b){this.K=b};k.Rc=function(a,b){this.H=b};W.Ya={0:V.prototype.Cc,1:V.prototype.Dc,2:V.prototype.Ec,3:V.prototype.Bc};W.Za={2:V.prototype.Lc,3:V.prototype.Nc,4:V.prototype.Mc,5:V.prototype.Oc,6:V.prototype.Pc};X.Ya={66:V.prototype.Fc};X.Za={66:V.prototype.Qc,98:V.prototype.Tc,162:V.prototype.Sc,194:V.prototype.Rc};
ta(function(){for(var a=z(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new T(d);Ia(d,c)}});function ec(a){u.call(this,"ROM",a,ec);this.b=null;this.m=a.addr;this.c=a.size;this.o=a.writable;this.g=a.alias;this.h=a.file;this.s=ba(this.h);if(this.h){a=this.h;var b=ca(this.s);"json"!=b&&"hex"!=b&&(a=ia()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){fc(c,a,b,f)})}}x(ec);var gc=[0,5]; ua(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new V(d);Ja(d,c)}});function fc(a){u.call(this,"ROM",a,fc);this.b=null;this.l=a.addr;this.c=a.size;this.o=a.writable;this.g=a.alias;this.h=a.file;this.s=ba(this.h);if(this.h){a=this.h;var b=da(this.s);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;q(a,null,!0,function(a,b,f){gc(c,a,b,f)})}}y(fc);var hc=[0,5];
ec.prototype.ia=function(a,b,c,d){this.l=b;this.a=c;this.K=d;hc(this)};ec.prototype.Z=function(){this.i&&(this.K&&this.K.a(this.id,this.m,this.c,this.i),delete this.i);return!0};ec.prototype.ba=function(){return!0}; fc.prototype.ia=function(a,b,c,d){this.m=b;this.a=c;this.L=d;ic(this)};fc.prototype.Y=function(){this.i&&(this.L&&this.L.a(this.id,this.l,this.c,this.i),delete this.i);return!0};fc.prototype.ba=function(){return!0};
function fc(a,b,c,d){if(d)a.J("Unable to load system ROM (error "+d+": "+b+")");else{Fa(a.gb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.b=f;else if(h)for(a.b=Array(4*h.length),d=c=0;c<h.length;c++)a.b[d++]=h[c]&255,a.b[d++]=h[c]>>8&255,a.b[d++]=h[c]>>16&255,a.b[d++]=h[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){t("Empty ROM: "+b);return}if(1==a.b.length){t(a.b[0]);return}}catch(g){a.J("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm, function gc(a,b,c,d){if(d)a.J("Unable to load system ROM (error "+d+": "+b+")");else{Ga(a.gb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.b=f;else if(h)for(a.b=Array(4*h.length),d=c=0;c<h.length;c++)a.b[d++]=h[c]&255,a.b[d++]=h[c]>>8&255,a.b[d++]=h[c]>>16&255,a.b[d++]=h[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){r("Empty ROM: "+b);return}if(1==a.b.length){r(a.b[0]);return}}catch(g){a.J("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=aa(b[e]);hc(a)}} " ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=aa(b[e]);ic(a)}}
function hc(a){if(!Ka(a))if(!a.h)A(a);else if(a.b&&a.l){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size (0x"+n(a.b.length)+") does not match specified size ("+("0x"+n(a.c))+")";a.j.oa=!0;a.J(b)}else if(ic(a,a.m)){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.l,h=d.c,g=[],l=d.m>>>f.c;0<h&&l<f.b.length;)g.push(f.b[l++]),h-=f.l;f=d.l;d=d.c;h=0;for(e>>>=f.c;0<d&&e<f.b.length;){l=g[h++];if(!l)break;f.b[e++]=l;d-=f.l}}delete a.b}A(a)}} function ic(a){if(!La(a))if(!a.h)B(a);else if(a.b&&a.m){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size (0x"+n(a.b.length)+") does not match specified size ("+("0x"+n(a.c))+")";a.j.oa=!0;a.J(b)}else if(jc(a,a.l)){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.m,h=d.c,g=[],l=d.l>>>f.c;0<h&&l<f.b.length;)g.push(f.b[l++]),h-=f.m;f=d.m;d=d.c;h=0;for(e>>>=f.c;0<d&&e<f.b.length;){l=g[h++];if(!l)break;f.b[e++]=l;d-=f.m}}delete a.b}B(a)}}
function ic(a,b){if(Sa(a.l,b,a.c,a.o?1:fb)){var c;for(c=0;c<a.b.length;c++)Xa(a.l,b+c,a.b[c]);if(a.o&&256==b){for(c=0;c<gc.length;c++)Xa(a.l,gc[c],118);Fb(a.a,function(a){return function(b){if(0<=gc.indexOf(b)){var c=!1,h=a.a,g=a.K;if(5==b)switch(c=!0,h.D){case 2:jc(a,String.fromCharCode(h.F));break;case 9:for(var l=Mb(h),m="",q=255;q--;){var p=a.a.I(l++);if(36==p)break;m+=String.fromCharCode(p)}jc(a,m);break;default:c=!1}c?$b.call(h):g&&(a.Y("\nCP/M vector 0x"+n(b,4)),C(h,b),vb(g));b=!0}else b=!1; function jc(a,b){if(Ta(a.m,b,a.c,a.o?1:gb)){var c;for(c=0;c<a.b.length;c++)Ya(a.m,b+c,a.b[c]);if(a.o&&256==b){for(c=0;c<hc.length;c++)Ya(a.m,hc[c],118);Gb(a.a,function(a){return function(b){if(0<=hc.indexOf(b)){var c=!1,h=a.a,g=a.L;if(5==b)switch(c=!0,h.C){case 2:kc(a,String.fromCharCode(h.D));break;case 9:for(var l=Nb(h),m="",t=255;t--;){var p=a.a.I(l++);if(36==p)break;m+=String.fromCharCode(p)}kc(a,m);break;default:c=!1}c?ac.call(h):g&&(a.Z("\nCP/M vector 0x"+n(b,4)),D(h,b),wb(g));b=!0}else b=!1;
return b}}(a));Ib(a.a,b)}return!0}return!1}function jc(a,b){b=b.replace(/\r/g,"");a.ma&&(a.ma.value+=b,a.ma.scrollTop=a.ma.scrollHeight)}ta(function(){for(var a=z(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new ec(d);Ia(d,c)}});function kc(a){u.call(this,"RAM",a,kc);this.g=a.addr;this.c=a.size;this.b=!1}x(kc);k=kc.prototype;k.ia=function(a,b,c,d){this.l=b;this.a=c;this.K=d;A(this)};k.Z=function(a,b){b||this.reset();return!0};k.ba=function(a){return a?this.save():!0}; return b}}(a));Jb(a.a,b)}return!0}return!1}function kc(a,b){b=b.replace(/\r/g,"");a.ma&&(a.ma.value+=b,a.ma.scrollTop=a.ma.scrollHeight)}ua(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new fc(d);Ja(d,c)}});function lc(a){u.call(this,"RAM",a,lc);this.g=a.addr;this.c=a.size;this.b=!1}y(lc);k=lc.prototype;k.ia=function(a,b,c,d){this.m=b;this.a=c;this.L=d;B(this)};k.Y=function(a,b){b||this.reset();return!0};k.ba=function(a){return a?this.save():!0};
k.reset=function(){!this.b&&this.c&&Sa(this.l,this.g,this.c,1)&&(this.b=!0);this.b||t("No RAM allocated")};k.save=function(){return null};k.restore=function(){return!0};ta(function(){for(var a=z(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new kc(d);Ia(d,c)}});function lc(a){u.call(this,"Keyboard",a,lc);(a=a.model)&&!mc[a]&&va("Unrecognized Keyboard model: "+a);this.c=mc[a]||{};this.reset();A(this)}x(lc); k.reset=function(){!this.b&&this.c&&Ta(this.m,this.g,this.c,1)&&(this.b=!0);this.b||r("No RAM allocated")};k.save=function(){return null};k.restore=function(){return!0};ua(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new lc(d);Ja(d,c)}});function mc(a){u.call(this,"Keyboard",a,mc);(a=a.model)&&!nc[a]&&wa("Unrecognized Keyboard model: "+a);this.c=nc[a]||{};this.reset();B(this)}y(mc);
var W={bd:1,cd:3,dd: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,Wc:65,Zc:66,$c:67,ed:68,E:69,ld:70,rd:71,sd:72,td:73,vd:74,wd:75,xd:76,Ad:77,Cd:78,Ed:79,Gd:80,Q:81,Md:82,Od:83,Wd:84,Yd:85,ae:86,be:87,ce:88,ee:89,fe:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,ge:97,he:98,ie:99,d:100,e:101,je:102,ke:103,le:104,me:105,ne:106,k:107,oe:108, var Y={bd:1,cd:3,dd: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,Xc:65,Zc:66,$c:67,ed:68,E:69,ld:70,rd:71,sd:72,td:73,vd:74,wd:75,xd:76,Ad:77,Cd:78,Ed:79,Gd:80,Q:81,Md:82,Od:83,Wd:84,Yd:85,ae:86,be:87,ce:88,ee:89,fe:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,ge:97,he:98,ie:99,d:100,e:101,je:102,ke:103,le:104,me:105,ne:106,k:107,oe:108,
pe:109,n:110,qe:111,p:112,q:113,r:114,re:115,t:116,se:117,te:118,ue:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},nc={65:37,68:39,76:32},oc={W:1978.1,f:{},Ca:{},Da:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},Z={W:100,f:{},Ca:{},Da:{},Xc:{X:130},aa:{X:130,cc:1,bc:2,ac:4,$b:8,dc:16,xb:32,rb:63,nc:64,ad:128,INIT:0},Zb:127};Z.f[46]=3;Z.f[80]=5;Z.f[79]=6;Z.f[89]=7;Z.f[84]=8;Z.f[87]=9;Z.f[81]=10;Z.f[39]=16;Z.f[W["]"]]=20;Z.f[W["}"]]=148;Z.f[W["["]]=21;Z.f[W["{"]]=149;Z.f[73]=22; pe:109,n:110,qe:111,p:112,q:113,r:114,re:115,t:116,se:117,te:118,ue:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},oc={65:37,68:39,76:32},pc={W:1978.1,f:{},Ca:{},Da:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},Z={W:100,f:{},Ca:{},Da:{},Ub:{X:130,INIT:127},aa:{X:130,dc:1,cc:2,bc:4,ac:8,ec:16,xb:32,rb:63,oc:64,ad:128,INIT:0},$b:127};Z.f[46]=3;Z.f[80]=5;Z.f[79]=6;Z.f[89]=7;Z.f[84]=8;Z.f[87]=9;Z.f[81]=10;Z.f[39]=16;Z.f[Y["]"]]=20;Z.f[Y["}"]]=148;Z.f[Y["["]]=21;Z.f[Y["{"]]=149;Z.f[73]=22;
Z.f[85]=23;Z.f[82]=24;Z.f[69]=25;Z.f[W["1"]]=26;Z.f[W["!"]]=154;Z.f[37]=32;Z.f[40]=34;Z.f[117]=35;Z.f[19]=35;Z.f[W["`"]]=36;Z.f[W["~"]]=164;Z.f[W["-"]]=37;Z.f[W._]=165;Z.f[W["9"]]=38;Z.f[W["("]]=166;Z.f[W["7"]]=39;Z.f[W["&"]]=167;Z.f[W["4"]]=40;Z.f[W.$]=168;Z.f[W["3"]]=41;Z.f[W["#"]]=169;Z.f[27]=42;Z.f[38]=48;Z.f[114]=49;Z.f[112]=50;Z.f[8]=51;Z.f[W["="]]=52;Z.f[W["+"]]=180;Z.f[W["0"]]=53;Z.f[W[")"]]=181;Z.f[W["8"]]=54;Z.f[W["*"]]=182;Z.f[W["6"]]=55;Z.f[W["^"]]=183;Z.f[W["5"]]=56;Z.f[W["%"]]=184; Z.f[85]=23;Z.f[82]=24;Z.f[69]=25;Z.f[Y["1"]]=26;Z.f[Y["!"]]=154;Z.f[37]=32;Z.f[40]=34;Z.f[117]=35;Z.f[19]=35;Z.f[Y["`"]]=36;Z.f[Y["~"]]=164;Z.f[Y["-"]]=37;Z.f[Y._]=165;Z.f[Y["9"]]=38;Z.f[Y["("]]=166;Z.f[Y["7"]]=39;Z.f[Y["&"]]=167;Z.f[Y["4"]]=40;Z.f[Y.$]=168;Z.f[Y["3"]]=41;Z.f[Y["#"]]=169;Z.f[27]=42;Z.f[38]=48;Z.f[114]=49;Z.f[112]=50;Z.f[8]=51;Z.f[Y["="]]=52;Z.f[Y["+"]]=180;Z.f[Y["0"]]=53;Z.f[Y[")"]]=181;Z.f[Y["8"]]=54;Z.f[Y["*"]]=182;Z.f[Y["6"]]=55;Z.f[Y["^"]]=183;Z.f[Y["5"]]=56;Z.f[Y["%"]]=184;
Z.f[W["2"]]=57;Z.f[W["@"]]=185;Z.f[9]=58;Z.f[103]=64;Z.f[115]=65;Z.f[113]=66;Z.f[96]=67;Z.f[10]=68;Z.f[W["\\"]]=69;Z.f[W["|"]]=197;Z.f[76]=70;Z.f[75]=71;Z.f[71]=72;Z.f[70]=73;Z.f[65]=74;Z.f[104]=80;Z.f[2013]=81;Z.f[98]=82;Z.f[97]=83;Z.f[W["'"]]=85;Z.f[W['"']]=213;Z.f[W[";"]]=86;Z.f[W[":"]]=214;Z.f[74]=87;Z.f[72]=88;Z.f[68]=89;Z.f[83]=90;Z.f[110]=96;Z.f[118]=97;Z.f[101]=98;Z.f[100]=99;Z.f[13]=100;Z.f[W["."]]=101;Z.f[W[">"]]=229;Z.f[W[","]]=102;Z.f[W["<"]]=230;Z.f[78]=103;Z.f[66]=104;Z.f[88]=105; Z.f[Y["2"]]=57;Z.f[Y["@"]]=185;Z.f[9]=58;Z.f[103]=64;Z.f[115]=65;Z.f[113]=66;Z.f[96]=67;Z.f[118]=68;Z.f[Y["\\"]]=69;Z.f[Y["|"]]=197;Z.f[76]=70;Z.f[75]=71;Z.f[71]=72;Z.f[70]=73;Z.f[65]=74;Z.f[104]=80;Z.f[2013]=81;Z.f[98]=82;Z.f[97]=83;Z.f[Y["'"]]=85;Z.f[Y['"']]=213;Z.f[Y[";"]]=86;Z.f[Y[":"]]=214;Z.f[74]=87;Z.f[72]=88;Z.f[68]=89;Z.f[83]=90;Z.f[110]=96;Z.f[116]=97;Z.f[101]=98;Z.f[100]=99;Z.f[13]=100;Z.f[Y["."]]=101;Z.f[Y[">"]]=229;Z.f[Y[","]]=102;Z.f[Y["<"]]=230;Z.f[78]=103;Z.f[66]=104;Z.f[88]=105;
Z.f[119]=106;Z.f[105]=112;Z.f[99]=113;Z.f[102]=114;Z.f[109]=115;Z.f[W["/"]]=117;Z.f[W["?"]]=245;Z.f[77]=118;Z.f[W[" "]]=119;Z.f[86]=120;Z.f[67]=121;Z.f[90]=122;Z.f[120]=123;Z.f[17]=124;Z.f[16]=125;Z.f[20]=126;Z.Ca={l4:Z.aa.cc,l3:Z.aa.bc,l2:Z.aa.ac,l1:Z.aa.$b,locked:Z.aa.dc,online:Z.aa.xb,local:~Z.aa.xb};var mc={SI1978:oc,VT100:Z}; Z.f[119]=106;Z.f[105]=112;Z.f[99]=113;Z.f[102]=114;Z.f[109]=115;Z.f[Y["/"]]=117;Z.f[Y["?"]]=245;Z.f[77]=118;Z.f[Y[" "]]=119;Z.f[86]=120;Z.f[67]=121;Z.f[90]=122;Z.f[120]=123;Z.f[17]=124;Z.f[16]=125;Z.f[20]=126;Z.Ca={l4:Z.aa.dc,l3:Z.aa.cc,l2:Z.aa.bc,l1:Z.aa.ac,locked:Z.aa.ec,online:Z.aa.xb,local:~Z.aa.xb};var nc={SI1978:pc,VT100:Z};
lc.prototype.R=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.w[e]){if("led"==a&&this.c.Ca[b])return this.w[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return pc(d,a,!0)},c.onkeyup=function(a){return pc(d,a,!1)},!0;default:if(this.c.Da&&void 0!==this.c.Da[b])return this.w[e]=c,a=function(a,b){return function(){qc(a,b,!0)}}(this,b),b=function(a,b){return function(){qc(a,b,!1)}}(this,b),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=a,c.onmouseup=c.onmouseout= mc.prototype.R=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.w[e]){if("led"==a&&this.c.Ca[b])return this.w[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return qc(d,a,!0)},c.onkeyup=function(a){return qc(d,a,!1)},!0;default:if(this.c.Da&&void 0!==this.c.Da[b])return this.w[e]=c,a=function(a,b){return function(){rc(a,b,!0)}}(this,b),b=function(a,b){return function(){rc(a,b,!1)}}(this,b),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=a,c.onmouseup=c.onmouseout=
b),!0}}return!1};lc.prototype.ia=function(a,b,c,d){this.a=c;this.K=d;this.G=Oa(a,"ChipSet");Za(b,this,this.c.Ya);$a(b,this,this.c.Za)};lc.prototype.Z=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};lc.prototype.ba=function(a){return a?this.save():!0};Z.INIT=[[Z.aa.INIT,-1]];k=lc.prototype;k.reset=function(){this.b=[];this.c.INIT&&!this.restore(this.c.INIT)&&this.J("reset error")};k.save=function(){var a=new D(this);switch(this.c.W){case Z.W:F(a,0,[this.g])}return a.data()}; b),!0}}return!1};mc.prototype.ia=function(a,b,c,d){this.a=c;this.L=d;this.G=Pa(a,"ChipSet");$a(b,this,this.c.Ya);ab(b,this,this.c.Za)};mc.prototype.Y=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};mc.prototype.ba=function(a){return a?this.save():!0};Z.INIT=[[Z.aa.INIT,Z.Ub.INIT,-1]];k=mc.prototype;k.reset=function(){this.b=[];this.c.INIT&&!this.restore(this.c.INIT)&&this.J("reset error")};
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.c.W){case oc.W:return!0;case Z.W:return this.g=b[0],rc(this,this.g&Z.aa.rb),this.l=b[1],!0}return!1};function rc(a,b){for(var c in a.c.Ca){var d=a.w["led-"+c];if(d){var e=a.c.Ca[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}}function pc(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=nc[e]||e,!a.c.f[e]){for(var f in a.c.Da)if(a.c.Da[f]===e){e=f;break a}e=null}e&&(d=qc(a,e,c),b.preventDefault());return d} k.save=function(){var a=new E(this);switch(this.c.W){case Z.W:G(a,0,[this.h,this.g,-1])}return a.data()};k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.c.W){case pc.W:return!0;case Z.W:return this.h=b[0],sc(this,this.h&Z.aa.rb),this.g=b[1],this.m=b[2],!0}return!1};function sc(a,b){for(var c in a.c.Ca){var d=a.w["led-"+c];if(d){var e=a.c.Ca[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}}
function qc(a,b,c){var d;a:{for(d=0;d<a.b.length;d++)if(a.b[d].pb==b)break a;d=-1}if(c)0>d?a.b.push({pb:b,lb:Date.now(),Qa:!1}):(a.b[d].lb=Date.now(),a.b[d].Qa=!1);else if(0<=d){if(!a.b[d].Qa){var e=a.b[d].lb;if(e&&100>Date.now()-e)return a.b[d].Qa=!0,sc(a),!0}a.b.splice(d,1)}if(a.G)switch(b){case "1p":cc(a.G,U.na.gc,c);break;case "2p":cc(a.G,U.na.kc,c);break;case "coin":cc(a.G,U.na.Vb,c);break;case "left":cc(a.G,U.na.ic,c);break;case "right":cc(a.G,U.na.jc,c);break;case "fire":cc(a.G,U.na.hc,c)}return!0} function qc(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=oc[e]||e,!a.c.f[e]){for(var f in a.c.Da)if(a.c.Da[f]===e){e=f;break a}e=null}e&&(d=rc(a,e,c),b.preventDefault());return d}
function sc(a){for(var b=0,c=-1;b<a.b.length;){if(a.b[b].Qa){var d=a.b[b].pb,e=100-(Date.now()-a.b[b].lb);if(0<e){if(0>c||c>e)c=e}else{qc(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){sc(a)},c)}k.Fc=function(){var a=0;0<=this.l&&this.l<this.b.length&&(a=this.b[this.l++],a=Z.f[a.pb],a&128&&(a&=127),this.Y("keymap: 0x"+n(a,2)));a||(a=Z.Zb);return a};k.Tc=function(a,b){this.g=b;rc(this,b&Z.aa.rb);if(b&Z.aa.nc){this.l=0;var c=this.a;c.v=c.v&-8|9}};Z.Ya={130:lc.prototype.Fc};Z.Za={130:lc.prototype.Tc}; function rc(a,b,c){var d;a:{for(d=0;d<a.b.length;d++)if(a.b[d].pb==b)break a;d=-1}if(c)0>d?a.b.push({pb:b,lb:Date.now(),Qa:!1}):(a.b[d].lb=Date.now(),a.b[d].Qa=!1);else if(0<=d){if(!a.b[d].Qa){var e=a.b[d].lb;if(e&&100>Date.now()-e)return a.b[d].Qa=!0,uc(a),!0}a.b.splice(d,1)}if(a.G)switch(b){case "1p":dc(a.G,W.na.hc,c);break;case "2p":dc(a.G,W.na.lc,c);break;case "coin":dc(a.G,W.na.Wb,c);break;case "left":dc(a.G,W.na.jc,c);break;case "right":dc(a.G,W.na.kc,c);break;case "fire":dc(a.G,W.na.ic,c)}return!0}
ta(function(){for(var a=z(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new lc(d);Ia(d,c)}}); function uc(a){for(var b=0,c=-1;b<a.b.length;){if(a.b[b].Qa){var d=a.b[b].pb,e=100-(Date.now()-a.b[b].lb);if(0<e){if(0>c||c>e)c=e}else{rc(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){uc(a)},c)}k.Gc=function(){var a=this.g;0<=this.m&&(this.m<this.b.length?(a=this.b[this.m++],a=Z.f[a.pb],a&128&&(a&=127)):(this.m=-1,a=Z.$b),this.g=a,Yb(this.a,1));return a};k.Uc=function(a,b){this.h=b;sc(this,b&Z.aa.rb);b&Z.aa.oc&&(this.m=0,Yb(this.a,1))};Z.Ya={130:mc.prototype.Gc};Z.Za={130:mc.prototype.Uc};
function tc(a,b,c,d,e){var f=this;this.zb=oa("Gecko/");var h=["","moz","ms","webkit"];u.call(this,"Video",a,tc);this.v=a.screenWidth;this.u=a.screenHeight;this.V=a.bufferAddr;this.uc=a.bufferRAM;var g=a.bufferFormat;this.C=g&&uc[g.toUpperCase()]||vc;this.ka=a.bufferCols;this.G=a.bufferRows;this.qc=this.P=a.cellWidth||1;this.M=a.cellHeight||1;this.bb=null;this.yb=!1;this.ja=a.bufferBits||1;this.vc=a.bufferLeft||0;if(this.c=a.bufferRotate)this.c=this.c%360,0<this.c&&(this.c-=360),-90!=this.c&&(this.J("unsupported buffer rotation: "+ ua(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new mc(d);Ja(d,c)}});
this.c),this.c=0);this.ib=a.interruptRate;this.wc=a.refreshRate||60;this.s=b;this.g=c;this.ha=(this.Rb=d)||b||null;this.rc=this.v;this.tc=this.u;this.tb=this.v/this.ka|0;this.wb=this.u/this.G|0;1<this.M&&this.G++;b=a.smoothing;(c=za.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.g[d]){this.g[d]=b;break}if(this.h=a.screenRotate)this.h=this.h%360,0<this.h&&(this.h-=360),-90!=this.h?(this.J("unsupported screen rotation: "+ function vc(a,b,c,d,e){var f=this;this.zb=pa("Gecko/");var h=["","moz","ms","webkit"];u.call(this,"Video",a,vc);this.B=a.screenWidth;this.v=a.screenHeight;this.U=a.bufferAddr;this.vc=a.bufferRAM;var g=a.bufferFormat;this.G=g&&wc[g.toUpperCase()]||xc;this.ca=a.bufferCols;this.H=a.bufferRows;this.rc=this.P=a.cellWidth||1;this.M=a.cellHeight||1;this.bb=null;this.yb=!1;this.ka=a.bufferBits||1;this.wc=a.bufferLeft||0;if(this.c=a.bufferRotate)this.c=this.c%360,0<this.c&&(this.c-=360),-90!=this.c&&(this.J("unsupported buffer rotation: "+
this.h),this.h=0):(this.g.translate(0,this.u),this.g.rotate(this.h*Math.PI/180),this.g.scale(this.u/this.v,this.v/this.u));if(this.b=e)if(this.b.ua=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.ua){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){wc(f,document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1); this.c),this.c=0);this.ib=a.interruptRate;this.xc=a.refreshRate||60;this.u=b;this.g=c;this.ga=(this.Rb=d)||b||null;this.sc=this.B;this.uc=this.v;this.tb=this.B/this.ca|0;this.wb=this.v/this.H|0;1<this.M&&this.H++;b=a.smoothing;(c=Aa.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.g[d]){this.g[d]=b;break}if(this.h=a.screenRotate)this.h=this.h%360,0<this.h&&(this.h-=360),-90!=this.h?(this.J("unsupported screen rotation: "+
break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){wc(f,null)},!1);break}}if(this.H=a.fontROM)"json"!=ca(this.H)&&(this.H=ia()+"/api/v1/dump?file="+this.H+"&format=bytes"),r(this.H,null,!0,function(a,b,c){xc(f,a,b,c)});this.hb={}}x(tc);var vc=0,uc={SI1978:1,VT100:2}; this.h),this.h=0):(this.g.translate(0,this.v),this.g.rotate(this.h*Math.PI/180),this.g.scale(this.v/this.B,this.B/this.v));if(this.b=e)if(this.b.ua=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.ua){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){yc(f,document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1);
tc.prototype.ia=function(a,b,c,d){this.A=a;this.l=b;this.a=c;this.K=d;this.i=this.ka*this.P;this.B=this.G*this.M;b=this.i;c=this.B;this.c&&(b=this.B,c=this.i);this.ta=(this.i*this.ja>>3)*this.B;if(this.uc||Sa(this.l,this.V,this.ta,3))1<this.P?yc(this,this.ka*this.G):(this.Ab=this.g.createImageData(b,c),this.Cb=16/this.ja|0,yc(this,this.ta>>1)),this.o=document.createElement("canvas"),this.o.width=b,this.o.height=c,this.cb=this.o.getContext("2d"),this.N={},this.ca=1<<this.ja,this.O=Array(this.ca+2), break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){yc(f,null)},!1);break}}if(this.K=a.fontROM)"json"!=da(this.K)&&(this.K=ja()+"/api/v1/dump?file="+this.K+"&format=bytes"),q(this.K,null,!0,function(a,b,c){zc(f,a,b,c)});this.hb={}}y(vc);var xc=0,wc={SI1978:1,VT100:2};
this.O[0]=[0,0,0,255],this.O[1]=[255,255,255,255],1==this.C&&(this.O[this.ca+0]=[255,255,0,255],this.O[this.ca+1]=[0,255,0,255]),2==this.C&&(this.Db=60,this.eb=!1,this.U=Array(this.ka));if(this.m=Oa(a,"Keyboard")){for(var e in this.hb)this.m.R("led",e,this.hb[e]);this.s&&this.m.R(this.Rb?"textarea":"canvas","kbd",this.ha)}this.H||A(this)}; vc.prototype.ia=function(a,b,c,d){this.A=a;this.m=b;this.a=c;this.L=d;this.l=this.ca*this.P;this.F=this.H*this.M;b=this.l;c=this.F;this.c&&(b=this.F,c=this.l);this.ta=(this.l*this.ka>>3)*this.F;if(this.vc||Ta(this.m,this.U,this.ta,3))1<this.P?Ac(this,(this.ca+1)*this.H):(this.Ab=this.g.createImageData(b,c),this.Cb=16/this.ka|0,Ac(this,this.ta>>1)),this.s=document.createElement("canvas"),this.s.width=b,this.s.height=c,this.cb=this.s.getContext("2d"),this.N={},this.ha=1<<this.ka,this.O=Array(this.ha+
function xc(a,b,c,d){if(d)a.J("Unable to load font ROM (error "+d+": "+b+")");else{Fa(a.gb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){t("Empty font ROM: "+b);return}if(1==f.length){t(f[0]);return}if(2048==f.length)zc(a,f);else{a.J("Unrecognized font data length ("+f.length+")");return}}catch(h){a.J("Font ROM data error: "+h.message);return}(a.g||a.K)&&A(a)}} 2),this.O[0]=[0,0,0,255],this.O[1]=[255,255,255,255],1==this.G&&(this.O[this.ha+0]=[255,255,0,255],this.O[this.ha+1]=[0,255,0,255]),2==this.G&&(this.Db=60,this.eb=!1,this.ja=Array(this.ca));if(this.o=Pa(a,"Keyboard")){for(var e in this.hb)this.o.R("led",e,this.hb[e]);this.u&&this.o.R(this.Rb?"textarea":"canvas","kbd",this.ga)}this.K||B(this)};
function zc(a,b){a.bb=b;a.yb=2==a.C;a.N[96]=[Ac(a,a.P,a.M),Ac(a,a.P,a.M,a.eb)];a.N[64]=[Ac(a,2*a.P,a.M),Ac(a,2*a.P,a.M,a.eb)];a.N[32]=a.N[0]=[Ac(a,2*a.P,2*a.M),Ac(a,2*a.P,2*a.M,a.eb)]} function zc(a,b,c,d){if(d)a.J("Unable to load font ROM (error "+d+": "+b+")");else{Ga(a.gb,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)Bc(a,f);else{a.J("Unrecognized font data length ("+f.length+")");return}}catch(h){a.J("Font ROM data error: "+h.message);return}(a.g||a.L)&&B(a)}}
function Ac(a,b,c,d){var e=8>=a.qc?8:16,f=8<e?15:0,h=a.bb.length/e,g=!1===d,l={P:b,M:c};l.canvas=document.createElement("canvas");l.canvas.width=16*b;l.canvas.height=h/16*c;l.context=l.canvas.getContext("2d");for(var m=l.context.createImageData(b,c),q=0;q<h;q++){for(var p=0,J=p;p<a.M;p++)for(var N=q*e+(f+p&e-1),N=d&&8==p?255:a.bb[N],X=0;X<c/a.M;X++){for(var G=0,v=0,E=v;v<a.P;v++){for(var O=N&128>>(7<v?7:v),G=a.yb&&!O&&G?G:O,Y=0;Y<b/a.P;Y++)g&&(G=!G),Bc(a,m,E,J,G?1:0),E++;G=O}J++}l.context.putImageData(m, function Bc(a,b){a.bb=b;a.yb=2==a.G;a.N[96]=[Cc(a,a.P,a.M),Cc(a,a.P,a.M,a.eb)];a.N[64]=[Cc(a,2*a.P,a.M),Cc(a,2*a.P,a.M,a.eb)];a.N[32]=a.N[0]=[Cc(a,2*a.P,2*a.M),Cc(a,2*a.P,2*a.M,a.eb)]}
(q&15)*b,(q>>4)*c)}return l} function Cc(a,b,c,d){var e=8>=a.rc?8:16,f=8<e?15:0,h=a.bb.length/e,g=!1===d,l={P:b,M:c};l.canvas=document.createElement("canvas");l.canvas.width=16*b;l.canvas.height=h/16*c;l.context=l.canvas.getContext("2d");for(var m=l.context.createImageData(b,c),t=0;t<h;t++){for(var p=0,w=p;p<a.M;p++)for(var ca=t*e+(f+p&e-1),ca=d&&8==p?255:a.bb[ca],I=0;I<c/a.M;I++){for(var S=0,v=0,F=v;v<a.P;v++){for(var J=ca&128>>(7<v?7:v),S=a.yb&&!J&&S?S:J,Q=0;Q<b/a.P;Q++)g&&(S=!S),Dc(a,m,F,w,S?1:0),F++;S=J}w++}l.context.putImageData(m,
tc.prototype.Z=function(){if(2==this.C){for(var a={0:[32,"SET-UP A"],2:[64,'TO EXIT PRESS "SET-UP"'],22:[96," T T T T T T T T T"],23:[96,"1234567890","1234567890","1234567890","1234567890","1234567890","1234567890","1234567890","1234567890"],24:[]},b=this.V,c=-1,d=-1,e,f=-(60==this.Db?2:5);f<this.G;f++){var h=a[f];if(0<=c){var g=!1,c=b+2;h?h.length?d=h[0]:(c=b-1,g=!0):32==d&&(h=a[f-1],d=0);e=d&96|c>>8&15|16;Xa(this.l,b++,e);Xa(this.l,b++,c&255); (t&15)*b,(t>>4)*c)}return l}
if(g)break}if(h)for(c=0,e=1;e<h.length;e++){for(var g=h[e],l=0;l<g.length;l++)Xa(this.l,b++,g.charCodeAt(l)|c);c^=128}Xa(this.l,b++,127);c=b}Cc(this)}return!0};tc.prototype.R=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.hb[b]=c,!0;switch(b){case "fullScreen":return this.w[b]=c,this.b&&this.b.ua?c.onclick=function(){d.ua()}:c.parentNode.removeChild(c),!0}return!1}; vc.prototype.Y=function(){if(2==this.G){for(var a={0:[32,"SET-UP A"],2:[64,'TO EXIT PRESS "SET-UP"'],22:[96," T T T T T T T T T"],23:[96,"1234567890","1234567890","1234567890","1234567890","1234567890","1234567890","1234567890","1234567890"],24:[]},b=this.U,c=-1,d=-1,e,f=-(60==this.Db?2:5);f<this.H;f++){var h=a[f];if(0<=c){var g=!1,c=b+2;h?h.length?d=h[0]:(c=b-1,g=!0):32==d&&(h=a[f-1],d=0);e=d&96|c>>8&15|16;Ya(this.m,b++,e);Ya(this.m,b++,c&255);
tc.prototype.ua=function(){var a=!1;if(this.b){if(this.b.ua){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.v/this.u;b>c&&(a=Math.round(c/b*100)+"%")}this.zb?(this.s.style.width=a,this.s.style.width=a,this.s.style.display="block",this.s.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.ua();a=!0}this.ha&&this.ha.focus()}return a}; if(g)break}if(h)for(c=0,e=1;e<h.length;e++){for(var g=h[e],l=0;l<g.length;l++)Ya(this.m,b++,g.charCodeAt(l)|c);c^=128}Ya(this.m,b++,127);c=b}Ec(this)}return!0};vc.prototype.R=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.hb[b]=c,!0;switch(b){case "fullScreen":return this.w[b]=c,this.b&&this.b.ua?c.onclick=function(){d.ua()}:c.parentNode.removeChild(c),!0}return!1};
function wc(a,b){!b&&a.b&&(a.zb?a.s.style.width=a.s.style.height="":a.b.style.width=a.b.style.height="")}function yc(a,b){a.Bb=b;a.ga=!1;if(void 0===a.L||a.L.length!=a.Bb)a.L=Array(a.Bb)}function Bc(a,b,c,d,e){d=a.c?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.C&&(208<=c&&236>c?e=a.ca+0:28<=c&&72>c&&(e=a.ca+1));a=a.O[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]} vc.prototype.ua=function(){var a=!1;if(this.b){if(this.b.ua){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.B/this.v;b>c&&(a=Math.round(c/b*100)+"%")}this.zb?(this.u.style.width=a,this.u.style.width=a,this.u.style.display="block",this.u.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.ua();a=!0}this.ga&&this.ga.focus()}return a};
function Cc(a){for(var b=a.V,c=-1,d=0,e=60==a.Db?2:5,f=0,h=0;d<a.G;){for(var g=0,l=b,m=c;;){var q=Va(a.l,l++);if(127==(q&127)){var p=Va(a.l,l++),c=p&96,b=(p&15)<<8|Va(a.l,l),b=b+(p&16?8192:16384);break}if(g<a.U.length)a.U[g++]=q;else break}if(e)e--;else{for(;g<a.U.length;)a.U[g++]=0;if(0<=m)for(l=0;l<g;l++){q=a.U[l];if(!a.ga||q!==a.L[f]){var p=a,J=a.cb,N=q&127;if(q=p.N[m][q&128?1:0]){var X=(N&15)*q.P,N=(N>>4)*q.M,G=void 0,v=void 0,E=void 0,O=void 0,Y=q.P,Gb=q.M;J?(G=l*p.P,v=d*p.M,E=p.P,O=p.M):(G= function yc(a,b){!b&&a.b&&(a.zb?a.u.style.width=a.u.style.height="":a.b.style.width=a.b.style.height="")}function Ac(a,b){a.Bb=b;a.V=!1;if(void 0===a.i||a.i.length!=a.Bb)a.i=Array(a.Bb)}function Dc(a,b,c,d,e){d=a.c?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.G&&(208<=c&&236>c?e=a.ha+0:28<=c&&72>c&&(e=a.ha+1));a=a.O[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]}
l*p.tb,v=d*p.wb,E=p.tb,O=p.wb);q.P>p.P&&(G*=2,E*=2);q.M>p.M&&(0==m&&(N+=p.M),Gb=p.M);J?J.drawImage(q.canvas,X,N,Y,Gb,G,v,E,O):(G+=0,v+=0,p.g.drawImage(q.canvas,X,N,Y,Gb,G,v,E,O))}h++}f++}d++}}a.ga=!0;h&&a.cb&&a.g.drawImage(a.o,0,0,a.i,a.B-a.M,0,0,a.rc,a.tc)} function Ec(a){for(var b=a.U,c=-1,d=0,e=60==a.Db?2:5,f=0,h=0;d<a.H;){var g=0,l=b,m=c,t=a.ca;for(96!=m&&(t>>=1);;){var p=Wa(a.m,l++);if(127==(p&127)){var w=Wa(a.m,l++),c=w&96,b=(w&15)<<8|Wa(a.m,l),b=b+(w&16?8192:16384);break}if(g<t)a.ja[g++]=p;else break}if(e)e--;else{for(;g<a.ja.length;)a.ja[g++]=0;if(0<=m)for(l=a.V&&a.i[f]==t,a.i[f++]=t,t=0;t<g;t++){p=a.ja[t];if(!l||p!==a.i[f]){a.i[f]=p;var w=a,ca=a.cb,I=p&127;if(p=w.N[m][p&128?1:0]){var S=(I&15)*p.P,I=(I>>4)*p.M,v=void 0,F=void 0,J=void 0,Q=void 0,
ta(function(){for(var a=z(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=y(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a, tc=p.P,Hb=p.M;ca?(v=t*w.P,F=d*w.M,J=w.P,Q=w.M):(v=t*w.tb,F=d*w.wb,J=w.tb,Q=w.wb);p.P>w.P&&(v*=2,J*=2);p.M>w.M&&(0==m&&(I+=w.M),Hb=w.M);ca?ca.drawImage(p.canvas,S,I,tc,Hb,v,F,J,Q):(v+=0,F+=0,w.g.drawImage(p.canvas,S,I,tc,Hb,v,F,J,Q))}h++}f++}d++}}a.V=!0;h&&a.cb&&a.g.drawImage(a.s,0,0,a.l,a.F-a.M,0,0,a.sc,a.uc)}
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||za.aspect);f&&.3<=f&&3.33>=f&&(sa("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"));c.appendChild(f);var h=e.getContext("2d"),d=new tc(d,e,h,f,c);Ia(d,c)}}); ua(function(){for(var a=A(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=z(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,
function Dc(a){this.h=+a.adapter;switch(this.h){case 0:this.i=0;break;default:t("Unrecognized serial adapter #"+this.h);return}u.call(this,"SerialPort",a,Dc);var b=a.binding;if("console"!=b){var c;a=Ec;b&&(void 0===c&&(c="Panel"),(c=Ha(c,this.id))&&(b=c.w[b])&&this.R(null,a,b))}}x(Dc);var Ec="buffer";k=Dc.prototype; 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||Aa.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");pa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new vc(d,e,h,f,c);Ja(d,c)}});
k.R=function(a,b,c){switch(b){case Ec:return this.w[b]=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;(8===b||a.ctrlKey&&65<=b&&90>=b)&&a.preventDefault&&a.preventDefault();return!0},c.onkeypress=function(a){a=a||window.event;a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};k.ia=function(a,b,c,d){this.l=b;this.a=c;this.K=d;this.G=Oa(a,"ChipSet");Za(b,this,Fc,this.i);$a(b,this,Gc,this.i);A(this)}; function Fc(a){this.h=+a.adapter;switch(this.h){case 0:this.i=0;break;default:r("Unrecognized serial adapter #"+this.h);return}u.call(this,"SerialPort",a,Fc);var b=a.binding;if("console"!=b){var c;a=Gc;b&&(void 0===c&&(c="Panel"),(c=Ia(c,this.id))&&(b=c.w[b])&&this.R(null,a,b))}}y(Fc);var Gc="buffer";k=Fc.prototype;
k.Z=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){Hc(this)};k.save=function(){var a=new D(this),b=0,c=[];c[b++]=this.c;c[b++]=this.b;c[b++]=this.g;F(a,0,c);return a.data()};k.restore=function(a){return Hc(this,a[0])};function Hc(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.c=b[c++];a.b=b[c++];a.g=b[c++];return!0}k.zc=function(){return this.c};k.yc=function(){return this.b}; k.R=function(a,b,c){switch(b){case Gc:return this.w[b]=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;(8===b||a.ctrlKey&&65<=b&&90>=b)&&a.preventDefault&&a.preventDefault();return!0},c.onkeypress=function(a){a=a||window.event;a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};k.ia=function(a,b,c,d){this.m=b;this.a=c;this.L=d;this.G=Pa(a,"ChipSet");$a(b,this,Hc,this.i);ab(b,this,Ic,this.i);B(this)};
k.Jc=function(a,b){this.c=b};k.Ic=function(a,b){this.b=b};k.Hc=function(a,b){this.g=b};var Fc={0:Dc.prototype.zc,1:Dc.prototype.yc},Gc={0:Dc.prototype.Jc,1:Dc.prototype.Ic,2:Dc.prototype.Hc};ta(function(){for(var a=z(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Dc(d);Ia(d,c)}});function D(a,b,c){this.id=a.id;this.key=Ic(a,b,c);this.K=a.K;Jc(this,a.Nb)}function Ic(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a} k.Y=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){Jc(this)};k.save=function(){var a=new E(this),b=0,c=[];c[b++]=this.c;c[b++]=this.b;c[b++]=this.g;G(a,0,c);return a.data()};k.restore=function(a){return Jc(this,a[0])};function Jc(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.c=b[c++];a.b=b[c++];a.g=b[c++];return!0}k.Ac=function(){return this.c};k.zc=function(){return this.b};
D.prototype={constructor:D,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Jc(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}}}; k.Kc=function(a,b){this.c=b};k.Jc=function(a,b){this.b=b};k.Ic=function(a,b){this.g=b};var Hc={0:Fc.prototype.Ac,1:Fc.prototype.zc},Ic={0:Fc.prototype.Kc,1:Fc.prototype.Jc,2:Fc.prototype.Ic};ua(function(){for(var a=A(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Fc(d);Ja(d,c)}});function E(a,b,c){this.id=a.id;this.key=Kc(a,b,c);this.L=a.L;Lc(this,a.Nb)}function Kc(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
function Jc(a,b){a[a.id]={};b&&F(a,"parms",b);a.a=!1}function Kc(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Lc(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function Mc(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.a=!0):!1}function Nc(a,b){return a[a.id][b]||null}function F(a,b,c){try{a[a.id][b]=c}catch(d){}} E.prototype={constructor:E,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Lc(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(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 Oc(a,b,c){u.call(this,"Computer",a,Oc);this.j.S=!1;Pc(this,b);this.B=qb(this,"autoPower",a);this.g=0;this.L=a.busWidth||a.buswidth;this.b=Qc;this.u=null;this.o=this.H=!1;this.N=qb(this,"url")||"";(Math.random()+.1).toString(36);this.c=Rc(this);if(this.a=Ha("CPU",this.id)){this.K=Ha("Debugger",this.id);this.m=[];for(b=null;b=Oa(this,"Video",b);)this.m.push(b);this.l=new Qa({id:this.gb+".bus",busWidth:this.L},this.a,this.K);var d,e=Ga(this.id);if((this.h=Ha("Panel",this.id))&&this.h.ma)for(b= function Lc(a,b){a[a.id]={};b&&G(a,"parms",b);a.a=!1}function Mc(a){var b=!0;if(ma()){var c=JSON.stringify(a[a.id]);oa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Nc(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function Oc(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:ma()&&(b=na(a.key))?(a[a.id]=b,a.a=!0):!1}function Pc(a,b){return a[a.id][b]||null}function G(a,b,c){try{a[a.id][b]=c}catch(d){}}
0;b<e.length;b++)d=e[b],d.J=this.h.J,d.Y=this.h.Y,d.ma=this.h.ma;this.Y("PC8080 v1.23.3\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.ia&&d.ia(this,this.l,this.a,this.K);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.A=d:this.b=parseInt(d,10));var f;if(a=qb(this,"state")||(f=!0,a.state))b=this.C=a,f||(this.o=!0,this.b=Qc),this.b&&(this.v=new D(this,"1.23.3"),Mc(this.v)?b=null:delete this.v); function Qc(a,b,c){u.call(this,"Computer",a,Qc);this.j.S=!1;Rc(this,b);this.B=rb(this,"autoPower",a);this.g=0;this.K=a.busWidth||a.buswidth;this.b=Sc;this.u=null;this.o=this.H=!1;this.N=rb(this,"url")||"";(Math.random()+.1).toString(36);this.c=Tc(this);if(this.a=Ia("CPU",this.id)){this.L=Ia("Debugger",this.id);this.l=[];for(b=null;b=Pa(this,"Video",b);)this.l.push(b);this.m=new Ra({id:this.gb+".bus",busWidth:this.K},this.a,this.L);var d,e=Ha(this.id);if((this.h=Ia("Panel",this.id))&&this.h.ma)for(b=
!b&&this.b&&(b=Sc(this))&&(this.o=!0);if(b){var h=this;r(b,null,!0,function(a,b,c){c?(h.A=null,h.o=!1,h.J("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.u=b,h.H=!0);A(h)})}else A(this);this.w.power||(this.B=!0);!c&&this.B&&Tc(this,this.Ma)}else t("Unable to find CPU component")}x(Oc);var Qc=0; 0;b<e.length;b++)d=e[b],d.J=this.h.J,d.Z=this.h.Z,d.ma=this.h.ma;this.Z("PC8080 v1.23.3\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.ia&&d.ia(this,this.m,this.a,this.L);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.A=d:this.b=parseInt(d,10));var f;if(a=rb(this,"state")||(f=!0,a.state))b=this.F=a,f||(this.o=!0,this.b=Sc),this.b&&(this.v=new E(this,"1.23.3"),Oc(this.v)?b=null:delete this.v);
function Pc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.s=b}function qb(a,b,c){var d=b.toLowerCase(),d=za[b]||za[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 Tc(a,b,c){for(var d=Ga(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ka(f)){Ka(f,function(){Tc(a,b,c)});return}}b.call(a,c)} !b&&this.b&&(b=Uc(this))&&(this.o=!0);if(b){var h=this;q(b,null,!0,function(a,b,c){c?(h.A=null,h.o=!1,h.J("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.u=b,h.H=!0);B(h)})}else B(this);this.w.power||(this.B=!0);!c&&this.B&&Vc(this,this.Ma)}else r("Unable to find CPU component")}y(Qc);var Sc=0;
function Uc(a,b){var c=new D(a,"1.23.3","validate");if(Mc(c)&&Lc(c)){var d=Nc(c,"timestamp"),e=b?Nc(b,"timestamp"):"unknown";d!=e&&(a.J("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Oc.prototype; function Rc(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 rb(a,b,c){var d=b.toLowerCase(),d=Aa[b]||Aa[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 Vc(a,b,c){for(var d=Ha(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!La(f)){La(f,function(){Vc(a,b,c)});return}}b.call(a,c)}
k.Ma=function(a){void 0===a&&(a=this.b||(this.u?1:Qc));if(!this.g){this.g++;var b=!1,c=!1;this.G=!1;var d=this.v||new D(this,"1.23.3");if(-1==a)b=!0;else if(a>Qc){if(Mc(d,this.u)){this.i=new D(this,"1.23.3","failsafe");Mc(this.i)&&(Vc(this,d),a=2,Jc(this.i));F(this.i,"timestamp",ha());Kc(this.i);var e=this.b&&!this.o;if(1==a||ja("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=Lc(d)){var f=Nc(d,"code"),h=Nc(d,"data");f&&("ok"==f?Mc(d,h):("error"==f&& function Wc(a,b){var c=new E(a,"1.23.3","validate");if(Oc(c)&&Nc(c)){var d=Pc(c,"timestamp"),e=b?Pc(b,"timestamp"):"unknown";d!=e&&(a.J("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Qc.prototype;
"no machine state"!=h?(this.J("Error: "+h),"unable to verify user"==h&&(na("user",""),this.c=null)):this.Y(f+": "+h),Jc(d),Mc(d)?(c=Lc(d),e=!0):c=!1))}e&&Uc(this,c?d:null)}else 2==a&&d.clear()}else Uc(this);delete this.u;delete this.v}e=Ga(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=Wc(this,h,d,b,c));b=[d,a,c];-1!=a?Tc(this,this.Eb,b):this.Eb(b)}}; k.Ma=function(a){void 0===a&&(a=this.b||(this.u?1:Sc));if(!this.g){this.g++;var b=!1,c=!1;this.G=!1;var d=this.v||new E(this,"1.23.3");if(-1==a)b=!0;else if(a>Sc){if(Oc(d,this.u)){this.i=new E(this,"1.23.3","failsafe");Oc(this.i)&&(Xc(this,d),a=2,Lc(this.i));G(this.i,"timestamp",ia());Mc(this.i);var e=this.b&&!this.o;if(1==a||ka("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=Nc(d)){var f=Pc(d,"code"),h=Pc(d,"data");f&&("ok"==f?Oc(d,h):("error"==f&&
function Wc(a,b,c,d,e){if(!b.j.S){b.j.S=!0;if(b.Z){var f=null;e&&((f=Nc(c,b.id))||(f=Nc(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Z(f,d)&&f&&(t("Unable to restore state for "+b.type),a.C&&!a.H?(c.clear(),a.b=Qc,window&&window.location.reload()):a.G=!0,b.Z(null),e=!1)}if(!d&&b.sb)for(a=b.sb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e} "no machine state"!=h?(this.J("Error: "+h),"unable to verify user"==h&&(oa("user",""),this.c=null)):this.Z(f+": "+h),Lc(d),Oc(d)?(c=Nc(d),e=!0):c=!1))}e&&Wc(this,c?d:null)}else 2==a&&d.clear()}else Wc(this);delete this.u;delete this.v}e=Ha(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=Yc(this,h,d,b,c));b=[d,a,c];-1!=a?Vc(this,this.Eb,b):this.Eb(b)}};
k.Eb=function(a){var b=a[0],c=0>a[1];a=a[2];this.O=!0;this.j.S=!0;var d=this.w.power;d&&(d.textContent="Shutdown");this.a&&(Wc(this,this.a,b,c,a),ub(this.a));this.G&&(Vc(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.g=0}; function Yc(a,b,c,d,e){if(!b.j.S){b.j.S=!0;if(b.Y){var f=null;e&&((f=Pc(c,b.id))||(f=Pc(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Y(f,d)&&f&&(r("Unable to restore state for "+b.type),a.F&&!a.H?(c.clear(),a.b=Sc,window&&window.location.reload()):a.G=!0,b.Y(null),e=!1)}if(!d&&b.sb)for(a=b.sb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
function Vc(a,b){if(ja("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.c||"",d=b.toString(),e={app:"PC8080",ver:"1.23.3"};e.url=a.N;e.user=c;e.type="bug";e.data=d;r("http://www.pcjs.org/api/v1/report",e,!0)}} k.Eb=function(a){var b=a[0],c=0>a[1];a=a[2];this.O=!0;this.j.S=!0;var d=this.w.power;d&&(d.textContent="Shutdown");this.a&&(Yc(this,this.a,b,c,a),vb(this.a));this.G&&(Xc(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.g=0};
function Xc(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new D(a,"1.23.3"),h=new D(a,"1.23.3","validate"),g=ha();F(h,"timestamp",g);F(f,"timestamp",g);F(f,"version","1.23.3");F(f,"url",window?window.location.href:null);F(f,"browser",window?window.navigator.userAgent:"");a.a&&a.a.ba&&(c&&vb(a.a),d=a.a.ba(b,c),"object"===typeof d&&F(f,a.a.id,d),c&&(a.a.j.S=!1,!1===d&&(e=null)));for(var g=Ga(a.id),l=0;l<g.length;l++){var m=g[l];m.j.S&&(m.ba&&(d=m.ba(b,c),"object"===typeof d&&F(f,m.id,d)),c&& function Xc(a,b){if(ka("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.c||"",d=b.toString(),e={app:"PC8080",ver:"1.23.3"};e.url=a.N;e.user=c;e.type="bug";e.data=d;q("http://www.pcjs.org/api/v1/report",e,!0)}}
(m.j.S=!1,!1===d&&(e=null)))}e&&(c?(g=d=!1,b?(a.c&&Yc(a,a.c,f.toString()),Kc(h)&&Kc(f)||(e=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&f.clear(g)):e=f.toString());c&&(a.j.S=!1,b=a.w.power)&&(b.textContent="Power");a.g=0;return e}k.reset=function(){this.l&&this.l.reset&&this.l.reset();for(var a=Ga(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.l&&c.reset&&c.reset()}};k.start=function(a,b){for(var c=Ga(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}}; function Zc(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new E(a,"1.23.3"),h=new E(a,"1.23.3","validate"),g=ia();G(h,"timestamp",g);G(f,"timestamp",g);G(f,"version","1.23.3");G(f,"url",window?window.location.href:null);G(f,"browser",window?window.navigator.userAgent:"");a.a&&a.a.ba&&(c&&wb(a.a),d=a.a.ba(b,c),"object"===typeof d&&G(f,a.a.id,d),c&&(a.a.j.S=!1,!1===d&&(e=null)));for(var g=Ha(a.id),l=0;l<g.length;l++){var m=g[l];m.j.S&&(m.ba&&(d=m.ba(b,c),"object"===typeof d&&G(f,m.id,d)),c&&
k.stop=function(a,b){for(var c=Ga(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}}; (m.j.S=!1,!1===d&&(e=null)))}e&&(c?(g=d=!1,b?(a.c&&$c(a,a.c,f.toString()),Mc(h)&&Mc(f)||(e=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&f.clear(g)):e=f.toString());c&&(a.j.S=!1,b=a.w.power)&&(b.textContent="Power");a.g=0;return e}k.reset=function(){this.m&&this.m.reset&&this.m.reset();for(var a=Ha(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.m&&c.reset&&c.reset()}};k.start=function(a,b){for(var c=Ha(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
k.R=function(a,b,c){var d=this;switch(b){case "power":return this.w[b]=c,c.onclick=function(){d.g||(d.j.S?Xc(d,!1,!0):Tc(d,d.Ma))},!0;case "reset":return this.w[b]=c,c.onclick=function(){if(d.j.S&&!d.g)if(d.b&&!d.A){var a=ja("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Xc(d,a,!0);!a&&d.C?window&&window.location.reload():d.Ma(Qc)}else d.reset(),d.a&&ub(d.a)},!0;case "save":if(da(ia(),"pcjs.org")){c.parentNode.removeChild(c);break}this.w[b]= k.stop=function(a,b){for(var c=Ha(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
c;c.onclick=function(){var a=Rc(d,!0);if(a){var b=!!(d.b&&!d.A||d.C),c=Xc(d,b);b?Yc(d,a,c):d.J("Resume disabled, machine state not saved")}};return!0}return!1}; k.R=function(a,b,c){var d=this;switch(b){case "power":return this.w[b]=c,c.onclick=function(){d.g||(d.j.S?Zc(d,!1,!0):Vc(d,d.Ma))},!0;case "reset":return this.w[b]=c,c.onclick=function(){if(d.j.S&&!d.g)if(d.b&&!d.A){var a=ka("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Zc(d,a,!0);!a&&d.F?window&&window.location.reload():d.Ma(Sc)}else d.reset(),d.a&&vb(d.a)},!0;case "save":if(ea(ja(),"pcjs.org")){c.parentNode.removeChild(c);break}this.w[b]=
function Rc(a,b){var c=a.c;c||(c=ma("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=Zc(a,c))||a.J("The user ID is invalid."))):b&&a.J("Browser local storage is not available"));return c} c;c.onclick=function(){var a=Tc(d,!0);if(a){var b=!!(d.b&&!d.A||d.F),c=Zc(d,b);b?$c(d,a,c):d.J("Resume disabled, machine state not saved")}};return!0}return!1};
function Zc(a,b){a.c=null;var c=r(ia()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(na("user",c.data),a.c=c.data)}catch(e){t(e.message+" ("+d+")")}return a.c}function Sc(a){var b=null;a.c&&(b=ia()+"/api/v1/user?req=load&user="+a.c+"&state="+Ic(a,"1.23.3"));return b} function Tc(a,b){var c=a.c;c||(c=na("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=ad(a,c))||a.J("The user ID is invalid."))):b&&a.J("Browser local storage is not available"));return c}
function Yc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Ic(a,"1.23.3");d.data=c;b=r(ia()+"/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.J("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.J(c),na("user",""),a.c=null)}} function ad(a,b){a.c=null;var c=q(ja()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(oa("user",c.data),a.c=c.data)}catch(e){r(e.message+" ("+d+")")}return a.c}function Uc(a){var b=null;a.c&&(b=ja()+"/api/v1/user?req=load&user="+a.c+"&state="+Kc(a,"1.23.3"));return b}
function Oa(a,b,c){a=Ga(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}function Ab(a,b){if(a.m.length){var c=0,d=0;b&&window&&(c=window.scrollX,d=window.scrollY);var e=a.m[0];e.ha&&e.ha.focus();b&&window&&window.scrollTo(c,d)}}k.ra=function(a){this.a&&this.a.ra(a);this.h&&this.h.ra(a)}; function $c(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Kc(a,"1.23.3");d.data=c;b=q(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.J("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.J(c),oa("user",""),a.c=null)}}
function Bb(a,b){for(var c=0;c<a.m.length;c++){var d=a.m[c],e=!0;if(0<=b){if(d.ib)if(120==d.ib)if(b&1)e=d.a,e.v=e.v&-8|10,e=!1;else{var f=d.a;f.v=f.v&-8|9}else f=d.a,f.v=f.v&-8|12;if(f=e&&d.ga){for(var f=d.l,h=d.ta,g=!0,l=d.V>>>f.c;0<h&&l<f.b.length;)f.b[l].ea&&(f.b[l].ea=g=!1,f.b[l].Gb=!0),h-=f.l,l++;f=g}f&&(e=!1)}if(e)if(1<d.P)switch(d.C){case 2:Cc(d)}else{var g=d.V,l=g+d.ta,m=0,q=0,p=0,e=d.i,J=0,f=d.B,N=h=0,X=d.ja,G=(1<<X)-1;d.vc&&(X=-X,N=16+X);for(;g<l;){var v;v=d.l;var E=g,O=E&v.g,Y=(E&v.h)>>> function Pa(a,b,c){a=Ha(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}function Bb(a,b){if(a.l.length){var c=0,d=0;b&&window&&(c=window.scrollX,d=window.scrollY);var e=a.l[0];e.ga&&e.ga.focus();b&&window&&window.scrollTo(c,d)}}k.ra=function(a){this.a&&this.a.ra(a);this.h&&this.h.ra(a)};
v.c;v=O!=v.g?v.b[Y].Ob(O,E):v.b[Y++].$a(O,E)|v.b[Y&v.A].$a(0,E+1)<<8;if(d.ga&&v===d.L[m])q+=d.Cb;else{d.L[m]=v;(E=N)&&(v=v>>8|(v&255)<<8);q<e&&(e=q);for(O=d.Cb;O--;)Y=v>>E&G,Bc(d,d.Ab,q++,p,Y),E+=X;q>J&&(J=q);p<f&&(f=p);p>=h&&(h=p+1)}g+=2;m++;if(q>=d.i&&(q=0,p++,p>d.B))break}d.ga=!0;e<d.i&&(g=J-e,h-=f,d.c&&(l=e,m=g,e=f,g=h,f=d.i-(l+m),h=m),d.cb.putImageData(d.Ab,0,0,e,f,g,h),d.g.drawImage(d.o,0,0,d.o.width,d.o.height,0,0,d.v,d.u))}}} function Cb(a,b){for(var c=0;c<a.l.length;c++){var d=a.l[c],e=!0;if(0<=b){d.ib&&(120==d.ib?b&1?(Yb(d.a,2),e=!1):Yb(d.a,1):Yb(d.a,4));var f;if(f=e&&d.V){f=d.m;for(var h=d.ta,g=!0,l=d.U>>>f.c;0<h&&l<f.b.length;)f.b[l].ea&&(f.b[l].ea=g=!1,f.b[l].Gb=!0),h-=f.m,l++;f=g}f&&(e=!1)}if(e)if(1<d.P)switch(d.G){case 2:Ec(d)}else{var g=d.U,l=g+d.ta,m=0,t=0,p=0,e=d.l,w=0;f=d.F;var ca=h=0,I=d.ka,S=(1<<I)-1;d.wc&&(I=-I,ca=16+I);for(;g<l;){var v;v=d.m;var F=g,J=F&v.g,Q=(F&v.h)>>>v.c;v=J!=v.g?v.b[Q].Ob(J,F):v.b[Q++].$a(J,
ta(function(){for(var a=z(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=z(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=y(f),h=new Oc(h,d,!0);Ia(h,f);h.B&&Tc(h,h.Ma)}});pa.show.push(function(){for(var a=z(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=Ha("Computer",c.id))&&c.O&&!c.j.S&&c.Ma(-1)}}); F)|v.b[Q&v.A].$a(0,F+1)<<8;if(d.V&&v===d.i[m])t+=d.Cb;else{d.i[m]=v;(F=ca)&&(v=v>>8|(v&255)<<8);t<e&&(e=t);for(J=d.Cb;J--;)Q=v>>F&S,Dc(d,d.Ab,t++,p,Q),F+=I;t>w&&(w=t);p<f&&(f=p);p>=h&&(h=p+1)}g+=2;m++;if(t>=d.l&&(t=0,p++,p>d.F))break}d.V=!0;e<d.l&&(g=w-e,h-=f,d.c&&(l=e,m=g,e=f,g=h,f=d.l-(l+m),h=m),d.cb.putImageData(d.Ab,0,0,e,f,g,h),d.g.drawImage(d.s,0,0,d.s.width,d.s.height,0,0,d.B,d.v))}}}
pa.exit.push(function(){for(var a=z(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=Ha("Computer",c.id))&&c.j.S&&Xc(c,!(!c.b||c.A),!0)}});var $c=0;function ad(a,b,c,d,e,f){e("Loading "+a+"...");r(a,null,!0,function(h,g,l){l?(g||(g="unable to load "+a+" ("+l+")"),f(g,null)):bd(g,a,b,c,d,e,f)})} ua(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=z(f),h=new Qc(h,d,!0);Ja(h,f);h.B&&Vc(h,h.Ma)}});qa.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ia("Computer",c.id))&&c.O&&!c.j.S&&c.Ma(-1)}});
function bd(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Fa(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2")); qa.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ia("Computer",c.id))&&c.j.S&&Zc(c,!(!c.b||c.A),!0)}});var bd=0;function cd(a,b,c,d,e,f){e("Loading "+a+"...");q(a,null,!0,function(h,g,l){l?(g||(g="unable to load "+a+" ("+l+")"),f(g,null)):dd(g,a,b,c,d,e,f)})}
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?cd(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)} function dd(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ga(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
function cd(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");r(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=g[0],m,q=/( [a-z]+=)(['"])(.*?)\2/g;m=q.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);g[0]!=l&&(h=h.replace(g[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?ed(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
"");a=a.replace(d[0],h);cd(a,b,c)}})}else c(a,null)} function ed(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");q(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=g[0],m,t=/( [a-z]+=)(['"])(.*?)\2/g;m=t.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);g[0]!=l&&(h=h.replace(g[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
function dd(a,b,c,d){function e(a){if(void 0===g){var b=h&&z(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=fa(a))}function f(a){e("Error: "+a);l&&(--$c||wa(!0));l=!1}var h,g,l=!0;$c++;Ea[a]={};try{if(h=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=m:p.appendChild(document.createTextNode(m));q.appendChild(p)}c|| "");a=a.replace(d[0],h);ed(a,b,c)}})}else c(a,null)}
(c="/versions/pc8080/1.23.3/components.xsl");m=function(d,g){g?ad(c,null,null,!1,e,function(d,l){if(l)if(Fa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=g.transformNode(l);m?(h.outerHTML=m,--$c||wa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(l),(m=m.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(m,h),--$c||wa(!0)):f("invalid machine element: "+ function fd(a,b,c,d){function e(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function f(a){e("Error: "+a);l&&(--bd||xa(!0));l=!1}var h,g,l=!0;bd++;Fa[a]={};try{if(h=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=m:p.appendChild(document.createTextNode(m));t.appendChild(p)}c||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?ad(b,a,d,!0,e,m):bd(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(J){f(J.message)}return l}window.embedPC8080=function(a,b,c,d){wa(!1);return dd(a,b,c,d)};window.enableEvents=wa;window.sendEvent=xa; (c="/versions/pc8080/1.23.3/components.xsl");m=function(d,g){g?cd(c,null,null,!1,e,function(d,l){if(l)if(Ga(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=g.transformNode(l);m?(h.outerHTML=m,--bd||xa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(l),(m=m.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(m,h),--bd||xa(!0)):f("invalid machine element: "+
function ed(a,b,c,d){if(!c&&b){d.push(b);a=Ea[d[0]];b=null;for(var e in a)if(da(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?r(b,null,!0,function(a,b){fd(b,d)}):fd(null,d)}else t("Error ("+c+") requesting "+a)} a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?cd(b,a,d,!0,e,m):dd(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(w){f(w.message)}return l}window.embedPC8080=function(a,b,c,d){xa(!1);return fd(a,b,c,d)};window.enableEvents=xa;window.sendEvent=ya;
function fd(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Ea[f],l={},m;for(m in g){var q=g[m],p=ca(m);if("xml"==p){for(p=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=p.exec(g[m]);){var J=d[2];J&&(g[J]||(q=q.replace(d[0],"")))}d=m=ba(m)}else"xsl"==p&&(e=m=ba(m));l[m]=q}a&&(l[m="css"]=a);b[2]&&(l[m="parms"]=b[2]);b[3]&&(l[m="state"]=b[3]);d&&e?(m=JSON.stringify(l),h+=".js",c=c[1]+"var resources="+m+";"+c[2]+c[3],c=c.replace(/\u00A9/g, function gd(a,b,c,d){if(!c&&b){d.push(b);a=Fa[d[0]];b=null;for(var e in a)if(ea(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?q(b,null,!0,function(a,b){hd(b,d)}):hd(null,d)}else r("Error ("+c+") requesting "+a)}
"&#xA9;"),m=h,g=null,l="data:application/javascript,",l=oa("Firefox")?l+encodeURIComponent(c):l+encodeURI(c),m&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=l,g.download=m,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+m+"."):(window.open(l),c="Check your browser for a new window/tab containing the requested data"+(m?" ("+m+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n', function hd(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Fa[f],l={},m;for(m in g){var t=g[m],p=da(m);if("xml"==p){for(p=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=p.exec(g[m]);){var w=d[2];w&&(g[w]||(t=t.replace(d[0],"")))}d=m=ba(m)}else"xsl"==p&&(e=m=ba(m));l[m]=t}a&&(l[m="css"]=a);b[2]&&(l[m="parms"]=b[2]);b[3]&&(l[m="state"]=b[3]);d&&e?(m=JSON.stringify(l),h+=".js",c=c[1]+"var resources="+m+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",t(c)):t("Missing XML/XSL resources")} "&#xA9;"),m=h,g=null,l="data:application/javascript,",l=pa("Firefox")?l+encodeURIComponent(c):l+encodeURI(c),m&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=l,g.download=m,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+m+"."):(window.open(l),c="Check your browser for a new window/tab containing the requested data"+(m?" ("+m+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
window.savePC=function(a,b,c){var d=Ha("Computer",a),e=Ha("Debugger",a);if(d){var f=Xc(d,!0),h=d.s?JSON.stringify(d.s):null;b||(b="/versions/pcjs/1.23.3/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,Nb:h}))return!0;r(b,null,!0,function(c,d,e){ed(c,d,e,[a,ba(b,!0),h,f])});return!0}t("Unable to identify machine '"+a+"'");return!1};})(); c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",r(c)):r("Missing XML/XSL resources")}
window.savePC=function(a,b,c){var d=Ia("Computer",a),e=Ia("Debugger",a);if(d){var f=Zc(d,!0),h=d.s?JSON.stringify(d.s):null;b||(b="/versions/pcjs/1.23.3/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,Nb:h}))return!0;q(b,null,!0,function(c,d,e){gd(c,d,e,[a,ba(b,!0),h,f])});return!0}r("Unable to identify machine '"+a+"'");return!1};})();