From 41bf3e700cebe7be9813ed311424c5103754f449 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Fri, 7 Nov 2014 09:59:04 -0800 Subject: [PATCH] Fixed CAPSLOCK handling and tidied up some more things in keyboard.js --- my_modules/README.md | 11 +- my_modules/grunts/README.md | 17 ++ my_modules/htmlout/bin/delete_indexes.sh | 4 +- my_modules/pcjs-client/lib/keyboard.js | 261 ++++++++++-------- my_modules/pcjs-client/lib/video.js | 8 +- my_modules/pcjs-client/package.json | 2 +- versions/pcjs/1.15.9/pc-dbg.js | 322 +++++++++++------------ versions/pcjs/1.15.9/pc.js | 179 ++++++------- 8 files changed, 428 insertions(+), 376 deletions(-) create mode 100644 my_modules/grunts/README.md diff --git a/my_modules/README.md b/my_modules/README.md index 1c17a1705..8b2e96a90 100644 --- a/my_modules/README.md +++ b/my_modules/README.md @@ -1,7 +1,8 @@ -Private Node Modules +PCjs Node Modules === -**my_modules** contains all the *private* **PCjs** Node modules. It is the counterpart to -**node_modules**, where all the *public* Node modules are installed. Only private Node modules are checked -into GitHub; if any of these are later published on [npmjs.org](http://npmjs.org), then they will -be moved to **node_modules** and removed from this folder. +This folder contains all the **PCjs** JavaScript source code, organized into Node modules. It is the counterpart to +[node_modules](../node_modules/), where all the *public* Node modules are installed. + +Only private Node modules are checked into this project. If any of these modules are later published on +[npmjs.org](http://npmjs.org), then they will be moved to [node_modules](../node_modules/) and removed from this folder. diff --git a/my_modules/grunts/README.md b/my_modules/grunts/README.md new file mode 100644 index 000000000..9930cf7a2 --- /dev/null +++ b/my_modules/grunts/README.md @@ -0,0 +1,17 @@ +Experimental Grunt Tasks +=== + +I experimented briefly with a few Grunt tasks, but working with Grunt wasn't all that pleasant, +and neither of these tasks are all that important right now, so they're only here for a rainy day or +to be cannibalized for some other purpose. + +[manifester](manifester/) was intended to open a manifest.xml file (discussed in more detail [here](/apps/)) +and download all the referenced files. The task was inspired by `npm install`, which downloads all the required +modules specified in [package.json](/package.json) without requiring them to be checked into the project. +However, the manifest design needs to be fleshed out more before work on this continues. + +[prepjs](prepjs/) was intended to inline well-defined constants in all JavaScript files before running them +through the Closure Compiler, but it turned out that: + +- the Grunt task would quickly run out of memory +- the Closure Compiler actually did a pretty good job inlining all by itself diff --git a/my_modules/htmlout/bin/delete_indexes.sh b/my_modules/htmlout/bin/delete_indexes.sh index a09b11322..30ce404b5 100755 --- a/my_modules/htmlout/bin/delete_indexes.sh +++ b/my_modules/htmlout/bin/delete_indexes.sh @@ -1,7 +1,7 @@ #!/bin/sh # -# This script was created for the Grunt "delete_indexes" task in /Gruntfile.js; it lives here +# This script was created for the Grunt "delete-indexes" task in /Gruntfile.js; it lives here # because htmlout is the module responsible for "littering" the project with "index.html" files, # therefore it bears responsibility for cleaning them up. This is its "poor man's" solution. # -find . -name "index.html" -exec grep -H -l -e "pcjs.org" {} \; | sed -E "s/(.*)/rm -v \"\1\"/" | bash \ No newline at end of file +find . -name "index.html" -exec grep -H -l -e "<title>pcjs.org" {} \; | sed -E "s/(.*)/rm -v \"\1\"/" | bash diff --git a/my_modules/pcjs-client/lib/keyboard.js b/my_modules/pcjs-client/lib/keyboard.js index b0798d2b3..c7abac394 100644 --- a/my_modules/pcjs-client/lib/keyboard.js +++ b/my_modules/pcjs-client/lib/keyboard.js @@ -101,39 +101,6 @@ function Keyboard(parmsKbd) { Component.subclass(Component, Keyboard); -/** - * Commands that can be sent to the Keyboard via the 8042; see sendCmd() - * - * @enum {number} - */ -Keyboard.CMD = { - RESET: 0xFF, - RESEND: 0xFE, - DEF_ON: 0xF6, - DEF_OFF: 0xF5, - ENABLE: 0xF4, - SET_RATE: 0xF3, - ECHO: 0xEE, - SET_LEDS: 0xED -}; - -/** - * Command responses returned to the Keyboard via the 8042; see sendCmd() - * - * @enum {number} - */ -Keyboard.CMDRES = { - OVERRUN: 0x00, - LOAD_TEST: 0x65, // undocumented "LOAD MANUFACTURING TEST REQUEST" response code - BAT_SUCC: 0xAA, // Basic Assurance Test (BAT) completed successfully - ECHO: 0xEE, - BREAK_PREF: 0xF0, // break prefix - ACK: 0xFA, - BAT_FAIL: 0xFC, // Basic Assurance Test (BAT) failed - DIAG_FAIL: 0xFD, - RESEND: 0xFE -}; - /** * Alphanumeric and other common (printable) ASCII codes. * @@ -144,6 +111,7 @@ Keyboard.CMDRES = { * @enum {number} */ Keyboard.ASCII = { + CTRLA: 1, CTRLZ: 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, @@ -227,8 +195,8 @@ Keyboard.KEYCODE = { }; /** - * The set of values that a browser may store in the 'location' property of a - * keyboard event object which we also support. + * The set of values that a browser may store in the 'location' property of a keyboard event object + * which we also support. * * @enum {number} */ @@ -239,8 +207,8 @@ Keyboard.LOCATION = { }; /** - * These "shift key" states are stored in bitsShift, as well as in aKeyCodes; - * note that the right-hand versions of selected shift bits are shifted 1 bit right. + * These internal "shift key" states are stored in bitsShift, as well as in aKeyCodes; note that the + * right-hand versions of selected shift bits are shifted 1 bit right. * * @enum {number} */ @@ -265,9 +233,10 @@ Keyboard.STATE = { * @enum {number} */ Keyboard.STATEKEYS = { - 0x10: Keyboard.STATE.SHIFT, - 0x11: Keyboard.STATE.CTRL, - 0x12: Keyboard.STATE.ALT + 16: Keyboard.STATE.SHIFT, + 17: Keyboard.STATE.CTRL, + 18: Keyboard.STATE.ALT, + 20: Keyboard.STATE.CAPSLOCK }; /** @@ -367,7 +336,7 @@ Keyboard.aSoftCodes = { /* 11 */ '0': 0x0b, /* 12 */ '-': 0x0c, /* 13 */ '=': 0x0d, - /* 14 */ 'backspace': 0x0e, + /* 14 */ 'bs': 0x0e, /* 15 */ 'tab': 0x0f, /* 16 */ 'q': 0x10, /* 17 */ 'w': 0x11, @@ -462,7 +431,7 @@ Keyboard.aSoftCodes = { }; /** - * This array is used by keyEventSimulate() to lookup a given keyCode and convert it to a scan code + * This array is used by keySimulateUpDown() to lookup a given keyCode and convert it to a scan code * (lower byte) plus any required shift key states (upper bytes). * * Using keyCodes from keyPress events proved to be more robust than using keyCodes from keyDown and @@ -474,7 +443,7 @@ Keyboard.aSoftCodes = { * The other problem (which is more of a problem with keyboards like the C1P than any IBM keyboards) is * that the shift/modifier state for a character on the "source" keyboard may not match the shift/modifier * state for the same character on the "target" keyboard. And since this code is inherited from C1Pjs, - * we've inherited the same solution: keyEventSimulate() has the ability to "undo" any states in bitsShift + * we've inherited the same solution: keySimulateUpDown() has the ability to "undo" any states in bitsShift * that conflict with the state(s) required for the character in question. * * @enum {number} @@ -505,7 +474,7 @@ Keyboard.aKeyCodes[Keyboard.ASCII['-']] = Keyboard.aSoftCodes['-']; Keyboard.aKeyCodes[Keyboard.ASCII['_']] = Keyboard.aSoftCodes['-'] | (Keyboard.STATE.SHIFT << 8); Keyboard.aKeyCodes[Keyboard.ASCII['=']] = Keyboard.aSoftCodes['=']; Keyboard.aKeyCodes[Keyboard.ASCII['+']] = Keyboard.aSoftCodes['='] | (Keyboard.STATE.SHIFT << 8); -Keyboard.aKeyCodes[Keyboard.KEYCODE.BS + Keyboard.KEYCODE.ONDOWN] = Keyboard.aSoftCodes['backspace']; +Keyboard.aKeyCodes[Keyboard.KEYCODE.BS + Keyboard.KEYCODE.ONDOWN] = Keyboard.aSoftCodes['bs']; Keyboard.aKeyCodes[Keyboard.KEYCODE.TAB + Keyboard.KEYCODE.ONDOWN] = Keyboard.aSoftCodes['tab']; Keyboard.aKeyCodes[Keyboard.ASCII.q] = Keyboard.aSoftCodes['q']; Keyboard.aKeyCodes[Keyboard.ASCII.Q] = Keyboard.aSoftCodes['q'] | (Keyboard.STATE.SHIFT << 8); @@ -581,7 +550,7 @@ Keyboard.aKeyCodes[Keyboard.ASCII['>']] = Keyboard.aSoftCodes['.'] | (Keyboard Keyboard.aKeyCodes[Keyboard.ASCII['/']] = Keyboard.aSoftCodes['/']; Keyboard.aKeyCodes[Keyboard.ASCII['?']] = Keyboard.aSoftCodes['/'] | (Keyboard.STATE.SHIFT << 8); Keyboard.aKeyCodes[Keyboard.KEYCODE.SHIFT + Keyboard.KEYCODE.ONDOWN + Keyboard.KEYCODE.ONRIGHT] = Keyboard.aSoftCodes['right-shift']; -// TBD: 0x37 ('prtsc') goes here +// TODO: 0x37 ('prtsc') Keyboard.aKeyCodes[Keyboard.KEYCODE.ALT + Keyboard.KEYCODE.ONDOWN] = Keyboard.aSoftCodes['alt']; Keyboard.aKeyCodes[Keyboard.ASCII[' ']] = Keyboard.aSoftCodes['space']; Keyboard.aKeyCodes[Keyboard.KEYCODE.CAPSLOCK+Keyboard.KEYCODE.ONDOWN]= Keyboard.aSoftCodes['caps-lock']; @@ -595,7 +564,7 @@ Keyboard.aKeyCodes[Keyboard.KEYCODE.F7 + Keyboard.KEYCODE.ONDOWN] = Keyboard Keyboard.aKeyCodes[Keyboard.KEYCODE.F8 + Keyboard.KEYCODE.ONDOWN] = Keyboard.aSoftCodes['f8']; Keyboard.aKeyCodes[Keyboard.KEYCODE.F9 + Keyboard.KEYCODE.ONDOWN] = Keyboard.aSoftCodes['f9']; Keyboard.aKeyCodes[Keyboard.KEYCODE.F10 + Keyboard.KEYCODE.ONDOWN] = Keyboard.aSoftCodes['f10']; -// TBD: 0x45 ('num-lock') and 0x46 ('scroll-lock') go here +// TODO: 0x45 ('num-lock'), 0x46 ('scroll-lock'), 0x4a ('num-sub') and 0x4e ('num-add') Keyboard.aKeyCodes[Keyboard.KEYCODE.HOME + Keyboard.KEYCODE.ONDOWN] = Keyboard.aSoftCodes['num-home']; Keyboard.aKeyCodes[Keyboard.KEYCODE.UP + Keyboard.KEYCODE.ONDOWN] = Keyboard.aSoftCodes['num-up']; Keyboard.aKeyCodes[Keyboard.KEYCODE.PGUP + Keyboard.KEYCODE.ONDOWN] = Keyboard.aSoftCodes['num-pgup']; @@ -606,29 +575,90 @@ Keyboard.aKeyCodes[Keyboard.KEYCODE.DOWN + Keyboard.KEYCODE.ONDOWN] = Keyboard Keyboard.aKeyCodes[Keyboard.KEYCODE.PGDN + Keyboard.KEYCODE.ONDOWN] = Keyboard.aSoftCodes['num-pgdn']; Keyboard.aKeyCodes[Keyboard.KEYCODE.INS + Keyboard.KEYCODE.ONDOWN] = Keyboard.aSoftCodes['num-ins']; Keyboard.aKeyCodes[Keyboard.KEYCODE.DEL + Keyboard.KEYCODE.ONDOWN] = Keyboard.aSoftCodes['num-del']; -// TBD for all keyboards: 'num-add', 'num-sub' -// TBD for 101-key keyboards: 'num-mul', 'num-div', 'num-enter', the stand-alone arrow keys, etc. +/* + * Entries beyond this point are for keys that existed only on 101-key keyboards (well, except for 'sysreq', + * which also existed on the 84-key keyboard), which ALSO means that these keys essentially did not exist + * for a MODEL_5150 or MODEL_5160 machine, because those machines could use only 83-key keyboards. Remember + * that IBM machines and IBM keyboards are our reference point here, so while there were undoubtedly 5150/5160 + * clones that could use newer keyboards, as well as 3rd-party keyboards that could work with older machines, + * support for non-IBM configurations is left for another day. + * + * TODO: The only relevance of newer keyboards to older machines is the fact that you're likely using a newer + * keyboard with your browser, which raises the question of what to do with newer keys that older machines + * wouldn't understand. I don't attempt to filter out any of the entries below based on machine model, but + * it's likely that I should. + */ +// TODO: 'num-mul', 'num-div', 'num-enter', the stand-alone arrow keys, etc. +Keyboard.aKeyCodes[Keyboard.KEYCODE.F11 + Keyboard.KEYCODE.ONDOWN] = Keyboard.aSoftCodes['f11']; +Keyboard.aKeyCodes[Keyboard.KEYCODE.F12 + Keyboard.KEYCODE.ONDOWN] = Keyboard.aSoftCodes['f12']; + Keyboard.aKeyCodes[Keyboard.KEYCODE.FAKE_CTRLC] = Keyboard.aSoftCodes['c'] + (Keyboard.STATE.CTRL << 8); Keyboard.aKeyCodes[Keyboard.KEYCODE.FAKE_CTRLBREAK] = Keyboard.aSoftCodes['scroll-lock'] + (Keyboard.STATE.CTRL << 8); Keyboard.aKeyCodes[Keyboard.KEYCODE.FAKE_CTRLALTDEL] = Keyboard.aSoftCodes['num-del'] + (Keyboard.STATE.CTRL << 8) + (Keyboard.STATE.ALT << 16); /** - * Options for keyEventSimulate() + * keySimulateUpDown() origin codes (useful only for debugging) * * @enum {number} */ Keyboard.SIMCODE = { KEYPRESS: 0, KEYRELEASE: 1, - KEYEVENT: 2, + KEYUPDOWN: 2, KEYTIMEOUT: 3, AUTOCLEAR: 4 }; if (DEBUGGER) { - Keyboard.aSimCodeDescs = ["keyPress", "keyRelease", "keyEvent", "keyTimeout", "autoClear"]; + Keyboard.aSimCodeDescs = ["keyPress", "keyRelease", "keyUpDown", "keyTimeout", "autoClear"]; } +/** + * Commands that can be sent to the Keyboard via the 8042; see sendCmd() + * + * @enum {number} + */ +Keyboard.CMD = { + RESET: 0xFF, + RESEND: 0xFE, + DEF_ON: 0xF6, + DEF_OFF: 0xF5, + ENABLE: 0xF4, + SET_RATE: 0xF3, + ECHO: 0xEE, + SET_LEDS: 0xED +}; + +/** + * Command responses returned to the Keyboard via the 8042; see sendCmd() + * + * @enum {number} + */ +Keyboard.CMDRES = { + OVERRUN: 0x00, + LOAD_TEST: 0x65, // undocumented "LOAD MANUFACTURING TEST REQUEST" response code + BAT_SUCC: 0xAA, // Basic Assurance Test (BAT) completed successfully + ECHO: 0xEE, + BREAK_PREF: 0xF0, // break prefix + ACK: 0xFA, + BAT_FAIL: 0xFC, // Basic Assurance Test (BAT) failed + DIAG_FAIL: 0xFD, + RESEND: 0xFE, + BUFF_FULL: 0xFF // TODO: Verify this response code (is it just for older 83-key keyboards?) +}; + +/* + * Other scan code definitions (ie, not defined in aSoftCodes) + */ +Keyboard.SCAN = { + MAKE: 0x7f, + BREAK: 0x80 +}; + +Keyboard.LIMIT = { + MAXSCANS: 20 // TODO: Verify this limit for newer keyboards (84-key and up) +}; + /** * setBinding(sHTMLClass, sHTMLType, sBinding, control) * @@ -666,13 +696,13 @@ Keyboard.prototype.setBinding = function(sHTMLClass, sHTMLType, sBinding, contro case "kbd": this.bindings[id] = control; control.onkeydown = function onKeyDownKeyboard(event) { - return kbd.keyEvent(event, true); + return kbd.keyUpDown(event, true); }; control.onkeypress = function onKeyPressKeyboard(event) { return kbd.keyPress(event); }; control.onkeyup = function onKeyUpKeyboard(event) { - return kbd.keyEvent(event, false); + return kbd.keyUpDown(event, false); }; return true; default: @@ -682,7 +712,7 @@ Keyboard.prototype.setBinding = function(sHTMLClass, sHTMLType, sBinding, contro return function onClickKeyboard(event) { if (DEBUG) kbd.println(sKey + " clicked"); if (kbd.cpu) kbd.cpu.setFocus(); - return !kbd.keyPressSimulate(keyCode); + return !kbd.keySimulatePress(keyCode); }; }(this, sBinding, Keyboard.aButtonCodes[sBinding]); return true; @@ -697,7 +727,7 @@ Keyboard.prototype.setBinding = function(sHTMLClass, sHTMLType, sBinding, contro return function onMouseOrTouchUpKeyboard(event) { kbd.addScanCode(bScan); }; - }(this, sBinding, Keyboard.aSoftCodes[sBinding] | 0x80); + }(this, sBinding, Keyboard.aSoftCodes[sBinding] | Keyboard.SCAN.BREAK); if ('ontouchstart' in window) { control.ontouchstart = fnDown; control.ontouchend = fnUp; @@ -1080,18 +1110,13 @@ Keyboard.prototype.setSoftKeyState = function(control, f) /** * addScanCode(bScan, fRepeat) * - * An actual IBM keyboard will only buffer up to 20 scan codes, so we impose the same limit here. - * - * Just as 0xAA is a special scan code response to a software reset, 0xFF is a special scan code response to - * an internal buffer overrun. I try to simulate both. TODO: Define and document these limits and special codes. - * * @this {Keyboard} * @param {number} bScan * @param {boolean} [fRepeat] */ Keyboard.prototype.addScanCode = function(bScan, fRepeat) { - var bKey = bScan & 0x7f; + var bKey = bScan & Keyboard.SCAN.MAKE; var fDown = (bKey == bScan); /* * Prepare for the possibility that our reset() function may not have been called yet. @@ -1101,7 +1126,7 @@ Keyboard.prototype.addScanCode = function(bScan, fRepeat) * as a result of calls from any of the key event handlers established by setBinding(). */ if (this.abScanBuffer) { - if (this.abScanBuffer.length < 20) { + if (this.abScanBuffer.length < Keyboard.LIMIT.MAXSCANS) { if (!fDown && !this.aScanCodesActive[bKey] || fDown && this.aScanCodesActive[bKey] && !fRepeat) { if (MAXDEBUG) this.messageDebugger("scan code 0x" + str.toHexByte(bScan) + " redundant"); return; @@ -1115,8 +1140,8 @@ Keyboard.prototype.addScanCode = function(bScan, fRepeat) this.findBinding(bKey, "key", fDown); return; } - if (this.abScanBuffer.length == 20) { - this.abScanBuffer.push(0xFF); + if (this.abScanBuffer.length == Keyboard.LIMIT.MAXSCANS) { + this.abScanBuffer.push(Keyboard.CMDRES.BUFF_FULL); } this.messageDebugger("scan code buffer overflow"); } @@ -1143,7 +1168,7 @@ Keyboard.prototype.calcReleaseDelay = function(fRepeat) * with the virtual machine's auto-repeat behavior. msReleaseDelay is the initial delay, msReleaseRepeat * is the subsequent delay. * - * Unfortunately, with a large initial delay, we need to enable the auto-clear code in the keyEvent() + * Unfortunately, with a large initial delay, we need to enable the auto-clear code in the keyUpDown() * handler, otherwise doing things like pressing ENTER repeatedly will result in sluggish behavior * (because you can generally press/release/repress keys faster than they will auto-repeat). */ @@ -1164,7 +1189,7 @@ Keyboard.prototype.autoClear = function(notKeyCode) if (DEBUG) this.messageDebugger("autoClear(" + this.prevCharDown + ")"); Component.assert(this.aKeyTimers[this.prevCharDown]); clearTimeout(this.aKeyTimers[this.prevCharDown]); - this.keyEventSimulate(this.prevCharDown, false, Keyboard.SIMCODE.AUTOCLEAR); + this.keySimulateUpDown(this.prevCharDown, false, Keyboard.SIMCODE.AUTOCLEAR); } }; @@ -1198,7 +1223,7 @@ Keyboard.prototype.injectKeysFromBuffer = function(msDelay) if (ch == 0x0a) ch = 0x0d; this.sInjectBuffer = this.sInjectBuffer.substr(1); - this.keyPressSimulate(ch); + this.keySimulatePress(ch); } if (this.sInjectBuffer.length > 0) { setTimeout(function (kbd) { @@ -1210,14 +1235,14 @@ Keyboard.prototype.injectKeysFromBuffer = function(msDelay) }; /** - * keyEvent(event, fDown) + * keyUpDown(event, fDown) * * @this {Keyboard} * @param {Object} event * @param {boolean} fDown is true for a keyDown event, false for a keyUp event * @return {boolean} true to pass the event along, false to consume it */ -Keyboard.prototype.keyEvent = function(event, fDown) +Keyboard.prototype.keyUpDown = function(event, fDown) { var fPass; var fAutoClear = !fDown; @@ -1244,12 +1269,12 @@ Keyboard.prototype.keyEvent = function(event, fDown) * when getting unlocked--which is exactly what I want, even though that may seem a little * counter-intuitive (since the key itself actually went down AND up for each event). */ - fPass = this.keyPressSimulate(keyCodeSim); + fPass = this.keySimulatePress(keyCodeSim); } else { fAutoClear = false; } } else { - if (keyCode == Keyboard.KEYCODE.TAB || keyCode == Keyboard.KEYCODE.ESC || keyCode == Keyboard.KEYCODE.BS) { + if (keyCode == Keyboard.KEYCODE.BS || keyCode == Keyboard.KEYCODE.TAB || keyCode == Keyboard.KEYCODE.ESC) { /* * HACK for simulating Ctrl-Break using Ctrl-Del (Mac) / Ctrl-Backspace (Windows) */ @@ -1266,14 +1291,23 @@ Keyboard.prototype.keyEvent = function(event, fDown) * * fPass = fAutoClear = false; * - * I don't get keyPress events for ESC (why?) and I never want the browser to act on DELETE - * (which does double-duty as the "Back" button and leaves the current page), so I have to - * simulate them now. + * I don't get keyPress events for ESC (why?) and I never want the browser to act on BS + * (which does double-duty as the "Back" button and leaves the current page), so I have + * to simulate them now. * * Note that I call the "press" simulate method and NOT the "event" simulate method, because * the former takes care of simulating both individual "down" and "up" events. */ - fPass = (fDown? !this.keyPressSimulate(keyCodeSim) : false); + fPass = (fDown? !this.keySimulatePress(keyCodeSim) : false); + } else { + /* + * No effect, at least in IE9.... + * + if (keyCode == Keyboard.KEYCODE.F1 || keyCode == Keyboard.KEYCODE.F11 || keyCode == Keyboard.KEYCODE.F12) { + this.println("preventDefault()"); + event.preventDefault(); + } + */ } } } @@ -1293,12 +1327,12 @@ Keyboard.prototype.keyEvent = function(event, fDown) * not create mappings for). */ else if (event.altKey || event.ctrlKey) { - if (keyCode >= 0x41 && keyCode <= 0x5A) { + if (keyCode >= Keyboard.ASCII.A && keyCode <= Keyboard.ASCII.Z) { /* * Convert "upper-case" letter combinations into "lower-case" combinations, so - * that keyEventSimulate() doesn't think it also needs to simulate a SHIFT key, too. + * that keySimulateUpDown() doesn't think it also needs to simulate a SHIFT key, too. */ - keyCodeSim += 0x20; + keyCodeSim += (Keyboard.ASCII.a - Keyboard.ASCII.A); } // if (DEBUG) this.messageDebugger("ALT event: keyCode " + keyCode); } @@ -1346,7 +1380,7 @@ Keyboard.prototype.keyEvent = function(event, fDown) } if (fPass === undefined) { - fPass = !this.keyEventSimulate(keyCodeSim, fDown, Keyboard.SIMCODE.KEYEVENT); + fPass = !this.keySimulateUpDown(keyCodeSim, fDown, Keyboard.SIMCODE.KEYUPDOWN); } if (DEBUG) this.messageDebugger(/*(fDown?"\n":"") +*/ "key" + (fDown? "Down" : "Up") + "(" + keyCode + "): " + (fPass? "pass" : "consume"), Debugger.MESSAGE_KEYS); @@ -1356,9 +1390,6 @@ Keyboard.prototype.keyEvent = function(event, fDown) /** * keyPress(event) * - * We've stopped relying on keyPress for keyboard emulation purposes, but it's still handy to hook and monitor - * when debugging. - * * @this {Keyboard} * @param {Object} event * @return {boolean} true to pass the event along, false to consume it @@ -1376,14 +1407,14 @@ Keyboard.prototype.keyPress = function(event) if (keyCode == Keyboard.KEYCODE.BS || keyCode == Keyboard.KEYCODE.TAB) { /* - * Unlike Safari and Chrome, Firefox doesn't seem to honor our "consume" request for the "down" DELETE keyEvent, - * so we must ALSO check for the DELETE key here, and again "consume" it. Ditto for TAB. + * Unlike Safari and Chrome, Firefox doesn't seem to honor our "consume" request for the "down" BS keyEvent, + * so we must ALSO check for the BS key here, and again "consume" it. Ditto for TAB. * - * In fact, this is just one example of a larger Firefox problem (see https://bugzilla.mozilla.org/show_bug.cgi?id=501496). + * This is just one example of a larger Firefox problem (see https://bugzilla.mozilla.org/show_bug.cgi?id=501496). * Basically, Firefox is not honoring our consumption of keyDown events, and generates keyPress events anyway. - * This causes us grief for various CTRL and ALT combinations, resulting in duplicate key presses. - * So, I'm going to try to fix this below, by setting fPass to true if either of those modifier keys is currently down; - * if they're not, then we'll continue with the original code that sets fPass based on the return value from keyPressSimulate(). + * This causes us grief for various CTRL and ALT combinations, resulting in duplicate key presses. So, I'm going + * to try to fix this below, by setting fPass to true if either of those modifier keys is currently down; + * if they're not, then we'll continue with the original code that sets fPass based on the return from keySimulatePress(). */ fPass = false; } else { @@ -1394,7 +1425,7 @@ Keyboard.prototype.keyPress = function(event) if (this.bitsShift & (Keyboard.STATE.CTRL | Keyboard.STATE.ALT)) fPass = false; else - fPass = !this.keyPressSimulate(keyCode); + fPass = !this.keySimulatePress(keyCode); } } @@ -1403,14 +1434,14 @@ Keyboard.prototype.keyPress = function(event) }; /** - * keyPressSimulate(keyCode) + * keySimulatePress(keyCode) * * @this {Keyboard} * @param {number} keyCode * @param {boolean} [fQuickRelease] is true to simulate the press and release immediately * @return {boolean} true if successfully simulated, false if unrecognized/unsupported key */ -Keyboard.prototype.keyPressSimulate = function(keyCode, fQuickRelease) +Keyboard.prototype.keySimulatePress = function(keyCode, fQuickRelease) { var fSimulated = false; @@ -1419,7 +1450,7 @@ Keyboard.prototype.keyPressSimulate = function(keyCode, fQuickRelease) */ this.autoClear(keyCode); - if (this.keyEventSimulate(keyCode, true, Keyboard.SIMCODE.KEYPRESS)) { + if (this.keySimulateUpDown(keyCode, true, Keyboard.SIMCODE.KEYPRESS)) { /* * If fQuickRelease is set, we switch to an alternate approach, which is to immediately queue a * "release" event as well. I used to also do this at high speeds, because the CPU could get lucky @@ -1435,7 +1466,7 @@ Keyboard.prototype.keyPressSimulate = function(keyCode, fQuickRelease) * that it's time to review/overhaul this code. */ if (fQuickRelease /* || this.cpu.speed == CPU.SPEED_MAX */) { - this.keyEventSimulate(keyCode, false, Keyboard.SIMCODE.KEYRELEASE); + this.keySimulateUpDown(keyCode, false, Keyboard.SIMCODE.KEYRELEASE); } else { var fRepeat = false; @@ -1445,20 +1476,20 @@ Keyboard.prototype.keyPressSimulate = function(keyCode, fQuickRelease) } var msDelay = this.calcReleaseDelay(fRepeat); this.aKeyTimers[this.prevCharDown = keyCode] = setTimeout(function (kbd) { - return function onKeyPressSimulateTimeout() { - kbd.keyEventSimulate(keyCode, false, Keyboard.SIMCODE.KEYTIMEOUT); + return function onkeySimulatePressTimeout() { + kbd.keySimulateUpDown(keyCode, false, Keyboard.SIMCODE.KEYTIMEOUT); }; }(this), msDelay); - if (DEBUG) this.messageDebugger("keyPressSimulate(" + keyCode + "): setTimeout()"); + if (DEBUG) this.messageDebugger("keySimulatePress(" + keyCode + "): setTimeout()"); } fSimulated = true; } - if (DEBUG) this.messageDebugger("keyPressSimulate(" + keyCode + "): " + (fSimulated? "true" : "false")); + if (DEBUG) this.messageDebugger("keySimulatePress(" + keyCode + "): " + (fSimulated? "true" : "false"), Debugger.MESSAGE_KEYS); return fSimulated; }; /** - * keyEventSimulate(keyCode, fDown, simCode) + * keySimulateUpDown(keyCode, fDown, simCode) * * @this {Keyboard} * @param {number} keyCode @@ -1466,7 +1497,7 @@ Keyboard.prototype.keyPressSimulate = function(keyCode, fQuickRelease) * @param {number} simCode indicates the origin of the event * @return {boolean} true if successfully simulated, false if unrecognized/unsupported key */ -Keyboard.prototype.keyEventSimulate = function(keyCode, fDown, simCode) +Keyboard.prototype.keySimulateUpDown = function(keyCode, fDown, simCode) { var fSimulated = false; @@ -1483,10 +1514,11 @@ Keyboard.prototype.keyEventSimulate = function(keyCode, fDown, simCode) * and this bit of code relieves us from having to explicitly define every CTRL-letter * possibility in aKeyCodes. * - * TODO: Support for CTRL-anything-else (as well as ALT-anything-else) is still TBD. + * TODO: Support for CTRL-anything-else (including CTRL-SHIFT-anything else) as well + * as ALT-anything-else (including CTRL-ALT, SHIFT-ALT, or CTRL-SHIFT-ALT) is still TBD. */ - if (keyCode >= 0x01 && keyCode <= 0x1A) { - keyCode += 0x40; + if (keyCode >= Keyboard.ASCII.CTRLA && keyCode <= Keyboard.ASCII.CTRLZ) { + keyCode += (Keyboard.ASCII.A - Keyboard.ASCII.CTRLA); wCode = (Keyboard.aKeyCodes[keyCode] & 0xff) | (Keyboard.STATE.CTRL << 8); } } @@ -1496,39 +1528,40 @@ Keyboard.prototype.keyEventSimulate = function(keyCode, fDown, simCode) * Hack to transform the IBM "BACKSPACE" key (which we normally map to KEYCODE_DELETE) to the IBM "DEL" key * whenever both CTRL and ALT are pressed as well, so that it's easier to simulate that old favorite: CTRL-ALT-DEL */ - if (wCode == 0x0E) { + if (wCode == Keyboard.aSoftCodes['bs']) { if ((this.bitsShift & (Keyboard.STATE.CTRL | Keyboard.STATE.ALT)) == (Keyboard.STATE.CTRL | Keyboard.STATE.ALT)) { - wCode = 0x53; + wCode = Keyboard.aSoftCodes['num-del']; } } + var bCode = wCode & 0xff; + var fAlpha = (keyCode >= Keyboard.ASCII.A && keyCode <= Keyboard.ASCII.Z || keyCode >= Keyboard.ASCII.a && keyCode <= Keyboard.ASCII.z); var abScanCodes = []; - abScanCodes.push((wCode & 0xff) | (fDown? 0 : 0x80)); + abScanCodes.push(bCode | (fDown? 0 : Keyboard.SCAN.BREAK)); while (wCode >>= 8) { var bScan = 0; var bShift = wCode & 0xff; if (bShift == Keyboard.STATE.SHIFT) { - /* - * TODO: The fact that CAPSLOCK is currently set affects only letters.... - */ - if (!(this.bitsShift & (Keyboard.STATE.SHIFT | Keyboard.STATE.RSHIFT | Keyboard.STATE.CAPSLOCK))) { - bScan = 0x2A; + if (!(this.bitsShift & (Keyboard.STATE.SHIFT | Keyboard.STATE.RSHIFT))) { + if (!(this.bitsShift & Keyboard.STATE.CAPSLOCK) || !fAlpha) { + bScan = Keyboard.aSoftCodes['shift']; + } } } else if (bShift == Keyboard.STATE.CTRL) { if (!(this.bitsShift & (Keyboard.STATE.CTRL | Keyboard.STATE.RCTRL))) { - bScan = 0x1D; + bScan = Keyboard.aSoftCodes['ctrl']; } } else if (bShift == Keyboard.STATE.ALT) { if (!(this.bitsShift & (Keyboard.STATE.ALT | Keyboard.STATE.RALT))) { - bScan = 0x38; + bScan = Keyboard.aSoftCodes['alt']; } } if (bScan) { if (fDown) abScanCodes.unshift(bScan); else - abScanCodes.push(bScan | 0x80); + abScanCodes.push(bScan | Keyboard.SCAN.BREAK); } } @@ -1538,7 +1571,7 @@ Keyboard.prototype.keyEventSimulate = function(keyCode, fDown, simCode) fSimulated = true; } - if (DEBUG && DEBUGGER) this.messageDebugger("keyEventSimulate(" + keyCode + "," + (fDown? "down" : "up") + "," + Keyboard.aSimCodeDescs[simCode] + "): " + (fSimulated? "true" : "false")); + if (DEBUG && DEBUGGER) this.messageDebugger("keySimulateUpDown(" + keyCode + "," + (fDown? "down" : "up") + "," + Keyboard.aSimCodeDescs[simCode] + "): " + (fSimulated? "true" : "false"), Debugger.MESSAGE_KEYS); return fSimulated; }; diff --git a/my_modules/pcjs-client/lib/video.js b/my_modules/pcjs-client/lib/video.js index a7156c548..8ccd0d63b 100644 --- a/my_modules/pcjs-client/lib/video.js +++ b/my_modules/pcjs-client/lib/video.js @@ -2210,15 +2210,15 @@ Video.prototype.processTouchEvent = function(event, fStart) */ if (/* xThird == 1 && */ yThird != 1) { if (!yThird) { - this.kbd.keyPressSimulate(Keyboard.KEYCODE.UP, true); + this.kbd.keySimulatePress(Keyboard.KEYCODE.UP, true); } else { - this.kbd.keyPressSimulate(Keyboard.KEYCODE.DOWN, true); + this.kbd.keySimulatePress(Keyboard.KEYCODE.DOWN, true); } } else if (/* yThird == 1 && */ xThird != 1) { if (!xThird) { - this.kbd.keyPressSimulate(Keyboard.KEYCODE.LEFT, true); + this.kbd.keySimulatePress(Keyboard.KEYCODE.LEFT, true); } else { - this.kbd.keyPressSimulate(Keyboard.KEYCODE.RIGHT, true); + this.kbd.keySimulatePress(Keyboard.KEYCODE.RIGHT, true); } } }; diff --git a/my_modules/pcjs-client/package.json b/my_modules/pcjs-client/package.json index f06a3e2e8..3a2cb32fe 100644 --- a/my_modules/pcjs-client/package.json +++ b/my_modules/pcjs-client/package.json @@ -1,6 +1,6 @@ { "name": "PCjs", - "version": "1.13.2", + "version": "1.15.9", "description": "IBM PC Emulator", "author": "Jeff Parsons <Jeff@pcjs.org>", "licenses": [ diff --git a/versions/pcjs/1.15.9/pc-dbg.js b/versions/pcjs/1.15.9/pc-dbg.js index e8e3e1eb4..7f3447a68 100644 --- a/versions/pcjs/1.15.9/pc-dbg.js +++ b/versions/pcjs/1.15.9/pc-dbg.js @@ -1,10 +1,10 @@ (function(){var k,aa,m;function ba(a,b){return b&&10!=b?16==b?null!==a.match(/^[0-9a-f]+$/i):!0:null!==a.match(/^[0-9]+$/)}function ca(a){var b,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;ba(a,b)&&!isNaN(e=parseInt(a,b))&&(c=e)}return c} function p(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(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 q(a){return p(a,2)}function u(a){return p(a,4)}function da(a,b){return void 0!==b?u(b)+":"+u(a):p(a)}function ea(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c} function fa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}var ha={"&":"&","<":"<",">":">",'"':""","'":"'"};function ia(a){return a.replace(/[&<>"']/g,function(a){return ha[a]})}function ka(a,b){var c="",d;for(d in a)d=d.replace(/([\\[\]*{}().+?])/g,"\\$1"),c+=(c?"|":"")+d;return b.replace(new RegExp("("+c+")","g"),function(b){return a[b]})}function la(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")} -function ma(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}function na(a,b,c){c=ma(a,b,c);0>c&&a.splice(-(c+1),0,b)}function oa(){return Date.now()||+new Date}function pa(){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 ma(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 g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}function na(a,b,c){c=ma(a,b,c);0>c&&a.splice(-(c+1),0,b)}function oa(){return Date.now()||+new Date}function pa(){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())} var qa=[31,28,31,30,31,30,31,31,30,31,30,31],ra; -function sa(a,b,c,d,e,f){b=!!b;var h=0,g=null,l=ea(a),n=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(n.onreadystatechange=function(){4===n.readyState&&(g=n.responseText,200==n.status||!n.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(h=n.status||-1),e&&(d?e.call(d,l,g,h,f):e(l,g,h,f)))});if(c){var r="",s;for(s in c)c.hasOwnProperty(s)&&(r&&(r+="&"),r+=s+"="+encodeURIComponent(c[s]));r=r.replace(/%20/g,"+");n.open("POST", -a,b);n.setRequestHeader("Content-type","application/x-www-form-urlencoded");n.send(r)}else n.open("GET",a,b),n.send();a=[];b||(g=n.responseText,200!=n.status&&(h=n.status||-1),e&&(d?e.call(d,l,g,h,f):e(l,g,h,f)),a=[h,g]);return a}function ta(){return"http://"+(window?window.location.host:"www.pcjs.org")}function w(a){window&&window.alert(a)}function ua(a){var b=!1;window&&(b=window.confirm(a));return b} +function sa(a,b,c,d,e,f){b=!!b;var g=0,h=null,l=ea(a),n=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(n.onreadystatechange=function(){4===n.readyState&&(h=n.responseText,200==n.status||!n.status&&h.length&&"file:"==(window?window.location.protocol:"file:")||(g=n.status||-1),e&&(d?e.call(d,l,h,g,f):e(l,h,g,f)))});if(c){var r="",s;for(s in c)c.hasOwnProperty(s)&&(r&&(r+="&"),r+=s+"="+encodeURIComponent(c[s]));r=r.replace(/%20/g,"+");n.open("POST", +a,b);n.setRequestHeader("Content-type","application/x-www-form-urlencoded");n.send(r)}else n.open("GET",a,b),n.send();a=[];b||(h=n.responseText,200!=n.status&&(g=n.status||-1),e&&(d?e.call(d,l,h,g,f):e(l,h,g,f)),a=[g,h]);return a}function ta(){return"http://"+(window?window.location.host:"www.pcjs.org")}function w(a){window&&window.alert(a)}function ua(a){var b=!1;window&&(b=window.confirm(a));return b} function va(){if(void 0===ra){var a;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}ra=a}return ra}function wa(a){var b;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=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function za(a,b,c){function d(){a-=1;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 Ba={init:[],show:[],exit:[]},Ca=!1,Da=!0;function Ea(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Fa(a){Ba.init.push(a)} @@ -13,20 +13,20 @@ function y(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.na if(window){Ma||(Ma=window.location.search.substr(1));for(var Oa,Ra=/\+/g,Sa=/([^&=]+)=?([^&]*)/g;Oa=Sa.exec(Ma);)Na[decodeURIComponent(Oa[1].replace(Ra," "))]=decodeURIComponent(Oa[2].replace(Ra," "))}function Ta(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 Ua(a,b){b.prototype=Ta(a.prototype)}var Ja=[]; function Va(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ja.length;b++){var d=Ja[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Wa(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<Ja.length;c++)if(Ja[c].id===a)return Ja[c]}return null} function Ya(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<Ja.length;d++)if(c)c==Ja[d]&&(c=null);else if(!(a!=Ja[d].type||b&&Ja[d].id.indexOf(b)))return Ja[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("({"+a+"})")}catch(c){w(c.message+" ("+a+")")}return b} -function Za(a,b){var c,d;d=A(b.parentNode,"pcjs-control");for(c=0;c<d.length;c++){var e,f;f=d[c].childNodes;for(e=0;e<f.length;e++){var h=f[e];if(h.nodeType===window.document.ELEMENT_NODE){var g=h.getAttribute("class");if(g){var l,n;n=g.split(" ");for(l=0;l<n.length;l++)switch(g=n[l],g){case "pcjs-input":case "pcjs-output":(n=z(h))&&n.binding&&a.zb(g,n.type,n.binding,h),n=[]}}}}}} +function Za(a,b){var c,d;d=A(b.parentNode,"pcjs-control");for(c=0;c<d.length;c++){var e,f;f=d[c].childNodes;for(e=0;e<f.length;e++){var g=f[e];if(g.nodeType===window.document.ELEMENT_NODE){var h=g.getAttribute("class");if(h){var l,n;n=h.split(" ");for(l=0;l<n.length;l++)switch(h=n[l],h){case "pcjs-input":case "pcjs-output":(n=z(g))&&n.binding&&a.Ab(h,n.type,n.binding,g),n=[]}}}}}} 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} -y.prototype={toString:function(){return this.name?this.name:this.id||this.type},zb:function(a,b,c,d){switch(c){case "clear":return this.za[c]||(this.za[c]=d,d.onclick=function(a){return function(){a.za.print&&(a.za.print.value="")}}(this)),!0;case "print":return this.za[c]||(this.Wf=this.za[c]=d,d.value="",this.fa=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}}(d),this.Ja= +y.prototype={toString:function(){return this.name?this.name:this.id||this.type},Ab:function(a,b,c,d){switch(c){case "clear":return this.za[c]||(this.za[c]=d,d.onclick=function(a){return function(){a.za.print&&(a.za.print.value="")}}(this)),!0;case "print":return this.za[c]||(this.Wf=this.za[c]=d,d.value="",this.fa=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}}(d),this.Ja= function(a,b,c){this.fa(a,"notice",c)}),!0;default:return!1}},log:function(){},fa:function(){},status:function(a){this.fa(this.sh+": "+a)},Ja:function(a,b){b||w(a)},Ta:function(a){this.qa.Zc||(this.qa.mh=!1!==a,this.qa.mh&&(this.name&&this.log("ready"),a=this.Ai,this.Ai=null,a&&a()))},Yb:function(){return this.qa.Lb=!0},Xb:function(a,b){b&&(this.qa.Lb=!1);return!0}}; function $a(a,b){if(a.qa.si)return a.qa.Mc&&(a.qa.Mc=!1),a.qa.si=!1;if(a.qa.Zc)return a.fa(a.toString()+" error"),!1;a.qa.Mc=b;return a.qa.Mc}function ab(a,b){a.qa.Mc&&(b?a.qa.si=!0:void 0===b&&a.fa(a.toString()+" busy"));return a.qa.Mc}function bb(a,b){b&&(a.qa.mh?b():a.Ai=b);return a.qa.mh}function cb(a,b){a.qa.Zc=!0;a.Ja("Fatal error: "+b)}window&&!window.document.ELEMENT_NODE&&(window.document.ELEMENT_NODE=1);function db(a){y.call(this,"Panel",a,db)}Ua(y,db); -db.prototype.zb=function(a,b,c,d){return this.Ka&&this.Ka.zb(a,b,c,d)||this.T&&this.T.zb(a,b,c,d)||this.ab&&this.ab.zb(a,b,c,d)||this.da&&this.da.zb(a,b,c,d)?!0:y.prototype.zb.call(this,a,b,c,d)};db.prototype.pc=function(a,b,c,d){this.Ka=a;this.T=c;this.da=d;this.ab=eb(a,"Keyboard")};db.prototype.Yb=function(a,b){b||fb();return!0};db.prototype.Xb=function(){return!0}; +db.prototype.Ab=function(a,b,c,d){return this.Ka&&this.Ka.Ab(a,b,c,d)||this.T&&this.T.Ab(a,b,c,d)||this.ab&&this.ab.Ab(a,b,c,d)||this.da&&this.da.Ab(a,b,c,d)?!0:y.prototype.Ab.call(this,a,b,c,d)};db.prototype.pc=function(a,b,c,d){this.Ka=a;this.T=c;this.da=d;this.ab=eb(a,"Keyboard")};db.prototype.Yb=function(a,b){b||fb();return!0};db.prototype.Xb=function(){return!0}; function fb(){for(var a=!1,b=A(window.document,"pcjs","panel"),c=0;c<b.length;c++){var d=b[c],e=z(d),f=Wa(e.id);f||(a=!0,f=new db(e));Za(f,d);a&&f.Ta()}}Fa(fb);function gb(a,b,c){y.call(this,"Bus",a,gb);this.T=b;this.da=c;this.eg=a.buswidth||20;this.Jf=this.ed=(1<<this.eg)-1;this.rb=20>=this.eg?12:14;this.fc=1<<this.rb;this.ik=this.fc>>2;this.gb=this.fc-1;this.Xg=(this.Jf+this.fc)/this.fc|0;this.De=this.Xg-1;this.td=[];this.ud=[];this.ag=this.bg=!1;this.Gi();this.Ta()}Ua(y,gb); gb.prototype.Gi=function(){this.Fa=Array(this.Xg);for(var a=0;a<this.Xg;a++){var b=a*this.fc;hb(this.Fa[a]=new ib(b),this.T,this.da,b,this.fc)}this.T.Gi(this.Fa,this.Jf,this.rb,this.gb,this.De);this.T.ze=this.ed};gb.prototype.reset=function(){jb(this,!0)};gb.prototype.Yb=function(a,b){b||this.reset();return!0}; -function kb(a,b,c,d,e){if(!(b&a.gb||!c||c&a.gb)){for(var f=b>>a.rb;0<c&&f<a.Fa.length;){var h=a.Fa[f];if(void 0!==h&&h.size)return lb(1,b,c);b=f*a.fc;h=a.Fa[f++]=new ib(b,a.fc,d,e);hb(h,a.T,a.da,b,a.fc);c-=a.fc}return!0}return lb(2,b,c)}function jb(a,b){if(void 0!==b&&20<a.eg){var c=a.ed&-1048577|(b?1048576:0);c!=a.ed&&(a.ed=c,a.T&&(a.T.ze=c))}} +function kb(a,b,c,d,e){if(!(b&a.gb||!c||c&a.gb)){for(var f=b>>a.rb;0<c&&f<a.Fa.length;){var g=a.Fa[f];if(void 0!==g&&g.size)return lb(1,b,c);b=f*a.fc;g=a.Fa[f++]=new ib(b,a.fc,d,e);hb(g,a.T,a.da,b,a.fc);c-=a.fc}return!0}return lb(2,b,c)}function jb(a,b){if(void 0!==b&&20<a.eg){var c=a.ed&-1048577|(b?1048576:0);c!=a.ed&&(a.ed=c,a.T&&(a.T.ze=c))}} gb.prototype.Oh=function(a,b,c){if(!(a&this.gb||!b||b&this.gb)){for(var d=a>>this.rb;0<b;){var e=this.Fa[d];if(!e.ia)return lb(5,a,b);e.Ve(c);b-=this.fc;d++}return!0}return lb(3,a,b)};function mb(a,b,c){if(!(b&a.gb||!c||c&a.gb)){for(var d=b>>a.rb;0<c;)b=d*a.fc,hb(a.Fa[d++]=new ib(b),a.T,a.da,b,a.fc),c-=a.fc;return!0}return lb(4,b,c)}function nb(a,b){return a.Fa[(b&a.ed)>>a.rb].xg(b&a.gb)} function ob(a,b){var c=b&a.gb,d=(b&a.ed)>>a.rb;return c!=a.gb?a.Fa[d].Jj(c):a.Fa[d++].xg(c)|a.Fa[d&a.De].xg(0)<<8}function pb(a,b,c){a.Fa[(b&a.ed)>>a.rb].Eg(b&a.gb,c&255)}function qb(a,b,c){var d=b&a.gb;b=(b&a.ed)>>a.rb;d!=a.gb?a.Fa[b].Sj(d,c&65535):(a.Fa[b++].Eg(d,c&255),a.Fa[b&a.De].Eg(0,c>>8&255))} -function rb(a){for(var b=0,c=[],d=0;d<a.Xg;d++){var e=a.Fa[d];if(e.lb||e.tk){c[b++]=d;var f=c,h=b++;a:if(e=e.save()){for(var g=0,l=0,n=[];g<e.length;){for(var r=e[g],s=g+1;s<e.length&&e[s]===r;)s++;n[l++]=s-g;n[l++]=r;g=s}if(n.length<e.length){e=n;break a}}f[h]=e}}c[b]=a.Jf==a.ed;return c}function sb(a,b){if(void 0===b)return a.ag=!a.ag,a.ag;void 0===a.td[b]&&(a.td[b]=[null,null,!1]);a.td[b][2]=!a.td[b][2];return a.td[b][2]} -function tb(a,b,c,d){void 0===d&&(d=0);for(var e in c){e=parseInt(e,10);var f=a,h=e+d,g=b,l=c[e];if(void 0!==l)for(var n=e+d;n<=h;n++)void 0!==f.td[n]?w("Input port "+u(n)+" registered by "+f.td[n][0].id+", ignoring "+g.id):f.td[n]=[g,l,!1,!1]}}function ub(a,b,c){var d=255,e=a.td[b];void 0!==e?(e[1]&&(d=e[1].call(e[0],b,c)),a.da&&a.ag!=e[2]&&vb(a.da,b,d)):a.da&&(a.da.ea(a,b,null,c),a.ag&&vb(a.da,b,d));return d} -function yb(a,b){if(void 0===b)return a.bg=!a.bg,a.bg;void 0===a.ud[b]&&(a.ud[b]=[null,null,!1]);a.ud[b][2]=!a.ud[b][2];return a.ud[b][2]}function zb(a,b,c,d){void 0===d&&(d=0);for(var e in c){e=parseInt(e,10);var f=a,h=e+d,g=b,l=c[e];if(void 0!==l)for(var n=e+d;n<=h;n++)void 0!==f.ud[n]?w("Output port "+u(n)+" registered by "+f.ud[n][0].id+", ignoring "+g.id):f.ud[n]=[g,l,!1,!1]}} +function rb(a){for(var b=0,c=[],d=0;d<a.Xg;d++){var e=a.Fa[d];if(e.lb||e.tk){c[b++]=d;var f=c,g=b++;a:if(e=e.save()){for(var h=0,l=0,n=[];h<e.length;){for(var r=e[h],s=h+1;s<e.length&&e[s]===r;)s++;n[l++]=s-h;n[l++]=r;h=s}if(n.length<e.length){e=n;break a}}f[g]=e}}c[b]=a.Jf==a.ed;return c}function sb(a,b){if(void 0===b)return a.ag=!a.ag,a.ag;void 0===a.td[b]&&(a.td[b]=[null,null,!1]);a.td[b][2]=!a.td[b][2];return a.td[b][2]} +function tb(a,b,c,d){void 0===d&&(d=0);for(var e in c){e=parseInt(e,10);var f=a,g=e+d,h=b,l=c[e];if(void 0!==l)for(var n=e+d;n<=g;n++)void 0!==f.td[n]?w("Input port "+u(n)+" registered by "+f.td[n][0].id+", ignoring "+h.id):f.td[n]=[h,l,!1,!1]}}function ub(a,b,c){var d=255,e=a.td[b];void 0!==e?(e[1]&&(d=e[1].call(e[0],b,c)),a.da&&a.ag!=e[2]&&vb(a.da,b,d)):a.da&&(a.da.ea(a,b,null,c),a.ag&&vb(a.da,b,d));return d} +function yb(a,b){if(void 0===b)return a.bg=!a.bg,a.bg;void 0===a.ud[b]&&(a.ud[b]=[null,null,!1]);a.ud[b][2]=!a.ud[b][2];return a.ud[b][2]}function zb(a,b,c,d){void 0===d&&(d=0);for(var e in c){e=parseInt(e,10);var f=a,g=e+d,h=b,l=c[e];if(void 0!==l)for(var n=e+d;n<=g;n++)void 0!==f.ud[n]?w("Output port "+u(n)+" registered by "+f.ud[n][0].id+", ignoring "+h.id):f.ud[n]=[h,l,!1,!1]}} function Ab(a,b,c,d){var e=a.ud[b];void 0!==e?(e[1]&&e[1].call(e[0],b,c,d),a.da&&a.bg!=e[2]&&Bb(a.da,b,c)):a.da&&(a.da.ea(a,b,c,d),a.bg&&Bb(a.da,b,c))}function lb(a,b,c){w("Memory block error ("+a+","+p(b)+","+p(c)+")");return!1} function ib(a,b,c,d){this.nm=b||0;this.wa=null;this.offset=0;this.lh=c;this.ia=null;this.lb=this.tk=!1;if(b)if(d)this.ia=d,a=[d.fd,a-d.Ua],this.wa=a[0],this.offset=a[1],this.Ve(d.Lf);else{this.wa=Array(b>>2);for(d=0;d<this.wa.length;d++)this.wa[d]=0;this.Ve(Cb)}else this.Ve()} ib.prototype={Ih:function(a){C(this.da,Db)&&!a&&this.da.message("attempt to read invalid block %"+p(this.Zd)+" from "+da(this.T.va,this.T.xa.ta));return 0},zf:function(a,b){C(this.da,Db)&&!a&&this.da.message("attempt to write 0x"+u(b)+" to invalid block %"+p(this.Zd)+" from "+da(this.T.va,this.T.xa.ta))},Yo:function(a){return this.wa[a>>2]>>>((a&3)<<3)&255},$o:function(a){var b=a>>2;a=(a&3)<<3;var c=this.wa[b]>>>a;return 24>a?c&65535:c&255|(this.wa[b+1]&255)<<8},hp:function(a,b){var c=a>>2,d=(a&3)<< @@ -36,13 +36,13 @@ function Hb(a,b,c){a.Dc=b[2]&&!a.lh?b[2]:a.zf;a.em=b[3]&&!a.lh?b[3]:a.zf;c&&(a.E function Lb(a,b){y.call(this,"CPU",a,Lb);var c=a.cycles||b,d=a.multiplier||1;this.ca={};this.ca.Jd=c;this.ca.Id=d;this.ca.vh=Math.round(this.ca.Jd/1E4)/100;this.ca.Le=this.ca.vh*this.ca.Id;this.qa.Lb=!1;this.qa.Mb=!1;this.qa.ri=a.autoStart;c=Na.autostart;void 0!==c&&(this.qa.ri="true"==c?!0:"false"==c?!1:null);this.qa.ff=!1;this.ca.fg=this.ca.pf=0;this.ca.hg=a.csStart;this.ca.of=a.csInterval;this.ca.qf=a.csStop;var e=this;this.Yn=function(){e.Se()};this.Ta()}Ua(y,Lb);k=Lb.prototype; k.pc=function(a,b,c,d){this.ra=b;this.da=d;this.Ka=a;var e=eb(a,"Video");e&&(this.mi=function(){Mb(e)},this.Pd=function(){e.Pd()});this.oa=eb(a,"ChipSet");this.Ta()};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};k.Yb=function(a,b){if(!b){if(a&&this.restore){Nb(this);if(!this.restore(a))return!1;Ob(this)}else this.reset();this.da?this.da.En():this.fa("No debugger detected")}this.qa.Lb=!0;!Pb(this)&&this.da&&Qb(this.da);Sb(this);return!0}; k.Xb=function(a){this.qa.Lb=!1;return a&&this.save?this.save():!0};function Pb(a){return!0===a.qa.ri||null===a.qa.ri&&!a.da&&void 0===a.za.run?(a.Se(),!0):!1}k.Pd=function(){};k.zk=function(){return 0};function Ob(a){void 0===a.ca.hg&&(a.ca.hg=0);void 0===a.ca.of&&(a.ca.of=-1);void 0===a.ca.qf&&(a.ca.qf=-1);a.qa.ff=0<=a.ca.hg&&0<a.ca.of;a.qa.ff&&(a.ca.fg=0,a.ca.pf=a.ca.hg-a.Pe)} -function Tb(a,b){if(a.qa.ff){var c=!1;a.ca.fg=a.ca.fg+a.zk()|0;a.ca.pf-=b;0>=a.ca.pf&&(a.ca.pf+=a.ca.of,c=!0);0<=a.ca.qf&&a.ca.qf<=E(a)&&(a.ca.of=a.ca.qf=-1,Ob(a),a.wb(),c=!0);c&&a.fa(E(a)+" cycles: checksum="+p(a.ca.fg))}}function F(a,b,c,d){void 0!==a.za[b]&&(void 0===d&&(d=4),void 0===c&&(cb(a,"Register "+b+" is invalid"),a.wb()),c=p(c,d),a.za[b].innerHTML!=c&&(a.za[b].innerHTML=c))}k.bh=function(){};k.mi=function(){}; -k.zb=function(a,b,c,d){var e=this;a=!1;switch(c){case "run":this.za[c]=d;d.onclick=function(){e.qa.Mb?e.wb(!0):e.Se(!0)};a=!0;break;case "reset":this.za[c]=d;d.onclick=function(){e.Ka&&Ub(e.Ka)};a=!0;break;case "speed":this.za[c]=d;a=!0;break;case "setSpeed":this.za[c]=d,d.onclick=function(){Vb(e,e.ca.Id<<1,!0)},d.innerHTML=this.ca.Le.toFixed(2)+"Mhz",a=!0}return a};function Wb(a,b,c){a.Pe+=b;c&&(a.Pc=a.A=0)} +function Tb(a,b){if(a.qa.ff){var c=!1;a.ca.fg=a.ca.fg+a.zk()|0;a.ca.pf-=b;0>=a.ca.pf&&(a.ca.pf+=a.ca.of,c=!0);0<=a.ca.qf&&a.ca.qf<=E(a)&&(a.ca.of=a.ca.qf=-1,Ob(a),a.xb(),c=!0);c&&a.fa(E(a)+" cycles: checksum="+p(a.ca.fg))}}function F(a,b,c,d){void 0!==a.za[b]&&(void 0===d&&(d=4),void 0===c&&(cb(a,"Register "+b+" is invalid"),a.xb()),c=p(c,d),a.za[b].innerHTML!=c&&(a.za[b].innerHTML=c))}k.bh=function(){};k.mi=function(){}; +k.Ab=function(a,b,c,d){var e=this;a=!1;switch(c){case "run":this.za[c]=d;d.onclick=function(){e.qa.Mb?e.xb(!0):e.Se(!0)};a=!0;break;case "reset":this.za[c]=d;d.onclick=function(){e.Ka&&Ub(e.Ka)};a=!0;break;case "speed":this.za[c]=d;a=!0;break;case "setSpeed":this.za[c]=d,d.onclick=function(){Vb(e,e.ca.Id<<1,!0)},d.innerHTML=this.ca.Le.toFixed(2)+"Mhz",a=!0}return a};function Wb(a,b,c){a.Pe+=b;c&&(a.Pc=a.A=0)} function Xb(a,b){var c=30;60>c&&(c=60);2>c&&(c=2);var d=1;b&&1<a.ca.Id&&a.ca.nd&&(d=a.ca.nd/a.ca.vh);a.ca.Hk=Math.round(1E3/30);a.ca.Rn=Math.floor(a.ca.Jd/c*d);a.ca.Ni=Math.floor(a.ca.Jd/30*d);a.ca.Lk=Math.floor(a.ca.Jd/60*d);a.ca.Kk=Math.floor(a.ca.Jd/2*d);b||(a.ca.rf=a.ca.Ni,a.ca.jg=a.ca.Lk,a.ca.ig=a.ca.Kk);a.ca.Oi=0}function E(a,b){var c=a.Pe+a.pe+a.Pc-a.A;b&&1<a.ca.Id&&a.ca.nd>a.ca.vh&&(c=Math.round(c/a.ca.Id));return c}function Nb(a){a.ca.nd=0;a.yh=1;a.Pe=a.pe=a.Pc=a.A=0;Ob(a);Vb(a,1)} function Vb(a,b,c){void 0!==b&&(0.8>a.ca.nd/a.ca.Le&&(b=1),a.ca.Id=b,b=a.ca.vh*a.ca.Id,a.ca.Le!=b&&(a.ca.Le=b,b=a.ca.Le.toFixed(2)+"Mhz",a.za.setSpeed&&(a.za.setSpeed.innerHTML=b),a.fa("target speed: "+b)),c&&a.Pd());Wb(a,a.pe);a.pe=0;a.ca.nf=oa();a.ca.Me=0;Xb(a)} k.Se=function(a){if($a(this,!0)){this.qa.Mb||(Vb(this),this.Ka&&this.Ka.start(this.ca.nf,E(this)),this.qa.Mb=!0,this.oa&&Yb(this.oa),this.za.run&&(this.za.run.innerHTML="Halt"),a&&this.Pd());this.ca.Oi>=this.ca.Jd&&Xb(this,!0);this.ca.kg=0;this.ca.wh=oa();this.ca.Me&&(a=this.ca.wh-this.ca.Me,a>this.ca.Hk&&(this.ca.nf+=a,this.ca.nf>this.ca.wh&&(this.ca.nf=this.ca.wh)));try{do{this.yf(this.qa.ff?1:Math.round(this.ca.Rn/this.yh));var b=this.Pc-this.A;this.pe+=b;this.ca.kg+=b;Wb(this,0,!0);Tb(this,b); -this.ca.jg-=b;0>=this.ca.jg&&(this.ca.jg+=this.ca.Lk,this.mi());this.ca.ig-=b;0>=this.ca.ig&&(this.ca.ig+=this.ca.Kk,this.bh());this.ca.rf-=b;if(0>=this.ca.rf){this.ca.rf+=this.ca.Ni;break}}while(this.qa.Mb)}catch(c){this.wb();Sb(this);this.Ka&&this.Ka.stop(oa(),E(this));$a(this,!1);cb(this,c.message);return}b=setTimeout;a=this.Yn;this.ca.Me=oa();var d=this.ca.Hk;this.ca.kg&&(d=Math.round(d*this.ca.kg/this.ca.Ni));var d=d-(this.ca.Me-this.ca.wh),e=this.ca.Me-this.ca.nf;e&&(this.ca.nd=Math.round(this.pe/ -(10*e))/100,864E5<=e&&(this.Pe=0,this.oa&&Zb(this.oa,!0),Vb(this)));if(0>d||this.ca.nd<this.ca.Le)d=0;this.ca.Oi+=this.ca.kg;this.ca.Me+=d;b(a,d)}else Sb(this),this.Ka&&this.Ka.stop(oa(),E(this))};k.wb=function(a){ab(this,!0);this.Pc-=this.A;this.A=0;Wb(this,this.pe);this.pe=0;this.qa.Mb&&(this.qa.Mb=!1,this.oa&&Yb(this.oa),this.za.run&&(this.za.run.innerHTML="Run"));this.qa.ih=a};k.yf=function(){return 0};function Sb(a){a.mi();a.bh()} +this.ca.jg-=b;0>=this.ca.jg&&(this.ca.jg+=this.ca.Lk,this.mi());this.ca.ig-=b;0>=this.ca.ig&&(this.ca.ig+=this.ca.Kk,this.bh());this.ca.rf-=b;if(0>=this.ca.rf){this.ca.rf+=this.ca.Ni;break}}while(this.qa.Mb)}catch(c){this.xb();Sb(this);this.Ka&&this.Ka.stop(oa(),E(this));$a(this,!1);cb(this,c.message);return}b=setTimeout;a=this.Yn;this.ca.Me=oa();var d=this.ca.Hk;this.ca.kg&&(d=Math.round(d*this.ca.kg/this.ca.Ni));var d=d-(this.ca.Me-this.ca.wh),e=this.ca.Me-this.ca.nf;e&&(this.ca.nd=Math.round(this.pe/ +(10*e))/100,864E5<=e&&(this.Pe=0,this.oa&&Zb(this.oa,!0),Vb(this)));if(0>d||this.ca.nd<this.ca.Le)d=0;this.ca.Oi+=this.ca.kg;this.ca.Me+=d;b(a,d)}else Sb(this),this.Ka&&this.Ka.stop(oa(),E(this))};k.xb=function(a){ab(this,!0);this.Pc-=this.A;this.A=0;Wb(this,this.pe);this.pe=0;this.qa.Mb&&(this.qa.Mb=!1,this.oa&&Yb(this.oa),this.za.run&&(this.za.run.innerHTML="Run"));this.qa.ih=a};k.yf=function(){return 0};function Sb(a){a.mi();a.bh()} var $b=[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 ac(a,b,c){this.T=a;this.Xa=this.ta=0;this.Oc=65535;this.Oa=0;this.rk="CS"==b;this.Bg=b;this.Ac=this.Kc=0;bc(this,c)}function cc(a){this.ta=a;this.Oc=65535;this.Kc=this.Ac=0;return this.Xa=a<<4} function dc(a){var b,c;a&4?(b=this.T.bd.Xa,c=this.T.bd.Oc):(b=this.T.yc,c=this.T.ye);b+=a&65528;if(b+7<=c){this.T.A-=15;c=this.T.ua(b+0);var d=this.T.ua(b+4);b=this.T.ua(b+2)|(d&255)<<16;var e;d&4096||(e=d&7936)&&768>=e?(this.ta=a,this.Xa=b,this.Oc=c,this.Oa=d&65280,this.type=d&7936,bc(this)):b=-1;return b}return-1}function ec(a){return this.Xa+a}function fc(a){return this.Xa+a}function gc(a,b,c){return a+b<=this.Oc?this.Xa+a:hc.call(this,0,0,c)} @@ -52,25 +52,25 @@ function oc(a){this.Ia=a.model||8088;var b=0;switch(this.Ia){default:case 8088:b Ec,this.Va[192]=Fc,this.Va[193]=Gc,this.Va[200]=Hc,this.Va[201]=Ic,this.Va[241]=Jc,Lc[7]=Mc,Oc[7]=Mc,80286<=this.Ia&&(this.Xj=2,this.Hg=0,this.Va[15]=Pc,this.Va[99]=Qc,this.Va[84]=Rc));this.Jg=[];this.Kg=[];this.Pc=this.Zg=0;this.qa.ih=this.qa.sk=!1;this.Fa=[];this.ze=this.rb=this.gb=this.De=0;this.U=this.Cm;this.V=this.Dm;this.O=this.Kn;this.P=this.Ln;this.R=this.ep;this.S=this.fp;Sc(this)}Ua(Lb,oc); var rc={Dj:4,ba:5,Aa:6,ja:7,ka:8,Q:9,W:11,X:12,Ne:4,Nk:60,Ok:83,Ub:3,sb:9,hc:16,Ch:1,Sk:19,Uk:28,Wk:16,Vk:21,Tk:37,Qk:2,Xi:9,Rk:5,Pk:33,Zi:10,Yi:8,qg:3,pg:15,jl:51,kl:1,ll:2,ml:4,il:32,$i:15,ol:15,Vb:16,Wb:4,ql:11,pl:18,nl:24,Eb:4,rl:2,aj:16,sl:17,fj:18,tl:19,ej:5,gj:6,yl:2,xl:8,vl:9,wl:10,ul:10,hj:10,ij:10,Yk:80,$k:144,Xk:86,Zk:154,bl:101,dl:165,al:107,cl:171,Al:70,Cl:113,zl:76,Bl:124,fl:80,hl:128,el:86,gl:134,sg:3,rg:16,nj:10,mj:8,Dl:51,ic:8,El:17,Fl:36,qc:11,Gl:16,tg:10,oe:2,Ui:18,Vi:7,Wi:15,bj:12, cj:7,dj:11,jj:18,kj:7,lj:15,oj:15,pj:7,qj:13,uj:11,vj:7,wj:8,Hl:8,Kl:12,Il:18,Jl:17,Ll:15,sj:8,rj:20,tj:2,zj:3,ug:9,yj:5,xj:11,Bj:4,Aj:17,Ml:11},qc={Dj:0,ba:0,Aa:0,ja:0,ka:0,Q:0,W:1,X:1,Ne:3,Nk:14,Ok:16,Ub:2,sb:7,hc:7,Ch:0,Sk:7,Uk:13,Wk:7,Vk:11,Tk:16,Qk:3,Xi:6,Rk:2,Pk:13,Zi:5,Yi:5,qg:2,pg:7,jl:23,kl:0,ll:1,ml:3,il:17,$i:7,ol:11,Vb:7,Wb:3,ql:7,pl:11,nl:15,Eb:2,rl:3,aj:7,sl:8,fj:8,tl:8,ej:4,gj:4,yl:2,xl:3,vl:5,wl:2,ul:3,hj:5,ij:3,Yk:14,$k:22,Xk:17,Zk:25,bl:17,dl:25,al:20,cl:28,Al:13,Cl:21,zl:16,Bl:24, -fl:13,hl:21,el:16,gl:24,sg:2,rg:7,nj:5,mj:5,Dl:19,ic:5,El:5,Fl:17,qc:3,Gl:5,tg:3,oe:0,Ui:8,Vi:5,Wi:9,bj:5,cj:5,dj:4,jj:5,kj:5,lj:4,oj:7,pj:5,qj:8,uj:3,vj:4,wj:3,Hl:11,Kl:11,Il:15,Jl:15,Ll:7,sj:5,rj:8,tj:0,zj:2,ug:6,yj:3,xj:6,Bj:3,Aj:5,Ml:5};k=oc.prototype;k.Gi=function(a,b,c,d,e){this.Fa=a;this.ze=b;this.rb=c;this.gb=d;this.De=e};k.reset=function(){this.qa.Mb&&this.wb();Sc(this);Nb(this);this.qa.Zc=!1}; -function Sc(a){a.H=0;a.C=0;a.J=0;a.K=0;a.Y=0;a.I=0;a.G=0;a.F=0;a.Cc=65520;a.Fc=0;a.$d=1023;a.Lc={Ej:0,ta:0,Oa:0,uh:-1};a.me=0;a.xa=new ac(a,"CS");a.yb=new ac(a,"DS");a.tb=new ac(a,"SS");a.Za=new ac(a,"ES");a.bm=new ac(a,"ZERO");Tc(a,0,65535);80286<=a.Ia&&(a.yc=0,a.ye=65535,a.bd=new ac(a,"LDT",!0),a.Ue=new ac(a,"TSS",!0),a.Nb=new ac(a,"VER",!0),Tc(a,65520,61440),a.xa.Xa=16711680);Uc(a,0);Vc(a);a.mb=0;a.Fb=a.yg=-1;a.Sg=0;a.la=a.Ma=-1;a.D=a.yb;a.N=a.tb;a.aa=a.Ba=0} -k.zk=function(){var a=this.H+this.C+this.J+this.K+this.Y+this.I+this.G+this.F|0;return a=a+this.va+this.xa.ta+this.yb.ta+this.tb.ta+this.Za.ta+Wc(this)|0};function Xc(a,b,c,d){void 0!==d&&(void 0===a.Jg[b]&&(a.Jg[b]=[]),a.Jg[b].push([c,d]))}function Yc(a,b){var c=a.Jg[b];if(void 0!==c)for(var d=0;d<c.length;d++){if(!c[d][1].call(c[d][0],a.Ga))return!1}else a.qa.sk&&C(a.da,Zc)&&($c(a.da,b,a.Ga),ad(a,a.Ga,function(a,c){return function(d){bd(a.da,b,d,E(a)-c)}}(a,E(a))));return!0} -function ad(a,b,c){void 0!==c&&(null==a.Kg[b]&&a.Zg++,a.Kg[b]=c)}function cd(a,b){var c=a.Kg[b];null!=c&&(c(--a.Zg),delete a.Kg[b])}function Vc(a,b){void 0===b&&(b=!!(a.Cc&1));dd=b?ed:fd;bc(a.xa,b);bc(a.yb,b);bc(a.tb,b);bc(a.Za,b)} -k.save=function(){var a=new gd(this);a.set(0,[this.H,this.C,this.J,this.K,this.Y,this.I,this.G,this.F,this.me]);a.set(1,[this.va,this.xa.save(),this.yb.save(),this.tb.save(),this.Za.save(),null!=this.yc?[this.Cc,this.yc,this.ye,this.Fc,this.$d,this.bd.save(),this.Ue.save(),this.me]:null,Wc(this)]);a.set(2,[this.D.Bg,this.N.Bg,this.aa,this.Ba,this.mb,this.la,this.Ma]);a.set(3,[this.yh,this.Pe,this.ca.Id]);a.set(4,rb(this.ra));return a.data()}; -k.restore=function(a){var b;b=a[0];this.H=b[0];this.C=b[1];this.J=b[2];this.K=b[3];this.Y=b[4];this.I=b[5];this.G=b[6];this.F=b[7];this.me=b[8]||0;b=a[1];this.xa.restore(b[1]);this.yb.restore(b[2]);this.tb.restore(b[3]);this.Za.restore(b[4]);var c=b[5];c&&c.length&&(this.Cc=c[0],this.yc=c[1],this.ye=c[2],this.Fc=c[3],this.$d=c[4],this.bd.restore(c[5]),this.Ue.restore(c[6]),this.me=c[7],Vc(this));Uc(this,b[6]);G(this,b[0]);b=a[2];this.D=hd(this,b[0]);this.N=hd(this,b[1]);this.aa=b[2];this.Ba=b[3]; -this.mb=b[4];this.la=b[5];this.Ma=b[6];b=a[3];this.yh=b[0];this.Pe=b[1];Vb(this,b[2]);a:{b=this.ra;a=a[4];for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.ik){for(var f=0,h=Array(b.ik),g=0;g<e.length-1;)for(var l=e[g++],n=e[g++];l--;)h[f++]=n;e=h}f=b.Fa[d];if(!f||!f.restore(e)){w("Unable to restore memory block "+d);b=!1;break a}}void 0!==a[c]&&jb(b,a[c]);b=!0}return b}; -function hd(a,b){switch(b){case "CS":return a.xa;case "DS":return a.yb;case "SS":return a.tb;case "ES":return a.Za;case "ZERO":return a.bm;default:return[0,b,0,0,""]}}function id(a,b){var c;if(a.Cc&1){if(c=a.Fc+(b<<3),c+7<=a.$d){a.Lc.Ej=a.ua(c);a.Lc.ta=a.ua(c+2);a.Lc.Oa=a.ua(c+4);switch(a.Lc.Oa&7936){case 1536:a.Lc.uh=-17153;break;case 1792:a.Lc.uh=-16641;break;default:return!1}return!0}}else if(c=a.Fc+(b<<2),c+7<=a.$d)return a.Lc.Ej=a.ua(c),a.Lc.ta=a.ua(c+2),a.Lc.uh=-769,!0;return!1} -function jd(a,b){a.Ga=a.xa.load(b)+a.va;a.aa|=a.Hg}function kd(a,b){a.yb.load(b);a.aa|=a.Hg}function ld(a,b){a.tb.load(b);a.aa|=4}function md(a,b){a.Za.load(b);a.aa|=a.Hg}function G(a,b){a.Ga=a.xa.Xa+(a.va=b&65535)}function Tc(a,b,c){a.Ga=a.xa.load(c)+(a.va=b)}function nd(a,b){a.Ga=a.xa.Xa+(a.va=a.va+b&65535)}function od(a){return a.Z&a.ga?1:0}function pd(a){return $b[a.ma&255]?4:0}function qd(a){return(a.ma^a.pa)&16?16:0}function rd(a){return a.Z&a.ga-1?0:64} +fl:13,hl:21,el:16,gl:24,sg:2,rg:7,nj:5,mj:5,Dl:19,ic:5,El:5,Fl:17,qc:3,Gl:5,tg:3,oe:0,Ui:8,Vi:5,Wi:9,bj:5,cj:5,dj:4,jj:5,kj:5,lj:4,oj:7,pj:5,qj:8,uj:3,vj:4,wj:3,Hl:11,Kl:11,Il:15,Jl:15,Ll:7,sj:5,rj:8,tj:0,zj:2,ug:6,yj:3,xj:6,Bj:3,Aj:5,Ml:5};k=oc.prototype;k.Gi=function(a,b,c,d,e){this.Fa=a;this.ze=b;this.rb=c;this.gb=d;this.De=e};k.reset=function(){this.qa.Mb&&this.xb();Sc(this);Nb(this);this.qa.Zc=!1}; +function Sc(a){a.H=0;a.C=0;a.J=0;a.K=0;a.Y=0;a.I=0;a.G=0;a.F=0;a.Cc=65520;a.Fc=0;a.$d=1023;a.Lc={Ej:0,ta:0,Oa:0,uh:-1};a.me=0;a.xa=new ac(a,"CS");a.zb=new ac(a,"DS");a.tb=new ac(a,"SS");a.Za=new ac(a,"ES");a.bm=new ac(a,"ZERO");Tc(a,0,65535);80286<=a.Ia&&(a.yc=0,a.ye=65535,a.bd=new ac(a,"LDT",!0),a.Ue=new ac(a,"TSS",!0),a.Nb=new ac(a,"VER",!0),Tc(a,65520,61440),a.xa.Xa=16711680);Uc(a,0);Vc(a);a.mb=0;a.Fb=a.yg=-1;a.Sg=0;a.la=a.Ma=-1;a.D=a.zb;a.N=a.tb;a.aa=a.Ba=0} +k.zk=function(){var a=this.H+this.C+this.J+this.K+this.Y+this.I+this.G+this.F|0;return a=a+this.va+this.xa.ta+this.zb.ta+this.tb.ta+this.Za.ta+Wc(this)|0};function Xc(a,b,c,d){void 0!==d&&(void 0===a.Jg[b]&&(a.Jg[b]=[]),a.Jg[b].push([c,d]))}function Yc(a,b){var c=a.Jg[b];if(void 0!==c)for(var d=0;d<c.length;d++){if(!c[d][1].call(c[d][0],a.Ga))return!1}else a.qa.sk&&C(a.da,Zc)&&($c(a.da,b,a.Ga),ad(a,a.Ga,function(a,c){return function(d){bd(a.da,b,d,E(a)-c)}}(a,E(a))));return!0} +function ad(a,b,c){void 0!==c&&(null==a.Kg[b]&&a.Zg++,a.Kg[b]=c)}function cd(a,b){var c=a.Kg[b];null!=c&&(c(--a.Zg),delete a.Kg[b])}function Vc(a,b){void 0===b&&(b=!!(a.Cc&1));dd=b?ed:fd;bc(a.xa,b);bc(a.zb,b);bc(a.tb,b);bc(a.Za,b)} +k.save=function(){var a=new gd(this);a.set(0,[this.H,this.C,this.J,this.K,this.Y,this.I,this.G,this.F,this.me]);a.set(1,[this.va,this.xa.save(),this.zb.save(),this.tb.save(),this.Za.save(),null!=this.yc?[this.Cc,this.yc,this.ye,this.Fc,this.$d,this.bd.save(),this.Ue.save(),this.me]:null,Wc(this)]);a.set(2,[this.D.Bg,this.N.Bg,this.aa,this.Ba,this.mb,this.la,this.Ma]);a.set(3,[this.yh,this.Pe,this.ca.Id]);a.set(4,rb(this.ra));return a.data()}; +k.restore=function(a){var b;b=a[0];this.H=b[0];this.C=b[1];this.J=b[2];this.K=b[3];this.Y=b[4];this.I=b[5];this.G=b[6];this.F=b[7];this.me=b[8]||0;b=a[1];this.xa.restore(b[1]);this.zb.restore(b[2]);this.tb.restore(b[3]);this.Za.restore(b[4]);var c=b[5];c&&c.length&&(this.Cc=c[0],this.yc=c[1],this.ye=c[2],this.Fc=c[3],this.$d=c[4],this.bd.restore(c[5]),this.Ue.restore(c[6]),this.me=c[7],Vc(this));Uc(this,b[6]);G(this,b[0]);b=a[2];this.D=hd(this,b[0]);this.N=hd(this,b[1]);this.aa=b[2];this.Ba=b[3]; +this.mb=b[4];this.la=b[5];this.Ma=b[6];b=a[3];this.yh=b[0];this.Pe=b[1];Vb(this,b[2]);a:{b=this.ra;a=a[4];for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.ik){for(var f=0,g=Array(b.ik),h=0;h<e.length-1;)for(var l=e[h++],n=e[h++];l--;)g[f++]=n;e=g}f=b.Fa[d];if(!f||!f.restore(e)){w("Unable to restore memory block "+d);b=!1;break a}}void 0!==a[c]&&jb(b,a[c]);b=!0}return b}; +function hd(a,b){switch(b){case "CS":return a.xa;case "DS":return a.zb;case "SS":return a.tb;case "ES":return a.Za;case "ZERO":return a.bm;default:return[0,b,0,0,""]}}function id(a,b){var c;if(a.Cc&1){if(c=a.Fc+(b<<3),c+7<=a.$d){a.Lc.Ej=a.ua(c);a.Lc.ta=a.ua(c+2);a.Lc.Oa=a.ua(c+4);switch(a.Lc.Oa&7936){case 1536:a.Lc.uh=-17153;break;case 1792:a.Lc.uh=-16641;break;default:return!1}return!0}}else if(c=a.Fc+(b<<2),c+7<=a.$d)return a.Lc.Ej=a.ua(c),a.Lc.ta=a.ua(c+2),a.Lc.uh=-769,!0;return!1} +function jd(a,b){a.Ga=a.xa.load(b)+a.va;a.aa|=a.Hg}function kd(a,b){a.zb.load(b);a.aa|=a.Hg}function ld(a,b){a.tb.load(b);a.aa|=4}function md(a,b){a.Za.load(b);a.aa|=a.Hg}function G(a,b){a.Ga=a.xa.Xa+(a.va=b&65535)}function Tc(a,b,c){a.Ga=a.xa.load(c)+(a.va=b)}function nd(a,b){a.Ga=a.xa.Xa+(a.va=a.va+b&65535)}function od(a){return a.Z&a.ga?1:0}function pd(a){return $b[a.ma&255]?4:0}function qd(a){return(a.ma^a.pa)&16?16:0}function rd(a){return a.Z&a.ga-1?0:64} function sd(a){return a.ma&a.ga>>1?128:0}function td(a){return(a.ma^a.pa^a.ma>>1)&a.ga>>1?2048:0}function ud(a){a.Z&=~a.ga}function vd(a){a.pa=a.ma&16|a.pa&-17}function wd(a){a.Z|=a.ga-1}function xd(a){sd(a)&&(a.ma^=a.ga>>1|a.ga>>2,a.pa^=32896)}function yd(a){a.ma&=~a.ga;a.pa=a.ma&32896|a.pa&-32897}function zd(a){a.Z|=a.ga}function Ad(a){a.pa=~(a.ma&16)&16|a.pa&-17}function Bd(a){a.Z&=~(a.ga-1)}function Cd(a){sd(a)||(a.ma^=a.ga>>1|a.ga>>2,a.pa^=32896)} function Dd(a){a.ma|=a.ga;a.pa=a.ma&32896|a.pa&-32897}function Wc(a){return a.Ca&-2262|od(a)|pd(a)|qd(a)|rd(a)|sd(a)|td(a)}function Uc(a,b){a.ga=256;a.Z=a.ma=a.pa=0;b&1&&zd(a);b&4||(a.ma|=1);b&16&&(a.pa|=16);b&64||wd(a);b&128&&Cd(a);b&2048&&Dd(a);a.xa.Kc?b=b&-12289|a.Ca&12288:(a.me=(b&12288)>>12,!a.me||a.Cc&1||(a.me=0));a.xa.Kc>a.me&&(b=b&-513|a.Ca&512);a.Ca=a.Ca&-1793|b&1792|a.Xj;a.Ca&256&&(a.mb|=2,a.aa|=4)} -k.zb=function(a,b,c,d){var e=!1;switch(c){case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "CS":case "DS":case "SS":case "ES":case "IP":case "PC":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "O":this.za[c]=d;e=!0;break;default:e=Lb.prototype.zb.call(this,a,b,c,d)}return e};k.vb=function(a){return this.Fa[(a&this.ze)>>this.rb].sc(a&this.gb)}; -k.ua=function(a){var b=a&this.gb;a=(a&this.ze)>>this.rb;this.A-=this.B.Dj;return b!=this.gb?this.Fa[a].Sl(b):this.Fa[a++].sc(b)|this.Fa[a&this.De].sc(0)<<8};k.Od=function(a,b){this.Fa[(a&this.ze)>>this.rb].Dc(a&this.gb,b&255)};k.cd=function(a,b){var c=a&this.gb,d=(a&this.ze)>>this.rb;this.A-=this.B.Dj;c!=this.gb?this.Fa[d].em(c,b&65535):(this.Fa[d++].Dc(c,b&255),this.Fa[d&this.De].Dc(0,b>>8&255))};k.Cm=function(a,b){this.Dg=a;this.la=a.jd(this.vg=b,0);return this.aa&1?0:this.vb(this.la)}; -k.Dm=function(a,b){this.Dg=a;this.la=a.jd(this.vg=b,1);return this.aa&1?0:this.ua(this.la)};k.Kn=function(a,b){this.Dg=a;this.Ma=this.la=a.jd(this.vg=b,0);return this.aa&1?0:this.vb(this.la)};k.Ln=function(a,b){this.Dg=a;this.Ma=this.la=a.jd(this.vg=b,1);return this.aa&1?0:this.ua(this.la)};k.ep=function(a){this.aa&2||this.Od(this.Dg.gc(this.vg,1),a)};k.fp=function(a){this.aa&2||this.cd(this.Dg.gc(this.vg,2),a)};k.ha=function(){var a=this.vb(this.Ga);this.Ga=this.xa.Xa+(this.va=this.va+1&65535);return a}; -k.M=function(){var a=this.vb(this.Ga)<<24>>24;this.Ga=this.xa.Xa+(this.va=this.va+1&65535);return a&65535};k.L=function(){var a=this.ua(this.Ga);this.Ga=this.xa.Xa+(this.va=this.va+2&65535);return a};k.La=function(){var a=this.Y;this.Y=this.Y+2&65535;return this.ua(this.tb.jd(a,1))};function H(a,b){var c=a.Y=a.Y-2&65535;a.cd(a.tb.gc(c,1),b)} -k.bh=function(){F(this,"AX",this.H);F(this,"BX",this.C);F(this,"CX",this.J);F(this,"DX",this.K);F(this,"SP",this.Y);F(this,"BP",this.I);F(this,"SI",this.G);F(this,"DI",this.F);F(this,"CS",this.xa.ta);F(this,"DS",this.yb.ta);F(this,"SS",this.tb.ta);F(this,"ES",this.Za.ta);F(this,"IP",this.va);var a=Wc(this);F(this,"PS",a);F(this,"C",a&1?1:0,1);F(this,"P",a&4?1:0,1);F(this,"A",a&16?1:0,1);F(this,"Z",a&64?1:0,1);F(this,"S",a&128?1:0,1);F(this,"T",a&256?1:0,1);F(this,"I",a&512?1:0,1);F(this,"D",a&1024? +k.Ab=function(a,b,c,d){var e=!1;switch(c){case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "CS":case "DS":case "SS":case "ES":case "IP":case "PC":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "O":this.za[c]=d;e=!0;break;default:e=Lb.prototype.Ab.call(this,a,b,c,d)}return e};k.wb=function(a){return this.Fa[(a&this.ze)>>this.rb].sc(a&this.gb)}; +k.ua=function(a){var b=a&this.gb;a=(a&this.ze)>>this.rb;this.A-=this.B.Dj;return b!=this.gb?this.Fa[a].Sl(b):this.Fa[a++].sc(b)|this.Fa[a&this.De].sc(0)<<8};k.Od=function(a,b){this.Fa[(a&this.ze)>>this.rb].Dc(a&this.gb,b&255)};k.cd=function(a,b){var c=a&this.gb,d=(a&this.ze)>>this.rb;this.A-=this.B.Dj;c!=this.gb?this.Fa[d].em(c,b&65535):(this.Fa[d++].Dc(c,b&255),this.Fa[d&this.De].Dc(0,b>>8&255))};k.Cm=function(a,b){this.Dg=a;this.la=a.jd(this.vg=b,0);return this.aa&1?0:this.wb(this.la)}; +k.Dm=function(a,b){this.Dg=a;this.la=a.jd(this.vg=b,1);return this.aa&1?0:this.ua(this.la)};k.Kn=function(a,b){this.Dg=a;this.Ma=this.la=a.jd(this.vg=b,0);return this.aa&1?0:this.wb(this.la)};k.Ln=function(a,b){this.Dg=a;this.Ma=this.la=a.jd(this.vg=b,1);return this.aa&1?0:this.ua(this.la)};k.ep=function(a){this.aa&2||this.Od(this.Dg.gc(this.vg,1),a)};k.fp=function(a){this.aa&2||this.cd(this.Dg.gc(this.vg,2),a)};k.ha=function(){var a=this.wb(this.Ga);this.Ga=this.xa.Xa+(this.va=this.va+1&65535);return a}; +k.M=function(){var a=this.wb(this.Ga)<<24>>24;this.Ga=this.xa.Xa+(this.va=this.va+1&65535);return a&65535};k.L=function(){var a=this.ua(this.Ga);this.Ga=this.xa.Xa+(this.va=this.va+2&65535);return a};k.La=function(){var a=this.Y;this.Y=this.Y+2&65535;return this.ua(this.tb.jd(a,1))};function H(a,b){var c=a.Y=a.Y-2&65535;a.cd(a.tb.gc(c,1),b)} +k.bh=function(){F(this,"AX",this.H);F(this,"BX",this.C);F(this,"CX",this.J);F(this,"DX",this.K);F(this,"SP",this.Y);F(this,"BP",this.I);F(this,"SI",this.G);F(this,"DI",this.F);F(this,"CS",this.xa.ta);F(this,"DS",this.zb.ta);F(this,"SS",this.tb.ta);F(this,"ES",this.Za.ta);F(this,"IP",this.va);var a=Wc(this);F(this,"PS",a);F(this,"C",a&1?1:0,1);F(this,"P",a&4?1:0,1);F(this,"A",a&16?1:0,1);F(this,"Z",a&64?1:0,1);F(this,"S",a&128?1:0,1);F(this,"T",a&256?1:0,1);F(this,"I",a&512?1:0,1);F(this,"D",a&1024? 1:0,1);F(this,"O",a&2048?1:0,1);this.za.speed&&(this.za.speed.innerHTML=this.qa.Mb&&this.ca.nd?this.ca.nd.toFixed(2)+"Mhz":"Stopped")}; -k.yf=function(a){this.qa.ih=!0;var b=this.qa.sk=a&&this.da&&Ed(this.da);this.Pc=this.A=a;this.oa&&Zb(this.oa);a||!this.da||C(this.da,Fd)||(this.aa|=4);do{var c=this.aa&240;if(c)this.Ba|=c;else if(this.Fh=this.Ga,this.la=this.Ma=-1,this.D=this.yb,this.N=this.tb,this.Ba=this.aa&256,this.mb){a:{if(!(this.aa&4))if(this.mb&1&&this.Ca&512){if(c=Gd(this.oa),-1<=c&&(this.mb&=-2,0<=c)){this.mb&=-5;Hd.call(this,c,null,11);c=!0;break a}}else if(this.mb&2){this.mb&=-3;Hd.call(this,1,null,11);c=!0;break a}if(c= -this.mb&8){for(var c=this.oa,d=!1,e=0;e<c.eb;e++)for(var f=c.eb[e],h=0;h<f.Gb.length;h++){var g=f.Gb[h];g.Hd||(Id(c,g),g.Hd||(d=!0))}c=!d}c&&(this.mb&=-9);c=!1}if(c&&!a){this.aa=0;break}if(this.mb&4){this.aa=this.A=0;break}}if(b&&Jd(this.da,this.Ga)){this.wb();break}this.aa=0;this.Va[this.ha()].call(this)}while(0<this.A);return this.qa.ih?this.Pc-this.A:void 0===this.qa.ih?0:-1};k.Ra=function(a){this.da&&C(this.da,Kd)&&this.da.message(a)}; +k.yf=function(a){this.qa.ih=!0;var b=this.qa.sk=a&&this.da&&Ed(this.da);this.Pc=this.A=a;this.oa&&Zb(this.oa);a||!this.da||C(this.da,Fd)||(this.aa|=4);do{var c=this.aa&240;if(c)this.Ba|=c;else if(this.Fh=this.Ga,this.la=this.Ma=-1,this.D=this.zb,this.N=this.tb,this.Ba=this.aa&256,this.mb){a:{if(!(this.aa&4))if(this.mb&1&&this.Ca&512){if(c=Gd(this.oa),-1<=c&&(this.mb&=-2,0<=c)){this.mb&=-5;Hd.call(this,c,null,11);c=!0;break a}}else if(this.mb&2){this.mb&=-3;Hd.call(this,1,null,11);c=!0;break a}if(c= +this.mb&8){for(var c=this.oa,d=!1,e=0;e<c.eb;e++)for(var f=c.eb[e],g=0;g<f.Gb.length;g++){var h=f.Gb[g];h.Hd||(Id(c,h),h.Hd||(d=!0))}c=!d}c&&(this.mb&=-9);c=!1}if(c&&!a){this.aa=0;break}if(this.mb&4){this.aa=this.A=0;break}}if(b&&Jd(this.da,this.Ga)){this.xb();break}this.aa=0;this.Va[this.ha()].call(this)}while(0<this.A);return this.qa.ih?this.Pc-this.A:void 0===this.qa.ih?0:-1};k.Ra=function(a){this.da&&C(this.da,Kd)&&this.da.message(a)}; Fa(function(){for(var a=A(window.document,"pcjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new oc(d);Za(d,c)}});function Ld(a,b){this.pa=a^b;this.ga=256;this.A-=0>this.Ma?0>this.la?this.B.Ub:this.B.sb:this.B.hc;return(this.Z=this.ma=a+b)&255}function Md(a,b){this.ga=256;this.A-=0>this.Ma?0>this.la?this.B.Ub:this.B.sb:this.B.hc;return(this.Z=this.ma=this.pa=a|b)&255} function Nd(a,b){this.pa=a^b;this.Z=this.ma=a+b+(this.Z&this.ga?1:0);this.ga=256;this.A-=0>this.Ma?0>this.la?this.B.Ub:this.B.sb:this.B.hc;return this.Z&255}function Qd(a,b){this.pa=a^b;this.Z=this.ma=a-b-(this.Z&this.ga?1:0);this.ga=256;this.A-=0>this.Ma?0>this.la?this.B.Ub:this.B.sb:this.B.hc;return this.Z&255}function Rd(a,b){this.ga=256;this.A-=0>this.Ma?0>this.la?this.B.Ub:this.B.sb:this.B.hc;return(this.Z=this.ma=this.pa=a&b)&255} function Sd(a,b){this.pa=a^b;this.ga=256;this.A-=0>this.Ma?0>this.la?this.B.Ub:this.B.sb:this.B.hc;return(this.Z=this.ma=a-b)&255}function Td(a,b){this.ga=256;this.A-=0>this.Ma?0>this.la?this.B.Ub:this.B.sb:this.B.hc;return(this.Z=this.ma=this.pa=a^b)&255}function Ud(a,b){this.pa=a^b;this.ga=256;this.Z=this.ma=a-b;this.A-=0>this.Ma?0>this.la?this.B.Ub:this.B.Xi:this.B.sb;this.aa|=2;return a} @@ -97,8 +97,8 @@ function Pe(a,b){if(0>this.la)return K.call(this),a;kd(this,this.ua(this.la+2)); function Se(a,b){this.A-=10+(0>this.la?0:1);if((a&3)<(b&3))return a=a&-4|b&3,Bd(this),a;wd(this);return a}function Te(a,b){this.A-=14+(0>this.la?0:2);if(0<=this.Nb.load(b,!0)&&this.Nb.Ac>=this.xa.Kc&&this.Nb.Ac>=(b&3))return Bd(this),this.Nb.Oa&65280;wd(this);return a}function Xe(a,b){this.A-=14+(0>this.la?0:2);if(b&65528&&0<=this.Nb.load(b,!0)&&(7168==(this.Nb.Oa&7168)||this.Nb.Ac>=this.xa.Kc)&&this.Nb.Ac>=(b&3))return Bd(this),this.Nb.Oc;wd(this);return a} function Ye(a,b){if(0>this.la){switch(this.Sg&7){case 0:this.H=this.H&-256|a;break;case 1:this.J=this.J&-256|a;break;case 2:this.K=this.K&-256|a;break;case 3:this.C=this.C&-256|a;break;case 4:this.H=this.H&255|a<<8;break;case 5:this.J=this.J&255|a<<8;break;case 6:this.K=this.K&255|a<<8;break;case 7:this.C=this.C&255|a<<8}this.A-=this.B.Bj}else this.Ma=this.la,this.R(a),this.A-=this.B.Aj;return b} function Ze(a,b){if(0>this.la){switch(this.Sg&7){case 0:this.H=a;break;case 1:this.J=a;break;case 2:this.K=a;break;case 3:this.C=a;break;case 4:this.Y=a;break;case 5:this.I=a;break;case 6:this.G=a;break;case 7:this.F=a}this.A-=this.B.Bj}else this.Ma=this.la,this.S(a),this.A-=this.B.Aj;return b}function Hd(a,b,c){id(this,a)&&(H(this,Wc(this)),this.Ca&=this.Lc.uh,H(this,this.xa.ta),H(this,this.va),null!=b&&H(this,b),Tc(this,this.Lc.Ej,this.Lc.ta),this.A-=this.B.jl+c)} -function $e(a){a|=this.Cc&1;this.Cc=this.Cc&65520|a&-65521;this.Cc&1&&Vc(this,!0)}function Ce(){G(this,this.Fh-this.xa.Xa);Hd.call(this,0,null,2)}function ic(a,b,c){this.da&&(C(this.da,Kd)&&this.da.message("Fault 0x"+q(a)+(null!=b?" (0x"+u(b)+")":"")+" on opcode 0x"+q(nb(this.ra,this.Ga))+" at "+da(this.va,this.xa.ta)),c&&this.wb());80186<=this.Ia&&(G(this,this.Fh-this.xa.Xa),Hd.call(this,a,b,0))}function tc(){ic.call(this,6);this.wb()} -function K(){G(this,this.Fh-this.xa.Xa);cb(this,"Undefined opcode 0x"+q(nb(this.ra,this.Ga))+" at "+da(this.va,this.xa.ta));this.wb()}function af(a){a=a.call(this,this.H&255,this.H&255);this.H=this.H&-256|a}function bf(a){a=a.call(this,this.H&255,this.J&255);this.H=this.H&-256|a}function cf(a){a=a.call(this,this.H&255,this.K&255);this.H=this.H&-256|a}function df(a){a=a.call(this,this.H&255,this.C&255);this.H=this.H&-256|a}function ef(a){a=a.call(this,this.H&255,this.H>>8);this.H=this.H&-256|a} +function $e(a){a|=this.Cc&1;this.Cc=this.Cc&65520|a&-65521;this.Cc&1&&Vc(this,!0)}function Ce(){G(this,this.Fh-this.xa.Xa);Hd.call(this,0,null,2)}function ic(a,b,c){this.da&&(C(this.da,Kd)&&this.da.message("Fault 0x"+q(a)+(null!=b?" (0x"+u(b)+")":"")+" on opcode 0x"+q(nb(this.ra,this.Ga))+" at "+da(this.va,this.xa.ta)),c&&this.xb());80186<=this.Ia&&(G(this,this.Fh-this.xa.Xa),Hd.call(this,a,b,0))}function tc(){ic.call(this,6);this.xb()} +function K(){G(this,this.Fh-this.xa.Xa);cb(this,"Undefined opcode 0x"+q(nb(this.ra,this.Ga))+" at "+da(this.va,this.xa.ta));this.xb()}function af(a){a=a.call(this,this.H&255,this.H&255);this.H=this.H&-256|a}function bf(a){a=a.call(this,this.H&255,this.J&255);this.H=this.H&-256|a}function cf(a){a=a.call(this,this.H&255,this.K&255);this.H=this.H&-256|a}function df(a){a=a.call(this,this.H&255,this.C&255);this.H=this.H&-256|a}function ef(a){a=a.call(this,this.H&255,this.H>>8);this.H=this.H&-256|a} function ff(a){a=a.call(this,this.H&255,this.J>>8);this.H=this.H&-256|a}function gf(a){a=a.call(this,this.H&255,this.K>>8);this.H=this.H&-256|a}function hf(a){a=a.call(this,this.H&255,this.C>>8);this.H=this.H&-256|a}function jf(a){a=a.call(this,this.J&255,this.H&255);this.J=this.J&-256|a}function kf(a){a=a.call(this,this.J&255,this.J&255);this.J=this.J&-256|a}function lf(a){a=a.call(this,this.J&255,this.K&255);this.J=this.J&-256|a} function mf(a){a=a.call(this,this.J&255,this.C&255);this.J=this.J&-256|a}function nf(a){a=a.call(this,this.J&255,this.H>>8);this.J=this.J&-256|a}function of(a){a=a.call(this,this.J&255,this.J>>8);this.J=this.J&-256|a}function pf(a){a=a.call(this,this.J&255,this.K>>8);this.J=this.J&-256|a}function qf(a){a=a.call(this,this.J&255,this.C>>8);this.J=this.J&-256|a}function rf(a){a=a.call(this,this.K&255,this.H&255);this.K=this.K&-256|a} function sf(a){a=a.call(this,this.K&255,this.J&255);this.K=this.K&-256|a}function tf(a){a=a.call(this,this.K&255,this.K&255);this.K=this.K&-256|a}function uf(a){a=a.call(this,this.K&255,this.C&255);this.K=this.K&-256|a}function vf(a){a=a.call(this,this.K&255,this.H>>8);this.K=this.K&-256|a}function wf(a){a=a.call(this,this.K&255,this.J>>8);this.K=this.K&-256|a}function xf(a){a=a.call(this,this.K&255,this.K>>8);this.K=this.K&-256|a} @@ -378,16 +378,16 @@ this.K,b.call(this))},function(a,b){this.C=a[4].call(this,this.C,b.call(this))}, a[5].call(this,this.C,b.call(this))},function(a,b){this.Y=a[5].call(this,this.Y,b.call(this))},function(a,b){this.I=a[5].call(this,this.I,b.call(this))},function(a,b){this.G=a[5].call(this,this.G,b.call(this))},function(a,b){this.F=a[5].call(this,this.F,b.call(this))},function(a,b){this.H=a[6].call(this,this.H,b.call(this))},function(a,b){this.J=a[6].call(this,this.J,b.call(this))},function(a,b){this.K=a[6].call(this,this.K,b.call(this))},function(a,b){this.C=a[6].call(this,this.C,b.call(this))}, function(a,b){this.aa|=512;this.Y=a[6].call(this,this.Y,b.call(this))},function(a,b){this.I=a[6].call(this,this.I,b.call(this))},function(a,b){this.G=a[6].call(this,this.G,b.call(this))},function(a,b){this.F=a[6].call(this,this.F,b.call(this))},function(a,b){this.H=a[7].call(this,this.H,b.call(this))},function(a,b){this.J=a[7].call(this,this.J,b.call(this))},function(a,b){this.K=a[7].call(this,this.K,b.call(this))},function(a,b){this.C=a[7].call(this,this.C,b.call(this))},function(a,b){this.Y=a[7].call(this, this.Y,b.call(this))},function(a,b){this.I=a[7].call(this,this.I,b.call(this))},function(a,b){this.G=a[7].call(this,this.G,b.call(this))},function(a,b){this.F=a[7].call(this,this.F,b.call(this))}],Dh=[function(){var a=this.ha();16>(a&56)&&(this.aa|=1);Bh[a].call(this,dd,ue)},function(){var a=this.ha();a&16||(this.aa|=1);Bh[a].call(this,Ch,ue)},function(){M[this.ha()].call(this,Te)},function(){M[this.ha()].call(this,Xe)},K,function(){this.xa.Kc?ic.call(this,13,0,!0):($e.call(this,this.ua(2054)),this.F= -this.ua(2086),this.G=this.ua(2088),this.I=this.ua(2090),this.Y=this.ua(2092),this.C=this.ua(2094),this.K=this.ua(2096),this.J=this.ua(2098),this.H=this.ua(2100),nc(this.Za,this.ua(2084),2102),nc(this.xa,this.ua(2082),2108),nc(this.tb,this.ua(2080),2114),nc(this.yb,this.ua(2078),2120),Uc(this,this.ua(2072)),G(this,this.ua(2074)),this.yc=this.ua(2126)|this.ua(2128)<<16,this.ye=this.yc+this.ua(2130),nc(this.bd,this.ua(2076),2132),this.Fc=this.ua(2138)|this.ua(2140)<<16,this.$d=this.Fc+this.ua(2142), +this.ua(2086),this.G=this.ua(2088),this.I=this.ua(2090),this.Y=this.ua(2092),this.C=this.ua(2094),this.K=this.ua(2096),this.J=this.ua(2098),this.H=this.ua(2100),nc(this.Za,this.ua(2084),2102),nc(this.xa,this.ua(2082),2108),nc(this.tb,this.ua(2080),2114),nc(this.zb,this.ua(2078),2120),Uc(this,this.ua(2072)),G(this,this.ua(2074)),this.yc=this.ua(2126)|this.ua(2128)<<16,this.ye=this.yc+this.ua(2130),nc(this.bd,this.ua(2076),2132),this.Fc=this.ua(2138)|this.ua(2140)<<16,this.$d=this.Fc+this.ua(2142), nc(this.Ue,this.ua(2070),2144),this.A-=195)},K,K,K,K,K,tc,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K, K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K,K],ed=[function(){this.A-=2+(0>this.la?0:1);return this.bd.ta},function(){this.A-=2+(0>this.la?0:1);return this.Ue.ta},function(a){this.aa|=2;this.bd.load(a);this.A-=17+(0>this.la?0:2);return a},function(a){this.aa|=2;this.Ue.load(a);this.A-=17+(0>this.la?0:2);return a},function(a){this.aa|=2;this.A-=14+(0>this.la?0:2);if(0<=this.Nb.load(a,!0)&&2048!=(this.Nb.Oa&2560)&&(this.Nb.Ac>=this.xa.Kc&&this.Nb.Ac>=(a&3)||7168==(this.Nb.Oa&7168)))return Bd(this),a; wd(this);return a},function(a){this.aa|=2;this.A-=14+(0>this.la?0:2);if(0<=this.Nb.load(a,!0)&&512==(this.Nb.Oa&2560)&&this.Nb.Ac>=this.xa.Kc&&this.Nb.Ac>=(a&3))return Bd(this),a;wd(this);return a},I,I],fd=[Mc,Mc,Mc,Mc,Mc,Mc,I,I],dd=fd,Ch=[function(a){0>this.la?tc.call(this):(a=this.ye-this.yc,this.cd(this.la+2,this.yc),this.cd(this.la+4,65280|this.yc>>16),this.A-=11);return a},function(a){0>this.la?tc.call(this):(a=this.$d-this.Fc,this.cd(this.la+2,this.Fc),this.cd(this.la+4,65280|this.Fc>>16),this.A-= -12);return a},function(a){0>this.la?tc.call(this):(this.yc=this.ua(this.la+2)|this.vb(this.la+4)<<16,this.ye=this.yc+a,this.aa|=2,this.A-=11);return a},function(a){0>this.la?tc.call(this):(this.Fc=this.ua(this.la+2)|this.vb(this.la+4)<<16,this.$d=this.Fc+a,this.aa|=2,this.A-=12);return a},function(){this.A-=2+(0>this.la?0:1);return this.Cc},I,function(a){$e.call(this,a);this.A-=0>this.la?3:6;this.aa|=2;return a},I];function Pc(){Dh[this.ha()].call(this)} +12);return a},function(a){0>this.la?tc.call(this):(this.yc=this.ua(this.la+2)|this.wb(this.la+4)<<16,this.ye=this.yc+a,this.aa|=2,this.A-=11);return a},function(a){0>this.la?tc.call(this):(this.Fc=this.ua(this.la+2)|this.wb(this.la+4)<<16,this.$d=this.Fc+a,this.aa|=2,this.A-=12);return a},function(){this.A-=2+(0>this.la?0:1);return this.Cc},I,function(a){$e.call(this,a);this.A-=0>this.la?3:6;this.aa|=2;return a},I];function Pc(){Dh[this.ha()].call(this)} function Rc(){H(this,this.Y);this.A-=this.B.qc}function uc(){var a=this.Y;H(this,this.H);H(this,this.J);H(this,this.K);H(this,this.C);H(this,a);H(this,this.I);H(this,this.G);H(this,this.F);this.A-=this.B.Fl}function vc(){this.F=this.La();this.G=this.La();this.I=this.La();this.Y+=2;this.C=this.La();this.K=this.La();this.J=this.La();this.H=this.La();this.A-=this.B.Dl}function wc(){M[this.ha()].call(this,Re)}function Qc(){yh[this.ha()].call(this,Se)}function xc(){H(this,this.L());this.A-=this.B.qc} function yc(){M[this.ha()].call(this,Me)}function zc(){H(this,this.ha());this.A-=this.B.qc}function Ac(){M[this.ha()].call(this,Le)}function Bc(){var a=1,b=0,c=5;this.Ba&192&&(a=this.J,b=1,this.Ba&256&&(c=4));if(a--){var d=ub(this.ra,this.K,this.Ga-b-1);this.Od(this.Za.gc(this.F,0),d);this.F=this.F+(this.Ca&1024?-1:1)&65535;this.A-=c;this.J-=b;a&&(nd(this,-2),this.aa|=256)}} function Cc(){var a=1,b=0,c=5;this.Ba&192&&(a=this.J,b=1,this.Ba&256&&(c=4));if(a--){var d=this.Ga-b-1,d=ub(this.ra,this.K,d)|ub(this.ra,this.K,d)<<8;this.cd(this.Za.gc(this.F,1),d);this.F=this.F+(this.Ca&1024?-2:2)&65535;this.A-=c;this.J-=b;a&&(nd(this,-2),this.aa|=256)}} -function Dc(){var a=1,b=0,c=5;this.Ba&192&&(a=this.J,b=1,this.Ba&256&&(c=4));if(a--){var d=this.vb(this.yb.jd(this.G,0));this.G=this.G+(this.Ca&1024?-1:1)&65535;this.A-=c;this.J-=b;Ab(this.ra,this.K,d,this.Ga-b-1);a&&(nd(this,-2),this.aa|=256)}} -function Ec(){var a=1,b=0,c=5;this.Ba&192&&(a=this.J,b=1,this.Ba&256&&(c=4));if(a--){var d=this.ua(this.yb.jd(this.G,1));this.G=this.G+(this.Ca&1024?-2:2)&65535;this.A-=c;this.J-=b;b=this.Ga-b-1;Ab(this.ra,this.K,d&255,b);Ab(this.ra,this.K,d>>8,b);a&&(nd(this,-2),this.aa|=256)}}function Eh(){var a=this.M();td(this)?(G(this,this.va+a),this.A-=this.B.Vb):this.A-=this.B.Wb}function Fh(){var a=this.M();td(this)?this.A-=this.B.Wb:(G(this,this.va+a),this.A-=this.B.Vb)} +function Dc(){var a=1,b=0,c=5;this.Ba&192&&(a=this.J,b=1,this.Ba&256&&(c=4));if(a--){var d=this.wb(this.zb.jd(this.G,0));this.G=this.G+(this.Ca&1024?-1:1)&65535;this.A-=c;this.J-=b;Ab(this.ra,this.K,d,this.Ga-b-1);a&&(nd(this,-2),this.aa|=256)}} +function Ec(){var a=1,b=0,c=5;this.Ba&192&&(a=this.J,b=1,this.Ba&256&&(c=4));if(a--){var d=this.ua(this.zb.jd(this.G,1));this.G=this.G+(this.Ca&1024?-2:2)&65535;this.A-=c;this.J-=b;b=this.Ga-b-1;Ab(this.ra,this.K,d&255,b);Ab(this.ra,this.K,d>>8,b);a&&(nd(this,-2),this.aa|=256)}}function Eh(){var a=this.M();td(this)?(G(this,this.va+a),this.A-=this.B.Vb):this.A-=this.B.Wb}function Fh(){var a=this.M();td(this)?this.A-=this.B.Wb:(G(this,this.va+a),this.A-=this.B.Vb)} function Gh(){var a=this.M();od(this)?(G(this,this.va+a),this.A-=this.B.Vb):this.A-=this.B.Wb}function Hh(){var a=this.M();od(this)?this.A-=this.B.Wb:(G(this,this.va+a),this.A-=this.B.Vb)}function Ih(){var a=this.M();rd(this)?(G(this,this.va+a),this.A-=this.B.Vb):this.A-=this.B.Wb}function Jh(){var a=this.M();rd(this)?this.A-=this.B.Wb:(G(this,this.va+a),this.A-=this.B.Vb)}function Kh(){var a=this.M();od(this)||rd(this)?(G(this,this.va+a),this.A-=this.B.Vb):this.A-=this.B.Wb} function Lh(){var a=this.M();od(this)||rd(this)?this.A-=this.B.Wb:(G(this,this.va+a),this.A-=this.B.Vb)}function Mh(){var a=this.M();sd(this)?(G(this,this.va+a),this.A-=this.B.Vb):this.A-=this.B.Wb}function Nh(){var a=this.M();sd(this)?this.A-=this.B.Wb:(G(this,this.va+a),this.A-=this.B.Vb)}function Oh(){var a=this.M();pd(this)?(G(this,this.va+a),this.A-=this.B.Vb):this.A-=this.B.Wb}function Ph(){var a=this.M();pd(this)?this.A-=this.B.Wb:(G(this,this.va+a),this.A-=this.B.Vb)} function Qh(){var a=this.M();!sd(this)!=!td(this)?(G(this,this.va+a),this.A-=this.B.Vb):this.A-=this.B.Wb}function Rh(){var a=this.M();!sd(this)==!td(this)?(G(this,this.va+a),this.A-=this.B.Vb):this.A-=this.B.Wb}function Sh(){var a=this.M();rd(this)||!sd(this)!=!td(this)?(G(this,this.va+a),this.A-=this.B.Vb):this.A-=this.B.Wb}function Th(){var a=this.M();rd(this)||!sd(this)!=!td(this)?this.A-=this.B.Wb:(G(this,this.va+a),this.A-=this.B.Vb)} @@ -396,19 +396,19 @@ function Hc(){var a=this.L(),b=this.ha()&31;this.A-=11;H(this,this.I);var c=this function Zh(){M[this.ha()].call(this,Ne);this.A-=8}function $h(){this.aa|=36;this.A-=this.B.oe}function Jc(){K.call(this)} var sc=[function(){var a=this.ha();xh[a].call(this,Ld)},function(){yh[this.ha()].call(this,Vd)},function(){zh[this.ha()].call(this,Ld)},function(){M[this.ha()].call(this,Vd)},function(){this.H=this.H&-256|Ld.call(this,this.H&255,this.ha());this.A--},function(){this.H=Vd.call(this,this.H,this.L());this.A--},function(){H(this,this.Za.ta);this.A-=this.B.tg},function(){md(this,this.La());this.A-=this.B.ic},function(){xh[this.ha()].call(this,Md)},function(){yh[this.ha()].call(this,Wd)},function(){zh[this.ha()].call(this, Md)},function(){M[this.ha()].call(this,Wd)},function(){this.H=this.H&-256|Md.call(this,this.H&255,this.ha());this.A--},function(){this.H=Wd.call(this,this.H,this.L());this.A--},function(){H(this,this.xa.ta);this.A-=this.B.tg},function(){jd(this,this.La());this.A-=this.B.ic},function(){xh[this.ha()].call(this,Nd)},function(){yh[this.ha()].call(this,Xd)},function(){zh[this.ha()].call(this,Nd)},function(){M[this.ha()].call(this,Xd)},function(){this.H=this.H&-256|Nd.call(this,this.H&255,this.ha());this.A--}, -function(){this.H=Xd.call(this,this.H,this.L());this.A--},function(){H(this,this.tb.ta);this.A-=this.B.tg},function(){ld(this,this.La());this.A-=this.B.ic},function(){xh[this.ha()].call(this,Qd)},function(){yh[this.ha()].call(this,Yd)},function(){zh[this.ha()].call(this,Qd)},function(){M[this.ha()].call(this,Yd)},function(){this.H=this.H&-256|Qd.call(this,this.H&255,this.ha());this.A--},function(){this.H=Yd.call(this,this.H,this.L());this.A--},function(){H(this,this.yb.ta);this.A-=this.B.tg},function(){kd(this, +function(){this.H=Xd.call(this,this.H,this.L());this.A--},function(){H(this,this.tb.ta);this.A-=this.B.tg},function(){ld(this,this.La());this.A-=this.B.ic},function(){xh[this.ha()].call(this,Qd)},function(){yh[this.ha()].call(this,Yd)},function(){zh[this.ha()].call(this,Qd)},function(){M[this.ha()].call(this,Yd)},function(){this.H=this.H&-256|Qd.call(this,this.H&255,this.ha());this.A--},function(){this.H=Yd.call(this,this.H,this.L());this.A--},function(){H(this,this.zb.ta);this.A-=this.B.tg},function(){kd(this, this.La());this.A-=this.B.ic},function(){xh[this.ha()].call(this,Rd)},function(){yh[this.ha()].call(this,Zd)},function(){zh[this.ha()].call(this,Rd)},function(){M[this.ha()].call(this,Zd)},function(){this.H=this.H&-256|Rd.call(this,this.H&255,this.ha());this.A--},function(){this.H=Zd.call(this,this.H,this.L());this.A--},function(){this.aa|=20;this.D=this.N=this.Za;this.A-=this.B.oe},function(){var a=this.H&255,b=qd(this),c=this.Z&this.ga;if(9<(a&15)||b)a+=6,b=!0;if(159<a||c)a+=96,c=!0;this.H=this.H& -256|(this.Z=this.ma=a&255);this.ga=65536;c&&(this.Z|=this.ga);b?Ad(this):vd(this);this.A-=this.B.Ne},function(){xh[this.ha()].call(this,Sd)},function(){yh[this.ha()].call(this,$d)},function(){zh[this.ha()].call(this,Sd)},function(){M[this.ha()].call(this,$d)},function(){this.H=this.H&-256|Sd.call(this,this.H&255,this.ha());this.A--},function(){this.H=$d.call(this,this.H,this.L());this.A--},function(){this.aa|=20;this.D=this.N=this.xa;this.A-=this.B.oe},function(){var a=this.H&255,b=qd(this),c=this.Z& this.ga;if(9<(a&15)||b)a-=6,b=!0;if(159<a||c)a-=96,c=!0;this.H=this.H&-256|(this.Z=this.ma=a&255);this.ga=65536;c&&(this.Z|=this.ga);b?Ad(this):vd(this);this.A-=this.B.Ne},function(){xh[this.ha()].call(this,Td)},function(){yh[this.ha()].call(this,ae)},function(){zh[this.ha()].call(this,Td)},function(){M[this.ha()].call(this,ae)},function(){this.H=this.H&-256|Td.call(this,this.H&255,this.ha());this.A--},function(){this.H=ae.call(this,this.H,this.L());this.A--},function(){this.aa|=20;this.D=this.N= this.tb;this.A-=this.B.oe},function(){var a=this.H&255,b=this.H>>8,c,d=qd(this);9<(a&15)||d?(a=a+6&15,b=b+1&255,c=d=!0):c=d=!1;this.H=b<<8|(this.Z=a);this.ga=65536;c&&(this.Z|=this.ga);d?Ad(this):vd(this);this.A-=this.B.Ne},function(){xh[this.ha()].call(this,Ud)},function(){yh[this.ha()].call(this,be)},function(){zh[this.ha()].call(this,Ud)},function(){M[this.ha()].call(this,be)},function(){this.H=this.H&-256|Ud.call(this,this.H&255,this.ha());this.A--},function(){this.H=be.call(this,this.H,this.L()); -this.A--},function(){this.aa|=20;this.D=this.N=this.yb;this.A-=this.B.oe},function(){var a=this.H&255,b=this.H>>8,c,d=qd(this);9<(a&15)||d?(a=a-6&15,b=b-1&255,c=d=!0):c=d=!1;this.H=b<<8|(this.Z=a);this.ga=65536;c&&(this.Z|=this.ga);d?Ad(this):vd(this);this.A-=this.B.Ne},function(){this.pa=this.H;this.H=(this.ma=this.H+1)&65535;this.Z=this.H|(this.Z&this.ga?1:0)<<16;this.ga=65536;this.A-=2},function(){this.pa=this.J;this.J=(this.ma=this.J+1)&65535;this.Z=this.J|(this.Z&this.ga?1:0)<<16;this.ga=65536; +this.A--},function(){this.aa|=20;this.D=this.N=this.zb;this.A-=this.B.oe},function(){var a=this.H&255,b=this.H>>8,c,d=qd(this);9<(a&15)||d?(a=a-6&15,b=b-1&255,c=d=!0):c=d=!1;this.H=b<<8|(this.Z=a);this.ga=65536;c&&(this.Z|=this.ga);d?Ad(this):vd(this);this.A-=this.B.Ne},function(){this.pa=this.H;this.H=(this.ma=this.H+1)&65535;this.Z=this.H|(this.Z&this.ga?1:0)<<16;this.ga=65536;this.A-=2},function(){this.pa=this.J;this.J=(this.ma=this.J+1)&65535;this.Z=this.J|(this.Z&this.ga?1:0)<<16;this.ga=65536; this.A-=2},function(){this.pa=this.K;this.K=(this.ma=this.K+1)&65535;this.Z=this.K|(this.Z&this.ga?1:0)<<16;this.ga=65536;this.A-=2},function(){this.pa=this.C;this.C=(this.ma=this.C+1)&65535;this.Z=this.C|(this.Z&this.ga?1:0)<<16;this.ga=65536;this.A-=2},function(){this.pa=this.Y;this.Y=(this.ma=this.Y+1)&65535;this.Z=this.Y|(this.Z&this.ga?1:0)<<16;this.ga=65536;this.A-=2},function(){this.pa=this.I;this.I=(this.ma=this.I+1)&65535;this.Z=this.I|(this.Z&this.ga?1:0)<<16;this.ga=65536;this.A-=2},function(){this.pa= this.G;this.G=(this.ma=this.G+1)&65535;this.Z=this.G|(this.Z&this.ga?1:0)<<16;this.ga=65536;this.A-=2},function(){this.pa=this.F;this.F=(this.ma=this.F+1)&65535;this.Z=this.F|(this.Z&this.ga?1:0)<<16;this.ga=65536;this.A-=2},function(){this.pa=this.H;this.H=(this.ma=this.H-1)&65535;this.Z=this.H|(this.Z&this.ga?1:0)<<16;this.ga=65536;this.A-=2},function(){this.pa=this.J;this.J=(this.ma=this.J-1)&65535;this.Z=this.J|(this.Z&this.ga?1:0)<<16;this.ga=65536;this.A-=2},function(){this.pa=this.K;this.K= (this.ma=this.K-1)&65535;this.Z=this.K|(this.Z&this.ga?1:0)<<16;this.ga=65536;this.A-=2},function(){this.pa=this.C;this.C=(this.ma=this.C-1)&65535;this.Z=this.C|(this.Z&this.ga?1:0)<<16;this.ga=65536;this.A-=2},function(){this.pa=this.Y;this.Y=(this.ma=this.Y-1)&65535;this.Z=this.Y|(this.Z&this.ga?1:0)<<16;this.ga=65536;this.A-=2},function(){this.pa=this.I;this.I=(this.ma=this.I-1)&65535;this.Z=this.I|(this.Z&this.ga?1:0)<<16;this.ga=65536;this.A-=2},function(){this.pa=this.G;this.G=(this.ma=this.G- 1)&65535;this.Z=this.G|(this.Z&this.ga?1:0)<<16;this.ga=65536;this.A-=2},function(){this.pa=this.F;this.F=(this.ma=this.F-1)&65535;this.Z=this.F|(this.Z&this.ga?1:0)<<16;this.ga=65536;this.A-=2},function(){H(this,this.H);this.A-=this.B.qc},function(){H(this,this.J);this.A-=this.B.qc},function(){H(this,this.K);this.A-=this.B.qc},function(){H(this,this.C);this.A-=this.B.qc},function(){H(this,this.Y-2&65535);this.A-=this.B.qc},function(){H(this,this.I);this.A-=this.B.qc},function(){H(this,this.G);this.A-= this.B.qc},function(){H(this,this.F);this.A-=this.B.qc},function(){this.H=this.La();this.A-=this.B.ic},function(){this.J=this.La();this.A-=this.B.ic},function(){this.K=this.La();this.A-=this.B.ic},function(){this.C=this.La();this.A-=this.B.ic},function(){this.Y=this.La();this.A-=this.B.ic},function(){this.I=this.La();this.A-=this.B.ic},function(){this.G=this.La();this.A-=this.B.ic},function(){this.F=this.La();this.A-=this.B.ic},Eh,Fh,Gh,Hh,Ih,Jh,Kh,Lh,Mh,Nh,Oh,Ph,Qh,Rh,Sh,Th,Eh,Fh,Gh,Hh,Ih,Jh,Kh, Lh,Mh,Nh,Oh,Ph,Qh,Rh,Sh,Th,Uh,function(){Bh[this.ha()].call(this,xe,this.L);this.A-=0>this.Ma?1:this.B.Ch},Uh,function(){Bh[this.ha()].call(this,xe,this.M);this.A-=0>this.Ma?1:this.B.Ch},function(){xh[this.ha()].call(this,Je)},function(){yh[this.ha()].call(this,Ke)},function(){zh[this.Sg=this.ha()].call(this,Ye)},function(){M[this.Sg=this.ha()].call(this,Ze)},function(){this.aa|=1;xh[this.ha()].call(this,He)},function(){this.aa|=1;yh[this.ha()].call(this,He)},function(){zh[this.ha()].call(this,He)}, -function(){M[this.ha()].call(this,He)},function(){var a=this.ha();switch((a&56)>>3){case 0:this.Fb=this.Za.ta;break;case 1:this.Fb=this.xa.ta;break;case 2:this.Fb=this.tb.ta;break;case 3:this.Fb=this.yb.ta;break;default:K.call(this);return}this.aa|=1;yh[a].call(this,Ie)},function(){this.aa|=1;this.D=this.N=this.bm;M[this.ha()].call(this,Oe)},function(){var a,b=this.ha(),c=(b&56)>>3;switch(c){case 0:a=this.H;break;case 2:a=this.K;break;case 3:a=this.C;break;default:if(80286<=this.Ia){tc.call(this); +function(){M[this.ha()].call(this,He)},function(){var a=this.ha();switch((a&56)>>3){case 0:this.Fb=this.Za.ta;break;case 1:this.Fb=this.xa.ta;break;case 2:this.Fb=this.tb.ta;break;case 3:this.Fb=this.zb.ta;break;default:K.call(this);return}this.aa|=1;yh[a].call(this,Ie)},function(){this.aa|=1;this.D=this.N=this.bm;M[this.ha()].call(this,Oe)},function(){var a,b=this.ha(),c=(b&56)>>3;switch(c){case 0:a=this.H;break;case 2:a=this.K;break;case 3:a=this.C;break;default:if(80286<=this.Ia){tc.call(this); return}switch(c){case 1:a=this.J;break;case 4:a=this.Y;break;case 5:a=this.I;break;case 6:a=this.G;break;case 7:a=this.F}}M[b].call(this,He);switch(c){case 0:md(this,this.H);this.H=a;break;case 1:jd(this,this.J);this.J=a;break;case 2:ld(this,this.K);this.K=a;break;case 3:kd(this,this.C);this.C=a;break;case 4:md(this,this.Y);this.Y=a;break;case 5:jd(this,this.I);this.I=a;break;case 6:ld(this,this.G);this.G=a;break;case 7:kd(this,this.F),this.F=a}},function(){this.aa|=1;Bh[this.ha()].call(this,ye,this.La)}, function(){this.A-=3},function(){var a=this.H;this.H=this.J;this.J=a;this.A-=3},function(){var a=this.H;this.H=this.K;this.K=a;this.A-=3},function(){var a=this.H;this.H=this.C;this.C=a;this.A-=3},function(){var a=this.H;this.H=this.Y;this.Y=a;this.A-=3},function(){var a=this.H;this.H=this.I;this.I=a;this.A-=3},function(){var a=this.H;this.H=this.G;this.G=a;this.A-=3},function(){var a=this.H;this.H=this.F;this.F=a;this.A-=3},function(){this.H=this.H<<24>>24&65535;this.A-=2},function(){this.K=this.H& 32768?65535:0;this.A-=this.B.Rk},function(){var a=this.L(),b=this.L();H(this,this.xa.ta);H(this,this.va);Tc(this,a,b);this.A-=this.B.Uk},function(){K.call(this)},function(){H(this,Wc(this));this.A-=this.B.qc},function(){Uc(this,this.La());this.A-=this.B.ic},function(){var a=this.H>>8;a&1?zd(this):ud(this);a&4?pd(this)||(this.ma^=1):pd(this)&&(this.ma^=1);a&16?Ad(this):vd(this);a&64?Bd(this):wd(this);a&128?Cd(this):xd(this);this.A-=this.B.Eb},function(){this.H=this.H&255|(Wc(this)&213)<<8;this.A-= @@ -425,39 +425,39 @@ function(){this.Y=this.L();this.A-=this.B.Eb},function(){this.I=this.L();this.A- this.ma=this.H=(this.H>>8)*a+this.H&255;this.ga=256;this.A-=this.B.Nk},function(){this.H=this.H&-256|(od(this)?255:0);this.A-=2},function(){this.H=this.H&-256|this.U(this.D,this.C+(this.H&255)&65535);this.A-=this.B.Ml},Zh,Zh,Zh,Zh,Zh,Zh,Zh,Zh,function(){var a=this.M();(this.J=this.J-1&65535)&&this.Z&this.ga-1?(G(this,this.va+a),this.A-=this.B.tl):this.A-=this.B.ej},function(){var a=this.M();!(this.J=this.J-1&65535)||this.Z&this.ga-1?this.A-=this.B.gj:(G(this,this.va+a),this.A-=this.B.fj)},function(){var a= this.M();(this.J=this.J-1&65535)?(G(this,this.va+a),this.A-=this.B.sl):this.A-=this.B.ej},function(){var a=this.M();this.J?this.A-=this.B.gj:(G(this,this.va+a),this.A-=this.B.fj)},function(){var a=this.ha();this.H=this.H&-256|ub(this.ra,a,this.Ga-2);this.A-=this.B.Zi},function(){var a=this.ha();this.H=ub(this.ra,a,this.Ga-1)|ub(this.ra,a+1&65535,this.Ga-2)<<8;this.A-=this.B.Zi},function(){var a=this.ha();Ab(this.ra,a,this.H&255,this.Ga-2);this.A-=this.B.nj},function(){var a=this.ha();Ab(this.ra,a, this.H&255,this.Ga-2);Ab(this.ra,a+1&65535,this.H>>8,this.Ga-2);this.A-=this.B.nj},function(){var a=this.L();H(this,this.va);G(this,this.va+a);this.A-=this.B.Sk},function(){var a=this.L();G(this,this.va+a);this.A-=this.B.$i},function(){Tc(this,this.L(),this.L());this.A-=this.B.ol},function(){var a=this.M();G(this,this.va+a);this.A-=this.B.$i},function(){this.H=this.H&-256|ub(this.ra,this.K,this.Ga-1);this.A-=this.B.Yi},function(){this.H=ub(this.ra,this.K,this.Ga-1)|ub(this.ra,this.K+1&65535,this.Ga- -1)<<8;this.A-=this.B.Yi},function(){Ab(this.ra,this.K,this.H&255,this.Ga-1);this.A-=this.B.mj},function(){Ab(this.ra,this.K,this.H&255,this.Ga-1);Ab(this.ra,this.K+1&65535,this.H>>8,this.Ga-1);this.A-=this.B.mj},$h,$h,function(){this.aa|=132;this.A-=this.B.oe},function(){this.aa|=68;this.A-=this.B.oe},function(){this.mb|=4;this.A-=2;this.da&&Ed(this.da)?(nd(this,-1),this.wb()):this.Ca&512||(this.da&&nd(this,-1),this.wb())},function(){od(this)?ud(this):zd(this);this.A-=2},function(){this.Fb=-1;Ah[this.ha()].call(this, +1)<<8;this.A-=this.B.Yi},function(){Ab(this.ra,this.K,this.H&255,this.Ga-1);this.A-=this.B.mj},function(){Ab(this.ra,this.K,this.H&255,this.Ga-1);Ab(this.ra,this.K+1&65535,this.H>>8,this.Ga-1);this.A-=this.B.mj},$h,$h,function(){this.aa|=132;this.A-=this.B.oe},function(){this.aa|=68;this.A-=this.B.oe},function(){this.mb|=4;this.A-=2;this.da&&Ed(this.da)?(nd(this,-1),this.xb()):this.Ca&512||(this.da&&nd(this,-1),this.xb())},function(){od(this)?ud(this):zd(this);this.A-=2},function(){this.Fb=-1;Ah[this.ha()].call(this, De,ue);0<=this.Fb&&(this.H=this.Fb)},function(){this.Fb=-1;Bh[this.ha()].call(this,Ee,ue);0<=this.Fb&&(this.H=this.Fb,this.K=this.yg)},function(){this.Z&=~this.ga;this.A-=2},function(){this.Z|=this.ga;this.A-=2},function(){this.Ca&=-513;this.A-=this.B.Qk},function(){this.Ca|=512;this.aa|=4;this.A-=2},function(){this.Ca&=-1025;this.A-=2},function(){this.Ca|=1024;this.A-=2},function(){Ah[this.ha()].call(this,Lc,ue)},function(){Bh[this.ha()].call(this,Oc,ue)}]; function N(a){y.call(this,"ChipSet",a,N);this.Ia=a.model;this.Ia=void 0!==this.Ia?parseInt(this.Ia,10):ai;this.Zb=0;var b=a.sw1;if(b)this.Zb=bi(b,ci|di.jm);else{this.Vd=[360,360];(b=a.floppies)&&void 0!==b.length&&(this.Vd=b);if(b=this.Vd.length)this.Zb|=ei.Sh,b--,this.Zb|=(b&3)<<ei.Ef;if(b=a.monitor||(this.Ia<fi?"mono":"ega"),void 0!==gi[b])this.Zb|=gi[b]<<di.Ef}this.ue=bi(a.sw2||"11110000",0);this.Jn=this.Ia==ai?16:64;this.Rf=this.Sf=1;this.Ia>=fi&&(this.Rf=this.Sf=2);this.nh=a.scaleTimers||!1; -this.dp=a.rtcDate;this.xk=!1;a.sound&&window&&"webkitAudioContext"in window&&(this.ji=new webkitAudioContext);this.reset(!0);this.Ta()}Ua(y,N);var ai=5150,fi=5170,gi={none:0,tv:1,color:2,mono:3,ega:0},ei={Sh:1,ONE:0,Vp:64,Tp:128,rp:192,Df:192,Ef:6},ci=12,di={Up:16,mp:32,jm:48,Df:48,Ef:4};k=N.prototype; -k.zb=function(a,b,c,d){switch(c){case "sw1":return this.za[c]=d,hi(this,c,d,this.Zb,{0:this.Ia==ai?"Bootable Floppy Drive":"Loop on POST",1:this.Ia==ai?"Reserved":"Coprocessor",2:"Base Memory Size",4:"Monitor Type",6:"Number of Floppy Drives"}),!0;case "sw2":if(this.Ia==ai)return this.za[c]=d,hi(this,c,d,this.ue,{0:"Expansion Memory Size",4:"Reserved"}),!0;break;case "swdesc":return this.za[c]=d,!0}return!1}; +this.dp=a.rtcDate;this.xk=!1;a.sound&&window&&"webkitAudioContext"in window&&(this.ji=new webkitAudioContext);this.reset(!0);this.Ta()}Ua(y,N);var ai=5150,fi=5170,gi={none:0,tv:1,color:2,mono:3,ega:0},ei={Sh:1,ONE:0,Xp:64,Vp:128,tp:192,Df:192,Ef:6},ci=12,di={Wp:16,mp:32,jm:48,Df:48,Ef:4};k=N.prototype; +k.Ab=function(a,b,c,d){switch(c){case "sw1":return this.za[c]=d,hi(this,c,d,this.Zb,{0:this.Ia==ai?"Bootable Floppy Drive":"Loop on POST",1:this.Ia==ai?"Reserved":"Coprocessor",2:"Base Memory Size",4:"Monitor Type",6:"Number of Floppy Drives"}),!0;case "sw2":if(this.Ia==ai)return this.za[c]=d,hi(this,c,d,this.ue,{0:"Expansion Memory Size",4:"Reserved"}),!0;break;case "swdesc":return this.za[c]=d,!0}return!1}; k.pc=function(a,b,c,d){this.ra=b;this.T=c;this.da=d;this.Ka=a;this.ab=eb(a,"Keyboard");this.Nl=Math.round(c.ca.Jd/1193181);tb(b,this,ii);zb(b,this,ji);this.Ia<fi?(tb(b,this,ki),zb(b,this,li)):(tb(b,this,mi),zb(b,this,ni));if(d){var e=this;oi(d,Fd,function(){for(var a=0;a<e.ub.length;a++){for(var b=e.ub[a],c="PIC"+a+":",d=0;d<b.rd.length;d++)c+=" IC"+(d+1)+"="+q(b.rd[d]);c+=" IMR="+q(b.xd)+" IRR="+q(b.Ib)+" ISR="+q(b.Gc);e.da.message(c)}});oi(d,pi,function(){for(var a=0;a<e.Hb.length;a++){qi(e,a); var b=e.Hb[a],c="TIMER"+a+":",d=0;if(void 0!==b.kd)for(var n=0;n<=b.kd;n++)d|=b.$b[n]<<8*n;c+=" MODE"+b.mode+" BYTES="+b.kd+" COUNT="+u(d);e.da.message(c)}});oi(d,ri,function(){for(var a="",b=0;64>b;b++){var c=13>=b?si(e,b):e.sa[b];a&&(a+="\n");a+="CMOS[0x"+q(b)+"]: 0x"+q(c)}e.da.message(a)})}Xc(c,26,this,this.Gn)};k.Yb=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.Xb=function(a){return a&&this.save?this.save():!0}; k.reset=function(a){var b;this.dd=this.Zb;this.Xe=this.ue;ti(this);this.eb=Array(this.Rf);for(b=0;b<this.Rf;b++)ui(this,b);this.ub=Array(this.Sf);vi(this,0,32);1<this.Sf&&vi(this,1,160);this.gi=void 0;this.Hb=Array(3);for(b=0;b<this.Hb.length;b++)wi(this,b);this.Qf=this.ei=this.zc=this.Ug=void 0;this.Tg=0;if(this.Ia>=fi){this.jb=16;this.wd=0;this.gd=16;this.Pg=0;this.Ae=160;512<=xi(this)&&(this.Ae|=16);3==yi(this)&&(this.Ae|=64);this.ci=3;this.Of=0;this.Lg=Array(7);this.Be=0;a&&(this.sa=Array(64)); zi(this,this.dp);for(a=21;24>=a;a++)this.sa[a]=0;for(a=14;46>a;a++)void 0===this.sa[a]&&(this.sa[a]=0);this.sa[20]=this.dd&(di.Df|2|ei.Sh|ei.Df);this.sa[16]=Ai(this,0)<<4|Ai(this,1);Bi(this)}}; function zi(a,b){var c=b?new Date(b):new Date;"[object Date]"!==Object.prototype.toString.call(c)||isNaN(c.getTime())?(c=new Date,a.fa("CMOS date invalid ("+b+"), using "+c)):b&&a.fa("CMOS date: "+c);a.sa[0]=c.getSeconds();a.sa[1]=0;a.sa[2]=c.getMinutes();a.sa[3]=0;a.sa[4]=c.getHours();a.sa[5]=0;a.sa[6]=c.getDay()+1;a.sa[7]=c.getDate();a.sa[8]=c.getMonth()+1;c=c.getFullYear();a.sa[9]=c%100;c/=100;a.sa[50]=c%10|c/10<<4;a.gg=-1;a.sa[10]=38;a.sa[11]=2;a.sa[12]=0;a.sa[13]=128} function si(a,b){var c=a.sa[b];if(10>b){var d=!1;4!=b&&5!=b||a.sa[11]&2||(c=12>c?c?c:12:(c-=12)?c+128:140,d=!0);a.sa[11]&4||(d&&128<c&&(c-=48),c=c%10|c/10<<4)}else 10==b&&(a.sa[b]^=128);return c}function Bi(a){for(var b=0,c=16;46>c;c++)b+=a.sa[c];a.sa[47]=b&255;a.sa[46]=b>>8} -k.save=function(){var a=new gd(this);a.set(0,[this.Zb,this.ue,this.dd,this.Xe]);for(var b=[],c=0;c<this.eb;c++){var d=[],e=this.eb[c];d[0]=e.de;d[1]=e.di;d[2]=e.fk;d[3]=e.qb;for(var f=[],h=0;h<e.Gb.length;h++){var g=[],l=e.Gb[h];g[0]=l.Hd;g[1]=l.ak;g[2]=l.Jc;g[3]=l.Pb;g[4]=l.$b;g[5]=l.mode;g[6]=l.Vg;g[8]=l.ap;g[9]=l.bp;f[h]=g}d[4]=f;b[c]=d}a.set(1,[b]);b=[];for(c=0;c<this.ub.length;c++)d=[],e=this.ub[c],d[0]=e.lg,d[1]=e.rd,d[2]=e.Kd,d[3]=e.xd,d[4]=e.Ib,d[5]=e.Gc,d[6]=e.Ce,d[7]=e.Pf,b[c]=d;a.set(2, +k.save=function(){var a=new gd(this);a.set(0,[this.Zb,this.ue,this.dd,this.Xe]);for(var b=[],c=0;c<this.eb;c++){var d=[],e=this.eb[c];d[0]=e.de;d[1]=e.di;d[2]=e.fk;d[3]=e.qb;for(var f=[],g=0;g<e.Gb.length;g++){var h=[],l=e.Gb[g];h[0]=l.Hd;h[1]=l.ak;h[2]=l.Jc;h[3]=l.Pb;h[4]=l.$b;h[5]=l.mode;h[6]=l.Vg;h[8]=l.ap;h[9]=l.bp;f[g]=h}d[4]=f;b[c]=d}a.set(1,[b]);b=[];for(c=0;c<this.ub.length;c++)d=[],e=this.ub[c],d[0]=e.lg,d[1]=e.rd,d[2]=e.Kd,d[3]=e.xd,d[4]=e.Ib,d[5]=e.Gc,d[6]=e.Ce,d[7]=e.Pf,b[c]=d;a.set(2, [b]);b=[];for(c=0;c<this.Hb.length;c++)d=[],e=this.Hb[c],d[0]=e.Jc,d[1]=e.Yc,d[2]=e.$b,d[3]=e.Xf,d[4]=e.hk,d[5]=e.mode,d[6]=e.zg,d[7]=e.ge,d[8]=e.kd,d[9]=e.md,d[10]=e.$f,d[11]=e.gf,d[12]=e.re,b[c]=d;a.set(3,[this.gi,b]);a.set(4,[this.Ug,this.zc,this.ei,this.Qf,this.Tg]);this.Ia>=fi&&(a.set(5,[this.jb,this.wd,this.gd,this.Pg,this.Ae,this.ci]),a.set(6,[this.Of,this.Lg,this.Be,this.sa,this.gg]));return a.data()}; k.restore=function(a){var b,c;b=a[0];this.Zb=b[0];this.ue=b[1];this.dd=b[2];this.Xe=b[3];b=a[1];this.eb=Array(this.Rf);for(c=0;c<this.Rf;c++)ui(this,c,1==b.length?b[0][c]:b);b=a[2];this.ub=Array(this.Sf);for(c=0;c<this.Sf;c++)vi(this,c,0===c?32:160,b[0][c]);b=a[3];this.gi=b[0];this.Hb=Array(3);for(c=0;c<this.Hb.length;c++)wi(this,c,b[1][c]);b=a[4];this.Ug=b[0];this.zc=b[1];this.ei=b[2];this.Qf=b[3];this.Tg=b[4];if(b=a[5])this.jb=b[0],this.wd=b[1],this.gd=b[2],this.Pg=b[3],this.Ae=b[4],this.ci=b[5]; if(b=a[6])this.Of=b[0],this.Lg=b[1],this.Be=b[2],this.sa=b[3],this.gg=b[4],zi(this);return!0};function ui(a,b,c){a=a.eb[b]={};c&&5==c.length||(c=[0,void 0,void 0,0,[]]);a.de=c[0];a.di=c[1];a.fk=c[2];a.qb=c[3];a.Pn=b<<2;a.Gb=Array(4);for(b=0;b<a.Gb.length;b++)Ci(a,b,c[4][b])}function Ci(a,b,c){var d=a.Gb[b]={};if(void 0===c||8!=c.length)c=[!0,[],[],[],[]];d.ia=a;d.Ck=b;d.Hd=c[0];d.ak=c[1];d.Jc=c[2];d.Pb=c[3];d.$b=c[4];d.mode=c[5];d.Vg=c[6];Di(d,c[8],c[9])} -function Di(a,b,c,d){"string"==typeof b&&(b=Wa(b));b&&(a.dh=null,a.ap=b.id,a.bp=c,a.ah=b,a.Bi=b[c],a.Eh=d)}function vi(a,b,c,d){a=a.ub[b]={};d&&8==d.length||(d=[0,[void 0,void 0,void 0,void 0]]);a.port=c;a.rq=b<<3;a.lg=d[0];a.rd=d[1];a.Kd=d[2];a.xd=d[3];a.Ib=d[4];a.Gc=d[5];a.Ce=d[6];a.Pf=d[7]} +function Di(a,b,c,d){"string"==typeof b&&(b=Wa(b));b&&(a.dh=null,a.ap=b.id,a.bp=c,a.ah=b,a.Bi=b[c],a.Eh=d)}function vi(a,b,c,d){a=a.ub[b]={};d&&8==d.length||(d=[0,[void 0,void 0,void 0,void 0]]);a.port=c;a.tq=b<<3;a.lg=d[0];a.rd=d[1];a.Kd=d[2];a.xd=d[3];a.Ib=d[4];a.Gc=d[5];a.Ce=d[6];a.Pf=d[7]} function wi(a,b,c){a=a.Hb[b]={};if(void 0===c||13!=c.length)c=[[],[],[],[]];a.Jc=c[0];a.Yc=c[1];a.$b=c[2];a.Xf=c[3];a.hk=c[4];a.mode=c[5];a.zg=c[6];a.ge=c[7];a.kd=c[8];a.md=c[9];a.$f=c[10];a.gf=c[11];a.re=c[12]}function xi(a,b){return((((b?a.Zb:a.dd)&12)>>2)+1)*a.Jn+32*((b?a.ue:a.Xe)&15)}function Ei(a,b){var c=b?a.Zb:a.dd;return a.Ia!=ai||c&ei.Sh?((c&ei.Df)>>ei.Ef)+1:0} function Ai(a,b){if(b<Ei(a)){if(!a.Vd)return 1;if(b<a.Vd.length)switch(a.Vd[b]){case 160:case 180:case 320:case 360:return 1;case 720:return 3;case 1200:return 2;case 1440:return 4}}return 0}function yi(a,b){return((b?a.Zb:a.dd)&di.Df)>>di.Ef} -function hi(a,b,c,d,e){for(var f="",h=1;8>=h;h++){var g="pcjs-bitCell";h||(g+=" pcjs-bitCellLeft");f+='<div id="'+(b+"-"+h)+'" class="'+g+'" data-value="0">'+h+"</div>\n"}c.innerHTML=f;b=A(c,"pcjs-bitCell");c=null;for(h=0;h<b.length;h++)void 0!==e&&void 0!==e[h]&&(c=e[h]),c&&b[h].setAttribute("title",c),Fi(b[h],d&1<<h?!1:!0),b[h].onclick=function(a,b){return function(){var c="1"!=b.getAttribute("data-value");Fi(b,c);var d=b.getAttribute("id").split("-"),e=1<<parseInt(d[1],10)-1;switch(d[0]){case "sw1":a.Zb= -a.Zb&~e|(c?0:e);break;case "sw2":a.ue=a.ue&~e|(c?0:e)}ti(a)}}(a,b[h])}function Fi(a,b){a.setAttribute("data-value",b?"1":"0");a.style.color=b?"#ffffff":"#000000";a.style.backgroundColor=b?"#000000":"#ffffff"}function ti(a){var b=a.za.swdesc,c={0:"Enhanced Color",1:"TV",2:"Color",3:"Monochrome"};if(void 0!==b){var d;d=""+(xi(a,!0)+"Kb");d+=", "+c[yi(a,!0)]+" Monitor";d+=", "+Ei(a,!0)+" Floppy Drives";if(void 0!==a.dd&&a.dd!=a.Zb||void 0!==a.Xe&&a.Xe!=a.ue)d+=" (Reset required)";b.innerHTML=d}} -function Gi(a,b,c,d,e){var f=a.eb[b],h=f.Gb[c].Pb[f.qb];f.qb^=1;a.ea(d,null,e,"DMA"+b+".CHANNEL"+c+".ADDR["+f.qb+"]",O,h);return h}function Hi(a,b,c,d,e,f){var h=a.eb[b];a.ea(d,e,f,"DMA"+b+".CHANNEL"+c+".ADDR["+h.qb+"]",O);a=h.Gb[c];a.Pb[h.qb]=a.ak[h.qb]=e;h.qb^=1}function Ii(a,b,c,d,e){var f=a.eb[b],h=f.Gb[c].$b[f.qb];f.qb^=1;a.ea(d,null,e,"DMA"+b+".CHANNEL"+c+".COUNT["+f.qb+"]",O,h);return h} -function Ji(a,b,c,d,e,f){var h=a.eb[b];a.ea(d,e,f,"DMA"+b+".CHANNEL"+c+".COUNT["+h.qb+"]",O);a=h.Gb[c];a.$b[h.qb]=a.Jc[h.qb]=e;h.qb^=1}function Ki(a,b,c,d){var e=a.eb[b],f=e.de|1;e.de&=-16;a.ea(c,null,d,"DMA"+b+".STATUS",O,f);return f}function Li(a,b,c,d,e){var f=a.eb[b];a.ea(c,d,e,"DMA"+b+".REQ",O);a=d&3;f.de=f.de&~(16<<a)|(d&4)<<a+2;f.fk=d}function Mi(a,b,c,d,e){var f=a.eb[b];a.ea(c,d,e,"DMA"+b+".MASK",O);b=d&3;c=f.Gb[b];c.Hd=d&4?!0:!1;c.Hd||Ni(a,f.Pn+b)} +function hi(a,b,c,d,e){for(var f="",g=1;8>=g;g++){var h="pcjs-bitCell";g||(h+=" pcjs-bitCellLeft");f+='<div id="'+(b+"-"+g)+'" class="'+h+'" data-value="0">'+g+"</div>\n"}c.innerHTML=f;b=A(c,"pcjs-bitCell");c=null;for(g=0;g<b.length;g++)void 0!==e&&void 0!==e[g]&&(c=e[g]),c&&b[g].setAttribute("title",c),Fi(b[g],d&1<<g?!1:!0),b[g].onclick=function(a,b){return function(){var c="1"!=b.getAttribute("data-value");Fi(b,c);var d=b.getAttribute("id").split("-"),e=1<<parseInt(d[1],10)-1;switch(d[0]){case "sw1":a.Zb= +a.Zb&~e|(c?0:e);break;case "sw2":a.ue=a.ue&~e|(c?0:e)}ti(a)}}(a,b[g])}function Fi(a,b){a.setAttribute("data-value",b?"1":"0");a.style.color=b?"#ffffff":"#000000";a.style.backgroundColor=b?"#000000":"#ffffff"}function ti(a){var b=a.za.swdesc,c={0:"Enhanced Color",1:"TV",2:"Color",3:"Monochrome"};if(void 0!==b){var d;d=""+(xi(a,!0)+"Kb");d+=", "+c[yi(a,!0)]+" Monitor";d+=", "+Ei(a,!0)+" Floppy Drives";if(void 0!==a.dd&&a.dd!=a.Zb||void 0!==a.Xe&&a.Xe!=a.ue)d+=" (Reset required)";b.innerHTML=d}} +function Gi(a,b,c,d,e){var f=a.eb[b],g=f.Gb[c].Pb[f.qb];f.qb^=1;a.ea(d,null,e,"DMA"+b+".CHANNEL"+c+".ADDR["+f.qb+"]",O,g);return g}function Hi(a,b,c,d,e,f){var g=a.eb[b];a.ea(d,e,f,"DMA"+b+".CHANNEL"+c+".ADDR["+g.qb+"]",O);a=g.Gb[c];a.Pb[g.qb]=a.ak[g.qb]=e;g.qb^=1}function Ii(a,b,c,d,e){var f=a.eb[b],g=f.Gb[c].$b[f.qb];f.qb^=1;a.ea(d,null,e,"DMA"+b+".CHANNEL"+c+".COUNT["+f.qb+"]",O,g);return g} +function Ji(a,b,c,d,e,f){var g=a.eb[b];a.ea(d,e,f,"DMA"+b+".CHANNEL"+c+".COUNT["+g.qb+"]",O);a=g.Gb[c];a.$b[g.qb]=a.Jc[g.qb]=e;g.qb^=1}function Ki(a,b,c,d){var e=a.eb[b],f=e.de|1;e.de&=-16;a.ea(c,null,d,"DMA"+b+".STATUS",O,f);return f}function Li(a,b,c,d,e){var f=a.eb[b];a.ea(c,d,e,"DMA"+b+".REQ",O);a=d&3;f.de=f.de&~(16<<a)|(d&4)<<a+2;f.fk=d}function Mi(a,b,c,d,e){var f=a.eb[b];a.ea(c,d,e,"DMA"+b+".MASK",O);b=d&3;c=f.Gb[b];c.Hd=d&4?!0:!1;c.Hd||Ni(a,f.Pn+b)} function Oi(a,b,c,d,e){a.ea(c,d,e,"DMA"+b+".CLEAR",O);a=a.eb[b];for(b=0;b<a.Gb.length;b++)Ci(a,b)}function Pi(a,b,c,d,e){var f=a.eb[b].Gb[c].Vg;a.ea(d,null,e,"DMA"+b+".CHANNEL"+c+".PAGE",O,f);return f}function Qi(a,b,c,d,e,f){a.ea(d,e,f,"DMA"+b+".CHANNEL"+c+".PAGE",O);a.eb[b].Gb[c].Vg=e}function Ri(a,b,c,d){var e=a.Lg[b];a.ea(c,null,d,"DMA.SPARE"+b+".PAGE",O,e);return e}function Si(a,b,c,d,e){a.ea(c,d,e,"DMA.SPARE"+b+".PAGE",O);a.Lg[b]=d}function Ti(a,b,c,d,e){Di(a.eb[b>>2].Gb[b&3],c,d,e)} -function Ni(a,b,c){b=a.eb[b>>2].Gb[b&3];b.ah&&b.Bi&&b.Eh?(c&&(b.dh=c),b.Hd||Id(a,b,!0)):c&&c(!0)}function Id(a,b,c){c&&(b.count=b.$b[1]<<8|b.$b[0],b.fm=b.mode&12,b.yk=b.Zc=!1);for(var d=!1;0<=b.count&&(c=b.Vg<<16|b.Pb[1]<<8|b.Pb[0],4==b.fm?(d=!0,function(c){b.Bi.call(b.ah,b.Eh,-1,function(f,h){0>f&&(b.yk||(b.yk=!0),f=255);b.Hd||pb(a.ra,c,f);(d=h)&&setTimeout(function(){Ui(b)||Id(a,b)},0)})}(c)):8==b.fm?(c=nb(a.ra,c),0>b.Bi.call(b.ah,b.Eh,c)&&(b.Zc=!0)):b.Zc=!0),!d&&!Ui(b););} +function Ni(a,b,c){b=a.eb[b>>2].Gb[b&3];b.ah&&b.Bi&&b.Eh?(c&&(b.dh=c),b.Hd||Id(a,b,!0)):c&&c(!0)}function Id(a,b,c){c&&(b.count=b.$b[1]<<8|b.$b[0],b.fm=b.mode&12,b.yk=b.Zc=!1);for(var d=!1;0<=b.count&&(c=b.Vg<<16|b.Pb[1]<<8|b.Pb[0],4==b.fm?(d=!0,function(c){b.Bi.call(b.ah,b.Eh,-1,function(f,g){0>f&&(b.yk||(b.yk=!0),f=255);b.Hd||pb(a.ra,c,f);(d=g)&&setTimeout(function(){Ui(b)||Id(a,b)},0)})}(c)):8==b.fm?(c=nb(a.ra,c),0>b.Bi.call(b.ah,b.Eh,c)&&(b.Zc=!0)):b.Zc=!0),!d&&!Ui(b););} function Ui(a){if(!a.Zc&&0<=--a.count&&(a.mode&32?(a.Pb[0]--,0>a.Pb[0]&&(a.Pb[0]=255,a.Pb[1]--,0>a.Pb[1]&&(a.Pb[1]=255))):(a.Pb[0]++,255<a.Pb[0]&&(a.Pb[0]=0,a.Pb[1]++,255<a.Pb[1]&&(a.Pb[1]=0))),!a.Hd))return!1;var b=a.ia;b.de=b.de&~(16<<a.Ck)|1<<a.Ck;a.mode&16||(a.Hd=!0,a.ah=a.Eh=null);a.dh&&(a.dh(!a.Zc),a.dh=null);return!0}function Vi(a,b,c){var d=0,e=a.ub[b];if(void 0!==e.Pf)switch(e.Pf&3){case 2:d=e.Ib;break;case 3:d=e.Gc}a.ea(e.port,null,c,"PIC"+b,Fd,d);return d} function Wi(a,b,c,d){var e=a.ub[b];a.ea(e.port,c,d,"PIC"+b,Fd);if(c&16)e.Kd=0,e.rd[e.Kd++]=c,e.xd=0,e.Ce=7,e.Ib=e.Gc=0,e.Pf=10;else if(c&8)e.Pf=c;else{var f=c&224;if(f&32){d=0;if(96==(f&96))d=1<<(c&7);else for(c=e.Ce+1;;){c&=7;f=1<<c;if(e.Gc&f){d=f;break}if(c++==e.Ce)break}e.Gc&d&&(e.Gc&=~d,Xi(a,b))}else 192==f&&(e.Ce=c&7)}}function Yi(a,b,c){var d=a.ub[b],e=d.xd;a.ea(d.port+1,null,c,"PIC"+b,Fd,e);return e} function Zi(a,b,c,d){var e=a.ub[b];a.ea(e.port+1,c,d,"PIC"+b,Fd);e.Kd<e.rd.length?(e.rd[e.Kd++]=c,2==e.Kd&&e.rd[0]&2&&e.Kd++,3!=e.Kd||e.rd[0]&1||e.Kd++):(e.xd=c,d=a.T,d.aa|=4,Xi(a,b,b||253!=c?0:6))}function Xi(a,b,c){b=a.ub[b];var d=((b.Gc|b.xd)^255)&b.Ib;a=a.T;a.oa&&(a.mb=d?a.mb|1:a.mb&-2);d&&c&&(b.lg=c)}function $i(a,b,c){var d=b>>3,e=a.ub[d];e.Ib|=1<<(b&7);e.lg=c||0;1==d&&(a.ub[0].Ib|=4);Xi(a,d)} -function aj(a,b){var c=b>>3,d=a.ub[c],e=1<<(b&7);d.Ib&e&&(d.Ib&=~e,1!=c||d.Ib||(a.ub[0].Ib&=-5),Xi(a,c))}function Gd(a,b){void 0===b&&(b=0);var c=-1,d=a.ub[b];if(d.lg)c=-2,d.lg--;else for(var e=d.Ib&((d.Gc|d.xd)^255),f=d.Ce+1;;){var f=f&7,h=1<<f;if(e&h){c=b||2!=f?d.rd[1]+f:Gd(a,1);0<=c&&(d.Gc|=h,d.Ib&=~h);break}if(f++==d.Ce)break}return c}function bj(a,b,c){var d;d=a.Hb[b];d.ge==d.kd&&cj(a,b);if(d.$f)return d.Xf[d.ge++];qi(a,b);d=d.$b[d.ge++];a.ea(64+b,null,c,"TIMER"+b,pi,d);return d} +function aj(a,b){var c=b>>3,d=a.ub[c],e=1<<(b&7);d.Ib&e&&(d.Ib&=~e,1!=c||d.Ib||(a.ub[0].Ib&=-5),Xi(a,c))}function Gd(a,b){void 0===b&&(b=0);var c=-1,d=a.ub[b];if(d.lg)c=-2,d.lg--;else for(var e=d.Ib&((d.Gc|d.xd)^255),f=d.Ce+1;;){var f=f&7,g=1<<f;if(e&g){c=b||2!=f?d.rd[1]+f:Gd(a,1);0<=c&&(d.Gc|=g,d.Ib&=~g);break}if(f++==d.Ce)break}return c}function bj(a,b,c){var d;d=a.Hb[b];d.ge==d.kd&&cj(a,b);if(d.$f)return d.Xf[d.ge++];qi(a,b);d=d.$b[d.ge++];a.ea(64+b,null,c,"TIMER"+b,pi,d);return d} function dj(a,b,c,d){a.ea(64+b,c,d,"TIMER"+b,pi);d=a.Hb[b];d.ge==d.kd&&cj(a,b);d.Jc[d.ge++]=c;if(d.ge==d.kd){d.gf&&0!=d.mode&&8!=d.mode||(d.$f=!1,d.$b[0]=d.Yc[0]=d.Jc[0],d.$b[1]=d.Yc[1]=d.Jc[1],d.re=E(a.T,a.nh),d.gf=!0,d.md=0!=d.mode,0==b&&aj(a,0));2==b&&Yb(a);if(0==b){var e=ej(a,0);2048<=e&&(a.T.yh=Math.round(65536/e))}0==b&&0==d.mode&&16==d.zg&&(b=a.T,b.qa.Mb&&(a=b.A-c*a.Nl,b.A-=a,b.Pc-=a))}}k.An=function(a,b){this.ea(a,null,b,"TIMER_CTRL",pi);return null}; k.Qo=function(a,b,c){this.ea(a,b,c,"TIMER_CTRL",pi);this.gi=b;a=(b&192)>>6;if(3!=a){c=b&1;var d=b&14;if(b&=48){var e=this.Hb[a];e.zg=b;e.mode=d;e.hk=c;e.Jc=[0,0];e.$b=[0,0];e.Xf=[0,0];e.md=!1;e.$f=!1;e.gf=!1;cj(this,a);0==a&&aj(this,0);2==a&&255==this.ub[0].xd&&77==this.zc&&(a=this.Hb[0],a.Yc[0]=a.Jc[0],a.Yc[1]=a.Jc[1],a.re=E(this.T,this.nh))}else qi(this,a),b=this.Hb[a],b.Xf[0]=b.$b[0],b.Xf[1]=b.$b[1],b.$f=!0,cj(this,a)}}; function ej(a,b){var c=a.Hb[b],d=c.Jc[1]<<8|c.Jc[0];d||(d=1==c.kd?256:65536);return d}function cj(a,b){var c=a.Hb[b];c.ge=32==c.zg?1:0;c.kd=48==c.zg?2:1} -function qi(a,b,c){var d=a.Hb[b];if(d.gf&&(2!=b||a.zc&1)){var e=E(a.T,a.nh),f=(e-d.re)/a.Nl|0;0>f&&(d.re=e,f=0);var h=ej(a,b),g=a.Hb[b],l=g.Yc[1]<<8|g.Yc[0];l||(l=1==g.kd?256:65536);g=l-f;0==d.mode?(0>=g&&(g=0),g||(d.md=!0,d.gf=!1,b||$i(a,0))):4==d.mode?(d.md=1!=g,0>=g&&(g=h+g,0>=g&&(g=h),d.Yc[0]=g&255,d.Yc[1]=g>>8,d.re=e,!b&&d.md&&$i(a,0))):6==d.mode&&(g-=f,0>=g&&(d.md=!d.md,g=h+g,0>=g&&(g=h),d.Yc[0]=g&255,d.Yc[1]=g>>8,d.re=e,!b&&d.md&&$i(a,0)));d.$b[0]=g&255;d.$b[1]=g>>8;c&&(a.re=0)}return d} -function Zb(a,b){for(var c=0;c<a.Hb.length;c++)qi(a,c,b);if(a.Ia>=fi){var c=0,d=a.T.ca.Jd,e=E(a.T,a.nh);if(0<=a.gg&&(c=e-a.gg,Math.floor(c/d)&&60<=++a.sa[0]&&(a.sa[0]=0,60<=++a.sa[2]&&(a.sa[2]=0,24<=++a.sa[4])))){a.sa[4]=0;a.sa[6]=a.sa[6]%7+1;var f=a.sa[9],h=qa[a.sa[8]-1];28==h&&0===f%4&&(f%100||0===f%400)&&h++;++a.sa[7]>h&&(a.sa[7]=1,12<++a.sa[8]&&(a.sa[8]=1,a.sa[9]=(a.sa[9]+1)%100))}a.gg=e-c%d}} +function qi(a,b,c){var d=a.Hb[b];if(d.gf&&(2!=b||a.zc&1)){var e=E(a.T,a.nh),f=(e-d.re)/a.Nl|0;0>f&&(d.re=e,f=0);var g=ej(a,b),h=a.Hb[b],l=h.Yc[1]<<8|h.Yc[0];l||(l=1==h.kd?256:65536);h=l-f;0==d.mode?(0>=h&&(h=0),h||(d.md=!0,d.gf=!1,b||$i(a,0))):4==d.mode?(d.md=1!=h,0>=h&&(h=g+h,0>=h&&(h=g),d.Yc[0]=h&255,d.Yc[1]=h>>8,d.re=e,!b&&d.md&&$i(a,0))):6==d.mode&&(h-=f,0>=h&&(d.md=!d.md,h=g+h,0>=h&&(h=g),d.Yc[0]=h&255,d.Yc[1]=h>>8,d.re=e,!b&&d.md&&$i(a,0)));d.$b[0]=h&255;d.$b[1]=h>>8;c&&(a.re=0)}return d} +function Zb(a,b){for(var c=0;c<a.Hb.length;c++)qi(a,c,b);if(a.Ia>=fi){var c=0,d=a.T.ca.Jd,e=E(a.T,a.nh);if(0<=a.gg&&(c=e-a.gg,Math.floor(c/d)&&60<=++a.sa[0]&&(a.sa[0]=0,60<=++a.sa[2]&&(a.sa[2]=0,24<=++a.sa[4])))){a.sa[4]=0;a.sa[6]=a.sa[6]%7+1;var f=a.sa[9],g=qa[a.sa[8]-1];28==g&&0===f%4&&(f%100||0===f%400)&&g++;++a.sa[7]>g&&(a.sa[7]=1,12<++a.sa[8]&&(a.sa[8]=1,a.sa[9]=(a.sa[9]+1)%100))}a.gg=e-c%d}} k.sn=function(a,b){var c=this.Ug;this.Qf&16&&(this.zc&128?c=this.dd:this.ab&&(c=fj(this.ab)));this.ea(a,null,b,"PPI_A",gj,c);return c};k.Jo=function(a,b,c){this.ea(a,b,c,"PPI_A",gj);this.Ug=b};k.tn=function(a,b){var c=this.zc;this.ea(a,null,b,"PPI_B",gj,c);return c};k.Ko=function(a,b,c){this.ea(a,b,c,"PPI_B",gj);hj(this,b);this.ab&&ij(this.ab,b&128?!1:!0,b&64?!0:!1)};function hj(a,b){var c=!!(b&2),d=!!(a.zc&2);a.zc=b;c!=d&&Yb(a,c)} k.un=function(a,b){var c=0,c=this.Ia==ai?this.zc&4?c|this.Xe&15:c|this.Xe>>4&1:this.zc&8?c|this.dd>>4:c|this.dd&15;this.zc&1&&qi(this,2).md&&(c=this.zc&2?c|32:c|16);this.ea(a,null,b,"PPI_C",gj|Db,c);return c};k.Lo=function(a,b,c){this.ea(a,b,c,"PPI_C",gj);this.ei=b};k.vn=function(a,b){var c=this.Qf;this.ea(a,null,b,"PPI_CTRL",gj,c);return c};k.Mo=function(a,b,c){this.ea(a,b,c,"PPI_CTRL",gj);this.Qf=b}; k.Im=function(a,b){var c=this.Pg;this.ea(a,null,b,"8042_OUTBUFF",jj,c);this.jb&=-258;var d=this.ab&&fj(this.ab,!0);d&&kj(this,d);return c};k.ao=function(a,b,c){this.ea(a,b,c,"8042_INBUF.DATA",jj);if(this.jb&8)switch(this.wd){case 96:lj(this,b);break;case 209:mj(this,b);break;default:if(lj(this,this.gd&-17),this.ab){a=-1;switch(b){case 255:a=250,nj(this.ab)}kj(this,a)}}this.wd=b;this.jb&=-9};k.Jm=function(a,b){var c=this.zc&-209|(E(this.T)&64?16:0);this.ea(a,null,b,"8042_RWREG",jj|oj,c);return c}; @@ -465,7 +465,7 @@ k.bo=function(a,b,c){this.ea(a,b,c,"8042_RWREG",jj);hj(this,b)};k.Km=function(a, k.$n=function(a,b,c){this.ea(a,b,c,"8042_INBUFF.CMD",jj);this.wd=b;this.jb|=8;a=0;240<=this.wd&&(a=this.wd^15,this.wd=240);switch(this.wd){case 192:kj(this,this.Ae);break;case 173:lj(this,this.gd|16);break;case 174:lj(this,this.gd&-17);break;case 170:this.ab&&pj(this.ab,!0);lj(this,this.gd|16);kj(this,85);mj(this,3);break;case 224:kj(this,this.gd&16?0:1);break;case 240:a&1&&Sc(this.T)}}; function lj(a,b){var c=!(a.gd&16);a.gd=b;a.jb=a.jb&-5|b&4;if(a.ab){var d=!(b&16);ij(a.ab,!!(b&8),d)&&kj(a,fj(a.ab,!0));!c&&d&&fj(a.ab)&&qj(a)}}function kj(a,b){0<=b&&(a.Pg=b,a.jb&=-2,a.jb|=256)}function mj(a,b){a.ci=b;jb(a.ra,!!(b&2));b&1||Sc(a.T)}function qj(a){a.Ia<fi?$i(a,1,4):a.gd&16||$i(a,1,120)}k.Ym=function(a,b){this.ea(a,null,b,"CMOS_ADDR",ri,this.Be);return this.Be};k.ro=function(a,b,c){this.ea(a,b,c,"CMOS_ADDR",ri);this.Be=b;this.Tg=b&128?0:128}; k.Zm=function(a,b){var c=this.Be&63,d=13>=c?si(this,c):this.sa[c];this.ea(a,null,b,"CMOS_DATA["+q(c)+"]",ri,d);return d};k.so=function(a,b,c){var d=this.Be&63;this.ea(a,b,c,"CMOS_DATA["+q(d)+"]",ri);a=this.sa;13>=d&&10>d&&(c=!1,this.sa[11]&4||(b=10*(b>>4)+(b&15),c=!0),4==d||5==d)&&(c&&12<b&&(b+=48),this.sa[11]&2||(12>=b?b=12==b?0:b:(b-=116,b=24==b?12:b)));a[d]=b};k.qn=function(a,b){this.ea(a,null,b,"MFG_DATA",gj,this.Of);return this.Of};k.Go=function(a,b,c){this.ea(a,b,c,"MFG_DATA",gj);this.Of=b}; -k.Io=function(a,b,c){this.ea(a,b,c,"NMI",gj);this.Tg=b};k.Gn=function(a){var b=this.T.H>>8;this.da&&C(this.da,rj)&&($c(this.da,26,a),ad(this.T,a,function(a,d){return function(e){d=E(a.T)-d;var f,h=a.T.K&255,g=a.T.K>>8,l=a.T.K&255,n=a.T.K>>8;if(2==b||3==b)f=" CH(hour)="+u(g)+" CL(min)="+q(h)+" DH(sec)="+q(n);else if(4==b||5==b)f=" CX(year)="+u(a.T.J)+" DH(month)="+q(n)+" DL(day)="+q(l);bd(a.da,26,e,d,f)}}(this,E(this.T))));return!0}; +k.Io=function(a,b,c){this.ea(a,b,c,"NMI",gj);this.Tg=b};k.Gn=function(a){var b=this.T.H>>8;this.da&&C(this.da,rj)&&($c(this.da,26,a),ad(this.T,a,function(a,d){return function(e){d=E(a.T)-d;var f,g=a.T.K&255,h=a.T.K>>8,l=a.T.K&255,n=a.T.K>>8;if(2==b||3==b)f=" CH(hour)="+u(h)+" CL(min)="+q(g)+" DH(sec)="+q(n);else if(4==b||5==b)f=" CX(year)="+u(a.T.J)+" DH(month)="+q(n)+" DL(day)="+q(l);bd(a.da,26,e,d,f)}}(this,E(this.T))));return!0}; function bi(a,b){if(void 0===a)return b;for(var c=0,d=1,e=0;e<a.length;e++)"0"==a.charAt(e)&&(c|=d),d<<=1;return c} function Yb(a,b){if(a.ji){void 0!==b?a.xk=b:b=a.xk&&a.T&&a.T.qa.Mb;var c=Math.round(1193181/ej(a,2));if(20>c||2E4<c)b=!1;b?a.qd?(a.qd.frequency.value=c,a.Ra("speaker set to "+c+"hz",sj)):(a.qd=a.ji.createOscillator(),a.qd.type=1,a.qd.connect(a.ji.destination),a.qd.frequency.value=c,a.Ra("speaker on at "+c+"hz",sj),a.qd.noteOn(0)):a.qd&&(a.qd.noteOff(0),a.qd.disconnect(),delete a.qd,a.Ra("speaker off at "+c+"hz",sj))}else b&&a.Ra("BEEP",sj)} k.Ra=function(a,b,c){this.da&&(null==b&&(b=gj),void 0!==c&&(b|=0==c?pi:1==c?tj:6==c?uj:Fd),C(this.da,b)&&this.da.message(a))};k.ea=function(a,b,c,d,e,f){this.da&&(null==e&&(e=gj),this.da.ea(this,a,b,c,d,e,f))}; @@ -478,52 +478,52 @@ a,b,c)},4:function(a,b,c){Hi(this,0,2,a,b,c)},5:function(a,b,c){Ji(this,0,2,a,b, 113:N.prototype.so,128:N.prototype.Go,132:function(a,b,c){Si(this,0,a,b,c)},133:function(a,b,c){Si(this,1,a,b,c)},134:function(a,b,c){Si(this,2,a,b,c)},136:function(a,b,c){Si(this,3,a,b,c)},137:function(a,b,c){Qi(this,1,2,a,b,c)},138:function(a,b,c){Qi(this,1,3,a,b,c)},139:function(a,b,c){Qi(this,1,1,a,b,c)},140:function(a,b,c){Si(this,4,a,b,c)},141:function(a,b,c){Si(this,5,a,b,c)},142:function(a,b,c){Si(this,6,a,b,c)},143:function(a,b,c){Qi(this,1,0,a,b,c)},160:function(a,b,c){Wi(this,1,b,c)},161:function(a, b,c){Zi(this,1,b,c)},192:function(a,b,c){Hi(this,1,0,a,b,c)},194:function(a,b,c){Ji(this,1,0,a,b,c)},196:function(a,b,c){Hi(this,1,1,a,b,c)},198:function(a,b,c){Ji(this,1,1,a,b,c)},200:function(a,b,c){Hi(this,1,2,a,b,c)},202:function(a,b,c){Ji(this,1,2,a,b,c)},204:function(a,b,c){Hi(this,1,3,a,b,c)},206:function(a,b,c){Ji(this,1,3,a,b,c)},208:function(a,b,c){this.ea(a,b,c,"DMA1.CMD",O);this.eb[1].di=b},210:function(a,b,c){Li(this,1,a,b,c)},212:function(a,b,c){Mi(this,1,a,b,c)},214:function(a,b,c){this.ea(a, b,c,"DMA1.MODE",O);this.eb[1].Gb[b&3].mode=b},216:function(a,b,c){this.ea(a,b,c,"DMA1.INDEX",O);this.eb[1].qb=0},218:function(a,b,c){Oi(this,1,a,b,c)}};Fa(function(){for(var a=A(window.document,"pcjs","chipset"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new N(d);Za(d,c);ti(d)}}); -function vj(a){y.call(this,"ROM",a,vj);this.Ab=null;this.bk=a.addr;this.Ph=a.size;this.lm=a.alias;this.Ag=a.file;this.Ek=a.notify;if(this.Ag){a=this.Ag;var b=fa(this.Ag);"json"!=b&&"hex"!=b&&(a=ta()+"/api/v1/dump?file="+this.Ag+"&format=bytes&decimal=true");sa(a,!0,null,this,vj.prototype.Vn)}}Ua(y,vj);vj.prototype.pc=function(a,b,c,d){this.ra=b;this.T=c;this.da=d;wj(this)};vj.prototype.Yb=function(){this.Yh&&(this.da&&xj(this.da,this.bk,this.Ph,this.Yh),delete this.Yh);return!0};vj.prototype.Xb=function(){return!0}; -vj.prototype.Vn=function(a,b,c){if(c)this.Ja("Unable to load system ROM (error "+c+")");else{if("["==b.charAt(0)||"{"==b.charAt(0))try{var d=eval("("+b+")"),e=d.bytes,f=d.data;if(e)this.Ab=e;else if(f)for(this.Ab=Array(4*f.length),c=b=0;b<f.length;b++)this.Ab[c++]=f[b]&255,this.Ab[c++]=f[b]>>8&255,this.Ab[c++]=f[b]>>16&255,this.Ab[c++]=f[b]>>24&255;else this.Ab=d;this.Yh=d.symbols;if(!this.Ab.length){w("Empty ROM: "+a);return}if(1==this.Ab.length){w(this.Ab[0]);return}}catch(h){this.Ja("ROM data error: "+ -h.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.Ab=Array(a.length),d=0;d<a.length;d++)this.Ab[d]=parseInt(a[d],16);wj(this)}};function wj(a){if(!bb(a))if(!a.Ag)a.Ta();else if(a.Ab&&a.ra){if(a.Ab.length!=a.Ph)cb(a,"ROM size (0x"+p(a.Ab.length)+") does not match specified size (0x"+p(a.Ph)+")");else if(yj(a,a.bk)&&yj(a,a.lm)){if(a.Ek){var b=Wa(a.Ek,a.id);b&&("ega"==b.Ia&&zj(b,a.Ab,[8752,12640],8),b.Ta())}delete a.Ab}a.Ta()}} -function yj(a,b){if(null==b)return!0;if(kb(a.ra,b,a.Ph,!0)){for(var c=0;c<a.Ab.length;c++)pb(a.ra,b+c,a.Ab[c]);return!0}return!1}Fa(function(){for(var a=A(window.document,"pcjs","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new vj(d);Za(d,c)}});function Aj(a){y.call(this,"RAM",a,Aj);this.Ng=a.addr;this.Qd=a.size;this.zm=a.test;this.xm=!!this.Qd;this.fh=!1}Ua(y,Aj);Aj.prototype.pc=function(a,b,c){this.ra=b;this.T=c;this.oa=eb(a,"ChipSet");this.Ta()};Aj.prototype.Yb=function(a,b){b||this.reset();return!0}; +function vj(a){y.call(this,"ROM",a,vj);this.Bb=null;this.bk=a.addr;this.Ph=a.size;this.lm=a.alias;this.Ag=a.file;this.Ek=a.notify;if(this.Ag){a=this.Ag;var b=fa(this.Ag);"json"!=b&&"hex"!=b&&(a=ta()+"/api/v1/dump?file="+this.Ag+"&format=bytes&decimal=true");sa(a,!0,null,this,vj.prototype.Vn)}}Ua(y,vj);vj.prototype.pc=function(a,b,c,d){this.ra=b;this.T=c;this.da=d;wj(this)};vj.prototype.Yb=function(){this.Yh&&(this.da&&xj(this.da,this.bk,this.Ph,this.Yh),delete this.Yh);return!0};vj.prototype.Xb=function(){return!0}; +vj.prototype.Vn=function(a,b,c){if(c)this.Ja("Unable to load system ROM (error "+c+")");else{if("["==b.charAt(0)||"{"==b.charAt(0))try{var d=eval("("+b+")"),e=d.bytes,f=d.data;if(e)this.Bb=e;else if(f)for(this.Bb=Array(4*f.length),c=b=0;b<f.length;b++)this.Bb[c++]=f[b]&255,this.Bb[c++]=f[b]>>8&255,this.Bb[c++]=f[b]>>16&255,this.Bb[c++]=f[b]>>24&255;else this.Bb=d;this.Yh=d.symbols;if(!this.Bb.length){w("Empty ROM: "+a);return}if(1==this.Bb.length){w(this.Bb[0]);return}}catch(g){this.Ja("ROM data error: "+ +g.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.Bb=Array(a.length),d=0;d<a.length;d++)this.Bb[d]=parseInt(a[d],16);wj(this)}};function wj(a){if(!bb(a))if(!a.Ag)a.Ta();else if(a.Bb&&a.ra){if(a.Bb.length!=a.Ph)cb(a,"ROM size (0x"+p(a.Bb.length)+") does not match specified size (0x"+p(a.Ph)+")");else if(yj(a,a.bk)&&yj(a,a.lm)){if(a.Ek){var b=Wa(a.Ek,a.id);b&&("ega"==b.Ia&&zj(b,a.Bb,[8752,12640],8),b.Ta())}delete a.Bb}a.Ta()}} +function yj(a,b){if(null==b)return!0;if(kb(a.ra,b,a.Ph,!0)){for(var c=0;c<a.Bb.length;c++)pb(a.ra,b+c,a.Bb[c]);return!0}return!1}Fa(function(){for(var a=A(window.document,"pcjs","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new vj(d);Za(d,c)}});function Aj(a){y.call(this,"RAM",a,Aj);this.Ng=a.addr;this.Qd=a.size;this.zm=a.test;this.xm=!!this.Qd;this.fh=!1}Ua(y,Aj);Aj.prototype.pc=function(a,b,c){this.ra=b;this.T=c;this.oa=eb(a,"ChipSet");this.Ta()};Aj.prototype.Yb=function(a,b){b||this.reset();return!0}; Aj.prototype.Xb=function(){return!0};Aj.prototype.reset=function(){if(!this.Ng&&!this.xm&&this.oa){var a=1024*xi(this.oa);this.Qd&&a!=this.Qd&&(mb(this.ra,this.Ng,this.Qd),this.fh=!1);this.Qd=a}!this.fh&&this.Qd&&kb(this.ra,this.Ng,this.Qd)&&(this.fh=!0,this.status(Math.floor(this.Qd/1024)+"Kb"));if(this.fh){if(this.zm||qb(this.ra,1138,4660),this.oa&&(a=this.oa,a.sa)){var b=1048576>this.Ng?21:23,c=a.sa[b]|a.sa[b+1]<<8,c=c+(this.Qd>>10);a.sa[b]=c&255;a.sa[b+1]=c>>8;Bi(a)}}else w("No RAM allocated")}; Fa(function(){for(var a=A(window.document,"pcjs","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Aj(d);Za(d,c)}});function Bj(a){y.call(this,"Keyboard",a,Bj);this.Xh={};this.Mn=250;this.Nn=100;this.Ta()}Ua(y,Bj); -var P={" ":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,kp:65,lp:66,Vj:67,hm:68,E:69,pp:70,sp:71,Wj:72,vp:73,wp:74,xp:75,yp:76,zp:77,Th:78,Bp:79,Cp:80,Ep:81,Yj:82,Ip:83,Sp:84,Wp:85,Xp:86,Yp:87,$p:88,aq:89,bq:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,cq:97,dq:98,fq:99,gq:100,hq:101,iq:102,jq:103,kq:104,lq:105,mq:106,nq:107,oq:108,pq:109,qq:110, -sq:111,tq:112,uq:113,vq:114,wq:115,xq:116,yq:117,zq:118,Aq:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},Cj={16:2,17:8,18:32},Dj={tab:1009,esc:1027,"right-shift":3016,shift:1016,ctrl:1017,alt:1018,"caps-lock":1020,f1:1112,f2:1113,f3:1114,f4:1115,f5:1116,f6:1117,f7:1118,f8:1119,f9:1120,f10:1121,left:1037,up:1038,right:1039,down:1040,"ctrl-c":4003,"ctrl-break":4063,"ctrl-alt-del":4081},Q={esc:1,1:2,2:3,3:4,4:5,5:6,6:7,7:8,8:9,9:10,0:11,"-":12,"=":13,backspace:14,tab:15,q:16,w:17,e:18,r:19, -t:20,y:21,u:22,i:23,o:24,p:25,"[":26,"]":27,enter:28,ctrl:29,a:30,s:31,d:32,f:33,g:34,h:35,j:36,k:37,l:38,";":39,quote:40,"`":41,shift:42,"\\":43,z:44,x:45,c:46,v:47,b:48,n:49,m:50,",":51,".":52,"/":53,"right-shift":54,prtsc:55,alt:56,space:57,"caps-lock":58,f1:59,f2:60,f3:61,f4:62,f5:63,f6:64,f7:65,f8:66,f9:67,f10:68,"num-lock":69,"scroll-lock":70,"num-home":71,"num-up":72,"num-pgup":73,"num-sub":74,"num-left":75,"num-center":76,"num-right":77,"num-add":78,"num-end":79,"num-down":80,"num-pgdn":81, +var P={np:1,op: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,kp:65,lp:66,Vj:67,hm:68,E:69,rp:70,vp:71,Wj:72,xp:73,yp:74,zp:75,Ap:76,Bp:77,Th:78,Dp:79,Ep:80,Gp:81,Yj:82,Kp:83,Up:84,Yp:85,Zp:86,$p:87,bq:88,cq:89,dq:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,eq:97,fq:98,hq:99,iq:100,jq:101,kq:102,lq:103,mq:104,nq:105,oq:106,pq:107,qq:108, +rq:109,sq:110,uq:111,vq:112,wq:113,xq:114,yq:115,zq:116,Aq:117,Bq:118,Cq:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},Cj={16:2,17:8,18:32,20:256},Dj={tab:1009,esc:1027,"right-shift":3016,shift:1016,ctrl:1017,alt:1018,"caps-lock":1020,f1:1112,f2:1113,f3:1114,f4:1115,f5:1116,f6:1117,f7:1118,f8:1119,f9:1120,f10:1121,left:1037,up:1038,right:1039,down:1040,"ctrl-c":4003,"ctrl-break":4063,"ctrl-alt-del":4081},Q={esc:1,1:2,2:3,3:4,4:5,5:6,6:7,7:8,8:9,9:10,0:11,"-":12,"=":13,bs:14,tab:15,q:16,w:17, +e:18,r:19,t:20,y:21,u:22,i:23,o:24,p:25,"[":26,"]":27,enter:28,ctrl:29,a:30,s:31,d:32,f:33,g:34,h:35,j:36,k:37,l:38,";":39,quote:40,"`":41,shift:42,"\\":43,z:44,x:45,c:46,v:47,b:48,n:49,m:50,",":51,".":52,"/":53,"right-shift":54,prtsc:55,alt:56,space:57,"caps-lock":58,f1:59,f2:60,f3:61,f4:62,f5:63,f6:64,f7:65,f8:66,f9:67,f10:68,"num-lock":69,"scroll-lock":70,"num-home":71,"num-up":72,"num-pgup":73,"num-sub":74,"num-left":75,"num-center":76,"num-right":77,"num-add":78,"num-end":79,"num-down":80,"num-pgdn":81, "num-ins":82,"num-del":83,sysreq:84,pause:84,f11:87,f12:88,"num-enter":57372,"right-ctrl":57373,"num-div":57397,"num-mul":57399,"right-alt":57400,home:57415,up:57416,pgup:57417,left:57419,right:57421,end:57423,down:57424,pgdn:57425,ins:57426,del:57427,win:57435,"right-win":57436,menu:57437},R={};R[1027]=Q.esc;R[P["1"]]=Q["1"];R[P["!"]]=Q["1"]|512;R[P["2"]]=Q["2"];R[P["@"]]=Q["2"]|512;R[P["3"]]=Q["3"];R[P["#"]]=Q["3"]|512;R[P["4"]]=Q["4"];R[P.$]=Q["4"]|512;R[P["5"]]=Q["5"];R[P["%"]]=Q["5"]|512; -R[P["6"]]=Q["6"];R[P["^"]]=Q["6"]|512;R[P["7"]]=Q["7"];R[P["&"]]=Q["7"]|512;R[P["8"]]=Q["8"];R[P["*"]]=Q["8"]|512;R[P["9"]]=Q["9"];R[P["("]]=Q["9"]|512;R[P["0"]]=Q["0"];R[P[")"]]=Q["0"]|512;R[P["-"]]=Q["-"];R[P._]=Q["-"]|512;R[P["="]]=Q["="];R[P["+"]]=Q["="]|512;R[1008]=Q.backspace;R[1009]=Q.tab;R[113]=Q.q;R[81]=Q.q|512;R[119]=Q.w;R[87]=Q.w|512;R[101]=Q.e;R[69]=Q.e|512;R[114]=Q.r;R[82]=Q.r|512;R[116]=Q.t;R[84]=Q.t|512;R[121]=Q.y;R[89]=Q.y|512;R[117]=Q.u;R[85]=Q.u|512;R[105]=Q.i;R[73]=Q.i|512; -R[111]=Q.o;R[79]=Q.o|512;R[112]=Q.p;R[80]=Q.p|512;R[P["["]]=Q["["];R[P["{"]]=Q["["]|512;R[P["]"]]=Q["]"];R[P["}"]]=Q["]"]|512;R[13]=Q.enter;R[1017]=Q.ctrl;R[97]=Q.a;R[65]=Q.a|512;R[115]=Q.s;R[83]=Q.s|512;R[100]=Q.d;R[68]=Q.d|512;R[102]=Q.f;R[70]=Q.f|512;R[103]=Q.g;R[71]=Q.g|512;R[104]=Q.h;R[72]=Q.h|512;R[106]=Q.j;R[74]=Q.j|512;R[107]=Q.k;R[75]=Q.k|512;R[108]=Q.l;R[76]=Q.l|512;R[P[";"]]=Q[";"];R[P[":"]]=Q[";"]|512;R[P["'"]]=Q.quote;R[P['"']]=Q.quote|512;R[P["`"]]=Q["`"];R[P["~"]]=Q["`"]|512; -R[1016]=Q.shift;R[P["\\"]]=Q["\\"];R[P["\\"]]=Q["\\"]|512;R[122]=Q.z;R[90]=Q.z|512;R[120]=Q.x;R[88]=Q.x|512;R[99]=Q.c;R[67]=Q.c|512;R[118]=Q.v;R[86]=Q.v|512;R[98]=Q.b;R[66]=Q.b|512;R[110]=Q.n;R[78]=Q.n|512;R[109]=Q.m;R[77]=Q.m|512;R[P[","]]=Q[","];R[P["<"]]=Q[","]|512;R[P["."]]=Q["."];R[P[">"]]=Q["."]|512;R[P["/"]]=Q["/"];R[P["?"]]=Q["/"]|512;R[3016]=Q["right-shift"];R[1018]=Q.alt;R[P[" "]]=Q.space;R[1020]=Q["caps-lock"];R[1112]=Q.f1;R[1113]=Q.f2;R[1114]=Q.f3;R[1115]=Q.f4;R[1116]=Q.f5;R[1117]=Q.f6; -R[1118]=Q.f7;R[1119]=Q.f8;R[1120]=Q.f9;R[1121]=Q.f10;R[1036]=Q["num-home"];R[1038]=Q["num-up"];R[1033]=Q["num-pgup"];R[1037]=Q["num-left"];R[1039]=Q["num-right"];R[1035]=Q["num-end"];R[1040]=Q["num-down"];R[1034]=Q["num-pgdn"];R[1045]=Q["num-ins"];R[1046]=Q["num-del"];R[4003]=Q.c+2048;R[4063]=Q["scroll-lock"]+2048;R[4081]=Q["num-del"]+2048+2097152;k=Bj.prototype; -k.zb=function(a,b,c,d){var e=this;a=b+"-"+c;if(void 0===this.za[a])switch(c){case "kbd":return this.za[a]=d,d.onkeydown=function(a){return Ej(e,a,!0)},d.onkeypress=function(a){var b=!0;a=a||window.event;a=a.which||a.keyCode;8==a||9==a?b=!1:e.Bb&64?e.Bb&=-65:b=e.Bb&40?!1:!Fj(e,a);return b},d.onkeyup=function(a){return Ej(e,a,!1)},!0;default:if(void 0!==Dj[c]&&"button"==b)return this.za[a]=d,d.onclick=function(a,b,c){return function(){a.T&&a.T.Pd();return!Fj(a,c)}}(this,c,Dj[c]),!0;if(void 0!==Q[c])return this.za[a]= +R[P["6"]]=Q["6"];R[P["^"]]=Q["6"]|512;R[P["7"]]=Q["7"];R[P["&"]]=Q["7"]|512;R[P["8"]]=Q["8"];R[P["*"]]=Q["8"]|512;R[P["9"]]=Q["9"];R[P["("]]=Q["9"]|512;R[P["0"]]=Q["0"];R[P[")"]]=Q["0"]|512;R[P["-"]]=Q["-"];R[P._]=Q["-"]|512;R[P["="]]=Q["="];R[P["+"]]=Q["="]|512;R[1008]=Q.bs;R[1009]=Q.tab;R[113]=Q.q;R[81]=Q.q|512;R[119]=Q.w;R[87]=Q.w|512;R[101]=Q.e;R[69]=Q.e|512;R[114]=Q.r;R[82]=Q.r|512;R[116]=Q.t;R[84]=Q.t|512;R[121]=Q.y;R[89]=Q.y|512;R[117]=Q.u;R[85]=Q.u|512;R[105]=Q.i;R[73]=Q.i|512;R[111]=Q.o; +R[79]=Q.o|512;R[112]=Q.p;R[80]=Q.p|512;R[P["["]]=Q["["];R[P["{"]]=Q["["]|512;R[P["]"]]=Q["]"];R[P["}"]]=Q["]"]|512;R[13]=Q.enter;R[1017]=Q.ctrl;R[97]=Q.a;R[65]=Q.a|512;R[115]=Q.s;R[83]=Q.s|512;R[100]=Q.d;R[68]=Q.d|512;R[102]=Q.f;R[70]=Q.f|512;R[103]=Q.g;R[71]=Q.g|512;R[104]=Q.h;R[72]=Q.h|512;R[106]=Q.j;R[74]=Q.j|512;R[107]=Q.k;R[75]=Q.k|512;R[108]=Q.l;R[76]=Q.l|512;R[P[";"]]=Q[";"];R[P[":"]]=Q[";"]|512;R[P["'"]]=Q.quote;R[P['"']]=Q.quote|512;R[P["`"]]=Q["`"];R[P["~"]]=Q["`"]|512;R[1016]=Q.shift; +R[P["\\"]]=Q["\\"];R[P["\\"]]=Q["\\"]|512;R[122]=Q.z;R[90]=Q.z|512;R[120]=Q.x;R[88]=Q.x|512;R[99]=Q.c;R[67]=Q.c|512;R[118]=Q.v;R[86]=Q.v|512;R[98]=Q.b;R[66]=Q.b|512;R[110]=Q.n;R[78]=Q.n|512;R[109]=Q.m;R[77]=Q.m|512;R[P[","]]=Q[","];R[P["<"]]=Q[","]|512;R[P["."]]=Q["."];R[P[">"]]=Q["."]|512;R[P["/"]]=Q["/"];R[P["?"]]=Q["/"]|512;R[3016]=Q["right-shift"];R[1018]=Q.alt;R[P[" "]]=Q.space;R[1020]=Q["caps-lock"];R[1112]=Q.f1;R[1113]=Q.f2;R[1114]=Q.f3;R[1115]=Q.f4;R[1116]=Q.f5;R[1117]=Q.f6;R[1118]=Q.f7; +R[1119]=Q.f8;R[1120]=Q.f9;R[1121]=Q.f10;R[1036]=Q["num-home"];R[1038]=Q["num-up"];R[1033]=Q["num-pgup"];R[1037]=Q["num-left"];R[1039]=Q["num-right"];R[1035]=Q["num-end"];R[1040]=Q["num-down"];R[1034]=Q["num-pgdn"];R[1045]=Q["num-ins"];R[1046]=Q["num-del"];R[1122]=Q.f11;R[1123]=Q.f12;R[4003]=Q.c+2048;R[4063]=Q["scroll-lock"]+2048;R[4081]=Q["num-del"]+2048+2097152;k=Bj.prototype; +k.Ab=function(a,b,c,d){var e=this;a=b+"-"+c;if(void 0===this.za[a])switch(c){case "kbd":return this.za[a]=d,d.onkeydown=function(a){return Ej(e,a,!0)},d.onkeypress=function(a){var b=!0;a=a||window.event;a=a.which||a.keyCode;8==a||9==a?b=!1:e.vb&64?e.vb&=-65:b=e.vb&40?!1:!Fj(e,a);return b},d.onkeyup=function(a){return Ej(e,a,!1)},!0;default:if(void 0!==Dj[c]&&"button"==b)return this.za[a]=d,d.onclick=function(a,b,c){return function(){a.T&&a.T.Pd();return!Fj(a,c)}}(this,c,Dj[c]),!0;if(void 0!==Q[c])return this.za[a]= d,b=function(a,b,c){return function(){Gj(a,c)}}(this,c,Q[c]),c=function(a,b,c){return function(){Gj(a,c)}}(this,c,Q[c]|128),"ontouchstart"in window?(d.ontouchstart=b,d.ontouchend=c):(d.onmousedown=b,d.onmouseup=d.onmouseout=c),!0}return!1};k.pc=function(a,b,c,d){this.ra=b;this.T=c;this.da=d;this.oa=eb(a,"ChipSet")};k.Ta=function(){this.vk=(this.Hm=ya("iOS"))||ya("Android");this.Ra("mobile keyboard support: "+(this.vk?"true":"false"));return y.prototype.Ta.call(this)}; function nj(a){a.Ra("keyboard reset",Hj);a.xc=[170];a.oa&&qj(a.oa)}function ij(a,b,c){var d=!1;a.ui!==c&&(a.ui=a.yi=c);a.jh!==b&&(a.jh=b)&&!a.yi&&pj(a);a.jh&&a.yi&&(nj(a),a.yi=!1,d=!0);return d}function fj(a,b){var c=0;a.xc.length&&(c=a.xc[0],a.Ra("scan code 0x"+q(c)+" delivered"),b&&pj(a));return c}function pj(a,b){0<a.xc.length&&(b?a.xc=[]:(a.xc.shift(),0<a.xc.length&&a.oa&&qj(a.oa)))}k.Yb=function(a,b){return!b&&(this.reset(),a&&this.restore&&!this.restore(a))?!1:!0}; -k.Xb=function(a){return a&&this.save?this.save():!0};k.reset=function(){this.le();this.Bb=0;this.xc=[];if(this.sd)for(var a in this.sd)ba(a)||this.sd[a]&&clearTimeout(this.sd[a]);this.sd=[];this.Rl=this.Re=0};k.save=function(){var a=new gd(this);a.set(0,this.Qj());return a.data()};k.restore=function(a){return this.le(a[0])};k.le=function(a){var b=0;void 0===a&&(a=[]);this.ui=a[b++];this.jh=a[b];return!0};k.Qj=function(){var a=0,b=[];b[a++]=this.ui;b[a]=this.jh;return b}; +k.Xb=function(a){return a&&this.save?this.save():!0};k.reset=function(){this.le();this.vb=0;this.xc=[];if(this.sd)for(var a in this.sd)ba(a)||this.sd[a]&&clearTimeout(this.sd[a]);this.sd=[];this.Rl=this.Re=0};k.save=function(){var a=new gd(this);a.set(0,this.Qj());return a.data()};k.restore=function(a){return this.le(a[0])};k.le=function(a){var b=0;void 0===a&&(a=[]);this.ui=a[b++];this.jh=a[b];return!0};k.Qj=function(){var a=0,b=[];b[a++]=this.ui;b[a]=this.jh;return b}; function Gj(a,b){var c=b&127,d=c==b;if(a.xc)if(20>a.xc.length){if(!(!d&&!a.Xh[c]||d&&a.Xh[c])){a.Xh[c]=d;a.Ra("scan code 0x"+q(b)+" buffered");a.xc.push(b);1==a.xc.length&&a.oa&&qj(a.oa);for(var e in Q)if(Q[e]==c){(c=a.za["key-"+e])&&void 0!==d&&(c.style.color=d?"#ffffff":"#000000",c.style.backgroundColor=d?"#000000":"#ffffff");break}}}else 20==a.xc.length&&a.xc.push(255),a.Ra("scan code buffer overflow")}function Ij(a,b){var c=b?a.Nn:a.Mn;a.T&&a.T.ca.nd&&(c/=a.T.ca.nd);return c} -function Jj(a,b){!a.Re||void 0!==b&&b==a.Re||(clearTimeout(a.sd[a.Re]),Kj(a,a.Re,!1))}function Ej(a,b,c){var d,e=!c,f=b.keyCode,h=f;c&&(a.Rl=f);if(R[f+1E3]){var h=h+1E3,g=Cj[f]||0;if(g)2==b.location&&(g>>=1,h+=2E3),a.Bb&=~g,c&&(a.Bb|=g),20==f?d=Fj(a,h):e=!1;else if(9==f||27==f||8==f)8==f&&8==(a.Bb&40)&&(h=4063),d=c?!Fj(a,h):!1}else 91==f?(a.Bb&=-65,c&&(a.Bb|=64),e=!1,d=!0):b.altKey||b.ctrlKey?65<=f&&90>=f&&(h+=32):d=!0;e&&(a.Bb&=-65,a.vk||f!=a.Rl||Jj(a));void 0===d&&(d=!Kj(a,h,c));return d} +function Jj(a,b){!a.Re||void 0!==b&&b==a.Re||(clearTimeout(a.sd[a.Re]),Kj(a,a.Re,!1))}function Ej(a,b,c){var d,e=!c,f=b.keyCode,g=f;c&&(a.Rl=f);if(R[f+1E3]){var g=g+1E3,h=Cj[f]||0;if(h)2==b.location&&(h>>=1,g+=2E3),a.vb&=~h,c&&(a.vb|=h),20==f?d=Fj(a,g):e=!1;else if(8==f||9==f||27==f)8==f&&8==(a.vb&40)&&(g=4063),d=c?!Fj(a,g):!1}else 91==f?(a.vb&=-65,c&&(a.vb|=64),e=!1,d=!0):b.altKey||b.ctrlKey?65<=f&&90>=f&&(g+=32):d=!0;e&&(a.vb&=-65,a.vk||f!=a.Rl||Jj(a));void 0===d&&(d=!Kj(a,g,c));return d} function Fj(a,b,c){var d=!1;Jj(a,b);Kj(a,b,!0)&&(c?Kj(a,b,!1):(c=!1,a.sd[b]&&(clearTimeout(a.sd[b]),c=!0),c=Ij(a,c),a.sd[a.Re=b]=setTimeout(function(a){return function(){Kj(a,b,!1)}}(a),c)),d=!0);return d} -function Kj(a,b,c){var d=!1;c||(a.sd[b]=null,a.Re==b&&(a.Re=0));var e=R[b]||R[b+1E3];void 0===e&&1<=b&&26>=b&&(e=R[b+64]&255|2048);if(void 0!==e){14==e&&40==(a.Bb&40)&&(e=83);b=[];for(b.push(e&255|(c?0:128));e>>=8;){var d=0,f=e&255;2==f?a.Bb&259||(d=42):8==f?a.Bb&12||(d=29):32==f&&(a.Bb&48||(d=56));d&&(c?b.unshift(d):b.push(d|128))}for(c=0;c<b.length;c++)Gj(a,b[c]);d=!0}return d}k.Ra=function(a,b){this.da&&(null==b&&(b=tj),b==Hj&&(b|=tj),C(this.da,b)&&this.da.message(a))}; -Fa(function(){for(var a=A(window.document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Bj(d);Za(d,c)}}); +function Kj(a,b,c){var d=!1;c||(a.sd[b]=null,a.Re==b&&(a.Re=0));var e=R[b]||R[b+1E3];void 0===e&&1<=b&&26>=b&&(b+=64,e=R[b]&255|2048);if(void 0!==e){e==Q.bs&&40==(a.vb&40)&&(e=Q["num-del"]);d=65<=b&&90>=b||97<=b&&122>=b;b=[];for(b.push(e&255|(c?0:128));e>>=8;){var f=0,g=e&255;2==g?a.vb&3||a.vb&256&&d||(f=Q.shift):8==g?a.vb&12||(f=Q.ctrl):32==g&&(a.vb&48||(f=Q.alt));f&&(c?b.unshift(f):b.push(f|128))}for(c=0;c<b.length;c++)Gj(a,b[c]);d=!0}return d} +k.Ra=function(a,b){this.da&&(null==b&&(b=tj),b==Hj&&(b|=tj),C(this.da,b)&&this.da.message(a))};Fa(function(){for(var a=A(window.document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Bj(d);Za(d,c)}}); function S(a,b,c,d){y.call(this,"Video",a,S);this.Ia=a.model;this.Wc=0;"ega"==this.Ia&&(this.Zl=a.switches,this.Wc=a.memory||0);this.pd=a.mode;if(void 0===this.pd||void 0===Lj[this.pd])this.pd=Mj;this.Ah=a.charCols;this.Pi=a.charRows;if(void 0===this.Ah||void 0===this.Pi)this.Ah=Lj[this.pd][0],this.Pi=Lj[this.pd][1];this.zd=a.screenWidth;this.ie=a.screenHeight;this.ym=a.scale;this.wm=12<=Math.round(this.zd/this.Ah);this.Am=a.touchScreen;this.Jb=b;this.Xc=c;this.dm=d;this.Ua=this.Ob=0;this.Wd=[];this.vd= Array(16);this.vi=!1;var e=this;this.Jb&&(this.Jb.onfocus=function(){e.vi=!0},this.Jb.onblur=function(){e.vi=!1});if(a=a.fontROM)"json"!=fa(a)&&(a=ta()+"/api/v1/dump?file="+a+"&format=bytes"),sa(a,!0,null,this,this.Wn)}Ua(y,S); var Nj={2:{Si:15700,Ri:208,Gj:85,Hj:96},3:{Si:18432,Ri:364,Gj:85,Hj:96},4:{Si:21850,Ri:364,Gj:85,Hj:96}},Oj={6:[1,3,!0],7:[2,3,!0],8:[6,3,!0],9:[4,3,!0],10:[3,1,!0],11:[3,2,!0],0:[1,3,!1],1:[2,3,!1],2:[6,3,!1],3:[4,3,!1],4:[3,1,!1],5:[3,2,!1]},Mj=7,Lj=[,[40,25,1,0,3],,[80,25,1,0,3],[320,200,8,192],,[640,200,16,192]];Lj[Mj]=[80,25,1,0,1];Lj[13]=[320,200,16];Lj[14]=[640,200,16];Lj[15]=[640,350,16];Lj[16]=[640,350,16];Lj[0]=Lj[1];Lj[2]=Lj[3];Lj[5]=Lj[4];var Pj=Array(5);Pj[0]=[0,0,0,255]; Pj[1]=[127,192,127,255];Pj[2]=[127,192,127,255];Pj[3]=[127,255,127,255];Pj[4]=[127,255,127,255];var Qj=[0,1,2,2,2,2,2,2,0,3,4,4,4,4,4,4],U=Array(16);U[0]=[0,0,0,255];U[1]=[0,0,170,255];U[2]=[0,170,0,255];U[3]=[0,170,170,255];U[4]=[170,0,0,255];U[5]=[170,0,170,255];U[6]=[170,85,0,255];U[7]=[170,170,170,255];U[8]=[85,85,85,255];U[9]=[85,85,255,255];U[10]=[85,255,85,255];U[11]=[85,255,255,255];U[12]=[255,85,85,255];U[13]=[255,85,255,255];U[14]=[255,255,85,255];U[15]=[255,255,255,255]; var Rj=[2,4,6],Sj=[3,5,7],Tj=[0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63],Uj=[0,255,65280,65535,16711680,16711935,16776960,16777215,4278190080,4278190335,4278255360,4278255615,4294901760,4294902015,4294967040,4294967295],Vj=[0];Vj[128]=1;Vj[32768]=2;Vj[32896]=3;Vj[8388608]=4;Vj[8388736]=5;Vj[8421376]=6;Vj[8421504]=7;Vj[2147483648]=8;Vj[2147483776]=9;Vj[2147516416]=10;Vj[2147516544]=11;Vj[2155872256]=12;Vj[2155872384]=13;Vj[2155905024]=14;Vj[2155905152]=15; function Wj(a,b,c,d){if(void 0!==b&&(!c||c.length)){var e=Xj[b],f=a.ne||e[5];if(!c||6>c.length)c=[!1,0,null,null,0,Array(Yj)];this.da=a.da;this.type=e[0];this.port=e[1];this.ke=b;this.Ua=e[2];this.Ob=e[3];this.Wc=d||e[4];65536<=this.Wc&&720896<=this.Ua&&(this.Ob=Math.min(this.Wc>>2,32768));this.mc=c[0];this.Bc=c[1];this.cf=c[2];this.xf=c[3];this.oc=c[4]&255;this.rh=c[4]>>8&255;this.dc=c[5];this.Ii=Yj;this.Og=Zj;if(5==b){this.Ii=ak;this.Og=bk;b=c[6];void 0===b&&(b=[!1,0,Array(20),0,3==f?0:1,0,0,Array(5), -0,0,0,Array(9),0,[this.Ua,this.Ob,this.Wc],Array(this.Wc>>2),771,0,4294967295,0,4294967295,0,4294967295,0,0,0]);this.ld=b[0];this.Dd=b[1];this.Td=b[2];this.$h=ck;this.Rh=b[3];this.dg=b[4];this.ph=b[5];this.Fd=b[6];this.Gf=b[7];this.bi=dk;this.Ci=b[8];this.Di=b[9];this.Ed=b[10];this.xe=b[11];this.ai=ek;this.xb=b[12];d=b[13];"number"==typeof d&&(d=[this.Ua,this.Ob,d]);this.Ua=d[0];this.Ob=d[1];d=this.Wc>>2;if((this.fd=b[14])&&this.fd.length<d){for(var e=this.fd,h=0,g=Array(d),l=0;l<e.length-1;){for(var n= -e[l++],r=e[l++];n--;)g[h]=r,h+=2;h==d&&(h=1)}this.fd=g}this.Oh(b[15]);this.Cj=b[16];this.hb=b[17];this.od=b[18];this.nb=b[19];this.Dh=b[20];this.qe=b[21];this.Oe=b[22];this.Ki=b[23];this.Li=b[24]}f=Nj[f]||Nj[3];this.Mi=a.T.ca.Jd/f.Si|0;this.Qn=this.Mi*f.Gj/100|0;this.Mk=this.Mi*f.Ri;this.Tn=this.Mk*f.Hj/100|0;this.Ti=null==c[7]?0:c[7]}} +0,0,0,Array(9),0,[this.Ua,this.Ob,this.Wc],Array(this.Wc>>2),771,0,4294967295,0,4294967295,0,4294967295,0,0,0]);this.ld=b[0];this.Dd=b[1];this.Td=b[2];this.$h=ck;this.Rh=b[3];this.dg=b[4];this.ph=b[5];this.Fd=b[6];this.Gf=b[7];this.bi=dk;this.Ci=b[8];this.Di=b[9];this.Ed=b[10];this.xe=b[11];this.ai=ek;this.yb=b[12];d=b[13];"number"==typeof d&&(d=[this.Ua,this.Ob,d]);this.Ua=d[0];this.Ob=d[1];d=this.Wc>>2;if((this.fd=b[14])&&this.fd.length<d){for(var e=this.fd,g=0,h=Array(d),l=0;l<e.length-1;){for(var n= +e[l++],r=e[l++];n--;)h[g]=r,g+=2;g==d&&(g=1)}this.fd=h}this.Oh(b[15]);this.Cj=b[16];this.hb=b[17];this.od=b[18];this.nb=b[19];this.Dh=b[20];this.qe=b[21];this.Oe=b[22];this.Ki=b[23];this.Li=b[24]}f=Nj[f]||Nj[3];this.Mi=a.T.ca.Jd/f.Si|0;this.Qn=this.Mi*f.Gj/100|0;this.Mk=this.Mi*f.Ri;this.Tn=this.Mk*f.Hj/100|0;this.Ti=null==c[7]?0:c[7]}} var Yj=18,ak=25,Zj="HORZ_TOTAL HORZ_DISP HORZ_SYNC_POS HORZ_SYNC_WIDTH VERT_TOTAL VERT_TOTAL_ADJ VERT_DISP VERT_SYNC_POS INTERLACE_POS MAX_SCAN_LINE CURSOR_START CURSOR_END START_ADDR_HI START_ADDR_LO CURSOR_ADDR_HI CURSOR_ADDR_LO LIGHT_PEN_HI LIGHT_PEN_LO".split(" "),bk="HORZ_TOTAL HORZ_DISP_END HORZ_BLANK_START HORZ_BLANK_END HORZ_RETRACE_START HORZ_RETRACE_END VERT_TOTAL CRTC_OVERFLOW PRESET_ROW_SCAN MAX_SCAN_LINE CURSOR_START CURSOR_END START_ADDR_HI START_ADDR_LO CURSOR_ADDR_HI CURSOR_ADDR_LO LIGHT_PEN_HI LIGHT_PEN_LO VERT_DISP_END OFFSET UNDERLINE VERT_BLANK_START VERT_BLANK_END MODE_CTRL LONE_COMPARE".split(" "), ck="PAL00 PAL01 PAL02 PAL03 PAL04 PAL05 PAL06 PAL07 PAL08 PAL09 PAL0A PAL0B PAL0C PAL0D PAL0E PAL0F MODE OVRSCAN PLANES HORZPAN".split(" "),dk=["RESET","CLK","MAPMASK","CHARMAP","MODE"],ek="SRESET ESRESET COLRCMP DATAROT READMAP MODE MISC COLRDC BITMASK".split(" ");function fk(a){return this.sc(a)|this.sc(a+1)<<8}function gk(a,b){this.Dc(a,b&255);this.Dc(a+1,b>>8&255)} -var nk=[,,function(a){a+=this.offset;return(this.ia.xb=this.wa[a])>>this.ia.Cj&255},function(a){a+=this.offset;var b=a&-2;return(a&1?this.wa[b]>>8:this.wa[b])&255}];nk[16]=function(a){a+=this.offset;a=this.wa[a];for(var b=this.ia.Ki&this.ia.Li,c=0,d=128;d;)(a&b)==b&&(c|=d),b>>>=1,d>>=1;return c};nk[512]=function(a,b){var c=a+this.offset,d;d=this.wa[c]&~this.ia.hb|(b|b<<8|b<<16|b<<24)&this.ia.hb;d=d&this.ia.nb|this.ia.xb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)}; -nk[1024]=function(a,b){var c=a+this.offset;b=b>>this.ia.od|b<<8-this.ia.od&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ia.qe|this.ia.Oe;d=d&this.ia.hb|this.wa[c]&~this.ia.hb;d=d&this.ia.nb|this.ia.xb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)}; -nk[1536]=function(a,b){var c=a+this.offset;b=b>>this.ia.od|b<<8-this.ia.od&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ia.qe|this.ia.Oe;d&=this.ia.xb;d=d&this.ia.hb|this.wa[c]&~this.ia.hb;d=d&this.ia.nb|this.ia.xb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)}; -nk[2560]=function(a,b){var c=a+this.offset;b=b>>this.ia.od|b<<8-this.ia.od&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ia.qe|this.ia.Oe;d|=this.ia.xb;d=d&this.ia.hb|this.wa[c]&~this.ia.hb;d=d&this.ia.nb|this.ia.xb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)}; -nk[3584]=function(a,b){var c=a+this.offset;b=b>>this.ia.od|b<<8-this.ia.od&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ia.qe|this.ia.Oe;d^=this.ia.xb;d=d&this.ia.hb|this.wa[c]&~this.ia.hb;d=d&this.ia.nb|this.ia.xb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)};nk[768]=function(a,b){a+=this.offset;var c,d=a&-2;c=this.ia.hb&(d==a?16711935:4278255360);c=(b|b<<8|b<<16|b<<24)&c|this.wa[d]&~c;c=c&this.ia.nb|this.ia.xb&~this.ia.nb;this.wa[d]!=c&&(this.wa[d]=c,this.lb=!0)}; -nk[4096]=function(a){a+=this.offset;var b=this.wa[a]&~this.ia.hb|this.ia.xb&this.ia.hb;this.wa[a]!=b&&(this.wa[a]=b,this.lb=!0)};nk[8192]=function(a,b){var c=a+this.offset,d=Uj[b&15],d=d&this.ia.hb|this.wa[c]&~this.ia.hb,d=d&this.ia.nb|this.ia.xb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)};nk[24576]=function(a,b){var c=a+this.offset,d=Uj[b&15],d=d&this.ia.xb,d=d&this.ia.hb|this.wa[c]&~this.ia.hb,d=d&this.ia.nb|this.ia.xb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)}; -nk[40960]=function(a,b){var c=a+this.offset,d=Uj[b&15],d=d|this.ia.xb,d=d&this.ia.hb|this.wa[c]&~this.ia.hb,d=d&this.ia.nb|this.ia.xb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)};nk[57344]=function(a,b){var c=a+this.offset,d=Uj[b&15],d=d^this.ia.xb,d=d&this.ia.hb|this.wa[c]&~this.ia.hb,d=d&this.ia.nb|this.ia.xb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)}; -function ok(a){var b=[];if(void 0!==a.ke){b[0]=a.mc;b[1]=a.Bc;b[2]=a.cf;b[3]=a.xf;b[4]=a.oc|a.rh<<8;b[5]=a.dc;if(5==a.ke){var c=[];c[0]=a.ld;c[1]=a.Dd;c[2]=a.Td;c[3]=a.Rh;c[4]=a.dg;c[5]=a.ph;c[6]=a.Fd;c[7]=a.Gf;c[8]=a.Ci;c[9]=a.Di;c[10]=a.Ed;c[11]=a.xe;c[12]=a.xb;c[13]=[a.Ua,a.Ob,a.Wc];var d;a:if(d=a.fd){var e=0,f=[];if(void 0!==d[0])for(var h=0;2>h;h++)for(var g=h;g<d.length;){for(var l=d[g],n=g+2;n<d.length&&d[n]===l;)n+=2;f[e++]=n-g>>1;f[e++]=l;g=n}if(f.length<d.length){d=f;break a}}c[14]=d;c[15]= -a.xh;c[16]=a.Cj;c[17]=a.hb;c[18]=a.od;c[19]=a.nb;c[20]=a.Dh;c[21]=a.qe;c[22]=a.Oe;c[23]=a.Ki;c[24]=a.Li;b[6]=c}b[7]=a.Ti}return b}function pk(a,b,c,d,e){if(d){var f="",h,g=0;for(h=0;h<e.length;h++)g<e[h].length&&(g=e[h].length);g++;for(h=0;h<e.length;h++){f&&(f+="\n");var l=e[h],f=f+(b+"["+q(h)+"]: "+(l+" ".substr(0,g-l.length))+q(d[h])+(h===c?"*":""))}a.da.message(f)}else a.da.message(b+": "+q(c))} +var nk=[,,function(a){a+=this.offset;return(this.ia.yb=this.wa[a])>>this.ia.Cj&255},function(a){a+=this.offset;var b=a&-2;return(a&1?this.wa[b]>>8:this.wa[b])&255}];nk[16]=function(a){a+=this.offset;a=this.wa[a];for(var b=this.ia.Ki&this.ia.Li,c=0,d=128;d;)(a&b)==b&&(c|=d),b>>>=1,d>>=1;return c};nk[512]=function(a,b){var c=a+this.offset,d;d=this.wa[c]&~this.ia.hb|(b|b<<8|b<<16|b<<24)&this.ia.hb;d=d&this.ia.nb|this.ia.yb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)}; +nk[1024]=function(a,b){var c=a+this.offset;b=b>>this.ia.od|b<<8-this.ia.od&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ia.qe|this.ia.Oe;d=d&this.ia.hb|this.wa[c]&~this.ia.hb;d=d&this.ia.nb|this.ia.yb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)}; +nk[1536]=function(a,b){var c=a+this.offset;b=b>>this.ia.od|b<<8-this.ia.od&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ia.qe|this.ia.Oe;d&=this.ia.yb;d=d&this.ia.hb|this.wa[c]&~this.ia.hb;d=d&this.ia.nb|this.ia.yb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)}; +nk[2560]=function(a,b){var c=a+this.offset;b=b>>this.ia.od|b<<8-this.ia.od&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ia.qe|this.ia.Oe;d|=this.ia.yb;d=d&this.ia.hb|this.wa[c]&~this.ia.hb;d=d&this.ia.nb|this.ia.yb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)}; +nk[3584]=function(a,b){var c=a+this.offset;b=b>>this.ia.od|b<<8-this.ia.od&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ia.qe|this.ia.Oe;d^=this.ia.yb;d=d&this.ia.hb|this.wa[c]&~this.ia.hb;d=d&this.ia.nb|this.ia.yb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)};nk[768]=function(a,b){a+=this.offset;var c,d=a&-2;c=this.ia.hb&(d==a?16711935:4278255360);c=(b|b<<8|b<<16|b<<24)&c|this.wa[d]&~c;c=c&this.ia.nb|this.ia.yb&~this.ia.nb;this.wa[d]!=c&&(this.wa[d]=c,this.lb=!0)}; +nk[4096]=function(a){a+=this.offset;var b=this.wa[a]&~this.ia.hb|this.ia.yb&this.ia.hb;this.wa[a]!=b&&(this.wa[a]=b,this.lb=!0)};nk[8192]=function(a,b){var c=a+this.offset,d=Uj[b&15],d=d&this.ia.hb|this.wa[c]&~this.ia.hb,d=d&this.ia.nb|this.ia.yb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)};nk[24576]=function(a,b){var c=a+this.offset,d=Uj[b&15],d=d&this.ia.yb,d=d&this.ia.hb|this.wa[c]&~this.ia.hb,d=d&this.ia.nb|this.ia.yb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)}; +nk[40960]=function(a,b){var c=a+this.offset,d=Uj[b&15],d=d|this.ia.yb,d=d&this.ia.hb|this.wa[c]&~this.ia.hb,d=d&this.ia.nb|this.ia.yb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)};nk[57344]=function(a,b){var c=a+this.offset,d=Uj[b&15],d=d^this.ia.yb,d=d&this.ia.hb|this.wa[c]&~this.ia.hb,d=d&this.ia.nb|this.ia.yb&~this.ia.nb;this.wa[c]!=d&&(this.wa[c]=d,this.lb=!0)}; +function ok(a){var b=[];if(void 0!==a.ke){b[0]=a.mc;b[1]=a.Bc;b[2]=a.cf;b[3]=a.xf;b[4]=a.oc|a.rh<<8;b[5]=a.dc;if(5==a.ke){var c=[];c[0]=a.ld;c[1]=a.Dd;c[2]=a.Td;c[3]=a.Rh;c[4]=a.dg;c[5]=a.ph;c[6]=a.Fd;c[7]=a.Gf;c[8]=a.Ci;c[9]=a.Di;c[10]=a.Ed;c[11]=a.xe;c[12]=a.yb;c[13]=[a.Ua,a.Ob,a.Wc];var d;a:if(d=a.fd){var e=0,f=[];if(void 0!==d[0])for(var g=0;2>g;g++)for(var h=g;h<d.length;){for(var l=d[h],n=h+2;n<d.length&&d[n]===l;)n+=2;f[e++]=n-h>>1;f[e++]=l;h=n}if(f.length<d.length){d=f;break a}}c[14]=d;c[15]= +a.xh;c[16]=a.Cj;c[17]=a.hb;c[18]=a.od;c[19]=a.nb;c[20]=a.Dh;c[21]=a.qe;c[22]=a.Oe;c[23]=a.Ki;c[24]=a.Li;b[6]=c}b[7]=a.Ti}return b}function pk(a,b,c,d,e){if(d){var f="",g,h=0;for(g=0;g<e.length;g++)h<e[g].length&&(h=e[g].length);h++;for(g=0;g<e.length;g++){f&&(f+="\n");var l=e[g],f=f+(b+"["+q(g)+"]: "+(l+" ".substr(0,h-l.length))+q(d[g])+(g===c?"*":""))}a.da.message(f)}else a.da.message(b+": "+q(c))} Wj.prototype.Oh=function(a){if(null!=a&&a!=this.xh){var b=a&255,c=nk[b];c||b&1&&(c=nk[1]);var b=a&65280,d=nk[b];d||b&256&&(d=nk[256]);this.Lf||(this.Lf=[null,fk,null,gk]);this.Lf[0]=c;this.Lf[2]=d;this.xh=a}};var Xj=[,["MDA",948,720896,4096,0,3],,["CGA",980,753664,16384,0,2],,["EGA",980,753664,16384,65536,4]];k=S.prototype; k.pc=function(a,b,c,d){this.ra=b;this.T=c;this.da=d;tb(b,this,qk);zb(b,this,rk);"ega"==this.Ia&&(tb(b,this,sk),zb(b,this,tk));if(d){var e=this;Xc(this.T,16,this,this.Hn);oi(d,uk,function(a){if(e.Ha)if(a){var b=e.Ha;if(b.fd){a=ca(a);a=void 0!==a?a-b.Ua:b.Wo||0;0>a&&(a=0);for(var c="",d=0;8>d;d++){for(var n=p(b.Ua+a)+":",r=0;8>r&&a<b.fd.length;r++)var s=b.fd[a++],n=n+(" "+p(s));c&&(c+="\n");c+=n}c&&b.da.message(c);b.Wo=a}else b.da.message("no buffer")}else{e.da.message("BIOSMODE: "+q(e.Ld));b=e.Ha; -pk(b,"CRTC",b.oc,b.dc,b.Og);if(1==b.ke||3==b.ke)pk(b," MODEREG",b.Bc),pk(b," STATUS1",b.xf);3==b.ke&&pk(b," COLOR",b.cf);5==b.ke&&(b.da.message(" ATCDATA: "+b.ld),pk(b," ATC",b.Dd,b.Td,b.$h),pk(b," GRC",b.Ed,b.xe,b.ai),pk(b," SEQ",b.Fd,b.Gf,b.bi),pk(b," FEAT",b.ph),pk(b," MISC",b.dg),pk(b," STATUS0",b.Rh),pk(b," LATCHES",b.xb),b.da.message(" ACCESS: "+u(b.xh)),b.da.message("Use 'dump video buffer' to dump video memory"))}else e.da.message("no active video card")})}(this.ab=eb(a,"Keyboard"))&& -this.Jb&&this.ab.zb("input",this.dm?"textarea":"canvas","kbd",this.dm||this.Jb);this.Qg=9;(this.oa=eb(a,"ChipSet"))&&this.Zl&&(this.Qg=bi(this.Zl,this.Qg));this.ab&&this.Am&&vk(this)};k.Hn=function(a){this.da&&C(this.da,uk|Zc)&&($c(this.da,16,a),ad(this.T,a,function(a,c){return function(d){bd(a.da,16,d,E(a.T)-c)}}(this,E(this.T))));return!0};k.zb=function(a,b,c,d){var e=this;switch(c){case "refresh":return this.za[c]=d,d.onclick=function(){Mb(e,!0)},!0}return!1};k.Pd=function(){this.Jb&&this.Jb.focus()}; +pk(b,"CRTC",b.oc,b.dc,b.Og);if(1==b.ke||3==b.ke)pk(b," MODEREG",b.Bc),pk(b," STATUS1",b.xf);3==b.ke&&pk(b," COLOR",b.cf);5==b.ke&&(b.da.message(" ATCDATA: "+b.ld),pk(b," ATC",b.Dd,b.Td,b.$h),pk(b," GRC",b.Ed,b.xe,b.ai),pk(b," SEQ",b.Fd,b.Gf,b.bi),pk(b," FEAT",b.ph),pk(b," MISC",b.dg),pk(b," STATUS0",b.Rh),pk(b," LATCHES",b.yb),b.da.message(" ACCESS: "+u(b.xh)),b.da.message("Use 'dump video buffer' to dump video memory"))}else e.da.message("no active video card")})}(this.ab=eb(a,"Keyboard"))&& +this.Jb&&this.ab.Ab("input",this.dm?"textarea":"canvas","kbd",this.dm||this.Jb);this.Qg=9;(this.oa=eb(a,"ChipSet"))&&this.Zl&&(this.Qg=bi(this.Zl,this.Qg));this.ab&&this.Am&&vk(this)};k.Hn=function(a){this.da&&C(this.da,uk|Zc)&&($c(this.da,16,a),ad(this.T,a,function(a,c){return function(d){bd(a.da,16,d,E(a.T)-c)}}(this,E(this.T))));return!0};k.Ab=function(a,b,c,d){var e=this;switch(c){case "refresh":return this.za[c]=d,d.onclick=function(){Mb(e,!0)},!0}return!1};k.Pd=function(){this.Jb&&this.Jb.focus()}; function vk(a){var b=a.Jb;b&&!a.ti&&(b.addEventListener("touchstart",function(b){wk(a,b)},!1),b.addEventListener("touchmove",function(b){wk(a,b)},!0),b.addEventListener("touchend",function(){},!1),a.ti=!0)} function wk(a,b){a.vi&&b.preventDefault();var c=0,d=0,e=a.Jb;do isNaN(e.offsetLeft)||(c+=e.offsetLeft,d+=e.offsetTop);while(e=e.offsetParent);c=a.zd/a.Jb.offsetWidth*(b.targetTouches[0].pageX-c)/(a.zd/3)|0;d=a.ie/a.Jb.offsetHeight*(b.targetTouches[0].pageY-d)/(a.ie/3)|0;1!=d?d?Fj(a.ab,40,!0):Fj(a.ab,38,!0):1!=c&&(c?Fj(a.ab,39,!0):Fj(a.ab,37,!0))}k.Yb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Xb=function(a){return a&&this.save?this.save():!0}; k.reset=function(){var a=!0,b=0;this.oa&&(b=yi(this.oa));var c=!1;if(this.Ia)switch(this.Ia){case "ega":var c=!0,d=Oj[this.Qg];d&&(b=d[0]);b||(b=4);break;case "mda":b=3;break;default:b=2}this.ne!==b&&(this.ne=b,a=!0);this.Ha=null;this.Vc=this.hi=new Wj(this,1);this.Cb=this.$g=new Wj(this,3);c?(this.na=new Wj(this,5,null,this.Wc),xk(this)):this.na=new Wj;yk(this);this.Ld=null;this.pd=3==b?Mj:3;this.Ge=this.Nc=-1;this.Fe=0;zk(this,this.pd);if(this.Ha.Ua&&a){a=this.Ha.Ua+this.ii;for(b=this.Ha.Ua;b<a;b+= @@ -531,23 +531,23 @@ k.reset=function(){var a=!0,b=0;this.oa&&(b=yi(this.oa));var c=!1;if(this.Ia)swi k.restore=function(a){var b=a[2];this.ne=b[0];this.pd=b[1];this.Ld=b[2];this.Ha=null;this.Vc=this.hi=new Wj(this,1,a[0]);this.Cb=this.$g=new Wj(this,3,a[1]);this.na=new Wj(this,5,a[3],this.Wc);this.na.mc&&xk(this);yk(this);if(!Ak(this))return!1;Bk(this);return!0}; k.Wn=function(a,b,c){if(c)this.Ja("Unable to load font ROM image (error "+c+")");else{try{var d=eval("("+b+")");if(!d.length){w("Empty font ROM image: "+a);return}if(1==d.length){w(d[0]);return}if(8192==d.length)zj(this,d,[0,6144]);else{this.Ja("Unrecognized font data length ("+d.length+")");return}}catch(e){this.Ja("Font ROM data error: "+e.message);return}this.Ta()}}; function Ck(a,b){if(1==b)return a.vd[0]=U[0],a.vd[1]=U[7],a.vd;if(2==b){var c=a.Ha.cf;if(a.Ha===a.na){var d=a.na.Td[0],c=d&7;d&16&&(c|=8);18!=a.na.Td[1]&&(c|=32)}a.vd[0]=U[c&15];c=c&32?Sj:Rj;for(d=0;d<c.length;d++)a.vd[d+1]=U[c[d]];return a.vd}if(a.Cb===a.$g)return U;c=null!=a.na.Td[15]?a.na.Td:Tj;for(d=0;d<a.vd.length;d++){var e=c[d]||0;a.vd[d]=[(e&4?170:0)|(e&32?85:0),(e&2?170:0)|(e&16?85:0),(e&1?170:0)|(e&8?85:0),255]}return a.vd}function zj(a,b,c,d){a.Mg=b;a.Wh=c;a.Ie=d} -function yk(a){var b=!1;if(window&&a.Mg){var c=a.Ie?0:2048,d=a.Ie?a.Ie:9;Dk(a,1,a.Wh[0],c,d,14,a.Mg,Pj,Qj)&&(b=!0);c=Ck(a);d=a.Ie?a.Ie:8;Dk(a,3,a.Wh[1],0,d,8,a.Mg,c)&&(b=!0);a.Ie&&Dk(a,5,a.Wh[0],0,a.Ie,14,a.Mg,c)&&(b=!0)}return b}function Dk(a,b,c,d,e,f,h,g,l){var n=!1;Ek(a,b,c,d,e,f,h,g,l)&&(n=!0);a.wm&&Ek(a,b<<1,c,d,e,f,h,g,l)&&(n=!0);return n} -function Ek(a,b,c,d,e,f,h,g,l){var n=!1,r=b&1?0:1,s=a.Wd[b];s||(s={kc:e<<r,lc:f<<r,Ze:Array(g.length),$j:g.slice(),Ff:l,Uh:Array(g.length)});for(l=0;l<g.length;l++){var t=g[l],v=s.Ze[l]?s.$j[l]:[];if(t[0]!==v[0]||t[1]!==v[1]||t[2]!==v[2]){var n=s,v=l,B=r,D=c,W=d,ja=e,Ka=f,wb=h,lc=[0,0,0,0],Rb=window.document.createElement("canvas");Rb.width=n.kc<<4;Rb.height=n.lc<<4;for(var X=Rb.getContext("2d"),L=void 0,x=void 0,T=void 0,J=8>Ka||!W?Ka:8,xb=X.createImageData(n.kc,n.lc),L=0;256>L;L++){for(T=0;T<Ka;T++)for(var La= +function yk(a){var b=!1;if(window&&a.Mg){var c=a.Ie?0:2048,d=a.Ie?a.Ie:9;Dk(a,1,a.Wh[0],c,d,14,a.Mg,Pj,Qj)&&(b=!0);c=Ck(a);d=a.Ie?a.Ie:8;Dk(a,3,a.Wh[1],0,d,8,a.Mg,c)&&(b=!0);a.Ie&&Dk(a,5,a.Wh[0],0,a.Ie,14,a.Mg,c)&&(b=!0)}return b}function Dk(a,b,c,d,e,f,g,h,l){var n=!1;Ek(a,b,c,d,e,f,g,h,l)&&(n=!0);a.wm&&Ek(a,b<<1,c,d,e,f,g,h,l)&&(n=!0);return n} +function Ek(a,b,c,d,e,f,g,h,l){var n=!1,r=b&1?0:1,s=a.Wd[b];s||(s={kc:e<<r,lc:f<<r,Ze:Array(h.length),$j:h.slice(),Ff:l,Uh:Array(h.length)});for(l=0;l<h.length;l++){var t=h[l],v=s.Ze[l]?s.$j[l]:[];if(t[0]!==v[0]||t[1]!==v[1]||t[2]!==v[2]){var n=s,v=l,B=r,D=c,W=d,ja=e,Ka=f,wb=g,lc=[0,0,0,0],Rb=window.document.createElement("canvas");Rb.width=n.kc<<4;Rb.height=n.lc<<4;for(var X=Rb.getContext("2d"),L=void 0,x=void 0,T=void 0,J=8>Ka||!W?Ka:8,xb=X.createImageData(n.kc,n.lc),L=0;256>L;L++){for(T=0;T<Ka;T++)for(var La= n.Ff&&v&1&&T>=Ka-2,ga=wb[T<J?D+L*J+T:W+L*J+T-J],Y=0;Y<=B;Y++)for(x=0;x<ja;x++){var Xa=x<<B,Kc=(T<<B)+Y,mc=La||ga&128>>(8<=x&&176<=L&&223>=L?7:x)?t:lc;Fk(xb,Xa,Kc,mc);B&&Fk(xb,Xa+1,Kc,mc)}X.putImageData(xb,(L&15)*n.kc,(L>>4)*n.lc)}n.Ze[v]="#"+q(t[0])+q(t[1])+q(t[2]);n.$j[v]=t;n.Uh[v]=Rb;n=!0}}a.Wd[b]=s;return n}function Gk(a){0<a.Fe||0<=a.Nc?0>a.Ge&&(a.Ge=0):a.Ge=-1} function Bk(a){if(a.Sb){for(var b=10;15>=b;b++)if(null==a.Ha.dc[b])return;var c=a.Ha.dc[10],b=c&31,d=a.Ha.dc[11]&31,e=a.Ha.dc[9]&31,f=!1;a.Ha===a.na&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)Hk(a);else{c=a.Ha.dc[15]+((a.Ha.dc[14]&63)<<8);a.Nc!=c&&(Hk(a),a.Nc=c);d=d-b+1;if(a.gm!=b||a.ok!=d)a.gm=b,a.ok=d;a.he=e+1;Gk(a)}}} function Hk(a){if(0<=a.Nc){if(void 0!==a.ec){var b=a.ec[a.Nc];if(b&131072){var b=b&-131073,c=a.Nc%a.Db,d=Math.floor(a.Nc/a.Db);a.Sb&&a.Wd[a.Sb]&&(a.df&&Ik(a,c,d,b,a.df),Ik(a,c,d,b));a.ec[a.Nc]=b}}a.Nc=-1}} function Jk(a){var b;a=a.Ha;var c=a.xe[5];if(null!=c){b=2;var d=512,e=a.xe[3]&31;switch(c&3){case 0:if(e){d=1024;switch(e&24){case 8:d=1536;break;case 16:d=2560;break;case 24:d=3584}a.od=e&7}break;case 1:d=4096;break;case 2:switch(e&24){default:d=8192;break;case 8:d=24576;break;case 16:d=40960;break;case 24:d=57344}}c&8&&(b=16);c&16&&(b|=1,d|=256);b|=d}return b}k.Ve=function(a){var b=this.Ha;null!=a&&b&&a!=b.xh&&(b.Oh(a),this.ra.Oh(b.Ua,b.Ob,b.Lf))}; -function Ak(a,b){var c,d=a.Ld,e=a.Ha;if(e)if(1==e.ke)d=Mj;else if(5==e.ke){var d=null,f=e.Wc>>2,h=32768<f?32768:f,g=e.xe[6];if(null!=g){switch(g&12){case 0:e.Ua=655360;e.Ob=f;d=255;break;case 4:e.Ua=655360;e.Ob=f;d=3==a.ne?15:16;break;case 8:e.Ua=720896;e.Ob=h;d=Mj;break;case 12:e.Ua=753664,e.Ob=h,d=3==a.ne?2:3}c=e.Gf[1]&8;f=e.dc[6]|(e.dc[7]&1)<<8;255!=d&&(g&1?753664==e.Ua?d=c?7-d:6:350>f&&(d=c?13:14):c&&(d-=2));c=Jk(a)}}else e.Bc&8&&(e.Bc&2?(d=e.Bc&16?6:5,e.Bc&4||(d-=1)):(d=e.Bc&1?3:1,e.Bc&4&&(d-= +function Ak(a,b){var c,d=a.Ld,e=a.Ha;if(e)if(1==e.ke)d=Mj;else if(5==e.ke){var d=null,f=e.Wc>>2,g=32768<f?32768:f,h=e.xe[6];if(null!=h){switch(h&12){case 0:e.Ua=655360;e.Ob=f;d=255;break;case 4:e.Ua=655360;e.Ob=f;d=3==a.ne?15:16;break;case 8:e.Ua=720896;e.Ob=g;d=Mj;break;case 12:e.Ua=753664,e.Ob=g,d=3==a.ne?2:3}c=e.Gf[1]&8;f=e.dc[6]|(e.dc[7]&1)<<8;255!=d&&(h&1?753664==e.Ua?d=c?7-d:6:350>f&&(d=c?13:14):c&&(d-=2));c=Jk(a)}}else e.Bc&8&&(e.Bc&2?(d=e.Bc&16?6:5,e.Bc&4||(d-=1)):(d=e.Bc&1?3:1,e.Bc&4&&(d-= 1)));else a.Ld=null,null==d&&(d=a.pd);if(!zk(a,d,b))return!1;a.Ve(c);return!0} function zk(a,b,c){if(null!=b&&(b!=a.Ld||c)){a.mm=0;a.Ld=b;b=a.Ha||(b==Mj?a.Vc:a.Cb);if(b!=a.Ha||b.Ua!=a.Ua||b.Ob!=a.Ob){Hk(a);if(a.Ua){if(!mb(a.ra,a.Ua,a.Ob))return!1;a.Ha&&(a.Ha.mc=!1)}a.Ha=b;b.mc=!0;a.Ua=b.Ua;a.Ob=b.Ob;if(!kb(a.ra,b.Ua,b.Ob,!1,b===a.na?b:null))return!1}a.Sb=0;a.Db=a.Ah;a.rc=a.Pi;a.Ji=Lj[Mj][2];b=0;var d=Lj[a.Ld];d&&(a.Db=d[0],a.rc=d[1],a.Ji=d[2],b=d[3]||0,a.Sb=d[4],4==a.ne&&a.Ha===a.na&&3==a.Sb&&(7==a.na.dc[9]?a.rc=43:a.Sb=5));a.Jk=a.Db*a.rc;a.zh=a.Jk/a.Ji;a.ii=(a.zh<<1)+b;a.lk= b?a.ii+b>>1:0;13<=a.Ld&&(a.zh<<=1);a.Wd.length&&(a.Ad=Math.floor(a.zd/a.Db),a.Bd=Math.floor(a.ie/a.rc),a.Sb?(b=a.Wd[a.Sb],d=a.Wd[a.Sb<<1],a.ym&&80==a.Db?d&&a.Ad>=3*d.kc>>2&&(a.Sb<<=1,b=d):(d&&a.Ad>=d.kc&&(a.Sb<<=1,b=d),b&&(a.Ad=b.kc,a.Bd=b.lc)),a.Yf=a.Zf=0,b&&(a.Yf=a.Db*b.kc,a.Zf=a.rc*b.lc)):(a.Ad=a.Bd=1,a.Yf=a.Db,a.Zf=a.rc),a.th=a.Xc.createImageData(a.Yf,a.Zf),a.bf=window.document.createElement("canvas"),a.bf.width=a.Yf,a.bf.height=a.Zf,a.df=a.bf.getContext("2d"),a.Tj=a.Uj=0,a.ki=a.zd,a.li=a.ie, b=a.zd-a.Db*a.Ad,d=a.ie-a.rc*a.Bd,0<b&&(a.Tj=b>>1,a.ki-=b),0<d&&(a.Uj=d>>1,a.li-=d),b||d)&&(a.Xc.fillStyle=a.Jb.style.backgroundColor,a.Xc.fillRect(0,0,a.zd,a.ie));!1!==c?Mb(a,!0):Kk(a,!0)}return!0}function Fk(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b+0]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function Kk(a,b){var c;if(b){if(c=a.zh,void 0===a.ec||a.ec.length!=c)a.ec=Array(c)}else{if(void 0===a.ec)return;c=a.ec.length}for(var d=0;d<c;d++)a.ec[d]=-1;a.Fe=-1} -function Ik(a,b,c,d,e){var f=d&255,h=d>>8;d=h&15;var g=a.Wd[a.Sb];g.Ff&&(d=g.Ff[d]);var l=h>>4&15;g.Ff&&(l=g.Ff[l]);e?(b*=g.kc,c*=g.lc,e.fillStyle=g.Ze[l],e.fillRect(b,c,g.kc,g.lc)):(b=b*a.Ad+a.Tj,c=c*a.Bd+a.Uj,a.Xc.fillStyle=g.Ze[l],a.Xc.fillRect(b,c,a.Ad,a.Bd));h&256&&(l=(f&15)*g.kc,f=(f>>4)*g.lc,e?e.drawImage(g.Uh[d],l,f,g.kc,g.lc,b,c,g.kc,g.lc):a.Xc.drawImage(g.Uh[d],l,f,g.kc,g.lc,b,c,a.Ad,a.Bd));h&512&&(f=a.gm,h=a.ok,e?(a.he&&a.he!==g.lc&&(f=Math.floor(f*g.lc/a.he),h=Math.floor(h*g.lc/a.he)), -e.fillStyle=g.Ze[d],e.fillRect(b,c+f,g.kc,h)):(a.he&&a.he!==a.Bd&&(f=Math.floor(f*a.Bd/a.he),h=Math.floor(h*a.Bd/a.he)),a.Xc.fillStyle=g.Ze[d],a.Xc.fillRect(b,c+f,a.Ad,h)))} -function Mb(a,b){if(a.qa.Lb){var c=!1;a.Ha&&(a.Ha===a.na?a.na.Dd&32&&(c=!0):a.Ha.Bc&8&&(c=!0));if(c||b){if(b)Kk(a,!0);else if(void 0===a.ec)return;var d=!1;!(b||++a.mm&15)&&0<=a.Ge&&(a.Ge++,d=!0);var e=0,f=a.Jk,c=a.Ha.Ua,h=c+a.Ha.Ob,g=(a.Ha.dc[12]<<8)+a.Ha.dc[13];a.Sb&&(g<<=1);var c=c+g,l=a.ii;c+l>h&&(l=h-c,0>l&&(l=0));h=c+l;if(g=!b){for(var g=a.ra,n=!0,r=c>>g.rb;0<l&&r<g.Fa.length;)g.Fa[r].lb&&(g.Fa[r].lb=n=!1,g.Fa[r].tk=!0),l-=g.fc,r++;g=n}if(g){if(!d)return;if(!a.Fe){if(0>a.Nc)return;e=a.Nc;f= -e+1}}if(a.Sb){if(a.Wd[a.Sb]){d=0;g=a.Fe=0;l=1048575;a.Ha.Bc&32&&(g=32768,l&=~g,a.Ge&2||(l&=-65537));for(c+=e<<1;c<h&&e<f;)n=ob(a.ra,c),n|=65536,n&g&&(a.Fe++,n&=l),e==a.Nc&&(n|=a.Ge&1?131072:0),r=a.ec[e],r!=n&&(Ik(a,e%a.Db,Math.floor(e/a.Db),n,a.df),a.ec[e]=n,d++),c+=2,e++;d&&a.df&&a.Xc.drawImage(a.bf,0,0,a.Yf,a.Zf,a.Tj,a.Uj,a.ki,a.li);Gk(a)}}else if(a.lk){for(var f=h,s,t,e=c,h=a.Fe=0,d=a.Ji,g=16==d?65536:196608,l=16==d?1:2,n=Ck(a,l),v=r=0,B=a.Db,D=0,W=a.rc,ja=0;e<f;){s=ob(a.ra,e);t=a.ec[h];if(t=== -s)r+=d;else{a.ec[h]=s;s=s>>8|(s&255)<<8;t=g;var Ka=16;r<B&&(B=r);for(var wb=0;wb<d;wb++){var lc=(s&(t>>=l))>>(Ka-=l);Fk(a.th,r++,v,n[lc])}r>D&&(D=r);v<W&&(W=v);v>=ja&&(ja=v+1)}e+=2;h++;if(r>=a.Db){r=0;v+=2;if(v>a.rc)break;v==a.rc&&(v=1,e=c+a.lk)}}B<a.Db&&(a.df.putImageData(a.th,0,0,B,W,D-B,ja-W),a.Xc.drawImage(a.bf,0,0,a.Db,a.rc,0,0,a.zd,a.ie))}else{f=h;e=a.Fe=0;h=Ck(a);d=a.Ha.fd;l=g=0;n=a.Db;r=0;v=a.rc;for(B=0;c<f;){D=c++-a.Ua;D=d[D];W=a.ec[e];if(W===D)g+=8;else{a.ec[e]=D;g<n&&(n=g);for(W=0;8>W;W++)ja= -D&2155905152,0>ja&&(ja+=4294967296),ja=Vj[ja]||0,Fk(a.th,g++,l,h[ja]),D<<=1;g>r&&(r=g);l<v&&(v=l);l>=B&&(B=l+1)}e++;if(g>=a.Db&&(g=0,++l>a.rc))break}n<a.Db&&(a.df.putImageData(a.th,0,0,n,v,r-n,B-v),a.Xc.drawImage(a.bf,0,0,a.Db,a.rc,0,0,a.zd,a.ie))}}}}k.nn=function(a,b){return Lk(this,this.Vc,b)};k.Eo=function(a,b,c){a=this.Vc;a.rh=a.oc;a.oc=b&31;this.ea(a.port,b,c,"CRTC.INDX")};k.mn=function(a,b){return Mk(this,this.Vc,b)};k.Do=function(a,b,c){Nk(this,this.Vc,b,c)}; +function Ik(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.Wd[a.Sb];h.Ff&&(d=h.Ff[d]);var l=g>>4&15;h.Ff&&(l=h.Ff[l]);e?(b*=h.kc,c*=h.lc,e.fillStyle=h.Ze[l],e.fillRect(b,c,h.kc,h.lc)):(b=b*a.Ad+a.Tj,c=c*a.Bd+a.Uj,a.Xc.fillStyle=h.Ze[l],a.Xc.fillRect(b,c,a.Ad,a.Bd));g&256&&(l=(f&15)*h.kc,f=(f>>4)*h.lc,e?e.drawImage(h.Uh[d],l,f,h.kc,h.lc,b,c,h.kc,h.lc):a.Xc.drawImage(h.Uh[d],l,f,h.kc,h.lc,b,c,a.Ad,a.Bd));g&512&&(f=a.gm,g=a.ok,e?(a.he&&a.he!==h.lc&&(f=Math.floor(f*h.lc/a.he),g=Math.floor(g*h.lc/a.he)), +e.fillStyle=h.Ze[d],e.fillRect(b,c+f,h.kc,g)):(a.he&&a.he!==a.Bd&&(f=Math.floor(f*a.Bd/a.he),g=Math.floor(g*a.Bd/a.he)),a.Xc.fillStyle=h.Ze[d],a.Xc.fillRect(b,c+f,a.Ad,g)))} +function Mb(a,b){if(a.qa.Lb){var c=!1;a.Ha&&(a.Ha===a.na?a.na.Dd&32&&(c=!0):a.Ha.Bc&8&&(c=!0));if(c||b){if(b)Kk(a,!0);else if(void 0===a.ec)return;var d=!1;!(b||++a.mm&15)&&0<=a.Ge&&(a.Ge++,d=!0);var e=0,f=a.Jk,c=a.Ha.Ua,g=c+a.Ha.Ob,h=(a.Ha.dc[12]<<8)+a.Ha.dc[13];a.Sb&&(h<<=1);var c=c+h,l=a.ii;c+l>g&&(l=g-c,0>l&&(l=0));g=c+l;if(h=!b){for(var h=a.ra,n=!0,r=c>>h.rb;0<l&&r<h.Fa.length;)h.Fa[r].lb&&(h.Fa[r].lb=n=!1,h.Fa[r].tk=!0),l-=h.fc,r++;h=n}if(h){if(!d)return;if(!a.Fe){if(0>a.Nc)return;e=a.Nc;f= +e+1}}if(a.Sb){if(a.Wd[a.Sb]){d=0;h=a.Fe=0;l=1048575;a.Ha.Bc&32&&(h=32768,l&=~h,a.Ge&2||(l&=-65537));for(c+=e<<1;c<g&&e<f;)n=ob(a.ra,c),n|=65536,n&h&&(a.Fe++,n&=l),e==a.Nc&&(n|=a.Ge&1?131072:0),r=a.ec[e],r!=n&&(Ik(a,e%a.Db,Math.floor(e/a.Db),n,a.df),a.ec[e]=n,d++),c+=2,e++;d&&a.df&&a.Xc.drawImage(a.bf,0,0,a.Yf,a.Zf,a.Tj,a.Uj,a.ki,a.li);Gk(a)}}else if(a.lk){for(var f=g,s,t,e=c,g=a.Fe=0,d=a.Ji,h=16==d?65536:196608,l=16==d?1:2,n=Ck(a,l),v=r=0,B=a.Db,D=0,W=a.rc,ja=0;e<f;){s=ob(a.ra,e);t=a.ec[g];if(t=== +s)r+=d;else{a.ec[g]=s;s=s>>8|(s&255)<<8;t=h;var Ka=16;r<B&&(B=r);for(var wb=0;wb<d;wb++){var lc=(s&(t>>=l))>>(Ka-=l);Fk(a.th,r++,v,n[lc])}r>D&&(D=r);v<W&&(W=v);v>=ja&&(ja=v+1)}e+=2;g++;if(r>=a.Db){r=0;v+=2;if(v>a.rc)break;v==a.rc&&(v=1,e=c+a.lk)}}B<a.Db&&(a.df.putImageData(a.th,0,0,B,W,D-B,ja-W),a.Xc.drawImage(a.bf,0,0,a.Db,a.rc,0,0,a.zd,a.ie))}else{f=g;e=a.Fe=0;g=Ck(a);d=a.Ha.fd;l=h=0;n=a.Db;r=0;v=a.rc;for(B=0;c<f;){D=c++-a.Ua;D=d[D];W=a.ec[e];if(W===D)h+=8;else{a.ec[e]=D;h<n&&(n=h);for(W=0;8>W;W++)ja= +D&2155905152,0>ja&&(ja+=4294967296),ja=Vj[ja]||0,Fk(a.th,h++,l,g[ja]),D<<=1;h>r&&(r=h);l<v&&(v=l);l>=B&&(B=l+1)}e++;if(h>=a.Db&&(h=0,++l>a.rc))break}n<a.Db&&(a.df.putImageData(a.th,0,0,n,v,r-n,B-v),a.Xc.drawImage(a.bf,0,0,a.Db,a.rc,0,0,a.zd,a.ie))}}}}k.nn=function(a,b){return Lk(this,this.Vc,b)};k.Eo=function(a,b,c){a=this.Vc;a.rh=a.oc;a.oc=b&31;this.ea(a.port,b,c,"CRTC.INDX")};k.mn=function(a,b){return Mk(this,this.Vc,b)};k.Do=function(a,b,c){Nk(this,this.Vc,b,c)}; k.on=function(a,b){return Ok(this,this.Vc,b)};k.Fo=function(a,b,c){a=this.Vc;this.ea(a.port+4,b,c,"MODE");a.Bc=b;Ak(this,!1)};k.pn=function(a,b){return Pk(this,this.Vc,b)};k.Ql=function(a,b,c){this.na.ph=this.na.ph&-4|b&3;this.ea(a,b,c,"FEAT")};k.Fk=function(a,b){var c=this.na.ld?this.na.Td[this.na.Dd&31]:this.na.Dd;this.ea(960,null,b,"ATC."+(this.na.ld?this.na.$h[this.na.Dd&31]:"INDX"),c);this.na.ld=!this.na.ld;return c}; k.Pl=function(a,b,c){var d=this.na.Dd&32;if(this.na.ld){var e=this.na.Dd&31;if(16<=e||!d)this.ea(a,b,c,"ATC."+this.na.$h[e]),this.na.Td[e]=b;this.na.ld=!1}else this.na.Dd=b,this.ea(a,b,c,"ATC.INDX"),this.na.ld=!0,b&32&&!d&&yk(this)&&Mb(this,!0)};k.zn=function(a,b){var c=3-((this.na.dg&12)>>2),c=this.na.Rh&-17|(this.Qg&1<<c)<<4-c;this.na.Rh=c;this.ea(962,null,b,"STATUS0",c);return c};k.Ho=function(a,b,c){this.na.dg=b;xk(this);this.ea(962,b,c,"MISC")}; k.yn=function(a,b){var c=this.na.Fd;this.ea(964,null,b,"SEQ.INDX",c);return c};k.Oo=function(a,b,c){this.na.Fd=b;this.ea(964,b,c,"SEQ.INDX")};k.xn=function(a,b){var c=this.na.Gf[this.na.Fd];this.ea(965,null,b,"SEQ"+this.na.bi[this.na.Fd],c);return c};k.No=function(a,b,c){this.ea(965,b,c,"SEQ."+this.na.bi[this.na.Fd]);this.na.Gf[this.na.Fd]=b;2==this.na.Fd&&(this.na.hb=Uj[b&15])};k.en=function(a,b){var c=this.na.Ci;this.ea(972,null,b,"GRC1",c);return c}; @@ -560,8 +560,8 @@ var qk={948:S.prototype.nn,949:S.prototype.mn,952:S.prototype.on,954:S.prototype 960:S.prototype.Pl,961:S.prototype.Pl,962:S.prototype.Ho,964:S.prototype.Oo,965:S.prototype.No,970:S.prototype.zo,972:S.prototype.yo,974:S.prototype.xo,975:S.prototype.wo,986:S.prototype.Ql}; Fa(function(){for(var a=A(window.document,"pcjs","video"),b=0;b<a.length;b++){var c=a[b],d=z(c),e=window.document.createElement("canvas");if(void 0===e){c.innerHTML="<br/>Missing <canvas> support; try a new web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.setAttribute("contenteditable","true");e.setAttribute("autocapitalize","off");e.setAttribute("autocorrect","off");e.style.backgroundColor=d.screenColor; e.style.height=c.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(e.style.height=(c.clientWidth*d.screenHeight/d.screenWidth|0)+"px",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.appendChild(e);var f=e.getContext("2d"),d=new S(d,e,f);Za(d,c)}}); -function Qk(a){this.Bk=a.adapter;switch(this.Bk){case 1:this.Ij=1016;this.og=4;break;case 2:this.Ij=760;this.og=3;break;default:w("Unrecognized serial adapter #"+this.Bk);return}this.fe=null;y.call(this,"SerialPort",a,Qk);var b=a.binding,c;a=Rk;b&&(void 0===c&&(c="Panel"),(c=Ya(c,this.id))&&(b=c.za[b])&&this.zb(null,null,a,b))}Ua(y,Qk);var Rk="buffer";k=Qk.prototype;k.ck=function(a,b){return a==this.sh?(this.Gk=b,this):null}; -k.zb=function(a,b,c,d){var e=this;switch(c){case Rk:return this.za[c]=this.fe=d,d.onkeydown=function(a){a=a||window.event;var b=a.keyCode;8===b&&(a.preventDefault&&a.preventDefault(),Sk(e,[b]))},d.onkeypress=function(a){a=a||window.event;Sk(e,[a.which||a.keyCode])},!0}return!1};k.pc=function(a,b,c,d){this.ra=b;this.T=c;this.da=d;this.oa=eb(a,"ChipSet");tb(b,this,Tk,this.Ij);zb(b,this,Uk,this.Ij);this.Ta()}; +function Qk(a){this.Bk=a.adapter;switch(this.Bk){case 1:this.Ij=1016;this.og=4;break;case 2:this.Ij=760;this.og=3;break;default:w("Unrecognized serial adapter #"+this.Bk);return}this.fe=null;y.call(this,"SerialPort",a,Qk);var b=a.binding,c;a=Rk;b&&(void 0===c&&(c="Panel"),(c=Ya(c,this.id))&&(b=c.za[b])&&this.Ab(null,null,a,b))}Ua(y,Qk);var Rk="buffer";k=Qk.prototype;k.ck=function(a,b){return a==this.sh?(this.Gk=b,this):null}; +k.Ab=function(a,b,c,d){var e=this;switch(c){case Rk:return this.za[c]=this.fe=d,d.onkeydown=function(a){a=a||window.event;var b=a.keyCode;8===b&&(a.preventDefault&&a.preventDefault(),Sk(e,[b]))},d.onkeypress=function(a){a=a||window.event;Sk(e,[a.which||a.keyCode])},!0}return!1};k.pc=function(a,b,c,d){this.ra=b;this.T=c;this.da=d;this.oa=eb(a,"ChipSet");tb(b,this,Tk,this.Ij);zb(b,this,Uk,this.Ij);this.Ta()}; k.Yb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Xb=function(a){return a&&this.save?this.save():!0};k.reset=function(){this.le()};k.save=function(){var a=new gd(this),b=0,c=[];c[b++]=this.fi;c[b++]=this.gk;c[b++]=this.Ye;c[b++]=this.Rg;c[b++]=this.be;c[b++]=this.Uc;c[b++]=this.hd;c[b++]=this.Hc;c[b++]=this.ek;c[b]=this.If;a.set(0,c);return a.data()};k.restore=function(a){return this.le(a[0])}; k.le=function(a){var b=0;void 0===a&&(a=[0,0,384,0,1,0,0,96,48,[]]);this.fi=a[b++];this.gk=a[b++];this.Ye=a[b++];this.Rg=a[b++];this.be=a[b++];this.Uc=a[b++];this.hd=a[b++];this.Hc=a[b++];this.ek=a[b++];this.If=a[b];return!0};function Sk(a,b){a.If=a.If.concat(b);Vk(a)}function Vk(a){0<a.If.length&&!(a.Hc&1)&&(a.fi=a.If.shift(),a.Hc|=1);var b=-1;a.Hc&1&&a.Rg&1&&(b=4);0<=b?(a.be&=-8,a.be|=b,a.oa&&a.og&&$i(a.oa,a.og)):(a.be|=1,a.oa&&a.og&&aj(a.oa,a.og))} k.wn=function(a,b){var c=this.Uc&128?this.Ye&255:this.fi;this.ea(a,null,b,this.Uc&128?"DLL":"RBR",c);this.Hc&=-2;Vk(this);return c};k.gn=function(a,b){var c=this.Uc&128?this.Ye>>8:this.Rg;this.ea(a,null,b,this.Uc&128?"DLM":"IER",c);return c};k.hn=function(a,b){var c=this.be;this.ea(a,null,b,"IIR",c);return c};k.jn=function(a,b){var c=this.Uc;this.ea(a,null,b,"LCR",c);return c};k.ln=function(a,b){var c=this.hd;this.ea(a,null,b,"MCR",c);return c}; @@ -572,35 +572,35 @@ var Tk={0:Qk.prototype.wn,1:Qk.prototype.gn,2:Qk.prototype.hn,3:Qk.prototype.jn, k.pc=function(a,b,c,d){this.Ka=a;this.ra=b;this.T=c;this.da=d};k.Yb=function(a,b){if(!b){if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;if(this.Lj&&!this.Uf){for(var c=null;(c=eb(this.Ka,this.Lj,c))&&(!c.ck||!(this.Uf=c.ck(this.Ei,this))););if(this.Uf){if(c=eb(this.Ka,"Video"))this.Jb=c.Jb}else w(this.id+": "+this.Lj+" "+this.Ei+" unavailable")}this.mc?Wk(this,this.Jb):Xk(this.Jb)}return!0};k.Xb=function(a){return a&&this.save?this.save():!0};k.reset=function(){this.le()}; k.save=function(){var a=new gd(this);a.set(0,this.Qj());return a.data()};k.restore=function(a){return this.le(a[0])};k.le=function(a){var b=0;void 0===a&&(a=[!1,-1,-1,0,0,!1,!1,0]);this.mc=a[b++];this.Fg=a[b++];this.Gg=a[b++];this.Af=a[b++];this.Bf=a[b++];this.gh=a[b++];this.hh=a[b++];this.hd=a[b];return!0};k.Qj=function(){var a=0,b=[];b[a++]=this.mc;b[a++]=this.Fg;b[a++]=this.Gg;b[a++]=this.Af;b[a++]=this.Bf;b[a++]=this.gh;b[a++]=this.hh;b[a]=this.hd;return b}; function Wk(a,b){b&&(a.ti||(b.addEventListener("mousemove",function(b){if(a.mc&&a.T&&a.T.qa.Mb){if(0>a.Fg||0>a.Gg)a.Fg=b.clientX,a.Gg=b.clientY;a.Af=b.clientX-a.Fg;a.Bf=b.clientY-a.Gg;(a.Af||a.Bf)&&$k(a,null,b.clientX,b.clientY);a.Fg=b.clientX;a.Gg=b.clientY}},!1),b.addEventListener("mousedown",function(b){al(a,b.button,!0)},!1),b.addEventListener("mouseup",function(b){al(a,b.button,!1)},!1),a.ti=!0),b.style.cursor="none")}function Xk(a){a&&(a.style.cursor="auto")} -function al(a,b,c){if(a.mc&&a.T&&a.T.qa.Mb)switch(b){case 0:a.gh!=c&&(a.gh=c,$k(a,"mouse button1 "+(c?"dn":"up")));break;case 2:a.hh!=c&&(a.hh=c,$k(a,"mouse button2 "+(c?"dn":"up")))}}function $k(a,b,c,d){var e=64|(a.gh?32:0)|(a.hh?16:0)|(a.Bf&192)>>4|(a.Af&192)>>6,f=a.Af&63,h=a.Bf&63;a.Ra((b?b+": ":"")+(void 0!==d?"mouse ("+c+","+d+"): ":"")+"serial packet ["+q(e)+","+q(f)+","+q(h)+"]");Sk(a.Uf,[e,f,h]);a.Af=a.Bf=0}k.Ra=function(a){this.da&&C(this.da,bl)&&this.da.message(a)}; +function al(a,b,c){if(a.mc&&a.T&&a.T.qa.Mb)switch(b){case 0:a.gh!=c&&(a.gh=c,$k(a,"mouse button1 "+(c?"dn":"up")));break;case 2:a.hh!=c&&(a.hh=c,$k(a,"mouse button2 "+(c?"dn":"up")))}}function $k(a,b,c,d){var e=64|(a.gh?32:0)|(a.hh?16:0)|(a.Bf&192)>>4|(a.Af&192)>>6,f=a.Af&63,g=a.Bf&63;a.Ra((b?b+": ":"")+(void 0!==d?"mouse ("+c+","+d+"): ":"")+"serial packet ["+q(e)+","+q(f)+","+q(g)+"]");Sk(a.Uf,[e,f,g]);a.Af=a.Bf=0}k.Ra=function(a){this.da&&C(this.da,bl)&&this.da.message(a)}; Fa(function(){for(var a=A(window.document,"pcjs","mouse"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Zk(d);Za(d,c)}});function cl(a,b,c){y.call(this,"Disk",{id:a.Dk+".disk"+dl++},cl);this.ia=a;this.Ka=a.Ka;this.da=a.da;this.Qa=b;this.mode=c;this.Nd=b.name;this.Rb=b.Rb;this.Tb=b.Tb;this.ac=b.ac;this.Kb=b.Kb;this.hf=b.hf;this.kh=this.Cd=!1;this.create();this.we=[];this.Ig=[];this.Rd=null;this.Ik=0;this.zi=!1;this.Ta()}var dl=0;Ua(y,cl);k=cl.prototype;k.pc=function(a,b,c,d){this.da=d}; k.Yb=function(a,b){b||!this.kh||this.Cd||(this.Ta(!1),this.load(this.Nd,this.wf,this.vm,this));return!0};k.vm=function(){this.Ta(!0)}; k.Xb=function(a,b){if(this.Cd){var c,d=0;if(this.zi&&!ua("Disk writes are still in progress, shut down anyway?"))return!1;for(;c=el(this,!1);)if(d=c[0]){this.ia.Ja('Unable to save "'+this.Nd+'" (error '+d+")");break}b&&this.Cd&&(c="action=close&volume="+this.wf,c+="&machine="+this.ia.kf(),c+="&user="+this.ia.je(),sa(ta()+"/api/v1/disk?"+c,!0),this.Cd=!1);!d&&a&&this.ia.Ja(this.Nd+" saved")}return!0}; k.create=function(){this.pb=[];if("preload"!=this.mode){for(var a=Array(this.Rb),b=0;b<a.length;b++){for(var c=Array(this.Tb),d=0;d<c.length;d++){for(var e=Array(this.ac),f=1;f<=e.length;f++)e[f-1]=fl(null,b,d,f,this.Kb,"local"==this.mode?0:null);c[d]=e}a[b]=c}this.pb=a}this.eh=0}; k.load=function(a,b,c,d){var e=b;this.qh||(this.Nd=a,this.wf=b,this.qh=c,this.om=d||this.ia,0>b.indexOf("/api/v1/dump")&&(a=fa(b),"json"==a?e=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(a="action=open&volume="+b+("&mode="+this.mode),a+="&chs="+this.Rb+":"+this.Tb+":"+this.ac+":"+this.Kb,a+="&machine="+this.ia.kf(),a+="&user="+this.ia.je(),e=ta()+"/api/v1/disk?"+a,this.kh=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)? (c="disk",d="&mbhd=0"):-1!==b.indexOf("/",b.length-1)&&(c="dir"),e=ta()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.hf?"":d)+"&format=json")),sa(e,!0,null,this,this.sm,b))}; -k.sm=function(a,b,c,d){var e=null;this.jf=!1;var f=0>c&&this.Ka&&!this.Ka.qa.Lb;if(this.kh)c?this.ia.Ja('Unable to connect to disk "'+d+'" (error '+c+": "+b+")",f):(this.Cd=!0,e=this);else if(c)this.ia.Ja('Unable to load disk "'+this.Nd+'" (error '+c+")",f);else try{if(0<ea(a,!0).toLowerCase().indexOf("-readonly"))this.jf=!0;else{var h=b.indexOf("\n");0<h&&1024>h&&0<b.substring(0,h).indexOf("write-protected")&&(this.jf=!0)}var g;g="<"==b.substr(0,1)?["Missing disk image: "+this.Nd]:0>b.indexOf("0x")&& -'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");if(g.length)if(1==g.length)w(g[0]);else{for(b=a=0;b<g.length;b++)for(c=0;c<g[b].length;c++)for(d=0;d<g[b][c].length;d++){var l=g[b][c][d];if(l){var n=l.length;void 0===n&&(n=l.length=512);var n=n>>2,r=l.pattern;void 0===r&&(r=l.pattern=0);var s=l.data;if(void 0===s){var t=l.bytes;if(void 0!==t&&t.length){for(var f=n<<2,v=t.length;v<f;v++)t[v]=r;this.fill(l,t,0)}else s=[],r=l.pattern=r|r<<8| -r<<16|r<<24,l.data=s;delete l.bytes}fl(l,b,c);for(f=0;f<s.length;f++)a=a+s[f]&4294967295}}this.pb=g;this.eh=a;e=this}else w("Empty disk image: "+this.Nd)}catch(B){w("Disk image error: "+B.message)}this.qh&&(this.qh.call(this.om,this.Qa,e,this.Nd,this.wf),this.qh=null)};function fl(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Em=b;a.Gm=c;a.$c=a.Ic=0;a.lb=!1;return a} -k.Un=function(a,b,c,d){a=!1;if(!c){var e=d[0],f=d[1],h=d[2],g=d[3];a=d[4];b=JSON.parse(b);for(var l=0;g--;){var n=this.seek(e,f,h,!0);if(!n)break;this.fill(n,b,l);l+=n.length;h++}}(d=d[5])&&d(c,a)};function gl(a,b,c,d,e,f){if(a.Cd){var h;h="action=read&volume="+a.wf;h+="&chs="+a.Rb+":"+a.Tb+":"+a.ac+":"+a.Kb;h=h+("&addr="+b+":"+c+":"+d+":"+e)+("&machine="+a.ia.kf());h+="&user="+a.ia.je();sa(ta()+"/api/v1/disk?"+h,!0,null,a,a.Un,[b,c,d,e,!0,f])}else f&&f(-1,!1)} +k.sm=function(a,b,c,d){var e=null;this.jf=!1;var f=0>c&&this.Ka&&!this.Ka.qa.Lb;if(this.kh)c?this.ia.Ja('Unable to connect to disk "'+d+'" (error '+c+": "+b+")",f):(this.Cd=!0,e=this);else if(c)this.ia.Ja('Unable to load disk "'+this.Nd+'" (error '+c+")",f);else try{if(0<ea(a,!0).toLowerCase().indexOf("-readonly"))this.jf=!0;else{var g=b.indexOf("\n");0<g&&1024>g&&0<b.substring(0,g).indexOf("write-protected")&&(this.jf=!0)}var h;h="<"==b.substr(0,1)?["Missing disk image: "+this.Nd]:0>b.indexOf("0x")&& +'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");if(h.length)if(1==h.length)w(h[0]);else{for(b=a=0;b<h.length;b++)for(c=0;c<h[b].length;c++)for(d=0;d<h[b][c].length;d++){var l=h[b][c][d];if(l){var n=l.length;void 0===n&&(n=l.length=512);var n=n>>2,r=l.pattern;void 0===r&&(r=l.pattern=0);var s=l.data;if(void 0===s){var t=l.bytes;if(void 0!==t&&t.length){for(var f=n<<2,v=t.length;v<f;v++)t[v]=r;this.fill(l,t,0)}else s=[],r=l.pattern=r|r<<8| +r<<16|r<<24,l.data=s;delete l.bytes}fl(l,b,c);for(f=0;f<s.length;f++)a=a+s[f]&4294967295}}this.pb=h;this.eh=a;e=this}else w("Empty disk image: "+this.Nd)}catch(B){w("Disk image error: "+B.message)}this.qh&&(this.qh.call(this.om,this.Qa,e,this.Nd,this.wf),this.qh=null)};function fl(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Em=b;a.Gm=c;a.$c=a.Ic=0;a.lb=!1;return a} +k.Un=function(a,b,c,d){a=!1;if(!c){var e=d[0],f=d[1],g=d[2],h=d[3];a=d[4];b=JSON.parse(b);for(var l=0;h--;){var n=this.seek(e,f,g,!0);if(!n)break;this.fill(n,b,l);l+=n.length;g++}}(d=d[5])&&d(c,a)};function gl(a,b,c,d,e,f){if(a.Cd){var g;g="action=read&volume="+a.wf;g+="&chs="+a.Rb+":"+a.Tb+":"+a.ac+":"+a.Kb;g=g+("&addr="+b+":"+c+":"+d+":"+e)+("&machine="+a.ia.kf());g+="&user="+a.ia.je();sa(ta()+"/api/v1/disk?"+g,!0,null,a,a.Un,[b,c,d,e,!0,f])}else f&&f(-1,!1)} function hl(a,b,c){b.lb=!0;var d=a.we.indexOf(b);0<=d&&(a.we.splice(d,1),a.Ig.splice(d,1));a.we.push(b);a.Ig.push(oa());c&&il(a)}function il(a){if(a.we.length){var b=a.Ig[0]+2E3;a.Rd&&a.Ik<b&&(clearTimeout(a.Rd),a.Rd=null);if(!a.Rd){var c=oa(),b=b-c;0>b&&(b=0);2E3<b&&(b=2E3);a.Rd=setTimeout(function(){el(a,!0)},b);a.Ik=c+b}}else a.Rd&&(clearTimeout(a.Rd),a.Rd=null)} -function el(a,b){b&&(a.Rd=null);var c=a.we[0];if(c){for(var d=c.Em,e=c.Gm,c=c.sector,f=0,h=[],g=c-1;g<a.pb[d][e].length;g++){var l=a.pb[d][e][g];if(!l.lb)break;var n=a.we.indexOf(l);a.we.splice(n,1);a.Ig.splice(n,1);h=h.concat(jl(l));l.lb=!1;f++}a.Cd?(g={},a.zi=!0,g.action="write",g.volume=a.wf,g.chs=a.Rb+":"+a.Tb+":"+a.ac+":"+a.Kb,g.addr=d+":"+e+":"+c+":"+f,g.machine=a.ia.kf(),g.user=a.ia.je(),g.data=JSON.stringify(h),d=sa(ta()+"/api/v1/disk",b,g,a,a.Zn,[d,e,c,f,b])):d=!1;return b||d}return!1} -k.Zn=function(a,b,c,d){a=d[0];b=d[1];var e=d[2],f=d[3];d=d[4];this.zi=!1;if(0<=a&&a<this.pb.length&&0<=b&&b<this.pb[a].length)for(e-=1;0<f--&&0<=e&&e<this.pb[a][b].length;e++){var h=this.pb[a][b][e];c?hl(this,h,!1):h.lb||(h.$c=h.Ic=0)}d&&il(this)};k.info=function(){return this.pb.length?[this.pb.length,this.pb[0].length,this.pb[0][0].length,this.pb[0][0][0].length]:[0,0,0,0]}; +function el(a,b){b&&(a.Rd=null);var c=a.we[0];if(c){for(var d=c.Em,e=c.Gm,c=c.sector,f=0,g=[],h=c-1;h<a.pb[d][e].length;h++){var l=a.pb[d][e][h];if(!l.lb)break;var n=a.we.indexOf(l);a.we.splice(n,1);a.Ig.splice(n,1);g=g.concat(jl(l));l.lb=!1;f++}a.Cd?(h={},a.zi=!0,h.action="write",h.volume=a.wf,h.chs=a.Rb+":"+a.Tb+":"+a.ac+":"+a.Kb,h.addr=d+":"+e+":"+c+":"+f,h.machine=a.ia.kf(),h.user=a.ia.je(),h.data=JSON.stringify(g),d=sa(ta()+"/api/v1/disk",b,h,a,a.Zn,[d,e,c,f,b])):d=!1;return b||d}return!1} +k.Zn=function(a,b,c,d){a=d[0];b=d[1];var e=d[2],f=d[3];d=d[4];this.zi=!1;if(0<=a&&a<this.pb.length&&0<=b&&b<this.pb[a].length)for(e-=1;0<f--&&0<=e&&e<this.pb[a][b].length;e++){var g=this.pb[a][b][e];c?hl(this,g,!1):g.lb||(g.$c=g.Ic=0)}d&&il(this)};k.info=function(){return this.pb.length?[this.pb.length,this.pb[0].length,this.pb[0][0].length,this.pb[0][0][0].length]:[0,0,0,0]}; function kl(a){a=JSON.stringify(a.pb);a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");return a=a.replace(/(sector|length|data|pattern):/gm,'"$1":')} -k.seek=function(a,b,c,d,e){var f=null,h=this.Qa,g=this.pb[a];if(g){var l=g[b];if(!l&&h.Nf&&b<h.Tb)for(l=g[b]=Array(h.ce),g=0;g<l.length;g++)l[g]=fl(null,a,b,g+1,h.bb,0);if(l){for(g=0;g<l.length;g++)if(l[g]&&l[g].sector==c){f=l[g];if(null===f.pattern)if(d)f.pattern=0;else if(e){for(d=1;++g<l.length;)null===l[g].pattern&&d++;gl(this,a,b,c,d,function(a,b){a&&(f=null);e(f,b)});return null}break}!f&&h.Nf&&9==h.Wa&&(f=l[g]=fl(null,a,b,h.Wa,h.bb,0))}}e&&e(f,!1);return f}; -k.fill=function(a,b,c){for(var d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e};function jl(a){var b=a.length,c=Array(b),d=0,b=b>>2,e=a.data;a=a.pattern;for(var f=0;f<b;f++){var h=f<e.length?e[f]:a;c[d++]=h&255;c[d++]=h>>8&255;c[d++]=h>>16&255;c[d++]=h>>24&255}return c}function ll(a,b){var c=-1;if(b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c} -k.write=function(a,b,c){if(this.jf)return!1;if(b<a.length){if(c!=ll(a,b)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var h=d.length;h<=f;h++)d[h]=e;a.Ic?f<a.$c?(a.Ic+=a.$c-f,a.$c=f):f>=a.$c+a.Ic&&(a.Ic+=f-(a.$c+a.Ic)+1):(a.$c=f,a.Ic=1);d[f]=d[f]&~(255<<b)|c<<b;this.Cd&&hl(this,a,!0)}return!0}return null}; -k.save=function(){var a=0,b=[];b[a++]=[this.wf,this.eh];if(!this.Cd&&!this.jf)for(var c=this.pb,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var h=c[d][e][f];if(h&&h.Ic){for(var g=[],l=0,n=h.$c,r=h.$c+h.Ic;n<r;)g[l++]=h.data[n++];b[a++]=[d,e,f,h.$c,g]}}return b}; -k.restore=function(a){var b=0,c="unsupported restore format";if(this.pb.length&&a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&e[1]!=this.eh&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.eh+")",b=-1);for(;d<a.length&&0<=b;){var f=0,h=a[d++],g=h[f++],l=h[f++],n=h[f++];if(g>=this.pb.length||l>=this.pb[g].length||n>=this.pb[g][l].length){c="sector "+g+":"+l+":"+n+" out of range ("+b+" changes applied)";b=-1;break}if(this.jf){c="unable to modify write-protected disk";b=-1;break}e= -h[f++];f=h[f++];h=e+f.length;if(g=this.pb[g][l][n]){for(l=g.data.length;l<e;)g.data[l++]=g.pattern;l=0;g.$c=e;for(g.Ic=f.length;e<h;)g.data[e++]=f[l++];b++}}}0>b&&this.ia.Ja("unable to restore disk '"+this.Nd+": "+c);return b};k.Ra=function(a){this.da&&C(this.da,ml)&&this.da.message(a)}; +k.seek=function(a,b,c,d,e){var f=null,g=this.Qa,h=this.pb[a];if(h){var l=h[b];if(!l&&g.Nf&&b<g.Tb)for(l=h[b]=Array(g.ce),h=0;h<l.length;h++)l[h]=fl(null,a,b,h+1,g.bb,0);if(l){for(h=0;h<l.length;h++)if(l[h]&&l[h].sector==c){f=l[h];if(null===f.pattern)if(d)f.pattern=0;else if(e){for(d=1;++h<l.length;)null===l[h].pattern&&d++;gl(this,a,b,c,d,function(a,b){a&&(f=null);e(f,b)});return null}break}!f&&g.Nf&&9==g.Wa&&(f=l[h]=fl(null,a,b,g.Wa,g.bb,0))}}e&&e(f,!1);return f}; +k.fill=function(a,b,c){for(var d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e};function jl(a){var b=a.length,c=Array(b),d=0,b=b>>2,e=a.data;a=a.pattern;for(var f=0;f<b;f++){var g=f<e.length?e[f]:a;c[d++]=g&255;c[d++]=g>>8&255;c[d++]=g>>16&255;c[d++]=g>>24&255}return c}function ll(a,b){var c=-1;if(b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c} +k.write=function(a,b,c){if(this.jf)return!1;if(b<a.length){if(c!=ll(a,b)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Ic?f<a.$c?(a.Ic+=a.$c-f,a.$c=f):f>=a.$c+a.Ic&&(a.Ic+=f-(a.$c+a.Ic)+1):(a.$c=f,a.Ic=1);d[f]=d[f]&~(255<<b)|c<<b;this.Cd&&hl(this,a,!0)}return!0}return null}; +k.save=function(){var a=0,b=[];b[a++]=[this.wf,this.eh];if(!this.Cd&&!this.jf)for(var c=this.pb,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Ic){for(var h=[],l=0,n=g.$c,r=g.$c+g.Ic;n<r;)h[l++]=g.data[n++];b[a++]=[d,e,f,g.$c,h]}}return b}; +k.restore=function(a){var b=0,c="unsupported restore format";if(this.pb.length&&a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&e[1]!=this.eh&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.eh+")",b=-1);for(;d<a.length&&0<=b;){var f=0,g=a[d++],h=g[f++],l=g[f++],n=g[f++];if(h>=this.pb.length||l>=this.pb[h].length||n>=this.pb[h][l].length){c="sector "+h+":"+l+":"+n+" out of range ("+b+" changes applied)";b=-1;break}if(this.jf){c="unable to modify write-protected disk";b=-1;break}e= +g[f++];f=g[f++];g=e+f.length;if(h=this.pb[h][l][n]){for(l=h.data.length;l<e;)h.data[l++]=h.pattern;l=0;h.$c=e;for(h.Ic=f.length;e<g;)h.data[e++]=f[l++];b++}}}0>b&&this.ia.Ja("unable to restore disk '"+this.Nd+": "+c);return b};k.Ra=function(a){this.da&&C(this.da,ml)&&this.da.message(a)}; function nl(a){y.call(this,"FDC",a,nl);this.dmaRead=this.ni;this.dmaWrite=this.oi;this.dmaFormat=this.pm;this.Qe=null;if(a.autoMount&&(this.Qe=a.autoMount,"string"==typeof this.Qe))try{this.Qe=eval("("+a.autoMount+")")}catch(b){w("FDC auto-mount error: "+b.message+" ("+a.autoMount+")"),this.Qe=null}this.uc=[]}Ua(y,nl);m={};aa={}; -var ol={3:{yd:3,ee:0,name:aa.Np},4:{yd:2,ee:1,name:aa.Lp},5:{yd:9,ee:7,name:aa.Zp},6:{yd:9,ee:7,name:aa.Fp},7:{yd:2,ee:0,name:aa.Hp},8:{yd:1,ee:2,name:aa.Mp},10:{yd:2,ee:7,name:aa.Gp},13:{yd:6,ee:7,name:aa.qp},15:{yd:3,ee:0,name:aa.Kp}};k=nl.prototype; -k.zb=function(a,b,c,d){switch(c){case "listDisks":return this.za[c]=d,a=window.document.createElement("option"),a.value="?",a.innerHTML="User-defined URL...",d.appendChild(a),d.onchange=function(a,b){return function(){var c=a.za.descDisk;if(c){var d=b.options[b.selectedIndex];if(d){var l={};if(d=d.getAttribute("data-value"))try{l=eval("({"+d+"})")}catch(n){w("FDC option error: "+(n.message||n))}d=l.desc;void 0===d&&(d="");l=l.href;void 0!==l&&(d='<a href="'+l+'" target="_blank">'+d+"</a>");c.innerHTML= +var ol={3:{yd:3,ee:0,name:aa.Pp},4:{yd:2,ee:1,name:aa.Np},5:{yd:9,ee:7,name:aa.aq},6:{yd:9,ee:7,name:aa.Hp},7:{yd:2,ee:0,name:aa.Jp},8:{yd:1,ee:2,name:aa.Op},10:{yd:2,ee:7,name:aa.Ip},13:{yd:6,ee:7,name:aa.sp},15:{yd:3,ee:0,name:aa.Mp}};k=nl.prototype; +k.Ab=function(a,b,c,d){switch(c){case "listDisks":return this.za[c]=d,a=window.document.createElement("option"),a.value="?",a.innerHTML="User-defined URL...",d.appendChild(a),d.onchange=function(a,b){return function(){var c=a.za.descDisk;if(c){var d=b.options[b.selectedIndex];if(d){var l={};if(d=d.getAttribute("data-value"))try{l=eval("({"+d+"})")}catch(n){w("FDC option error: "+(n.message||n))}d=l.desc;void 0===d&&(d="");l=l.href;void 0!==l&&(d='<a href="'+l+'" target="_blank">'+d+"</a>");c.innerHTML= d}}}}(this,d),!0;case "descDisk":case "listDrives":return this.za[c]=d,d.onchange=function(a,b){return function(){var c=parseInt(b.value,10);isNaN(c)||pl(a,c)}}(this,d),!0;case "loadDrive":return this.za[c]=d,d.onclick=function(a){return function(){var b,c=a.za.listDisks,d=a.za.listDrives;if(c&&d&&!isNaN(b=parseInt(d.value,10))&&0<=b&&b<a.Ea.length)if(d=c.value){c=c.options[c.selectedIndex].text;if("?"==d){d=window.prompt("Enter the URL of a disk image to load.","");if(!d)return;c=ea(d);a.fa("Attempting to load "+ d+' as "'+c+'"')}for(;ql(a,b,c,d,!1)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){for(var l=a,n=d,r=void 0,r=0;r<l.uc.length;r++)if(l.uc[r][1]==n){l.uc.splice(r,1);break}rl(a,b,!1,!0)}}else rl(a,b);else a.Ja("Nothing to load")}}(this),!0}return!1};k.pc=function(a,b,c,d){this.ra=b;this.T=c;this.da=d;this.Ka=a;this.oa=eb(a,"ChipSet");this.Gd();tb(b,this,sl);zb(b,this,tl);Xc(c,19,this,this.Hi);this.Mf()||this.Ta()}; k.Yb=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.Ka.xi){this.uc=[];for(var c=0;c<this.Ea.length;c++)rl(this,c,!0);this.Mf(!0)}}else if(!this.restore(a))return!1;if(c=this.za.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.innerHTML="";for(var d=0;d<this.Qi;d++){var e=window.document.createElement("option");e.value=d;e.innerHTML=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.Qi&&(c.value="0",pl(this,0))}}return!0}; k.Xb=function(a){return a&&this.save?this.save():!0};k.reset=function(){this.Gd()};k.save=function(){var a=new gd(this);a.set(0,this.Nj());return a.data()};k.restore=function(a){return this.Gd(a[0])}; -k.Gd=function(a){var b=0,c,d=!0;void 0===a&&(a=[0,0,128,Array(9),0,0,0,[]]);this.fb=a[b++];b++;this.Da=a[b++];this.cc=a[b++];this.ob=a[b++];this.cb=a[b++];this.vf=a[b++];var e=a[b++];c=a[b++];null!=c&&(this.uc=c);void 0===this.Ea&&(this.Qi=4,this.oa&&(this.Qi=Ei(this.oa)),this.Ea=Array(4));for(c=0;c<this.Ea.length;c++){var f=this.Ea[c];if(void 0===f){var f=this.Ea[c]={},h;if(this.oa)a:{h=this.oa;if(c<Ei(h)){if(!h.Vd){h=360;break a}if(c<h.Vd.length){h=h.Vd[c];break a}}h=0}else h=0;switch(h){case 160:case 180:f.Tb= +k.Gd=function(a){var b=0,c,d=!0;void 0===a&&(a=[0,0,128,Array(9),0,0,0,[]]);this.fb=a[b++];b++;this.Da=a[b++];this.cc=a[b++];this.ob=a[b++];this.cb=a[b++];this.vf=a[b++];var e=a[b++];c=a[b++];null!=c&&(this.uc=c);void 0===this.Ea&&(this.Qi=4,this.oa&&(this.Qi=Ei(this.oa)),this.Ea=Array(4));for(c=0;c<this.Ea.length;c++){var f=this.Ea[c];if(void 0===f){var f=this.Ea[c]={},g;if(this.oa)a:{g=this.oa;if(c<Ei(g)){if(!g.Vd){g=360;break a}if(c<g.Vd.length){g=g.Vd[c];break a}}g=0}else g=0;switch(g){case 160:case 180:f.Tb= 1;default:f.Rb=40;f.ac=9;break;case 720:f.Rb=80;f.ac=9;break;case 1200:f.Rb=80;f.ac=15;break;case 1440:f.Rb=80,f.ac=18}}this.Fi(f,c,e[c])||(d=!1)}this.se=a[b++]||0;this.Tl=a[b]||0;return d};k.Nj=function(){var a=0,b=[];b[a++]=this.fb;b[a++]=0;b[a++]=this.Da;b[a++]=this.cc;b[a++]=this.ob;b[a++]=this.cb;b[a++]=this.vf;b[a++]=this.Pj();for(var c=a++,d=0;d<this.Ea.length;d++){var e=this.Ea[d];e.ya&&ul(this,e.Te,e.ya)}b[c]=this.uc;b[a++]=this.se;b[a]=this.Tl;return b}; k.Fi=function(a,b,c){var d=0,e=!0;a.fb=b;void 0===c&&(c=[192,!0,0,2,0]);"boolean"==typeof c[1]&&(c[1]=["Floppy Drive",a.Rb||40,a.Tb||c[3],a.ac||9,a.Kb||512,c[1],a.Bh,a.mg,a.ng]);a.Ya=c[d++];var f=c[d++];a.name=f[0];a.Rb=f[1];a.Tb=f[2];a.ac=f[3];a.Kb=f[4];a.hf=f[5];(a.Bh=f[6])?(a.mg=f[7],a.ng=f[8]):(a.Bh=a.Rb,a.mg=a.Tb,a.ng=a.ac);a.Na=c[d++];a.ae=c[d++];a.kb=c[d++];a.ae=100<=a.ae?a.ae-100:a.ae-a.kb;a.Wa=c[d++];a.ce=c[d++];a.bb=c[d++];a.$a=c[d++];a.Sa=null;a.ya||(a.Te="");f=c[d++];f===vl?(f=c[d++], c=c[d],ql(this,b,f,c,!0)?a.ya&&wl(this,f,c,a.ya):this.Ta(!1)):void 0!==f&&a.ya&&0>a.ya.restore(f)&&(e=!1);e&&a.ya&&void 0!==a.$a&&(a.Sa=a.ya.seek(a.kb,a.Na,a.Wa));return e};k.Pj=function(){for(var a=0,b=[],c=0;c<this.Ea.length;c++)b[a++]=this.Oj(this.Ea[c]);return b};k.Oj=function(a){var b=0,c=[];c[b++]=a.Ya;c[b++]=[a.name,a.Rb,a.Tb,a.ac,a.Kb,a.hf,a.Bh,a.mg,a.ng];c[b++]=a.Na;c[b++]=a.ae+100;c[b++]=a.kb;c[b++]=a.Wa;c[b++]=a.ce;c[b++]=a.bb;c[b++]=a.$a;c[b++]=vl;c[b++]=a.Yl;c[b]=a.Te;return c}; @@ -611,25 +611,25 @@ k.um=function(a,b,c,d){var e;a.Mc=!1;b&&(e=b.info(),b&&e[0]>a.Rb||e[1]>a.Tb)&&(t function pl(a,b){if(0<=b&&b<a.Ea.length){var c=a.Ea[b],d=a.za.listDisks,e=a.za.listDrives;if(d&&e&&(e=parseInt(e.value,10),!isNaN(e)&&e==b)){for(e=0;e<d.options.length;e++)if(d.options[e].value==c.Te){d.selectedIndex!=e&&(d.selectedIndex=e);break}e==d.options.length&&(d.selectedIndex=0)}}}function rl(a,b,c,d){var e=a.Ea[b];e.ya&&(ul(a,e.Te,e.ya),e.Yl="",e.Te="",e.ya=null,a.se|=128,d||a.Ja("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||pl(a,b))} function wl(a,b,c,d){var e;for(e=0;e<a.uc.length;e++)if(a.uc[e][1]==c){d.restore(a.uc[e][2]);return}a.uc[e]=[b,c,[]]}function ul(a,b,c){var d;for(d=0;d<a.uc.length;d++)if(a.uc[d][1]==b){a.uc[d][2]=c.save();break}}k.vo=function(a,b,c){this.ea(a,b,c,"OUTPUT");b&4?this.vf&4||this.vf&8&&this.oa&&$i(this.oa,6):this.Gd();this.vf=b};k.bn=function(a,b){this.ea(a,null,b,"STATUS",this.Da);return this.Da}; k.$m=function(a,b){var c=0;this.ob<this.cb&&(c=this.cc[this.ob]);this.vf&8&&this.oa&&aj(this.oa,6);this.ea(a,null,b,"DATA["+this.ob+"]",c);++this.ob>=this.cb&&(this.Da&=-81,this.ob=this.cb=0);return c}; -k.uo=function(a,b,c){this.ea(a,b,c,"DATA["+this.cb+"]");this.cb<this.cc.length&&(this.cc[this.cb++]=b);a=this.cc[0]&31;if(void 0!==ol[a]&&this.cb>=ol[a].yd){c=!1;this.ob=0;a=this.Pa();var d,e,f,h,g;b=a&31;switch(b){case 3:this.Pa(m.Op);this.Pa(m.tp);this.Qb();break;case 4:e=this.Pa(m.Cf);this.fb=e&3;d=this.Ea[this.fb];this.Qb();this.bc((d.Ya&4278190080)>>>24,m.Rp);break;case 5:case 6:e=this.Pa(m.Cf);c=e>>2&1;this.fb=e&3;d=this.Ea[this.fb];d.Na=c;e=d.kb=this.Pa(m.Vj);f=this.Pa(m.Wj);h=d.Wa=this.Pa(m.Yj); -g=this.Pa(m.Th);d.bb=128<<g;d.ce=this.Pa(m.op);this.Pa(m.im);this.Pa(m.np);6==b?this.pi(d):this.qi(d);xl(this,d,a,c,e,f,h,g);c=!0;break;case 7:e=this.Pa(m.Cf);this.fb=e&3;d=this.Ea[this.fb];d.kb=d.ae=0;d.Ya=268435488;this.Qb();c=!0;break;case 8:d=this.Ea[this.fb];d.Na=0;this.Qb();this.bc(d.fb|d.Na<<2|d.Ya&255,m.km);this.bc(d.kb,m.Dp);this.fb=this.fb+1&3;break;case 10:e=this.Pa(m.Cf);c=e>>2&1;this.fb=e&3;d=this.Ea[this.fb];e=d.kb;f=d.Na=c;h=d.Wa=1;g=0;d.Ya=0;d.ya&&(d.Sa=d.ya.seek(d.kb,d.Na,d.Wa))? -g=d.Sa.length:d.Ya=1088;xl(this,d,a,c,e,f,h,g);c=!0;break;case 13:e=this.Pa(m.Cf);c=e>>2&1;this.fb=e&3;d=this.Ea[this.fb];e=d.kb;f=d.Na=c;h=1;g=this.Pa(m.Th);d.bb=128<<g;d.ce=this.Pa(m.Jp);this.Pa(m.im);d.dk=this.Pa(m.hm);this.pk(d);xl(this,d,a,c,e,f,h,g);c=!0;break;case 15:e=this.Pa(m.Cf),this.fb=e&3,d=this.Ea[this.fb],d.Na=e>>2&1,e=this.Pa(m.Ap),d.kb+=e-d.ae,0>d.kb&&(d.kb=0),d.kb>=d.Rb&&(d.kb=d.Rb-1),d.ae=e,d.Ya=32,0==d.kb&&(d.Ya|=268435456),this.Qb(),c=!0}0<this.cb&&(this.Da|=80);this.vf&8&&(!d|| -d.Ya&8||!c||this.oa&&$i(this.oa,6))}};k.an=function(a,b){var c=this.se;this.se&=-129;this.ea(a,null,b,"INPUT",c);return c};k.to=function(a,b,c){this.ea(a,b,c,"CONTROL");this.Tl=b};function xl(a,b,c,d,e,f,h,g){a.Qb();a.bc(b.fb|b.Na<<2|b.Ya&255,m.km);a.bc((b.Ya&65280)>>>8,m.Pp);a.bc((b.Ya&16711680)>>>16,m.Qp);var l=0;if(e!=b.kb||f!=b.Na)l=h=1;c&128&&(f^=l,d||(l=0));a.bc(e+l,m.Vj);a.bc(f,m.Wj);a.bc(h,m.Yj);a.bc(g,m.Th)}k.Pa=function(){var a=this.cc[this.ob];this.ob++;return a}; +k.uo=function(a,b,c){this.ea(a,b,c,"DATA["+this.cb+"]");this.cb<this.cc.length&&(this.cc[this.cb++]=b);a=this.cc[0]&31;if(void 0!==ol[a]&&this.cb>=ol[a].yd){c=!1;this.ob=0;a=this.Pa();var d,e,f,g,h;b=a&31;switch(b){case 3:this.Pa(m.Qp);this.Pa(m.wp);this.Qb();break;case 4:e=this.Pa(m.Cf);this.fb=e&3;d=this.Ea[this.fb];this.Qb();this.bc((d.Ya&4278190080)>>>24,m.Tp);break;case 5:case 6:e=this.Pa(m.Cf);c=e>>2&1;this.fb=e&3;d=this.Ea[this.fb];d.Na=c;e=d.kb=this.Pa(m.Vj);f=this.Pa(m.Wj);g=d.Wa=this.Pa(m.Yj); +h=this.Pa(m.Th);d.bb=128<<h;d.ce=this.Pa(m.qp);this.Pa(m.im);this.Pa(m.pp);6==b?this.pi(d):this.qi(d);xl(this,d,a,c,e,f,g,h);c=!0;break;case 7:e=this.Pa(m.Cf);this.fb=e&3;d=this.Ea[this.fb];d.kb=d.ae=0;d.Ya=268435488;this.Qb();c=!0;break;case 8:d=this.Ea[this.fb];d.Na=0;this.Qb();this.bc(d.fb|d.Na<<2|d.Ya&255,m.km);this.bc(d.kb,m.Fp);this.fb=this.fb+1&3;break;case 10:e=this.Pa(m.Cf);c=e>>2&1;this.fb=e&3;d=this.Ea[this.fb];e=d.kb;f=d.Na=c;g=d.Wa=1;h=0;d.Ya=0;d.ya&&(d.Sa=d.ya.seek(d.kb,d.Na,d.Wa))? +h=d.Sa.length:d.Ya=1088;xl(this,d,a,c,e,f,g,h);c=!0;break;case 13:e=this.Pa(m.Cf);c=e>>2&1;this.fb=e&3;d=this.Ea[this.fb];e=d.kb;f=d.Na=c;g=1;h=this.Pa(m.Th);d.bb=128<<h;d.ce=this.Pa(m.Lp);this.Pa(m.im);d.dk=this.Pa(m.hm);this.pk(d);xl(this,d,a,c,e,f,g,h);c=!0;break;case 15:e=this.Pa(m.Cf),this.fb=e&3,d=this.Ea[this.fb],d.Na=e>>2&1,e=this.Pa(m.Cp),d.kb+=e-d.ae,0>d.kb&&(d.kb=0),d.kb>=d.Rb&&(d.kb=d.Rb-1),d.ae=e,d.Ya=32,0==d.kb&&(d.Ya|=268435456),this.Qb(),c=!0}0<this.cb&&(this.Da|=80);this.vf&8&&(!d|| +d.Ya&8||!c||this.oa&&$i(this.oa,6))}};k.an=function(a,b){var c=this.se;this.se&=-129;this.ea(a,null,b,"INPUT",c);return c};k.to=function(a,b,c){this.ea(a,b,c,"CONTROL");this.Tl=b};function xl(a,b,c,d,e,f,g,h){a.Qb();a.bc(b.fb|b.Na<<2|b.Ya&255,m.km);a.bc((b.Ya&65280)>>>8,m.Rp);a.bc((b.Ya&16711680)>>>16,m.Sp);var l=0;if(e!=b.kb||f!=b.Na)l=g=1;c&128&&(f^=l,d||(l=0));a.bc(e+l,m.Vj);a.bc(f,m.Wj);a.bc(g,m.Yj);a.bc(h,m.Th)}k.Pa=function(){var a=this.cc[this.ob];this.ob++;return a}; k.Qb=function(){this.ob=this.cb=0};k.bc=function(a){this.cc[this.cb++]=a};k.ni=function(a,b,c){void 0===b||0>b?this.sc(a,c):c(-1,!1)};k.oi=function(a,b){return void 0!==b&&0<=b?this.Dc(a,b):-1};k.pm=function(a,b){return void 0!==b&&0<=b?this.Rj(a,b):-1};k.pi=function(a){a.Ya=72;a.ya&&(a.Sa=null,a.Ya=0,this.oa&&(Ti(this.oa,2,this,"dmaRead",a),Ni(this.oa,2)))};k.qi=function(a){a.Ya=72;a.ya&&(a.ya.jf?a.Ya=576:(a.Sa=null,a.Ya=0,this.oa&&(Ti(this.oa,2,this,"dmaWrite",a),Ni(this.oa,2))))}; k.pk=function(a){a.Ya=72;a.ya&&(a.Sa=null,a.Ya=0,this.oa&&(a.He=0,a.wc=Array(4),a.Nf=!0,a.Tf=0,Ti(this.oa,2,this,"dmaFormat",a),Ni(this.oa,2),a.Nf=!1))};k.sc=function(a,b){var c=-1;if(!a.Ya&&a.ya){do{if(a.Sa&&0<=(c=ll(a.Sa,a.$a++)))break;a.Sa=a.ya.seek(a.kb,a.Na,a.Wa);if(!a.Sa){a.Ya=1088;break}a.$a=0;this.Kf(a)}while(1)}b(c,!1)}; k.Dc=function(a,b){if(a.Ya||!a.ya)return-1;do{if(a.Sa&&a.ya.write(a.Sa,a.$a++,b))break;a.Sa=a.ya.seek(a.kb,a.Na,a.Wa);if(!a.Sa){a.Ya=8256;b=-1;break}a.$a=0;this.Kf(a)}while(1);return b};k.Kf=function(a){a.Wa++;a.Wa>=a.ng+1&&(a.Wa=1,a.Na++,a.Na>=a.mg&&(a.Na=0,a.kb++))};k.Rj=function(a,b){if(a.Ya)return-1;a.wc[a.He++]=b;if(a.He==a.wc.length){a.kb=a.wc[0];a.Na=a.wc[1];a.Wa=a.wc[2];a.bb=128<<a.wc[3];for(var c=a.He=0;c<a.bb;c++)if(0>this.Dc(a,a.dk))return-1;a.Tf++}a.Tf>=a.ce&&(b=-1);return b}; k.Hi=function(a){var b=this.T.K&255;this.da&&C(this.da,uj|Zc)&&128>b&&($c(this.da,19,a),ad(this.T,a,function(a,b){return function(e){bd(a.da,19,e,E(a.T)-b)}}(this,E(this.T))));return!0};k.Ra=function(a,b){this.da&&(null==b&&(b=uj),C(this.da,b)&&this.da.message(a))};k.ea=function(a,b,c,d,e){this.da&&this.da.ea(this,a,b,c,d,uj,e)};var sl={1012:nl.prototype.bn,1013:nl.prototype.$m,1015:nl.prototype.an},tl={1010:nl.prototype.vo,1013:nl.prototype.uo,1015:nl.prototype.to}; Fa(function(){for(var a=A(window.document,"pcjs","fdc"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new nl(d);Za(d,c)}});function V(a){y.call(this,"HDC",a,V);this.dmaRead=this.ni;this.dmaWrite=this.oi;this.dmaWriteBuffer=this.qm;this.dmaWriteFormat=this.rm;this.Vh=[];if(a.drives)try{this.Vh=eval("("+a.drives+")")}catch(b){w("HDC drive configuration error: "+b.message+" ("+a.drives+")")}this.cg=(this.Je="at"==a.type)?1:0;this.Fm=this.Je?2:3}Ua(y,V); -var yl=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[940,8],5:[940,6],6:[615,4],7:[462,8],8:[733,5],9:[900,15],10:[820,3],11:[855,5],12:[855,7],13:[306,8],14:[733,7]}];k=V.prototype;k.zb=function(){return!1};k.pc=function(a,b,c,d){this.ra=b;this.T=c;this.da=d;this.Ka=a;this.oa=eb(a,"ChipSet");tb(b,this,this.Je?zl:Al);zb(b,this,this.Je?Bl:Cl);Xc(c,19,this,this.Fn);Xc(c,64,this,this.Hi);this.reset();this.Mf()||this.Ta()}; +var yl=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[940,8],5:[940,6],6:[615,4],7:[462,8],8:[733,5],9:[900,15],10:[820,3],11:[855,5],12:[855,7],13:[306,8],14:[733,7]}];k=V.prototype;k.Ab=function(){return!1};k.pc=function(a,b,c,d){this.ra=b;this.T=c;this.da=d;this.Ka=a;this.oa=eb(a,"ChipSet");tb(b,this,this.Je?zl:Al);zb(b,this,this.Je?Bl:Cl);Xc(c,19,this,this.Fn);Xc(c,64,this,this.Hi);this.reset();this.Mf()||this.Ta()}; k.Yb=function(a,b){if(!b)if(!a||!this.restore)this.Gd(),this.Ka.xi&&this.Mf(!0);else if(!this.restore(a))return!1;return!0};k.Xb=function(a){return a&&this.save?this.save():!0};k.kf=function(){return this.Ka?this.Ka.kf():""};k.je=function(){return this.Ka?this.Ka.je():""};k.reset=function(){this.Gd(null,!0)};k.save=function(){var a=new gd(this);a.set(0,this.Nj());return a.data()};k.restore=function(a){return this.Gd(a[0])}; k.Gd=function(a,b){var c=0,d=!0;if(this.Je)null==a&&(a=[0,0,0,0,0,0,0,0,64,0]),this.Md=a[c++],this.Xl=a[c++],this.te=a[c++],this.Mh=a[c++],this.Kh=a[c++],this.Jh=a[c++],this.uf=a[c++],this.Da=a[c++],this.Kj=a[c++],this.Lh=a[c++];else{null==a&&(a=[0,0,Array(14),0,0]);this.tf=a[c++];this.Da=a[c++];this.cc=a[c++];this.ob=a[c++];this.cb=a[c++];this.Wl=a[c++];this.Vl=a[c++];this.Ul=a[c++];var e=a[c++];void 0!==e?this.lf=e:void 0===this.lf&&(this.lf=-1)}void 0===this.Ea&&(this.Ea=Array(this.Vh.length)); c=a[c];void 0===c&&(c=[]);for(e=0;e<this.Ea.length;e++){void 0===this.Ea[e]&&(this.Ea[e]={});var f=this.Ea[e];this.Fi(e,f,this.Vh[e],c[e],b)||(d=!1);null!=this.tf&&1>=e&&(this.tf|=(f.type&3)<<(1-e<<1))}return d}; k.Nj=function(){var a=0,b=[];this.Je?(b[a++]=this.Md,b[a++]=this.Xl,b[a++]=this.te,b[a++]=this.Mh,b[a++]=this.Kh,b[a++]=this.Jh,b[a++]=this.uf,b[a++]=this.Da,b[a++]=this.Kj,b[a++]=this.Lh):(b[a++]=this.tf,b[a++]=this.Da,b[a++]=this.cc,b[a++]=this.ob,b[a++]=this.cb,b[a++]=this.Wl,b[a++]=this.Vl,b[a++]=this.Ul,b[a++]=this.lf);b[a]=this.Pj();return b}; -k.Fi=function(a,b,c,d,e){var f=0,h=!0;void 0===d&&(d=[0,0,!1,Array(8)]);b.fb=a;b.errorCode=d[f++];b.cm=d[f++];b.hf=d[f++];b.$e=d[f++];b.af=d[f++];b.Na=d[f++];b.Tb=d[f++];b.Sd=d[f++];b.Wa=d[f++];b.ce=d[f++];b.bb=d[f++];b.Wg=this.Je?0:1;b.name=c.name;void 0===b.name&&(b.name="Hard Drive");b.path=c.path;b.mode=c.mode||(b.path?"preload":"local");"demandro"!=b.mode&&"demandrw"!=b.mode||this.je()||(b.mode="local");b.type=c.type;if(void 0===b.type||void 0===yl[this.cg][b.type])b.type=this.Fm;c=yl[this.cg][b.type]; -b.ac=c[2]||17;b.Kb=c[3]||512;if(e&&this.oa&&(e=this.oa,c=b.type,e.sa)){var g=e.sa[18],g=a?g&240|c:g&15|c<<4;e.sa&&(e.sa[18]=g,Bi(e))}void 0===b.ya&&(b.ya=null,this.Ja("Type "+b.type+' "'+b.name+'" is fixed disk '+a,!0));Dl(this,b);b.$a=d[f++];b.Sa=null;b.ya&&(a=d[f],void 0!==a&&0>b.ya.restore(a)&&(h=!1),h&&void 0!==b.$a&&(b.Sa=b.ya.seek(b.Sd,b.Na,b.Wa+b.Wg)));return h};k.Pj=function(){for(var a=0,b=[],c=0;c<this.Ea.length;c++)b[a++]=this.Oj(this.Ea[c]);return b}; +k.Fi=function(a,b,c,d,e){var f=0,g=!0;void 0===d&&(d=[0,0,!1,Array(8)]);b.fb=a;b.errorCode=d[f++];b.cm=d[f++];b.hf=d[f++];b.$e=d[f++];b.af=d[f++];b.Na=d[f++];b.Tb=d[f++];b.Sd=d[f++];b.Wa=d[f++];b.ce=d[f++];b.bb=d[f++];b.Wg=this.Je?0:1;b.name=c.name;void 0===b.name&&(b.name="Hard Drive");b.path=c.path;b.mode=c.mode||(b.path?"preload":"local");"demandro"!=b.mode&&"demandrw"!=b.mode||this.je()||(b.mode="local");b.type=c.type;if(void 0===b.type||void 0===yl[this.cg][b.type])b.type=this.Fm;c=yl[this.cg][b.type]; +b.ac=c[2]||17;b.Kb=c[3]||512;if(e&&this.oa&&(e=this.oa,c=b.type,e.sa)){var h=e.sa[18],h=a?h&240|c:h&15|c<<4;e.sa&&(e.sa[18]=h,Bi(e))}void 0===b.ya&&(b.ya=null,this.Ja("Type "+b.type+' "'+b.name+'" is fixed disk '+a,!0));Dl(this,b);b.$a=d[f++];b.Sa=null;b.ya&&(a=d[f],void 0!==a&&0>b.ya.restore(a)&&(g=!1),g&&void 0!==b.$a&&(b.Sa=b.ya.seek(b.Sd,b.Na,b.Wa+b.Wg)));return g};k.Pj=function(){for(var a=0,b=[],c=0;c<this.Ea.length;c++)b[a++]=this.Oj(this.Ea[c]);return b}; k.Oj=function(a){var b=0,c=[];c[b++]=a.errorCode;c[b++]=a.cm;c[b++]=a.hf;c[b++]=a.$e;c[b++]=a.af;c[b++]=a.Na;c[b++]=a.Tb;c[b++]=a.Sd;c[b++]=a.Wa;c[b++]=a.ce;c[b++]=a.bb;c[b++]=a.$a;c[b]=a.ya?a.ya.save():null;return c};k.nk=function(a){var b;a=this.Ea[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b}; function Dl(a,b,c){if(b){var d=0,e=0;null==c&&((d=b.$e[2])?e=b.$e[0]<<8|b.$e[1]:c=b.type);null==c||d||(d=yl[a.cg][c][1],e=yl[a.cg][c][0]);d&&((c=yl[a.cg][b.type])&&e!=c[0]&&d!=c[1]&&a.Ja("Warning: drive parameters ("+e+","+d+") do not match drive type "+b.type+" ("+c[0]+","+c[1]+")"),b.Rb=e,b.Tb=d,null==b.ya&&(b.ya=new cl(a,b,b.mode)))}} -k.am=function(a,b,c){if(a.ya){var d=a.ya.info(),e=d[0];if(e){var f=d[2],h=d[1]*f;if(b+c<=e*h)return a.Sd=Math.floor(b/h),b%=h,a.Na=Math.floor(b/f),a.Wa=b%f,a.bb=c*d[3],a.errorCode=0,!0}}return!1}; +k.am=function(a,b,c){if(a.ya){var d=a.ya.info(),e=d[0];if(e){var f=d[2],g=d[1]*f;if(b+c<=e*g)return a.Sd=Math.floor(b/g),b%=g,a.Na=Math.floor(b/f),a.Wa=b%f,a.bb=c*d[3],a.errorCode=0,!0}}return!1}; k.Mf=function(a){a||(this.Ee=0);for(var b=0;b<this.Ea.length;b++){var c=this.Ea[b];if(c.name&&c.path){if(!(a&&c.ya&&c.ya.kh)){var d;d=c.name;var c=c.path,e=this.Ea[b];e.Mc?(this.Ja("Drive "+b+" busy"),d=!0):(e.Mc=!0,e.Ke=!0,this.Ee++,this.Ra("loading "+d),(e.ya||new cl(this,e,e.mode)).load(d,c,this.tm),d=!1);!d&&a&&this.Ta(!1)}}else a&&void 0!==c.type&&(c.ya=null,Dl(this,c,c.type))}return!!this.Ee}; k.tm=function(a,b,c){a.Mc=!1;(a.ya=b)&&this.Ja('Mounted disk "'+c+'" in drive '+String.fromCharCode(67+a.fb),a.Ke);a.Ke&&(a.Ke=!1,--this.Ee||this.Ta())};k.Cn=function(a,b){var c=0;this.ob<this.cb&&(c=this.cc[this.ob]);this.oa&&aj(this.oa,5);this.Da&=-33;this.ea(a,null,b,"DATA["+this.ob+"]",c);++this.ob>=this.cb&&(this.ob=this.cb=0,this.Da&=-15);return c}; k.Ro=function(a,b,c){this.ea(a,b,c,"DATA["+this.cb+"]");this.cb<this.cc.length&&(this.cc[this.cb++]=b);a=12!=this.cc[0]?6:this.cc.length;6==this.cb&&(this.Da&=-2);this.cb>=a&&(this.Da|=2,this.Da&=-2,El(this))};k.Dn=function(a,b){var c=this.Da;this.ea(a,null,b,"STATUS",c);this.ob<this.cb&&(this.Da|=1);return c};k.Uo=function(a,b,c){this.ea(a,b,c,"RESET");this.Wl=b;this.oa&&aj(this.oa,5);this.Gd()};k.Bn=function(a,b){this.ea(a,null,b,"CONFIG",this.tf);return this.tf}; @@ -637,14 +637,14 @@ k.To=function(a,b,c){this.ea(a,b,c,"PULSE");this.Vl=b;this.Da=13};k.So=function( k.ho=function(a,b,c){this.Qa&&0!=this.Qa.$a||this.ea(a,b,c,"DATA");this.Qa&&this.Qa.bb>=this.Qa.Kb&&(0>this.Dc(this.Qa,b)?(this.Da=1,this.Md=16):this.Qa.$a==this.Qa.Kb&&(this.Qa.bb-=this.Qa.Kb,this.te=this.te-1&255,Fl(this),this.Qa.bb>=this.Qa.Kb||(this.Da=80)))};k.Pm=function(a,b){var c=this.Md;this.ea(a,null,b,"ERROR",c);return c};k.mo=function(a,b,c){this.ea(a,b,c,"WPREC");this.Xl=b};k.Qm=function(a,b){var c=this.te;this.ea(a,null,b,"SECCNT",c);return c}; k.ko=function(a,b,c){this.ea(a,b,c,"SECCNT");this.te=b};k.Rm=function(a,b){var c=this.Mh;this.ea(a,null,b,"SECNUM",c);return c};k.lo=function(a,b,c){this.ea(a,b,c,"SECNUM");this.Mh=b};k.Mm=function(a,b){var c=this.Kh;this.ea(a,null,b,"CYLLO",c);return c};k.fo=function(a,b,c){this.ea(a,b,c,"CYLLO");this.Kh=b};k.Lm=function(a,b){var c=this.Jh;this.ea(a,null,b,"CYLHI",c);return c};k.eo=function(a,b,c){this.ea(a,b,c,"CYLHI");this.Jh=b};k.Om=function(a,b){var c=this.uf;this.ea(a,null,b,"DRVHD",c);return c}; k.io=function(a,b,c){this.ea(a,b,c,"DRVHD");this.uf=b;this.Da=this.Ea[this.uf&16?1:0]?this.Da|64:this.Da&-65};k.Sm=function(a,b){var c=this.Da;this.ea(a,null,b,"STATUS",c);return c};k.co=function(a,b,c){this.ea(a,b,c,"COMMAND");this.Kj=b;this.oa&&aj(this.oa,14);Gl(this)};k.jo=function(a,b,c){this.ea(a,b,c,"FDR");this.Lh&4&&!(b&4)&&(this.Md=1);this.Lh=b}; -function Gl(a){var b=!1,c=a.Kj,d=a.uf&16?1:0,e=a.uf&15,f=a.Kh|(a.Jh&3)<<8,h=a.Mh,g=a.te||256;a.Qa=null;a.Md=0;a.Da=80;(d=a.Ea[d])?(d.Sd=f,d.Na=e,d.Wa=h,d.bb=g*d.Kb,c=144<=c?c:c&240,d.Sa=null,d.errorCode=0,a.Qa=d):c=-1;switch(c&240){case 32:a.sc(d,function(b){0<=b&&a.oa?(Fl(a),a.Da=136):(a.Da=1,a.Md=16)},!1);break;case 48:a.oa?(Fl(a),a.Da=136):(a.Da=1,a.Md=4);break;case 16:b=!0;break;case 64:b=!0;break;case 144:a.Md=1;b=!0;break;case 145:d.Tb=e+1,d.ac=g,b=!0}b&&Fl(a)} +function Gl(a){var b=!1,c=a.Kj,d=a.uf&16?1:0,e=a.uf&15,f=a.Kh|(a.Jh&3)<<8,g=a.Mh,h=a.te||256;a.Qa=null;a.Md=0;a.Da=80;(d=a.Ea[d])?(d.Sd=f,d.Na=e,d.Wa=g,d.bb=h*d.Kb,c=144<=c?c:c&240,d.Sa=null,d.errorCode=0,a.Qa=d):c=-1;switch(c&240){case 32:a.sc(d,function(b){0<=b&&a.oa?(Fl(a),a.Da=136):(a.Da=1,a.Md=16)},!1);break;case 48:a.oa?(Fl(a),a.Da=136):(a.Da=1,a.Md=4);break;case 16:b=!0;break;case 64:b=!0;break;case 144:a.Md=1;b=!0;break;case 145:d.Tb=e+1,d.ac=h,b=!0}b&&Fl(a)} function Fl(a){!a.oa||a.Lh&2||$i(a.oa,14)} -function El(a){a.ob=0;var b=a.Pa(),c=a.Pa(),d=c&32,e=d>>5,f=c&31,h=a.Pa(),g=a.Pa(),l=h<<2&768|g,n=h&63,r=a.Pa(),s=a.Pa(),t=a.Ea[e];t&&(t.Sd=l,t.Na=f,t.Wa=n,t.bb=r*t.Kb);switch(b){case 3:a.Qb(t?t.errorCode:4);a.bc(c);a.bc(h);a.bc(g);a.bc(0|d);b=-1;break;case 12:for(c=0;0<=(b=a.Pa());)t&&c<t.$e.length&&(t.$e[c++]=b);t&&Dl(a,t);b=0;t||a.lf!=e||(a.lf=-1,b=2);a.Qb(b|d);b=-1;break;case 224:case 228:a.Qb(0|d),b=-1}if(0<=b)switch(void 0===t?b=-1:(t.errorCode=0,t.cm=0),b){case 0:a.Qb(0|d);break;case 1:t.eq= +function El(a){a.ob=0;var b=a.Pa(),c=a.Pa(),d=c&32,e=d>>5,f=c&31,g=a.Pa(),h=a.Pa(),l=g<<2&768|h,n=g&63,r=a.Pa(),s=a.Pa(),t=a.Ea[e];t&&(t.Sd=l,t.Na=f,t.Wa=n,t.bb=r*t.Kb);switch(b){case 3:a.Qb(t?t.errorCode:4);a.bc(c);a.bc(g);a.bc(h);a.bc(0|d);b=-1;break;case 12:for(c=0;0<=(b=a.Pa());)t&&c<t.$e.length&&(t.$e[c++]=b);t&&Dl(a,t);b=0;t||a.lf!=e||(a.lf=-1,b=2);a.Qb(b|d);b=-1;break;case 224:case 228:a.Qb(0|d),b=-1}if(0<=b)switch(void 0===t?b=-1:(t.errorCode=0,t.cm=0),b){case 0:a.Qb(0|d);break;case 1:t.gq= s;a.Qb(0|d);break;case 5:a.Qb(0|d);break;case 8:a.pi(t,function(b){a.Qb(b|d)});break;case 10:a.qi(t,function(b){a.Qb(b|d)});break;case 15:Hl(a,t,function(b){a.Qb(b|d)});break;default:a.Qb(2|d)}}k.Pa=function(){var a=-1;this.ob<this.cb&&(a=this.cc[this.ob++]);return a};k.Qb=function(a){this.ob=this.cb=0;void 0!==a&&this.bc(a);this.oa&&$i(this.oa,5);this.Da|=32};k.bc=function(a){this.cc[this.cb++]=a};k.ni=function(a,b,c){void 0===b||0>b?this.sc(a,c):c(-1,!1)}; k.oi=function(a,b){return void 0!==b&&0<=b?this.Dc(a,b):-1};k.qm=function(a,b){var c;void 0!==b&&0<=b?(c=b,a.$a<a.af.length?a.af[a.$a++]=c:(a.errorCode=20,c=-1)):c=-1;return c};k.rm=function(a,b){return void 0!==b&&0<=b?this.Rj(a,b):-1};k.pi=function(a,b){a.errorCode=4;if(a.ya&&(a.Sa=null,this.oa)){a.errorCode=0;Ti(this.oa,3,this,"dmaRead",a);Ni(this.oa,3,function(c){c||0!=a.errorCode||(a.errorCode=4);b(a.errorCode?2:0)});return}b(a.errorCode?2:0)}; k.qi=function(a,b){a.errorCode=4;if(a.ya&&(a.Sa=null,this.oa)){a.errorCode=0;Ti(this.oa,3,this,"dmaWrite",a);Ni(this.oa,3,function(c){c||(0==a.errorCode&&(a.errorCode=4),20==a.errorCode&&(a.errorCode=0));b(a.errorCode?2:0)});return}b(a.errorCode?2:0)};function Hl(a,b,c){b.errorCode=4;b.af&&b.af.length==b.bb||(b.af=Array(b.bb));b.$a=0;a.oa?(b.errorCode=0,Ti(a.oa,3,a,"dmaWriteBuffer",b),Ni(a.oa,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)})):c(b.errorCode?2:0)} k.pk=function(a,b){a.errorCode=4;if(a.ya&&(a.Sa=null,this.oa)){a.He=0;a.wc=Array(4);a.Nf=!0;a.Tf=0;a.errorCode=0;Ti(this.oa,3,this,"dmaWriteFormat",a);Ni(this.oa,3,function(c){c||0!=a.errorCode||(a.errorCode=4);a.Nf=!1;b(a.errorCode?2:0)});return}b(a.errorCode?2:0)}; -k.sc=function(a,b,c){var d=-1;if(a.errorCode)return b&&b(d,!1),d;var e=!1!==c?1:0;if(a.Sa&&(d=ll(a.Sa,a.$a),a.$a+=e,0<=d))return b&&b(d,!1),d;if(b){var f=this;if(a.ya)return a.ya.seek(a.Sd,a.Na,a.Wa+a.Wg,!1,function(c,g){(a.Sa=c)?(a.$a=0,f.Kf(a),d=ll(a.Sa,a.$a),a.$a+=e):a.errorCode=20;b(d,g)}),d;a.errorCode=20;b(d,!1)}return d}; +k.sc=function(a,b,c){var d=-1;if(a.errorCode)return b&&b(d,!1),d;var e=!1!==c?1:0;if(a.Sa&&(d=ll(a.Sa,a.$a),a.$a+=e,0<=d))return b&&b(d,!1),d;if(b){var f=this;if(a.ya)return a.ya.seek(a.Sd,a.Na,a.Wa+a.Wg,!1,function(c,h){(a.Sa=c)?(a.$a=0,f.Kf(a),d=ll(a.Sa,a.$a),a.$a+=e):a.errorCode=20;b(d,h)}),d;a.errorCode=20;b(d,!1)}return d}; k.Dc=function(a,b){if(a.errorCode)return-1;do{if(a.Sa&&a.ya.write(a.Sa,a.$a++,b))break;a.ya&&a.ya.seek(a.Sd,a.Na,a.Wa+a.Wg,!0,function(b){a.Sa=b});if(!a.Sa){a.errorCode=20;b=-1;break}a.$a=0;this.Kf(a)}while(1);return b};k.Kf=function(a){a.Wa++;var b=1-a.Wg;a.Wa>=a.ac+b&&(a.Wa=b,a.Na++,a.Na>=a.Tb&&(a.Na=0,a.Sd++))}; k.Rj=function(a,b){if(a.errorCode)return-1;a.wc[a.He++]=b;if(a.He==a.wc.length){a.Sd=a.wc[0];a.Na=a.wc[1];a.Wa=a.wc[2];a.bb=128<<a.wc[3];for(var c=a.He=0;c<a.bb;c++)if(0>this.Dc(a,a.dk))return-1;a.Tf++}a.Tf>=a.ce&&(b=-1);return b};k.Fn=function(a){var b=this.T.K&255;!(this.T.H>>8)&&128<b&&(this.lf=b-128);this.da&&C(this.da,Il|Zc)&&128<=b&&($c(this.da,19,a),ad(this.T,a,function(a,b){return function(e){bd(a.da,19,e,E(a.T)-b)}}(this,E(this.T))));return!0}; k.Hi=function(){var a;(a=this.T.H>>8)||(a=!this.oa)||(a=!(this.oa.ub[0].xd&64));return a?!0:!1};k.Ra=function(a,b){this.da&&(null==b&&(b=Il),C(this.da,b)&&this.da.message(a))};k.ea=function(a,b,c,d,e){this.da&&this.da.ea(this,a,b,c,d,Il,e)}; @@ -673,56 +673,56 @@ Z="AL CL DL BL AH CH DH BH AX CX DX BX SP BP SI DI ES CS SS DS IP".split(" "),Ql 69:"duplicate file handle BX",70:"force file handle CX to duplicate file handle BX",71:"get current directory (ds:si) for drive DL",72:"allocate memory segment with BX paragraphs",73:"free memory segment ES",74:"resize memory segment ES to BX paragraphs",75:"load program DS:DX using parameter block ES:BX",76:"terminate with return code AL",77:"get return code (al)",78:"find first matching file DS:DX with attributes CX",79:"find next matching file",80:"set current psp BX",81:"get current psp (bx)", 82:"get system variables (es:bx)",83:"translate bpb DS:SI to dpb (es:bp)",84:"get verify flag (al)",85:"create child psp at segment DX",86:"rename file DS:DX to name ES:DI",87:"get(0)/set(1) file date DX and time CX (AL)",88:"get(0)/set(1) memory allocation strategy (AL)",89:"get extended error information",90:"create temporary file DS:DX with attributes CX",91:"create file DS:DX with attributes CX",92:"lock(0)/unlock(1) file BX region CX:DX length SI:DI (AL)"}};k=Jl.prototype; k.pc=function(a,b,c){this.ra=b;this.T=c;this.Ka=a;this.Bm=eb(a,"FDC");this.Ak=eb(a,"HDC");this.Hf=Sl;80186<=this.T.Ia&&(this.Hf=Sl.slice(),this.Hf[15]=$,80286<=this.T.Ia&&(this.Hf[15]=Rl));Xc(this.T,33,this,this.In);this.Ta();if(this.Mj){a=Ml(this,this.Mj);delete this.Mj;for(var d in a)Wl(this,a[d])}}; -k.zb=function(a,b,c,d){var e=this;switch(c){case "debugInput":return this.Vf=this.za[c]=d,d.onkeypress=function(a){if(13==a.keyCode){var b=d.value;d.value="";var c=Ml(e,b,!0);for(b in c)Wl(e,c[b]);a.preventDefault&&a.preventDefault()}},!0;case "debugEnter":return this.za[c]=d,Aa(d,function(){if(e.Vf){var a=e.Vf.value;e.Vf.value="";var b=Ml(e,a,!0);for(a in b)Wl(e,b[a]);return!0}return!1}),!0;case "step":return this.za[c]=d,Aa(d,function(a){var b=!1;ab(e,!0)||($a(e,!0),b=e.yf(a?1:0),$a(e,!1));return b}), +k.Ab=function(a,b,c,d){var e=this;switch(c){case "debugInput":return this.Vf=this.za[c]=d,d.onkeypress=function(a){if(13==a.keyCode){var b=d.value;d.value="";var c=Ml(e,b,!0);for(b in c)Wl(e,c[b]);a.preventDefault&&a.preventDefault()}},!0;case "debugEnter":return this.za[c]=d,Aa(d,function(){if(e.Vf){var a=e.Vf.value;e.Vf.value="";var b=Ml(e,a,!0);for(a in b)Wl(e,b[a]);return!0}return!1}),!0;case "step":return this.za[c]=d,Aa(d,function(a){var b=!1;ab(e,!0)||($a(e,!0),b=e.yf(a?1:0),$a(e,!1));return b}), !0}return!1};k.Pd=function(){this.Vf&&this.Vf.focus()};function oi(a,b,c){for(var d in Nl)if(b==Nl[d]){a.Zh[d]=c;break}}function C(a,b){return(a.jc&b)===b} function $c(a,b,c){if(16!=b&&21!=b&&22!=b&&26!=b&&28!=b){var d=a.T.H>>8,e=Vl[b];if(e=e&&e[d]||""){var f=a.T;a.ib[Z[0]]=q(f.H&255);a.ib[Z[1]]=q(f.J&255);a.ib[Z[2]]=q(f.K&255);a.ib[Z[3]]=q(f.C&255);a.ib[Z[4]]=q(f.H>>8);a.ib[Z[5]]=q(f.J>>8);a.ib[Z[6]]=q(f.K>>8);a.ib[Z[7]]=q(f.C>>8);a.ib[Z[8]]=u(f.H);a.ib[Z[9]]=u(f.J);a.ib[Z[10]]=u(f.K);a.ib[Z[11]]=u(f.C);a.ib[Z[12]]=u(f.Y);a.ib[Z[13]]=u(f.I);a.ib[Z[14]]=u(f.G);a.ib[Z[15]]=u(f.F);a.ib[Z[16]]=u(f.Za.ta);a.ib[Z[17]]=u(f.xa.ta);a.ib[Z[18]]=u(f.tb.ta);a.ib[Z[19]]= -u(f.yb.ta);a.ib[Z[20]]=u(f.va);e=" "+ka(a.ib,e)}a.message("INT 0x"+q(b)+": AH="+q(d)+" at "+da(c-a.T.xa.Xa,a.T.xa.ta)+e)}}function bd(a,b,c,d,e){32>b&&16!=b&&21!=b&&22!=b&&26!=b&&28!=b&&a.message("INT 0x"+q(b)+"("+c+"): C="+(od(a.T)?1:0)+(e||"")+" (cycles="+d+")")} -k.ea=function(a,b,c,d,e,f,h){f||(f=0);f|=Hj;if(null==d||(this.jc&f)==f)f=null,null!=d&&(f=this.T.xa.ta,d-=this.T.xa.Xa),this.message(a.sh+"."+(null!=c?"outPort":"inPort")+"(0x"+u(b)+","+(e?e:"unknown")+(null!=c?",0x"+q(c):"")+")"+(null!=h?": 0x"+q(h):"")+(null!=d?" at "+da(d,f):""))};k.message=function(a){this.fa(a);this.T&&(this.jc&268435456&&this.T.wb(),a=this.T,a.ca.rf=0,a.Pc-=a.A,a.A=0,a.bh())};k.In=function(a){C(this,2097152|Zc)&&$c(this,33,a);return!0};k.En=function(){this.fa("Type ? for list of debugger commands")}; +u(f.zb.ta);a.ib[Z[20]]=u(f.va);e=" "+ka(a.ib,e)}a.message("INT 0x"+q(b)+": AH="+q(d)+" at "+da(c-a.T.xa.Xa,a.T.xa.ta)+e)}}function bd(a,b,c,d,e){32>b&&16!=b&&21!=b&&22!=b&&26!=b&&28!=b&&a.message("INT 0x"+q(b)+"("+c+"): C="+(od(a.T)?1:0)+(e||"")+" (cycles="+d+")")} +k.ea=function(a,b,c,d,e,f,g){f||(f=0);f|=Hj;if(null==d||(this.jc&f)==f)f=null,null!=d&&(f=this.T.xa.ta,d-=this.T.xa.Xa),this.message(a.sh+"."+(null!=c?"outPort":"inPort")+"(0x"+u(b)+","+(e?e:"unknown")+(null!=c?",0x"+q(c):"")+")"+(null!=g?": 0x"+q(g):"")+(null!=d?" at "+da(d,f):""))};k.message=function(a){this.fa(a);this.T&&(this.jc&268435456&&this.T.xb(),a=this.T,a.ca.rf=0,a.Pc-=a.A,a.A=0,a.bh())};k.In=function(a){C(this,2097152|Zc)&&$c(this,33,a);return!0};k.En=function(){this.fa("Type ? for list of debugger commands")}; function Ll(a){var b;if(Ed(a)){if(!a.Xd||!a.Xd.length){a.Xd=Array(1E4);for(b=0;b<a.Xd.length;b++)a.Xd[b]=[0,null,0];a.mf=0}if(!a.Tc||!a.Tc.length)for(a.Tc=Array(256),b=0;b<a.Tc.length;b++)a.Tc[b]=[b,0]}else a.mf=0,a.Xd=[],a.Tc=[]}k.Se=function(a){if(!Xl(this))return!1;this.T.Se(a);return!0}; -k.yf=function(a,b,c){if(!Xl(this))return!1;this.ad=0;do{a||Ed(this)&&Jd(this,this.T.Ga,!0);try{var d=this.T.yf(a);0<d&&(this.ad+=d,Wb(this.T,d,!0),Tb(this.T,d),this.Yg++)}catch(e){this.ad=0,cb(this.T,e.message||e)}}while(this.T.aa&240);!1!==c&&Sb(this.T);Qb(this,b||!1,!1);return 0<this.ad};k.wb=function(){this.T.wb()};function Qb(a,b,c){void 0===b&&(b=!0);void 0===c&&(c=!0);a.Ec=[a.T.va,a.T.xa.ta,void 0];b&&1!=a.nc?Yl(a,null,c):Zl(a)} +k.yf=function(a,b,c){if(!Xl(this))return!1;this.ad=0;do{a||Ed(this)&&Jd(this,this.T.Ga,!0);try{var d=this.T.yf(a);0<d&&(this.ad+=d,Wb(this.T,d,!0),Tb(this.T,d),this.Yg++)}catch(e){this.ad=0,cb(this.T,e.message||e)}}while(this.T.aa&240);!1!==c&&Sb(this.T);Qb(this,b||!1,!1);return 0<this.ad};k.xb=function(){this.T.xb()};function Qb(a,b,c){void 0===b&&(b=!0);void 0===c&&(c=!0);a.Ec=[a.T.va,a.T.xa.ta,void 0];b&&1!=a.nc?Yl(a,null,c):Zl(a)} function Xl(a){var b;if(b=a.T&&bb(a.T))b=a.T,b.qa.Lb?b=!0:(b.fa(b.toString()+" not powered"),b=!1);b&&!ab(a.T)?(a=a.T,a.qa.Zc?(a.fa(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}k.Yb=function(a,b){return!b&&(this.reset(!0),this.fa(a?"resuming":"powering up"),a&&this.restore&&!this.restore(a))?!1:!0};k.Xb=function(a,b){b&&this.fa(a?"suspending":"shutting down");return a&&this.save?this.save():!0}; k.reset=function(a){Ll(this);this.ad=this.Yg=0;this.Ec=[this.T.va,this.T.xa.ta,void 0];void 0===this.qa.Mb||a||this.fa("reset");this.qa.Mb=!1;$l(this);a||Qb(this)};k.save=function(){var a=new gd(this);a.set(0,this.Ec);a.set(1,this.ve);a.set(2,[this.Hh,this.ef,this.jc]);return a.data()};k.restore=function(a){var b=0;void 0!==a[2]&&(this.Ec=a[b++],this.ve=a[b++],this.Hh=a[b][0],this.ef=a[b][1],this.jc||(this.jc=a[b][2]));return!0}; k.start=function(a,b){this.nc||this.fa("running");this.qa.Mb=!0;this.On=a;this.Sn=b};k.stop=function(a,b){if(this.qa.Mb){this.qa.Mb=!1;this.ad=b-this.Sn;if(!this.nc){var c="stopped";if(this.ad){var d=a-this.On,e=0<d?Math.round(1E3*this.ad/d):0,c=c+" (";Ed(this)&&(c+=this.Yg+" ops, ");c+=this.ad+" cycles, "+d+" ms, "+e+" hz)"}this.fa(c)}Qb(this,!0,2!=this.nc);this.Pd();$l(this,this.T.Ga)}};function Ed(a){return 1<a.tc.length||C(a,Zc)} -function Jd(a,b,c){if(!c&&am(a,b,a.tc))return!0;a.Tc.length&&(a.Yg++,c=nb(a.ra,b),a.Tc[c][1]++,c=a.Xd[a.mf],c[0]=a.T.va,c[1]=a.T.xa.ta,c[2]=b,++a.mf==a.Xd.length&&(a.mf=0));return!1}function Eb(a,b){return am(a,b,a.Ud)?(a.T.wb(!0),!0):!1}function Fb(a,b){return am(a,b,a.Sc)?(a.T.wb(!0),!0):!1}function vb(a,b,c){a.fa("break on input from port "+u(b)+": "+q(c));a.T.wb(!0)}function Bb(a,b,c){a.fa("break on output to port "+u(b)+": "+q(c));a.T.wb(!0)} -function bm(a,b){if(b==a.T.xa.ta)return a.T.xa;if(b==a.T.yb.ta)return a.T.yb;if(b==a.T.Za.ta)return a.T.Za;if(b==a.T.tb.ta)return a.T.tb;var c=new ac(a.T);c.load(b,!0);return c}function cm(a,b,c,d){var e=b[2];null==e&&(a=bm(a,b[1]),e=c?a.gc(b[0],d||0,!0):a.jd(b[0],d||0,!0));16711680==(e&16711680)&&(e&=1048575);return e}k.vb=function(a,b){var c=255,d=cm(this,a,!1,0);0<=d&&(c=nb(this.ra,d),void 0!==b&&dm(a,b));return c}; +function Jd(a,b,c){if(!c&&am(a,b,a.tc))return!0;a.Tc.length&&(a.Yg++,c=nb(a.ra,b),a.Tc[c][1]++,c=a.Xd[a.mf],c[0]=a.T.va,c[1]=a.T.xa.ta,c[2]=b,++a.mf==a.Xd.length&&(a.mf=0));return!1}function Eb(a,b){return am(a,b,a.Ud)?(a.T.xb(!0),!0):!1}function Fb(a,b){return am(a,b,a.Sc)?(a.T.xb(!0),!0):!1}function vb(a,b,c){a.fa("break on input from port "+u(b)+": "+q(c));a.T.xb(!0)}function Bb(a,b,c){a.fa("break on output to port "+u(b)+": "+q(c));a.T.xb(!0)} +function bm(a,b){if(b==a.T.xa.ta)return a.T.xa;if(b==a.T.zb.ta)return a.T.zb;if(b==a.T.Za.ta)return a.T.Za;if(b==a.T.tb.ta)return a.T.tb;var c=new ac(a.T);c.load(b,!0);return c}function cm(a,b,c,d){var e=b[2];null==e&&(a=bm(a,b[1]),e=c?a.gc(b[0],d||0,!0):a.jd(b[0],d||0,!0));16711680==(e&16711680)&&(e&=1048575);return e}k.wb=function(a,b){var c=255,d=cm(this,a,!1,0);0<=d&&(c=nb(this.ra,d),void 0!==b&&dm(a,b));return c}; k.ua=function(a,b){var c=65535,d=cm(this,a,!1,1);0<=d&&(c=ob(this.ra,d),void 0!==b&&dm(a,b));return c};k.Od=function(a,b,c){var d=cm(this,a,!0,0);0<=d&&(pb(this.ra,d,b),void 0!==c&&dm(a,c),Sb(this.T))};k.cd=function(a,b,c){var d=cm(this,a,!0,1);0<=d&&(qb(this.ra,d,b),void 0!==c&&dm(a,c),Sb(this.T))};function em(a){return null==a[1]?"%"+p(a[2]):da(a[0],a[1])}function dm(a,b){b=void 0===b?1:b;null!=a[2]&&(a[2]+=b);null!=a[1]&&(a[0]+=b,a[0]!=(a[0]&65535)&&(a[0]&=65535,a[2]=null))} function Kl(a){var b;a.tc=["exec"];if(void 0!==a.Ud)for(b=1;b<a.Ud.length;b++){var c=a.ra,d=cm(a,a.Ud[b]);Jb(c.Fa[d>>c.rb],!1)}a.Ud=["read"];if(void 0!==a.Sc)for(b=1;b<a.Sc.length;b++)c=a.ra,d=cm(a,a.Sc[b]),Jb(c.Fa[d>>c.rb],!0);a.Sc=["write"]}k.Yd=function(a,b,c){if(!fm(this,a,b)){b[2]=cm(this,b);b[3]=c;a.push(b);if(a!=this.tc){var d=this.ra,e=cm(this,b);d.Fa[e>>d.rb].Yd(e&d.gb,a==this.Sc)}c||this.fa("breakpoint enabled: "+em(b)+" ("+a[0]+")");Ll(this);return!0}return!1}; -function fm(a,b,c,d){var e=!1;c=cm(a,c);for(var f=1;f<b.length;f++){var h=b[f];if(c==cm(a,h)){e=!0;if(d){b.splice(f,1);b!=a.tc&&(d=a.ra,Jb(d.Fa[c>>d.rb],b==a.Sc));h[3]||a.fa("breakpoint cleared: "+em(h)+" ("+b[0]+")");Ll(a);break}a.fa("breakpoint exists: "+em(h)+" ("+b[0]+")");break}}return e}function gm(a,b){for(var c=1;c<b.length;c++)a.fa("breakpoint enabled: "+em(b[c])+" ("+b[0]+")");return b.length-1} -function Kb(a,b,c,d){if(void 0===d)Kb(a,b,c,a.Ud),Kb(a,b,c,a.Sc);else for(var e=1;e<d.length;e++){var f=cm(a,d[e]);if(f>=b&&f<b+c){var h=a.ra;h.Fa[f>>h.rb].Yd(f&h.gb,d==a.Sc)}}}function $l(a,b){if(void 0!==b)am(a,b,a.tc,!0),a.nc=0;else for(var c=1;c<a.tc.length;c++){var d=a.tc[c];if(d[3]){if(!fm(a,a.tc,d,!0))break;c=0}}} -function am(a,b,c,d){var e=!1;16711680==(b&16711680)&&(b&=1048575);for(var f=1;f<c.length;f++){var h=c[f];if(b==cm(a,h)){h[3]?fm(a,c,h,!0):d||a.fa("breakpoint hit: "+em(h)+" ("+c[0]+")");e=!0;break}}return e} -function hm(a,b,c,d){var e=[b[0],b[1],b[2]],f=a.vb(b,1),h=a.Hf[f],g=h[0],l=-1;205==g&&(g=a.vb(b,1),h=Tl[g]||$,f|=g<<8,g=h[0]);g>=Pl.length&&(l=a.vb(b,1),h=Ul[g-Pl.length][l>>3&7]);var n=2,g="";if(164<=f&&167>=f||170<=f&&175>=f)n=0;for(f=1;f<=n;f++){var r="",s=h[f];if(void 0!==s){var t=s&15;if(0!=t&&15!=t){var v=s&240;if(128<=v)if(0>l&&(l=a.vb(b,1)),160<=v)r=l>>3&7,176==(s&240)?r+=16:3<=(s&15)&&(r+=8),r=Z[r];else{if(128<=v){var r=a,B=s,t=b,D="",v=l>>6,D=l&7;3>v?(B=void 0,v||6!=D?(D=Ql[D],1==v?(B=r.vb(t, -1),B&128?(B=B<<24>>24,D+="-"+q(-B)):D+="+"+q(B)):2==v&&(B=r.ua(t,2),D+="+"+u(B))):(B=r.ua(t,2),D=u(B)),D="["+D+"]"):D=Z[D+(1==(B&15)?0:8)];r=D}}else if(16==v)r="1";else if(0==v){r=a;v=s;t=b;B=" ";switch(v&15){case 1:v&12288&&(B=q(r.vb(t,1)));break;case 2:B=u(r.vb(t,1)<<24>>24);break;case 3:case 4:B=u(r.ua(t,2));break;case 6:v=r.ua(t,2);r=r.ua(t,2);B=em([v,r,void 0]);break;default:B="imm("+u(v)+")"}r=B}else 32==v?r="["+u(a.ua(b,2))+"]":48==v?(1==t?(r=a.vb(b,1),r=r<<24>>24):r=a.ua(b,2),r=b[0]+r&65535, -r=im(a,[r,b[1],void 0])[0]||u(r)):96==v?r=Z[(s&3840)>>8]:112==v?r=Z[((s&3840)>>8)+16]:64==v?r="DS:[SI]":80==v&&(r="ES:[DI]");r.length||(r="type("+u(s)+")");0<g.length&&(g+=",");g+=r}}}l=em(e)+" ";n="";do n+=q(a.vb(e,1));while(e[0]!=b[0]);l+=(n+" ").substr(0,14);l+=(Pl[h[0]]+" ").substr(0,8);g&&(l+=" "+g);c&&(l=(l+" ").substr(0,50),l+=";",l=a.T.qa.ff?l+("cycles="+E(a.T).toString()+" cs="+p(a.T.ca.fg)):l+(c+(null!=d?"="+d.toString():"")));return l} +function fm(a,b,c,d){var e=!1;c=cm(a,c);for(var f=1;f<b.length;f++){var g=b[f];if(c==cm(a,g)){e=!0;if(d){b.splice(f,1);b!=a.tc&&(d=a.ra,Jb(d.Fa[c>>d.rb],b==a.Sc));g[3]||a.fa("breakpoint cleared: "+em(g)+" ("+b[0]+")");Ll(a);break}a.fa("breakpoint exists: "+em(g)+" ("+b[0]+")");break}}return e}function gm(a,b){for(var c=1;c<b.length;c++)a.fa("breakpoint enabled: "+em(b[c])+" ("+b[0]+")");return b.length-1} +function Kb(a,b,c,d){if(void 0===d)Kb(a,b,c,a.Ud),Kb(a,b,c,a.Sc);else for(var e=1;e<d.length;e++){var f=cm(a,d[e]);if(f>=b&&f<b+c){var g=a.ra;g.Fa[f>>g.rb].Yd(f&g.gb,d==a.Sc)}}}function $l(a,b){if(void 0!==b)am(a,b,a.tc,!0),a.nc=0;else for(var c=1;c<a.tc.length;c++){var d=a.tc[c];if(d[3]){if(!fm(a,a.tc,d,!0))break;c=0}}} +function am(a,b,c,d){var e=!1;16711680==(b&16711680)&&(b&=1048575);for(var f=1;f<c.length;f++){var g=c[f];if(b==cm(a,g)){g[3]?fm(a,c,g,!0):d||a.fa("breakpoint hit: "+em(g)+" ("+c[0]+")");e=!0;break}}return e} +function hm(a,b,c,d){var e=[b[0],b[1],b[2]],f=a.wb(b,1),g=a.Hf[f],h=g[0],l=-1;205==h&&(h=a.wb(b,1),g=Tl[h]||$,f|=h<<8,h=g[0]);h>=Pl.length&&(l=a.wb(b,1),g=Ul[h-Pl.length][l>>3&7]);var n=2,h="";if(164<=f&&167>=f||170<=f&&175>=f)n=0;for(f=1;f<=n;f++){var r="",s=g[f];if(void 0!==s){var t=s&15;if(0!=t&&15!=t){var v=s&240;if(128<=v)if(0>l&&(l=a.wb(b,1)),160<=v)r=l>>3&7,176==(s&240)?r+=16:3<=(s&15)&&(r+=8),r=Z[r];else{if(128<=v){var r=a,B=s,t=b,D="",v=l>>6,D=l&7;3>v?(B=void 0,v||6!=D?(D=Ql[D],1==v?(B=r.wb(t, +1),B&128?(B=B<<24>>24,D+="-"+q(-B)):D+="+"+q(B)):2==v&&(B=r.ua(t,2),D+="+"+u(B))):(B=r.ua(t,2),D=u(B)),D="["+D+"]"):D=Z[D+(1==(B&15)?0:8)];r=D}}else if(16==v)r="1";else if(0==v){r=a;v=s;t=b;B=" ";switch(v&15){case 1:v&12288&&(B=q(r.wb(t,1)));break;case 2:B=u(r.wb(t,1)<<24>>24);break;case 3:case 4:B=u(r.ua(t,2));break;case 6:v=r.ua(t,2);r=r.ua(t,2);B=em([v,r,void 0]);break;default:B="imm("+u(v)+")"}r=B}else 32==v?r="["+u(a.ua(b,2))+"]":48==v?(1==t?(r=a.wb(b,1),r=r<<24>>24):r=a.ua(b,2),r=b[0]+r&65535, +r=im(a,[r,b[1],void 0])[0]||u(r)):96==v?r=Z[(s&3840)>>8]:112==v?r=Z[((s&3840)>>8)+16]:64==v?r="DS:[SI]":80==v&&(r="ES:[DI]");r.length||(r="type("+u(s)+")");0<h.length&&(h+=",");h+=r}}}l=em(e)+" ";n="";do n+=q(a.wb(e,1));while(e[0]!=b[0]);l+=(n+" ").substr(0,14);l+=(Pl[g[0]]+" ").substr(0,8);h&&(l+=" "+h);c&&(l=(l+" ").substr(0,50),l+=";",l=a.T.qa.ff?l+("cycles="+E(a.T).toString()+" cs="+p(a.T.ca.fg)):l+(c+(null!=d?"="+d.toString():"")));return l} function jm(a,b){var c;switch(b){case "V":c=td(a.T);break;case "D":c=a.T.Ca&1024;break;case "I":c=a.T.Ca&512;break;case "T":c=a.T.Ca&256;break;case "S":c=sd(a.T);break;case "Z":c=rd(a.T);break;case "A":c=qd(a.T);break;case "P":c=pd(a.T);break;case "C":c=od(a.T);break;default:c=0}return" "+b+(c?"1":"0")}function km(a,b){return a.Bg+"="+u(a.ta)+(b?"["+p(a.Xa,6)+","+u(a.Oc)+"]":"")}function lm(a,b,c,d){return a+"="+(null!=b?u(b):"")+"["+p(c,6)+","+u(d-c)+"]"} -function mm(a,b,c){var d=2==c?a.Zj:a.Ec;c=d[0];var e=d[1],d=d[2];if(void 0!==b){"%"==b.charAt(0)&&(b=b.substr(1),e=null);var f=b,d=null;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(var d=[],h=f.toUpperCase(),g=0;g<a.vc.length;g++){var f=a.vc[g][0],l=a.vc[g][2][h];if(void 0!==l){h=l.o;void 0!==h&&(g=l.s,void 0===g&&(g=f>>>4),d[0]=h,d[1]=g,void 0!==l.p&&(d[2]=l.p));break}}if(d&&d.length)return d;d=b.indexOf(":");0>d?null!=e?(c=nm(a,b),d=null):d=nm(a,b):(e=nm(a,b.substring(0,d)),c=nm(a,b.substring(d+1)),d= +function mm(a,b,c){var d=2==c?a.Zj:a.Ec;c=d[0];var e=d[1],d=d[2];if(void 0!==b){"%"==b.charAt(0)&&(b=b.substr(1),e=null);var f=b,d=null;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(var d=[],g=f.toUpperCase(),h=0;h<a.vc.length;h++){var f=a.vc[h][0],l=a.vc[h][2][g];if(void 0!==l){g=l.o;void 0!==g&&(h=l.s,void 0===h&&(h=f>>>4),d[0]=g,d[1]=h,void 0!==l.p&&(d[2]=l.p));break}}if(d&&d.length)return d;d=b.indexOf(":");0>d?null!=e?(c=nm(a,b),d=null):d=nm(a,b):(e=nm(a,b.substring(0,d)),c=nm(a,b.substring(d+1)),d= null)}return[c,e,d]} -function nm(a,b,c){var d;if(void 0!==b)switch(b=b.toUpperCase(),b){case "AX":d=a.T.H;break;case "BX":d=a.T.C;break;case "CX":d=a.T.J;break;case "DX":d=a.T.K;break;case "SI":d=a.T.G;break;case "DI":d=a.T.F;break;case "BP":d=a.T.I;break;case "SP":d=a.T.Y;break;case "CS":d=a.T.xa.ta;break;case "DS":d=a.T.yb.ta;break;case "ES":d=a.T.Za.ta;break;case "SS":d=a.T.tb.ta;break;case "IP":d=a.T.va;break;default:d=ca(b),void 0===d&&a.fa("invalid "+(c?c:"value")+": "+b)}else a.fa("missing "+(c?c:"value"));return d} -function xj(a,b,c,d){function e(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0}var f=[],h=[],g;for(g in d){var l=d[g];"number"==typeof l&&(d[g]=l={o:l});var n=l.o,r=l.s,s=l.a;void 0!==n&&(void 0!==r&&(f[0]=n,f[1]=r,l.p=cm(a,f)),na(h,[n,g],e));s&&(l.a=s.replace(/''/g,'"'))}a.vc.push([b,c,d,h])} -function im(a,b,c){for(var d=[],e=cm(a,b),f=0;f<a.vc.length;f++){var h=a.vc[f][0],g=a.vc[f][1];if(e>=h&&e<h+g){b=ma(a.vc[f][3],[b[0]],function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0});0<=b?om(a,f,b,d):c&&(b=~b,om(a,f,b-1,d),om(a,f,b,d));break}}return d}function om(a,b,c,d){var e={},f=a.vc[b][3],h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.vc[b][2][g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)} -function pm(a,b){if("?"==b)a.fa("\nfrequency commands:"),a.fa("\tclear\tclear all frequency counts");else{var c,d=0;if(a.Tc)if("clear"==b){for(c=0;c<a.Tc.length;c++)a.Tc[c]=[c,0];a.fa("frequency data cleared");d++}else if(void 0!==b)a.fa("unknown frequency command: "+b),d++;else{var e=a.Tc.slice();e.sort(function(a,b){return b[1]-a[1]});for(c=0;c<e.length;c++){var f=e[c][0],h=e[c][1];h&&(a.fa((Pl[a.Hf[f][0]]+" ").substr(0,5)+" ("+q(f)+"): "+h+" times"),d++)}}d||a.fa("no frequency data available")}} -function qm(a,b){if("l"==b[0]&&void 0===b[1]||"?"==b[1])a.fa("\nlist/load commands:"),a.fa("\tl [address] [drive #] [sector #] [# sectors]"),a.fa("\tln [address] lists symbol(s) nearest to address");else{var c=[],d,e=0,f=0,h=!1;if("json"==b[1])h=!0;else if(d="ln"==b[0],c=mm(a,b[1],d?1:2),d){e=im(a,c,!0);e.length?(e[0]&&(h="",(f=c[0]-e[1])&&(h=" + "+u(f)),a.fa(e[0]+" ("+da(e[1],c[1])+")"+h)),4<e.length&&e[4]&&(h="",(f=e[5]-c[0])&&(h=" - "+u(f)),a.fa(e[4]+" ("+da(e[5],c[1])+")"+h))):a.fa("no symbols"); -return}d=nm(a,b[2],"drive #");if(void 0!==d){if(!h){e=nm(a,b[3],"sector #");if(void 0===e)return;f=nm(a,b[4],"# of sectors");void 0===f&&(f=1)}var g=a.Bm;2<=d&&a.Ak&&(d-=2,g=a.Ak);if(g){var l=g.nk(d);if(l)if(l.ya)if(h)a.fa(kl(l.ya));else if(g.am(l,e,f)){for(var n=0,r=!1,e=em(c);!r&&0<l.bb--;)(function(a,b){g.sc(l,function(c){0>c?(a.fa("out of data at address "+em(b)),r=!0):(a.Od(b,c,1),n++)})})(a,c);a.fa(n+" bytes read at "+e)}else a.fa("sector "+e+" request out of range");else a.fa("drive "+d+" not loaded"); +function nm(a,b,c){var d;if(void 0!==b)switch(b=b.toUpperCase(),b){case "AX":d=a.T.H;break;case "BX":d=a.T.C;break;case "CX":d=a.T.J;break;case "DX":d=a.T.K;break;case "SI":d=a.T.G;break;case "DI":d=a.T.F;break;case "BP":d=a.T.I;break;case "SP":d=a.T.Y;break;case "CS":d=a.T.xa.ta;break;case "DS":d=a.T.zb.ta;break;case "ES":d=a.T.Za.ta;break;case "SS":d=a.T.tb.ta;break;case "IP":d=a.T.va;break;default:d=ca(b),void 0===d&&a.fa("invalid "+(c?c:"value")+": "+b)}else a.fa("missing "+(c?c:"value"));return d} +function xj(a,b,c,d){function e(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0}var f=[],g=[],h;for(h in d){var l=d[h];"number"==typeof l&&(d[h]=l={o:l});var n=l.o,r=l.s,s=l.a;void 0!==n&&(void 0!==r&&(f[0]=n,f[1]=r,l.p=cm(a,f)),na(g,[n,h],e));s&&(l.a=s.replace(/''/g,'"'))}a.vc.push([b,c,d,g])} +function im(a,b,c){for(var d=[],e=cm(a,b),f=0;f<a.vc.length;f++){var g=a.vc[f][0],h=a.vc[f][1];if(e>=g&&e<g+h){b=ma(a.vc[f][3],[b[0]],function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0});0<=b?om(a,f,b,d):c&&(b=~b,om(a,f,b-1,d),om(a,f,b,d));break}}return d}function om(a,b,c,d){var e={},f=a.vc[b][3],g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.vc[b][2][h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)} +function pm(a,b){if("?"==b)a.fa("\nfrequency commands:"),a.fa("\tclear\tclear all frequency counts");else{var c,d=0;if(a.Tc)if("clear"==b){for(c=0;c<a.Tc.length;c++)a.Tc[c]=[c,0];a.fa("frequency data cleared");d++}else if(void 0!==b)a.fa("unknown frequency command: "+b),d++;else{var e=a.Tc.slice();e.sort(function(a,b){return b[1]-a[1]});for(c=0;c<e.length;c++){var f=e[c][0],g=e[c][1];g&&(a.fa((Pl[a.Hf[f][0]]+" ").substr(0,5)+" ("+q(f)+"): "+g+" times"),d++)}}d||a.fa("no frequency data available")}} +function qm(a,b){if("l"==b[0]&&void 0===b[1]||"?"==b[1])a.fa("\nlist/load commands:"),a.fa("\tl [address] [drive #] [sector #] [# sectors]"),a.fa("\tln [address] lists symbol(s) nearest to address");else{var c=[],d,e=0,f=0,g=!1;if("json"==b[1])g=!0;else if(d="ln"==b[0],c=mm(a,b[1],d?1:2),d){e=im(a,c,!0);e.length?(e[0]&&(g="",(f=c[0]-e[1])&&(g=" + "+u(f)),a.fa(e[0]+" ("+da(e[1],c[1])+")"+g)),4<e.length&&e[4]&&(g="",(f=e[5]-c[0])&&(g=" - "+u(f)),a.fa(e[4]+" ("+da(e[5],c[1])+")"+g))):a.fa("no symbols"); +return}d=nm(a,b[2],"drive #");if(void 0!==d){if(!g){e=nm(a,b[3],"sector #");if(void 0===e)return;f=nm(a,b[4],"# of sectors");void 0===f&&(f=1)}var h=a.Bm;2<=d&&a.Ak&&(d-=2,h=a.Ak);if(h){var l=h.nk(d);if(l)if(l.ya)if(g)a.fa(kl(l.ya));else if(h.am(l,e,f)){for(var n=0,r=!1,e=em(c);!r&&0<l.bb--;)(function(a,b){h.sc(l,function(c){0>c?(a.fa("out of data at address "+em(b)),r=!0):(a.Od(b,c,1),n++)})})(a,c);a.fa(n+" bytes read at "+e)}else a.fa("sector "+e+" request out of range");else a.fa("drive "+d+" not loaded"); else a.fa("invalid drive: "+d)}else a.fa("disk controller not present")}}} -function Yl(a,b,c){if(b&&"?"==b[1])a.fa("\nregister commands:"),a.fa("\tr\t\tdisplay all registers"),a.fa("\tr [target=#]\tmodify target register"),a.fa("supported targets:"),a.fa("\tall registers and flags V,D,I,S,Z,A,P,C");else{var d=!0,e;if(null!=b&&1<b.length){var f=b[1];if("p"==f)e=void 0!==a.T.yc;else{d=!1;c=null;var h=f.indexOf("=");if(0<h)c=f.substr(h+1),f=f.substr(0,h);else if(2<b.length)c=b[2];else{a.fa("missing value for "+b[1]);return}b=parseInt(c,16);if(isNaN(b)){a.fa("invalid value: "+ +function Yl(a,b,c){if(b&&"?"==b[1])a.fa("\nregister commands:"),a.fa("\tr\t\tdisplay all registers"),a.fa("\tr [target=#]\tmodify target register"),a.fa("supported targets:"),a.fa("\tall registers and flags V,D,I,S,Z,A,P,C");else{var d=!0,e;if(null!=b&&1<b.length){var f=b[1];if("p"==f)e=void 0!==a.T.yc;else{d=!1;c=null;var g=f.indexOf("=");if(0<g)c=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)c=b[2];else{a.fa("missing value for "+b[1]);return}b=parseInt(c,16);if(isNaN(b)){a.fa("invalid value: "+ c);return}f=f.toUpperCase();switch(f){case "AL":a.T.H=a.T.H&65280|b&255;break;case "AH":a.T.H=a.T.H&255|b<<8&255;break;case "AX":a.T.H=b&65535;break;case "BL":a.T.C=a.T.C&65280|b&255;break;case "BH":a.T.C=a.T.C&255|b<<8&255;break;case "BX":a.T.C=b&65535;break;case "CL":a.T.J=a.T.J&65280|b&255;break;case "CH":a.T.J=a.T.J&255|b<<8&255;break;case "CX":a.T.J=b&65535;break;case "DL":a.T.K=a.T.K&65280|b&255;break;case "DH":a.T.K=a.T.K&255|b<<8&255;break;case "DX":a.T.K=b&65535;break;case "SP":a.T.Y=b&65535; break;case "BP":a.T.I=b&65535;break;case "SI":a.T.G=b&65535;break;case "DI":a.T.F=b&65535;break;case "DS":kd(a.T,b);break;case "ES":md(a.T,b);break;case "SS":ld(a.T,b);break;case "CS":d=!0;jd(a.T,b);a.Ec=[a.T.va,a.T.xa.ta,void 0];break;case "IP":d=!0;G(a.T,b);a.Ec=[a.T.va,a.T.xa.ta,void 0];break;case "PC":Uc(a.T,b);break;case "C":b?zd(a.T):ud(a.T);break;case "P":b?(f=a.T,pd(f)||(f.ma^=1)):(f=a.T,pd(f)&&(f.ma^=1));break;case "A":b?Ad(a.T):vd(a.T);break;case "Z":b?Bd(a.T):wd(a.T);break;case "S":b?Cd(a.T): xd(a.T);break;case "I":b?(f=a.T,f.Ca|=512):(f=a.T,f.Ca&=-513);break;case "D":b?(f=a.T,f.Ca|=1024):(f=a.T,f.Ca&=-1025);break;case "V":b?Dd(a.T):yd(a.T);break;default:c=!0;if(80286<=a.T.Ia)switch(c=!1,f){case "MS":$e.call(a.T,b);break;case "TR":a.T.Ue.load(b);break;default:c=!0}if(c){a.fa("unknown register: "+f);return}}Sb(a.T);a.fa("\nupdated registers:");c=!0}}f=e;void 0===f&&(f=!!(a.T.Cc&1));e="AX="+u(a.T.H)+" BX="+u(a.T.C)+" CX="+u(a.T.J)+" DX="+u(a.T.K)+" SP="+u(a.T.Y)+" BP="+u(a.T.I)+" SI="+u(a.T.G)+ -" DI="+u(a.T.F)+"\n";e+=km(a.T.yb,f)+" "+km(a.T.Za,f)+" "+km(a.T.tb,f);e=e+(f?"\n":" ")+(km(a.T.xa,f)+" IP="+u(a.T.va)+jm(a,"V")+jm(a,"D")+jm(a,"I")+jm(a,"T")+jm(a,"S")+jm(a,"Z")+jm(a,"A")+jm(a,"P")+jm(a,"C"));f&&(f=a.ra,e+=" MS="+u(a.T.Cc)+"\n"+lm("LD",a.T.bd.ta,a.T.bd.Xa,a.T.bd.Xa+a.T.bd.Oc)+" "+lm("GD",null,a.T.yc,a.T.ye)+" "+lm("ID",null,a.T.Fc,a.T.$d)+" TR="+u(a.T.Ue.ta)+" A20="+(f.Jf==f.ed?"ON":"OFF"));a.fa((c?"":"\n")+e);d&&(a.Ec=[a.T.va,a.T.xa.ta,void 0],Zl(a,em(a.Ec)))}} +" DI="+u(a.T.F)+"\n";e+=km(a.T.zb,f)+" "+km(a.T.Za,f)+" "+km(a.T.tb,f);e=e+(f?"\n":" ")+(km(a.T.xa,f)+" IP="+u(a.T.va)+jm(a,"V")+jm(a,"D")+jm(a,"I")+jm(a,"T")+jm(a,"S")+jm(a,"Z")+jm(a,"A")+jm(a,"P")+jm(a,"C"));f&&(f=a.ra,e+=" MS="+u(a.T.Cc)+"\n"+lm("LD",a.T.bd.ta,a.T.bd.Xa,a.T.bd.Xa+a.T.bd.Oc)+" "+lm("GD",null,a.T.yc,a.T.ye)+" "+lm("ID",null,a.T.Fc,a.T.$d)+" TR="+u(a.T.Ue.ta)+" A20="+(f.Jf==f.ed?"ON":"OFF"));a.fa((c?"":"\n")+e);d&&(a.Ec=[a.T.va,a.T.xa.ta,void 0],Zl(a,em(a.Ec)))}} function rm(a,b,c){var d="tr"==b;b=null!=c?parseInt(c,10):1;var e=1==b?0:1;za(b,function(){return $a(a,!0)&&a.yf(e,d,!1)},function(){Sb(a.T);$a(a,!1)})} -function Zl(a,b,c,d){b=mm(a,b,1);if(null!=b[0]){void 0===d&&(d=1);var e=[65535,b[1],a.ra.Jf];if(void 0!==c){e=mm(a,c,1);if(null==e[0]||e[0]<b[0])return;if(256<e[0]-b[0]){a.fa("range too large");return}e[0]++;d=-1}for(c=b[0]!=a.Ec[0];d&&(null!=b[1]?b[0]<e[0]:b[2]<e[2]);){d--;var f=a.vb(b),h=ab(a,!1)||a.nc?a.ad:null;if(38==f||46==f||54==f||62==f||240==f||242==f||243==f)h=null,d||d++;var f=null!=h?"cycles":null,g=im(a,b);if(g[0]){var l=g[0]+":";c=!1;g[2]&&(l+=" "+g[2]);a.fa(l)}c&&a.fa();g[3]&&(f=g[3], -h=null);c=hm(a,b,f,h);a.fa(c);a.Ec=b;c=!1}d&&a.fa("end of memory")}}function Ml(a,b,c){c&&(b?a.Hh=b:b=a.Hh);a=b?b.split(0<=b.indexOf("|")?"|":";"):[""];for(var d in a)a[d]=la(a[d]);return a} -function Wl(a,b){try{if(!b.length&&a.ef&&(a.fa("ended assemble @"+em(a.ve)),a.Ec=a.ve,a.ef=!1),b=b.toLowerCase(),bb(a)&&!ab(a,!0)&&0<b.length){if(a.ef)b="a "+em(a.ve)+" "+b;else{var c,d,e;switch(b){case "reset":a.Ka&&a.Ka.reset();return;case "ver":a.fa("PCjs version 1.15.9 (release,noprefetch,eatests,dwordarrays)");return;default:for(d=b.charAt(0),e=1;e<b.length;e++){c=b.charAt(e);if(" "==c)break;if("r"==d||"a">c||"z"<c){b=b.substring(0,e)+" "+b.substring(e);break}}}}var f=b.split(" ");switch(f[0].charAt(0)){case "a":var h= -mm(a,f[1],1);if(null!=h[0])if(a.ve=h,void 0===f[2])a.fa("begin assemble @"+em(h)),a.ef=!0,Sb(a.T);else{var g;a.fa("not supported yet");g=[];if(g.length){for(var l=0;l<g.length;l++)a.Od(h,g[l],1);a.fa(hm(a,a.ve))}}break;case "b":a:{var n=f[1],r=f[0].charAt(1);if(r&&"?"!=r)if("l"==r)l=0,l+=gm(a,a.tc),l+=gm(a,a.Ud),(l+=gm(a,a.Sc))||a.fa("no breakpoints");else if(void 0===n)a.fa("missing breakpoint address");else{l=[];if("*"!=n&&(l=mm(a,n,1),null==l[0]))break a;n=null==l[0]?n:u(l[0]);"c"==r?null==l[0]? +function Zl(a,b,c,d){b=mm(a,b,1);if(null!=b[0]){void 0===d&&(d=1);var e=[65535,b[1],a.ra.Jf];if(void 0!==c){e=mm(a,c,1);if(null==e[0]||e[0]<b[0])return;if(256<e[0]-b[0]){a.fa("range too large");return}e[0]++;d=-1}for(c=b[0]!=a.Ec[0];d&&(null!=b[1]?b[0]<e[0]:b[2]<e[2]);){d--;var f=a.wb(b),g=ab(a,!1)||a.nc?a.ad:null;if(38==f||46==f||54==f||62==f||240==f||242==f||243==f)g=null,d||d++;var f=null!=g?"cycles":null,h=im(a,b);if(h[0]){var l=h[0]+":";c=!1;h[2]&&(l+=" "+h[2]);a.fa(l)}c&&a.fa();h[3]&&(f=h[3], +g=null);c=hm(a,b,f,g);a.fa(c);a.Ec=b;c=!1}d&&a.fa("end of memory")}}function Ml(a,b,c){c&&(b?a.Hh=b:b=a.Hh);a=b?b.split(0<=b.indexOf("|")?"|":";"):[""];for(var d in a)a[d]=la(a[d]);return a} +function Wl(a,b){try{if(!b.length&&a.ef&&(a.fa("ended assemble @"+em(a.ve)),a.Ec=a.ve,a.ef=!1),b=b.toLowerCase(),bb(a)&&!ab(a,!0)&&0<b.length){if(a.ef)b="a "+em(a.ve)+" "+b;else{var c,d,e;switch(b){case "reset":a.Ka&&a.Ka.reset();return;case "ver":a.fa("PCjs version 1.15.9 (release,noprefetch,eatests,dwordarrays)");return;default:for(d=b.charAt(0),e=1;e<b.length;e++){c=b.charAt(e);if(" "==c)break;if("r"==d||"a">c||"z"<c){b=b.substring(0,e)+" "+b.substring(e);break}}}}var f=b.split(" ");switch(f[0].charAt(0)){case "a":var g= +mm(a,f[1],1);if(null!=g[0])if(a.ve=g,void 0===f[2])a.fa("begin assemble @"+em(g)),a.ef=!0,Sb(a.T);else{var h;a.fa("not supported yet");h=[];if(h.length){for(var l=0;l<h.length;l++)a.Od(g,h[l],1);a.fa(hm(a,a.ve))}}break;case "b":a:{var n=f[1],r=f[0].charAt(1);if(r&&"?"!=r)if("l"==r)l=0,l+=gm(a,a.tc),l+=gm(a,a.Ud),(l+=gm(a,a.Sc))||a.fa("no breakpoints");else if(void 0===n)a.fa("missing breakpoint address");else{l=[];if("*"!=n&&(l=mm(a,n,1),null==l[0]))break a;n=null==l[0]?n:u(l[0]);"c"==r?null==l[0]? (Kl(a),a.fa("all breakpoints cleared")):fm(a,a.tc,l,!0)||fm(a,a.Ud,l,!0)||fm(a,a.Sc,l,!0)||a.fa("breakpoint missing: "+em(l)):"i"==r?a.fa("breakpoint "+(sb(a.ra,l[0])?"enabled":"cleared")+": port "+n+" (input)"):"o"==r?a.fa("breakpoint "+(yb(a.ra,l[0])?"enabled":"cleared")+": port "+n+" (output)"):null!=l[0]&&("p"==r?a.Yd(a.tc,l):"r"==r?a.Yd(a.Ud,l):"w"==r?a.Yd(a.Sc,l):a.fa("unknown breakpoint command: "+r))}else a.fa("\nbreakpoint commands:"),a.fa("\tbi [p]\ttoggle break on input port [p]"),a.fa("\tbo [p]\ttoggle break on output port [p]"), a.fa("\tbp [a]\tset exec breakpoint at addr [a]"),a.fa("\tbr [a]\tset read breakpoint at addr [a]"),a.fa("\tbw [a]\tset write breakpoint at addr [a]"),a.fa("\tbc [a]\tclear breakpoint at addr [a]"),a.fa("\tbl\tlist all breakpoints")}break;case "c":a.Wf&&(a.Wf.value="");break;case "d":a:{var l=f[0],s=f[1],t=f[2],v;if("?"==s){l="symbols";for(v in Nl)a.Zh[v]&&(l.length&&(l+=","),l+=v);l+=",state";a.fa("\ndump commands:");a.fa("\tdb [a] [#] dump bytes at address a");a.fa("\tdw [a] [#] dump words at address a"); a.fa("\tds [s] dump descriptor for selector s");l.length&&a.fa("dumps are also available for: "+l)}else if("state"==s)a.fa(sm(a.Ka,!0));else if("symbols"==s)for(l=0;l<a.vc.length;l++){var B=a.vc[l][0],D=a.vc[l][2],W;for(W in D)if("."!=W.charAt(0)){var ja=D[W],Ka=ja.o;if(void 0!==Ka){var wb=ja.s;void 0===wb&&(wb=B>>>4);var lc=D[W].l;lc&&(W=lc);a.fa(da(Ka,wb)+" "+W)}}}else{for(v in Nl)if(s==v){var Rb=a.Zh[v];Rb?Rb(t):a.fa("no dump registered for "+s);break a}var X=mm(a,s,2);if(null!=X[0])if("ds"== l){var L=bm(a,X[0]);if(null!=L.ta){var x="selector="+u(X[0])+" limit="+u(L.Oc)+" base="+p(L.Xa);if(L.Oa){x+=" access="+u(L.Oa);if(L.Oa&4096)L.Oa&2048?(x+="code:",x+=L.Oa&512?"readable,":"execonly,",x+=L.Oa&1024?"conforming,":"nonconforming,"):(x+="data:",x+=L.Oa&512?"writeable,":"readonly,",x+=L.Oa&1024?"expand down,":"expand up,"),x+=L.Oa&256?"accessed":"not accessed";else switch(x+="type:",L.Oa&7936){case 256:x+="tss";break;case 512:x+="ldt";break;case 768:x+="tss(busy)";break;case 1024:x+="call"; -break;case 1280:x+="task";break;case 1536:x+="int";break;case 1792:x+="trap";break;default:x+="unknown"}x+=",dpl"+(L.Oa>>13&24576);x+=L.Oa&32768?",present":",not present"}a.fa(x)}else a.fa("invalid selector: "+u(X[0]))}else{var T=0;void 0!==t&&("l"==t.charAt(0)&&(t=t.substr(1)),T=parseInt(t,10));var J="";T||(T=8);for(var xb=0;xb<T;xb++){for(var La=f="",s=em(X),ga=0,Y=0;16>Y;Y++){var Xa=a.vb(X,1);"dw"==l?Y&1&&(f+=u(ga|Xa<<8)+(7==Y?" - ":" ")):f+=q(Xa)+(7==Y?"-":" ");La+=32<=Xa&&128>Xa?String.fromCharCode(Xa): -".";ga=Xa}J&&(J+="\n");J+=s+" "+f+" "+La}J&&a.fa(J);a.Zj=X}}}break;case "e":var Kc=f[1];if(void 0===Kc)a.fa("missing address");else{var mc=mm(a,Kc,2);if(null!=mc[0])for(l=2;l<f.length;l++){var hk=parseInt(f[l],16);a.fa("setting "+em(mc)+" to "+q(hk));a.Od(mc,hk,1)}}break;case "f":pm(a,f[1]);break;case "g":a:{var ik=f[1];if(void 0!==ik){var jk=mm(a,ik,1);if(null==jk[0])break a;a.Yd(a.tc,jk,!0)}a.Se(!0)||a.fa('cpu not available, "g" command ignored')}break;case "h":La=f[1];if(a.qa.Mb&&void 0===La)a.wb(); +break;case 1280:x+="task";break;case 1536:x+="int";break;case 1792:x+="trap";break;default:x+="unknown"}x+=",dpl"+(L.Oa>>13&24576);x+=L.Oa&32768?",present":",not present"}a.fa(x)}else a.fa("invalid selector: "+u(X[0]))}else{var T=0;void 0!==t&&("l"==t.charAt(0)&&(t=t.substr(1)),T=parseInt(t,10));var J="";T||(T=8);for(var xb=0;xb<T;xb++){for(var La=f="",s=em(X),ga=0,Y=0;16>Y;Y++){var Xa=a.wb(X,1);"dw"==l?Y&1&&(f+=u(ga|Xa<<8)+(7==Y?" - ":" ")):f+=q(Xa)+(7==Y?"-":" ");La+=32<=Xa&&128>Xa?String.fromCharCode(Xa): +".";ga=Xa}J&&(J+="\n");J+=s+" "+f+" "+La}J&&a.fa(J);a.Zj=X}}}break;case "e":var Kc=f[1];if(void 0===Kc)a.fa("missing address");else{var mc=mm(a,Kc,2);if(null!=mc[0])for(l=2;l<f.length;l++){var hk=parseInt(f[l],16);a.fa("setting "+em(mc)+" to "+q(hk));a.Od(mc,hk,1)}}break;case "f":pm(a,f[1]);break;case "g":a:{var ik=f[1];if(void 0!==ik){var jk=mm(a,ik,1);if(null==jk[0])break a;a.Yd(a.tc,jk,!0)}a.Se(!0)||a.fa('cpu not available, "g" command ignored')}break;case "h":La=f[1];if(a.qa.Mb&&void 0===La)a.xb(); else{l="";s=10;ga=a.mf;Y=a.Xd;if(Y.length){var Pa=void 0===La?a.Ol:parseInt(La,10);isNaN(Pa)?Pa=s:l="more ";Pa>Y.length&&(a.fa("note: only "+Y.length+" available"),Pa=Y.length);ga-=Pa;0>ga&&(null!=Y[Y.length-1][1]?ga+=Y.length:(Pa=ga+Pa,ga=0));for(void 0!==La&&a.fa(Pa+" instructions earlier:");s&&ga!=a.mf;){var pc=Y[ga];if(null==pc[1])break;pc=[pc[0],pc[1],pc[2]];a.fa(hm(a,pc,"history",-Pa));++ga==Y.length&&(ga=0);a.Ol=--Pa;s--}}10==s&&(a.fa("no "+l+"history available"),a.Ol=void 0)}break;case "i":var Ue= f[1];if(Ue&&"?"!=Ue){var Ve=nm(a,Ue);if(void 0!==Ve){var Im=ub(a.ra,Ve);a.fa(u(Ve)+": "+q(Im))}}else a.fa("\ninput commands:"),a.fa("\ti [p]\tread port [p]"),a.fa("warning: port accesses can affect hardware state");break;case "l":qm(a,f);break;case "m":a:{l=null;J=f[1];"?"==J&&(J=void 0);if(void 0!==J){s=0;if("all"==J)s=4294967295,J=null;else if("on"==J)l=!0,J=null;else if("off"==J)l=!1,J=null;else{for(T in Nl)if(J==T){s=Nl[T];l=!!(a.jc&s);break}if(!s){a.fa("unknown message category: "+J);break a}}s&& ("on"==f[2]?(a.jc|=s,l=!0):"off"==f[2]&&(a.jc&=~s,l=!1))}s=0;X="";for(T in Nl)if(!J||J==T)if(xb=!!(a.jc&Nl[T]),null===l||l==xb)X&&(X+=","),++s%10||(X+="\n\t"),X+=T;void 0===J&&a.fa("\nmessage commands:\n\tm [category] [on|off]\tturn categories on/off");a.fa((null!==l?l?"messages on: ":"messages off: ":"message categories:\n\t")+(X||"none"))}break;case "o":var We=f[1],Jm=f[2];if(We&&"?"!=We){var kk=nm(a,We,"port #"),lk=nm(a,Jm);void 0!==kk&&void 0!==lk&&Ab(a.ra,kk,lk)}else a.fa("\noutput commands:"), -a.fa("\to [p] [d]\twrite data [d] to port [p]"),a.fa("warning: port accesses can affect hardware state");break;case "p":case "pr":var mk="pr"==f[0]?1:0,l=1+mk;if(a.nc)a.fa("step in progress");else{var Od,s=!1,Qa=[a.T.va,a.T.xa.ta,void 0];do switch(Od=!1,a.vb(Qa)){case 38:case 46:case 54:case 62:case 240:dm(Qa,1);Od=!0;break;case 204:case 206:a.nc=l;dm(Qa,1);break;case 205:case 224:case 225:case 226:a.nc=l;dm(Qa,2);break;case 232:a.nc=l;dm(Qa,3);break;case 154:a.nc=l;dm(Qa,5);break;case 255:a.nc=0<= +a.fa("\to [p] [d]\twrite data [d] to port [p]"),a.fa("warning: port accesses can affect hardware state");break;case "p":case "pr":var mk="pr"==f[0]?1:0,l=1+mk;if(a.nc)a.fa("step in progress");else{var Od,s=!1,Qa=[a.T.va,a.T.xa.ta,void 0];do switch(Od=!1,a.wb(Qa)){case 38:case 46:case 54:case 62:case 240:dm(Qa,1);Od=!0;break;case 204:case 206:a.nc=l;dm(Qa,1);break;case 205:case 224:case 225:case 226:a.nc=l;dm(Qa,2);break;case 232:a.nc=l;dm(Qa,3);break;case 154:a.nc=l;dm(Qa,5);break;case 255:a.nc=0<= hm(a,Qa).indexOf("CALL")?l:0;break;case 243:case 242:dm(Qa,1);s=Od=!0;break;case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:s&&(a.nc=l,dm(Qa,1))}while(Od);a.nc?(a.Yd(a.tc,Qa,!0),a.Se()||(a.T.Pd(),a.nc=0)):rm(a,mk?"tr":"t")}break;case "r":Yl(a,f);break;case "t":case "tr":rm(a,f[0],f[1]);break;case "u":Zl(a,f[1],f[2],8);break;case "x":a:if(void 0===f[1]||"?"==f[1])a.fa("\nexecution options:"),a.fa("\tcs int #\tset checksum cycle interval to #"),a.fa("\tcs start #\tset checksum cycle start count to #"), a.fa("\tcs stop #\tset checksum cycle stop count to #"),a.fa("\tsp #\t\tset speed multiplier to #");else switch(f[1]){case "cs":var Nc;void 0!==f[3]&&(Nc=parseInt(f[3],10));switch(f[2]){case "int":a.T.ca.of=Nc;break;case "start":a.T.ca.hg=Nc;break;case "stop":a.T.ca.qf=Nc;break;default:a.fa("unknown cs option");break a}void 0!==Nc&&Ob(a.T);a.fa("checksums "+(a.T.qa.ff?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&Vb(a.T,parseInt(f[2],10));a.fa("target speed: "+(a.T.ca.Le.toFixed(2)+"Mhz")+ " ("+a.T.ca.Id+"x)");break;default:a.fa("unknown option: "+f[1])}break;case "?":var l="commands:",Pd;for(Pd in Ol)l+="\n"+Pd+" ".substr(0,7-Pd.length)+Ol[Pd];Ed(a)||(l+="\nnote: frequency/history disabled if no exec breakpoints");a.fa(l);break;default:a.fa("unknown command: "+b)}}}catch(Km){a.fa("debugger sad: "+Km.message)}}Fa(function(){for(var a=A(window.document,"pcjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Jl(d);Za(d,c)}}); @@ -734,25 +734,25 @@ function wm(a,b,c){y.call(this,"Computer",a,wm);this.qa.Lb=!1;this.eg=a.buswidth e[b],d.pc&&d.pc(this,this.ra,this.T,this.da);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.Nh=d:this.Qc=parseInt(d,10));var f;if(a=Na&&Na.state||(f=!0,a.state))b=this.$l=a,f||(this.oh=!0,this.Qc=xm),this.Qc&&(this.Qh=new gd(this,"1.15.9"),this.Qh.load()?b=null:delete this.Qh);!b&&this.Qc&&(f=null,this.Rc&&(f=ta()+"/api/v1/user?req=load&user="+this.Rc+"&state="+tm(this,"1.15.9")),b=f)&&(this.oh=!0);b?sa(b,!0,null,this,this.Xn):this.Ta();c||zm(this,this.Gh)}else w("Unable to find CPU component")} Ua(y,wm);var vl=102,xm=0;k=wm.prototype;k.kf=function(){return this.cp};k.je=function(){return this.Rc?this.Rc:""};k.Xn=function(a,b,c){c?(this.Nh=null,this.oh=!1,this.Ja("Unable to load machine state from server (error "+c+(b?": "+la(b):"")+")")):this.Cg=b;this.Ta()};function zm(a,b,c){for(var d=Va(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!bb(f)){bb(f,function(){zm(a,b,c)});return}}b.call(a,c)} function Am(a,b){var c=new gd(a,"1.15.9","validate");if(c.load()&&c.parse()){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.Ja("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}} -k.Gh=function(a){void 0===a&&(a=this.Qc||(this.Cg?1:xm));var b=!1,c=!1;this.wk=!1;var d=this.Qh||new gd(this,"1.15.9");if(-1==a)b=!0;else if(a>xm){if(d.load(this.Cg)){this.We=new gd(this,"1.15.9","failsafe");this.We.load()&&(Bm(this,d),a=2,um(this.We));this.We.set("timestamp",pa());vm(this.We);var e=this.Qc&&!this.oh;if(1==a||ua("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=d.parse()){var f=d.get("code"),h=d.get("data");f&&("ok"==f?d.load(h):("error"== -f&&"no machine state"!=h?(this.Ja("Error: "+h),"unable to verify user"==h&&(xa("user",""),this.Rc=null)):this.fa(f+": "+h),um(d),d.load()?(c=d.parse(),e=!0):c=!1))}e&&Am(this,c?d:null)}else 2==a&&d.clear()}else Am(this);delete this.Cg;delete this.Qh}e=Va(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.T&&(c=Cm(this,h,d,b,c));b=[d,a,c];-1!=a?zm(this,this.qk,b):this.qk(b)}; +k.Gh=function(a){void 0===a&&(a=this.Qc||(this.Cg?1:xm));var b=!1,c=!1;this.wk=!1;var d=this.Qh||new gd(this,"1.15.9");if(-1==a)b=!0;else if(a>xm){if(d.load(this.Cg)){this.We=new gd(this,"1.15.9","failsafe");this.We.load()&&(Bm(this,d),a=2,um(this.We));this.We.set("timestamp",pa());vm(this.We);var e=this.Qc&&!this.oh;if(1==a||ua("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=d.parse()){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"== +f&&"no machine state"!=g?(this.Ja("Error: "+g),"unable to verify user"==g&&(xa("user",""),this.Rc=null)):this.fa(f+": "+g),um(d),d.load()?(c=d.parse(),e=!0):c=!1))}e&&Am(this,c?d:null)}else 2==a&&d.clear()}else Am(this);delete this.Cg;delete this.Qh}e=Va(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.T&&(c=Cm(this,g,d,b,c));b=[d,a,c];-1!=a?zm(this,this.qk,b):this.qk(b)}; function Cm(a,b,c,d,e){if(!b.qa.Lb){b.qa.Lb=!0;if(b.Yb){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Yb(f,d)&&f&&(w("Unable to restore state for "+b.type),a.$l&&!a.Cg?(c.clear(),a.Qc=xm,window&&window.location.reload()):a.wk=!0,b.Yb(null),e=!1)}if(!d&&b.mk)for(a=b.mk.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e} k.qk=function(a){var b=a[0],c=0>a[1];a=a[2];this.qa.Lb=!0;this.uk||(this.fa("PCjs v1.15.9\nCopyright \u00a9 2012-2014 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.uk=!0);this.T&&Cm(this,this.T,b,c,a);this.wk&&(Bm(this,b),b.clear());!c&&this.We&&(this.We.clear(),delete this.We)}; function Bm(a,b){if(ua("There may be a problem with your PCjs machine.\n\nTo help us diagnose it, click OK to send this PCjs machine state to http://www.pcjs.org.")){var c=a.je(),d=b.toString(),e={app:"PCjs",ver:"1.15.9"};e.url=a.url;e.user=c;e.type="bug";e.data=d;sa("http://www.pcjs.org/api/v1/report",!0,e)}} -function sm(a,b,c){var d,e="none",f=new gd(a,"1.15.9"),h=new gd(a,"1.15.9","validate"),g=pa();h.set("timestamp",g);f.set("timestamp",g);f.set("version","1.15.9");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.T&&a.T.Xb&&(c&&a.T.wb(),d=a.T.Xb(b,c),"object"===typeof d&&f.set(a.T.id,d),c&&(a.T.qa.Lb=!1,!1===d&&(e=null)));for(var g=Va(a.id),l=0;l<g.length;l++){var n=g[l];n.qa.Lb&&(n.Xb&&(d=n.Xb(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.qa.Lb= -!1,!1===d&&(e=null)))}e&&(c?(g=d=!1,b?(a.Rc&&Dm(a,a.Rc,f.toString()),vm(h)&&vm(f)||(e=null,d=g=!0)):a.Qc&&(d=!0,g=3==a.Qc),d&&f.clear(g)):e=f.toString());c&&(a.qa.Lb=!1);return e}k.reset=function(){this.ra&&this.ra.reset&&(this.Ra("Resetting "+this.ra.type,!0),this.ra.reset());for(var a=Va(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ra&&c.reset&&(this.Ra("Resetting "+c.type,!0),c.reset())}}; +function sm(a,b,c){var d,e="none",f=new gd(a,"1.15.9"),g=new gd(a,"1.15.9","validate"),h=pa();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.15.9");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.T&&a.T.Xb&&(c&&a.T.xb(),d=a.T.Xb(b,c),"object"===typeof d&&f.set(a.T.id,d),c&&(a.T.qa.Lb=!1,!1===d&&(e=null)));for(var h=Va(a.id),l=0;l<h.length;l++){var n=h[l];n.qa.Lb&&(n.Xb&&(d=n.Xb(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.qa.Lb= +!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.Rc&&Dm(a,a.Rc,f.toString()),vm(g)&&vm(f)||(e=null,d=h=!0)):a.Qc&&(d=!0,h=3==a.Qc),d&&f.clear(h)):e=f.toString());c&&(a.qa.Lb=!1);return e}k.reset=function(){this.ra&&this.ra.reset&&(this.Ra("Resetting "+this.ra.type,!0),this.ra.reset());for(var a=Va(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ra&&c.reset&&(this.Ra("Resetting "+c.type,!0),c.reset())}}; k.start=function(a,b){for(var c=Va(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};k.stop=function(a,b){for(var c=Va(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}}; -k.zb=function(a,b,c,d){var e=this;switch(c){case "save":return this.za[c]=d,d.onclick=function(){var a=ym(e,!0);if(a){var b=!(!e.Qc||e.Nh),c=sm(e,b);b?Dm(e,a,c):e.Ja("Resume disabled, machine state not saved")}},!0;case "reset":return this.za[c]=d,d.onclick=function(){Ub(e)},!0}return!1}; +k.Ab=function(a,b,c,d){var e=this;switch(c){case "save":return this.za[c]=d,d.onclick=function(){var a=ym(e,!0);if(a){var b=!(!e.Qc||e.Nh),c=sm(e,b);b?Dm(e,a,c):e.Ja("Resume disabled, machine state not saved")}},!0;case "reset":return this.za[c]=d,d.onclick=function(){Ub(e)},!0}return!1}; function ym(a,b){var c=a.Rc;c||(c=wa("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("To save machine states on the pcjs.org server, you need a user ID (email support@pcjs.org).\n\nOnce you have an ID, enter it below.","")),c&&((c=Em(a,c))||a.Ja("Your user ID has not been approved."))):b&&a.Ja("Browser local storage is not available"));return c} function Em(a,b){a.Rc=null;var c=sa(ta()+"/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.Rc=c.data)}catch(e){w(e.message+" ("+d+")")}return a.Rc} function Dm(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=tm(a,"1.15.9");d.data=c;b=sa(ta()+"/api/v1/user",!1,d);d=b[1];if(b[0]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[0]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Ja("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.Ja(c),xa("user",""),a.Rc=null)}} function Ub(a){if(a.Qc&&!a.Nh){var b=ua("Click OK to save changes to this PCjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");sm(a,b,!0);!b&&a.$l?window&&window.location.reload():(b||(a.xi=!0),a.Gh(xm),a.xi=!1)}else a.reset(),a.T&&Pb(a.T)}function eb(a,b,c){a=Va(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}k.Ra=function(a,b){this.da&&(b||C(this.da,524288))&&this.da.message(a)}; -Fa(function(){for(var a=A(window.document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=A(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],h=z(f),h=new wm(h,d,!0);Za(h,f);zm(h,h.Gh)}});Ba.show.push(function(){for(var a=A(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ya("Computer",c.id))&&c.uk&&!c.qa.Lb&&c.Gh(-1)}}); -Ba.exit.push(function(){for(var a=A(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ya("Computer",c.id))&&c.qa.Lb&&sm(c,!(!c.Qc||c.Nh),!0)}});var Fm=0;function Gm(a,b,c,d,e,f){e("Loading "+a+"...");sa(a,!0,null,null,function(h,g,l){l?(g||(g="unable to load "+a+" ("+l+")"),f(g,null)):Hm(g,a,b,c,d,e,f)})} -function Hm(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){var g=b;g&&0>g.indexOf("/")&&(g=window.location.pathname+g);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(g?" url=$2"+g+"$2":""))}g=null;if("<"==a.charAt(0))try{window.ActiveXObject||"ActiveXObject"in window?(e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(s){g= -null,a=s.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Lm(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)} -function Lm(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");sa(e,!0,null,null,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],n,r=/( [a-z]+=)(['"])(.*?)\2/g;n=r.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[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]*/, -"");a=a.replace(d[0],h);Lm(a,b,c)}})}else c(a,null)} -function Mm(a,b,c,d){function e(a){if(void 0===l){var b=g&&A(g,"machine-warning");l=b&&b[0]||g}l&&(l.innerHTML=ia(a))}function f(a){e("Error: "+a);n&&h();n=!1}function h(){0==--Fm&&Ha(!0)}var g,l,n=!0;Fm++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.9/components.xsl");var r=function(a,d){if(d){var l=function(a,l){if(l)if(l)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var n=d.transformNode(l);n?(g.outerHTML=n,h()):f("transformNodeToObject failed")}else window.document.implementation&& -window.document.implementation.createDocument?(n=new XSLTProcessor,n.importStylesheet(l),(n=n.transformToFragment(d,window.document))?(g.parentNode.replaceChild(n,g),h()):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(a)};d?Gm(c,null,null,!1,e,l):f("failed to load XML file: "+b)}else f(a)};"<"!=b.charAt(0)?Gm(b,a,d,!0,e,r):Hm(b,null,a,d,!1,e,r)}else f("failed to find machine element: "+a)}catch(s){f(s.message)}return n} +Fa(function(){for(var a=A(window.document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=A(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=z(f),g=new wm(g,d,!0);Za(g,f);zm(g,g.Gh)}});Ba.show.push(function(){for(var a=A(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ya("Computer",c.id))&&c.uk&&!c.qa.Lb&&c.Gh(-1)}}); +Ba.exit.push(function(){for(var a=A(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ya("Computer",c.id))&&c.qa.Lb&&sm(c,!(!c.Qc||c.Nh),!0)}});var Fm=0;function Gm(a,b,c,d,e,f){e("Loading "+a+"...");sa(a,!0,null,null,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):Hm(h,a,b,c,d,e,f)})} +function Hm(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){var h=b;h&&0>h.indexOf("/")&&(h=window.location.pathname+h);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(h?" url=$2"+h+"$2":""))}h=null;if("<"==a.charAt(0))try{window.ActiveXObject||"ActiveXObject"in window?(e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(s){h= +null,a=s.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?Lm(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)} +function Lm(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");sa(e,!0,null,null,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],n,r=/( [a-z]+=)(['"])(.*?)\2/g;n=r.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],g);Lm(a,b,c)}})}else c(a,null)} +function Mm(a,b,c,d){function e(a){if(void 0===l){var b=h&&A(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=ia(a))}function f(a){e("Error: "+a);n&&g();n=!1}function g(){0==--Fm&&Ha(!0)}var h,l,n=!0;Fm++;try{if(h=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.9/components.xsl");var r=function(a,d){if(d){var l=function(a,l){if(l)if(l)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var n=d.transformNode(l);n?(h.outerHTML=n,g()):f("transformNodeToObject failed")}else window.document.implementation&& +window.document.implementation.createDocument?(n=new XSLTProcessor,n.importStylesheet(l),(n=n.transformToFragment(d,window.document))?(h.parentNode.replaceChild(n,h),g()):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(a)};d?Gm(c,null,null,!1,e,l):f("failed to load XML file: "+b)}else f(a)};"<"!=b.charAt(0)?Gm(b,a,d,!0,e,r):Hm(b,null,a,d,!1,e,r)}else f("failed to find machine element: "+a)}catch(s){f(s.message)}return n} window.embedPC=function(a,b,c,d){return Mm(a,b,c,d)};window.enableEvents=Ha;window.sendEvent=Ia;Ha(!1);})(); diff --git a/versions/pcjs/1.15.9/pc.js b/versions/pcjs/1.15.9/pc.js index eccabc1b6..28a72529f 100644 --- a/versions/pcjs/1.15.9/pc.js +++ b/versions/pcjs/1.15.9/pc.js @@ -1,7 +1,7 @@ -(function(){var h,aa,k;function p(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(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 da(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));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}var fa={"&":"&","<":"<",">":">",'"':""","'":"'"}; +(function(){var h,aa,l;function p(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(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 da(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));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}var fa={"&":"&","<":"<",">":">",'"':""","'":"'"}; function ga(a){return a.replace(/[&<>"']/g,function(a){return fa[a]})}function ha(){return Date.now()||+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())}var ja=[31,28,31,30,31,30,31,31,30,31,30,31],ka; -function q(a,b,c,d,e,f){b=!!b;var l=0,g=null,m=da(a),n=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(n.onreadystatechange=function(){4===n.readyState&&(g=n.responseText,200==n.status||!n.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(l=n.status||-1),e&&(d?e.call(d,m,g,l,f):e(m,g,l,f)))});if(c){var r="",x;for(x in c)c.hasOwnProperty(x)&&(r&&(r+="&"),r+=x+"="+encodeURIComponent(c[x]));r=r.replace(/%20/g,"+");n.open("POST",a, -b);n.setRequestHeader("Content-type","application/x-www-form-urlencoded");n.send(r)}else n.open("GET",a,b),n.send();a=[];b||(g=n.responseText,200!=n.status&&(l=n.status||-1),e&&(d?e.call(d,m,g,l,f):e(m,g,l,f)),a=[l,g]);return a}function la(){return"http://"+(window?window.location.host:"www.pcjs.org")}function s(a){window&&window.alert(a)}function ma(a){var b=!1;window&&(b=window.confirm(a));return b} +function q(a,b,c,d,e,f){b=!!b;var k=0,g=null,m=da(a),n=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(n.onreadystatechange=function(){4===n.readyState&&(g=n.responseText,200==n.status||!n.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(k=n.status||-1),e&&(d?e.call(d,m,g,k,f):e(m,g,k,f)))});if(c){var r="",x;for(x in c)c.hasOwnProperty(x)&&(r&&(r+="&"),r+=x+"="+encodeURIComponent(c[x]));r=r.replace(/%20/g,"+");n.open("POST",a, +b);n.setRequestHeader("Content-type","application/x-www-form-urlencoded");n.send(r)}else n.open("GET",a,b),n.send();a=[];b||(g=n.responseText,200!=n.status&&(k=n.status||-1),e&&(d?e.call(d,m,g,k,f):e(m,g,k,f)),a=[k,g]);return a}function la(){return"http://"+(window?window.location.host:"www.pcjs.org")}function s(a){window&&window.alert(a)}function ma(a){var b=!1;window&&(b=window.confirm(a));return b} function na(){if(void 0===ka){var a;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 oa(a){var b;try{b=window.localStorage.getItem(a)}catch(c){}return b}function pa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1} function qa(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 ra={init:[],show:[],exit:[]},sa=!1,ta=!0;function ua(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function t(a){ra.init.push(a)} function wa(a){if(ta)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){s("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function xa(a){!ta&&a?(ta=!0,sa&&ya("init")):ta=a}function ya(a){ra[a]&&wa(ra[a])}ua("onload",function(){sa=!0;wa(ra.init)});ua("onpageshow",function(){wa(ra.show)});ua(qa("Opera")||qa("iOS")?"onunload":"onbeforeunload",function(){wa(ra.exit)}); @@ -9,30 +9,30 @@ function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.na 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 y(a,b){b.prototype=Ea(a.prototype)}var w=[]; function Fa(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 Ga(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<w.length;c++)if(w[c].id===a)return w[c]}return null} 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 z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("({"+a+"})")}catch(c){s(c.message+" ("+a+")")}return b} -function A(a,b){var c,d;d=B(b.parentNode,"pcjs-control");for(c=0;c<d.length;c++){var e,f;f=d[c].childNodes;for(e=0;e<f.length;e++){var l=f[e];if(l.nodeType===window.document.ELEMENT_NODE){var g=l.getAttribute("class");if(g){var m,n;n=g.split(" ");for(m=0;m<n.length;m++)switch(g=n[m],g){case "pcjs-input":case "pcjs-output":(n=z(l))&&n.binding&&a.wb(g,n.type,n.binding,l),n=[]}}}}}} +function A(a,b){var c,d;d=B(b.parentNode,"pcjs-control");for(c=0;c<d.length;c++){var e,f;f=d[c].childNodes;for(e=0;e<f.length;e++){var k=f[e];if(k.nodeType===window.document.ELEMENT_NODE){var g=k.getAttribute("class");if(g){var m,n;n=g.split(" ");for(m=0;m<n.length;m++)switch(g=n[m],g){case "pcjs-input":case "pcjs-output":(n=z(k))&&n.binding&&a.wb(g,n.type,n.binding,k),n=[]}}}}}} function B(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} v.prototype={toString:function(){return this.name?this.name:this.id||this.type},wb:function(a,b,c,d){switch(c){case "clear":return this.sa[c]||(this.sa[c]=d,d.onclick=function(a){return function(){a.sa.print&&(a.sa.print.value="")}}(this)),!0;case "print":return this.sa[c]||(this.sh=this.sa[c]=d,d.value="",this.hc=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}}(d),this.za= function(a,b,c){this.hc(a,"notice",c)}),!0;default:return!1}},log:function(){},hc:function(){},status:function(a){this.hc(this.Oh+": "+a)},za:function(a,b){b||s(a)},Ma:function(a){this.na.Oc||(this.na.ug=!1!==a,this.na.ug&&(this.name&&this.log("ready"),a=this.Jh,this.Jh=null,a&&a()))},Qb:function(){return this.na.Db=!0},Pb:function(a,b){b&&(this.na.Db=!1);return!0}}; function Ia(a,b){if(a.na.Ah)return a.na.Ic&&(a.na.Ic=!1),a.na.Ah=!1;if(a.na.Oc)return a.hc(a.toString()+" error"),!1;a.na.Ic=b;return a.na.Ic}function Ja(a,b){b&&(a.na.ug?b():a.Jh=b);return a.na.ug}function Ka(a,b){a.na.Oc=!0;a.za("Fatal error: "+b)}window&&!window.document.ELEMENT_NODE&&(window.document.ELEMENT_NODE=1);function La(a){v.call(this,"Panel",a,La)}y(v,La); La.prototype.wb=function(a,b,c,d){return this.La&&this.La.wb(a,b,c,d)||this.la&&this.la.wb(a,b,c,d)||this.Ra&&this.Ra.wb(a,b,c,d)?!0:v.prototype.wb.call(this,a,b,c,d)};La.prototype.mc=function(a,b,c,d){this.La=a;this.la=c;this.Pa=d;this.Ra=D(a,"Keyboard")};La.prototype.Qb=function(a,b){b||Ma();return!0};La.prototype.Pb=function(){return!0};function Ma(){for(var a=!1,b=B(window.document,"pcjs","panel"),c=0;c<b.length;c++){var d=b[c],e=z(d),f=Ga(e.id);f||(a=!0,f=new La(e));A(f,d);a&&f.Ma()}}t(Ma); function Na(a,b,c){v.call(this,"Bus",a,Na);this.la=b;this.Pa=c;this.pf=a.buswidth||20;this.ih=this.Xc=(1<<this.pf)-1;this.Nb=20>=this.pf?12:14;this.pc=1<<this.Nb;this.sj=this.pc>>2;this.fb=this.pc-1;this.ig=(this.ih+this.pc)/this.pc|0;this.Yd=this.ig-1;this.Vf=[];this.Wf=[];this.Qh();this.Ma()}y(v,Na);Na.prototype.Qh=function(){this.Ba=Array(this.ig);for(var a=0;a<this.ig;a++)this.Ba[a]=new Oa(a*this.pc);this.la.Qh(this.Ba,this.ih,this.Nb,this.fb,this.Yd);this.la.Td=this.Xc}; -Na.prototype.reset=function(){Pa(this,!0)};Na.prototype.Qb=function(a,b){b||this.reset();return!0};function Qa(a,b,c,d,e){if(!(b&a.fb||!c||c&a.fb)){for(var f=b>>a.Nb;0<c&&f<a.Ba.length;){var l=a.Ba[f];if(void 0!==l&&l.size)return Ra(1,b,c);b=f*a.pc;a.Ba[f++]=new Oa(b,a.pc,d,e);c-=a.pc}return!0}return Ra(2,b,c)}function Pa(a,b){if(void 0!==b&&20<a.pf){var c=a.Xc&-1048577|(b?1048576:0);c!=a.Xc&&(a.Xc=c,a.la&&(a.la.Td=c))}} +Na.prototype.reset=function(){Pa(this,!0)};Na.prototype.Qb=function(a,b){b||this.reset();return!0};function Qa(a,b,c,d,e){if(!(b&a.fb||!c||c&a.fb)){for(var f=b>>a.Nb;0<c&&f<a.Ba.length;){var k=a.Ba[f];if(void 0!==k&&k.size)return Ra(1,b,c);b=f*a.pc;a.Ba[f++]=new Oa(b,a.pc,d,e);c-=a.pc}return!0}return Ra(2,b,c)}function Pa(a,b){if(void 0!==b&&20<a.pf){var c=a.Xc&-1048577|(b?1048576:0);c!=a.Xc&&(a.Xc=c,a.la&&(a.la.Td=c))}} Na.prototype.Xg=function(a,b,c){if(!(a&this.fb||!b||b&this.fb)){for(var d=a>>this.Nb;0<b;){var e=this.Ba[d];if(!e.ea)return Ra(5,a,b);e.pe(c);b-=this.pc;d++}return!0}return Ra(3,a,b)};function Sa(a,b,c){if(!(b&a.fb||!c||c&a.fb)){for(var d=b>>a.Nb;0<c;)b=d*a.pc,a.Ba[d++]=new Oa(b),c-=a.pc;return!0}return Ra(4,b,c)}function Ta(a,b){return a.Ba[(b&a.Xc)>>a.Nb].Ti(b&a.fb)}function Va(a,b){var c=b&a.fb,d=(b&a.Xc)>>a.Nb;return c!=a.fb?a.Ba[d].Tn(c):a.Ba[d++].Ti(c)|a.Ba[d&a.Yd].Ti(0)<<8} -function Wa(a,b,c){a.Ba[(b&a.Xc)>>a.Nb].aj(b&a.fb,c&255)}function Xa(a,b,c){var d=b&a.fb;b=(b&a.Xc)>>a.Nb;d!=a.fb?a.Ba[b].co(d,c&65535):(a.Ba[b++].aj(d,c&255),a.Ba[b&a.Yd].aj(0,c>>8&255))}function Ya(a){for(var b=0,c=[],d=0;d<a.ig;d++){var e=a.Ba[d];if(e.Za||e.zj){c[b++]=d;var f=c,l=b++;a:if(e=e.save()){for(var g=0,m=0,n=[];g<e.length;){for(var r=e[g],x=g+1;x<e.length&&e[x]===r;)x++;n[m++]=x-g;n[m++]=r;g=x}if(n.length<e.length){e=n;break a}}f[l]=e}}c[b]=a.ih==a.Xc;return c} -function Za(a,b,c,d){void 0===d&&(d=0);for(var e in c){e=parseInt(e,10);var f=a,l=e+d,g=b,m=c[e];if(void 0!==m)for(var n=e+d;n<=l;n++)void 0!==f.Vf[n]?s("Input port "+p(n,4)+" registered by "+f.Vf[n][0].id+", ignoring "+g.id):f.Vf[n]=[g,m,!1,!1]}}function $a(a,b,c){var d=255;a=a.Vf[b];void 0!==a&&a[1]&&(d=a[1].call(a[0],b,c));return d} -function ab(a,b,c,d){void 0===d&&(d=0);for(var e in c){e=parseInt(e,10);var f=a,l=e+d,g=b,m=c[e];if(void 0!==m)for(var n=e+d;n<=l;n++)void 0!==f.Wf[n]?s("Output port "+p(n,4)+" registered by "+f.Wf[n][0].id+", ignoring "+g.id):f.Wf[n]=[g,m,!1,!1]}}function bb(a,b,c,d){a=a.Wf[b];void 0!==a&&a[1]&&a[1].call(a[0],b,c,d)}function Ra(a,b,c){s("Memory block error ("+a+","+p(b)+","+p(c)+")");return!1} +function Wa(a,b,c){a.Ba[(b&a.Xc)>>a.Nb].aj(b&a.fb,c&255)}function Xa(a,b,c){var d=b&a.fb;b=(b&a.Xc)>>a.Nb;d!=a.fb?a.Ba[b].co(d,c&65535):(a.Ba[b++].aj(d,c&255),a.Ba[b&a.Yd].aj(0,c>>8&255))}function Ya(a){for(var b=0,c=[],d=0;d<a.ig;d++){var e=a.Ba[d];if(e.Za||e.zj){c[b++]=d;var f=c,k=b++;a:if(e=e.save()){for(var g=0,m=0,n=[];g<e.length;){for(var r=e[g],x=g+1;x<e.length&&e[x]===r;)x++;n[m++]=x-g;n[m++]=r;g=x}if(n.length<e.length){e=n;break a}}f[k]=e}}c[b]=a.ih==a.Xc;return c} +function Za(a,b,c,d){void 0===d&&(d=0);for(var e in c){e=parseInt(e,10);var f=a,k=e+d,g=b,m=c[e];if(void 0!==m)for(var n=e+d;n<=k;n++)void 0!==f.Vf[n]?s("Input port "+p(n,4)+" registered by "+f.Vf[n][0].id+", ignoring "+g.id):f.Vf[n]=[g,m,!1,!1]}}function $a(a,b,c){var d=255;a=a.Vf[b];void 0!==a&&a[1]&&(d=a[1].call(a[0],b,c));return d} +function ab(a,b,c,d){void 0===d&&(d=0);for(var e in c){e=parseInt(e,10);var f=a,k=e+d,g=b,m=c[e];if(void 0!==m)for(var n=e+d;n<=k;n++)void 0!==f.Wf[n]?s("Output port "+p(n,4)+" registered by "+f.Wf[n][0].id+", ignoring "+g.id):f.Wf[n]=[g,m,!1,!1]}}function bb(a,b,c,d){a=a.Wf[b];void 0!==a&&a[1]&&a[1].call(a[0],b,c,d)}function Ra(a,b,c){s("Memory block error ("+a+","+p(b)+","+p(c)+")");return!1} function Oa(a,b,c,d){this.ql=b||0;this.pa=null;this.offset=0;this.Bj=c;this.ea=null;this.Za=this.zj=!1;if(b)if(d)this.ea=d,a=[d.Ud,a-d.Oa],this.pa=a[0],this.offset=a[1],this.pe(d.Xe);else{this.pa=Array(b>>2);for(d=0;d<this.pa.length;d++)this.pa[d]=0;this.pe(cb)}else this.pe()} Oa.prototype={Qg:function(){return 0},$g:function(){},Rn:function(a){return this.pa[a>>2]>>>((a&3)<<3)&255},Un:function(a){var b=a>>2;a=(a&3)<<3;var c=this.pa[b]>>>a;return 24>a?c&65535:c&255|(this.pa[b+1]&255)<<8},ao:function(a,b){var c=a>>2,d=(a&3)<<3;this.pa[c]=this.pa[c]&~(255<<d)|b<<d;this.Za=!0},eo:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.pa[c]=this.pa[c]&~(65535<<d)|b<<d:(this.pa[c]=this.pa[c]&16777215|b<<24,c++,this.pa[c]=this.pa[c]&4294967040|b>>8);this.Za=!0},save:function(){return this.ea? null:this.pa},restore:function(a){return this.ea?null==a:a&&this.ql==a.length<<2?(this.pa=a,this.Za=!0):!1},pe:function(a,b){a||(a=[]);void 0===b&&(b=!0);var c=a;this.xc=c[0]?c[0]:this.Qg;this.Sn=c[1]?c[1]:this.Qg;b&&(this.Ti=c[0]?c[0]:this.Qg,this.Tn=c[1]?c[1]:this.Qg);c=a;this.Ac=c[2]&&!this.Bj?c[2]:this.$g;this.bo=c[3]&&!this.Bj?c[3]:this.$g;b&&(this.aj=c[2]?c[2]:this.$g,this.co=c[3]?c[3]:this.$g)}};var cb=[Oa.prototype.Rn,Oa.prototype.Un,Oa.prototype.ao,Oa.prototype.eo]; function db(a,b){v.call(this,"CPU",a,db);var c=a.cycles||b,d=a.multiplier||1;this.ba={};this.ba.hd=c;this.ba.Dd=d;this.ba.Cg=Math.round(this.ba.hd/1E4)/100;this.ba.He=this.ba.Cg*this.ba.Dd;this.na.Db=!1;this.na.uc=!1;this.na.zh=a.autoStart;c=Aa.autostart;void 0!==c&&(this.na.zh="true"==c?!0:"false"==c?!1:null);this.na.qg=!1;this.ba.Hg=this.ba.Je=0;this.ba.Ig=a.csStart;this.ba.rf=a.csInterval;this.ba.sf=a.csStop;var e=this;this.Um=function(){eb(e)};this.Ma()}y(v,db);h=db.prototype; -h.mc=function(a,b,c,d){this.qa=b;this.Pa=d;this.La=a;var e=D(a,"Video");e&&(this.lf=function(){fb(e)},this.Oe=function(){e.Oe()});this.ja=D(a,"ChipSet");this.Ma()};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};h.Qb=function(a,b){if(!b){if(a&&this.restore){gb(this);if(!this.restore(a))return!1;hb(this)}else this.reset();this.hc("No debugger detected")}this.na.Db=!0;!ib(this)&&this.Pa&&this.Pa.xp();this.lf();this.kf();return!0}; +h.mc=function(a,b,c,d){this.qa=b;this.Pa=d;this.La=a;var e=D(a,"Video");e&&(this.lf=function(){fb(e)},this.Oe=function(){e.Oe()});this.ja=D(a,"ChipSet");this.Ma()};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};h.Qb=function(a,b){if(!b){if(a&&this.restore){gb(this);if(!this.restore(a))return!1;hb(this)}else this.reset();this.hc("No debugger detected")}this.na.Db=!0;!ib(this)&&this.Pa&&this.Pa.zp();this.lf();this.kf();return!0}; h.Pb=function(a){this.na.Db=!1;return a&&this.save?this.save():!0};function ib(a){return!0===a.na.zh||null===a.na.zh&&void 0===a.sa.run?(eb(a),!0):!1}h.Oe=function(){};h.Fj=function(){return 0};function hb(a){void 0===a.ba.Ig&&(a.ba.Ig=0);void 0===a.ba.rf&&(a.ba.rf=-1);void 0===a.ba.sf&&(a.ba.sf=-1);a.na.qg=0<=a.ba.Ig&&0<a.ba.rf;a.na.qg&&(a.ba.Hg=0,a.ba.Je=a.ba.Ig-a.ke)} function E(a,b,c,d){void 0!==a.sa[b]&&(void 0===d&&(d=4),void 0===c&&(Ka(a,"Register "+b+" is invalid"),jb(a)),c=p(c,d),a.sa[b].innerHTML!=c&&(a.sa[b].innerHTML=c))}h.kf=function(){};h.lf=function(){}; h.wb=function(a,b,c,d){var e=this;a=!1;switch(c){case "run":this.sa[c]=d;d.onclick=function(){e.na.uc?jb(e,!0):eb(e,!0)};a=!0;break;case "reset":this.sa[c]=d;d.onclick=function(){e.La&&lb(e.La)};a=!0;break;case "speed":this.sa[c]=d;a=!0;break;case "setSpeed":this.sa[c]=d,d.onclick=function(){mb(e,e.ba.Dd<<1,!0)},d.innerHTML=this.ba.He.toFixed(2)+"Mhz",a=!0}return a};function nb(a,b,c){a.ke+=b;c&&(a.Rc=a.A=0)} function ob(a,b){var c=30;60>c&&(c=60);2>c&&(c=2);var d=1;b&&1<a.ba.Dd&&a.ba.Qc&&(d=a.ba.Qc/a.ba.Cg);a.ba.Mj=Math.round(1E3/30);a.ba.Om=Math.floor(a.ba.hd/c*d);a.ba.Xh=Math.floor(a.ba.hd/30*d);a.ba.Qj=Math.floor(a.ba.hd/60*d);a.ba.Pj=Math.floor(a.ba.hd/2*d);b||(a.ba.vf=a.ba.Xh,a.ba.uf=a.ba.Qj,a.ba.tf=a.ba.Pj);a.ba.Yh=0}function pb(a,b){var c=a.ke+a.Id+a.Rc-a.A;b&&1<a.ba.Dd&&a.ba.Qc>a.ba.Cg&&(c=Math.round(c/a.ba.Dd));return c}function gb(a){a.ba.Qc=0;a.Fg=1;a.ke=a.Id=a.Rc=a.A=0;hb(a);mb(a,1)} function mb(a,b,c){void 0!==b&&(0.8>a.ba.Qc/a.ba.He&&(b=1),a.ba.Dd=b,b=a.ba.Cg*a.ba.Dd,a.ba.He!=b&&(a.ba.He=b,b=a.ba.He.toFixed(2)+"Mhz",a.sa.setSpeed&&(a.sa.setSpeed.innerHTML=b),a.hc("target speed: "+b)),c&&a.Oe());nb(a,a.Id);a.Id=0;a.ba.Ie=ha();a.ba.he=0;ob(a)} function eb(a,b){if(Ia(a,!0)){a.na.uc||(mb(a),a.La&&a.La.start(a.ba.Ie,pb(a)),a.na.uc=!0,a.ja&&qb(a.ja),a.sa.run&&(a.sa.run.innerHTML="Halt"),b&&a.Oe());a.ba.Yh>=a.ba.hd&&ob(a,!0);a.ba.wf=0;a.ba.Eg=ha();if(a.ba.he){var c=a.ba.Eg-a.ba.he;c>a.ba.Mj&&(a.ba.Ie+=c,a.ba.Ie>a.ba.Eg&&(a.ba.Ie=a.ba.Eg))}try{do{a.fl(a.na.qg?1:Math.round(a.ba.Om/a.Fg));var d=a.Rc-a.A;a.Id+=d;a.ba.wf+=d;nb(a,0,!0);var c=a,e=d;if(c.na.qg){var f=!1;c.ba.Hg=c.ba.Hg+c.Fj()|0;c.ba.Je-=e;0>=c.ba.Je&&(c.ba.Je+=c.ba.rf,f=!0);0<=c.ba.sf&& -c.ba.sf<=pb(c)&&(c.ba.rf=c.ba.sf=-1,hb(c),jb(c),f=!0);f&&c.hc(pb(c)+" cycles: checksum="+p(c.ba.Hg))}a.ba.uf-=d;0>=a.ba.uf&&(a.ba.uf+=a.ba.Qj,a.lf());a.ba.tf-=d;0>=a.ba.tf&&(a.ba.tf+=a.ba.Pj,a.kf());a.ba.vf-=d;if(0>=a.ba.vf){a.ba.vf+=a.ba.Xh;break}}while(a.na.uc)}catch(l){jb(a);a.lf();a.kf();a.La&&a.La.stop(ha(),pb(a));Ia(a,!1);Ka(a,l.message);return}d=setTimeout;c=a.Um;a.ba.he=ha();e=a.ba.Mj;a.ba.wf&&(e=Math.round(e*a.ba.wf/a.ba.Xh));e-=a.ba.he-a.ba.Eg;if(f=a.ba.he-a.ba.Ie)a.ba.Qc=Math.round(a.Id/ +c.ba.sf<=pb(c)&&(c.ba.rf=c.ba.sf=-1,hb(c),jb(c),f=!0);f&&c.hc(pb(c)+" cycles: checksum="+p(c.ba.Hg))}a.ba.uf-=d;0>=a.ba.uf&&(a.ba.uf+=a.ba.Qj,a.lf());a.ba.tf-=d;0>=a.ba.tf&&(a.ba.tf+=a.ba.Pj,a.kf());a.ba.vf-=d;if(0>=a.ba.vf){a.ba.vf+=a.ba.Xh;break}}while(a.na.uc)}catch(k){jb(a);a.lf();a.kf();a.La&&a.La.stop(ha(),pb(a));Ia(a,!1);Ka(a,k.message);return}d=setTimeout;c=a.Um;a.ba.he=ha();e=a.ba.Mj;a.ba.wf&&(e=Math.round(e*a.ba.wf/a.ba.Xh));e-=a.ba.he-a.ba.Eg;if(f=a.ba.he-a.ba.Ie)a.ba.Qc=Math.round(a.Id/ (10*f))/100,864E5<=f&&(a.ke=0,a.ja&&rb(a.ja,!0),mb(a));if(0>e||a.ba.Qc<a.ba.He)e=0;a.ba.Yh+=a.ba.wf;a.ba.he+=e;d(c,e)}else a.lf(),a.kf(),a.La&&a.La.stop(ha(),pb(a))}function jb(a,b){a.na.Ic&&(a.na.Ah=!0);a.Rc-=a.A;a.A=0;nb(a,a.Id);a.Id=0;a.na.uc&&(a.na.uc=!1,a.ja&&qb(a.ja),a.sa.run&&(a.sa.run.innerHTML="Run"));a.na.rg=b}h.fl=function(){return 0}; var sb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1, 0,0,1,1,0,1,0,0,1];function tb(a,b,c){this.la=a;this.jb=this.Aa=0;this.fd=65535;this.yb=0;this.yj="CS"==b;this.Vg=b;this.lc=this.sc=0;ub(this,c)}function vb(a){this.Aa=a;this.fd=65535;this.sc=this.lc=0;return this.jb=a<<4} @@ -48,7 +48,7 @@ function fc(a){a.H=0;a.C=0;a.J=0;a.K=0;a.Y=0;a.I=0;a.G=0;a.F=0;a.Kc=65520;a.Cc=0 h.Fj=function(){var a=this.H+this.C+this.J+this.K+this.Y+this.I+this.G+this.F|0;return a=a+this.va+this.ya.Aa+this.Zb.Aa+this.Tb.Aa+this.hb.Aa+jc(this)|0};function kc(a,b){var c=a.ij[b];null!=c&&(c(--a.oh),delete a.ij[b])}function ic(a,b){void 0===b&&(b=!!(a.Kc&1));lc=b?mc:nc;ub(a.ya,b);ub(a.Zb,b);ub(a.Tb,b);ub(a.hb,b)} h.save=function(){var a=new H(this);a.set(0,[this.H,this.C,this.J,this.K,this.Y,this.I,this.G,this.F,this.Ed]);a.set(1,[this.va,this.ya.save(),this.Zb.save(),this.Tb.save(),this.hb.save(),null!=this.Bc?[this.Kc,this.Bc,this.xe,this.Cc,this.Sd,this.oe.save(),this.Pf.save(),this.Ed]:null,jc(this)]);a.set(2,[this.D.Vg,this.N.Vg,this.Z,this.ua,this.$a,this.ha,this.Fa]);a.set(3,[this.Fg,this.ke,this.ba.Dd]);a.set(4,Ya(this.qa));return a.data()}; h.restore=function(a){var b;b=a[0];this.H=b[0];this.C=b[1];this.J=b[2];this.K=b[3];this.Y=b[4];this.I=b[5];this.G=b[6];this.F=b[7];this.Ed=b[8]||0;b=a[1];this.ya.restore(b[1]);this.Zb.restore(b[2]);this.Tb.restore(b[3]);this.hb.restore(b[4]);var c=b[5];c&&c.length&&(this.Kc=c[0],this.Bc=c[1],this.xe=c[2],this.Cc=c[3],this.Sd=c[4],this.oe.restore(c[5]),this.Pf.restore(c[6]),this.Ed=c[7],ic(this));hc(this,b[6]);I(this,b[0]);b=a[2];this.D=oc(this,b[0]);this.N=oc(this,b[1]);this.Z=b[2];this.ua=b[3];this.$a= -b[4];this.ha=b[5];this.Fa=b[6];b=a[3];this.Fg=b[0];this.ke=b[1];mb(this,b[2]);a:{b=this.qa;a=a[4];for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.sj){for(var f=0,l=Array(b.sj),g=0;g<e.length-1;)for(var m=e[g++],n=e[g++];m--;)l[f++]=n;e=l}f=b.Ba[d];if(!f||!f.restore(e)){s("Unable to restore memory block "+d);b=!1;break a}}void 0!==a[c]&&Pa(b,a[c]);b=!0}return b}; +b[4];this.ha=b[5];this.Fa=b[6];b=a[3];this.Fg=b[0];this.ke=b[1];mb(this,b[2]);a:{b=this.qa;a=a[4];for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.sj){for(var f=0,k=Array(b.sj),g=0;g<e.length-1;)for(var m=e[g++],n=e[g++];m--;)k[f++]=n;e=k}f=b.Ba[d];if(!f||!f.restore(e)){s("Unable to restore memory block "+d);b=!1;break a}}void 0!==a[c]&&Pa(b,a[c]);b=!0}return b}; function oc(a,b){switch(b){case "CS":return a.ya;case "DS":return a.Zb;case "SS":return a.Tb;case "ES":return a.hb;case "ZERO":return a.dl;default:return[0,b,0,0,""]}}function pc(a,b){var c;if(a.Kc&1){if(c=a.Cc+(b<<3),c+7<=a.Sd){a.tc.Oi=F(a,c);a.tc.Aa=F(a,c+2);a.tc.yb=F(a,c+4);switch(a.tc.yb&7936){case 1536:a.tc.Bg=-17153;break;case 1792:a.tc.Bg=-16641;break;default:return!1}return!0}}else if(c=a.Cc+(b<<2),c+7<=a.Sd)return a.tc.Oi=F(a,c),a.tc.Aa=F(a,c+2),a.tc.Bg=-769,!0;return!1} function qc(a,b){a.Ha=a.ya.load(b)+a.va;a.Z|=a.Tf}function rc(a,b){a.Zb.load(b);a.Z|=a.Tf}function sc(a,b){a.Tb.load(b);a.Z|=4}function tc(a,b){a.hb.load(b);a.Z|=a.Tf}function I(a,b){a.Ha=a.ya.jb+(a.va=b&65535)}function gc(a,b,c){a.Ha=a.ya.load(c)+(a.va=b)}function J(a,b){a.Ha=a.ya.jb+(a.va=a.va+b&65535)}function xc(a){return a.X&a.ca?1:0}function yc(a){return sb[a.ia&255]?4:0}function zc(a){return(a.ia^a.ka)&16?16:0}function Ac(a){return a.X&a.ca-1?0:64}function Bc(a){return a.ia&a.ca>>1?128:0} function Cc(a){return(a.ia^a.ka^a.ia>>1)&a.ca>>1?2048:0}function Dc(a){a.X&=~a.ca}function Ec(a){a.ka=a.ia&16|a.ka&-17}function Fc(a){a.X|=a.ca-1}function Gc(a){a.ia&=~a.ca;a.ka=a.ia&32896|a.ka&-32897}function Hc(a){a.X|=a.ca}function Ic(a){a.ka=~(a.ia&16)&16|a.ka&-17}function Jc(a){a.X&=~(a.ca-1)}function Kc(a){Bc(a)||(a.ia^=a.ca>>1|a.ca>>2,a.ka^=32896)}function Lc(a){a.ia|=a.ca;a.ka=a.ia&32896|a.ka&-32897}function jc(a){return a.Ga&-2262|xc(a)|yc(a)|zc(a)|Ac(a)|Bc(a)|Cc(a)} @@ -59,7 +59,7 @@ h.Im=function(a,b){this.Of=a;this.Fa=this.ha=a.$c(this.Hf=b,0);return this.Z&1?0 h.M=function(){var a=Mc(this,this.Ha)<<24>>24;this.Ha=this.ya.jb+(this.va=this.va+1&65535);return a&65535};h.L=function(){var a=F(this,this.Ha);this.Ha=this.ya.jb+(this.va=this.va+2&65535);return a};h.Ea=function(){var a=this.Y;this.Y=this.Y+2&65535;return F(this,this.Tb.$c(a,1))};function K(a,b){var c=a.Y=a.Y-2&65535;Oc(a,a.Tb.bc(c,1),b)} h.kf=function(){E(this,"AX",this.H);E(this,"BX",this.C);E(this,"CX",this.J);E(this,"DX",this.K);E(this,"SP",this.Y);E(this,"BP",this.I);E(this,"SI",this.G);E(this,"DI",this.F);E(this,"CS",this.ya.Aa);E(this,"DS",this.Zb.Aa);E(this,"SS",this.Tb.Aa);E(this,"ES",this.hb.Aa);E(this,"IP",this.va);var a=jc(this);E(this,"PS",a);E(this,"C",a&1?1:0,1);E(this,"P",a&4?1:0,1);E(this,"A",a&16?1:0,1);E(this,"Z",a&64?1:0,1);E(this,"S",a&128?1:0,1);E(this,"T",a&256?1:0,1);E(this,"I",a&512?1:0,1);E(this,"D",a&1024? 1:0,1);E(this,"O",a&2048?1:0,1);this.sa.speed&&(this.sa.speed.innerHTML=this.na.uc&&this.ba.Qc?this.ba.Qc.toFixed(2)+"Mhz":"Stopped")}; -h.fl=function(a){this.na.rg=!0;this.na.zl=!1;this.Rc=this.A=a;this.ja&&rb(this.ja);a||!this.Pa||this.Pa.mp(Pc)||(this.Z|=4);do{if(a=this.Z&240)this.ua|=a;else if(this.Og=this.Ha,this.ha=this.Fa=-1,this.D=this.Zb,this.N=this.Tb,this.ua=this.Z&256,this.$a){a:{if(!(this.Z&4))if(this.$a&1&&this.Ga&512){if(a=Qc(this.ja),-1<=a&&(this.$a&=-2,0<=a)){this.$a&=-5;Rc.call(this,a,null,11);break a}}else if(this.$a&2){this.$a&=-3;Rc.call(this,1,null,11);break a}if(a=this.$a&8){a=this.ja;for(var b=!1,c=0;c<a.Ta;c++)for(var d= +h.fl=function(a){this.na.rg=!0;this.na.zl=!1;this.Rc=this.A=a;this.ja&&rb(this.ja);a||!this.Pa||this.Pa.op(Pc)||(this.Z|=4);do{if(a=this.Z&240)this.ua|=a;else if(this.Og=this.Ha,this.ha=this.Fa=-1,this.D=this.Zb,this.N=this.Tb,this.ua=this.Z&256,this.$a){a:{if(!(this.Z&4))if(this.$a&1&&this.Ga&512){if(a=Qc(this.ja),-1<=a&&(this.$a&=-2,0<=a)){this.$a&=-5;Rc.call(this,a,null,11);break a}}else if(this.$a&2){this.$a&=-3;Rc.call(this,1,null,11);break a}if(a=this.$a&8){a=this.ja;for(var b=!1,c=0;c<a.Ta;c++)for(var d= a.Ta[c],e=0;e<d.rb.length;e++){var f=d.rb[e];f.gd||(Sc(a,f),f.gd||(b=!0))}a=!b}a&&(this.$a&=-9)}if(this.$a&4){this.Z=this.A=0;break}}this.Z=0;this.Na[this.da()].call(this)}while(0<this.A);return this.na.rg?this.Rc-this.A:void 0===this.na.rg?0:-1};t(function(){for(var a=B(window.document,"pcjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Gb(d);A(d,c)}});function Tc(a,b){this.ka=a^b;this.ca=256;this.A-=0>this.Fa?0>this.ha?this.B.Hb:this.B.gb:this.B.Xb;return(this.X=this.ia=a+b)&255} function Uc(a,b){this.ca=256;this.A-=0>this.Fa?0>this.ha?this.B.Hb:this.B.gb:this.B.Xb;return(this.X=this.ia=this.ka=a|b)&255}function Vc(a,b){this.ka=a^b;this.X=this.ia=a+b+(this.X&this.ca?1:0);this.ca=256;this.A-=0>this.Fa?0>this.ha?this.B.Hb:this.B.gb:this.B.Xb;return this.X&255}function Wc(a,b){this.ka=a^b;this.X=this.ia=a-b-(this.X&this.ca?1:0);this.ca=256;this.A-=0>this.Fa?0>this.ha?this.B.Hb:this.B.gb:this.B.Xb;return this.X&255} function Xc(a,b){this.ca=256;this.A-=0>this.Fa?0>this.ha?this.B.Hb:this.B.gb:this.B.Xb;return(this.X=this.ia=this.ka=a&b)&255}function Yc(a,b){this.ka=a^b;this.ca=256;this.A-=0>this.Fa?0>this.ha?this.B.Hb:this.B.gb:this.B.Xb;return(this.X=this.ia=a-b)&255}function Zc(a,b){this.ca=256;this.A-=0>this.Fa?0>this.ha?this.B.Hb:this.B.gb:this.B.Xb;return(this.X=this.ia=this.ka=a^b)&255} @@ -417,34 +417,34 @@ this.da();bb(this.qa,a,this.H&255,this.Ha-2);this.A-=this.B.xi},function(){var a 2},function(){this.qb=-1;Gg[this.da()].call(this,Md,Dd);0<=this.qb&&(this.H=this.qb)},function(){this.qb=-1;Hg[this.da()].call(this,Nd,Dd);0<=this.qb&&(this.H=this.qb,this.K=this.Kf)},function(){this.X&=~this.ca;this.A-=2},function(){this.X|=this.ca;this.A-=2},function(){this.Ga&=-513;this.A-=this.B.Vj},function(){this.Ga|=512;this.Z|=4;this.A-=2},function(){this.Ga&=-1025;this.A-=2},function(){this.Ga|=1024;this.A-=2},function(){Gg[this.da()].call(this,$b,Dd)},function(){Hg[this.da()].call(this, bc,Dd)}]; function P(a){v.call(this,"ChipSet",a,P);this.Da=a.model;this.Da=void 0!==this.Da?parseInt(this.Da,10):gh;this.Kb=0;var b=a.sw1;if(b)this.Kb=hh(b,ih|jh.ll);else{this.od=[360,360];(b=a.floppies)&&void 0!==b.length&&(this.od=b);if(b=this.od.length)this.Kb|=kh.ah,b--,this.Kb|=(b&3)<<kh.Te;if(b=a.monitor||(this.Da<lh?"mono":"ega"),void 0!==mh[b])this.Kb|=mh[b]<<jh.Te}this.Nd=hh(a.sw2||"11110000",0);this.Hm=this.Da==gh?16:64;this.bf=this.cf=1;this.Da>=lh&&(this.bf=this.cf=2);this.vg=a.scaleTimers||!1; -this.Yn=a.rtcDate;this.Dj=!1;a.sound&&window&&"webkitAudioContext"in window&&(this.rh=new webkitAudioContext);this.reset(!0);this.Ma()}y(v,P);var gh=5150,lh=5170,mh={none:0,tv:1,color:2,mono:3,ega:0},kh={ah:1,ONE:0,Qo:64,Oo:128,no:192,Se:192,Te:6},ih=12,jh={Po:16,io:32,ll:48,Se:48,Te:4};h=P.prototype; +this.Yn=a.rtcDate;this.Dj=!1;a.sound&&window&&"webkitAudioContext"in window&&(this.rh=new webkitAudioContext);this.reset(!0);this.Ma()}y(v,P);var gh=5150,lh=5170,mh={none:0,tv:1,color:2,mono:3,ega:0},kh={ah:1,ONE:0,So:64,Qo:128,po:192,Se:192,Te:6},ih=12,jh={Ro:16,io:32,ll:48,Se:48,Te:4};h=P.prototype; h.wb=function(a,b,c,d){switch(c){case "sw1":return this.sa[c]=d,nh(this,c,d,this.Kb,{0:this.Da==gh?"Bootable Floppy Drive":"Loop on POST",1:this.Da==gh?"Reserved":"Coprocessor",2:"Base Memory Size",4:"Monitor Type",6:"Number of Floppy Drives"}),!0;case "sw2":if(this.Da==gh)return this.sa[c]=d,nh(this,c,d,this.Nd,{0:"Expansion Memory Size",4:"Reserved"}),!0;break;case "swdesc":return this.sa[c]=d,!0}return!1}; h.mc=function(a,b,c,d){this.qa=b;this.la=c;this.Pa=d;this.La=a;this.Ra=D(a,"Keyboard");this.Sk=Math.round(c.ba.hd/1193181);Za(b,this,oh);ab(b,this,ph);this.Da<lh?(Za(b,this,qh),ab(b,this,rh)):(Za(b,this,sh),ab(b,this,th))};h.Qb=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Pb=function(a){return a&&this.save?this.save():!0}; h.reset=function(a){var b;this.Lc=this.Kb;this.re=this.Nd;uh(this);this.Ta=Array(this.bf);for(b=0;b<this.bf;b++)vh(this,b);this.sb=Array(this.cf);wh(this,0,32);1<this.cf&&wh(this,1,160);this.nh=void 0;this.Lb=Array(3);for(b=0;b<this.Lb.length;b++)xh(this,b);this.af=this.lh=this.kc=this.fg=void 0;this.eg=0;if(this.Da>=lh){this.cb=16;this.Yc=0;this.Mc=16;this.$f=0;this.Vd=160;512<=yh(this)&&(this.Vd|=16);3==zh(this)&&(this.Vd|=64);this.jh=3;this.cg=0;this.Mb=Array(7);this.ye=0;a&&(this.oa=Array(64)); Ah(this,this.Yn);for(a=21;24>=a;a++)this.oa[a]=0;for(a=14;46>a;a++)void 0===this.oa[a]&&(this.oa[a]=0);this.oa[20]=this.Lc&(jh.Se|2|kh.ah|kh.Se);this.oa[16]=Bh(this,0)<<4|Bh(this,1);Ch(this)}}; function Ah(a,b){var c=b?new Date(b):new Date;"[object Date]"!==Object.prototype.toString.call(c)||isNaN(c.getTime())?(c=new Date,a.hc("CMOS date invalid ("+b+"), using "+c)):b&&a.hc("CMOS date: "+c);a.oa[0]=c.getSeconds();a.oa[1]=0;a.oa[2]=c.getMinutes();a.oa[3]=0;a.oa[4]=c.getHours();a.oa[5]=0;a.oa[6]=c.getDay()+1;a.oa[7]=c.getDate();a.oa[8]=c.getMonth()+1;c=c.getFullYear();a.oa[9]=c%100;c/=100;a.oa[50]=c%10|c/10<<4;a.qf=-1;a.oa[10]=38;a.oa[11]=2;a.oa[12]=0;a.oa[13]=128} function Ch(a){for(var b=0,c=16;46>c;c++)b+=a.oa[c];a.oa[47]=b&255;a.oa[46]=b>>8} -h.save=function(){var a=new H(this);a.set(0,[this.Kb,this.Nd,this.Lc,this.re]);for(var b=[],c=0;c<this.Ta;c++){var d=[],e=this.Ta[c];d[0]=e.ud;d[1]=e.kh;d[2]=e.pj;d[3]=e.Bb;for(var f=[],l=0;l<e.rb.length;l++){var g=[],m=e.rb[l];g[0]=m.gd;g[1]=m.kj;g[2]=m.rc;g[3]=m.zb;g[4]=m.Wb;g[5]=m.mode;g[6]=m.gg;g[8]=m.Vn;g[9]=m.Wn;f[l]=g}d[4]=f;b[c]=d}a.set(1,[b]);b=[];for(c=0;c<this.sb.length;c++)d=[],e=this.sb[c],d[0]=e.xf,d[1]=e.Rd,d[2]=e.jd,d[3]=e.sd,d[4]=e.Ab,d[5]=e.Dc,d[6]=e.Wd,d[7]=e.$e,b[c]=d;a.set(2, +h.save=function(){var a=new H(this);a.set(0,[this.Kb,this.Nd,this.Lc,this.re]);for(var b=[],c=0;c<this.Ta;c++){var d=[],e=this.Ta[c];d[0]=e.ud;d[1]=e.kh;d[2]=e.pj;d[3]=e.Bb;for(var f=[],k=0;k<e.rb.length;k++){var g=[],m=e.rb[k];g[0]=m.gd;g[1]=m.kj;g[2]=m.rc;g[3]=m.zb;g[4]=m.Wb;g[5]=m.mode;g[6]=m.gg;g[8]=m.Vn;g[9]=m.Wn;f[k]=g}d[4]=f;b[c]=d}a.set(1,[b]);b=[];for(c=0;c<this.sb.length;c++)d=[],e=this.sb[c],d[0]=e.xf,d[1]=e.Rd,d[2]=e.jd,d[3]=e.sd,d[4]=e.Ab,d[5]=e.Dc,d[6]=e.Wd,d[7]=e.$e,b[c]=d;a.set(2, [b]);b=[];for(c=0;c<this.Lb.length;c++)d=[],e=this.Lb[c],d[0]=e.rc,d[1]=e.Hc,d[2]=e.Wb,d[3]=e.gf,d[4]=e.rj,d[5]=e.mode,d[6]=e.Lf,d[7]=e.xd,d[8]=e.ce,d[9]=e.Pc,d[10]=e.mf,d[11]=e.Be,d[12]=e.Kd,b[c]=d;a.set(3,[this.nh,b]);a.set(4,[this.fg,this.kc,this.lh,this.af,this.eg]);this.Da>=lh&&(a.set(5,[this.cb,this.Yc,this.Mc,this.$f,this.Vd,this.jh]),a.set(6,[this.cg,this.Mb,this.ye,this.oa,this.qf]));return a.data()}; h.restore=function(a){var b,c;b=a[0];this.Kb=b[0];this.Nd=b[1];this.Lc=b[2];this.re=b[3];b=a[1];this.Ta=Array(this.bf);for(c=0;c<this.bf;c++)vh(this,c,1==b.length?b[0][c]:b);b=a[2];this.sb=Array(this.cf);for(c=0;c<this.cf;c++)wh(this,c,0===c?32:160,b[0][c]);b=a[3];this.nh=b[0];this.Lb=Array(3);for(c=0;c<this.Lb.length;c++)xh(this,c,b[1][c]);b=a[4];this.fg=b[0];this.kc=b[1];this.lh=b[2];this.af=b[3];this.eg=b[4];if(b=a[5])this.cb=b[0],this.Yc=b[1],this.Mc=b[2],this.$f=b[3],this.Vd=b[4],this.jh=b[5]; if(b=a[6])this.cg=b[0],this.Mb=b[1],this.ye=b[2],this.oa=b[3],this.qf=b[4],Ah(this);return!0};function vh(a,b,c){a=a.Ta[b]={};c&&5==c.length||(c=[0,void 0,void 0,0,[]]);a.ud=c[0];a.kh=c[1];a.pj=c[2];a.Bb=c[3];a.Mm=b<<2;a.rb=Array(4);for(b=0;b<a.rb.length;b++)Dh(a,b,c[4][b])}function Dh(a,b,c){var d=a.rb[b]={};if(void 0===c||8!=c.length)c=[!0,[],[],[],[]];d.ea=a;d.Hj=b;d.gd=c[0];d.kj=c[1];d.rc=c[2];d.zb=c[3];d.Wb=c[4];d.mode=c[5];d.gg=c[6];Eh(d,c[8],c[9])} -function Eh(a,b,c,d){"string"==typeof b&&(b=Ga(b));b&&(a.lg=null,a.Vn=b.id,a.Wn=c,a.kg=b,a.Kh=b[c],a.Ng=d)}function wh(a,b,c,d){a=a.sb[b]={};d&&8==d.length||(d=[0,[void 0,void 0,void 0,void 0]]);a.port=c;a.op=b<<3;a.xf=d[0];a.Rd=d[1];a.jd=d[2];a.sd=d[3];a.Ab=d[4];a.Dc=d[5];a.Wd=d[6];a.$e=d[7]} +function Eh(a,b,c,d){"string"==typeof b&&(b=Ga(b));b&&(a.lg=null,a.Vn=b.id,a.Wn=c,a.kg=b,a.Kh=b[c],a.Ng=d)}function wh(a,b,c,d){a=a.sb[b]={};d&&8==d.length||(d=[0,[void 0,void 0,void 0,void 0]]);a.port=c;a.qp=b<<3;a.xf=d[0];a.Rd=d[1];a.jd=d[2];a.sd=d[3];a.Ab=d[4];a.Dc=d[5];a.Wd=d[6];a.$e=d[7]} function xh(a,b,c){a=a.Lb[b]={};if(void 0===c||13!=c.length)c=[[],[],[],[]];a.rc=c[0];a.Hc=c[1];a.Wb=c[2];a.gf=c[3];a.rj=c[4];a.mode=c[5];a.Lf=c[6];a.xd=c[7];a.ce=c[8];a.Pc=c[9];a.mf=c[10];a.Be=c[11];a.Kd=c[12]}function yh(a,b){return((((b?a.Kb:a.Lc)&12)>>2)+1)*a.Hm+32*((b?a.Nd:a.re)&15)}function Fh(a,b){var c=b?a.Kb:a.Lc;return a.Da!=gh||c&kh.ah?((c&kh.Se)>>kh.Te)+1:0} function Bh(a,b){if(b<Fh(a)){if(!a.od)return 1;if(b<a.od.length)switch(a.od[b]){case 160:case 180:case 320:case 360:return 1;case 720:return 3;case 1200:return 2;case 1440:return 4}}return 0}function zh(a,b){return((b?a.Kb:a.Lc)&jh.Se)>>jh.Te} -function nh(a,b,c,d,e){for(var f="",l=1;8>=l;l++){var g="pcjs-bitCell";l||(g+=" pcjs-bitCellLeft");f+='<div id="'+(b+"-"+l)+'" class="'+g+'" data-value="0">'+l+"</div>\n"}c.innerHTML=f;b=B(c,"pcjs-bitCell");c=null;for(l=0;l<b.length;l++)void 0!==e&&void 0!==e[l]&&(c=e[l]),c&&b[l].setAttribute("title",c),Gh(b[l],d&1<<l?!1:!0),b[l].onclick=function(a,b){return function(){var c="1"!=b.getAttribute("data-value");Gh(b,c);var d=b.getAttribute("id").split("-"),e=1<<parseInt(d[1],10)-1;switch(d[0]){case "sw1":a.Kb= -a.Kb&~e|(c?0:e);break;case "sw2":a.Nd=a.Nd&~e|(c?0:e)}uh(a)}}(a,b[l])}function Gh(a,b){a.setAttribute("data-value",b?"1":"0");a.style.color=b?"#ffffff":"#000000";a.style.backgroundColor=b?"#000000":"#ffffff"}function uh(a){var b=a.sa.swdesc,c={0:"Enhanced Color",1:"TV",2:"Color",3:"Monochrome"};if(void 0!==b){var d;d=""+(yh(a,!0)+"Kb");d+=", "+c[zh(a,!0)]+" Monitor";d+=", "+Fh(a,!0)+" Floppy Drives";if(void 0!==a.Lc&&a.Lc!=a.Kb||void 0!==a.re&&a.re!=a.Nd)d+=" (Reset required)";b.innerHTML=d}} +function nh(a,b,c,d,e){for(var f="",k=1;8>=k;k++){var g="pcjs-bitCell";k||(g+=" pcjs-bitCellLeft");f+='<div id="'+(b+"-"+k)+'" class="'+g+'" data-value="0">'+k+"</div>\n"}c.innerHTML=f;b=B(c,"pcjs-bitCell");c=null;for(k=0;k<b.length;k++)void 0!==e&&void 0!==e[k]&&(c=e[k]),c&&b[k].setAttribute("title",c),Gh(b[k],d&1<<k?!1:!0),b[k].onclick=function(a,b){return function(){var c="1"!=b.getAttribute("data-value");Gh(b,c);var d=b.getAttribute("id").split("-"),e=1<<parseInt(d[1],10)-1;switch(d[0]){case "sw1":a.Kb= +a.Kb&~e|(c?0:e);break;case "sw2":a.Nd=a.Nd&~e|(c?0:e)}uh(a)}}(a,b[k])}function Gh(a,b){a.setAttribute("data-value",b?"1":"0");a.style.color=b?"#ffffff":"#000000";a.style.backgroundColor=b?"#000000":"#ffffff"}function uh(a){var b=a.sa.swdesc,c={0:"Enhanced Color",1:"TV",2:"Color",3:"Monochrome"};if(void 0!==b){var d;d=""+(yh(a,!0)+"Kb");d+=", "+c[zh(a,!0)]+" Monitor";d+=", "+Fh(a,!0)+" Floppy Drives";if(void 0!==a.Lc&&a.Lc!=a.Kb||void 0!==a.re&&a.re!=a.Nd)d+=" (Reset required)";b.innerHTML=d}} function Hh(a,b,c){a=a.Ta[b];c=a.rb[c].zb[a.Bb];a.Bb^=1;return c}function Ih(a,b,c,d){a=a.Ta[b];c=a.rb[c];c.zb[a.Bb]=c.kj[a.Bb]=d;a.Bb^=1}function Jh(a,b,c){a=a.Ta[b];c=a.rb[c].Wb[a.Bb];a.Bb^=1;return c}function Kh(a,b,c,d){a=a.Ta[b];c=a.rb[c];c.Wb[a.Bb]=c.rc[a.Bb]=d;a.Bb^=1}function Lh(a,b){var c=a.Ta[b],d=c.ud|1;c.ud&=-16;return d}function Mh(a,b,c){a=a.Ta[b];b=c&3;a.ud=a.ud&~(16<<b)|(c&4)<<b+2;a.pj=c}function Nh(a,b,c){b=a.Ta[b];var d=c&3,e=b.rb[d];e.gd=c&4?!0:!1;e.gd||Oh(a,b.Mm+d)} function Ph(a,b){for(var c=a.Ta[b],d=0;d<c.rb.length;d++)Dh(c,d)}function Qh(a,b,c){return a.Ta[b].rb[c].gg}function Rh(a,b,c,d){a.Ta[b].rb[c].gg=d}function Sh(a,b,c,d,e){Eh(a.Ta[b>>2].rb[b&3],c,d,e)}function Oh(a,b,c){b=a.Ta[b>>2].rb[b&3];b.kg&&b.Kh&&b.Ng?(c&&(b.lg=c),b.gd||Sc(a,b,!0)):c&&c(!0)} -function Sc(a,b,c){c&&(b.count=b.Wb[1]<<8|b.Wb[0],b.hl=b.mode&12,b.Ej=b.Oc=!1);for(var d=!1;0<=b.count&&(c=b.gg<<16|b.zb[1]<<8|b.zb[0],4==b.hl?(d=!0,function(c){b.Kh.call(b.kg,b.Ng,-1,function(f,l){0>f&&(b.Ej||(b.Ej=!0),f=255);b.gd||Wa(a.qa,c,f);(d=l)&&setTimeout(function(){Th(b)||Sc(a,b)},0)})}(c)):8==b.hl?(c=Ta(a.qa,c),0>b.Kh.call(b.kg,b.Ng,c)&&(b.Oc=!0)):b.Oc=!0),!d&&!Th(b););} +function Sc(a,b,c){c&&(b.count=b.Wb[1]<<8|b.Wb[0],b.hl=b.mode&12,b.Ej=b.Oc=!1);for(var d=!1;0<=b.count&&(c=b.gg<<16|b.zb[1]<<8|b.zb[0],4==b.hl?(d=!0,function(c){b.Kh.call(b.kg,b.Ng,-1,function(f,k){0>f&&(b.Ej||(b.Ej=!0),f=255);b.gd||Wa(a.qa,c,f);(d=k)&&setTimeout(function(){Th(b)||Sc(a,b)},0)})}(c)):8==b.hl?(c=Ta(a.qa,c),0>b.Kh.call(b.kg,b.Ng,c)&&(b.Oc=!0)):b.Oc=!0),!d&&!Th(b););} function Th(a){if(!a.Oc&&0<=--a.count&&(a.mode&32?(a.zb[0]--,0>a.zb[0]&&(a.zb[0]=255,a.zb[1]--,0>a.zb[1]&&(a.zb[1]=255))):(a.zb[0]++,255<a.zb[0]&&(a.zb[0]=0,a.zb[1]++,255<a.zb[1]&&(a.zb[1]=0))),!a.gd))return!1;var b=a.ea;b.ud=b.ud&~(16<<a.Hj)|1<<a.Hj;a.mode&16||(a.gd=!0,a.kg=a.Ng=null);a.lg&&(a.lg(!a.Oc),a.lg=null);return!0}function Uh(a,b){var c=0,d=a.sb[b];if(void 0!==d.$e)switch(d.$e&3){case 2:c=d.Ab;break;case 3:c=d.Dc}return c} function Vh(a,b,c){var d=a.sb[b];if(c&16)d.jd=0,d.Rd[d.jd++]=c,d.sd=0,d.Wd=7,d.Ab=d.Dc=0,d.$e=10;else if(c&8)d.$e=c;else{var e=c&224;if(e&32){var f=0;if(96==(e&96))f=1<<(c&7);else for(c=d.Wd+1;;){c&=7;e=1<<c;if(d.Dc&e){f=e;break}if(c++==d.Wd)break}d.Dc&f&&(d.Dc&=~f,Wh(a,b))}else 192==e&&(d.Wd=c&7)}}function ai(a,b,c){var d=a.sb[b];d.jd<d.Rd.length?(d.Rd[d.jd++]=c,2==d.jd&&d.Rd[0]&2&&d.jd++,3!=d.jd||d.Rd[0]&1||d.jd++):(d.sd=c,d=a.la,d.Z|=4,Wh(a,b,b||253!=c?0:6))} function Wh(a,b,c){b=a.sb[b];var d=((b.Dc|b.sd)^255)&b.Ab;a=a.la;a.ja&&(a.$a=d?a.$a|1:a.$a&-2);d&&c&&(b.xf=c)}function bi(a,b,c){var d=b>>3,e=a.sb[d];e.Ab|=1<<(b&7);e.xf=c||0;1==d&&(a.sb[0].Ab|=4);Wh(a,d)}function ci(a,b){var c=b>>3,d=a.sb[c],e=1<<(b&7);d.Ab&e&&(d.Ab&=~e,1!=c||d.Ab||(a.sb[0].Ab&=-5),Wh(a,c))} -function Qc(a,b){void 0===b&&(b=0);var c=-1,d=a.sb[b];if(d.xf)c=-2,d.xf--;else for(var e=d.Ab&((d.Dc|d.sd)^255),f=d.Wd+1;;){var f=f&7,l=1<<f;if(e&l){c=b||2!=f?d.Rd[1]+f:Qc(a,1);0<=c&&(d.Dc|=l,d.Ab&=~l);break}if(f++==d.Wd)break}return c}function di(a,b){var c=a.Lb[b];c.xd==c.ce&&ei(a,b);if(c.mf)return c.gf[c.xd++];fi(a,b);return c.Wb[c.xd++]} +function Qc(a,b){void 0===b&&(b=0);var c=-1,d=a.sb[b];if(d.xf)c=-2,d.xf--;else for(var e=d.Ab&((d.Dc|d.sd)^255),f=d.Wd+1;;){var f=f&7,k=1<<f;if(e&k){c=b||2!=f?d.Rd[1]+f:Qc(a,1);0<=c&&(d.Dc|=k,d.Ab&=~k);break}if(f++==d.Wd)break}return c}function di(a,b){var c=a.Lb[b];c.xd==c.ce&&ei(a,b);if(c.mf)return c.gf[c.xd++];fi(a,b);return c.Wb[c.xd++]} function gi(a,b,c){var d=a.Lb[b];d.xd==d.ce&&ei(a,b);d.rc[d.xd++]=c;if(d.xd==d.ce){d.Be&&0!=d.mode&&8!=d.mode||(d.mf=!1,d.Wb[0]=d.Hc[0]=d.rc[0],d.Wb[1]=d.Hc[1]=d.rc[1],d.Kd=pb(a.la,a.vg),d.Be=!0,d.Pc=0!=d.mode,0==b&&ci(a,0));2==b&&qb(a);if(0==b){var e=hi(a,0);2048<=e&&(a.la.Fg=Math.round(65536/e))}0==b&&0==d.mode&&16==d.Lf&&(b=a.la,b.na.uc&&(a=b.A-c*a.Sk,b.A-=a,b.Rc-=a))}}h.Dm=function(){return null}; -h.Ln=function(a,b){this.nh=b;var c=(b&192)>>6;if(3!=c){var d=b&1,e=b&14,f=b&48;if(f){var l=this.Lb[c];l.Lf=f;l.mode=e;l.rj=d;l.rc=[0,0];l.Wb=[0,0];l.gf=[0,0];l.Pc=!1;l.mf=!1;l.Be=!1;ei(this,c);0==c&&ci(this,0);2==c&&255==this.sb[0].sd&&77==this.kc&&(c=this.Lb[0],c.Hc[0]=c.rc[0],c.Hc[1]=c.rc[1],c.Kd=pb(this.la,this.vg))}else fi(this,c),d=this.Lb[c],d.gf[0]=d.Wb[0],d.gf[1]=d.Wb[1],d.mf=!0,ei(this,c)}};function hi(a,b){var c=a.Lb[b],d=c.rc[1]<<8|c.rc[0];d||(d=1==c.ce?256:65536);return d} +h.Ln=function(a,b){this.nh=b;var c=(b&192)>>6;if(3!=c){var d=b&1,e=b&14,f=b&48;if(f){var k=this.Lb[c];k.Lf=f;k.mode=e;k.rj=d;k.rc=[0,0];k.Wb=[0,0];k.gf=[0,0];k.Pc=!1;k.mf=!1;k.Be=!1;ei(this,c);0==c&&ci(this,0);2==c&&255==this.sb[0].sd&&77==this.kc&&(c=this.Lb[0],c.Hc[0]=c.rc[0],c.Hc[1]=c.rc[1],c.Kd=pb(this.la,this.vg))}else fi(this,c),d=this.Lb[c],d.gf[0]=d.Wb[0],d.gf[1]=d.Wb[1],d.mf=!0,ei(this,c)}};function hi(a,b){var c=a.Lb[b],d=c.rc[1]<<8|c.rc[0];d||(d=1==c.ce?256:65536);return d} function ei(a,b){var c=a.Lb[b];c.xd=32==c.Lf?1:0;c.ce=48==c.Lf?2:1} -function fi(a,b,c){var d=a.Lb[b];if(d.Be&&(2!=b||a.kc&1)){var e=pb(a.la,a.vg),f=(e-d.Kd)/a.Sk|0;0>f&&(d.Kd=e,f=0);var l=hi(a,b),g=a.Lb[b],m=g.Hc[1]<<8|g.Hc[0];m||(m=1==g.ce?256:65536);g=m-f;0==d.mode?(0>=g&&(g=0),g||(d.Pc=!0,d.Be=!1,b||bi(a,0))):4==d.mode?(d.Pc=1!=g,0>=g&&(g=l+g,0>=g&&(g=l),d.Hc[0]=g&255,d.Hc[1]=g>>8,d.Kd=e,!b&&d.Pc&&bi(a,0))):6==d.mode&&(g-=f,0>=g&&(d.Pc=!d.Pc,g=l+g,0>=g&&(g=l),d.Hc[0]=g&255,d.Hc[1]=g>>8,d.Kd=e,!b&&d.Pc&&bi(a,0)));d.Wb[0]=g&255;d.Wb[1]=g>>8;c&&(a.Kd=0)}return d} -function rb(a,b){for(var c=0;c<a.Lb.length;c++)fi(a,c,b);if(a.Da>=lh){var c=0,d=a.la.ba.hd,e=pb(a.la,a.vg);if(0<=a.qf&&(c=e-a.qf,Math.floor(c/d)&&60<=++a.oa[0]&&(a.oa[0]=0,60<=++a.oa[2]&&(a.oa[2]=0,24<=++a.oa[4])))){a.oa[4]=0;a.oa[6]=a.oa[6]%7+1;var f=a.oa[9],l=ja[a.oa[8]-1];28==l&&0===f%4&&(f%100||0===f%400)&&l++;++a.oa[7]>l&&(a.oa[7]=1,12<++a.oa[8]&&(a.oa[8]=1,a.oa[9]=(a.oa[9]+1)%100))}a.qf=e-c%d}}h.vm=function(){var a=this.fg;this.af&16&&(this.kc&128?a=this.Lc:this.Ra&&(a=ii(this.Ra)));return a}; +function fi(a,b,c){var d=a.Lb[b];if(d.Be&&(2!=b||a.kc&1)){var e=pb(a.la,a.vg),f=(e-d.Kd)/a.Sk|0;0>f&&(d.Kd=e,f=0);var k=hi(a,b),g=a.Lb[b],m=g.Hc[1]<<8|g.Hc[0];m||(m=1==g.ce?256:65536);g=m-f;0==d.mode?(0>=g&&(g=0),g||(d.Pc=!0,d.Be=!1,b||bi(a,0))):4==d.mode?(d.Pc=1!=g,0>=g&&(g=k+g,0>=g&&(g=k),d.Hc[0]=g&255,d.Hc[1]=g>>8,d.Kd=e,!b&&d.Pc&&bi(a,0))):6==d.mode&&(g-=f,0>=g&&(d.Pc=!d.Pc,g=k+g,0>=g&&(g=k),d.Hc[0]=g&255,d.Hc[1]=g>>8,d.Kd=e,!b&&d.Pc&&bi(a,0)));d.Wb[0]=g&255;d.Wb[1]=g>>8;c&&(a.Kd=0)}return d} +function rb(a,b){for(var c=0;c<a.Lb.length;c++)fi(a,c,b);if(a.Da>=lh){var c=0,d=a.la.ba.hd,e=pb(a.la,a.vg);if(0<=a.qf&&(c=e-a.qf,Math.floor(c/d)&&60<=++a.oa[0]&&(a.oa[0]=0,60<=++a.oa[2]&&(a.oa[2]=0,24<=++a.oa[4])))){a.oa[4]=0;a.oa[6]=a.oa[6]%7+1;var f=a.oa[9],k=ja[a.oa[8]-1];28==k&&0===f%4&&(f%100||0===f%400)&&k++;++a.oa[7]>k&&(a.oa[7]=1,12<++a.oa[8]&&(a.oa[8]=1,a.oa[9]=(a.oa[9]+1)%100))}a.qf=e-c%d}}h.vm=function(){var a=this.fg;this.af&16&&(this.kc&128?a=this.Lc:this.Ra&&(a=ii(this.Ra)));return a}; h.En=function(a,b){this.fg=b};h.wm=function(){return this.kc};h.Fn=function(a,b){ji(this,b);this.Ra&&ki(this.Ra,b&128?!1:!0,b&64?!0:!1)};function ji(a,b){var c=!!(b&2),d=!!(a.kc&2);a.kc=b;c!=d&&qb(a,c)}h.xm=function(){var a=0,a=this.Da==gh?this.kc&4?a|this.re&15:a|this.re>>4&1:this.kc&8?a|this.Lc>>4:a|this.Lc&15;this.kc&1&&fi(this,2).Pc&&(a=this.kc&2?a|32:a|16);return a};h.Gn=function(a,b){this.lh=b};h.ym=function(){return this.af};h.Hn=function(a,b){this.af=b}; h.Ml=function(){var a=this.$f;this.cb&=-258;var b=this.Ra&&ii(this.Ra,!0);b&&li(this,b);return a};h.Xm=function(a,b){if(this.cb&8)switch(this.Yc){case 96:mi(this,b);break;case 209:ni(this,b);break;default:if(mi(this,this.Mc&-17),this.Ra){var c=-1;switch(b){case 255:var c=250,d=this.Ra;d.ac=[170];d.ja&&oi(d.ja)}li(this,c)}}this.Yc=b;this.cb&=-9};h.Nl=function(){return this.kc&-209|(pb(this.la)&64?16:0)};h.Ym=function(a,b){ji(this,b)}; h.Ol=function(){var a=this.cb&255;this.cb&256&&(this.cb|=1,this.cb&=-257);return a};h.Wm=function(a,b){this.Yc=b;this.cb|=8;var c=0;240<=this.Yc&&(c=this.Yc^15,this.Yc=240);switch(this.Yc){case 192:li(this,this.Vd);break;case 173:mi(this,this.Mc|16);break;case 174:mi(this,this.Mc&-17);break;case 170:this.Ra&&pi(this.Ra,!0);mi(this,this.Mc|16);li(this,85);ni(this,3);break;case 224:li(this,this.Mc&16?0:1);break;case 240:c&1&&fc(this.la)}}; @@ -458,36 +458,37 @@ var oh={0:function(){return Hh(this,0,0)},1:function(){return Jh(this,0,0)},2:fu 0)},32:function(a,b){Vh(this,0,b)},33:function(a,b){ai(this,0,b)},64:function(a,b){gi(this,0,b)},65:function(a,b){gi(this,1,b)},66:function(a,b){gi(this,2,b)},67:P.prototype.Ln,129:function(a,b){Rh(this,0,2,b)},130:function(a,b){Rh(this,0,3,b)},131:function(a,b){Rh(this,0,1,b)},135:function(a,b){Rh(this,0,0,b)}},rh={96:P.prototype.En,97:P.prototype.Fn,98:P.prototype.Gn,99:P.prototype.Hn,160:P.prototype.Dn},th={96:P.prototype.Xm,97:P.prototype.Ym,100:P.prototype.Wm,112:P.prototype.mn,113:P.prototype.nn, 128:P.prototype.Bn,132:function(a,b){this.Mb[0]=b},133:function(a,b){this.Mb[1]=b},134:function(a,b){this.Mb[2]=b},136:function(a,b){this.Mb[3]=b},137:function(a,b){Rh(this,1,2,b)},138:function(a,b){Rh(this,1,3,b)},139:function(a,b){Rh(this,1,1,b)},140:function(a,b){this.Mb[4]=b},141:function(a,b){this.Mb[5]=b},142:function(a,b){this.Mb[6]=b},143:function(a,b){Rh(this,1,0,b)},160:function(a,b){Vh(this,1,b)},161:function(a,b){ai(this,1,b)},192:function(a,b){Ih(this,1,0,b)},194:function(a,b){Kh(this, 1,0,b)},196:function(a,b){Ih(this,1,1,b)},198:function(a,b){Kh(this,1,1,b)},200:function(a,b){Ih(this,1,2,b)},202:function(a,b){Kh(this,1,2,b)},204:function(a,b){Ih(this,1,3,b)},206:function(a,b){Kh(this,1,3,b)},208:function(a,b){this.Ta[1].kh=b},210:function(a,b){Mh(this,1,b)},212:function(a,b){Nh(this,1,b)},214:function(a,b){this.Ta[1].rb[b&3].mode=b},216:function(){this.Ta[1].Bb=0},218:function(){Ph(this,1)}}; -t(function(){for(var a=B(window.document,"pcjs","chipset"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new P(d);A(d,c);uh(d)}});function qi(a){v.call(this,"ROM",a,qi);this.lb=null;this.lj=a.addr;this.Yg=a.size;this.ol=a.alias;this.Mf=a.file;this.Jj=a.notify;if(this.Mf){a=this.Mf;var b=ea(this.Mf);"json"!=b&&"hex"!=b&&(a=la()+"/api/v1/dump?file="+this.Mf+"&format=bytes&decimal=true");q(a,!0,null,this,qi.prototype.Rm)}}y(v,qi);qi.prototype.mc=function(a,b,c,d){this.qa=b;this.la=c;this.Pa=d;ri(this)}; -qi.prototype.Qb=function(){this.hh&&(this.Pa&&this.Pa.Zo(this.lj,this.Yg,this.hh),delete this.hh);return!0};qi.prototype.Pb=function(){return!0}; -qi.prototype.Rm=function(a,b,c){if(c)this.za("Unable to load system ROM (error "+c+")");else{if("["==b.charAt(0)||"{"==b.charAt(0))try{var d=eval("("+b+")"),e=d.bytes,f=d.data;if(e)this.lb=e;else if(f)for(this.lb=Array(4*f.length),c=b=0;b<f.length;b++)this.lb[c++]=f[b]&255,this.lb[c++]=f[b]>>8&255,this.lb[c++]=f[b]>>16&255,this.lb[c++]=f[b]>>24&255;else this.lb=d;this.hh=d.symbols;if(!this.lb.length){s("Empty ROM: "+a);return}if(1==this.lb.length){s(this.lb[0]);return}}catch(l){this.za("ROM data error: "+ -l.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.lb=Array(a.length),d=0;d<a.length;d++)this.lb[d]=parseInt(a[d],16);ri(this)}};function ri(a){if(!Ja(a))if(!a.Mf)a.Ma();else if(a.lb&&a.qa){if(a.lb.length!=a.Yg)Ka(a,"ROM size (0x"+p(a.lb.length)+") does not match specified size (0x"+p(a.Yg)+")");else if(si(a,a.lj)&&si(a,a.ol)){if(a.Jj){var b=Ga(a.Jj,a.id);b&&("ega"==b.Da&&ti(b,a.lb,[8752,12640],8),b.Ma())}delete a.lb}a.Ma()}} -function si(a,b){if(null==b)return!0;if(Qa(a.qa,b,a.Yg,!0)){for(var c=0;c<a.lb.length;c++)Wa(a.qa,b+c,a.lb[c]);return!0}return!1}t(function(){for(var a=B(window.document,"pcjs","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new qi(d);A(d,c)}});function ui(a){v.call(this,"RAM",a,ui);this.Zf=a.addr;this.md=a.size;this.El=a.test;this.Bl=!!this.md;this.ng=!1}y(v,ui);ui.prototype.mc=function(a,b,c){this.qa=b;this.la=c;this.ja=D(a,"ChipSet");this.Ma()};ui.prototype.Qb=function(a,b){b||this.reset();return!0}; +t(function(){for(var a=B(window.document,"pcjs","chipset"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new P(d);A(d,c);uh(d)}});function qi(a){v.call(this,"ROM",a,qi);this.mb=null;this.lj=a.addr;this.Yg=a.size;this.ol=a.alias;this.Mf=a.file;this.Jj=a.notify;if(this.Mf){a=this.Mf;var b=ea(this.Mf);"json"!=b&&"hex"!=b&&(a=la()+"/api/v1/dump?file="+this.Mf+"&format=bytes&decimal=true");q(a,!0,null,this,qi.prototype.Rm)}}y(v,qi);qi.prototype.mc=function(a,b,c,d){this.qa=b;this.la=c;this.Pa=d;ri(this)}; +qi.prototype.Qb=function(){this.hh&&(this.Pa&&this.Pa.ap(this.lj,this.Yg,this.hh),delete this.hh);return!0};qi.prototype.Pb=function(){return!0}; +qi.prototype.Rm=function(a,b,c){if(c)this.za("Unable to load system ROM (error "+c+")");else{if("["==b.charAt(0)||"{"==b.charAt(0))try{var d=eval("("+b+")"),e=d.bytes,f=d.data;if(e)this.mb=e;else if(f)for(this.mb=Array(4*f.length),c=b=0;b<f.length;b++)this.mb[c++]=f[b]&255,this.mb[c++]=f[b]>>8&255,this.mb[c++]=f[b]>>16&255,this.mb[c++]=f[b]>>24&255;else this.mb=d;this.hh=d.symbols;if(!this.mb.length){s("Empty ROM: "+a);return}if(1==this.mb.length){s(this.mb[0]);return}}catch(k){this.za("ROM data error: "+ +k.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.mb=Array(a.length),d=0;d<a.length;d++)this.mb[d]=parseInt(a[d],16);ri(this)}};function ri(a){if(!Ja(a))if(!a.Mf)a.Ma();else if(a.mb&&a.qa){if(a.mb.length!=a.Yg)Ka(a,"ROM size (0x"+p(a.mb.length)+") does not match specified size (0x"+p(a.Yg)+")");else if(si(a,a.lj)&&si(a,a.ol)){if(a.Jj){var b=Ga(a.Jj,a.id);b&&("ega"==b.Da&&ti(b,a.mb,[8752,12640],8),b.Ma())}delete a.mb}a.Ma()}} +function si(a,b){if(null==b)return!0;if(Qa(a.qa,b,a.Yg,!0)){for(var c=0;c<a.mb.length;c++)Wa(a.qa,b+c,a.mb[c]);return!0}return!1}t(function(){for(var a=B(window.document,"pcjs","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new qi(d);A(d,c)}});function ui(a){v.call(this,"RAM",a,ui);this.Zf=a.addr;this.md=a.size;this.El=a.test;this.Bl=!!this.md;this.ng=!1}y(v,ui);ui.prototype.mc=function(a,b,c){this.qa=b;this.la=c;this.ja=D(a,"ChipSet");this.Ma()};ui.prototype.Qb=function(a,b){b||this.reset();return!0}; ui.prototype.Pb=function(){return!0};ui.prototype.reset=function(){if(!this.Zf&&!this.Bl&&this.ja){var a=1024*yh(this.ja);this.md&&a!=this.md&&(Sa(this.qa,this.Zf,this.md),this.ng=!1);this.md=a}!this.ng&&this.md&&Qa(this.qa,this.Zf,this.md)&&(this.ng=!0,this.status(Math.floor(this.md/1024)+"Kb"));if(this.ng){if(this.El||Xa(this.qa,1138,4660),this.ja&&(a=this.ja,a.oa)){var b=1048576>this.Zf?21:23,c=a.oa[b]|a.oa[b+1]<<8,c=c+(this.md>>10);a.oa[b]=c&255;a.oa[b+1]=c>>8;Ch(a)}}else s("No RAM allocated")}; t(function(){for(var a=B(window.document,"pcjs","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new ui(d);A(d,c)}});function vi(a){v.call(this,"Keyboard",a,vi);this.gh={};this.Km=250;this.Lm=100;this.Ma()}y(v,vi); -var Q={" ":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,fo:65,ho:66,ej:67,jl:68,E:69,lo:70,oo:71,fj:72,qo:73,ro:74,so:75,to:76,uo:77,bh:78,wo:79,xo:80,zo:81,hj:82,Do:83,No:84,Ro:85,So:86,To:87,Vo:88,Wo:89,Xo:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Yo:97,$o:98,bp:99,cp:100,dp:101,ep:102,fp:103,gp:104,hp:105,ip:106,jp:107,kp:108,lp:109,np:110, -pp:111,qp:112,rp:113,sp:114,tp:115,vp:116,wp:117,yp:118,zp:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},wi={16:2,17:8,18:32},xi={tab:1009,esc:1027,"right-shift":3016,shift:1016,ctrl:1017,alt:1018,"caps-lock":1020,f1:1112,f2:1113,f3:1114,f4:1115,f5:1116,f6:1117,f7:1118,f8:1119,f9:1120,f10:1121,left:1037,up:1038,right:1039,down:1040,"ctrl-c":4003,"ctrl-break":4063,"ctrl-alt-del":4081},R={esc:1,1:2,2:3,3:4,4:5,5:6,6:7,7:8,8:9,9:10,0:11,"-":12,"=":13,backspace:14,tab:15,q:16,w:17,e:18,r:19, -t:20,y:21,u:22,i:23,o:24,p:25,"[":26,"]":27,enter:28,ctrl:29,a:30,s:31,d:32,f:33,g:34,h:35,j:36,k:37,l:38,";":39,quote:40,"`":41,shift:42,"\\":43,z:44,x:45,c:46,v:47,b:48,n:49,m:50,",":51,".":52,"/":53,"right-shift":54,prtsc:55,alt:56,space:57,"caps-lock":58,f1:59,f2:60,f3:61,f4:62,f5:63,f6:64,f7:65,f8:66,f9:67,f10:68,"num-lock":69,"scroll-lock":70,"num-home":71,"num-up":72,"num-pgup":73,"num-sub":74,"num-left":75,"num-center":76,"num-right":77,"num-add":78,"num-end":79,"num-down":80,"num-pgdn":81, +var Q={jo:1,ko: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,fo:65,ho:66,ej:67,jl:68,E:69,no:70,qo:71,fj:72,so:73,to:74,uo:75,vo:76,wo:77,bh:78,yo:79,zo:80,Bo:81,hj:82,Fo:83,Po:84,To:85,Uo:86,Vo:87,Xo:88,Yo:89,Zo:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,$o:97,bp:98,dp:99,ep:100,fp:101,gp:102,hp:103,ip:104,jp:105,kp:106,lp:107,mp:108, +np:109,pp:110,rp:111,sp:112,tp:113,vp:114,wp:115,xp:116,yp:117,Ap:118,Bp:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},wi={16:2,17:8,18:32,20:256},xi={tab:1009,esc:1027,"right-shift":3016,shift:1016,ctrl:1017,alt:1018,"caps-lock":1020,f1:1112,f2:1113,f3:1114,f4:1115,f5:1116,f6:1117,f7:1118,f8:1119,f9:1120,f10:1121,left:1037,up:1038,right:1039,down:1040,"ctrl-c":4003,"ctrl-break":4063,"ctrl-alt-del":4081},R={esc:1,1:2,2:3,3:4,4:5,5:6,6:7,7:8,8:9,9:10,0:11,"-":12,"=":13,bs:14,tab:15,q:16,w:17, +e:18,r:19,t:20,y:21,u:22,i:23,o:24,p:25,"[":26,"]":27,enter:28,ctrl:29,a:30,s:31,d:32,f:33,g:34,h:35,j:36,k:37,l:38,";":39,quote:40,"`":41,shift:42,"\\":43,z:44,x:45,c:46,v:47,b:48,n:49,m:50,",":51,".":52,"/":53,"right-shift":54,prtsc:55,alt:56,space:57,"caps-lock":58,f1:59,f2:60,f3:61,f4:62,f5:63,f6:64,f7:65,f8:66,f9:67,f10:68,"num-lock":69,"scroll-lock":70,"num-home":71,"num-up":72,"num-pgup":73,"num-sub":74,"num-left":75,"num-center":76,"num-right":77,"num-add":78,"num-end":79,"num-down":80,"num-pgdn":81, "num-ins":82,"num-del":83,sysreq:84,pause:84,f11:87,f12:88,"num-enter":57372,"right-ctrl":57373,"num-div":57397,"num-mul":57399,"right-alt":57400,home:57415,up:57416,pgup:57417,left:57419,right:57421,end:57423,down:57424,pgdn:57425,ins:57426,del:57427,win:57435,"right-win":57436,menu:57437},S={};S[1027]=R.esc;S[Q["1"]]=R["1"];S[Q["!"]]=R["1"]|512;S[Q["2"]]=R["2"];S[Q["@"]]=R["2"]|512;S[Q["3"]]=R["3"];S[Q["#"]]=R["3"]|512;S[Q["4"]]=R["4"];S[Q.$]=R["4"]|512;S[Q["5"]]=R["5"];S[Q["%"]]=R["5"]|512; -S[Q["6"]]=R["6"];S[Q["^"]]=R["6"]|512;S[Q["7"]]=R["7"];S[Q["&"]]=R["7"]|512;S[Q["8"]]=R["8"];S[Q["*"]]=R["8"]|512;S[Q["9"]]=R["9"];S[Q["("]]=R["9"]|512;S[Q["0"]]=R["0"];S[Q[")"]]=R["0"]|512;S[Q["-"]]=R["-"];S[Q._]=R["-"]|512;S[Q["="]]=R["="];S[Q["+"]]=R["="]|512;S[1008]=R.backspace;S[1009]=R.tab;S[113]=R.q;S[81]=R.q|512;S[119]=R.w;S[87]=R.w|512;S[101]=R.e;S[69]=R.e|512;S[114]=R.r;S[82]=R.r|512;S[116]=R.t;S[84]=R.t|512;S[121]=R.y;S[89]=R.y|512;S[117]=R.u;S[85]=R.u|512;S[105]=R.i;S[73]=R.i|512; -S[111]=R.o;S[79]=R.o|512;S[112]=R.p;S[80]=R.p|512;S[Q["["]]=R["["];S[Q["{"]]=R["["]|512;S[Q["]"]]=R["]"];S[Q["}"]]=R["]"]|512;S[13]=R.enter;S[1017]=R.ctrl;S[97]=R.a;S[65]=R.a|512;S[115]=R.s;S[83]=R.s|512;S[100]=R.d;S[68]=R.d|512;S[102]=R.f;S[70]=R.f|512;S[103]=R.g;S[71]=R.g|512;S[104]=R.h;S[72]=R.h|512;S[106]=R.j;S[74]=R.j|512;S[107]=R.k;S[75]=R.k|512;S[108]=R.l;S[76]=R.l|512;S[Q[";"]]=R[";"];S[Q[":"]]=R[";"]|512;S[Q["'"]]=R.quote;S[Q['"']]=R.quote|512;S[Q["`"]]=R["`"];S[Q["~"]]=R["`"]|512; -S[1016]=R.shift;S[Q["\\"]]=R["\\"];S[Q["\\"]]=R["\\"]|512;S[122]=R.z;S[90]=R.z|512;S[120]=R.x;S[88]=R.x|512;S[99]=R.c;S[67]=R.c|512;S[118]=R.v;S[86]=R.v|512;S[98]=R.b;S[66]=R.b|512;S[110]=R.n;S[78]=R.n|512;S[109]=R.m;S[77]=R.m|512;S[Q[","]]=R[","];S[Q["<"]]=R[","]|512;S[Q["."]]=R["."];S[Q[">"]]=R["."]|512;S[Q["/"]]=R["/"];S[Q["?"]]=R["/"]|512;S[3016]=R["right-shift"];S[1018]=R.alt;S[Q[" "]]=R.space;S[1020]=R["caps-lock"];S[1112]=R.f1;S[1113]=R.f2;S[1114]=R.f3;S[1115]=R.f4;S[1116]=R.f5;S[1117]=R.f6; -S[1118]=R.f7;S[1119]=R.f8;S[1120]=R.f9;S[1121]=R.f10;S[1036]=R["num-home"];S[1038]=R["num-up"];S[1033]=R["num-pgup"];S[1037]=R["num-left"];S[1039]=R["num-right"];S[1035]=R["num-end"];S[1040]=R["num-down"];S[1034]=R["num-pgdn"];S[1045]=R["num-ins"];S[1046]=R["num-del"];S[4003]=R.c+2048;S[4063]=R["scroll-lock"]+2048;S[4081]=R["num-del"]+2048+2097152;h=vi.prototype; -h.wb=function(a,b,c,d){var e=this;a=b+"-"+c;if(void 0===this.sa[a])switch(c){case "kbd":return this.sa[a]=d,d.onkeydown=function(a){return yi(e,a,!0)},d.onkeypress=function(a){var b=!0;a=a||window.event;a=a.which||a.keyCode;8==a||9==a?b=!1:e.mb&64?e.mb&=-65:b=e.mb&40?!1:!zi(e,a);return b},d.onkeyup=function(a){return yi(e,a,!1)},!0;default:if(void 0!==xi[c]&&"button"==b)return this.sa[a]=d,d.onclick=function(a,b,c){return function(){a.la&&a.la.Oe();return!zi(a,c)}}(this,c,xi[c]),!0;if(void 0!==R[c])return this.sa[a]= +S[Q["6"]]=R["6"];S[Q["^"]]=R["6"]|512;S[Q["7"]]=R["7"];S[Q["&"]]=R["7"]|512;S[Q["8"]]=R["8"];S[Q["*"]]=R["8"]|512;S[Q["9"]]=R["9"];S[Q["("]]=R["9"]|512;S[Q["0"]]=R["0"];S[Q[")"]]=R["0"]|512;S[Q["-"]]=R["-"];S[Q._]=R["-"]|512;S[Q["="]]=R["="];S[Q["+"]]=R["="]|512;S[1008]=R.bs;S[1009]=R.tab;S[113]=R.q;S[81]=R.q|512;S[119]=R.w;S[87]=R.w|512;S[101]=R.e;S[69]=R.e|512;S[114]=R.r;S[82]=R.r|512;S[116]=R.t;S[84]=R.t|512;S[121]=R.y;S[89]=R.y|512;S[117]=R.u;S[85]=R.u|512;S[105]=R.i;S[73]=R.i|512;S[111]=R.o; +S[79]=R.o|512;S[112]=R.p;S[80]=R.p|512;S[Q["["]]=R["["];S[Q["{"]]=R["["]|512;S[Q["]"]]=R["]"];S[Q["}"]]=R["]"]|512;S[13]=R.enter;S[1017]=R.ctrl;S[97]=R.a;S[65]=R.a|512;S[115]=R.s;S[83]=R.s|512;S[100]=R.d;S[68]=R.d|512;S[102]=R.f;S[70]=R.f|512;S[103]=R.g;S[71]=R.g|512;S[104]=R.h;S[72]=R.h|512;S[106]=R.j;S[74]=R.j|512;S[107]=R.k;S[75]=R.k|512;S[108]=R.l;S[76]=R.l|512;S[Q[";"]]=R[";"];S[Q[":"]]=R[";"]|512;S[Q["'"]]=R.quote;S[Q['"']]=R.quote|512;S[Q["`"]]=R["`"];S[Q["~"]]=R["`"]|512;S[1016]=R.shift; +S[Q["\\"]]=R["\\"];S[Q["\\"]]=R["\\"]|512;S[122]=R.z;S[90]=R.z|512;S[120]=R.x;S[88]=R.x|512;S[99]=R.c;S[67]=R.c|512;S[118]=R.v;S[86]=R.v|512;S[98]=R.b;S[66]=R.b|512;S[110]=R.n;S[78]=R.n|512;S[109]=R.m;S[77]=R.m|512;S[Q[","]]=R[","];S[Q["<"]]=R[","]|512;S[Q["."]]=R["."];S[Q[">"]]=R["."]|512;S[Q["/"]]=R["/"];S[Q["?"]]=R["/"]|512;S[3016]=R["right-shift"];S[1018]=R.alt;S[Q[" "]]=R.space;S[1020]=R["caps-lock"];S[1112]=R.f1;S[1113]=R.f2;S[1114]=R.f3;S[1115]=R.f4;S[1116]=R.f5;S[1117]=R.f6;S[1118]=R.f7; +S[1119]=R.f8;S[1120]=R.f9;S[1121]=R.f10;S[1036]=R["num-home"];S[1038]=R["num-up"];S[1033]=R["num-pgup"];S[1037]=R["num-left"];S[1039]=R["num-right"];S[1035]=R["num-end"];S[1040]=R["num-down"];S[1034]=R["num-pgdn"];S[1045]=R["num-ins"];S[1046]=R["num-del"];S[1122]=R.f11;S[1123]=R.f12;S[4003]=R.c+2048;S[4063]=R["scroll-lock"]+2048;S[4081]=R["num-del"]+2048+2097152;h=vi.prototype; +h.wb=function(a,b,c,d){var e=this;a=b+"-"+c;if(void 0===this.sa[a])switch(c){case "kbd":return this.sa[a]=d,d.onkeydown=function(a){return yi(e,a,!0)},d.onkeypress=function(a){var b=!0;a=a||window.event;a=a.which||a.keyCode;8==a||9==a?b=!1:e.kb&64?e.kb&=-65:b=e.kb&40?!1:!zi(e,a);return b},d.onkeyup=function(a){return yi(e,a,!1)},!0;default:if(void 0!==xi[c]&&"button"==b)return this.sa[a]=d,d.onclick=function(a,b,c){return function(){a.la&&a.la.Oe();return!zi(a,c)}}(this,c,xi[c]),!0;if(void 0!==R[c])return this.sa[a]= d,b=function(a,b,c){return function(){Ai(a,c)}}(this,c,R[c]),c=function(a,b,c){return function(){Ai(a,c)}}(this,c,R[c]|128),"ontouchstart"in window?(d.ontouchstart=b,d.ontouchend=c):(d.onmousedown=b,d.onmouseup=d.onmouseout=c),!0}return!1};h.mc=function(a,b,c,d){this.qa=b;this.la=c;this.Pa=d;this.ja=D(a,"ChipSet")};h.Ma=function(){this.Cl=(this.Ll=qa("iOS"))||qa("Android");return v.prototype.Ma.call(this)}; function ki(a,b,c){var d=!1;a.Ch!==c&&(a.Ch=a.Gh=c);a.sg!==b&&(a.sg=b)&&!a.Gh&&pi(a);a.sg&&a.Gh&&(a.ac=[170],a.ja&&oi(a.ja),a.Gh=!1,d=!0);return d}function ii(a,b){var c=0;a.ac.length&&(c=a.ac[0],b&&pi(a));return c}function pi(a,b){0<a.ac.length&&(b?a.ac=[]:(a.ac.shift(),0<a.ac.length&&a.ja&&oi(a.ja)))}h.Qb=function(a,b){return!b&&(this.reset(),a&&this.restore&&!this.restore(a))?!1:!0};h.Pb=function(a){return a&&this.save?this.save():!0}; -h.reset=function(){this.Cd();this.mb=0;this.ac=[];if(this.Vc)for(var a in this.Vc)null!==a.match(/^[0-9]+$/)||this.Vc[a]&&clearTimeout(this.Vc[a]);this.Vc=[];this.Vk=this.me=0};h.save=function(){var a=new H(this);a.set(0,this.Zi());return a.data()};h.restore=function(a){return this.Cd(a[0])};h.Cd=function(a){var b=0;void 0===a&&(a=[]);this.Ch=a[b++];this.sg=a[b];return!0};h.Zi=function(){var a=0,b=[];b[a++]=this.Ch;b[a]=this.sg;return b}; +h.reset=function(){this.Cd();this.kb=0;this.ac=[];if(this.Vc)for(var a in this.Vc)null!==a.match(/^[0-9]+$/)||this.Vc[a]&&clearTimeout(this.Vc[a]);this.Vc=[];this.Vk=this.me=0};h.save=function(){var a=new H(this);a.set(0,this.Zi());return a.data()};h.restore=function(a){return this.Cd(a[0])};h.Cd=function(a){var b=0;void 0===a&&(a=[]);this.Ch=a[b++];this.sg=a[b];return!0};h.Zi=function(){var a=0,b=[];b[a++]=this.Ch;b[a]=this.sg;return b}; function Ai(a,b){var c=b&127,d=c==b;if(a.ac)if(20>a.ac.length){if(!(!d&&!a.gh[c]||d&&a.gh[c])){a.gh[c]=d;a.ac.push(b);1==a.ac.length&&a.ja&&oi(a.ja);for(var e in R)if(R[e]==c){(c=a.sa["key-"+e])&&void 0!==d&&(c.style.color=d?"#ffffff":"#000000",c.style.backgroundColor=d?"#000000":"#ffffff");break}}}else 20==a.ac.length&&a.ac.push(255)}function Bi(a,b){var c=b?a.Lm:a.Km;a.la&&a.la.ba.Qc&&(c/=a.la.ba.Qc);return c} -function Ci(a,b){!a.me||void 0!==b&&b==a.me||(clearTimeout(a.Vc[a.me]),Di(a,a.me,!1))}function yi(a,b,c){var d,e=!c,f=b.keyCode,l=f;c&&(a.Vk=f);if(S[f+1E3]){var l=l+1E3,g=wi[f]||0;if(g)2==b.location&&(g>>=1,l+=2E3),a.mb&=~g,c&&(a.mb|=g),20==f?d=zi(a,l):e=!1;else if(9==f||27==f||8==f)8==f&&8==(a.mb&40)&&(l=4063),d=c?!zi(a,l):!1}else 91==f?(a.mb&=-65,c&&(a.mb|=64),e=!1,d=!0):b.altKey||b.ctrlKey?65<=f&&90>=f&&(l+=32):d=!0;e&&(a.mb&=-65,a.Cl||f!=a.Vk||Ci(a));void 0===d&&(d=!Di(a,l,c));return d} +function Ci(a,b){!a.me||void 0!==b&&b==a.me||(clearTimeout(a.Vc[a.me]),Di(a,a.me,!1))}function yi(a,b,c){var d,e=!c,f=b.keyCode,k=f;c&&(a.Vk=f);if(S[f+1E3]){var k=k+1E3,g=wi[f]||0;if(g)2==b.location&&(g>>=1,k+=2E3),a.kb&=~g,c&&(a.kb|=g),20==f?d=zi(a,k):e=!1;else if(8==f||9==f||27==f)8==f&&8==(a.kb&40)&&(k=4063),d=c?!zi(a,k):!1}else 91==f?(a.kb&=-65,c&&(a.kb|=64),e=!1,d=!0):b.altKey||b.ctrlKey?65<=f&&90>=f&&(k+=32):d=!0;e&&(a.kb&=-65,a.Cl||f!=a.Vk||Ci(a));void 0===d&&(d=!Di(a,k,c));return d} function zi(a,b,c){var d=!1;Ci(a,b);Di(a,b,!0)&&(c?Di(a,b,!1):(c=!1,a.Vc[b]&&(clearTimeout(a.Vc[b]),c=!0),c=Bi(a,c),a.Vc[a.me=b]=setTimeout(function(a){return function(){Di(a,b,!1)}}(a),c)),d=!0);return d} -function Di(a,b,c){var d=!1;c||(a.Vc[b]=null,a.me==b&&(a.me=0));var e=S[b]||S[b+1E3];void 0===e&&1<=b&&26>=b&&(e=S[b+64]&255|2048);if(void 0!==e){14==e&&40==(a.mb&40)&&(e=83);b=[];for(b.push(e&255|(c?0:128));e>>=8;){var d=0,f=e&255;2==f?a.mb&259||(d=42):8==f?a.mb&12||(d=29):32==f&&(a.mb&48||(d=56));d&&(c?b.unshift(d):b.push(d|128))}for(c=0;c<b.length;c++)Ai(a,b[c]);d=!0}return d}t(function(){for(var a=B(window.document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new vi(d);A(d,c)}}); +function Di(a,b,c){var d=!1;c||(a.Vc[b]=null,a.me==b&&(a.me=0));var e=S[b]||S[b+1E3];void 0===e&&1<=b&&26>=b&&(b+=64,e=S[b]&255|2048);if(void 0!==e){e==R.bs&&40==(a.kb&40)&&(e=R["num-del"]);d=65<=b&&90>=b||97<=b&&122>=b;b=[];for(b.push(e&255|(c?0:128));e>>=8;){var f=0,k=e&255;2==k?a.kb&3||a.kb&256&&d||(f=R.shift):8==k?a.kb&12||(f=R.ctrl):32==k&&(a.kb&48||(f=R.alt));f&&(c?b.unshift(f):b.push(f|128))}for(c=0;c<b.length;c++)Ai(a,b[c]);d=!0}return d} +t(function(){for(var a=B(window.document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new vi(d);A(d,c)}}); function T(a,b,c,d){v.call(this,"Video",a,T);this.Da=a.model;this.Fc=0;"ega"==this.Da&&(this.bl=a.switches,this.Fc=a.memory||0);this.Tc=a.mode;if(void 0===this.Tc||void 0===U[this.Tc])this.Tc=Ei;this.Jg=a.charCols;this.Zh=a.charRows;if(void 0===this.Jg||void 0===this.Zh)this.Jg=U[this.Tc][0],this.Zh=U[this.Tc][1];this.ad=a.screenWidth;this.zd=a.screenHeight;this.Dl=a.scale;this.Al=12<=Math.round(this.ad/this.Jg);this.Fl=a.touchScreen;this.tb=b;this.Gc=c;this.gl=d;this.Oa=this.xb=0;this.pd=[];this.Wc= Array(16);this.Dh=!1;var e=this;this.tb&&(this.tb.onfocus=function(){e.Dh=!0},this.tb.onblur=function(){e.Dh=!1});if(a=a.fontROM)"json"!=ea(a)&&(a=la()+"/api/v1/dump?file="+a+"&format=bytes"),q(a,!0,null,this,this.Sm)}y(v,T); var Fi={2:{bi:15700,ai:208,Qi:85,Ri:96},3:{bi:18432,ai:364,Qi:85,Ri:96},4:{bi:21850,ai:364,Qi:85,Ri:96}},Gi={6:[1,3,!0],7:[2,3,!0],8:[6,3,!0],9:[4,3,!0],10:[3,1,!0],11:[3,2,!0],0:[1,3,!1],1:[2,3,!1],2:[6,3,!1],3:[4,3,!1],4:[3,1,!1],5:[3,2,!1]},Ei=7,U=[,[40,25,1,0,3],,[80,25,1,0,3],[320,200,8,192],,[640,200,16,192]];U[Ei]=[80,25,1,0,1];U[13]=[320,200,16];U[14]=[640,200,16];U[15]=[640,350,16];U[16]=[640,350,16];U[0]=U[1];U[2]=U[3];U[5]=U[4];var Hi=Array(5);Hi[0]=[0,0,0,255];Hi[1]=[127,192,127,255]; Hi[2]=[127,192,127,255];Hi[3]=[127,255,127,255];Hi[4]=[127,255,127,255];var Ii=[0,1,2,2,2,2,2,2,0,3,4,4,4,4,4,4],V=Array(16);V[0]=[0,0,0,255];V[1]=[0,0,170,255];V[2]=[0,170,0,255];V[3]=[0,170,170,255];V[4]=[170,0,0,255];V[5]=[170,0,170,255];V[6]=[170,85,0,255];V[7]=[170,170,170,255];V[8]=[85,85,85,255];V[9]=[85,85,255,255];V[10]=[85,255,85,255];V[11]=[85,255,255,255];V[12]=[255,85,85,255];V[13]=[255,85,255,255];V[14]=[255,255,85,255];V[15]=[255,255,255,255]; var Ji=[2,4,6],Ki=[3,5,7],Li=[0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63],Mi=[0,255,65280,65535,16711680,16711935,16776960,16777215,4278190080,4278190335,4278255360,4278255615,4294901760,4294902015,4294967040,4294967295],X=[0];X[128]=1;X[32768]=2;X[32896]=3;X[8388608]=4;X[8388736]=5;X[8421376]=6;X[8421504]=7;X[2147483648]=8;X[2147483776]=9;X[2147516416]=10;X[2147516544]=11;X[2155872256]=12;X[2155872384]=13;X[2155905024]=14;X[2155905152]=15; function Ni(a,b,c,d){if(void 0!==b&&(!c||c.length)){var e=Oi[b],f=a.Gd||e[5];if(!c||6>c.length)c=[!1,0,null,null,0,Array(Pi)];this.zg=b;this.Oa=e[2];this.xb=e[3];this.Fc=d||e[4];65536<=this.Fc&&720896<=this.Oa&&(this.xb=Math.min(this.Fc>>2,32768));this.ec=c[0];this.nc=c[1];this.ef=c[2];this.Qf=c[3];this.vc=c[4]&255;this.yg=c[4]>>8&255;this.$b=c[5];this.Sh=Pi;if(5==b){this.Sh=Qi;b=c[6];void 0===b&&(b=[!1,0,Array(20),0,3==f?0:1,0,0,Array(5),0,0,0,Array(9),0,[this.Oa,this.xb,this.Fc],Array(this.Fc>> -2),771,0,4294967295,0,4294967295,0,4294967295,0,0,0]);this.Ad=b[0];this.ge=b[1];this.Pd=b[2];this.$i=b[3];this.Dg=b[4];this.Ih=b[5];this.Ge=b[6];this.Xf=b[7];this.Lh=b[8];this.Mh=b[9];this.Fe=b[10];this.ue=b[11];this.nb=b[12];d=b[13];"number"==typeof d&&(d=[this.Oa,this.xb,d]);this.Oa=d[0];this.xb=d[1];d=this.Fc>>2;if((this.Ud=b[14])&&this.Ud.length<d){for(var e=this.Ud,l=0,g=Array(d),m=0;m<e.length-1;){for(var n=e[m++],r=e[m++];n--;)g[l]=r,l+=2;l==d&&(l=1)}this.Ud=g}this.Xg(b[15]);this.Mi=b[16]; +2),771,0,4294967295,0,4294967295,0,4294967295,0,0,0]);this.Ad=b[0];this.ge=b[1];this.Pd=b[2];this.$i=b[3];this.Dg=b[4];this.Ih=b[5];this.Ge=b[6];this.Xf=b[7];this.Lh=b[8];this.Mh=b[9];this.Fe=b[10];this.ue=b[11];this.nb=b[12];d=b[13];"number"==typeof d&&(d=[this.Oa,this.xb,d]);this.Oa=d[0];this.xb=d[1];d=this.Fc>>2;if((this.Ud=b[14])&&this.Ud.length<d){for(var e=this.Ud,k=0,g=Array(d),m=0;m<e.length-1;){for(var n=e[m++],r=e[m++];n--;)g[k]=r,k+=2;k==d&&(k=1)}this.Ud=g}this.Xg(b[15]);this.Mi=b[16]; this.Xa=b[17];this.Sc=b[18];this.ab=b[19];this.Mg=b[20];this.Jd=b[21];this.je=b[22];this.Uh=b[23];this.Vh=b[24]}f=Fi[f]||Fi[3];this.Wh=a.la.ba.hd/f.bi|0;this.Nm=this.Wh*f.Qi/100|0;this.Rj=this.Wh*f.ai;this.Pm=this.Rj*f.Ri/100|0;this.ci=null==c[7]?0:c[7]}}var Pi=18,Qi=25;function Ri(a){return this.xc(a)|this.xc(a+1)<<8}function Si(a,b){this.Ac(a,b&255);this.Ac(a+1,b>>8&255)} var Y=[,,function(a){a+=this.offset;return(this.ea.nb=this.pa[a])>>this.ea.Mi&255},function(a){a+=this.offset;var b=a&-2;return(a&1?this.pa[b]>>8:this.pa[b])&255}];Y[16]=function(a){a+=this.offset;a=this.pa[a];for(var b=this.ea.Uh&this.ea.Vh,c=0,d=128;d;)(a&b)==b&&(c|=d),b>>>=1,d>>=1;return c};Y[512]=function(a,b){var c=a+this.offset,d;d=this.pa[c]&~this.ea.Xa|(b|b<<8|b<<16|b<<24)&this.ea.Xa;d=d&this.ea.ab|this.ea.nb&~this.ea.ab;this.pa[c]!=d&&(this.pa[c]=d,this.Za=!0)}; Y[1024]=function(a,b){var c=a+this.offset;b=b>>this.ea.Sc|b<<8-this.ea.Sc&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ea.Jd|this.ea.je;d=d&this.ea.Xa|this.pa[c]&~this.ea.Xa;d=d&this.ea.ab|this.ea.nb&~this.ea.ab;this.pa[c]!=d&&(this.pa[c]=d,this.Za=!0)}; @@ -496,7 +497,7 @@ Y[2560]=function(a,b){var c=a+this.offset;b=b>>this.ea.Sc|b<<8-this.ea.Sc&255;va Y[3584]=function(a,b){var c=a+this.offset;b=b>>this.ea.Sc|b<<8-this.ea.Sc&255;var d;d=(b|b<<8|b<<16|b<<24)&this.ea.Jd|this.ea.je;d^=this.ea.nb;d=d&this.ea.Xa|this.pa[c]&~this.ea.Xa;d=d&this.ea.ab|this.ea.nb&~this.ea.ab;this.pa[c]!=d&&(this.pa[c]=d,this.Za=!0)};Y[768]=function(a,b){a+=this.offset;var c,d=a&-2;c=this.ea.Xa&(d==a?16711935:4278255360);c=(b|b<<8|b<<16|b<<24)&c|this.pa[d]&~c;c=c&this.ea.ab|this.ea.nb&~this.ea.ab;this.pa[d]!=c&&(this.pa[d]=c,this.Za=!0)}; Y[4096]=function(a){a+=this.offset;var b=this.pa[a]&~this.ea.Xa|this.ea.nb&this.ea.Xa;this.pa[a]!=b&&(this.pa[a]=b,this.Za=!0)};Y[8192]=function(a,b){var c=a+this.offset,d=Mi[b&15],d=d&this.ea.Xa|this.pa[c]&~this.ea.Xa,d=d&this.ea.ab|this.ea.nb&~this.ea.ab;this.pa[c]!=d&&(this.pa[c]=d,this.Za=!0)};Y[24576]=function(a,b){var c=a+this.offset,d=Mi[b&15],d=d&this.ea.nb,d=d&this.ea.Xa|this.pa[c]&~this.ea.Xa,d=d&this.ea.ab|this.ea.nb&~this.ea.ab;this.pa[c]!=d&&(this.pa[c]=d,this.Za=!0)}; Y[40960]=function(a,b){var c=a+this.offset,d=Mi[b&15],d=d|this.ea.nb,d=d&this.ea.Xa|this.pa[c]&~this.ea.Xa,d=d&this.ea.ab|this.ea.nb&~this.ea.ab;this.pa[c]!=d&&(this.pa[c]=d,this.Za=!0)};Y[57344]=function(a,b){var c=a+this.offset,d=Mi[b&15],d=d^this.ea.nb,d=d&this.ea.Xa|this.pa[c]&~this.ea.Xa,d=d&this.ea.ab|this.ea.nb&~this.ea.ab;this.pa[c]!=d&&(this.pa[c]=d,this.Za=!0)}; -function Ti(a){var b=[];if(void 0!==a.zg){b[0]=a.ec;b[1]=a.nc;b[2]=a.ef;b[3]=a.Qf;b[4]=a.vc|a.yg<<8;b[5]=a.$b;if(5==a.zg){var c=[];c[0]=a.Ad;c[1]=a.ge;c[2]=a.Pd;c[3]=a.$i;c[4]=a.Dg;c[5]=a.Ih;c[6]=a.Ge;c[7]=a.Xf;c[8]=a.Lh;c[9]=a.Mh;c[10]=a.Fe;c[11]=a.ue;c[12]=a.nb;c[13]=[a.Oa,a.xb,a.Fc];var d;a:if(d=a.Ud){var e=0,f=[];if(void 0!==d[0])for(var l=0;2>l;l++)for(var g=l;g<d.length;){for(var m=d[g],n=g+2;n<d.length&&d[n]===m;)n+=2;f[e++]=n-g>>1;f[e++]=m;g=n}if(f.length<d.length){d=f;break a}}c[14]=d;c[15]= +function Ti(a){var b=[];if(void 0!==a.zg){b[0]=a.ec;b[1]=a.nc;b[2]=a.ef;b[3]=a.Qf;b[4]=a.vc|a.yg<<8;b[5]=a.$b;if(5==a.zg){var c=[];c[0]=a.Ad;c[1]=a.ge;c[2]=a.Pd;c[3]=a.$i;c[4]=a.Dg;c[5]=a.Ih;c[6]=a.Ge;c[7]=a.Xf;c[8]=a.Lh;c[9]=a.Mh;c[10]=a.Fe;c[11]=a.ue;c[12]=a.nb;c[13]=[a.Oa,a.xb,a.Fc];var d;a:if(d=a.Ud){var e=0,f=[];if(void 0!==d[0])for(var k=0;2>k;k++)for(var g=k;g<d.length;){for(var m=d[g],n=g+2;n<d.length&&d[n]===m;)n+=2;f[e++]=n-g>>1;f[e++]=m;g=n}if(f.length<d.length){d=f;break a}}c[14]=d;c[15]= a.Rh;c[16]=a.Mi;c[17]=a.Xa;c[18]=a.Sc;c[19]=a.ab;c[20]=a.Mg;c[21]=a.Jd;c[22]=a.je;c[23]=a.Uh;c[24]=a.Vh;b[6]=c}b[7]=a.ci}return b}Ni.prototype.Xg=function(a){if(null!=a&&a!=this.Rh){var b=a&255,c=Y[b];c||b&1&&(c=Y[1]);var b=a&65280,d=Y[b];d||b&256&&(d=Y[256]);this.Xe||(this.Xe=[null,Ri,null,Si]);this.Xe[0]=c;this.Xe[2]=d;this.Rh=a}};var Oi=[,["MDA",948,720896,4096,0,3],,["CGA",980,753664,16384,0,2],,["EGA",980,753664,16384,65536,4]];h=T.prototype; h.mc=function(a,b,c,d){this.qa=b;this.la=c;this.Pa=d;Za(b,this,Ui);ab(b,this,Vi);"ega"==this.Da&&(Za(b,this,Wi),ab(b,this,Xi));(this.Ra=D(a,"Keyboard"))&&this.tb&&this.Ra.wb("input",this.gl?"textarea":"canvas","kbd",this.gl||this.tb);this.ag=9;(this.ja=D(a,"ChipSet"))&&this.bl&&(this.ag=hh(this.bl,this.ag));this.Ra&&this.Fl&&Yi(this)};h.wb=function(a,b,c,d){var e=this;switch(c){case "refresh":return this.sa[c]=d,d.onclick=function(){fb(e,!0)},!0}return!1};h.Oe=function(){this.tb&&this.tb.focus()}; function Yi(a){var b=a.tb;b&&!a.Bh&&(b.addEventListener("touchstart",function(b){Zi(a,b)},!1),b.addEventListener("touchmove",function(b){Zi(a,b)},!0),b.addEventListener("touchend",function(){},!1),a.Bh=!0)} @@ -506,23 +507,23 @@ h.reset=function(){var a=!0,b=0;this.ja&&(b=zh(this.ja));var c=!1;if(this.Da)swi h.restore=function(a){var b=a[2];this.Gd=b[0];this.Tc=b[1];this.Fd=b[2];this.Ca=null;this.Ec=this.ph=new Ni(this,1,a[0]);this.Vb=this.jg=new Ni(this,3,a[1]);this.ma=new Ni(this,5,a[3],this.Fc);this.ma.ec&&$i(this);aj(this);if(!cj(this))return!1;dj(this);return!0}; h.Sm=function(a,b,c){if(c)this.za("Unable to load font ROM image (error "+c+")");else{try{var d=eval("("+b+")");if(!d.length){s("Empty font ROM image: "+a);return}if(1==d.length){s(d[0]);return}if(8192==d.length)ti(this,d,[0,6144]);else{this.za("Unrecognized font data length ("+d.length+")");return}}catch(e){this.za("Font ROM data error: "+e.message);return}this.Ma()}}; function ej(a,b){if(1==b)return a.Wc[0]=V[0],a.Wc[1]=V[7],a.Wc;if(2==b){var c=a.Ca.ef;if(a.Ca===a.ma){var d=a.ma.Pd[0],c=d&7;d&16&&(c|=8);18!=a.ma.Pd[1]&&(c|=32)}a.Wc[0]=V[c&15];c=c&32?Ki:Ji;for(d=0;d<c.length;d++)a.Wc[d+1]=V[c[d]];return a.Wc}if(a.Vb===a.jg)return V;c=null!=a.ma.Pd[15]?a.ma.Pd:Li;for(d=0;d<a.Wc.length;d++){var e=c[d]||0;a.Wc[d]=[(e&4?170:0)|(e&32?85:0),(e&2?170:0)|(e&16?85:0),(e&1?170:0)|(e&8?85:0),255]}return a.Wc}function ti(a,b,c,d){a.Yf=b;a.fh=c;a.de=d} -function aj(a){var b=!1;if(window&&a.Yf){var c=a.de?0:2048,d=a.de?a.de:9;fj(a,1,a.fh[0],c,d,14,a.Yf,Hi,Ii)&&(b=!0);c=ej(a);d=a.de?a.de:8;fj(a,3,a.fh[1],0,d,8,a.Yf,c)&&(b=!0);a.de&&fj(a,5,a.fh[0],0,a.de,14,a.Yf,c)&&(b=!0)}return b}function fj(a,b,c,d,e,f,l,g,m){var n=!1;gj(a,b,c,d,e,f,l,g,m)&&(n=!0);a.Al&&gj(a,b<<1,c,d,e,f,l,g,m)&&(n=!0);return n} -function gj(a,b,c,d,e,f,l,g,m){var n=!1,r=b&1?0:1,x=a.pd[b];x||(x={cc:e<<r,dc:f<<r,te:Array(g.length),jj:g.slice(),Ue:m,dh:Array(g.length)});for(m=0;m<g.length;m++){var u=g[m],C=x.te[m]?x.jj[m]:[];if(u[0]!==C[0]||u[1]!==C[1]||u[2]!==C[2]){var n=x,C=m,O=r,W=c,ba=d,ca=e,kb=f,uc=l,pd=[0,0,0,0],vc=window.document.createElement("canvas");vc.width=n.cc<<4;vc.height=n.dc<<4;for(var Xh=vc.getContext("2d"),va=void 0,wb=void 0,Ua=void 0,wc=8>kb||!ba?kb:8,qd=Xh.createImageData(n.cc,n.dc),va=0;256>va;va++){for(Ua= +function aj(a){var b=!1;if(window&&a.Yf){var c=a.de?0:2048,d=a.de?a.de:9;fj(a,1,a.fh[0],c,d,14,a.Yf,Hi,Ii)&&(b=!0);c=ej(a);d=a.de?a.de:8;fj(a,3,a.fh[1],0,d,8,a.Yf,c)&&(b=!0);a.de&&fj(a,5,a.fh[0],0,a.de,14,a.Yf,c)&&(b=!0)}return b}function fj(a,b,c,d,e,f,k,g,m){var n=!1;gj(a,b,c,d,e,f,k,g,m)&&(n=!0);a.Al&&gj(a,b<<1,c,d,e,f,k,g,m)&&(n=!0);return n} +function gj(a,b,c,d,e,f,k,g,m){var n=!1,r=b&1?0:1,x=a.pd[b];x||(x={cc:e<<r,dc:f<<r,te:Array(g.length),jj:g.slice(),Ue:m,dh:Array(g.length)});for(m=0;m<g.length;m++){var u=g[m],C=x.te[m]?x.jj[m]:[];if(u[0]!==C[0]||u[1]!==C[1]||u[2]!==C[2]){var n=x,C=m,O=r,W=c,ba=d,ca=e,kb=f,uc=k,pd=[0,0,0,0],vc=window.document.createElement("canvas");vc.width=n.cc<<4;vc.height=n.dc<<4;for(var Xh=vc.getContext("2d"),va=void 0,wb=void 0,Ua=void 0,wc=8>kb||!ba?kb:8,qd=Xh.createImageData(n.cc,n.dc),va=0;256>va;va++){for(Ua= 0;Ua<kb;Ua++)for(var gk=n.Ue&&C&1&&Ua>=kb-2,hk=uc[Ua<wc?W+va*wc+Ua:ba+va*wc+Ua-wc],rd=0;rd<=O;rd++)for(wb=0;wb<ca;wb++){var Yh=wb<<O,Zh=(Ua<<O)+rd,$h=gk||hk&128>>(8<=wb&&176<=va&&223>=va?7:wb)?u:pd;hj(qd,Yh,Zh,$h);O&&hj(qd,Yh+1,Zh,$h)}Xh.putImageData(qd,(va&15)*n.cc,(va>>4)*n.dc)}n.te[C]="#"+p(u[0],2)+p(u[1],2)+p(u[2],2);n.jj[C]=u;n.dh[C]=vc;n=!0}}a.pd[b]=x;return n}function ij(a){0<a.$d||0<=a.wc?0>a.ae&&(a.ae=0):a.ae=-1} function dj(a){if(a.Fb){for(var b=10;15>=b;b++)if(null==a.Ca.$b[b])return;var c=a.Ca.$b[10],b=c&31,d=a.Ca.$b[11]&31,e=a.Ca.$b[9]&31,f=!1;a.Ca===a.ma&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)jj(a);else{c=a.Ca.$b[15]+((a.Ca.$b[14]&63)<<8);a.wc!=c&&(jj(a),a.wc=c);d=d-b+1;if(a.il!=b||a.vj!=d)a.il=b,a.vj=d;a.yd=e+1;ij(a)}}} function jj(a){if(0<=a.wc){if(void 0!==a.Ub){var b=a.Ub[a.wc];if(b&131072){var b=b&-131073,c=a.wc%a.ob,d=Math.floor(a.wc/a.ob);a.Fb&&a.pd[a.Fb]&&(a.Ae&&kj(a,c,d,b,a.Ae),kj(a,c,d,b));a.Ub[a.wc]=b}}a.wc=-1}} function lj(a){var b;a=a.Ca;var c=a.ue[5];if(null!=c){b=2;var d=512,e=a.ue[3]&31;switch(c&3){case 0:if(e){d=1024;switch(e&24){case 8:d=1536;break;case 16:d=2560;break;case 24:d=3584}a.Sc=e&7}break;case 1:d=4096;break;case 2:switch(e&24){default:d=8192;break;case 8:d=24576;break;case 16:d=40960;break;case 24:d=57344}}c&8&&(b=16);c&16&&(b|=1,d|=256);b|=d}return b}h.pe=function(a){var b=this.Ca;null!=a&&b&&a!=b.Rh&&(b.Xg(a),this.qa.Xg(b.Oa,b.xb,b.Xe))}; -function cj(a,b){var c,d=a.Fd,e=a.Ca;if(e)if(1==e.zg)d=Ei;else if(5==e.zg){var d=null,f=e.Fc>>2,l=32768<f?32768:f,g=e.ue[6];if(null!=g){switch(g&12){case 0:e.Oa=655360;e.xb=f;d=255;break;case 4:e.Oa=655360;e.xb=f;d=3==a.Gd?15:16;break;case 8:e.Oa=720896;e.xb=l;d=Ei;break;case 12:e.Oa=753664,e.xb=l,d=3==a.Gd?2:3}c=e.Xf[1]&8;f=e.$b[6]|(e.$b[7]&1)<<8;255!=d&&(g&1?753664==e.Oa?d=c?7-d:6:350>f&&(d=c?13:14):c&&(d-=2));c=lj(a)}}else e.nc&8&&(e.nc&2?(d=e.nc&16?6:5,e.nc&4||(d-=1)):(d=e.nc&1?3:1,e.nc&4&&(d-= +function cj(a,b){var c,d=a.Fd,e=a.Ca;if(e)if(1==e.zg)d=Ei;else if(5==e.zg){var d=null,f=e.Fc>>2,k=32768<f?32768:f,g=e.ue[6];if(null!=g){switch(g&12){case 0:e.Oa=655360;e.xb=f;d=255;break;case 4:e.Oa=655360;e.xb=f;d=3==a.Gd?15:16;break;case 8:e.Oa=720896;e.xb=k;d=Ei;break;case 12:e.Oa=753664,e.xb=k,d=3==a.Gd?2:3}c=e.Xf[1]&8;f=e.$b[6]|(e.$b[7]&1)<<8;255!=d&&(g&1?753664==e.Oa?d=c?7-d:6:350>f&&(d=c?13:14):c&&(d-=2));c=lj(a)}}else e.nc&8&&(e.nc&2?(d=e.nc&16?6:5,e.nc&4||(d-=1)):(d=e.nc&1?3:1,e.nc&4&&(d-= 1)));else a.Fd=null,null==d&&(d=a.Tc);if(!bj(a,d,b))return!1;a.pe(c);return!0} function bj(a,b,c){if(null!=b&&(b!=a.Fd||c)){a.pl=0;a.Fd=b;b=a.Ca||(b==Ei?a.Ec:a.Vb);if(b!=a.Ca||b.Oa!=a.Oa||b.xb!=a.xb){jj(a);if(a.Oa){if(!Sa(a.qa,a.Oa,a.xb))return!1;a.Ca&&(a.Ca.ec=!1)}a.Ca=b;b.ec=!0;a.Oa=b.Oa;a.xb=b.xb;if(!Qa(a.qa,b.Oa,b.xb,!1,b===a.ma?b:null))return!1}a.Fb=0;a.ob=a.Jg;a.gc=a.Zh;a.Th=U[Ei][2];b=0;var d=U[a.Fd];d&&(a.ob=d[0],a.gc=d[1],a.Th=d[2],b=d[3]||0,a.Fb=d[4],4==a.Gd&&a.Ca===a.ma&&3==a.Fb&&(7==a.ma.$b[9]?a.gc=43:a.Fb=5));a.Oj=a.ob*a.gc;a.Gg=a.Oj/a.Th;a.qh=(a.Gg<<1)+b;a.tj= b?a.qh+b>>1:0;13<=a.Fd&&(a.Gg<<=1);a.pd.length&&(a.bd=Math.floor(a.ad/a.ob),a.cd=Math.floor(a.zd/a.gc),a.Fb?(b=a.pd[a.Fb],d=a.pd[a.Fb<<1],a.Dl&&80==a.ob?d&&a.bd>=3*d.cc>>2&&(a.Fb<<=1,b=d):(d&&a.bd>=d.cc&&(a.Fb<<=1,b=d),b&&(a.bd=b.cc,a.cd=b.dc)),a.hf=a.jf=0,b&&(a.hf=a.ob*b.cc,a.jf=a.gc*b.dc)):(a.bd=a.cd=1,a.hf=a.ob,a.jf=a.gc),a.Ag=a.Gc.createImageData(a.hf,a.jf),a.ze=window.document.createElement("canvas"),a.ze.width=a.hf,a.ze.height=a.jf,a.Ae=a.ze.getContext("2d"),a.cj=a.dj=0,a.th=a.ad,a.uh=a.zd, b=a.ad-a.ob*a.bd,d=a.zd-a.gc*a.cd,0<b&&(a.cj=b>>1,a.th-=b),0<d&&(a.dj=d>>1,a.uh-=d),b||d)&&(a.Gc.fillStyle=a.tb.style.backgroundColor,a.Gc.fillRect(0,0,a.ad,a.zd));!1!==c?fb(a,!0):mj(a,!0)}return!0}function hj(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b+0]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function mj(a,b){var c;if(b){if(c=a.Gg,void 0===a.Ub||a.Ub.length!=c)a.Ub=Array(c)}else{if(void 0===a.Ub)return;c=a.Ub.length}for(var d=0;d<c;d++)a.Ub[d]=-1;a.$d=-1} -function kj(a,b,c,d,e){var f=d&255,l=d>>8;d=l&15;var g=a.pd[a.Fb];g.Ue&&(d=g.Ue[d]);var m=l>>4&15;g.Ue&&(m=g.Ue[m]);e?(b*=g.cc,c*=g.dc,e.fillStyle=g.te[m],e.fillRect(b,c,g.cc,g.dc)):(b=b*a.bd+a.cj,c=c*a.cd+a.dj,a.Gc.fillStyle=g.te[m],a.Gc.fillRect(b,c,a.bd,a.cd));l&256&&(m=(f&15)*g.cc,f=(f>>4)*g.dc,e?e.drawImage(g.dh[d],m,f,g.cc,g.dc,b,c,g.cc,g.dc):a.Gc.drawImage(g.dh[d],m,f,g.cc,g.dc,b,c,a.bd,a.cd));l&512&&(f=a.il,l=a.vj,e?(a.yd&&a.yd!==g.dc&&(f=Math.floor(f*g.dc/a.yd),l=Math.floor(l*g.dc/a.yd)), -e.fillStyle=g.te[d],e.fillRect(b,c+f,g.cc,l)):(a.yd&&a.yd!==a.cd&&(f=Math.floor(f*a.cd/a.yd),l=Math.floor(l*a.cd/a.yd)),a.Gc.fillStyle=g.te[d],a.Gc.fillRect(b,c+f,a.bd,l)))} -function fb(a,b){if(a.na.Db){var c=!1;a.Ca&&(a.Ca===a.ma?a.ma.ge&32&&(c=!0):a.Ca.nc&8&&(c=!0));if(c||b){if(b)mj(a,!0);else if(void 0===a.Ub)return;var d=!1;!(b||++a.pl&15)&&0<=a.ae&&(a.ae++,d=!0);var e=0,f=a.Oj,c=a.Ca.Oa,l=c+a.Ca.xb,g=(a.Ca.$b[12]<<8)+a.Ca.$b[13];a.Fb&&(g<<=1);var c=c+g,m=a.qh;c+m>l&&(m=l-c,0>m&&(m=0));l=c+m;if(g=!b){for(var g=a.qa,n=!0,r=c>>g.Nb;0<m&&r<g.Ba.length;)g.Ba[r].Za&&(g.Ba[r].Za=n=!1,g.Ba[r].zj=!0),m-=g.pc,r++;g=n}if(g){if(!d)return;if(!a.$d){if(0>a.wc)return;e=a.wc;f= -e+1}}if(a.Fb){if(a.pd[a.Fb]){d=0;g=a.$d=0;m=1048575;a.Ca.nc&32&&(g=32768,m&=~g,a.ae&2||(m&=-65537));for(c+=e<<1;c<l&&e<f;)n=Va(a.qa,c),n|=65536,n&g&&(a.$d++,n&=m),e==a.wc&&(n|=a.ae&1?131072:0),r=a.Ub[e],r!=n&&(kj(a,e%a.ob,Math.floor(e/a.ob),n,a.Ae),a.Ub[e]=n,d++),c+=2,e++;d&&a.Ae&&a.Gc.drawImage(a.ze,0,0,a.hf,a.jf,a.cj,a.dj,a.th,a.uh);ij(a)}}else if(a.tj){for(var f=l,x,u,e=c,l=a.$d=0,d=a.Th,g=16==d?65536:196608,m=16==d?1:2,n=ej(a,m),C=r=0,O=a.ob,W=0,ba=a.gc,ca=0;e<f;){x=Va(a.qa,e);u=a.Ub[l];if(u=== -x)r+=d;else{a.Ub[l]=x;x=x>>8|(x&255)<<8;u=g;var kb=16;r<O&&(O=r);for(var uc=0;uc<d;uc++){var pd=(x&(u>>=m))>>(kb-=m);hj(a.Ag,r++,C,n[pd])}r>W&&(W=r);C<ba&&(ba=C);C>=ca&&(ca=C+1)}e+=2;l++;if(r>=a.ob){r=0;C+=2;if(C>a.gc)break;C==a.gc&&(C=1,e=c+a.tj)}}O<a.ob&&(a.Ae.putImageData(a.Ag,0,0,O,ba,W-O,ca-ba),a.Gc.drawImage(a.ze,0,0,a.ob,a.gc,0,0,a.ad,a.zd))}else{f=l;e=a.$d=0;l=ej(a);d=a.Ca.Ud;m=g=0;n=a.ob;r=0;C=a.gc;for(O=0;c<f;){W=c++-a.Oa;W=d[W];ba=a.Ub[e];if(ba===W)g+=8;else{a.Ub[e]=W;g<n&&(n=g);for(ba= -0;8>ba;ba++)ca=W&2155905152,0>ca&&(ca+=4294967296),ca=X[ca]||0,hj(a.Ag,g++,m,l[ca]),W<<=1;g>r&&(r=g);m<C&&(C=m);m>=O&&(O=m+1)}e++;if(g>=a.ob&&(g=0,++m>a.gc))break}n<a.ob&&(a.Ae.putImageData(a.Ag,0,0,n,C,r-n,O-C),a.Gc.drawImage(a.ze,0,0,a.ob,a.gc,0,0,a.ad,a.zd))}}}}h.qm=function(){return this.Ec.vc};h.zn=function(a,b){var c=this.Ec;c.yg=c.vc;c.vc=b&31};h.pm=function(){return nj(this.Ec)};h.yn=function(a,b){oj(this,this.Ec,b)};h.rm=function(){return this.Ec.nc}; +function kj(a,b,c,d,e){var f=d&255,k=d>>8;d=k&15;var g=a.pd[a.Fb];g.Ue&&(d=g.Ue[d]);var m=k>>4&15;g.Ue&&(m=g.Ue[m]);e?(b*=g.cc,c*=g.dc,e.fillStyle=g.te[m],e.fillRect(b,c,g.cc,g.dc)):(b=b*a.bd+a.cj,c=c*a.cd+a.dj,a.Gc.fillStyle=g.te[m],a.Gc.fillRect(b,c,a.bd,a.cd));k&256&&(m=(f&15)*g.cc,f=(f>>4)*g.dc,e?e.drawImage(g.dh[d],m,f,g.cc,g.dc,b,c,g.cc,g.dc):a.Gc.drawImage(g.dh[d],m,f,g.cc,g.dc,b,c,a.bd,a.cd));k&512&&(f=a.il,k=a.vj,e?(a.yd&&a.yd!==g.dc&&(f=Math.floor(f*g.dc/a.yd),k=Math.floor(k*g.dc/a.yd)), +e.fillStyle=g.te[d],e.fillRect(b,c+f,g.cc,k)):(a.yd&&a.yd!==a.cd&&(f=Math.floor(f*a.cd/a.yd),k=Math.floor(k*a.cd/a.yd)),a.Gc.fillStyle=g.te[d],a.Gc.fillRect(b,c+f,a.bd,k)))} +function fb(a,b){if(a.na.Db){var c=!1;a.Ca&&(a.Ca===a.ma?a.ma.ge&32&&(c=!0):a.Ca.nc&8&&(c=!0));if(c||b){if(b)mj(a,!0);else if(void 0===a.Ub)return;var d=!1;!(b||++a.pl&15)&&0<=a.ae&&(a.ae++,d=!0);var e=0,f=a.Oj,c=a.Ca.Oa,k=c+a.Ca.xb,g=(a.Ca.$b[12]<<8)+a.Ca.$b[13];a.Fb&&(g<<=1);var c=c+g,m=a.qh;c+m>k&&(m=k-c,0>m&&(m=0));k=c+m;if(g=!b){for(var g=a.qa,n=!0,r=c>>g.Nb;0<m&&r<g.Ba.length;)g.Ba[r].Za&&(g.Ba[r].Za=n=!1,g.Ba[r].zj=!0),m-=g.pc,r++;g=n}if(g){if(!d)return;if(!a.$d){if(0>a.wc)return;e=a.wc;f= +e+1}}if(a.Fb){if(a.pd[a.Fb]){d=0;g=a.$d=0;m=1048575;a.Ca.nc&32&&(g=32768,m&=~g,a.ae&2||(m&=-65537));for(c+=e<<1;c<k&&e<f;)n=Va(a.qa,c),n|=65536,n&g&&(a.$d++,n&=m),e==a.wc&&(n|=a.ae&1?131072:0),r=a.Ub[e],r!=n&&(kj(a,e%a.ob,Math.floor(e/a.ob),n,a.Ae),a.Ub[e]=n,d++),c+=2,e++;d&&a.Ae&&a.Gc.drawImage(a.ze,0,0,a.hf,a.jf,a.cj,a.dj,a.th,a.uh);ij(a)}}else if(a.tj){for(var f=k,x,u,e=c,k=a.$d=0,d=a.Th,g=16==d?65536:196608,m=16==d?1:2,n=ej(a,m),C=r=0,O=a.ob,W=0,ba=a.gc,ca=0;e<f;){x=Va(a.qa,e);u=a.Ub[k];if(u=== +x)r+=d;else{a.Ub[k]=x;x=x>>8|(x&255)<<8;u=g;var kb=16;r<O&&(O=r);for(var uc=0;uc<d;uc++){var pd=(x&(u>>=m))>>(kb-=m);hj(a.Ag,r++,C,n[pd])}r>W&&(W=r);C<ba&&(ba=C);C>=ca&&(ca=C+1)}e+=2;k++;if(r>=a.ob){r=0;C+=2;if(C>a.gc)break;C==a.gc&&(C=1,e=c+a.tj)}}O<a.ob&&(a.Ae.putImageData(a.Ag,0,0,O,ba,W-O,ca-ba),a.Gc.drawImage(a.ze,0,0,a.ob,a.gc,0,0,a.ad,a.zd))}else{f=k;e=a.$d=0;k=ej(a);d=a.Ca.Ud;m=g=0;n=a.ob;r=0;C=a.gc;for(O=0;c<f;){W=c++-a.Oa;W=d[W];ba=a.Ub[e];if(ba===W)g+=8;else{a.Ub[e]=W;g<n&&(n=g);for(ba= +0;8>ba;ba++)ca=W&2155905152,0>ca&&(ca+=4294967296),ca=X[ca]||0,hj(a.Ag,g++,m,k[ca]),W<<=1;g>r&&(r=g);m<C&&(C=m);m>=O&&(O=m+1)}e++;if(g>=a.ob&&(g=0,++m>a.gc))break}n<a.ob&&(a.Ae.putImageData(a.Ag,0,0,n,C,r-n,O-C),a.Gc.drawImage(a.ze,0,0,a.ob,a.gc,0,0,a.ad,a.zd))}}}}h.qm=function(){return this.Ec.vc};h.zn=function(a,b){var c=this.Ec;c.yg=c.vc;c.vc=b&31};h.pm=function(){return nj(this.Ec)};h.yn=function(a,b){oj(this,this.Ec,b)};h.rm=function(){return this.Ec.nc}; h.An=function(a,b){this.Ec.nc=b;cj(this,!1)};h.sm=function(){return pj(this,this.Ec)};h.Uk=function(a,b){this.ma.Ih=this.ma.Ih&-4|b&3};h.Kj=function(){var a=this.ma.Ad?this.ma.Pd[this.ma.ge&31]:this.ma.ge;this.ma.Ad=!this.ma.Ad;return a};h.Tk=function(a,b){var c=this.ma.ge&32;if(this.ma.Ad){var d=this.ma.ge&31;if(16<=d||!c)this.ma.Pd[d]=b;this.ma.Ad=!1}else this.ma.ge=b,this.ma.Ad=!0,b&32&&!c&&aj(this)&&fb(this,!0)}; h.Cm=function(){var a=3-((this.ma.Dg&12)>>2),a=this.ma.$i&-17|(this.ag&1<<a)<<4-a;return this.ma.$i=a};h.Cn=function(a,b){this.ma.Dg=b;$i(this)};h.Bm=function(){return this.ma.Ge};h.Jn=function(a,b){this.ma.Ge=b};h.Am=function(){return this.ma.Xf[this.ma.Ge]};h.In=function(a,b){this.ma.Xf[this.ma.Ge]=b;2==this.ma.Ge&&(this.ma.Xa=Mi[b&15])};h.im=function(){return this.ma.Lh};h.tn=function(a,b){this.ma.Lh=b};h.jm=function(){return this.ma.Mh};h.un=function(a,b){this.ma.Mh=b};h.hm=function(){return this.ma.Fe}; h.sn=function(a,b){this.ma.Fe=b};h.gm=function(){return this.ma.ue[this.ma.Fe]};h.rn=function(a,b){this.ma.ue[this.ma.Fe]=b;switch(this.ma.Fe){case 0:this.ma.Mg=Mi[b&15];this.ma.je=this.ma.Mg&~this.ma.Jd;break;case 1:this.ma.Jd=~Mi[b&15];this.ma.je=this.ma.Mg&~this.ma.Jd;break;case 2:this.ma.Uh=Mi[b&15]&2155905152;break;case 3:case 5:this.pe(lj(this));break;case 4:this.ma.Mi=(b&3)<<3;break;case 6:cj(this,!1);break;case 7:this.ma.Vh=Mi[b&15^15]&2155905152;break;case 8:this.ma.ab=b|b<<8|b<<16|b<<24}}; @@ -549,38 +550,38 @@ h.Pb=function(a,b){if(this.dd){var c,d=0;if(this.Hh&&!ma("Disk writes are still h.create=function(){this.ib=[];if("preload"!=this.mode){for(var a=Array(this.Eb),b=0;b<a.length;b++){for(var c=Array(this.Gb),d=0;d<c.length;d++){for(var e=Array(this.Ob),f=1;f<=e.length;f++)e[f-1]=Dj(null,b,d,f,this.ub,"local"==this.mode?0:null);c[d]=e}a[b]=c}this.ib=a}this.mg=0}; h.load=function(a,b,c,d){var e=b;this.xg||(this.ld=a,this.Ne=b,this.xg=c,this.rl=d||this.ea,0>b.indexOf("/api/v1/dump")&&(a=ea(b),"json"==a?e=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(a="action=open&volume="+b+("&mode="+this.mode),a+="&chs="+this.Eb+":"+this.Gb+":"+this.Ob+":"+this.ub,a+="&machine="+this.ea.Ee(),a+="&user="+this.ea.Bd(),e=la()+"/api/v1/disk?"+a,this.tg=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)? (c="disk",d="&mbhd=0"):-1!==b.indexOf("/",b.length-1)&&(c="dir"),e=la()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.Ce?"":d)+"&format=json")),q(e,!0,null,this,this.vl,b))}; -h.vl=function(a,b,c,d){var e=null;this.De=!1;var f=0>c&&this.La&&!this.La.na.Db;if(this.tg)c?this.ea.za('Unable to connect to disk "'+d+'" (error '+c+": "+b+")",f):(this.dd=!0,e=this);else if(c)this.ea.za('Unable to load disk "'+this.ld+'" (error '+c+")",f);else try{if(0<da(a,!0).toLowerCase().indexOf("-readonly"))this.De=!0;else{var l=b.indexOf("\n");0<l&&1024>l&&0<b.substring(0,l).indexOf("write-protected")&&(this.De=!0)}var g;g="<"==b.substr(0,1)?["Missing disk image: "+this.ld]:0>b.indexOf("0x")&& +h.vl=function(a,b,c,d){var e=null;this.De=!1;var f=0>c&&this.La&&!this.La.na.Db;if(this.tg)c?this.ea.za('Unable to connect to disk "'+d+'" (error '+c+": "+b+")",f):(this.dd=!0,e=this);else if(c)this.ea.za('Unable to load disk "'+this.ld+'" (error '+c+")",f);else try{if(0<da(a,!0).toLowerCase().indexOf("-readonly"))this.De=!0;else{var k=b.indexOf("\n");0<k&&1024>k&&0<b.substring(0,k).indexOf("write-protected")&&(this.De=!0)}var g;g="<"==b.substr(0,1)?["Missing disk image: "+this.ld]:0>b.indexOf("0x")&& '["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");if(g.length)if(1==g.length)s(g[0]);else{for(b=a=0;b<g.length;b++)for(c=0;c<g[b].length;c++)for(d=0;d<g[b][c].length;d++){var m=g[b][c][d];if(m){var n=m.length;void 0===n&&(n=m.length=512);var n=n>>2,r=m.pattern;void 0===r&&(r=m.pattern=0);var x=m.data;if(void 0===x){var u=m.bytes;if(void 0!==u&&u.length){for(var f=n<<2,C=u.length;C<f;C++)u[C]=r;this.fill(m,u,0)}else x=[],r=m.pattern=r|r<<8| r<<16|r<<24,m.data=x;delete m.bytes}Dj(m,b,c);for(f=0;f<x.length;f++)a=a+x[f]&4294967295}}this.ib=g;this.mg=a;e=this}else s("Empty disk image: "+this.ld)}catch(O){s("Disk image error: "+O.message)}this.xg&&(this.xg.call(this.rl,this.Qa,e,this.ld,this.Ne),this.xg=null)};function Dj(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Il=b;a.Kl=c;a.Jc=a.qc=0;a.Za=!1;return a} -h.Qm=function(a,b,c,d){a=!1;if(!c){var e=d[0],f=d[1],l=d[2],g=d[3];a=d[4];b=JSON.parse(b);for(var m=0;g--;){var n=this.seek(e,f,l,!0);if(!n)break;this.fill(n,b,m);m+=n.length;l++}}(d=d[5])&&d(c,a)};function Ej(a,b,c,d,e,f){if(a.dd){var l;l="action=read&volume="+a.Ne;l+="&chs="+a.Eb+":"+a.Gb+":"+a.Ob+":"+a.ub;l=l+("&addr="+b+":"+c+":"+d+":"+e)+("&machine="+a.ea.Ee());l+="&user="+a.ea.Bd();q(la()+"/api/v1/disk?"+l,!0,null,a,a.Qm,[b,c,d,e,!0,f])}else f&&f(-1,!1)} +h.Qm=function(a,b,c,d){a=!1;if(!c){var e=d[0],f=d[1],k=d[2],g=d[3];a=d[4];b=JSON.parse(b);for(var m=0;g--;){var n=this.seek(e,f,k,!0);if(!n)break;this.fill(n,b,m);m+=n.length;k++}}(d=d[5])&&d(c,a)};function Ej(a,b,c,d,e,f){if(a.dd){var k;k="action=read&volume="+a.Ne;k+="&chs="+a.Eb+":"+a.Gb+":"+a.Ob+":"+a.ub;k=k+("&addr="+b+":"+c+":"+d+":"+e)+("&machine="+a.ea.Ee());k+="&user="+a.ea.Bd();q(la()+"/api/v1/disk?"+k,!0,null,a,a.Qm,[b,c,d,e,!0,f])}else f&&f(-1,!1)} function Fj(a,b,c){b.Za=!0;var d=a.Qd.indexOf(b);0<=d&&(a.Qd.splice(d,1),a.Uf.splice(d,1));a.Qd.push(b);a.Uf.push(ha());c&&Gj(a)}function Gj(a){if(a.Qd.length){var b=a.Uf[0]+2E3;a.nd&&a.Nj<b&&(clearTimeout(a.nd),a.nd=null);if(!a.nd){var c=ha(),b=b-c;0>b&&(b=0);2E3<b&&(b=2E3);a.nd=setTimeout(function(){Cj(a,!0)},b);a.Nj=c+b}}else a.nd&&(clearTimeout(a.nd),a.nd=null)} -function Cj(a,b){b&&(a.nd=null);var c=a.Qd[0];if(c){for(var d=c.Il,e=c.Kl,c=c.sector,f=0,l=[],g=c-1;g<a.ib[d][e].length;g++){var m=a.ib[d][e][g];if(!m.Za)break;var n=a.Qd.indexOf(m);a.Qd.splice(n,1);a.Uf.splice(n,1);l=l.concat(Hj(m));m.Za=!1;f++}a.dd?(g={},a.Hh=!0,g.action="write",g.volume=a.Ne,g.chs=a.Eb+":"+a.Gb+":"+a.Ob+":"+a.ub,g.addr=d+":"+e+":"+c+":"+f,g.machine=a.ea.Ee(),g.user=a.ea.Bd(),g.data=JSON.stringify(l),d=q(la()+"/api/v1/disk",b,g,a,a.Vm,[d,e,c,f,b])):d=!1;return b||d}return!1} -h.Vm=function(a,b,c,d){a=d[0];b=d[1];var e=d[2],f=d[3];d=d[4];this.Hh=!1;if(0<=a&&a<this.ib.length&&0<=b&&b<this.ib[a].length)for(e-=1;0<f--&&0<=e&&e<this.ib[a][b].length;e++){var l=this.ib[a][b][e];c?Fj(this,l,!1):l.Za||(l.Jc=l.qc=0)}d&&Gj(this)};h.info=function(){return this.ib.length?[this.ib.length,this.ib[0].length,this.ib[0][0].length,this.ib[0][0][0].length]:[0,0,0,0]}; -h.seek=function(a,b,c,d,e){var f=null,l=this.Qa,g=this.ib[a];if(g){var m=g[b];if(!m&&l.Ze&&b<l.Gb)for(m=g[b]=Array(l.td),g=0;g<m.length;g++)m[g]=Dj(null,a,b,g+1,l.bb,0);if(m){for(g=0;g<m.length;g++)if(m[g]&&m[g].sector==c){f=m[g];if(null===f.pattern)if(d)f.pattern=0;else if(e){for(d=1;++g<m.length;)null===m[g].pattern&&d++;Ej(this,a,b,c,d,function(a,b){a&&(f=null);e(f,b)});return null}break}!f&&l.Ze&&9==l.Ua&&(f=m[g]=Dj(null,a,b,l.Ua,l.bb,0))}}e&&e(f,!1);return f}; -h.fill=function(a,b,c){for(var d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e};function Hj(a){var b=a.length,c=Array(b),d=0,b=b>>2,e=a.data;a=a.pattern;for(var f=0;f<b;f++){var l=f<e.length?e[f]:a;c[d++]=l&255;c[d++]=l>>8&255;c[d++]=l>>16&255;c[d++]=l>>24&255}return c}function Ij(a,b){var c=-1;if(b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c} -h.write=function(a,b,c){if(this.De)return!1;if(b<a.length){if(c!=Ij(a,b)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var l=d.length;l<=f;l++)d[l]=e;a.qc?f<a.Jc?(a.qc+=a.Jc-f,a.Jc=f):f>=a.Jc+a.qc&&(a.qc+=f-(a.Jc+a.qc)+1):(a.Jc=f,a.qc=1);d[f]=d[f]&~(255<<b)|c<<b;this.dd&&Fj(this,a,!0)}return!0}return null}; -h.save=function(){var a=0,b=[];b[a++]=[this.Ne,this.mg];if(!this.dd&&!this.De)for(var c=this.ib,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var l=c[d][e][f];if(l&&l.qc){for(var g=[],m=0,n=l.Jc,r=l.Jc+l.qc;n<r;)g[m++]=l.data[n++];b[a++]=[d,e,f,l.Jc,g]}}return b}; -h.restore=function(a){var b=0,c="unsupported restore format";if(this.ib.length&&a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&e[1]!=this.mg&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.mg+")",b=-1);for(;d<a.length&&0<=b;){var f=0,l=a[d++],g=l[f++],m=l[f++],n=l[f++];if(g>=this.ib.length||m>=this.ib[g].length||n>=this.ib[g][m].length){c="sector "+g+":"+m+":"+n+" out of range ("+b+" changes applied)";b=-1;break}if(this.De){c="unable to modify write-protected disk";b=-1;break}e= -l[f++];f=l[f++];l=e+f.length;if(g=this.ib[g][m][n]){for(m=g.data.length;m<e;)g.data[m++]=g.pattern;m=0;g.Jc=e;for(g.qc=f.length;e<l;)g.data[e++]=f[m++];b++}}}0>b&&this.ea.za("unable to restore disk '"+this.ld+": "+c);return b}; -function Jj(a){v.call(this,"FDC",a,Jj);this.dmaRead=this.vh;this.dmaWrite=this.wh;this.dmaFormat=this.sl;this.le=null;if(a.autoMount&&(this.le=a.autoMount,"string"==typeof this.le))try{this.le=eval("("+a.autoMount+")")}catch(b){s("FDC auto-mount error: "+b.message+" ("+a.autoMount+")"),this.le=null}this.ic=[]}y(v,Jj);k={};aa={}; -var Kj={3:{Zc:3,vd:0,name:aa.Io},4:{Zc:2,vd:1,name:aa.Go},5:{Zc:9,vd:7,name:aa.Uo},6:{Zc:9,vd:7,name:aa.Ao},7:{Zc:2,vd:0,name:aa.Co},8:{Zc:1,vd:2,name:aa.Ho},10:{Zc:2,vd:7,name:aa.Bo},13:{Zc:6,vd:7,name:aa.mo},15:{Zc:3,vd:0,name:aa.Fo}};h=Jj.prototype; +function Cj(a,b){b&&(a.nd=null);var c=a.Qd[0];if(c){for(var d=c.Il,e=c.Kl,c=c.sector,f=0,k=[],g=c-1;g<a.ib[d][e].length;g++){var m=a.ib[d][e][g];if(!m.Za)break;var n=a.Qd.indexOf(m);a.Qd.splice(n,1);a.Uf.splice(n,1);k=k.concat(Hj(m));m.Za=!1;f++}a.dd?(g={},a.Hh=!0,g.action="write",g.volume=a.Ne,g.chs=a.Eb+":"+a.Gb+":"+a.Ob+":"+a.ub,g.addr=d+":"+e+":"+c+":"+f,g.machine=a.ea.Ee(),g.user=a.ea.Bd(),g.data=JSON.stringify(k),d=q(la()+"/api/v1/disk",b,g,a,a.Vm,[d,e,c,f,b])):d=!1;return b||d}return!1} +h.Vm=function(a,b,c,d){a=d[0];b=d[1];var e=d[2],f=d[3];d=d[4];this.Hh=!1;if(0<=a&&a<this.ib.length&&0<=b&&b<this.ib[a].length)for(e-=1;0<f--&&0<=e&&e<this.ib[a][b].length;e++){var k=this.ib[a][b][e];c?Fj(this,k,!1):k.Za||(k.Jc=k.qc=0)}d&&Gj(this)};h.info=function(){return this.ib.length?[this.ib.length,this.ib[0].length,this.ib[0][0].length,this.ib[0][0][0].length]:[0,0,0,0]}; +h.seek=function(a,b,c,d,e){var f=null,k=this.Qa,g=this.ib[a];if(g){var m=g[b];if(!m&&k.Ze&&b<k.Gb)for(m=g[b]=Array(k.td),g=0;g<m.length;g++)m[g]=Dj(null,a,b,g+1,k.bb,0);if(m){for(g=0;g<m.length;g++)if(m[g]&&m[g].sector==c){f=m[g];if(null===f.pattern)if(d)f.pattern=0;else if(e){for(d=1;++g<m.length;)null===m[g].pattern&&d++;Ej(this,a,b,c,d,function(a,b){a&&(f=null);e(f,b)});return null}break}!f&&k.Ze&&9==k.Ua&&(f=m[g]=Dj(null,a,b,k.Ua,k.bb,0))}}e&&e(f,!1);return f}; +h.fill=function(a,b,c){for(var d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e};function Hj(a){var b=a.length,c=Array(b),d=0,b=b>>2,e=a.data;a=a.pattern;for(var f=0;f<b;f++){var k=f<e.length?e[f]:a;c[d++]=k&255;c[d++]=k>>8&255;c[d++]=k>>16&255;c[d++]=k>>24&255}return c}function Ij(a,b){var c=-1;if(b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c} +h.write=function(a,b,c){if(this.De)return!1;if(b<a.length){if(c!=Ij(a,b)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var k=d.length;k<=f;k++)d[k]=e;a.qc?f<a.Jc?(a.qc+=a.Jc-f,a.Jc=f):f>=a.Jc+a.qc&&(a.qc+=f-(a.Jc+a.qc)+1):(a.Jc=f,a.qc=1);d[f]=d[f]&~(255<<b)|c<<b;this.dd&&Fj(this,a,!0)}return!0}return null}; +h.save=function(){var a=0,b=[];b[a++]=[this.Ne,this.mg];if(!this.dd&&!this.De)for(var c=this.ib,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var k=c[d][e][f];if(k&&k.qc){for(var g=[],m=0,n=k.Jc,r=k.Jc+k.qc;n<r;)g[m++]=k.data[n++];b[a++]=[d,e,f,k.Jc,g]}}return b}; +h.restore=function(a){var b=0,c="unsupported restore format";if(this.ib.length&&a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&e[1]!=this.mg&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.mg+")",b=-1);for(;d<a.length&&0<=b;){var f=0,k=a[d++],g=k[f++],m=k[f++],n=k[f++];if(g>=this.ib.length||m>=this.ib[g].length||n>=this.ib[g][m].length){c="sector "+g+":"+m+":"+n+" out of range ("+b+" changes applied)";b=-1;break}if(this.De){c="unable to modify write-protected disk";b=-1;break}e= +k[f++];f=k[f++];k=e+f.length;if(g=this.ib[g][m][n]){for(m=g.data.length;m<e;)g.data[m++]=g.pattern;m=0;g.Jc=e;for(g.qc=f.length;e<k;)g.data[e++]=f[m++];b++}}}0>b&&this.ea.za("unable to restore disk '"+this.ld+": "+c);return b}; +function Jj(a){v.call(this,"FDC",a,Jj);this.dmaRead=this.vh;this.dmaWrite=this.wh;this.dmaFormat=this.sl;this.le=null;if(a.autoMount&&(this.le=a.autoMount,"string"==typeof this.le))try{this.le=eval("("+a.autoMount+")")}catch(b){s("FDC auto-mount error: "+b.message+" ("+a.autoMount+")"),this.le=null}this.ic=[]}y(v,Jj);l={};aa={}; +var Kj={3:{Zc:3,vd:0,name:aa.Ko},4:{Zc:2,vd:1,name:aa.Io},5:{Zc:9,vd:7,name:aa.Wo},6:{Zc:9,vd:7,name:aa.Co},7:{Zc:2,vd:0,name:aa.Eo},8:{Zc:1,vd:2,name:aa.Jo},10:{Zc:2,vd:7,name:aa.Do},13:{Zc:6,vd:7,name:aa.oo},15:{Zc:3,vd:0,name:aa.Ho}};h=Jj.prototype; h.wb=function(a,b,c,d){switch(c){case "listDisks":return this.sa[c]=d,a=window.document.createElement("option"),a.value="?",a.innerHTML="User-defined URL...",d.appendChild(a),d.onchange=function(a,b){return function(){var c=a.sa.descDisk;if(c){var d=b.options[b.selectedIndex];if(d){var m={};if(d=d.getAttribute("data-value"))try{m=eval("({"+d+"})")}catch(n){s("FDC option error: "+(n.message||n))}d=m.desc;void 0===d&&(d="");m=m.href;void 0!==m&&(d='<a href="'+m+'" target="_blank">'+d+"</a>");c.innerHTML= d}}}}(this,d),!0;case "descDisk":case "listDrives":return this.sa[c]=d,d.onchange=function(a,b){return function(){var c=parseInt(b.value,10);isNaN(c)||Lj(a,c)}}(this,d),!0;case "loadDrive":return this.sa[c]=d,d.onclick=function(a){return function(){var b,c=a.sa.listDisks,d=a.sa.listDrives;if(c&&d&&!isNaN(b=parseInt(d.value,10))&&0<=b&&b<a.xa.length)if(d=c.value){c=c.options[c.selectedIndex].text;if("?"==d){d=window.prompt("Enter the URL of a disk image to load.","");if(!d)return;c=da(d);a.hc("Attempting to load "+ d+' as "'+c+'"')}for(;Mj(a,b,c,d,!1)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){for(var m=a,n=d,r=void 0,r=0;r<m.ic.length;r++)if(m.ic[r][1]==n){m.ic.splice(r,1);break}Nj(a,b,!1,!0)}}else Nj(a,b);else a.za("Nothing to load")}}(this),!0}return!1};h.mc=function(a,b,c,d){this.qa=b;this.la=c;this.Pa=d;this.La=a;this.ja=D(a,"ChipSet");this.ed();Za(b,this,Oj);ab(b,this,Pj);this.Ye()||this.Ma()}; h.Qb=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.La.Fh){this.ic=[];for(var c=0;c<this.xa.length;c++)Nj(this,c,!0);this.Ye(!0)}}else if(!this.restore(a))return!1;if(c=this.sa.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.innerHTML="";for(var d=0;d<this.$h;d++){var e=window.document.createElement("option");e.value=d;e.innerHTML=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.$h&&(c.value="0",Lj(this,0))}}return!0}; h.Pb=function(a){return a&&this.save?this.save():!0};h.reset=function(){this.ed()};h.save=function(){var a=new H(this);a.set(0,this.Wi());return a.data()};h.restore=function(a){return this.ed(a[0])}; -h.ed=function(a){var b=0,c,d=!0;void 0===a&&(a=[0,0,128,Array(9),0,0,0,[]]);this.Va=a[b++];b++;this.wa=a[b++];this.Sb=a[b++];this.kb=a[b++];this.Ya=a[b++];this.Me=a[b++];var e=a[b++];c=a[b++];null!=c&&(this.ic=c);void 0===this.xa&&(this.$h=4,this.ja&&(this.$h=Fh(this.ja)),this.xa=Array(4));for(c=0;c<this.xa.length;c++){var f=this.xa[c];if(void 0===f){var f=this.xa[c]={},l;if(this.ja)a:{l=this.ja;if(c<Fh(l)){if(!l.od){l=360;break a}if(c<l.od.length){l=l.od[c];break a}}l=0}else l=0;switch(l){case 160:case 180:f.Gb= -1;default:f.Eb=40;f.Ob=9;break;case 720:f.Eb=80;f.Ob=9;break;case 1200:f.Eb=80;f.Ob=15;break;case 1440:f.Eb=80,f.Ob=18}}this.Ph(f,c,e[c])||(d=!1)}this.Ld=a[b++]||0;this.Wk=a[b]||0;return d};h.Wi=function(){var a=0,b=[];b[a++]=this.Va;b[a++]=0;b[a++]=this.wa;b[a++]=this.Sb;b[a++]=this.kb;b[a++]=this.Ya;b[a++]=this.Me;b[a++]=this.Yi();for(var c=a++,d=0;d<this.xa.length;d++){var e=this.xa[d];e.ta&&Qj(this,e.ne,e.ta)}b[c]=this.ic;b[a++]=this.Ld;b[a]=this.Wk;return b}; +h.ed=function(a){var b=0,c,d=!0;void 0===a&&(a=[0,0,128,Array(9),0,0,0,[]]);this.Va=a[b++];b++;this.wa=a[b++];this.Sb=a[b++];this.lb=a[b++];this.Ya=a[b++];this.Me=a[b++];var e=a[b++];c=a[b++];null!=c&&(this.ic=c);void 0===this.xa&&(this.$h=4,this.ja&&(this.$h=Fh(this.ja)),this.xa=Array(4));for(c=0;c<this.xa.length;c++){var f=this.xa[c];if(void 0===f){var f=this.xa[c]={},k;if(this.ja)a:{k=this.ja;if(c<Fh(k)){if(!k.od){k=360;break a}if(c<k.od.length){k=k.od[c];break a}}k=0}else k=0;switch(k){case 160:case 180:f.Gb= +1;default:f.Eb=40;f.Ob=9;break;case 720:f.Eb=80;f.Ob=9;break;case 1200:f.Eb=80;f.Ob=15;break;case 1440:f.Eb=80,f.Ob=18}}this.Ph(f,c,e[c])||(d=!1)}this.Ld=a[b++]||0;this.Wk=a[b]||0;return d};h.Wi=function(){var a=0,b=[];b[a++]=this.Va;b[a++]=0;b[a++]=this.wa;b[a++]=this.Sb;b[a++]=this.lb;b[a++]=this.Ya;b[a++]=this.Me;b[a++]=this.Yi();for(var c=a++,d=0;d<this.xa.length;d++){var e=this.xa[d];e.ta&&Qj(this,e.ne,e.ta)}b[c]=this.ic;b[a++]=this.Ld;b[a]=this.Wk;return b}; h.Ph=function(a,b,c){var d=0,e=!0;a.Va=b;void 0===c&&(c=[192,!0,0,2,0]);"boolean"==typeof c[1]&&(c[1]=["Floppy Drive",a.Eb||40,a.Gb||c[3],a.Ob||9,a.ub||512,c[1],a.Kg,a.yf,a.zf]);a.Sa=c[d++];var f=c[d++];a.name=f[0];a.Eb=f[1];a.Gb=f[2];a.Ob=f[3];a.ub=f[4];a.Ce=f[5];(a.Kg=f[6])?(a.yf=f[7],a.zf=f[8]):(a.Kg=a.Eb,a.yf=a.Gb,a.zf=a.Ob);a.Ja=c[d++];a.qd=c[d++];a.eb=c[d++];a.qd=100<=a.qd?a.qd-100:a.qd-a.eb;a.Ua=c[d++];a.td=c[d++];a.bb=c[d++];a.Wa=c[d++];a.Ka=null;a.ta||(a.ne="");f=c[d++];f===Rj?(f=c[d++], c=c[d],Mj(this,b,f,c,!0)?a.ta&&Sj(this,f,c,a.ta):this.Ma(!1)):void 0!==f&&a.ta&&0>a.ta.restore(f)&&(e=!1);e&&a.ta&&void 0!==a.Wa&&(a.Ka=a.ta.seek(a.eb,a.Ja,a.Ua));return e};h.Yi=function(){for(var a=0,b=[],c=0;c<this.xa.length;c++)b[a++]=this.Xi(this.xa[c]);return b};h.Xi=function(a){var b=0,c=[];c[b++]=a.Sa;c[b++]=[a.name,a.Eb,a.Gb,a.Ob,a.ub,a.Ce,a.Kg,a.yf,a.zf];c[b++]=a.Ja;c[b++]=a.qd+100;c[b++]=a.eb;c[b++]=a.Ua;c[b++]=a.td;c[b++]=a.bb;c[b++]=a.Wa;c[b++]=Rj;c[b++]=a.al;c[b]=a.ne;return c}; h.Ye=function(a){a||(this.Zd=0);if(this.le)for(var b in this.le){var c=this.le[b];if(c.name&&c.path){var d=b.charCodeAt(0)-65;if(0<=d&&d<this.xa.length){!Mj(this,d,c.name,c.path,!0)&&a&&this.Ma(!1);continue}}this.za("Unrecognized auto-mount specification for drive "+b)}return!!this.Zd};function Mj(a,b,c,d,e){var f=a.xa[b];if(d&&f.ne!=d){Nj(a,b,e,!0);if(f.Ic)return a.za("Drive "+b+" busy"),!0;f.Ic=!0;e&&(f.fe=!0,a.Zd++);(new Aj(a,f,"preload")).load(c,d,a.xl);return!1}return!0} h.xl=function(a,b,c,d){var e;a.Ic=!1;b&&(e=b.info(),b&&e[0]>a.Eb||e[1]>a.Gb)&&(this.za('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Va)),b=null);b&&(a.ta=b,a.al=c,a.ne=d,Sj(this,c,d,b),this.Ld|=128,this.za('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Va),a.fe),a.Kg=e[0],a.yf=e[1],a.zf=e[2]);a.fe&&(a.fe=!1,--this.Zd||this.Ma());Lj(this,a.Va)}; function Lj(a,b){if(0<=b&&b<a.xa.length){var c=a.xa[b],d=a.sa.listDisks,e=a.sa.listDrives;if(d&&e&&(e=parseInt(e.value,10),!isNaN(e)&&e==b)){for(e=0;e<d.options.length;e++)if(d.options[e].value==c.ne){d.selectedIndex!=e&&(d.selectedIndex=e);break}e==d.options.length&&(d.selectedIndex=0)}}}function Nj(a,b,c,d){var e=a.xa[b];e.ta&&(Qj(a,e.ne,e.ta),e.al="",e.ne="",e.ta=null,a.Ld|=128,d||a.za("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||Lj(a,b))} -function Sj(a,b,c,d){var e;for(e=0;e<a.ic.length;e++)if(a.ic[e][1]==c){d.restore(a.ic[e][2]);return}a.ic[e]=[b,c,[]]}function Qj(a,b,c){var d;for(d=0;d<a.ic.length;d++)if(a.ic[d][1]==b){a.ic[d][2]=c.save();break}}h.qn=function(a,b){b&4?this.Me&4||this.Me&8&&this.ja&&bi(this.ja,6):this.ed();this.Me=b};h.fm=function(){return this.wa};h.dm=function(){var a=0;this.kb<this.Ya&&(a=this.Sb[this.kb]);this.Me&8&&this.ja&&ci(this.ja,6);++this.kb>=this.Ya&&(this.wa&=-81,this.kb=this.Ya=0);return a}; -h.pn=function(a,b){this.Ya<this.Sb.length&&(this.Sb[this.Ya++]=b);var c=this.Sb[0]&31;if(void 0!==Kj[c]&&this.Ya>=Kj[c].Zc){var d=!1;this.kb=0;var c=this.Ia(),e,f,l,g,m,n=c&31;switch(n){case 3:this.Ia(k.Jo);this.Ia(k.po);this.Cb();break;case 4:f=this.Ia(k.Re);this.Va=f&3;e=this.xa[this.Va];this.Cb();this.Rb((e.Sa&4278190080)>>>24,k.Mo);break;case 5:case 6:f=this.Ia(k.Re);d=f>>2&1;this.Va=f&3;e=this.xa[this.Va];e.Ja=d;f=e.eb=this.Ia(k.ej);l=this.Ia(k.fj);g=e.Ua=this.Ia(k.hj);m=this.Ia(k.bh);e.bb=128<< -m;e.td=this.Ia(k.ko);this.Ia(k.kl);this.Ia(k.jo);6==n?this.xh(e):this.yh(e);Tj(this,e,c,d,f,l,g,m);d=!0;break;case 7:f=this.Ia(k.Re);this.Va=f&3;e=this.xa[this.Va];e.eb=e.qd=0;e.Sa=268435488;this.Cb();d=!0;break;case 8:e=this.xa[this.Va];e.Ja=0;this.Cb();this.Rb(e.Va|e.Ja<<2|e.Sa&255,k.ml);this.Rb(e.eb,k.yo);this.Va=this.Va+1&3;break;case 10:f=this.Ia(k.Re);d=f>>2&1;this.Va=f&3;e=this.xa[this.Va];f=e.eb;l=e.Ja=d;g=e.Ua=1;m=0;e.Sa=0;e.ta&&(e.Ka=e.ta.seek(e.eb,e.Ja,e.Ua))?m=e.Ka.length:e.Sa=1088;Tj(this, -e,c,d,f,l,g,m);d=!0;break;case 13:f=this.Ia(k.Re);d=f>>2&1;this.Va=f&3;e=this.xa[this.Va];f=e.eb;l=e.Ja=d;g=1;m=this.Ia(k.bh);e.bb=128<<m;e.td=this.Ia(k.Eo);this.Ia(k.kl);e.nj=this.Ia(k.jl);this.wj(e);Tj(this,e,c,d,f,l,g,m);d=!0;break;case 15:f=this.Ia(k.Re),this.Va=f&3,e=this.xa[this.Va],e.Ja=f>>2&1,f=this.Ia(k.vo),e.eb+=f-e.qd,0>e.eb&&(e.eb=0),e.eb>=e.Eb&&(e.eb=e.Eb-1),e.qd=f,e.Sa=32,0==e.eb&&(e.Sa|=268435456),this.Cb(),d=!0}0<this.Ya&&(this.wa|=80);this.Me&8&&(!e||e.Sa&8||!d||this.ja&&bi(this.ja, -6))}};h.em=function(){var a=this.Ld;this.Ld&=-129;return a};h.on=function(a,b){this.Wk=b};function Tj(a,b,c,d,e,f,l,g){a.Cb();a.Rb(b.Va|b.Ja<<2|b.Sa&255,k.ml);a.Rb((b.Sa&65280)>>>8,k.Ko);a.Rb((b.Sa&16711680)>>>16,k.Lo);var m=0;if(e!=b.eb||f!=b.Ja)m=l=1;c&128&&(f^=m,d||(m=0));a.Rb(e+m,k.ej);a.Rb(f,k.fj);a.Rb(l,k.hj);a.Rb(g,k.bh)}h.Ia=function(){var a=this.Sb[this.kb];this.kb++;return a};h.Cb=function(){this.kb=this.Ya=0};h.Rb=function(a){this.Sb[this.Ya++]=a}; +function Sj(a,b,c,d){var e;for(e=0;e<a.ic.length;e++)if(a.ic[e][1]==c){d.restore(a.ic[e][2]);return}a.ic[e]=[b,c,[]]}function Qj(a,b,c){var d;for(d=0;d<a.ic.length;d++)if(a.ic[d][1]==b){a.ic[d][2]=c.save();break}}h.qn=function(a,b){b&4?this.Me&4||this.Me&8&&this.ja&&bi(this.ja,6):this.ed();this.Me=b};h.fm=function(){return this.wa};h.dm=function(){var a=0;this.lb<this.Ya&&(a=this.Sb[this.lb]);this.Me&8&&this.ja&&ci(this.ja,6);++this.lb>=this.Ya&&(this.wa&=-81,this.lb=this.Ya=0);return a}; +h.pn=function(a,b){this.Ya<this.Sb.length&&(this.Sb[this.Ya++]=b);var c=this.Sb[0]&31;if(void 0!==Kj[c]&&this.Ya>=Kj[c].Zc){var d=!1;this.lb=0;var c=this.Ia(),e,f,k,g,m,n=c&31;switch(n){case 3:this.Ia(l.Lo);this.Ia(l.ro);this.Cb();break;case 4:f=this.Ia(l.Re);this.Va=f&3;e=this.xa[this.Va];this.Cb();this.Rb((e.Sa&4278190080)>>>24,l.Oo);break;case 5:case 6:f=this.Ia(l.Re);d=f>>2&1;this.Va=f&3;e=this.xa[this.Va];e.Ja=d;f=e.eb=this.Ia(l.ej);k=this.Ia(l.fj);g=e.Ua=this.Ia(l.hj);m=this.Ia(l.bh);e.bb=128<< +m;e.td=this.Ia(l.mo);this.Ia(l.kl);this.Ia(l.lo);6==n?this.xh(e):this.yh(e);Tj(this,e,c,d,f,k,g,m);d=!0;break;case 7:f=this.Ia(l.Re);this.Va=f&3;e=this.xa[this.Va];e.eb=e.qd=0;e.Sa=268435488;this.Cb();d=!0;break;case 8:e=this.xa[this.Va];e.Ja=0;this.Cb();this.Rb(e.Va|e.Ja<<2|e.Sa&255,l.ml);this.Rb(e.eb,l.Ao);this.Va=this.Va+1&3;break;case 10:f=this.Ia(l.Re);d=f>>2&1;this.Va=f&3;e=this.xa[this.Va];f=e.eb;k=e.Ja=d;g=e.Ua=1;m=0;e.Sa=0;e.ta&&(e.Ka=e.ta.seek(e.eb,e.Ja,e.Ua))?m=e.Ka.length:e.Sa=1088;Tj(this, +e,c,d,f,k,g,m);d=!0;break;case 13:f=this.Ia(l.Re);d=f>>2&1;this.Va=f&3;e=this.xa[this.Va];f=e.eb;k=e.Ja=d;g=1;m=this.Ia(l.bh);e.bb=128<<m;e.td=this.Ia(l.Go);this.Ia(l.kl);e.nj=this.Ia(l.jl);this.wj(e);Tj(this,e,c,d,f,k,g,m);d=!0;break;case 15:f=this.Ia(l.Re),this.Va=f&3,e=this.xa[this.Va],e.Ja=f>>2&1,f=this.Ia(l.xo),e.eb+=f-e.qd,0>e.eb&&(e.eb=0),e.eb>=e.Eb&&(e.eb=e.Eb-1),e.qd=f,e.Sa=32,0==e.eb&&(e.Sa|=268435456),this.Cb(),d=!0}0<this.Ya&&(this.wa|=80);this.Me&8&&(!e||e.Sa&8||!d||this.ja&&bi(this.ja, +6))}};h.em=function(){var a=this.Ld;this.Ld&=-129;return a};h.on=function(a,b){this.Wk=b};function Tj(a,b,c,d,e,f,k,g){a.Cb();a.Rb(b.Va|b.Ja<<2|b.Sa&255,l.ml);a.Rb((b.Sa&65280)>>>8,l.Mo);a.Rb((b.Sa&16711680)>>>16,l.No);var m=0;if(e!=b.eb||f!=b.Ja)m=k=1;c&128&&(f^=m,d||(m=0));a.Rb(e+m,l.ej);a.Rb(f,l.fj);a.Rb(k,l.hj);a.Rb(g,l.bh)}h.Ia=function(){var a=this.Sb[this.lb];this.lb++;return a};h.Cb=function(){this.lb=this.Ya=0};h.Rb=function(a){this.Sb[this.Ya++]=a}; h.vh=function(a,b,c){void 0===b||0>b?this.xc(a,c):c(-1,!1)};h.wh=function(a,b){return void 0!==b&&0<=b?this.Ac(a,b):-1};h.sl=function(a,b){return void 0!==b&&0<=b?this.bj(a,b):-1};h.xh=function(a){a.Sa=72;a.ta&&(a.Ka=null,a.Sa=0,this.ja&&(Sh(this.ja,2,this,"dmaRead",a),Oh(this.ja,2)))};h.yh=function(a){a.Sa=72;a.ta&&(a.ta.De?a.Sa=576:(a.Ka=null,a.Sa=0,this.ja&&(Sh(this.ja,2,this,"dmaWrite",a),Oh(this.ja,2))))}; h.wj=function(a){a.Sa=72;a.ta&&(a.Ka=null,a.Sa=0,this.ja&&(a.be=0,a.jc=Array(4),a.Ze=!0,a.df=0,Sh(this.ja,2,this,"dmaFormat",a),Oh(this.ja,2),a.Ze=!1))};h.xc=function(a,b){var c=-1;if(!a.Sa&&a.ta){do{if(a.Ka&&0<=(c=Ij(a.Ka,a.Wa++)))break;a.Ka=a.ta.seek(a.eb,a.Ja,a.Ua);if(!a.Ka){a.Sa=1088;break}a.Wa=0;this.We(a)}while(1)}b(c,!1)}; h.Ac=function(a,b){if(a.Sa||!a.ta)return-1;do{if(a.Ka&&a.ta.write(a.Ka,a.Wa++,b))break;a.Ka=a.ta.seek(a.eb,a.Ja,a.Ua);if(!a.Ka){a.Sa=8256;b=-1;break}a.Wa=0;this.We(a)}while(1);return b};h.We=function(a){a.Ua++;a.Ua>=a.zf+1&&(a.Ua=1,a.Ja++,a.Ja>=a.yf&&(a.Ja=0,a.eb++))};h.bj=function(a,b){if(a.Sa)return-1;a.jc[a.be++]=b;if(a.be==a.jc.length){a.eb=a.jc[0];a.Ja=a.jc[1];a.Ua=a.jc[2];a.bb=128<<a.jc[3];for(var c=a.be=0;c<a.bb;c++)if(0>this.Ac(a,a.nj))return-1;a.df++}a.df>=a.td&&(b=-1);return b}; @@ -588,22 +589,22 @@ var Oj={1012:Jj.prototype.fm,1013:Jj.prototype.dm,1015:Jj.prototype.em},Pj={1010 function $(a){v.call(this,"HDC",a,$);this.dmaRead=this.vh;this.dmaWrite=this.wh;this.dmaWriteBuffer=this.tl;this.dmaWriteFormat=this.ul;this.eh=[];if(a.drives)try{this.eh=eval("("+a.drives+")")}catch(b){s("HDC drive configuration error: "+b.message+" ("+a.drives+")")}this.of=(this.ee="at"==a.type)?1:0;this.Jl=this.ee?2:3}y(v,$); var Uj=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[940,8],5:[940,6],6:[615,4],7:[462,8],8:[733,5],9:[900,15],10:[820,3],11:[855,5],12:[855,7],13:[306,8],14:[733,7]}];h=$.prototype;h.wb=function(){return!1};h.mc=function(a,b,c,d){this.qa=b;this.la=c;this.Pa=d;this.La=a;this.ja=D(a,"ChipSet");Za(b,this,this.ee?Vj:Wj);ab(b,this,this.ee?Xj:Yj);this.reset();this.Ye()||this.Ma()}; h.Qb=function(a,b){if(!b)if(!a||!this.restore)this.ed(),this.La.Fh&&this.Ye(!0);else if(!this.restore(a))return!1;return!0};h.Pb=function(a){return a&&this.save?this.save():!0};h.Ee=function(){return this.La?this.La.Ee():""};h.Bd=function(){return this.La?this.La.Bd():""};h.reset=function(){this.ed(null,!0)};h.save=function(){var a=new H(this);a.set(0,this.Wi());return a.data()};h.restore=function(a){return this.ed(a[0])}; -h.ed=function(a,b){var c=0,d=!0;if(this.ee)null==a&&(a=[0,0,0,0,0,0,0,0,64,0]),this.kd=a[c++],this.$k=a[c++],this.Md=a[c++],this.Ug=a[c++],this.Sg=a[c++],this.Rg=a[c++],this.Le=a[c++],this.wa=a[c++],this.Ui=a[c++],this.Tg=a[c++];else{null==a&&(a=[0,0,Array(14),0,0]);this.Jf=a[c++];this.wa=a[c++];this.Sb=a[c++];this.kb=a[c++];this.Ya=a[c++];this.Zk=a[c++];this.Yk=a[c++];this.Xk=a[c++];var e=a[c++];void 0!==e?this.nf=e:void 0===this.nf&&(this.nf=-1)}void 0===this.xa&&(this.xa=Array(this.eh.length)); +h.ed=function(a,b){var c=0,d=!0;if(this.ee)null==a&&(a=[0,0,0,0,0,0,0,0,64,0]),this.kd=a[c++],this.$k=a[c++],this.Md=a[c++],this.Ug=a[c++],this.Sg=a[c++],this.Rg=a[c++],this.Le=a[c++],this.wa=a[c++],this.Ui=a[c++],this.Tg=a[c++];else{null==a&&(a=[0,0,Array(14),0,0]);this.Jf=a[c++];this.wa=a[c++];this.Sb=a[c++];this.lb=a[c++];this.Ya=a[c++];this.Zk=a[c++];this.Yk=a[c++];this.Xk=a[c++];var e=a[c++];void 0!==e?this.nf=e:void 0===this.nf&&(this.nf=-1)}void 0===this.xa&&(this.xa=Array(this.eh.length)); c=a[c];void 0===c&&(c=[]);for(e=0;e<this.xa.length;e++){void 0===this.xa[e]&&(this.xa[e]={});var f=this.xa[e];this.Ph(e,f,this.eh[e],c[e],b)||(d=!1);null!=this.Jf&&1>=e&&(this.Jf|=(f.type&3)<<(1-e<<1))}return d}; -h.Wi=function(){var a=0,b=[];this.ee?(b[a++]=this.kd,b[a++]=this.$k,b[a++]=this.Md,b[a++]=this.Ug,b[a++]=this.Sg,b[a++]=this.Rg,b[a++]=this.Le,b[a++]=this.wa,b[a++]=this.Ui,b[a++]=this.Tg):(b[a++]=this.Jf,b[a++]=this.wa,b[a++]=this.Sb,b[a++]=this.kb,b[a++]=this.Ya,b[a++]=this.Zk,b[a++]=this.Yk,b[a++]=this.Xk,b[a++]=this.nf);b[a]=this.Yi();return b}; -h.Ph=function(a,b,c,d,e){var f=0,l=!0;void 0===d&&(d=[0,0,!1,Array(8)]);b.Va=a;b.errorCode=d[f++];b.el=d[f++];b.Ce=d[f++];b.ve=d[f++];b.we=d[f++];b.Ja=d[f++];b.Gb=d[f++];b.Od=d[f++];b.Ua=d[f++];b.td=d[f++];b.bb=d[f++];b.hg=this.ee?0:1;b.name=c.name;void 0===b.name&&(b.name="Hard Drive");b.path=c.path;b.mode=c.mode||(b.path?"preload":"local");"demandro"!=b.mode&&"demandrw"!=b.mode||this.Bd()||(b.mode="local");b.type=c.type;if(void 0===b.type||void 0===Uj[this.of][b.type])b.type=this.Jl;c=Uj[this.of][b.type]; -b.Ob=c[2]||17;b.ub=c[3]||512;if(e&&this.ja&&(e=this.ja,c=b.type,e.oa)){var g=e.oa[18],g=a?g&240|c:g&15|c<<4;e.oa&&(e.oa[18]=g,Ch(e))}void 0===b.ta&&(b.ta=null,this.za("Type "+b.type+' "'+b.name+'" is fixed disk '+a,!0));Zj(this,b);b.Wa=d[f++];b.Ka=null;b.ta&&(a=d[f],void 0!==a&&0>b.ta.restore(a)&&(l=!1),l&&void 0!==b.Wa&&(b.Ka=b.ta.seek(b.Od,b.Ja,b.Ua+b.hg)));return l};h.Yi=function(){for(var a=0,b=[],c=0;c<this.xa.length;c++)b[a++]=this.Xi(this.xa[c]);return b}; +h.Wi=function(){var a=0,b=[];this.ee?(b[a++]=this.kd,b[a++]=this.$k,b[a++]=this.Md,b[a++]=this.Ug,b[a++]=this.Sg,b[a++]=this.Rg,b[a++]=this.Le,b[a++]=this.wa,b[a++]=this.Ui,b[a++]=this.Tg):(b[a++]=this.Jf,b[a++]=this.wa,b[a++]=this.Sb,b[a++]=this.lb,b[a++]=this.Ya,b[a++]=this.Zk,b[a++]=this.Yk,b[a++]=this.Xk,b[a++]=this.nf);b[a]=this.Yi();return b}; +h.Ph=function(a,b,c,d,e){var f=0,k=!0;void 0===d&&(d=[0,0,!1,Array(8)]);b.Va=a;b.errorCode=d[f++];b.el=d[f++];b.Ce=d[f++];b.ve=d[f++];b.we=d[f++];b.Ja=d[f++];b.Gb=d[f++];b.Od=d[f++];b.Ua=d[f++];b.td=d[f++];b.bb=d[f++];b.hg=this.ee?0:1;b.name=c.name;void 0===b.name&&(b.name="Hard Drive");b.path=c.path;b.mode=c.mode||(b.path?"preload":"local");"demandro"!=b.mode&&"demandrw"!=b.mode||this.Bd()||(b.mode="local");b.type=c.type;if(void 0===b.type||void 0===Uj[this.of][b.type])b.type=this.Jl;c=Uj[this.of][b.type]; +b.Ob=c[2]||17;b.ub=c[3]||512;if(e&&this.ja&&(e=this.ja,c=b.type,e.oa)){var g=e.oa[18],g=a?g&240|c:g&15|c<<4;e.oa&&(e.oa[18]=g,Ch(e))}void 0===b.ta&&(b.ta=null,this.za("Type "+b.type+' "'+b.name+'" is fixed disk '+a,!0));Zj(this,b);b.Wa=d[f++];b.Ka=null;b.ta&&(a=d[f],void 0!==a&&0>b.ta.restore(a)&&(k=!1),k&&void 0!==b.Wa&&(b.Ka=b.ta.seek(b.Od,b.Ja,b.Ua+b.hg)));return k};h.Yi=function(){for(var a=0,b=[],c=0;c<this.xa.length;c++)b[a++]=this.Xi(this.xa[c]);return b}; h.Xi=function(a){var b=0,c=[];c[b++]=a.errorCode;c[b++]=a.el;c[b++]=a.Ce;c[b++]=a.ve;c[b++]=a.we;c[b++]=a.Ja;c[b++]=a.Gb;c[b++]=a.Od;c[b++]=a.Ua;c[b++]=a.td;c[b++]=a.bb;c[b++]=a.Wa;c[b]=a.ta?a.ta.save():null;return c}; function Zj(a,b,c){if(b){var d=0,e=0;null==c&&((d=b.ve[2])?e=b.ve[0]<<8|b.ve[1]:c=b.type);null==c||d||(d=Uj[a.of][c][1],e=Uj[a.of][c][0]);d&&((c=Uj[a.of][b.type])&&e!=c[0]&&d!=c[1]&&a.za("Warning: drive parameters ("+e+","+d+") do not match drive type "+b.type+" ("+c[0]+","+c[1]+")"),b.Eb=e,b.Gb=d,null==b.ta&&(b.ta=new Aj(a,b,b.mode)))}} h.Ye=function(a){a||(this.Zd=0);for(var b=0;b<this.xa.length;b++){var c=this.xa[b];if(c.name&&c.path){if(!(a&&c.ta&&c.ta.tg)){var d;d=c.name;var c=c.path,e=this.xa[b];e.Ic?(this.za("Drive "+b+" busy"),d=!0):(e.Ic=!0,e.fe=!0,this.Zd++,(e.ta||new Aj(this,e,e.mode)).load(d,c,this.wl),d=!1);!d&&a&&this.Ma(!1)}}else a&&void 0!==c.type&&(c.ta=null,Zj(this,c,c.type))}return!!this.Zd}; -h.wl=function(a,b,c){a.Ic=!1;(a.ta=b)&&this.za('Mounted disk "'+c+'" in drive '+String.fromCharCode(67+a.Va),a.fe);a.fe&&(a.fe=!1,--this.Zd||this.Ma())};h.Fm=function(){var a=0;this.kb<this.Ya&&(a=this.Sb[this.kb]);this.ja&&ci(this.ja,5);this.wa&=-33;++this.kb>=this.Ya&&(this.kb=this.Ya=0,this.wa&=-15);return a};h.Mn=function(a,b){this.Ya<this.Sb.length&&(this.Sb[this.Ya++]=b);var c=12!=this.Sb[0]?6:this.Sb.length;6==this.Ya&&(this.wa&=-2);this.Ya>=c&&(this.wa|=2,this.wa&=-2,ak(this))}; -h.Gm=function(){var a=this.wa;this.kb<this.Ya&&(this.wa|=1);return a};h.Pn=function(a,b){this.Zk=b;this.ja&&ci(this.ja,5);this.ed()};h.Em=function(){return this.Jf};h.On=function(a,b){this.Yk=b;this.wa=13};h.Nn=function(a,b){this.Xk=b};h.Pi=function(){};h.Rl=function(){var a=-1;if(this.Qa&&(a=this.xc(this.Qa),this.Qa.Wa==this.Qa.ub))if(this.Qa.bb-=this.Qa.ub,this.Md=this.Md-1&255,this.Qa.bb>=this.Qa.ub){var b=this;this.xc(this.Qa,function(a){0<=a?bk(b):(b.wa=1,b.kd=16)},!1)}else this.wa=80;return a}; +h.wl=function(a,b,c){a.Ic=!1;(a.ta=b)&&this.za('Mounted disk "'+c+'" in drive '+String.fromCharCode(67+a.Va),a.fe);a.fe&&(a.fe=!1,--this.Zd||this.Ma())};h.Fm=function(){var a=0;this.lb<this.Ya&&(a=this.Sb[this.lb]);this.ja&&ci(this.ja,5);this.wa&=-33;++this.lb>=this.Ya&&(this.lb=this.Ya=0,this.wa&=-15);return a};h.Mn=function(a,b){this.Ya<this.Sb.length&&(this.Sb[this.Ya++]=b);var c=12!=this.Sb[0]?6:this.Sb.length;6==this.Ya&&(this.wa&=-2);this.Ya>=c&&(this.wa|=2,this.wa&=-2,ak(this))}; +h.Gm=function(){var a=this.wa;this.lb<this.Ya&&(this.wa|=1);return a};h.Pn=function(a,b){this.Zk=b;this.ja&&ci(this.ja,5);this.ed()};h.Em=function(){return this.Jf};h.On=function(a,b){this.Yk=b;this.wa=13};h.Nn=function(a,b){this.Xk=b};h.Pi=function(){};h.Rl=function(){var a=-1;if(this.Qa&&(a=this.xc(this.Qa),this.Qa.Wa==this.Qa.ub))if(this.Qa.bb-=this.Qa.ub,this.Md=this.Md-1&255,this.Qa.bb>=this.Qa.ub){var b=this;this.xc(this.Qa,function(a){0<=a?bk(b):(b.wa=1,b.kd=16)},!1)}else this.wa=80;return a}; h.bn=function(a,b){this.Qa&&this.Qa.bb>=this.Qa.ub&&(0>this.Ac(this.Qa,b)?(this.wa=1,this.kd=16):this.Qa.Wa==this.Qa.ub&&(this.Qa.bb-=this.Qa.ub,this.Md=this.Md-1&255,bk(this),this.Qa.bb>=this.Qa.ub||(this.wa=80)))};h.Tl=function(){return this.kd};h.gn=function(a,b){this.$k=b};h.Ul=function(){return this.Md};h.en=function(a,b){this.Md=b};h.Vl=function(){return this.Ug};h.fn=function(a,b){this.Ug=b};h.Ql=function(){return this.Sg};h.an=function(a,b){this.Sg=b};h.Pl=function(){return this.Rg}; h.$m=function(a,b){this.Rg=b};h.Sl=function(){return this.Le};h.cn=function(a,b){this.Le=b;this.wa=this.xa[this.Le&16?1:0]?this.wa|64:this.wa&-65};h.Wl=function(){return this.wa};h.Zm=function(a,b){this.Ui=b;this.ja&&ci(this.ja,14);ck(this)};h.dn=function(a,b){this.Tg&4&&!(b&4)&&(this.kd=1);this.Tg=b}; -function ck(a){var b=!1,c=a.Ui,d=a.Le&16?1:0,e=a.Le&15,f=a.Sg|(a.Rg&3)<<8,l=a.Ug,g=a.Md||256;a.Qa=null;a.kd=0;a.wa=80;(d=a.xa[d])?(d.Od=f,d.Ja=e,d.Ua=l,d.bb=g*d.ub,c=144<=c?c:c&240,d.Ka=null,d.errorCode=0,a.Qa=d):c=-1;switch(c&240){case 32:a.xc(d,function(b){0<=b&&a.ja?(bk(a),a.wa=136):(a.wa=1,a.kd=16)},!1);break;case 48:a.ja?(bk(a),a.wa=136):(a.wa=1,a.kd=4);break;case 16:b=!0;break;case 64:b=!0;break;case 144:a.kd=1;b=!0;break;case 145:d.Gb=e+1,d.Ob=g,b=!0}b&&bk(a)} +function ck(a){var b=!1,c=a.Ui,d=a.Le&16?1:0,e=a.Le&15,f=a.Sg|(a.Rg&3)<<8,k=a.Ug,g=a.Md||256;a.Qa=null;a.kd=0;a.wa=80;(d=a.xa[d])?(d.Od=f,d.Ja=e,d.Ua=k,d.bb=g*d.ub,c=144<=c?c:c&240,d.Ka=null,d.errorCode=0,a.Qa=d):c=-1;switch(c&240){case 32:a.xc(d,function(b){0<=b&&a.ja?(bk(a),a.wa=136):(a.wa=1,a.kd=16)},!1);break;case 48:a.ja?(bk(a),a.wa=136):(a.wa=1,a.kd=4);break;case 16:b=!0;break;case 64:b=!0;break;case 144:a.kd=1;b=!0;break;case 145:d.Gb=e+1,d.Ob=g,b=!0}b&&bk(a)} function bk(a){!a.ja||a.Tg&2||bi(a.ja,14)} -function ak(a){a.kb=0;var b=a.Ia(),c=a.Ia(),d=c&32,e=d>>5,f=c&31,l=a.Ia(),g=a.Ia(),m=l<<2&768|g,n=l&63,r=a.Ia(),x=a.Ia(),u=a.xa[e];u&&(u.Od=m,u.Ja=f,u.Ua=n,u.bb=r*u.ub);switch(b){case 3:a.Cb(u?u.errorCode:4);a.Rb(c);a.Rb(l);a.Rb(g);a.Rb(0|d);b=-1;break;case 12:for(c=0;0<=(b=a.Ia());)u&&c<u.ve.length&&(u.ve[c++]=b);u&&Zj(a,u);b=0;u||a.nf!=e||(a.nf=-1,b=2);a.Cb(b|d);b=-1;break;case 224:case 228:a.Cb(0|d),b=-1}if(0<=b)switch(void 0===u?b=-1:(u.errorCode=0,u.el=0),b){case 0:a.Cb(0|d);break;case 1:u.ap= -x;a.Cb(0|d);break;case 5:a.Cb(0|d);break;case 8:a.xh(u,function(b){a.Cb(b|d)});break;case 10:a.yh(u,function(b){a.Cb(b|d)});break;case 15:dk(a,u,function(b){a.Cb(b|d)});break;default:a.Cb(2|d)}}h.Ia=function(){var a=-1;this.kb<this.Ya&&(a=this.Sb[this.kb++]);return a};h.Cb=function(a){this.kb=this.Ya=0;void 0!==a&&this.Rb(a);this.ja&&bi(this.ja,5);this.wa|=32};h.Rb=function(a){this.Sb[this.Ya++]=a};h.vh=function(a,b,c){void 0===b||0>b?this.xc(a,c):c(-1,!1)}; +function ak(a){a.lb=0;var b=a.Ia(),c=a.Ia(),d=c&32,e=d>>5,f=c&31,k=a.Ia(),g=a.Ia(),m=k<<2&768|g,n=k&63,r=a.Ia(),x=a.Ia(),u=a.xa[e];u&&(u.Od=m,u.Ja=f,u.Ua=n,u.bb=r*u.ub);switch(b){case 3:a.Cb(u?u.errorCode:4);a.Rb(c);a.Rb(k);a.Rb(g);a.Rb(0|d);b=-1;break;case 12:for(c=0;0<=(b=a.Ia());)u&&c<u.ve.length&&(u.ve[c++]=b);u&&Zj(a,u);b=0;u||a.nf!=e||(a.nf=-1,b=2);a.Cb(b|d);b=-1;break;case 224:case 228:a.Cb(0|d),b=-1}if(0<=b)switch(void 0===u?b=-1:(u.errorCode=0,u.el=0),b){case 0:a.Cb(0|d);break;case 1:u.cp= +x;a.Cb(0|d);break;case 5:a.Cb(0|d);break;case 8:a.xh(u,function(b){a.Cb(b|d)});break;case 10:a.yh(u,function(b){a.Cb(b|d)});break;case 15:dk(a,u,function(b){a.Cb(b|d)});break;default:a.Cb(2|d)}}h.Ia=function(){var a=-1;this.lb<this.Ya&&(a=this.Sb[this.lb++]);return a};h.Cb=function(a){this.lb=this.Ya=0;void 0!==a&&this.Rb(a);this.ja&&bi(this.ja,5);this.wa|=32};h.Rb=function(a){this.Sb[this.Ya++]=a};h.vh=function(a,b,c){void 0===b||0>b?this.xc(a,c):c(-1,!1)}; h.wh=function(a,b){return void 0!==b&&0<=b?this.Ac(a,b):-1};h.tl=function(a,b){var c;void 0!==b&&0<=b?(c=b,a.Wa<a.we.length?a.we[a.Wa++]=c:(a.errorCode=20,c=-1)):c=-1;return c};h.ul=function(a,b){return void 0!==b&&0<=b?this.bj(a,b):-1};h.xh=function(a,b){a.errorCode=4;if(a.ta&&(a.Ka=null,this.ja)){a.errorCode=0;Sh(this.ja,3,this,"dmaRead",a);Oh(this.ja,3,function(c){c||0!=a.errorCode||(a.errorCode=4);b(a.errorCode?2:0)});return}b(a.errorCode?2:0)}; h.yh=function(a,b){a.errorCode=4;if(a.ta&&(a.Ka=null,this.ja)){a.errorCode=0;Sh(this.ja,3,this,"dmaWrite",a);Oh(this.ja,3,function(c){c||(0==a.errorCode&&(a.errorCode=4),20==a.errorCode&&(a.errorCode=0));b(a.errorCode?2:0)});return}b(a.errorCode?2:0)};function dk(a,b,c){b.errorCode=4;b.we&&b.we.length==b.bb||(b.we=Array(b.bb));b.Wa=0;a.ja?(b.errorCode=0,Sh(a.ja,3,a,"dmaWriteBuffer",b),Oh(a.ja,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)})):c(b.errorCode?2:0)} h.wj=function(a,b){a.errorCode=4;if(a.ta&&(a.Ka=null,this.ja)){a.be=0;a.jc=Array(4);a.Ze=!0;a.df=0;a.errorCode=0;Sh(this.ja,3,this,"dmaWriteFormat",a);Oh(this.ja,3,function(c){c||0!=a.errorCode||(a.errorCode=4);a.Ze=!1;b(a.errorCode?2:0)});return}b(a.errorCode?2:0)}; @@ -618,24 +619,24 @@ function jk(a,b,c){v.call(this,"Computer",a,jk);this.na.Db=!1;this.pf=a.buswidth e[b],d.mc&&d.mc(this,this.qa,this.la,this.Pa);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.Wg=d:this.yc=parseInt(d,10));var f;if(a=Aa&&Aa.state||(f=!0,a.state))b=this.cl=a,f||(this.wg=!0,this.yc=kk),this.yc&&(this.Zg=new H(this,"1.15.9"),this.Zg.load()?b=null:delete this.Zg);!b&&this.yc&&(f=null,this.zc&&(f=la()+"/api/v1/user?req=load&user="+this.zc+"&state="+ek(this,"1.15.9")),b=f)&&(this.wg=!0);b?q(b,!0,null,this,this.Tm):this.Ma();c||mk(this,this.Pg)}else s("Unable to find CPU component")} y(v,jk);var Rj=102,kk=0;h=jk.prototype;h.Ee=function(){return this.Xn};h.Bd=function(){return this.zc?this.zc:""};h.Tm=function(a,b,c){c?(this.Wg=null,this.wg=!1,this.za("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):this.Nf=b;this.Ma()};function mk(a,b,c){for(var d=Fa(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ja(f)){Ja(f,function(){mk(a,b,c)});return}}b.call(a,c)} function nk(a,b){var c=new H(a,"1.15.9","validate");if(c.load()&&c.parse()){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.za("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}} -h.Pg=function(a){void 0===a&&(a=this.yc||(this.Nf?1:kk));var b=!1,c=!1;this.Cj=!1;var d=this.Zg||new H(this,"1.15.9");if(-1==a)b=!0;else if(a>kk){if(d.load(this.Nf)){this.qe=new H(this,"1.15.9","failsafe");this.qe.load()&&(ok(this,d),a=2,fk(this.qe));this.qe.set("timestamp",ia());ik(this.qe);var e=this.yc&&!this.wg;if(1==a||ma("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=d.parse()){var f=d.get("code"),l=d.get("data");f&&("ok"==f?d.load(l):("error"== -f&&"no machine state"!=l?(this.za("Error: "+l),"unable to verify user"==l&&(pa("user",""),this.zc=null)):this.hc(f+": "+l),fk(d),d.load()?(c=d.parse(),e=!0):c=!1))}e&&nk(this,c?d:null)}else 2==a&&d.clear()}else nk(this);delete this.Nf;delete this.Zg}e=Fa(this.id);for(f=0;f<e.length;f++)l=e[f],l!==this&&l!=this.la&&(c=pk(this,l,d,b,c));b=[d,a,c];-1!=a?mk(this,this.xj,b):this.xj(b)}; +h.Pg=function(a){void 0===a&&(a=this.yc||(this.Nf?1:kk));var b=!1,c=!1;this.Cj=!1;var d=this.Zg||new H(this,"1.15.9");if(-1==a)b=!0;else if(a>kk){if(d.load(this.Nf)){this.qe=new H(this,"1.15.9","failsafe");this.qe.load()&&(ok(this,d),a=2,fk(this.qe));this.qe.set("timestamp",ia());ik(this.qe);var e=this.yc&&!this.wg;if(1==a||ma("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=d.parse()){var f=d.get("code"),k=d.get("data");f&&("ok"==f?d.load(k):("error"== +f&&"no machine state"!=k?(this.za("Error: "+k),"unable to verify user"==k&&(pa("user",""),this.zc=null)):this.hc(f+": "+k),fk(d),d.load()?(c=d.parse(),e=!0):c=!1))}e&&nk(this,c?d:null)}else 2==a&&d.clear()}else nk(this);delete this.Nf;delete this.Zg}e=Fa(this.id);for(f=0;f<e.length;f++)k=e[f],k!==this&&k!=this.la&&(c=pk(this,k,d,b,c));b=[d,a,c];-1!=a?mk(this,this.xj,b):this.xj(b)}; function pk(a,b,c,d,e){if(!b.na.Db){b.na.Db=!0;if(b.Qb){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Qb(f,d)&&f&&(s("Unable to restore state for "+b.type),a.cl&&!a.Nf?(c.clear(),a.yc=kk,window&&window.location.reload()):a.Cj=!0,b.Qb(null),e=!1)}if(!d&&b.uj)for(a=b.uj.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e} h.xj=function(a){var b=a[0],c=0>a[1];a=a[2];this.na.Db=!0;this.Aj||(this.hc("PCjs v1.15.9\nCopyright \u00a9 2012-2014 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.Aj=!0);this.la&&pk(this,this.la,b,c,a);this.Cj&&(ok(this,b),b.clear());!c&&this.qe&&(this.qe.clear(),delete this.qe)}; function ok(a,b){if(ma("There may be a problem with your PCjs machine.\n\nTo help us diagnose it, click OK to send this PCjs machine state to http://www.pcjs.org.")){var c=a.Bd(),d=b.toString(),e={app:"PCjs",ver:"1.15.9"};e.url=a.url;e.user=c;e.type="bug";e.data=d;q("http://www.pcjs.org/api/v1/report",!0,e)}} -function qk(a,b,c){var d,e="none",f=new H(a,"1.15.9"),l=new H(a,"1.15.9","validate"),g=ia();l.set("timestamp",g);f.set("timestamp",g);f.set("version","1.15.9");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.la&&a.la.Pb&&(c&&jb(a.la),d=a.la.Pb(b,c),"object"===typeof d&&f.set(a.la.id,d),c&&(a.la.na.Db=!1,!1===d&&(e=null)));for(var g=Fa(a.id),m=0;m<g.length;m++){var n=g[m];n.na.Db&&(n.Pb&&(d=n.Pb(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.na.Db= -!1,!1===d&&(e=null)))}e&&(c?(g=d=!1,b?(a.zc&&rk(a,a.zc,f.toString()),ik(l)&&ik(f)||(e=null,d=g=!0)):a.yc&&(d=!0,g=3==a.yc),d&&f.clear(g)):e=f.toString());c&&(a.na.Db=!1);return e}h.reset=function(){this.qa&&this.qa.reset&&this.qa.reset();for(var a=Fa(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.qa&&c.reset&&c.reset()}};h.start=function(a,b){for(var c=Fa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}}; +function qk(a,b,c){var d,e="none",f=new H(a,"1.15.9"),k=new H(a,"1.15.9","validate"),g=ia();k.set("timestamp",g);f.set("timestamp",g);f.set("version","1.15.9");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.la&&a.la.Pb&&(c&&jb(a.la),d=a.la.Pb(b,c),"object"===typeof d&&f.set(a.la.id,d),c&&(a.la.na.Db=!1,!1===d&&(e=null)));for(var g=Fa(a.id),m=0;m<g.length;m++){var n=g[m];n.na.Db&&(n.Pb&&(d=n.Pb(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.na.Db= +!1,!1===d&&(e=null)))}e&&(c?(g=d=!1,b?(a.zc&&rk(a,a.zc,f.toString()),ik(k)&&ik(f)||(e=null,d=g=!0)):a.yc&&(d=!0,g=3==a.yc),d&&f.clear(g)):e=f.toString());c&&(a.na.Db=!1);return e}h.reset=function(){this.qa&&this.qa.reset&&this.qa.reset();for(var a=Fa(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.qa&&c.reset&&c.reset()}};h.start=function(a,b){for(var c=Fa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}}; h.stop=function(a,b){for(var c=Fa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};h.wb=function(a,b,c,d){var e=this;switch(c){case "save":return this.sa[c]=d,d.onclick=function(){var a=lk(e,!0);if(a){var b=!(!e.yc||e.Wg),c=qk(e,b);b?rk(e,a,c):e.za("Resume disabled, machine state not saved")}},!0;case "reset":return this.sa[c]=d,d.onclick=function(){lb(e)},!0}return!1}; function lk(a,b){var c=a.zc;c||(c=oa("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("To save machine states on the pcjs.org server, you need a user ID (email support@pcjs.org).\n\nOnce you have an ID, enter it below.","")),c&&((c=sk(a,c))||a.za("Your user ID has not been approved."))):b&&a.za("Browser local storage is not available"));return c} function sk(a,b){a.zc=null;var c=q(la()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(pa("user",c.data),a.zc=c.data)}catch(e){s(e.message+" ("+d+")")}return a.zc} function rk(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ek(a,"1.15.9");d.data=c;b=q(la()+"/api/v1/user",!1,d);d=b[1];if(b[0]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[0]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.za("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.za(c),pa("user",""),a.zc=null)}} function lb(a){if(a.yc&&!a.Wg){var b=ma("Click OK to save changes to this PCjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");qk(a,b,!0);!b&&a.cl?window&&window.location.reload():(b||(a.Fh=!0),a.Pg(kk),a.Fh=!1)}else a.reset(),a.la&&ib(a.la)}function D(a,b,c){a=Fa(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} -t(function(){for(var a=B(window.document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=B(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],l=z(f),l=new jk(l,d,!0);A(l,f);mk(l,l.Pg)}});ra.show.push(function(){for(var a=B(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ha("Computer",c.id))&&c.Aj&&!c.na.Db&&c.Pg(-1)}}); -ra.exit.push(function(){for(var a=B(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ha("Computer",c.id))&&c.na.Db&&qk(c,!(!c.yc||c.Wg),!0)}});var tk=0;function uk(a,b,c,d,e,f){e("Loading "+a+"...");q(a,!0,null,null,function(l,g,m){m?(g||(g="unable to load "+a+" ("+m+")"),f(g,null)):vk(g,a,b,c,d,e,f)})} -function vk(a,b,c,d,e,f,l){function g(a,f){if(f)l(f,null);else{if(c){var g=b;g&&0>g.indexOf("/")&&(g=window.location.pathname+g);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(g?" url=$2"+g+"$2":""))}g=null;if("<"==a.charAt(0))try{window.ActiveXObject||"ActiveXObject"in window?(e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(x){g= -null,a=x.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);l(a,g)}}a?e?wk(a,f,g):g(a,null):l("no data"+(b?" for file: "+b:""),null)} -function wk(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");q(e,!0,null,null,function(f,l,g){if(g||!l)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=l.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=g[0],n,r=/( [a-z]+=)(['"])(.*?)\2/g;n=r.exec(f);)m=0>m.indexOf(n[1])?m.replace(">",n[0]+">"):m.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);g[0]!=m&&(l=l.replace(g[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}l=l.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],l);wk(a,b,c)}})}else c(a,null)} -function xk(a,b,c,d){function e(a){if(void 0===m){var b=g&&B(g,"machine-warning");m=b&&b[0]||g}m&&(m.innerHTML=ga(a))}function f(a){e("Error: "+a);n&&l();n=!1}function l(){0==--tk&&xa(!0)}var g,m,n=!0;tk++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.9/components.xsl");var r=function(a,d){if(d){var m=function(a,m){if(m)if(m)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var n=d.transformNode(m);n?(g.outerHTML=n,l()):f("transformNodeToObject failed")}else window.document.implementation&& -window.document.implementation.createDocument?(n=new XSLTProcessor,n.importStylesheet(m),(n=n.transformToFragment(d,window.document))?(g.parentNode.replaceChild(n,g),l()):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(a)};d?uk(c,null,null,!1,e,m):f("failed to load XML file: "+b)}else f(a)};"<"!=b.charAt(0)?uk(b,a,d,!0,e,r):vk(b,null,a,d,!1,e,r)}else f("failed to find machine element: "+a)}catch(x){f(x.message)}return n} +t(function(){for(var a=B(window.document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=B(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],k=z(f),k=new jk(k,d,!0);A(k,f);mk(k,k.Pg)}});ra.show.push(function(){for(var a=B(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ha("Computer",c.id))&&c.Aj&&!c.na.Db&&c.Pg(-1)}}); +ra.exit.push(function(){for(var a=B(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ha("Computer",c.id))&&c.na.Db&&qk(c,!(!c.yc||c.Wg),!0)}});var tk=0;function uk(a,b,c,d,e,f){e("Loading "+a+"...");q(a,!0,null,null,function(k,g,m){m?(g||(g="unable to load "+a+" ("+m+")"),f(g,null)):vk(g,a,b,c,d,e,f)})} +function vk(a,b,c,d,e,f,k){function g(a,f){if(f)k(f,null);else{if(c){var g=b;g&&0>g.indexOf("/")&&(g=window.location.pathname+g);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(g?" url=$2"+g+"$2":""))}g=null;if("<"==a.charAt(0))try{window.ActiveXObject||"ActiveXObject"in window?(e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(x){g= +null,a=x.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,g)}}a?e?wk(a,f,g):g(a,null):k("no data"+(b?" for file: "+b:""),null)} +function wk(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");q(e,!0,null,null,function(f,k,g){if(g||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=g[0],n,r=/( [a-z]+=)(['"])(.*?)\2/g;n=r.exec(f);)m=0>m.indexOf(n[1])?m.replace(">",n[0]+">"):m.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);g[0]!=m&&(k=k.replace(g[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],k);wk(a,b,c)}})}else c(a,null)} +function xk(a,b,c,d){function e(a){if(void 0===m){var b=g&&B(g,"machine-warning");m=b&&b[0]||g}m&&(m.innerHTML=ga(a))}function f(a){e("Error: "+a);n&&k();n=!1}function k(){0==--tk&&xa(!0)}var g,m,n=!0;tk++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.9/components.xsl");var r=function(a,d){if(d){var m=function(a,m){if(m)if(m)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var n=d.transformNode(m);n?(g.outerHTML=n,k()):f("transformNodeToObject failed")}else window.document.implementation&& +window.document.implementation.createDocument?(n=new XSLTProcessor,n.importStylesheet(m),(n=n.transformToFragment(d,window.document))?(g.parentNode.replaceChild(n,g),k()):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(a)};d?uk(c,null,null,!1,e,m):f("failed to load XML file: "+b)}else f(a)};"<"!=b.charAt(0)?uk(b,a,d,!0,e,r):vk(b,null,a,d,!1,e,r)}else f("failed to find machine element: "+a)}catch(x){f(x.message)}return n} window.embedPC=function(a,b,c,d){return xk(a,b,c,d)};window.enableEvents=xa;window.sendEvent=ya;xa(!1);})();