From f26547ce06b706ceab744e440ce2c7efb259c387 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Sat, 15 Oct 2016 18:19:23 -0700 Subject: [PATCH 01/32] Picked up the fixes from the Jekyll smoke test --- devices/pdp11/machine/1120/test/debugger/README.md | 2 +- devices/pdp11/machine/1170/test/debugger/README.md | 2 +- devices/pdp11/machine/1170/vt100/debugger/README.md | 2 +- modules/shared/templates/components.css | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/devices/pdp11/machine/1120/test/debugger/README.md b/devices/pdp11/machine/1120/test/debugger/README.md index 62b1158a2a..55dd55a4c7 100644 --- a/devices/pdp11/machine/1120/test/debugger/README.md +++ b/devices/pdp11/machine/1120/test/debugger/README.md @@ -1,7 +1,7 @@ --- layout: page title: PDP-11/20 Test Machine with Debugger -permalink: /devices/pdp11/machine/1120/test/ +permalink: /devices/pdp11/machine/1120/test/debugger/ machines: - id: test1120 type: pdp11 diff --git a/devices/pdp11/machine/1170/test/debugger/README.md b/devices/pdp11/machine/1170/test/debugger/README.md index 8c7bdde0ea..9a91e8e0c1 100644 --- a/devices/pdp11/machine/1170/test/debugger/README.md +++ b/devices/pdp11/machine/1170/test/debugger/README.md @@ -1,7 +1,7 @@ --- layout: page title: PDP-11/70 Test Machine with Debugger -permalink: /devices/pdp11/machine/1170/test/ +permalink: /devices/pdp11/machine/1170/test/debugger/ machines: - id: test1170 type: pdp11 diff --git a/devices/pdp11/machine/1170/vt100/debugger/README.md b/devices/pdp11/machine/1170/vt100/debugger/README.md index 80af00db50..d116d45a00 100644 --- a/devices/pdp11/machine/1170/vt100/debugger/README.md +++ b/devices/pdp11/machine/1170/vt100/debugger/README.md @@ -1,7 +1,7 @@ --- layout: page title: PDP-11/70 with VT100 Terminal and Debugger -permalink: /devices/pdp11/machine/1170/vt100/ +permalink: /devices/pdp11/machine/1170/vt100/debugger/ machines: - id: test1170 type: pdp11 diff --git a/modules/shared/templates/components.css b/modules/shared/templates/components.css index 64d48ea906..e46b16dfd2 100644 --- a/modules/shared/templates/components.css +++ b/modules/shared/templates/components.css @@ -90,7 +90,7 @@ } .pcjs-description, .pcjs-status { font-size: x-small; - line-height: 2em; + line-height: 2.8em; } .pcjs-key { border: 1px solid black; From a29d1202d87112acb9051fd54b65e32bd4458863 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Mon, 17 Oct 2016 11:01:32 -0700 Subject: [PATCH 02/32] Updated PC8080 and PDPjs to support RAM images, eliminating the need for the old "writable ROM" kludge; RAM images can include their own load and exec addresses as part of the JSON file, but the RAM component can provide explicit overrides (if no load address is specified either way, the default load address is the starting RAM address) --- devices/pc8080/README.md | 4 +- devices/pc8080/machine/exerciser/README.md | 2 +- .../machine/exerciser/machine-8080ex1.xml | 3 +- .../machine/exerciser/machine-8080pre.xml | 3 +- .../machine/exerciser/machine-cputest.xml | 3 +- .../pc8080/machine/exerciser/machine-test.xml | 3 +- devices/pc8080/machine/exerciser/machine.xml | 3 +- devices/pc8080/ram/README.md | 21 + .../pc8080/{rom => ram}/exerciser/8080EX1.MAC | 0 .../{rom => ram}/exerciser/8080EX1.json | 0 .../{rom => ram}/exerciser/8080EXER.MAC | 0 .../{rom => ram}/exerciser/8080EXER.json | 0 .../pc8080/{rom => ram}/exerciser/8080PRE.MAC | 0 .../{rom => ram}/exerciser/8080PRE.json | 0 .../{rom => ram}/exerciser/CPUTEST.json | 0 .../pc8080/{rom => ram}/exerciser/README.md | 6 +- .../pc8080/{rom => ram}/exerciser/TEST.ASM | 0 .../pc8080/{rom => ram}/exerciser/TEST.json | 0 devices/pdp11/README.md | 4 +- devices/pdp11/machine/1120/README.md | 1 + .../pdp11/machine/1120/bootstrap/README.md | 10 + .../machine/1120/bootstrap/debugger/README.md | 11 + .../1120/bootstrap/debugger/machine.xml | 13 + .../pdp11/machine/1120/bootstrap/machine.xml | 12 + devices/pdp11/machine/1120/test/README.md | 2 +- .../machine/1120/test/debugger/machine.xml | 7 +- devices/pdp11/machine/1120/test/machine.xml | 8 +- .../machine/1170/panel/debugger/machine.xml | 5 +- devices/pdp11/machine/1170/panel/machine.xml | 5 +- .../machine/1170/test/debugger/machine.xml | 5 +- devices/pdp11/machine/1170/test/machine.xml | 5 +- .../machine/1170/vt100/debugger/machine.xml | 5 +- devices/pdp11/machine/1170/vt100/machine.xml | 5 +- devices/pdp11/ram/README.md | 11 + devices/pdp11/ram/bootdemo/README.md | 15 + .../boot.json => ram/bootdemo/bootdemo.json} | 0 .../boot.lst => ram/bootdemo/bootdemo.lst} | 0 .../boot.mac => ram/bootdemo/bootdemo.mac} | 0 devices/pdp11/ram/bootdemo/makefile | 11 + .../pdp11/{loader => ram/bootstrap}/README.md | 8 +- .../{loader => ram/bootstrap}/bootstrap.json | 4 +- .../{loader => ram/bootstrap}/bootstrap.lst | 0 devices/pdp11/rom/README.md | 8 +- devices/pdp11/rom/test/README.md | 13 - devices/pdp11/rom/test/makefile | 11 - docs/pcx86/examples/components.css | 2 +- docs/pcx86/examples/components.xsl | 34 +- modules/pc8080/lib/ram.js | 256 +++++++++- modules/pc8080/lib/rom.js | 146 +----- modules/pdp11/lib/cpustate.js | 18 +- modules/pdp11/lib/ram.js | 124 ++++- modules/pdp11/lib/rom.js | 127 ++--- modules/shared/lib/weblib.js | 84 ++++ modules/shared/templates/components.xsl | 34 +- versions/pc8080/1.30.1/components.css | 2 +- versions/pc8080/1.30.1/components.xsl | 34 +- versions/pc8080/1.30.1/pc8080-dbg.js | 465 +++++++++--------- versions/pc8080/1.30.1/pc8080.js | 311 ++++++------ versions/pcx86/1.30.1/components.css | 2 +- versions/pcx86/1.30.1/components.xsl | 34 +- versions/pdpjs/1.30.1/components.css | 2 +- versions/pdpjs/1.30.1/components.xsl | 34 +- versions/pdpjs/1.30.1/pdp11-dbg.js | 396 +++++++-------- versions/pdpjs/1.30.1/pdp11.js | 301 ++++++------ 64 files changed, 1479 insertions(+), 1154 deletions(-) create mode 100644 devices/pc8080/ram/README.md rename devices/pc8080/{rom => ram}/exerciser/8080EX1.MAC (100%) rename devices/pc8080/{rom => ram}/exerciser/8080EX1.json (100%) rename devices/pc8080/{rom => ram}/exerciser/8080EXER.MAC (100%) rename devices/pc8080/{rom => ram}/exerciser/8080EXER.json (100%) rename devices/pc8080/{rom => ram}/exerciser/8080PRE.MAC (100%) rename devices/pc8080/{rom => ram}/exerciser/8080PRE.json (100%) rename devices/pc8080/{rom => ram}/exerciser/CPUTEST.json (100%) rename devices/pc8080/{rom => ram}/exerciser/README.md (70%) rename devices/pc8080/{rom => ram}/exerciser/TEST.ASM (100%) rename devices/pc8080/{rom => ram}/exerciser/TEST.json (100%) create mode 100644 devices/pdp11/machine/1120/bootstrap/README.md create mode 100644 devices/pdp11/machine/1120/bootstrap/debugger/README.md create mode 100644 devices/pdp11/machine/1120/bootstrap/debugger/machine.xml create mode 100644 devices/pdp11/machine/1120/bootstrap/machine.xml create mode 100644 devices/pdp11/ram/README.md create mode 100644 devices/pdp11/ram/bootdemo/README.md rename devices/pdp11/{rom/test/boot.json => ram/bootdemo/bootdemo.json} (100%) rename devices/pdp11/{rom/test/boot.lst => ram/bootdemo/bootdemo.lst} (100%) rename devices/pdp11/{rom/test/boot.mac => ram/bootdemo/bootdemo.mac} (100%) create mode 100644 devices/pdp11/ram/bootdemo/makefile rename devices/pdp11/{loader => ram/bootstrap}/README.md (93%) rename devices/pdp11/{loader => ram/bootstrap}/bootstrap.json (86%) rename devices/pdp11/{loader => ram/bootstrap}/bootstrap.lst (100%) delete mode 100644 devices/pdp11/rom/test/README.md delete mode 100644 devices/pdp11/rom/test/makefile diff --git a/devices/pc8080/README.md b/devices/pc8080/README.md index 2628e758cf..70f0f05baa 100644 --- a/devices/pc8080/README.md +++ b/devices/pc8080/README.md @@ -13,8 +13,8 @@ All our [8080-Based Machines](machine/) are built from a collection of devices, * [Control Panels](panel/) * CPU (8080) * [Machines](machine/) -* RAM -* [ROMs](rom/) +* [RAM Images](ram/) +* [ROM Images](rom/) * Video Adapters Complete [machine configurations](machine/) are constructed from those devices. A machine configuration is a single XML file diff --git a/devices/pc8080/machine/exerciser/README.md b/devices/pc8080/machine/exerciser/README.md index 107ddc8cca..07c79e2d8c 100644 --- a/devices/pc8080/machine/exerciser/README.md +++ b/devices/pc8080/machine/exerciser/README.md @@ -18,7 +18,7 @@ PCjs Project. The test machine below loads a copy of the [8080 Exerciser](https://web.archive.org/web/20151006085348/http://www.idb.me.uk/sunhillow/8080.html) -(specifically, [8080EX1](/devices/pc8080/rom/exerciser/8080EX1.MAC)) and intercepts the exerciser's CP/M console +(specifically, [8080EX1](/devices/pc8080/ram/exerciser/8080EX1.MAC)) and intercepts the exerciser's CP/M console calls so that you can see its progress in the Control Panel window. This is a "headless" test machine (no keyboard or display), so that's all you get. diff --git a/devices/pc8080/machine/exerciser/machine-8080ex1.xml b/devices/pc8080/machine/exerciser/machine-8080ex1.xml index d15f5cc0c8..734dfa5d30 100644 --- a/devices/pc8080/machine/exerciser/machine-8080ex1.xml +++ b/devices/pc8080/machine/exerciser/machine-8080ex1.xml @@ -4,8 +4,7 @@ 8080 Exerciser Test Machine - - + diff --git a/devices/pc8080/machine/exerciser/machine-8080pre.xml b/devices/pc8080/machine/exerciser/machine-8080pre.xml index c43b27344d..248ef7bff2 100644 --- a/devices/pc8080/machine/exerciser/machine-8080pre.xml +++ b/devices/pc8080/machine/exerciser/machine-8080pre.xml @@ -4,8 +4,7 @@ 8080 Exerciser Preliminary Test Machine - - + diff --git a/devices/pc8080/machine/exerciser/machine-cputest.xml b/devices/pc8080/machine/exerciser/machine-cputest.xml index 7d65f4b52f..c4773ab71a 100644 --- a/devices/pc8080/machine/exerciser/machine-cputest.xml +++ b/devices/pc8080/machine/exerciser/machine-cputest.xml @@ -4,8 +4,7 @@ 8080 CPUTEST Machine - - + diff --git a/devices/pc8080/machine/exerciser/machine-test.xml b/devices/pc8080/machine/exerciser/machine-test.xml index 14bb853d49..fc3e6d7641 100644 --- a/devices/pc8080/machine/exerciser/machine-test.xml +++ b/devices/pc8080/machine/exerciser/machine-test.xml @@ -4,8 +4,7 @@ 8080 "Kelly Smith" Test Machine - - + diff --git a/devices/pc8080/machine/exerciser/machine.xml b/devices/pc8080/machine/exerciser/machine.xml index d15f5cc0c8..734dfa5d30 100644 --- a/devices/pc8080/machine/exerciser/machine.xml +++ b/devices/pc8080/machine/exerciser/machine.xml @@ -4,8 +4,7 @@ 8080 Exerciser Test Machine - - + diff --git a/devices/pc8080/ram/README.md b/devices/pc8080/ram/README.md new file mode 100644 index 0000000000..e5ebd5ab2a --- /dev/null +++ b/devices/pc8080/ram/README.md @@ -0,0 +1,21 @@ +--- +layout: page +title: 8080-Based RAM Images +permalink: /devices/pc8080/ram/ +--- + +8080-Based RAM Images +--------------------- + +RAM images are added to machines by including a ** component in the machine XML configuration file +with the *file* attribute set to the filename of the image; eg: + +```xml + +``` + +The project currently contains the following 8080-based ROMs: + +* [8080 Exerciser Tests](exerciser/) +* [Space Invaders (1978)](invaders/) +* [DEC VT100 Terminal](vt100/) diff --git a/devices/pc8080/rom/exerciser/8080EX1.MAC b/devices/pc8080/ram/exerciser/8080EX1.MAC similarity index 100% rename from devices/pc8080/rom/exerciser/8080EX1.MAC rename to devices/pc8080/ram/exerciser/8080EX1.MAC diff --git a/devices/pc8080/rom/exerciser/8080EX1.json b/devices/pc8080/ram/exerciser/8080EX1.json similarity index 100% rename from devices/pc8080/rom/exerciser/8080EX1.json rename to devices/pc8080/ram/exerciser/8080EX1.json diff --git a/devices/pc8080/rom/exerciser/8080EXER.MAC b/devices/pc8080/ram/exerciser/8080EXER.MAC similarity index 100% rename from devices/pc8080/rom/exerciser/8080EXER.MAC rename to devices/pc8080/ram/exerciser/8080EXER.MAC diff --git a/devices/pc8080/rom/exerciser/8080EXER.json b/devices/pc8080/ram/exerciser/8080EXER.json similarity index 100% rename from devices/pc8080/rom/exerciser/8080EXER.json rename to devices/pc8080/ram/exerciser/8080EXER.json diff --git a/devices/pc8080/rom/exerciser/8080PRE.MAC b/devices/pc8080/ram/exerciser/8080PRE.MAC similarity index 100% rename from devices/pc8080/rom/exerciser/8080PRE.MAC rename to devices/pc8080/ram/exerciser/8080PRE.MAC diff --git a/devices/pc8080/rom/exerciser/8080PRE.json b/devices/pc8080/ram/exerciser/8080PRE.json similarity index 100% rename from devices/pc8080/rom/exerciser/8080PRE.json rename to devices/pc8080/ram/exerciser/8080PRE.json diff --git a/devices/pc8080/rom/exerciser/CPUTEST.json b/devices/pc8080/ram/exerciser/CPUTEST.json similarity index 100% rename from devices/pc8080/rom/exerciser/CPUTEST.json rename to devices/pc8080/ram/exerciser/CPUTEST.json diff --git a/devices/pc8080/rom/exerciser/README.md b/devices/pc8080/ram/exerciser/README.md similarity index 70% rename from devices/pc8080/rom/exerciser/README.md rename to devices/pc8080/ram/exerciser/README.md index 1a385bb28f..279935e763 100644 --- a/devices/pc8080/rom/exerciser/README.md +++ b/devices/pc8080/ram/exerciser/README.md @@ -1,7 +1,9 @@ --- layout: page title: 8080 Exerciser Tests -permalink: /devices/pc8080/rom/exerciser/ +permalink: /devices/pc8080/ram/exerciser/ +redirect_from: + - /devices/pc8080/rom/exerciser/ --- 8080 Exerciser Tests @@ -12,4 +14,4 @@ permalink: /devices/pc8080/rom/exerciser/ * [8080PRE](8080PRE.MAC) Our [8080 Exerciser Test Machine](/devices/pc8080/machine/exerciser/) runs [8080EX1](8080EX1.MAC), -since it is the most comprehensive test and verifies strict compatibilty with the original Intel 8080. +since it is the most comprehensive test and verifies strict compatibility with the original Intel 8080. diff --git a/devices/pc8080/rom/exerciser/TEST.ASM b/devices/pc8080/ram/exerciser/TEST.ASM similarity index 100% rename from devices/pc8080/rom/exerciser/TEST.ASM rename to devices/pc8080/ram/exerciser/TEST.ASM diff --git a/devices/pc8080/rom/exerciser/TEST.json b/devices/pc8080/ram/exerciser/TEST.json similarity index 100% rename from devices/pc8080/rom/exerciser/TEST.json rename to devices/pc8080/ram/exerciser/TEST.json diff --git a/devices/pdp11/README.md b/devices/pdp11/README.md index 34379cd02d..5f96485890 100644 --- a/devices/pdp11/README.md +++ b/devices/pdp11/README.md @@ -9,10 +9,10 @@ PDP-11 Device Configurations [PDP-11 Machines](/devices/pdp11/machine/) powered by [PDPjs](/modules/pdp11/) rely on a variety of devices and resources, including: -* [Loaders](loader/) * [Machines](machine/) * [Panels](panel/) -* [ROMs](rom/) +* [RAM Images](ram/) +* [ROM Images](rom/) Our collection of sample machines includes a [PDP-11/70 with Front Panel](/devices/pdp11/machine/1170/panel/) and [PDP-11/70 with VT100 Terminal](/devices/pdp11/machine/1170/vt100/). diff --git a/devices/pdp11/machine/1120/README.md b/devices/pdp11/machine/1120/README.md index bde29e5ec9..e3a8b5b760 100644 --- a/devices/pdp11/machine/1120/README.md +++ b/devices/pdp11/machine/1120/README.md @@ -10,3 +10,4 @@ PDP-11/20 Machine Configurations PCjs is adding support the following PDP-11/20 configurations: * [PDP-11/20 Test Machine](/devices/pdp11/machine/1120/test/) ([Debugger](/devices/pdp11/machine/1120/test/debugger/)) +* [PDP-11/20 with 16Kb and Bootstrap Loader](/devices/pdp11/machine/1120/bootstrap/) ([Debugger](/devices/pdp11/machine/1120/bootstrap/debugger/)) diff --git a/devices/pdp11/machine/1120/bootstrap/README.md b/devices/pdp11/machine/1120/bootstrap/README.md new file mode 100644 index 0000000000..8e1fd45cac --- /dev/null +++ b/devices/pdp11/machine/1120/bootstrap/README.md @@ -0,0 +1,10 @@ +--- +layout: page +title: PDP-11/20 with 16Kb and Bootstrap Loader +permalink: /devices/pdp11/machine/1120/bootstrap/ +machines: + - id: test1120 + type: pdp11 +--- + +{% include machine.html id="test1120" %} diff --git a/devices/pdp11/machine/1120/bootstrap/debugger/README.md b/devices/pdp11/machine/1120/bootstrap/debugger/README.md new file mode 100644 index 0000000000..1932330c38 --- /dev/null +++ b/devices/pdp11/machine/1120/bootstrap/debugger/README.md @@ -0,0 +1,11 @@ +--- +layout: page +title: PDP-11/20 with 16Kb, Bootstrap Loader, and Debugger +permalink: /devices/pdp11/machine/1120/bootstrap/debugger/ +machines: + - id: test1120 + type: pdp11 + debugger: true +--- + +{% include machine.html id="test1120" %} diff --git a/devices/pdp11/machine/1120/bootstrap/debugger/machine.xml b/devices/pdp11/machine/1120/bootstrap/debugger/machine.xml new file mode 100644 index 0000000000..5126b2d90f --- /dev/null +++ b/devices/pdp11/machine/1120/bootstrap/debugger/machine.xml @@ -0,0 +1,13 @@ + + + + PDP-11/20: 16Kb, Bootstrap Loader, Debugger + + + + + + + + + diff --git a/devices/pdp11/machine/1120/bootstrap/machine.xml b/devices/pdp11/machine/1120/bootstrap/machine.xml new file mode 100644 index 0000000000..0c8fe4b0ea --- /dev/null +++ b/devices/pdp11/machine/1120/bootstrap/machine.xml @@ -0,0 +1,12 @@ + + + + PDP-11/20: 16Kb, Bootstrap Loader + + + + + + + + diff --git a/devices/pdp11/machine/1120/test/README.md b/devices/pdp11/machine/1120/test/README.md index 80613b2ecc..009eb0bdf4 100644 --- a/devices/pdp11/machine/1120/test/README.md +++ b/devices/pdp11/machine/1120/test/README.md @@ -1,6 +1,6 @@ --- layout: page -title: PDP-11/20 Test Machine +title: PDP-11/20 Test Machine permalink: /devices/pdp11/machine/1120/test/ machines: - id: test1120 diff --git a/devices/pdp11/machine/1120/test/debugger/machine.xml b/devices/pdp11/machine/1120/test/debugger/machine.xml index dc20b1d3dd..fa6e6760e6 100644 --- a/devices/pdp11/machine/1120/test/debugger/machine.xml +++ b/devices/pdp11/machine/1120/test/debugger/machine.xml @@ -1,11 +1,10 @@ - PDP-11/20 Test Machine with Debugger + PDP-11/20 Test Machine with 56Kb and Debugger - - - + + diff --git a/devices/pdp11/machine/1120/test/machine.xml b/devices/pdp11/machine/1120/test/machine.xml index 9e25546f25..f01522a86d 100644 --- a/devices/pdp11/machine/1120/test/machine.xml +++ b/devices/pdp11/machine/1120/test/machine.xml @@ -1,12 +1,12 @@ - PDP-11/20 Test Machine + PDP-11/20 Test Machine with 56Kb - - - + + + diff --git a/devices/pdp11/machine/1170/panel/debugger/machine.xml b/devices/pdp11/machine/1170/panel/debugger/machine.xml index e5f9739352..4fcdc1eab7 100644 --- a/devices/pdp11/machine/1170/panel/debugger/machine.xml +++ b/devices/pdp11/machine/1170/panel/debugger/machine.xml @@ -3,9 +3,8 @@ PDP-11/70 with Front Panel and Debugger - - - + + diff --git a/devices/pdp11/machine/1170/panel/machine.xml b/devices/pdp11/machine/1170/panel/machine.xml index e69c04ad27..463841a985 100644 --- a/devices/pdp11/machine/1170/panel/machine.xml +++ b/devices/pdp11/machine/1170/panel/machine.xml @@ -3,9 +3,8 @@ PDP-11/70 with Front Panel - - - + + diff --git a/devices/pdp11/machine/1170/test/debugger/machine.xml b/devices/pdp11/machine/1170/test/debugger/machine.xml index 7351f82e9b..5de64ce400 100644 --- a/devices/pdp11/machine/1170/test/debugger/machine.xml +++ b/devices/pdp11/machine/1170/test/debugger/machine.xml @@ -3,9 +3,8 @@ PDP-11/70 Test Machine with Debugger - - - + + diff --git a/devices/pdp11/machine/1170/test/machine.xml b/devices/pdp11/machine/1170/test/machine.xml index 779fee551b..87e3736ee8 100644 --- a/devices/pdp11/machine/1170/test/machine.xml +++ b/devices/pdp11/machine/1170/test/machine.xml @@ -3,9 +3,8 @@ PDP-11/70 Test Machine - - - + + diff --git a/devices/pdp11/machine/1170/vt100/debugger/machine.xml b/devices/pdp11/machine/1170/vt100/debugger/machine.xml index 3ef3ce4af9..71dce867a8 100644 --- a/devices/pdp11/machine/1170/vt100/debugger/machine.xml +++ b/devices/pdp11/machine/1170/vt100/debugger/machine.xml @@ -3,9 +3,8 @@ PDP-11/70 with Front Panel - - - + + diff --git a/devices/pdp11/machine/1170/vt100/machine.xml b/devices/pdp11/machine/1170/vt100/machine.xml index 2f93621789..69be2f3ee3 100644 --- a/devices/pdp11/machine/1170/vt100/machine.xml +++ b/devices/pdp11/machine/1170/vt100/machine.xml @@ -3,9 +3,8 @@ PDP-11/70 with Front Panel - - - + + diff --git a/devices/pdp11/ram/README.md b/devices/pdp11/ram/README.md new file mode 100644 index 0000000000..20cbf01d6e --- /dev/null +++ b/devices/pdp11/ram/README.md @@ -0,0 +1,11 @@ +--- +layout: page +title: PDP-11 RAM Images +permalink: /devices/pdp11/ram/ +--- + +PDP-11 RAM Images +----------------- + +* [PDP-11 Boot Demo](bootdemo/) +* [PDP-11 Bootstrap Loader](bootstrap/) diff --git a/devices/pdp11/ram/bootdemo/README.md b/devices/pdp11/ram/bootdemo/README.md new file mode 100644 index 0000000000..9633f08aa7 --- /dev/null +++ b/devices/pdp11/ram/bootdemo/README.md @@ -0,0 +1,15 @@ +--- +layout: page +title: PDP-11 Boot Demo +permalink: /devices/pdp11/ram/bootdemo/ +redirect_from: + - /devices/pdp11/rom/test/ +--- + +PDP-11 Boot Demo +---------------- + +[BOOTDEMO.MAC](bootdemo.mac) is based on [BOOT.MAC](http://skn.noip.me/pdp11/boot.mac) written by [Paul Nankervis](mailto:paulnank@hotmail.com)) + +[BOOTDEMO.MAC](bootdemo.mac) was cross-assembled with [MACRO11](https://github.com/shattered/macro11) to produce [BOOTDEMO.LST](bootdemo.lst), +which was then processed by [FileDump](/modules/filedump/) to produce [BOOTDEMO.JSON](bootdemo.json). diff --git a/devices/pdp11/rom/test/boot.json b/devices/pdp11/ram/bootdemo/bootdemo.json similarity index 100% rename from devices/pdp11/rom/test/boot.json rename to devices/pdp11/ram/bootdemo/bootdemo.json diff --git a/devices/pdp11/rom/test/boot.lst b/devices/pdp11/ram/bootdemo/bootdemo.lst similarity index 100% rename from devices/pdp11/rom/test/boot.lst rename to devices/pdp11/ram/bootdemo/bootdemo.lst diff --git a/devices/pdp11/rom/test/boot.mac b/devices/pdp11/ram/bootdemo/bootdemo.mac similarity index 100% rename from devices/pdp11/rom/test/boot.mac rename to devices/pdp11/ram/bootdemo/bootdemo.mac diff --git a/devices/pdp11/ram/bootdemo/makefile b/devices/pdp11/ram/bootdemo/makefile new file mode 100644 index 0000000000..d371c4914c --- /dev/null +++ b/devices/pdp11/ram/bootdemo/makefile @@ -0,0 +1,11 @@ +# +# Don't have macro11? Make yourself a copy from https://github.com/shattered/macro11 +# + +all: bootdemo.json + +bootdemo.lst: bootdemo.mac + macro11 bootdemo.mac -l bootdemo.lst + +bootdemo.json: bootdemo.lst + node ../../../../modules/filedump/bin/filedump --file=bootdemo.lst --format=octal --output=bootdemo.json --overwrite diff --git a/devices/pdp11/loader/README.md b/devices/pdp11/ram/bootstrap/README.md similarity index 93% rename from devices/pdp11/loader/README.md rename to devices/pdp11/ram/bootstrap/README.md index 1def583b0c..2e2f0735ed 100644 --- a/devices/pdp11/loader/README.md +++ b/devices/pdp11/ram/bootstrap/README.md @@ -1,11 +1,11 @@ --- layout: page -title: PDP-11 Loaders -permalink: /devices/pdp11/loader/ +title: PDP-11 Bootstrap Loader +permalink: /devices/pdp11/ram/bootstrap/ --- -PDP-11 Loaders --------------- +PDP-11 Bootstrap Loader +----------------------- The blog post "[PDP-11 Paper Tape BASIC](http://avitech.com.au/?page_id=709)" describes the *Bootstrap Loader*, a small program used to load the *Absolute Loader*, which in turn loads the *PDP-11 BASIC Paper Tape*. diff --git a/devices/pdp11/loader/bootstrap.json b/devices/pdp11/ram/bootstrap/bootstrap.json similarity index 86% rename from devices/pdp11/loader/bootstrap.json rename to devices/pdp11/ram/bootstrap/bootstrap.json index edc54ec3eb..0120e2f27d 100644 --- a/devices/pdp11/loader/bootstrap.json +++ b/devices/pdp11/ram/bootstrap/bootstrap.json @@ -1,4 +1,4 @@ -{"words":[ +{"load":0x3FE4,"exec":0x3FE4,"words":[ 0x1DC1 /*016701*/,0x0016 /*000026*/,0x15C2 /*012702*/,0x00EA /*000352*/,0x0A89 /*005211*/,0x8BC9 /*105711*/,0x80FE /*100376*/,0x9C72 /*116162*/, 0x0002 /*000002*/,0x3F00 /*037400*/,0x0AB7 /*005267*/,0xFFEE /*177756*/,0x01F5 /*000765*/,0xFF68 /*177550*/] -} \ No newline at end of file +} diff --git a/devices/pdp11/loader/bootstrap.lst b/devices/pdp11/ram/bootstrap/bootstrap.lst similarity index 100% rename from devices/pdp11/loader/bootstrap.lst rename to devices/pdp11/ram/bootstrap/bootstrap.lst diff --git a/devices/pdp11/rom/README.md b/devices/pdp11/rom/README.md index c33d8afe3f..d43e622602 100644 --- a/devices/pdp11/rom/README.md +++ b/devices/pdp11/rom/README.md @@ -1,10 +1,10 @@ --- layout: page -title: PDP-11 ROMs +title: PDP-11 ROM Images permalink: /devices/pdp11/rom/ --- -PDP-11 ROMs ------------ +PDP-11 ROM Images +----------------- -* [Test ROM](test/) (based on [BOOT.MAC](http://skn.noip.me/pdp11/boot.mac) written by [Paul Nankervis](mailto:paulnank@hotmail.com)) +Any ROM images added to the project will be stored here. diff --git a/devices/pdp11/rom/test/README.md b/devices/pdp11/rom/test/README.md deleted file mode 100644 index 343b559540..0000000000 --- a/devices/pdp11/rom/test/README.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -layout: page -title: PDP-11 Test ROM -permalink: /devices/pdp11/rom/test/ ---- - -PDP-11 Test ROM ---------------- - -This isn't a ROM so much as a read-only image that can be loaded in RAM by the ROM component. - -[BOOT.MAC](boot.mac) was cross-assembled with [MACRO11](https://github.com/shattered/macro11) to produce [BOOT.LST](boot.lst), -which was then processed by [FileDump](/modules/filedump/) to produce [BOOT.JSON](boot.json). diff --git a/devices/pdp11/rom/test/makefile b/devices/pdp11/rom/test/makefile deleted file mode 100644 index ea582823e7..0000000000 --- a/devices/pdp11/rom/test/makefile +++ /dev/null @@ -1,11 +0,0 @@ -# -# Don't have macro11? Make yourself a copy from https://github.com/shattered/macro11 -# - -all: boot.json - -boot.lst: boot.mac - macro11 boot.mac -l boot.lst - -boot.json: boot.lst - node ../../../../modules/filedump/bin/filedump --file=boot.lst --format=octal --output=boot.json --overwrite diff --git a/docs/pcx86/examples/components.css b/docs/pcx86/examples/components.css index dc7dbc154c..6fa42a7a70 100644 --- a/docs/pcx86/examples/components.css +++ b/docs/pcx86/examples/components.css @@ -85,7 +85,7 @@ } .pcjs-description, .pcjs-status { font-size: x-small; - line-height: 2em; + line-height: 2.8em; } .pcjs-key { border: 1px solid black; diff --git a/docs/pcx86/examples/components.xsl b/docs/pcx86/examples/components.xsl index a7246cf441..0d52ee7d3e 100644 --- a/docs/pcx86/examples/components.xsl +++ b/docs/pcx86/examples/components.xsl @@ -580,9 +580,9 @@ null - + - + 0 @@ -610,7 +610,7 @@ - ,model:'',stepping:'',fpu:,cycles:,multiplier:,autoStart:,resetAddr:,csStart:,csInterval:,csStop: + ,model:'',stepping:'',fpu:,cycles:,multiplier:,autoStart:,addrReset:,csStart:,csInterval:,csStop: @@ -931,16 +931,10 @@ - - - - false - - rom - ,addr:,size:,alias:,file:'',notify:'',writable: + ,addr:,size:,alias:,file:'',notify:'' @@ -964,6 +958,24 @@ 0 + + + + + + + + + + null + + + + + + null + + @@ -973,7 +985,7 @@ ram - ,addr:,size:,test: + ,addr:,size:,file:'',load:,exec:,test: diff --git a/modules/pc8080/lib/ram.js b/modules/pc8080/lib/ram.js index f2920f65ba..42b5692ec1 100644 --- a/modules/pc8080/lib/ram.js +++ b/modules/pc8080/lib/ram.js @@ -31,11 +31,12 @@ if (NODE) { var str = require("../../shared/lib/strlib"); var web = require("../../shared/lib/weblib"); + var DumpAPI = require("../../shared/lib/dumpapi"); var Component = require("../../shared/lib/component"); var State = require("../../shared/lib/state"); var PC8080 = require("./defines"); + var CPUDef8080 = require("./cpudef"); var Memory8080 = require("./memory"); - var ROM8080 = require("./rom"); } /** @@ -45,6 +46,9 @@ if (NODE) { * * addr: starting physical address of RAM (default is 0) * size: amount of RAM, in bytes (default is 0, which means defer to motherboard switch settings) + * file: name of optional data file to load into RAM (default is "") + * load: optional file load address (overrides any load address specified in the data file; default is null) + * exec: optional file exec address (overrides any exec address specified in the data file; default is null) * * NOTE: We make a note of the specified size, but no memory is initially allocated for the RAM until the * Computer component calls powerUp(). @@ -57,14 +61,66 @@ function RAM8080(parmsRAM) { Component.call(this, "RAM", parmsRAM, RAM8080); + this.abInit = null; + this.aSymbols = null; + this.addrRAM = parmsRAM['addr']; this.sizeRAM = parmsRAM['size']; + this.nFileLoad = parmsRAM['load']; + this.nFileExec = parmsRAM['exec']; + this.fInstalled = (!!this.sizeRAM); // 0 is the default value for 'size' when none is specified this.fAllocated = false; + + this.sFilePath = parmsRAM['file']; + this.sFileName = str.getBaseName(this.sFilePath); + + if (this.sFilePath) { + var sFileURL = this.sFilePath; + if (DEBUG) this.log('load("' + sFileURL + '")'); + /* + * If the selected data file has a ".json" extension, then we assume it's pre-converted + * JSON-encoded data, so we load it as-is; ditto for ROM files with a ".hex" extension. + * Otherwise, we ask our server-side converter to return the file in a JSON-compatible format. + */ + var sFileExt = str.getExtension(this.sFileName); + if (sFileExt != DumpAPI.FORMAT.JSON && sFileExt != DumpAPI.FORMAT.HEX) { + sFileURL = web.getHost() + DumpAPI.ENDPOINT + '?' + DumpAPI.QUERY.FILE + '=' + this.sFilePath + '&' + DumpAPI.QUERY.FORMAT + '=' + DumpAPI.FORMAT.BYTES + '&' + DumpAPI.QUERY.DECIMAL + '=true'; + } + var ram = this; + web.getResource(sFileURL, null, true, function(sURL, sResponse, nErrorCode) { + ram.doneLoad(sURL, sResponse, nErrorCode); + }); + } } Component.subclass(RAM8080); +RAM8080.CPM = { + BIOS: { + VECTOR: 0x0000 + }, + BDOS: { + VECTOR: 0x0005, + FUNC: { // function number (specified in regC) + RESET: 0x00, + CON_READ: 0x01, // output: A = L = ASCII character + CON_WRITE: 0x02, // input: E = ASCII character + AUX_READ: 0x03, // output: A = L = ASCII character + AUX_WRITE: 0x04, // input: E = ASCII character + PRN_WRITE: 0x05, // input: E = ASCII character + MEM_SIZE: 0x06, // output: base address of CCP (Console Command Processor), but which register? (perhaps moot if this was CP/M 1.3 only...) + CON_IO: 0x06, // input: E = ASCII character (or 0xFF to return ASCII character in A) + GET_IOBYTE: 0x07, + SET_IOBYTE: 0x08, + STR_WRITE: 0x09 // input: DE = address of string + } + }, + INIT: 0x100 +}; + +RAM8080.CPM.VECTORS = [RAM8080.CPM.BIOS.VECTOR, RAM8080.CPM.BDOS.VECTOR]; + /** * initBus(cmp, bus, cpu, dbg) * @@ -79,7 +135,7 @@ RAM8080.prototype.initBus = function(cmp, bus, cpu, dbg) this.bus = bus; this.cpu = cpu; this.dbg = dbg; - this.setReady(); + this.initRAM(); }; /** @@ -92,15 +148,12 @@ RAM8080.prototype.initBus = function(cmp, bus, cpu, dbg) */ RAM8080.prototype.powerUp = function(data, fRepower) { - if (!fRepower) { - /* - * The Computer powers up the CPU last, at which point CPUState state is restored, - * which includes the Bus state, and since we use the Bus to allocate all our memory, - * memory contents are already restored for us, so we don't need the usual restore - * logic. We just need to call reset(), to allocate memory for the RAM. - */ - this.reset(); - } + /* + * The Computer powers up the CPU last, at which point CPUState state is restored, + * which includes the Bus state, and since we use the Bus to allocate all our memory, + * memory contents are already restored for us, so we don't need the usual restore + * logic. + */ return true; }; @@ -120,51 +173,200 @@ RAM8080.prototype.powerDown = function(fSave, fShutdown) * our memory, memory contents are already saved for us, so we don't need the usual * save logic. */ - return (fSave)? this.save() : true; + return true; }; /** - * reset() + * doneLoad(sURL, sData, nErrorCode) * * @this {RAM8080} + * @param {string} sURL + * @param {string} sData + * @param {number} nErrorCode (response from server if anything other than 200) */ -RAM8080.prototype.reset = function() +RAM8080.prototype.doneLoad = function(sURL, sData, nErrorCode) +{ + if (nErrorCode) { + this.notice("Unable to load RAM resource (error " + nErrorCode + ": " + sURL + ")"); + return; + } + + Component.addMachineResource(this.idMachine, sURL, sData); + + var resource = web.parseMemoryResource(sURL, sData); + if (resource) { + this.abInit = resource.aBytes; + this.aSymbols = resource.aSymbols; + if (this.nFileLoad == null && resource.nLoad != null) this.nFileLoad = resource.nLoad; + if (this.nFileExec == null && resource.nExec != null) this.nFileExec = resource.nExec; + } else { + this.sFilePath = null; + } + this.initRAM(); +}; + +/** + * initRAM() + * + * This function is called by both initBus() and doneLoad(), but it cannot copy the initial data into place + * until after initBus() has received the Bus component AND doneLoad() has received the data. When both those + * criteria are satisfied, the component becomes "ready". + * + * @this {RAM8080} + */ +RAM8080.prototype.initRAM = function() { if (!this.fAllocated && this.sizeRAM) { if (this.bus.addMemory(this.addrRAM, this.sizeRAM, Memory8080.TYPE.RAM)) { this.fAllocated = true; } } - if (!this.fAllocated) { - Component.error("No RAM allocated"); + if (!this.isReady()) { + if (!this.fAllocated) { + Component.error("No RAM allocated"); + } + else if (this.sFilePath) { + /* + * Too early... + */ + if (!this.abInit || !this.bus) return; + + var addr = this.addrRAM; + if (this.nFileLoad !== null) addr = this.nFileLoad; + for (var i = 0; i < this.abInit.length; i++) { + this.bus.setByteDirect(addr + i, this.abInit[i]); + } + + if (this.nFileExec !== null) { + /* + * Here's where we enable our "Fake CP/M" support, triggered by the user loading a "writable" ROM image + * at offset 0x100. Fake CP/M support works by installing HLT opcodes at well-known CP/M addresses + * (namely, 0x0000, which is the CP/M reset vector, and 0x0005, which is the CP/M system call vector) and + * then telling the CPU to call us whenever a HLT occurs, so we can check PC for one of these addresses. + */ + if (this.nFileExec == RAM8080.CPM.INIT) { + for (i = 0; i < RAM8080.CPM.VECTORS.length; i++) { + this.bus.setByteDirect(RAM8080.CPM.VECTORS[i], CPUDef8080.OPCODE.HLT); + } + + this.cpu.addHaltCheck(function(rom) { + return function(addr) { + return rom.checkCPMVector(addr) + }; + }(this)); + } + this.cpu.setReset(this.nFileExec); + } + + /* + * TODO: Consider an option to retain this data and give the user a way of restoring the initial contents. + */ + delete this.abInit; + } + this.setReady(); } }; /** - * save() + * reset() * - * This implements save support for the RAM8080 component. + * @this {RAM8080} + */ +RAM8080.prototype.reset = function() +{ + /* + * If you want to zero RAM on reset, then this would be a good place to do it. + */ +}; + +/** + * checkCPMVector(addr) * * @this {RAM8080} - * @return {Object} + * @param {number} addr (of the HLT opcode) + * @return {boolean} true if special processing performed, false if not */ -RAM8080.prototype.save = function() +RAM8080.prototype.checkCPMVector = function(addr) { - return null; + var i = RAM8080.CPM.VECTORS.indexOf(addr); + if (i >= 0) { + var fCPM = false; + var cpu = this.cpu; + var dbg = this.dbg; + if (addr == RAM8080.CPM.BDOS.VECTOR) { + fCPM = true; + switch(cpu.regC) { + case RAM8080.CPM.BDOS.FUNC.CON_WRITE: + this.writeCPMString(this.getCPMChar(cpu.regE)); + break; + case RAM8080.CPM.BDOS.FUNC.STR_WRITE: + this.writeCPMString(this.getCPMString(cpu.getDE(), '$')); + break; + default: + fCPM = false; + break; + } + } + if (fCPM) { + CPUDef8080.opRET.call(cpu); // for recognized calls, automatically return + } + else if (dbg) { + this.println("\nCP/M vector " + str.toHexWord(addr)); + cpu.setPC(addr); // this is purely for the Debugger's benefit, to show the HLT + dbg.stopCPU(); + } + return true; + } + return false; }; + /** - * restore(data) + * getCPMChar(ch) * - * This implements restore support for the RAM8080 component. + * @this {RAM8080} + * @param {number} ch + * @return {string} + */ +RAM8080.prototype.getCPMChar = function(ch) +{ + return String.fromCharCode(ch); +}; + +/** + * getCPMString(addr, chEnd) * * @this {RAM8080} - * @param {Object} data - * @return {boolean} true if successful, false if failure + * @param {number} addr (of a string) + * @param {string|number} [chEnd] (terminating character, default is 0) + * @return {string} */ -RAM8080.prototype.restore = function(data) +RAM8080.prototype.getCPMString = function(addr, chEnd) { - return true; + var s = ""; + var cchMax = 255; + var bEnd = chEnd && chEnd.length && chEnd.charCodeAt(0) || chEnd || 0; + while (cchMax--) { + var b = this.cpu.getByte(addr++); + if (b == bEnd) break; + s += String.fromCharCode(b); + } + return s; +}; + +/** + * writeCPMString(s) + * + * @this {RAM8080} + * @param {string} s + */ +RAM8080.prototype.writeCPMString = function(s) +{ + s = s.replace(/\r/g, ''); + if (this.controlPrint) { + this.controlPrint.value += s; + this.controlPrint.scrollTop = this.controlPrint.scrollHeight; + } }; /** diff --git a/modules/pc8080/lib/rom.js b/modules/pc8080/lib/rom.js index 2e02eae080..a25ecfcae6 100644 --- a/modules/pc8080/lib/rom.js +++ b/modules/pc8080/lib/rom.js @@ -34,7 +34,6 @@ if (NODE) { var DumpAPI = require("../../shared/lib/dumpapi"); var Component = require("../../shared/lib/component"); var PC8080 = require("./defines"); - var CPUDef8080 = require("./cpudef"); var Memory8080 = require("./memory"); } @@ -47,7 +46,6 @@ if (NODE) { * size: amount of ROM, in bytes * alias: physical alias address (null if none) * file: name of ROM data file - * writable: true to make ROM writable (default is false) * * NOTE: The ROM data will not be copied into place until the Bus is ready (see initBus()) AND the * ROM data file has finished loading (see doneLoad()). @@ -55,13 +53,6 @@ if (NODE) { * Also, while the size parameter may seem redundant, I consider it useful to confirm that the ROM you received * is the ROM you expected. * - * Finally, while making ROM "writable" may seem a contradiction in terms, I want to be able to load selected - * binary files into memory purely for testing purposes, and the RAM component has no "file" option, so the - * simplest solution was to add the option to load binary files into memory as "writable" ROMs. - * - * Moreover, if a "writable" ROM is installed at addr 0x100, that triggers our "Fake CP/M" support, providing - * a quick-and-dirty means of loading simple CP/M test binaries. See addROM() for details. - * * @constructor * @extends Component * @param {Object} parmsROM @@ -73,7 +64,7 @@ function ROM8080(parmsROM) this.abROM = null; this.addrROM = parmsROM['addr']; this.sizeROM = parmsROM['size']; - this.fWritable = parmsROM['writable']; + /* * The new 'alias' property can now be EITHER a single physical address (like 'addr') OR an array of @@ -112,30 +103,6 @@ function ROM8080(parmsROM) Component.subclass(ROM8080); -ROM8080.CPM = { - BIOS: { - VECTOR: 0x0000 - }, - BDOS: { - VECTOR: 0x0005, - FUNC: { // function number (specified in regC) - RESET: 0x00, - CON_READ: 0x01, // output: A = L = ASCII character - CON_WRITE: 0x02, // input: E = ASCII character - AUX_READ: 0x03, // output: A = L = ASCII character - AUX_WRITE: 0x04, // input: E = ASCII character - PRN_WRITE: 0x05, // input: E = ASCII character - MEM_SIZE: 0x06, // output: base address of CCP (Console Command Processor), but which register? (perhaps moot if this was CP/M 1.3 only...) - CON_IO: 0x06, // input: E = ASCII character (or 0xFF to return ASCII character in A) - GET_IOBYTE: 0x07, - SET_IOBYTE: 0x08, - STR_WRITE: 0x09 // input: DE = address of string - } - } -}; - -ROM8080.CPM.VECTORS = [ROM8080.CPM.BIOS.VECTOR, ROM8080.CPM.BDOS.VECTOR]; - /* * NOTE: There's currently no need for this component to have a reset() function, since * once the ROM data is loaded, it can't be changed, so there's nothing to reinitialize. @@ -350,31 +317,12 @@ ROM8080.prototype.copyROM = function() */ ROM8080.prototype.addROM = function(addr) { - if (this.bus.addMemory(addr, this.sizeROM, this.fWritable? Memory8080.TYPE.RAM : Memory8080.TYPE.ROM)) { + if (this.bus.addMemory(addr, this.sizeROM, Memory8080.TYPE.ROM)) { if (DEBUG) this.log("addROM(): copying ROM to " + str.toHexLong(addr) + " (" + str.toHexLong(this.abROM.length) + " bytes)"); var i; for (i = 0; i < this.abROM.length; i++) { this.bus.setByteDirect(addr + i, this.abROM[i]); } - if (this.fWritable && addr == 0x100) { - /* - * Here's where we enable our "Fake CP/M" support, triggered by the user loading a "writable" ROM image - * at offset 0x100. Fake CP/M support works by installing HLT opcodes at well-known CP/M addresses - * (namely, 0x0000, which is the CP/M reset vector, and 0x0005, which is the CP/M system call vector) and - * then telling the CPU to call us whenever a HLT occurs, so we can check PC for one of these addresses. - */ - for (i = 0; i < ROM8080.CPM.VECTORS.length; i++) { - this.bus.setByteDirect(ROM8080.CPM.VECTORS[i], CPUDef8080.OPCODE.HLT); - } - - this.cpu.addHaltCheck(function(rom) { - return function(addr) { - return rom.checkCPMVector(addr) - }; - }(this)); - - this.cpu.setReset(addr); - } return true; } /* @@ -383,96 +331,6 @@ ROM8080.prototype.addROM = function(addr) return false; }; -/** - * checkCPMVector(addr) - * - * @this {ROM8080} - * @param {number} addr (of the HLT opcode) - * @return {boolean} true if special processing performed, false if not - */ -ROM8080.prototype.checkCPMVector = function(addr) -{ - var i = ROM8080.CPM.VECTORS.indexOf(addr); - if (i >= 0) { - var fCPM = false; - var cpu = this.cpu; - var dbg = this.dbg; - if (addr == ROM8080.CPM.BDOS.VECTOR) { - fCPM = true; - switch(cpu.regC) { - case ROM8080.CPM.BDOS.FUNC.CON_WRITE: - this.writeCPMString(this.getCPMChar(cpu.regE)); - break; - case ROM8080.CPM.BDOS.FUNC.STR_WRITE: - this.writeCPMString(this.getCPMString(cpu.getDE(), '$')); - break; - default: - fCPM = false; - break; - } - } - if (fCPM) { - CPUDef8080.opRET.call(cpu); // for recognized calls, automatically return - } - else if (dbg) { - this.println("\nCP/M vector " + str.toHexWord(addr)); - cpu.setPC(addr); // this is purely for the Debugger's benefit, to show the HLT - dbg.stopCPU(); - } - return true; - } - return false; -}; - - -/** - * getCPMChar(ch) - * - * @this {ROM8080} - * @param {number} ch - * @return {string} - */ -ROM8080.prototype.getCPMChar = function(ch) -{ - return String.fromCharCode(ch); -}; - -/** - * getCPMString(addr, chEnd) - * - * @this {ROM8080} - * @param {number} addr (of a string) - * @param {string|number} [chEnd] (terminating character, default is 0) - * @return {string} - */ -ROM8080.prototype.getCPMString = function(addr, chEnd) -{ - var s = ""; - var cchMax = 255; - var bEnd = chEnd && chEnd.length && chEnd.charCodeAt(0) || chEnd || 0; - while (cchMax--) { - var b = this.cpu.getByte(addr++); - if (b == bEnd) break; - s += String.fromCharCode(b); - } - return s; -}; - -/** - * writeCPMString(s) - * - * @this {ROM8080} - * @param {string} s - */ -ROM8080.prototype.writeCPMString = function(s) -{ - s = s.replace(/\r/g, ''); - if (this.controlPrint) { - this.controlPrint.value += s; - this.controlPrint.scrollTop = this.controlPrint.scrollHeight; - } -}; - /** * cloneROM(addr) * diff --git a/modules/pdp11/lib/cpustate.js b/modules/pdp11/lib/cpustate.js index 3076be152b..a26e7a1b2c 100644 --- a/modules/pdp11/lib/cpustate.js +++ b/modules/pdp11/lib/cpustate.js @@ -50,7 +50,7 @@ if (NODE) { * The CPUStatePDP11 class uses the following (parmsCPU) properties: * * model: a number (eg, 1170) that should match one of the PDP11.MODEL_* values - * resetAddr: reset address (default is 0) + * addrReset: reset address (default is 0) * * This extends the CPU class and passes any remaining parmsCPU properties to the CPU class * constructor, along with a default speed (cycles per second) based on the specified (or default) @@ -63,7 +63,7 @@ if (NODE) { function CPUStatePDP11(parmsCPU) { this.model = +parmsCPU['model'] || PDP11.MODEL_1170; - this.resetAddr = parmsCPU['resetAddr'] || 0; + this.addrReset = parmsCPU['addrReset'] || 0; var nCyclesDefault = 0; switch(this.model) { @@ -175,7 +175,7 @@ CPUStatePDP11.prototype.initRegs = function() this.flagN = 0x8000; // PSW N bit this.regPSW = 0x000f; // PSW other bits (TODO: What's the point of setting the flag bits here, too?) this.regsGen = [ // General R0 - R7 - 0, 0, 0, 0, 0, 0, 0, this.resetAddr + 0, 0, 0, 0, 0, 0, 0, this.addrReset ]; this.regsAlt = [ // Alternate R0 - R5 0, 0, 0, 0, 0, 0 @@ -359,6 +359,18 @@ CPUStatePDP11.prototype.setMMR3 = function(newMMR3) } }; +/** + * setReset(addr) + * + * @this {CPUStatePDP11} + * @param {number} addr + */ +CPUStatePDP11.prototype.setReset = function(addr) +{ + this.addrReset = addr; + this.setPC(addr); +}; + /** * getChecksum() * diff --git a/modules/pdp11/lib/ram.js b/modules/pdp11/lib/ram.js index 861b29cdbe..5d2a64ea0a 100644 --- a/modules/pdp11/lib/ram.js +++ b/modules/pdp11/lib/ram.js @@ -35,11 +35,11 @@ if (NODE) { var str = require("../../shared/lib/strlib"); var web = require("../../shared/lib/weblib"); + var DumpAPI = require("../../shared/lib/dumpapi"); var Component = require("../../shared/lib/component"); var State = require("../../shared/lib/state"); var PDP11 = require("./defines"); var MemoryPDP11 = require("./memory"); - var ROMPDP11 = require("./rom"); } /** @@ -49,6 +49,9 @@ if (NODE) { * * addr: starting physical address of RAM (default is 0) * size: amount of RAM, in bytes (default is 0, which means defer to motherboard switch settings) + * file: name of optional data file to load into RAM (default is "") + * load: optional file load address (overrides any load address specified in the data file; default is null) + * exec: optional file exec address (overrides any exec address specified in the data file; default is null) * * NOTE: We make a note of the specified size, but no memory is initially allocated for the RAM until the * Computer component calls powerUp(). @@ -61,10 +64,37 @@ function RAMPDP11(parmsRAM) { Component.call(this, "RAM", parmsRAM, RAMPDP11); + this.abInit = null; + this.aSymbols = null; + this.addrRAM = parmsRAM['addr']; this.sizeRAM = parmsRAM['size']; + this.nFileLoad = parmsRAM['load']; + this.nFileExec = parmsRAM['exec']; + this.fInstalled = (!!this.sizeRAM); // 0 is the default value for 'size' when none is specified this.fAllocated = false; + + this.sFilePath = parmsRAM['file']; + this.sFileName = str.getBaseName(this.sFilePath); + + if (this.sFilePath) { + var sFileURL = this.sFilePath; + if (DEBUG) this.log('load("' + sFileURL + '")'); + /* + * If the selected data file has a ".json" extension, then we assume it's pre-converted + * JSON-encoded data, so we load it as-is; ditto for ROM files with a ".hex" extension. + * Otherwise, we ask our server-side converter to return the file in a JSON-compatible format. + */ + var sFileExt = str.getExtension(this.sFileName); + if (sFileExt != DumpAPI.FORMAT.JSON && sFileExt != DumpAPI.FORMAT.HEX) { + sFileURL = web.getHost() + DumpAPI.ENDPOINT + '?' + DumpAPI.QUERY.FILE + '=' + this.sFilePath + '&' + DumpAPI.QUERY.FORMAT + '=' + DumpAPI.FORMAT.BYTES + '&' + DumpAPI.QUERY.DECIMAL + '=true'; + } + var ram = this; + web.getResource(sFileURL, null, true, function(sURL, sResponse, nErrorCode) { + ram.doneLoad(sURL, sResponse, nErrorCode); + }); + } } Component.subclass(RAMPDP11); @@ -86,24 +116,6 @@ RAMPDP11.prototype.initBus = function(cmp, bus, cpu, dbg) this.initRAM(); }; -/** - * initRAM() - * - * @this {RAMPDP11} - */ -RAMPDP11.prototype.initRAM = function() -{ - if (!this.fAllocated && this.sizeRAM) { - if (this.bus.addMemory(this.addrRAM, this.sizeRAM, MemoryPDP11.TYPE.RAM)) { - this.fAllocated = true; - } - } - if (!this.fAllocated) { - Component.error("No RAM allocated"); - } - this.setReady(); -}; - /** * powerUp(data, fRepower) * @@ -142,6 +154,80 @@ RAMPDP11.prototype.powerDown = function(fSave, fShutdown) return true; }; +/** + * doneLoad(sURL, sData, nErrorCode) + * + * @this {RAMPDP11} + * @param {string} sURL + * @param {string} sData + * @param {number} nErrorCode (response from server if anything other than 200) + */ +RAMPDP11.prototype.doneLoad = function(sURL, sData, nErrorCode) +{ + if (nErrorCode) { + this.notice("Unable to load RAM resource (error " + nErrorCode + ": " + sURL + ")"); + return; + } + + Component.addMachineResource(this.idMachine, sURL, sData); + + var resource = web.parseMemoryResource(sURL, sData); + if (resource) { + this.abInit = resource.aBytes; + this.aSymbols = resource.aSymbols; + if (this.nFileLoad == null && resource.nLoad != null) this.nFileLoad = resource.nLoad; + if (this.nFileExec == null && resource.nExec != null) this.nFileExec = resource.nExec; + } else { + this.sFilePath = null; + } + this.initRAM(); +}; + +/** + * initRAM() + * + * This function is called by both initBus() and doneLoad(), but it cannot copy the initial data into place + * until after initBus() has received the Bus component AND doneLoad() has received the data. When both those + * criteria are satisfied, the component becomes "ready". + * + * @this {RAMPDP11} + */ +RAMPDP11.prototype.initRAM = function() +{ + if (!this.fAllocated && this.sizeRAM) { + if (this.bus.addMemory(this.addrRAM, this.sizeRAM, MemoryPDP11.TYPE.RAM)) { + this.fAllocated = true; + } + } + if (!this.isReady()) { + if (!this.fAllocated) { + Component.error("No RAM allocated"); + } + else if (this.sFilePath) { + /* + * Too early... + */ + if (!this.abInit || !this.bus) return; + + var addr = this.addrRAM; + if (this.nFileLoad !== null) addr = this.nFileLoad; + for (var i = 0; i < this.abInit.length; i++) { + this.bus.setByteDirect(addr + i, this.abInit[i]); + } + + if (this.nFileExec !== null) { + this.cpu.setReset(this.nFileExec); + } + + /* + * TODO: Consider an option to retain this data and give the user a way of restoring the initial contents. + */ + delete this.abInit; + } + this.setReady(); + } +}; + /** * reset() * diff --git a/modules/pdp11/lib/rom.js b/modules/pdp11/lib/rom.js index 3e26f4bbda..300387fbea 100644 --- a/modules/pdp11/lib/rom.js +++ b/modules/pdp11/lib/rom.js @@ -50,7 +50,6 @@ if (NODE) { * size: amount of ROM, in bytes * alias: physical alias address (null if none) * file: name of ROM data file - * writable: true to make ROM writable (default is false) * * NOTE: The ROM data will not be copied into place until the Bus is ready (see initBus()) AND the * ROM data file has finished loading (see doneLoad()). @@ -58,10 +57,6 @@ if (NODE) { * Also, while the size parameter may seem redundant, I consider it useful to confirm that the ROM you received * is the ROM you expected. * - * Finally, while making ROM "writable" may seem a contradiction in terms, I want to be able to load selected - * binary files into memory purely for testing purposes, and the RAM component has no "file" option, so the - * simplest solution was to add the option to load binary files into memory as "writable" ROMs. - * * @constructor * @extends Component * @param {Object} parmsROM @@ -70,10 +65,11 @@ function ROMPDP11(parmsROM) { Component.call(this, "ROM", parmsROM, ROMPDP11); - this.abROM = null; + this.abInit = null; + this.aSymbols = null; + this.addrROM = parmsROM['addr']; this.sizeROM = parmsROM['size']; - this.fWritable = parmsROM['writable']; /* * The new 'alias' property can now be EITHER a single physical address (like 'addr') OR an array of @@ -184,87 +180,28 @@ ROMPDP11.prototype.powerDown = function(fSave, fShutdown) }; /** - * doneLoad(sURL, sROMData, nErrorCode) + * doneLoad(sURL, sData, nErrorCode) * * @this {ROMPDP11} * @param {string} sURL - * @param {string} sROMData + * @param {string} sData * @param {number} nErrorCode (response from server if anything other than 200) */ -ROMPDP11.prototype.doneLoad = function(sURL, sROMData, nErrorCode) +ROMPDP11.prototype.doneLoad = function(sURL, sData, nErrorCode) { if (nErrorCode) { - this.notice("Unable to load system ROM (error " + nErrorCode + ": " + sURL + ")"); + this.notice("Unable to load ROM resource (error " + nErrorCode + ": " + sURL + ")"); return; } - Component.addMachineResource(this.idMachine, sURL, sROMData); - - var i; - if (sROMData.charAt(0) == "[" || sROMData.charAt(0) == "{") { - try { - /* - * The most likely source of any exception will be here: parsing the JSON-encoded ROM. - */ - var a, ib; - var rom = eval("(" + sROMData + ")"); - - if (a = rom['bytes']) { - this.abROM = a; - } - else if (a = rom['words']) { - /* - * Convert all WORDs into BYTEs, so that subsequent code only has to deal with abROM. - */ - this.abROM = new Array(a.length * 2); - for (i = 0, ib = 0; i < a.length; i++) { - this.abROM[ib++] = a[i] & 0xff; - this.abROM[ib++] = (a[i] >> 8) & 0xff; - this.assert(!(a[i] & ~0xffff)); - } - } - else if (a = rom['data']) { - /* - * Convert all DWORDs into BYTEs, so that subsequent code only has to deal with abROM. - */ - this.abROM = new Array(a.length * 4); - for (i = 0, ib = 0; i < a.length; i++) { - this.abROM[ib++] = a[i] & 0xff; - this.abROM[ib++] = (a[i] >> 8) & 0xff; - this.abROM[ib++] = (a[i] >> 16) & 0xff; - this.abROM[ib++] = (a[i] >> 24) & 0xff; - } - } - else { - this.abROM = rom; - } - - this.aSymbols = rom['symbols']; + Component.addMachineResource(this.idMachine, sURL, sData); - if (!this.abROM.length) { - Component.error("Empty ROM: " + sURL); - return; - } - else if (this.abROM.length == 1) { - Component.error(this.abROM[0]); - return; - } - } catch (e) { - this.notice("ROM data error: " + e.message); - return; - } - } - else { - /* - * Parse the ROM data manually; we assume it's in "simplified" hex form (a series of hex byte-values - * separated by whitespace). - */ - var sHexData = sROMData.replace(/\n/gm, " ").replace(/ +$/, ""); - var asHexData = sHexData.split(" "); - this.abROM = new Array(asHexData.length); - for (i = 0; i < asHexData.length; i++) { - this.abROM[i] = str.parseInt(asHexData[i], 16); - } + var resource = web.parseMemoryResource(sURL, sData); + if (resource) { + this.abInit = resource.aBytes; + this.aSymbols = resource.aSymbols; + } else { + this.sFilePath = null; } this.initROM(); }; @@ -272,33 +209,35 @@ ROMPDP11.prototype.doneLoad = function(sURL, sROMData, nErrorCode) /** * initROM() * - * This function is called by both initBus() and doneLoad(), but it cannot copy the the ROM data into place - * until after initBus() has received the Bus component AND doneLoad() has received the abROM data. When both - * those criteria are satisfied, the component becomes "ready". + * This function is called by both initBus() and doneLoad(), but it cannot copy the initial data into place + * until after initBus() has received the Bus component AND doneLoad() has received the data. When both those + * criteria are satisfied, the component becomes "ready". * * @this {ROMPDP11} */ ROMPDP11.prototype.initROM = function() { if (!this.isReady()) { - if (!this.sFilePath) { - this.setReady(); - } - else if (this.abROM && this.bus) { + if (this.sFilePath) { + /* + * Too early... + */ + if (!this.abInit || !this.bus) return; + /* * If no explicit size was specified, then use whatever the actual size is. */ if (!this.sizeROM) { - this.sizeROM = this.abROM.length; + this.sizeROM = this.abInit.length; } - if (this.abROM.length != this.sizeROM) { + if (this.abInit.length != this.sizeROM) { /* * Note that setError() sets the component's fError flag, which in turn prevents setReady() from * marking the component ready. TODO: Revisit this decision. On the one hand, it sounds like a * good idea to stop the machine in its tracks whenever a setError() occurs, but there may also be * times when we'd like to forge ahead anyway. */ - this.setError("ROM size (" + str.toHexLong(this.abROM.length) + ") does not match specified size (" + str.toHexLong(this.sizeROM) + ")"); + this.setError("ROM size (" + str.toHexLong(this.abInit.length) + ") does not match specified size (" + str.toHexLong(this.sizeROM) + ")"); } else if (this.addROM(this.addrROM)) { @@ -312,7 +251,7 @@ ROMPDP11.prototype.initROM = function() this.cloneROM(aliases[i]); } /* - * We used to hang onto the original ROM data so that we could restore any bytes the CPU overwrote, + * We used to hang onto the initial ROM data so that we could restore any bytes the CPU overwrote, * using memory write-notification handlers, but with the introduction of read-only memory blocks, that's * no longer necessary. * @@ -321,10 +260,10 @@ ROMPDP11.prototype.initROM = function() * whether they're ROM or RAM. However, the only way to modify a machine's ROM is with the Debugger, * and Debugger users should know better. */ - delete this.abROM; + delete this.abInit; } - this.setReady(); } + this.setReady(); } }; @@ -337,11 +276,11 @@ ROMPDP11.prototype.initROM = function() */ ROMPDP11.prototype.addROM = function(addr) { - if (this.bus.addMemory(addr, this.sizeROM, this.fWritable? MemoryPDP11.TYPE.RAM : MemoryPDP11.TYPE.ROM)) { - if (DEBUG) this.log("addROM(): copying ROM to " + str.toHexLong(addr) + " (" + str.toHexLong(this.abROM.length) + " bytes)"); + if (this.bus.addMemory(addr, this.sizeROM, MemoryPDP11.TYPE.ROM)) { + if (DEBUG) this.log("addROM(): copying ROM to " + str.toHexLong(addr) + " (" + str.toHexLong(this.abInit.length) + " bytes)"); var i; - for (i = 0; i < this.abROM.length; i++) { - this.bus.setByteDirect(addr + i, this.abROM[i]); + for (i = 0; i < this.abInit.length; i++) { + this.bus.setByteDirect(addr + i, this.abInit[i]); } return true; } diff --git a/modules/shared/lib/weblib.js b/modules/shared/lib/weblib.js index cce022f5ee..412a2a757d 100644 --- a/modules/shared/lib/weblib.js +++ b/modules/shared/lib/weblib.js @@ -283,6 +283,90 @@ web.getResource = function(sURL, dataPost, fAsync, done) return response; }; +/** + * parseMemoryResource(sURL, sData) + * + * @param {string} sData + * @return {Object|null} (resource) + */ +web.parseMemoryResource = function(sURL, sData) +{ + var i; + var resource = { + aBytes: null, + aSymbols: null, + nLoad: null, + nExec: null + }; + if (sData.charAt(0) == "[" || sData.charAt(0) == "{") { + try { + var a, ib; + var data = eval("(" + sData + ")"); + + resource.nLoad = data['load']; + resource.nExec = data['exec']; + + if (a = data['bytes']) { + resource.aBytes = a; + } + else if (a = data['words']) { + /* + * Convert all words into bytes + */ + resource.aBytes = new Array(a.length * 2); + for (i = 0, ib = 0; i < a.length; i++) { + resource.aBytes[ib++] = a[i] & 0xff; + resource.aBytes[ib++] = (a[i] >> 8) & 0xff; + Component.assert(!(a[i] & ~0xffff)); + } + } + else if (a = data['data']) { + /* + * Convert all dwords (longs) into bytes + */ + resource.aBytes = new Array(a.length * 4); + for (i = 0, ib = 0; i < a.length; i++) { + resource.aBytes[ib++] = a[i] & 0xff; + resource.aBytes[ib++] = (a[i] >> 8) & 0xff; + resource.aBytes[ib++] = (a[i] >> 16) & 0xff; + resource.aBytes[ib++] = (a[i] >> 24) & 0xff; + } + } + else { + resource.aBytes = data; + } + + resource.aSymbols = data['symbols']; + + if (!resource.aBytes.length) { + Component.error("Empty resource: " + sURL); + resource = null; + } + else if (resource.aBytes.length == 1) { + Component.error(resource.aBytes[0]); + resource = null; + } + } catch (e) { + Component.error("Resource data error: " + e.message); + resource = null; + } + } + else { + /* + * Parse the data manually; we'll assume it's in "simplified" hex form + * (a series of hex byte-values separated by whitespace). + */ + var sHexData = sData.replace(/\n/gm, " ").replace(/ +$/, ""); + var asHexData = sHexData.split(" "); + resource.aBytes = new Array(asHexData.length); + for (i = 0; i < asHexData.length; i++) { + resource.aBytes[i] = parseInt(asHexData[i], 16); + Component.assert(!isNaN(resource.aBytes[i])); + } + } + return resource; +}; + /** * sendReport(sApp, sVer, sURL, sUser, sType, sReport, sHostName) * diff --git a/modules/shared/templates/components.xsl b/modules/shared/templates/components.xsl index 35c18170b1..8be709153c 100644 --- a/modules/shared/templates/components.xsl +++ b/modules/shared/templates/components.xsl @@ -582,9 +582,9 @@ null - + - + 0 @@ -612,7 +612,7 @@ - ,model:'',stepping:'',fpu:,cycles:,multiplier:,autoStart:,resetAddr:,csStart:,csInterval:,csStop: + ,model:'',stepping:'',fpu:,cycles:,multiplier:,autoStart:,addrReset:,csStart:,csInterval:,csStop: @@ -933,16 +933,10 @@ - - - - false - - rom - ,addr:,size:,alias:,file:'',notify:'',writable: + ,addr:,size:,alias:,file:'',notify:'' @@ -966,6 +960,24 @@ 0 + + + + + + + + + + null + + + + + + null + + @@ -975,7 +987,7 @@ ram - ,addr:,size:,test: + ,addr:,size:,file:'',load:,exec:,test: diff --git a/versions/pc8080/1.30.1/components.css b/versions/pc8080/1.30.1/components.css index dc7dbc154c..6fa42a7a70 100644 --- a/versions/pc8080/1.30.1/components.css +++ b/versions/pc8080/1.30.1/components.css @@ -85,7 +85,7 @@ } .pcjs-description, .pcjs-status { font-size: x-small; - line-height: 2em; + line-height: 2.8em; } .pcjs-key { border: 1px solid black; diff --git a/versions/pc8080/1.30.1/components.xsl b/versions/pc8080/1.30.1/components.xsl index 2631d86f28..be0817a37a 100644 --- a/versions/pc8080/1.30.1/components.xsl +++ b/versions/pc8080/1.30.1/components.xsl @@ -580,9 +580,9 @@ null - + - + 0 @@ -610,7 +610,7 @@ - ,model:'',stepping:'',fpu:,cycles:,multiplier:,autoStart:,resetAddr:,csStart:,csInterval:,csStop: + ,model:'',stepping:'',fpu:,cycles:,multiplier:,autoStart:,addrReset:,csStart:,csInterval:,csStop: @@ -931,16 +931,10 @@ - - - - false - - rom - ,addr:,size:,alias:,file:'',notify:'',writable: + ,addr:,size:,alias:,file:'',notify:'' @@ -964,6 +958,24 @@ 0 + + + + + + + + + + null + + + + + + null + + @@ -973,7 +985,7 @@ ram - ,addr:,size:,test: + ,addr:,size:,file:'',load:,exec:,test: diff --git a/versions/pc8080/1.30.1/pc8080-dbg.js b/versions/pc8080/1.30.1/pc8080-dbg.js index 1748493947..0346bc1e94 100644 --- a/versions/pc8080/1.30.1/pc8080-dbg.js +++ b/versions/pc8080/1.30.1/pc8080-dbg.js @@ -29,8 +29,8 @@ http://pcjs.org/modules/pc8080/lib/computer.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2016 */ -var l,m={me:1,ne:3,oe:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ub:65,Hc:66,Jc:67,Xb:68,E:69,Mc:70,Nc:71,Oc:72,Pc:73,Wc:74,Xc:75,Zb:76,dd:77,ed:78,gd:79,hd:80,Q:81,od:82,rd:83,xd:84,yd:85,zd:86,Ad:87,Cd:88,Dd:89,Ed:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Ve:97,We:98,Xe:99,d:100,e:101,Ye:102,Ze:103,$e:104,af:105,bf:106,k:107,cf:108, -df:109,n:110,ef:111,p:112,q:113,r:114,ff:115,t:116,hf:117,jf:118,kf:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126}; +var l,m={pe:1,qe:3,re:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Xb:65,Kc:66,Mc:67,$b:68,E:69,Pc:70,Qc:71,Rc:72,Sc:73,Zc:74,$c:75,bc:76,gd:77,hd:78,kd:79,ld:80,Q:81,rd:82,ud:83,Ad:84,Bd:85,Cd:86,Dd:87,Fd:88,Gd:89,Hd:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Ye:97,Ze:98,$e:99,d:100,e:101,af:102,bf:103,cf:104,df:105,ef:106,k:107,ff:108, +gf:109,n:110,hf:111,p:112,q:113,r:114,jf:115,t:116,lf:117,mf:118,nf:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126}; function aa(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0>=3;return(c?"0o":"")+d}function t(a,b,c){var d="";b?8=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function ca(a){return t(a,2,!0)} function u(a){return t(a,4,!0)}function ea(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0":">",'"':""","'":"'"};function la(a){return a.replace(/[&<>"']/g,function(a){return ka[a]})} @@ -38,245 +38,250 @@ function ma(a,b){return(a+" ").slice(0,b) function pa(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a>1,h;h=c(b,a[g]);0a?"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 sa(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;cb?this.cb=this.id:(this.Bb=this.id.substr(0,b),this.cb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,sb:!1,Kb:!1,xa:!1,error:!1};this.Eb=null;this.C.error=!1;this.N={};this.H=null;this.ta=d||0;Ta.push(this)}var Ua=void 0,Va={}; -if(window){Ua||(Ua=window.location.search.substr(1));for(var Wa,Ya=/\+/g,Za=/([^&=]+)=?([^&]*)/g;Wa=Za.exec(Ua);)Va[decodeURIComponent(Wa[1].replace(Ya," "))]=decodeURIComponent(Wa[2].replace(Ya," "))}function $a(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} -function A(a,b){b||(b=z);a.prototype=$a(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var ab=window.PCjs.Machines||(window.PCjs.Machines={}),Ta=window.PCjs.Components||(window.PCjs.Components=[])}else ab={},Ta=[];function bb(a,b,c){ab[a]&&b&&(ab[a][b]=c)}function Pa(a,b,c){b||w((c?c+": ":"")+a)} -function cb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>8&255;else if(e=g.data)for(d.za=Array(4*e.length),f=c=0;c>8&255,d.za[f++]=e[c]>>16&255,d.za[f++]=e[c]>>24&255;else d.za=g;d.Ea=g.symbols;d.za.length?1==d.za.length&&(w(d.za[0]),d=null): +(w("Empty resource: "+a),d=null)}catch(h){w("Resource data error: "+h.message),d=null}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),d.za=Array(a.length),c=0;cb?this.eb=this.id:(this.fb=this.id.substr(0,b),this.eb=this.id.substr(b+1));this[a]=c;this.D={ready:!1,ub:!1,Lb:!1,xa:!1,error:!1};this.Fb=null;this.D.error=!1;this.N={};this.I=null;this.ta=d||0;Ua.push(this)}var Va=void 0,Wa={}; +if(window){Va||(Va=window.location.search.substr(1));for(var Xa,Ya=/\+/g,$a=/([^&=]+)=?([^&]*)/g;Xa=$a.exec(Va);)Wa[decodeURIComponent(Xa[1].replace(Ya," "))]=decodeURIComponent(Xa[2].replace(Ya," "))}function ab(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} +function A(a,b){b||(b=z);a.prototype=ab(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var bb=window.PCjs.Machines||(window.PCjs.Machines={}),Ua=window.PCjs.Components||(window.PCjs.Components=[])}else bb={},Ua=[];function cb(a,b,c){bb[a]&&b&&(bb[a][b]=c)}function Qa(a,b,c){b||w((c?c+": ":"")+a)} +function db(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>1)+2;10>this.ia&&(this.ia=10);15>2;this.u=this.Ha-1;this.J=this.L/this.Ha|0;this.G=this.J-1;this.B=[];this.j=[];this.I=this.D=!1;this.O=[];this.P=[];a=new H;wb(a,this.H);this.X=Array(this.J);for(b=0;b>>a.ia;0f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.F)return h.yb+=h.F-e,h.F=e,!0;if(e>=h.F+h.yb){n=h.size-(e-k);n>f&&(n=f);h.yb=e-h.F+n;e=k+a.Ha;f-=n;g++;continue}}return yb(1,e,f)}e=new H(e,n,a.Ha,d);wb(e,a.H,h);a.X[g++]=e;e=k+a.Ha;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+zb[d]+" at "+u(b)),!0):yb(2,b,c)} -l.aa=function(a){return this.X[(a&this.w)>>>this.ia].jb(a&this.u,a)};function Ab(a,b){return a.X[(b&a.w)>>>a.ia].wb(b&a.u,b)}l.$a=function(a){var b=a&this.u,c=(a&this.w)>>>this.ia;return b!=this.u?this.X[c].Ac(b,a):this.X[c++].jb(b,a)|this.X[c&this.G].jb(0,a+1)<<8};function Bb(a,b){var c=b&a.u,d=(b&a.w)>>>a.ia;return c!=a.u?a.X[d].Pb(c,b):a.X[d++].wb(c,b)|a.X[d&a.G].wb(0,b+1)<<8}l.va=function(a,b){this.X[(a&this.w)>>>this.ia].lb(a&this.u,b&255,a)}; -function Db(a,b,c){a.X[(b&a.w)>>>a.ia].zb(b&a.u,c&255,b)}l.Ib=function(a,b){var c=a&this.u,d=(a&this.w)>>>this.ia;c!=this.u?this.X[d].Cc(c,b&65535,a):(this.X[d++].lb(c,b&255,a),this.X[d&this.G].lb(0,b>>8&255,a+1))};function Eb(a){for(var b=0,c=[],d=0;d>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,d);a.H&&a.D!=g[1]&&Vb(a.H,b,k)}else a.H&&(gb(a.H,a,b,k,d),a.D&&Vb(a.H,b,k));f+=h<<3;b+=h;e-=h}} -function yb(a,b,c){w("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Wb;if(pb){var Xb=new ArrayBuffer(2);(new DataView(Xb)).setUint16(0,256,!0);Wb=256===(new Uint16Array(Xb))[0]}else Wb=!1;var Yb=Wb; -function H(a,b,c,d){this.id=Zb+=2;this.b=null;this.F=a;this.yb=b;this.size=c||0;this.type=d||$b;this.N=d==ac;wb(this);this.Na=this.xc=!1;if(c)if(pb)this.I=new ArrayBuffer(c),this.D=new DataView(this.I,0,c),this.u=new Uint8Array(this.I,0,c),this.J=new Uint16Array(this.I,0,c>>1),this.b=new Int32Array(this.I,0,c>>2),bc(this,Yb?cc:dc);else{this.b=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},Y:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},fa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},la:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<> -2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Na=!0},O:function(a,b){if(this.H&&null!=this.F){var c=this.H;ic(c,this.F+a,1,c.O)&&c.qa(!0)}return this.wb(a,b)},ca:function(a,b){if(this.H&&null!=this.F){var c=this.H;ic(c,this.F+a,2,c.O)&&c.qa(!0)}return this.Pb(a,b)},ja:function(a,b,c){if(this.H&&null!=this.F){var d=this.H;ic(d,this.F+a,1,d.D)&&d.qa(!0)}this.N?this.w(a,b,c):this.zb(a,b,c)},ma:function(a,b,c){if(this.H&& -null!=this.F){var d=this.H;ic(d,this.F+a,2,d.D)&&d.qa(!0)}this.N?this.w(a,b,c):this.Tb(a,b,c)},M:function(a){return this.u[a]},P:function(a){return this.u[a]},ba:function(a){return this.D.getUint16(a,!0)},ea:function(a){return a&1?this.u[a]|this.u[a+1]<<8:this.J[a>>1]},ha:function(a,b){this.u[a]=b;this.Na=!0},cb:function(a,b){this.u[a]=b;this.Na=!0},ra:function(a,b){this.D.setUint16(a,b,!0);this.Na=!0},wa:function(a,b){a&1?(this.u[a]=b,this.u[a+1]=b>>8):this.J[a>>1]=b;this.Na=!0}}; -function wb(a,b,c){a.H=b;a.B=a.j=0;c&&((a.B=c.B)&&hc(a,gc,!1),(a.j=c.j)&&fc(a,gc,!1))}function jc(a,b){b?--a.j||(a.lb=a.N?a.w:a.zb,a.Cc=a.N?a.G:a.Tb):--a.B||(a.jb=a.wb,a.Ac=a.Pb)}function fc(a,b,c){c&&a.j||(a.lb=!a.N&&b[1]||a.w,a.Cc=!a.N&&b[3]||a.G);if(c||void 0===c)a.zb=b[1]||a.w,a.Tb=b[3]||a.G}function hc(a,b,c){c&&a.B||(a.jb=b[0]||a.K,a.Ac=b[2]||a.L);if(c||void 0===c)a.wb=b[0]||a.K,a.Pb=b[2]||a.L}function bc(a,b){b||(b=kc);hc(a,b,void 0);fc(a,b,void 0)} -var kc=[],ec=[H.prototype.Y,H.prototype.la,H.prototype.fa,H.prototype.za],gc=[H.prototype.O,H.prototype.ja,H.prototype.ca,H.prototype.ma];if(pb)var dc=[H.prototype.M,H.prototype.ha,H.prototype.ba,H.prototype.ra],cc=[H.prototype.P,H.prototype.cb,H.prototype.ea,H.prototype.wa]; -function lc(a,b){z.call(this,"CPU",a,lc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Ra=c;this.ha=Math.round(this.Y/1E4)/100;this.ab=this.ha*this.Ra;this.C.Aa=!1;this.C.Sb=!1;this.C.rb=a.autoStart;this.C.vc=!1;this.C.fb=!1;this.tb=this.O=0;this.ub=a.csStart;this.hb=a.csInterval;this.ib=a.csStop;this.w=[];this.Fa=this.bb.bind(this);F(this)}A(lc);var mc=["power","reset"];l=lc.prototype; -l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.H=d;for(b=0;b=a.O&&(a.O+=a.hb,c=!0);0<=a.ib&&a.ib<=Fc(a)&&(a.hb=a.ib=-1,Bc(a),a.qa(),c=!0);c&&a.g(Fc(a)+" cycles: checksum="+t(a.tb))}} -l.pa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.C.xa)a=!0;else{var b=null,c,h=cb(a.id);for(c=0;ca.J/a.ab?b=1:d=!0;a.Ra=b;b=a.ha*a.Ra;if(a.ab!=b){a.ab=b;b=a.ab.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.xb()}Hc(a,a.G);a.G=0;a.D=qa();a.K=0;Ic(a);return d}function Jc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Kc(a,b,c){0<=b&&ba.w[b][0]&&(c*=a.Y*a.Ra/1E3,a.w[b][0]=c+Lc(a))}function Lc(a,b){var c=a.L-=a.b;a.b=0;b&&(a.L=0);return c} -l.bb=function(a){if(jb(this,!0)){if(!this.C.Aa){Gc(this);this.B&&this.B.start(this.D,Fc(this));this.C.Aa=!0;this.C.Sb=!0;this.I&&this.I.start();var b=this.N.run;b&&(b.textContent="Halt");this.B&&(this.B.Ja(!0),a&&this.B.xb(!0))}this.ja>=this.Y&&Ic(this,!0);this.ba=0;this.ea=qa();this.K&&(a=this.ea-this.K,a>this.wa&&(this.D+=a,this.D>this.ea&&(this.D=this.ea)));try{do{for(var c,d=this.C.fb?1:this.fa,e=this.w.length-1;0<=e;e--){var f=this.w[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.kb(c);c=Lc(this,!0);this.ba+= -c;this.G+=c;Ec(this,c);a=c;for(var g=this.w.length-1;0<=g;g--){var h=this.w[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.P-=c;if(0>=this.P){this.P+=this.fa;15<=++this.za&&(this.B&&this.B.Ja(),this.za=0);break}}while(this.C.Aa)}catch(k){this.qa();Dc(this);this.B&&this.B.stop(qa(),Fc(this));jb(this,!1);ob(this,k.stack||k.message);return}c=setTimeout;d=this.Fa;this.K=qa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e-=this.K-this.ea;if(f=this.K-this.D)this.J=Math.round(this.G/(10*f))/ -100,864E5<=f&&(this.M=0,Gc(this));if(0>e||this.Je&&(this.D-=e),e=0;this.ja+=this.ba;this.K+=e;c(d,e)}else Dc(this),this.B&&this.B.stop(qa(),Fc(this))};l.kb=function(){return 0};l.qa=function(a){kb(this,!0);Lc(this);Hc(this,this.G);this.G=0;if(this.C.Aa){this.C.Aa=!1;this.I&&this.I.stop();var b=this.N.run;b&&(b.textContent="Run")}this.C.complete=a};function Dc(a,b){if(a.B){for(var c=a.B,d=0;d>8&255;a.T=b&255}function Wc(a){return a.U<<8|a.V}function Xc(a,b){a.U=b>>8&255;a.V=b&255}function K(a){return a.W<<8|a.Z} -function Yc(a,b){a.W=b>>8&255;a.Z=b&255}function I(a,b){a.R=b&65535}function Zc(a){return a.da&256?1:0}function $c(a,b){a.da=a.da&255|b}function ad(a){return qb[a.ga&255]?4:0}function bd(a){return(a.ga^a.ya)&16?16:0}function cd(a){return a.da&255?0:64}function dd(a){return a.ga&128?128:0}function Tc(a){return a.ua&-214|dd(a)|cd(a)|bd(a)|ad(a)|Zc(a)}function Rc(a,b){a.da=a.ga=a.ya=0;b&1&&(a.da|=256);b&4||(a.ga|=1);b&16&&(a.ya|=16);b&64||(a.da|=255);b&128&&(a.ga^=192);a.ua=a.ua&-726|b&512|2} -function ed(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b)&255}function fd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?1:0))&255}function gd(a,b){a.da=a.ga=a.ya=a.i&b;(a.i|b)&8&&(a.ya^=16);return a.da}function hd(a,b){a.ya=b^255;b=a.ga=b+255&255;a.da=a.da&-256|b;return b}function id(a,b){a.ya=b;b=a.ga=b+1&255;a.da=a.da&-256|b;return b}function Dd(a,b){return a.ga=a.da=a.ya=a.i|b}function L(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+1^256)&255} -function Ed(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?0:1)^256)&255}function Fd(a,b){return a.ga=a.da=a.ya=a.i^b}l.aa=function(a){return this.u.aa(a)};l.va=function(a,b){this.u.va(a,b)};function M(a){var b=a.aa(a.R);I(a,a.R+1);return b}function O(a){var b=a.u.$a(a.R);I(a,a.R+2);return b}function P(a){var b=a.u.$a(a.oa);a.oa=a.oa+2&65535;return b}function Q(a,b){a.oa=a.oa-2&65535;a.u.Ib(a.oa,b)} -function Gd(a){if(a.b&&a.j&255&&a.ua&512){for(var b=0;8>b&&!(a.j&1<b?255:1<>8;$c(this,a&256);this.b-=4},Kd,function(){var a;Yc(this,a=K(this)+Uc(this));$c(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Uc(this));this.b-=7},function(){Vc(this,Uc(this)-1);this.b-= -5},function(){this.T=id(this,this.T);this.b-=5},function(){this.T=hd(this,this.T);this.b-=5},function(){this.T=M(this);this.b-=7},function(){var a=this.i<<8&256;this.i=(a|this.i)>>1;$c(this,a);this.b-=4},Kd,function(){Xc(this,O(this));this.b-=10},function(){this.va(Wc(this),this.i);this.b-=7},function(){Xc(this,Wc(this)+1);this.b-=5},function(){this.U=id(this,this.U);this.b-=5},function(){this.U=hd(this,this.U);this.b-=5},function(){this.U=M(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255| -Zc(this);$c(this,a&256);this.b-=4},Kd,function(){var a;Yc(this,a=K(this)+Wc(this));$c(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Wc(this));this.b-=7},function(){Xc(this,Wc(this)-1);this.b-=5},function(){this.V=id(this,this.V);this.b-=5},function(){this.V=hd(this,this.V);this.b-=5},function(){this.V=M(this);this.b-=7},function(){var a=this.i<<8;this.i=(Zc(this)<<8|this.i)>>1;$c(this,a&256);this.b-=4},Kd,function(){Yc(this,O(this));this.b-=10},function(){var a=O(this);this.u.Ib(a,K(this)); -this.b-=16},function(){Yc(this,K(this)+1);this.b-=5},function(){this.W=id(this,this.W);this.b-=5},function(){this.W=hd(this,this.W);this.b-=5},function(){this.W=M(this);this.b-=7},function(){var a=0,b=Zc(this);if(bd(this)||9<(this.i&15))a|=6;if(b||154<=this.i)a|=96,b=1;this.i=ed(this,a);$c(this,b?256:0);this.b-=4},Kd,function(){var a;Yc(this,a=K(this)+K(this));$c(this,a>>8&256);this.b-=10},function(){var a;a=O(this);a=this.u.$a(a);Yc(this,a);this.b-=16},function(){Yc(this,K(this)-1);this.b-=5},function(){this.Z= -id(this,this.Z);this.b-=5},function(){this.Z=hd(this,this.Z);this.b-=5},function(){this.Z=M(this);this.b-=7},function(){this.i=~this.i&255;this.b-=4},Kd,function(){this.oa=O(this)&65535;this.b-=10},function(){this.va(O(this),this.i);this.b-=13},function(){this.oa=this.oa+1&65535;this.b-=5},function(){var a=K(this);this.va(a,id(this,this.aa(a)));this.b-=10},function(){var a=K(this);this.va(a,hd(this,this.aa(a)));this.b-=10},function(){this.va(K(this),M(this));this.b-=10},function(){this.da|=256;this.b-= -4},Kd,function(){var a;Yc(this,a=K(this)+this.oa);$c(this,a>>8&256);this.b-=10},function(){this.i=this.aa(O(this));this.b-=13},function(){this.oa=this.oa-1&65535;this.b-=5},function(){this.i=id(this,this.i);this.b-=5},function(){this.i=hd(this,this.i);this.b-=5},function(){this.i=M(this);this.b-=7},function(){$c(this,Zc(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.U;this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.W; +var qb="undefined"!==typeof ArrayBuffer,rb=[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],sb={cpu:1,bus:64,mem:128,port:256,nvr:16384,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function tb(a){z.call(this,"Panel",a,tb)}A(tb);l=tb.prototype; +l.qa=function(a,b,c,d){return this.A&&this.A.qa(a,b,c,d)||this.b&&this.b.qa(a,b,c,d)||this.K&&this.K.qa(a,b,c,d)||this.I&&this.I.qa(a,b,c,d)?!0:this.parent.qa.call(this,a,b,c,d)};l.Ra=function(a,b,c,d){this.A=a;this.u=b;this.b=c;this.I=d;this.K=ub(a,"Keyboard")};l.Ga=function(a,b){b||vb();return!0};l.Ka=function(){return!0};l.La=function(){};function vb(){for(var a=!1,b=D(document,"pc8080","panel"),c=0;c>1)+2;10>this.ia&&(this.ia=10);15>2;this.u=this.Ja-1;this.K=this.L/this.Ja|0;this.G=this.K-1;this.A=[];this.j=[];this.F=this.C=!1;this.O=[];this.P=[];a=new G;xb(a,this.I);this.X=Array(this.K);for(b=0;b>>a.ia;0f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.H)return h.Ab+=h.H-e,h.H=e,!0;if(e>=h.H+h.Ab){n=h.size-(e-k);n>f&&(n=f);h.Ab=e-h.H+n;e=k+a.Ja;f-=n;g++;continue}}return zb(1,e,f)}e=new G(e,n,a.Ja,d);xb(e,a.I,h);a.X[g++]=e;e=k+a.Ja;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Ab[d]+" at "+u(b)),!0):zb(2,b,c)} +l.aa=function(a){return this.X[(a&this.w)>>>this.ia].lb(a&this.u,a)};function Bb(a,b){return a.X[(b&a.w)>>>a.ia].yb(b&a.u,b)}l.ab=function(a){var b=a&this.u,c=(a&this.w)>>>this.ia;return b!=this.u?this.X[c].Dc(b,a):this.X[c++].lb(b,a)|this.X[c&this.G].lb(0,a+1)<<8};function Cb(a,b){var c=b&a.u,d=(b&a.w)>>>a.ia;return c!=a.u?a.X[d].Sb(c,b):a.X[d++].yb(c,b)|a.X[d&a.G].yb(0,b+1)<<8}l.va=function(a,b){this.X[(a&this.w)>>>this.ia].nb(a&this.u,b&255,a)}; +function Db(a,b,c){a.X[(b&a.w)>>>a.ia].Bb(b&a.u,c&255,b)}l.Jb=function(a,b){var c=a&this.u,d=(a&this.w)>>>this.ia;c!=this.u?this.X[d].Fc(c,b&65535,a):(this.X[d++].nb(c,b&255,a),this.X[d&this.G].nb(0,b>>8&255,a+1))};function Fb(a){for(var b=0,c=[],d=0;d>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,d);a.I&&a.C!=g[1]&&Wb(a.I,b,k)}else a.I&&(hb(a.I,a,b,k,d),a.C&&Wb(a.I,b,k));f+=h<<3;b+=h;e-=h}} +function zb(a,b,c){w("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Xb;if(qb){var Yb=new ArrayBuffer(2);(new DataView(Yb)).setUint16(0,256,!0);Xb=256===(new Uint16Array(Yb))[0]}else Xb=!1;var Zb=Xb; +function G(a,b,c,d){this.id=$b+=2;this.b=null;this.H=a;this.Ab=b;this.size=c||0;this.type=d||ac;this.N=d==bc;xb(this);this.Pa=this.Ac=!1;if(c)if(qb)this.F=new ArrayBuffer(c),this.C=new DataView(this.F,0,c),this.u=new Uint8Array(this.F,0,c),this.K=new Uint16Array(this.F,0,c>>1),this.b=new Int32Array(this.F,0,c>>2),cc(this,Zb?dc:ec);else{this.b=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},Y:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},fa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},fb:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<> +2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Pa=!0},O:function(a,b){if(this.I&&null!=this.H){var c=this.I;jc(c,this.H+a,1,c.O)&&c.ra(!0)}return this.yb(a,b)},ca:function(a,b){if(this.I&&null!=this.H){var c=this.I;jc(c,this.H+a,2,c.O)&&c.ra(!0)}return this.Sb(a,b)},ja:function(a,b,c){if(this.I&&null!=this.H){var d=this.I;jc(d,this.H+a,1,d.C)&&d.ra(!0)}this.N?this.w(a,b,c):this.Bb(a,b,c)},ma:function(a,b,c){if(this.I&& +null!=this.H){var d=this.I;jc(d,this.H+a,2,d.C)&&d.ra(!0)}this.N?this.w(a,b,c):this.Wb(a,b,c)},M:function(a){return this.u[a]},P:function(a){return this.u[a]},ba:function(a){return this.C.getUint16(a,!0)},ea:function(a){return a&1?this.u[a]|this.u[a+1]<<8:this.K[a>>1]},ha:function(a,b){this.u[a]=b;this.Pa=!0},eb:function(a,b){this.u[a]=b;this.Pa=!0},la:function(a,b){this.C.setUint16(a,b,!0);this.Pa=!0},na:function(a,b){a&1?(this.u[a]=b,this.u[a+1]=b>>8):this.K[a>>1]=b;this.Pa=!0}}; +function xb(a,b,c){a.I=b;a.A=a.j=0;c&&((a.A=c.A)&&ic(a,hc,!1),(a.j=c.j)&&gc(a,hc,!1))}function kc(a,b){b?--a.j||(a.nb=a.N?a.w:a.Bb,a.Fc=a.N?a.G:a.Wb):--a.A||(a.lb=a.yb,a.Dc=a.Sb)}function gc(a,b,c){c&&a.j||(a.nb=!a.N&&b[1]||a.w,a.Fc=!a.N&&b[3]||a.G);if(c||void 0===c)a.Bb=b[1]||a.w,a.Wb=b[3]||a.G}function ic(a,b,c){c&&a.A||(a.lb=b[0]||a.J,a.Dc=b[2]||a.L);if(c||void 0===c)a.yb=b[0]||a.J,a.Sb=b[2]||a.L}function cc(a,b){b||(b=lc);ic(a,b,void 0);gc(a,b,void 0)} +var lc=[],fc=[G.prototype.Y,G.prototype.fb,G.prototype.fa,G.prototype.wa],hc=[G.prototype.O,G.prototype.ja,G.prototype.ca,G.prototype.ma];if(qb)var ec=[G.prototype.M,G.prototype.ha,G.prototype.ba,G.prototype.la],dc=[G.prototype.P,G.prototype.eb,G.prototype.ea,G.prototype.na]; +function mc(a,b){z.call(this,"CPU",a,mc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Sa=c;this.ha=Math.round(this.Y/1E4)/100;this.bb=this.ha*this.Sa;this.D.Aa=!1;this.D.Vb=!1;this.D.tb=a.autoStart;this.D.yc=!1;this.D.hb=!1;this.vb=this.O=0;this.wb=a.csStart;this.jb=a.csInterval;this.kb=a.csStop;this.w=[];this.Ha=this.cb.bind(this);F(this)}A(mc);var nc=["power","reset"];l=mc.prototype; +l.Ra=function(a,b,c,d){this.A=a;this.u=b;this.I=d;for(b=0;b=a.O&&(a.O+=a.jb,c=!0);0<=a.kb&&a.kb<=Gc(a)&&(a.jb=a.kb=-1,Cc(a),a.ra(),c=!0);c&&a.g(Gc(a)+" cycles: checksum="+t(a.vb))}} +l.qa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.D.xa)a=!0;else{var b=null,c,h=db(a.id);for(c=0;ca.K/a.bb?b=1:d=!0;a.Sa=b;b=a.ha*a.Sa;if(a.bb!=b){a.bb=b;b=a.bb.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.A&&a.A.zb()}Ic(a,a.G);a.G=0;a.C=qa();a.J=0;Jc(a);return d}function Kc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Lc(a,b,c){0<=b&&ba.w[b][0]&&(c*=a.Y*a.Sa/1E3,a.w[b][0]=c+Mc(a))}function Mc(a,b){var c=a.L-=a.b;a.b=0;b&&(a.L=0);return c} +l.cb=function(a){if(kb(this,!0)){if(!this.D.Aa){Hc(this);this.A&&this.A.start(this.C,Gc(this));this.D.Aa=!0;this.D.Vb=!0;this.F&&this.F.start();var b=this.N.run;b&&(b.textContent="Halt");this.A&&(this.A.La(!0),a&&this.A.zb(!0))}this.ja>=this.Y&&Jc(this,!0);this.ba=0;this.ea=qa();this.J&&(a=this.ea-this.J,a>this.wa&&(this.C+=a,this.C>this.ea&&(this.C=this.ea)));try{do{for(var c,d=this.D.hb?1:this.fa,e=this.w.length-1;0<=e;e--){var f=this.w[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.mb(c);c=Mc(this,!0);this.ba+= +c;this.G+=c;Fc(this,c);a=c;for(var g=this.w.length-1;0<=g;g--){var h=this.w[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.P-=c;if(0>=this.P){this.P+=this.fa;15<=++this.Ba&&(this.A&&this.A.La(),this.Ba=0);break}}while(this.D.Aa)}catch(k){this.ra();Ec(this);this.A&&this.A.stop(qa(),Gc(this));kb(this,!1);nb(this,k.stack||k.message);return}c=setTimeout;d=this.Ha;this.J=qa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e-=this.J-this.ea;if(f=this.J-this.C)this.K=Math.round(this.G/(10*f))/ +100,864E5<=f&&(this.M=0,Hc(this));if(0>e||this.Ke&&(this.C-=e),e=0;this.ja+=this.ba;this.J+=e;c(d,e)}else Ec(this),this.A&&this.A.stop(qa(),Gc(this))};l.mb=function(){return 0};l.ra=function(a){lb(this,!0);Mc(this);Ic(this,this.G);this.G=0;if(this.D.Aa){this.D.Aa=!1;this.F&&this.F.stop();var b=this.N.run;b&&(b.textContent="Run")}this.D.complete=a};function Ec(a,b){if(a.A){for(var c=a.A,d=0;d>8&255;a.T=b&255}function Xc(a){return a.U<<8|a.V}function Yc(a,b){a.U=b>>8&255;a.V=b&255}function K(a){return a.W<<8|a.Z} +function Zc(a,b){a.W=b>>8&255;a.Z=b&255}function I(a,b){a.R=b&65535}function $c(a){return a.da&256?1:0}function ad(a,b){a.da=a.da&255|b}function bd(a){return rb[a.ga&255]?4:0}function cd(a){return(a.ga^a.ya)&16?16:0}function dd(a){return a.da&255?0:64}function ed(a){return a.ga&128?128:0}function Uc(a){return a.ua&-214|ed(a)|dd(a)|cd(a)|bd(a)|$c(a)}function Sc(a,b){a.da=a.ga=a.ya=0;b&1&&(a.da|=256);b&4||(a.ga|=1);b&16&&(a.ya|=16);b&64||(a.da|=255);b&128&&(a.ga^=192);a.ua=a.ua&-726|b&512|2} +function fd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b)&255}function gd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?1:0))&255}function hd(a,b){a.da=a.ga=a.ya=a.i&b;(a.i|b)&8&&(a.ya^=16);return a.da}function id(a,b){a.ya=b^255;b=a.ga=b+255&255;a.da=a.da&-256|b;return b}function jd(a,b){a.ya=b;b=a.ga=b+1&255;a.da=a.da&-256|b;return b}function Ed(a,b){return a.ga=a.da=a.ya=a.i|b}function L(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+1^256)&255} +function Fd(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?0:1)^256)&255}function Gd(a,b){return a.ga=a.da=a.ya=a.i^b}l.aa=function(a){return this.u.aa(a)};l.va=function(a,b){this.u.va(a,b)};function M(a){var b=a.aa(a.R);I(a,a.R+1);return b}function O(a){var b=a.u.ab(a.R);I(a,a.R+2);return b}function P(a){var b=a.u.ab(a.pa);a.pa=a.pa+2&65535;return b}function Q(a,b){a.pa=a.pa-2&65535;a.u.Jb(a.pa,b)} +function Hd(a){if(a.b&&a.j&255&&a.ua&512){for(var b=0;8>b&&!(a.j&1<b?255:1<>8;ad(this,a&256);this.b-=4},Ld,function(){var a;Zc(this,a=K(this)+Vc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Vc(this));this.b-=7},function(){Wc(this,Vc(this)-1);this.b-= +5},function(){this.T=jd(this,this.T);this.b-=5},function(){this.T=id(this,this.T);this.b-=5},function(){this.T=M(this);this.b-=7},function(){var a=this.i<<8&256;this.i=(a|this.i)>>1;ad(this,a);this.b-=4},Ld,function(){Yc(this,O(this));this.b-=10},function(){this.va(Xc(this),this.i);this.b-=7},function(){Yc(this,Xc(this)+1);this.b-=5},function(){this.U=jd(this,this.U);this.b-=5},function(){this.U=id(this,this.U);this.b-=5},function(){this.U=M(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255| +$c(this);ad(this,a&256);this.b-=4},Ld,function(){var a;Zc(this,a=K(this)+Xc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Xc(this));this.b-=7},function(){Yc(this,Xc(this)-1);this.b-=5},function(){this.V=jd(this,this.V);this.b-=5},function(){this.V=id(this,this.V);this.b-=5},function(){this.V=M(this);this.b-=7},function(){var a=this.i<<8;this.i=($c(this)<<8|this.i)>>1;ad(this,a&256);this.b-=4},Ld,function(){Zc(this,O(this));this.b-=10},function(){var a=O(this);this.u.Jb(a,K(this)); +this.b-=16},function(){Zc(this,K(this)+1);this.b-=5},function(){this.W=jd(this,this.W);this.b-=5},function(){this.W=id(this,this.W);this.b-=5},function(){this.W=M(this);this.b-=7},function(){var a=0,b=$c(this);if(cd(this)||9<(this.i&15))a|=6;if(b||154<=this.i)a|=96,b=1;this.i=fd(this,a);ad(this,b?256:0);this.b-=4},Ld,function(){var a;Zc(this,a=K(this)+K(this));ad(this,a>>8&256);this.b-=10},function(){var a;a=O(this);a=this.u.ab(a);Zc(this,a);this.b-=16},function(){Zc(this,K(this)-1);this.b-=5},function(){this.Z= +jd(this,this.Z);this.b-=5},function(){this.Z=id(this,this.Z);this.b-=5},function(){this.Z=M(this);this.b-=7},function(){this.i=~this.i&255;this.b-=4},Ld,function(){this.pa=O(this)&65535;this.b-=10},function(){this.va(O(this),this.i);this.b-=13},function(){this.pa=this.pa+1&65535;this.b-=5},function(){var a=K(this);this.va(a,jd(this,this.aa(a)));this.b-=10},function(){var a=K(this);this.va(a,id(this,this.aa(a)));this.b-=10},function(){this.va(K(this),M(this));this.b-=10},function(){this.da|=256;this.b-= +4},Ld,function(){var a;Zc(this,a=K(this)+this.pa);ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(O(this));this.b-=13},function(){this.pa=this.pa-1&65535;this.b-=5},function(){this.i=jd(this,this.i);this.b-=5},function(){this.i=id(this,this.i);this.b-=5},function(){this.i=M(this);this.b-=7},function(){ad(this,$c(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.U;this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.W; this.b-=5},function(){this.S=this.Z;this.b-=5},function(){this.S=this.aa(K(this));this.b-=7},function(){this.S=this.i;this.b-=5},function(){this.T=this.S;this.b-=5},function(){this.b-=5},function(){this.T=this.U;this.b-=5},function(){this.T=this.V;this.b-=5},function(){this.T=this.W;this.b-=5},function(){this.T=this.Z;this.b-=5},function(){this.T=this.aa(K(this));this.b-=7},function(){this.T=this.i;this.b-=5},function(){this.U=this.S;this.b-=5},function(){this.U=this.T;this.b-=5},function(){this.b-= 5},function(){this.U=this.V;this.b-=5},function(){this.U=this.W;this.b-=5},function(){this.U=this.Z;this.b-=5},function(){this.U=this.aa(K(this));this.b-=7},function(){this.U=this.i;this.b-=5},function(){this.V=this.S;this.b-=5},function(){this.V=this.T;this.b-=5},function(){this.V=this.U;this.b-=5},function(){this.b-=5},function(){this.V=this.W;this.b-=5},function(){this.V=this.Z;this.b-=5},function(){this.V=this.aa(K(this));this.b-=7},function(){this.V=this.i;this.b-=5},function(){this.W=this.S; this.b-=5},function(){this.W=this.T;this.b-=5},function(){this.W=this.U;this.b-=5},function(){this.W=this.V;this.b-=5},function(){this.b-=5},function(){this.W=this.Z;this.b-=5},function(){this.W=this.aa(K(this));this.b-=7},function(){this.W=this.i;this.b-=5},function(){this.Z=this.S;this.b-=5},function(){this.Z=this.T;this.b-=5},function(){this.Z=this.U;this.b-=5},function(){this.Z=this.V;this.b-=5},function(){this.Z=this.W;this.b-=5},function(){this.b-=5},function(){this.Z=this.aa(K(this));this.b-= -7},function(){this.Z=this.i;this.b-=5},function(){this.va(K(this),this.S);this.b-=7},function(){this.va(K(this),this.T);this.b-=7},function(){this.va(K(this),this.U);this.b-=7},function(){this.va(K(this),this.V);this.b-=7},function(){this.va(K(this),this.W);this.b-=7},function(){this.va(K(this),this.Z);this.b-=7},function(){var a=this.R-1;if(this.ca.length)for(var b=0;b>8;this.b-=10},function(){var a=O(this);dd(this)||I(this,a);this.b-=10},function(){this.ua&=-513;this.b-=4},function(){var a=O(this);dd(this)||(Q(this,this.R),I(this,a),this.b-=6);this.b-=11},function(){Q(this,Tc(this)&255|this.i<<8);this.b-=11},function(){this.i=Dd(this,M(this));this.b-=7},function(){Q(this,this.R);I(this,48);this.b-=11},function(){dd(this)&& -(I(this,P(this)),this.b-=6);this.b-=5},function(){this.oa=K(this)&65535;this.b-=5},function(){var a=O(this);dd(this)&&I(this,a);this.b-=10},function(){this.ua|=512;this.b-=4;Gd(this)},function(){var a=O(this);dd(this)&&(Q(this,this.R),I(this,a),this.b-=6);this.b-=11},Nd,function(){L(this,M(this));this.b-=7},function(){Q(this,this.R);I(this,56);this.b-=11}]; -function S(a){z.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!Od[b]&&Pa("Unrecognized ChipSet model: "+b);this.w=Od[b]||{};a.sound&&(this.fa=null,window&&(this.fa=window.AudioContext||window.webkitAudioContext),this.fa&&new this.fa);F(this)}A(S); -var U={Ba:1978.1,vd:{Ca:0,qe:1,ue:16,Be:32,Ke:64,Je:128,mb:14},Ya:{Ca:1,Kc:1,nd:2,jd:4,kd:16,ld:32,md:64,mb:8},wd:{Ca:2,pe:3,Se:4,re:8,Fe:16,Ge:32,He:64,se:128,mb:0},Oe:{Ca:3},Me:{Ca:2,Ce:7},Qe:{Ca:3,Te:1,Pe:2,Ie:4,ze:8,te:16,je:32},Ne:{Ca:4},Re:{Ca:5,ve:1,we:2,xe:4,ye:8,Ue:16}},V={Ba:100,Ka:{Ca:66,mc:1,bc:2,fd:4,Ee:8,De:16,dc:32,cc:64,Yb:128},Ic:{Ca:66,INIT:0},Ta:{Ca:194,le:0,Wb:16,pd:32,ic:48,Sc:0,Tc:32},Ab:{Ca:162,Le:0,Vc:0,Rc:0,Uc:0,Qc:0},La:{Ae:{Ca:98},Sa:{Fc:0,Ec:1,sd:2,Bd:4,Lc:5,qd:6,td:7}, -Cb:16383}},Od={SI1978:U,VT100:V};S.prototype.pa=function(){return!1};S.prototype.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;this.B=a;this.J=tb(a,"Keyboard");this.Fa=tb(a,"SerialPort");this.video=tb(a,"Video");Pb(b,this,this.w.Gb);Tb(b,this,this.w.Hb);if(d){var e=this;Pd(d,16384,function(){for(var a="",b=0;b>8;this.b-=10},function(){var a=O(this);ed(this)||I(this,a);this.b-=10},function(){this.ua&=-513;this.b-=4},function(){var a=O(this);ed(this)||(Q(this,this.R),I(this,a),this.b-=6);this.b-=11},function(){Q(this,Uc(this)&255|this.i<<8);this.b-=11},function(){this.i=Ed(this,M(this));this.b-=7},function(){Q(this,this.R);I(this,48);this.b-=11},function(){ed(this)&& +(I(this,P(this)),this.b-=6);this.b-=5},function(){this.pa=K(this)&65535;this.b-=5},function(){var a=O(this);ed(this)&&I(this,a);this.b-=10},function(){this.ua|=512;this.b-=4;Hd(this)},function(){var a=O(this);ed(this)&&(Q(this,this.R),I(this,a),this.b-=6);this.b-=11},Od,function(){L(this,M(this));this.b-=7},function(){Q(this,this.R);I(this,56);this.b-=11}]; +function S(a){z.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!Pd[b]&&Qa("Unrecognized ChipSet model: "+b);this.w=Pd[b]||{};a.sound&&(this.fa=null,window&&(this.fa=window.AudioContext||window.webkitAudioContext),this.fa&&new this.fa);F(this)}A(S); +var U={Ca:1978.1,yd:{Da:0,te:1,xe:16,Ee:32,Ne:64,Me:128,ob:14},Za:{Da:1,Nc:1,qd:2,md:4,nd:16,od:32,pd:64,ob:8},zd:{Da:2,se:3,Ve:4,ue:8,Ie:16,Je:32,Ke:64,ve:128,ob:0},Re:{Da:3},Pe:{Da:2,Fe:7},Te:{Da:3,We:1,Se:2,Le:4,Ce:8,we:16,me:32},Qe:{Da:4},Ue:{Da:5,ye:1,ze:2,Ae:4,Be:8,Xe:16}},V={Ca:100,Ma:{Da:66,pc:1,ec:2,jd:4,He:8,Ge:16,gc:32,fc:64,ac:128},Lc:{Da:66,INIT:0},Ua:{Da:194,oe:0,Zb:16,sd:32,lc:48,Vc:0,Wc:32},Cb:{Da:162,Oe:0,Yc:0,Uc:0,Xc:0,Tc:0},Na:{De:{Da:98},Ta:{Ic:0,Hc:1,vd:2,Ed:4,Oc:5,td:6,wd:7}, +Db:16383}},Pd={SI1978:U,VT100:V};S.prototype.qa=function(){return!1};S.prototype.Ra=function(a,b,c,d){this.u=b;this.b=c;this.I=d;this.A=a;this.K=ub(a,"Keyboard");this.Ha=ub(a,"SerialPort");this.video=ub(a,"Video");Hb(b,this,this.w.Hb);Ub(b,this,this.w.Ib);if(d){var e=this;Qd(d,16384,function(){for(var a="",b=0;b>8-this.ea&255;E(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.$d=function(a,b,c){E(this,a,b,c,"SHIFT.COUNT",null,!0);this.ea=b};l.be=function(a,b,c){E(this,a,b,c,"SOUND1",null,!0);this.ra=b};l.ae=function(a,b,c){E(this,a,b,c,"SHIFT.DATA",null,!0);this.Y=b<<8|this.Y>>8}; -l.ce=function(a,b,c){E(this,a,b,c,"SOUND2",null,!0);this.ma=b};l.de=function(a,b,c){E(this,a,b,c,"WATCHDOG",null,!0)};function Qd(a){var b=0,c=0,d=~a.P;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c} -l.Td=function(a,b){var c=this.K,c=c&~V.Ka.cc;if((Fc(this.b)&64)<<1&&(c|=V.Ka.cc,c!=this.K)){var d,e;d=this.O&1;e=this.O>>1&7;switch(e){case V.La.Sa.td:break;case V.La.Sa.Ec:this.P=this.P<<1|d;break;case V.La.Sa.Lc:d=Qd(this);this.I[d]=V.La.Cb;hb(this,"doNVRCommand(): erase data at addr "+u(d));break;case V.La.Sa.Fc:this.j=this.j<<1|d;break;case V.La.Sa.Bd:d=Qd(this);e=this.j&V.La.Cb;this.I[d]=e;hb(this,"doNVRCommand(): write data "+u(e)+" to addr "+u(d));break;case V.La.Sa.qd:d=Qd(this);e=this.I[d]; -null==e&&(e=V.La.Cb);this.j=e;hb(this,"doNVRCommand(): read data "+u(e)+" from addr "+u(d));break;case V.La.Sa.sd:this.j<<=1;this.ca=this.j&V.La.Cb+1;break;default:hb(this,"doNVRCommand(): unrecognized command "+ca(e))}}c&=~V.Ka.dc;this.ca&&(c|=V.Ka.dc);c&=~V.Ka.Yb;if(d=this.J){d=this.J;if(e=d.D)e=d.b,e=Fc(d.b)>=d.K+e.Y*e.Ra/1E3*1.2731488;e&&(d.D=!1);d=!d.D}d&&(c|=V.Ka.Yb);c&=~V.Ka.mc;this.Fa&&this.Fa.Da&1&&(c|=V.Ka.mc);this.K=c;E(this,a,null,b,"FLAGS",c);return c}; -l.ee=function(a,b,c){E(this,a,b,c,"BRIGHTNESS");this.ha=b};l.he=function(a,b,c){E(this,a,b,c,"NVR.LATCH");this.O=b};l.ge=function(a,b,c){E(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.D=this.D&-4|a;break;case 1:this.D=this.D&-13|a<<2;this.video&&(b=this.video,a=this.D,hb(b,"updateScrollOffset("+a+")"),b.eb!==a&&((b.eb=a)?Mc(b,!0):b.ob=!0));break;case 2:switch(a){case 0:this.ba=~this.ba;break;case 2:case 3:this.la=3-a}break;case 3:this.ja=a}}; -l.fe=function(a,b,c){E(this,a,b,c,"DC011");b&V.Ta.pd?(b&=V.Ta.ic,this.M!=b&&(this.M=b,this.video&&(a=this.video,b=this.M==V.Ta.ic?50:60,hb(a,"updateRate("+b+")"),a.qc=b))):(b&=V.Ta.Wb,this.L!=b&&(this.L=b,this.video&&(a=this.L==V.Ta.Wb?132:80,b=this.video,hb(b,"updateDimensions("+a+","+(80>>0,g],q=pa(p,k,a.uc);0>q&&p.splice(-(q+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.G.push({gf:b,F:c,Vd:d,Qa:e,tc:f})}delete this.Qa}return!0};Td.prototype.Ia=function(){return!0}; -function Ud(a,b,c,d){if(d)a.ka("Unable to load system ROM (error "+d+": "+b+")");else{bb(a.Bb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.B=f;else if(g)for(a.B=Array(4*g.length),d=c=0;c>8&255,a.B[d++]=g[c]>>16&255,a.B[d++]=g[c]>>24&255;else a.B=e;a.Qa=e.symbols;if(!a.B.length){w("Empty ROM: "+b);return}if(1==a.B.length){w(a.B[0]);return}}catch(h){a.ka("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm, -" ").replace(/ +$/,"").split(" "),a.B=Array(b.length),e=0;e>>f.ia;0>>=f.ia;0d?a.j.push({Rb:b,Ob:Date.now(),Db:!1}):(a.j[d].Ob=Date.now(),a.j[d].Db=!1);else if(0<=d){if(!a.j[d].Db){var e=a.j[d].Ob;if(e&&100>Date.now()-e)return a.j[d].Db=!0,ge(a),!0}a.j.splice(d,1)}if(a.I){d=0;switch(b){case "1p":d=U.Ya.jd;break;case "2p":d=U.Ya.nd;break;case "coin":d=U.Ya.Kc;break;case "left":d=U.Ya.ld;break;case "right":d=U.Ya.md;break;case "fire":d=U.Ya.kd}d&&(a=a.I,b=d,a.G&=~b,c&&(a.G|=b))}return!0} -function ge(a){for(var b=0,c=-1;bc||c>e)c=e}else{ee(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){ge(a)},c)}l.Ud=function(a,b){var c=this.G;0<=this.w&&(this.w>3)*a.ba,!xb(a.u,a.Ua,a.P,3)))return!1;a.P?(a.lc=a.I.createImageData(b,c),a.oc=16/a.Va|0,me(a,a.P>>1)):me(a,(a.ca+1)*a.wa);a.L=document.createElement("canvas");a.L.width=b;a.L.height=c;a.nb=a.L.getContext("2d");a.fa={};a.ra=1<=a.fc?8:16,f=8>(7>4)*c)}return k}he.prototype.Ea=function(){return!0};he.prototype.pa=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Jb[b]=c,!0;switch(b){case "fullScreen":return this.N[b]=c,this.j&&this.j.gb?c.onclick=function(){d.gb()}:c.parentNode.removeChild(c),!0}return!1}; -he.prototype.gb=function(){var a=!1;if(this.j){if(this.j.gb){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Y/this.O;b>c&&(a=Math.round(c/b*100)+"%")}this.kc?(this.M.style.width=a,this.M.style.width=a,this.M.style.display="block",this.M.style.margin="auto"):(this.j.style.width=a,this.j.style.height="auto");this.j.style.backgroundColor="black";this.j.gb();a=!0}this.la&&this.la.focus()}return a}; -function ke(a,b){!b&&a.j&&(a.kc?a.M.style.width=a.M.style.height="":a.j.style.width=a.j.style.height="");hb(a,"notifyFullScreen("+b+")")}function me(a,b){a.nc=b;a.ja=!1;if(void 0===a.G||a.G.length!=a.nc)a.G=Array(a.nc)}function oe(a,b,c,d,e){d=a.w?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.ma&&(208<=c&&236>c?e=a.ra+0:28<=c&&72>c&&(e=a.ra+1));a=a.ha[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} -function Mc(a,b){var c=!0;if(!b){a.Wa&&(120==a.Wa?a.pc&1?(Hd(a.b,2),c=!1):Hd(a.b,1):Hd(a.b,4));if(c&&a.ja&&a.P){for(var d=a.u,e=a.P,f=!0,g=a.Ua>>>d.ia;0>=1);;){var v=Ab(a.u,p++);if(127==(v&127)){var r=Ab(a.u,p++),d=r&96,c=(r&15)<<8|Ab(a.u,p),c=c+ -(r&16?8192:16384);break}if(n>4)*v.na,C,T,da,X,ta=v.sa,Cb=v.na;y?(C=x*r.sa,T=e*r.na,da=r.sa,X=r.na):(C=x*r.gc,T=e*r.hc,da=r.gc,X=r.hc);v.sa>r.sa&&(C*=2,da*=2);v.na>r.na&&(q||(G+=r.na),Cb=r.na);y?y.drawImage(v.canvas,ga,G,ta,Cb,C,T,da,X):(C+=0,T+=0,r.I.drawImage(v.canvas, -ga,G,ta,Cb,C,T,da,X))}h++}g++}e++}}a.ja=!0;!b&&a.ob&&1==h&&(a.G[k]=-1,h=0);a.ob=!1;(h||b)&&a.nb&&a.I.drawImage(a.L,0,a.eb,a.K,a.ba-a.na,0,0,a.Dc,a.Gd)}else{e=a.Ua;f=e+a.P;k=h=g=0;b=a.K;n=0;c=a.ba;q=d=0;p=a.Va;x=(1<>8|(r&255)<<8);h>y&x,oe(a,a.lc,h++,k,ga),y+=p;h>n&&(n=h);k=d&&(d=k+1)}e+=2;g++;if(h>=a.K&&(h=0,k++,k>a.ba))break}a.ja=!0;bMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=wa().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= -(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Va.aspect);f&&.3<=f&&3.33>=f&&(Ma("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Ca("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new he(d,e,g,f,c);fb(d,c)}}); -function pe(a){this.fa=+a.adapter;switch(this.fa){case 0:this.ha=0;this.la=2;break;default:w("Unrecognized serial adapter #"+this.fa);return}this.j=this.w=null;this.ja=a.tabSize;this.ea=a.charBOL;this.D=0;this.ba=!1;z.call(this,"SerialPort",a,pe,8388608);var b=a.binding;if("console"==b)this.w="";else{var c;a=qe;b&&(void 0===c&&(c="Panel"),(c=eb(c,this.id))&&(b=c.N[b])&&this.pa(null,a,b))}this.G="";this.J=this.M=null;this.exports={connect:this.zc,receiveData:this.Qb}}A(pe); -var re=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],se=[!1,0,0,133,142,39,238],qe="buffer";l=pe.prototype; -l.pa=function(a,b,c,d){var e=this;switch(b){case qe:return this.N[b]=this.j=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=na(b[0]);if(c!=this.cb)return;b=na(b[1]);if(this.J=db(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.M=d.receiveData){this.status(this.Bb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};l.Ea=function(a,b){if(!b)if(this.zc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -l.Ia=function(a){return a?this.save():!0};l.reset=function(){we(this)};l.save=function(){var a=new J(this),b=0,c=[];c[b++]=this.L;c[b++]=this.Y;c[b++]=this.ca;c[b++]=this.Da;c[b++]=this.K;c[b++]=this.P;c[b]=this.O;a.set(0,c);return a.data()};l.restore=function(a){return we(this,a[0])};function we(a,b){var c=0;b||(b=se);a.L=b[c++];a.Y=b[c++];a.ca=b[c++];a.Da=b[c++];a.K=b[c++];a.P=b[c++];a.O=b[c];return!0} -function xe(a,b){var c=a.O&b;b&15||(c>>=4);b=re[c];c=((a.K&12)>>2)+6;a.K&16&&c++;c+=((a.K&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function te(a,b){hb(a,"receiveByte("+ca(b)+"), status="+ca(a.Da));return a.ba||a.Da&2?!1:(a.Y=b,a.Da|=2,Hd(a.b,a.la),!0)}l.Qb=function(a){null!=a&&(this.G="number"!=typeof a?a:this.G+String.fromCharCode(a));this.G&&(te(this,this.G.charCodeAt(0))&&(this.G=this.G.substr(1)),this.G&&this.b&&Kc(this.b,this.ra,xe(this,15)));return!0}; -l.Od=function(a,b){var c=this.Y;E(this,a,null,b,"DATA",c);this.Da&=-3;return c};l.Nd=function(a,b){var c=this.Da;E(this,a,null,b,"STATUS",c);return c}; -l.Zd=function(a,b,c){E(this,a,b,c,"DATA");this.ca=b;this.Da&=-6;hb(this,"transmitByte("+ca(b)+")");if(19==b)this.ba=!0;else if(17==b)this.ba=!1;else if(this.M&&this.M.call(this.J,b),this.j)8==b?(this.j.value=this.j.value.slice(0,-1),0":String.fromCharCode(b),c=a.length,9==b?(b=this.ja||8,c=b-this.D%b,this.ja&&(a=ma("",c))):13==b&&(this.D=c=0,a="\n"),this.ea&&!this.D&&c&&(a=String.fromCharCode(this.ea)+a),this.j.value+=a,this.j.scrollTop=this.j.scrollHeight, -this.D+=c);else if(null!=this.w){if(10==b||1024<=this.w.length)this.g(this.w),this.w="";10!=b&&(this.w+=String.fromCharCode(b))}this.b&&Kc(this.b,this.ma,xe(this,240))};l.Yd=function(a,b,c){E(this,a,b,c,"CONTROL");this.L?(this.P=b,this.P&64&&(this.L=!1)):(this.K=b,this.L=!0)};l.Xd=function(a,b,c){E(this,a,b,c,"BAUDRATES");this.O=b};var ue={0:pe.prototype.Od,1:pe.prototype.Nd},ve={0:pe.prototype.Zd,1:pe.prototype.Yd,2:pe.prototype.Xd}; -Na(function(){for(var a=D(document,"pc8080","serial"),b=0;b=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};ye.prototype.Mb=function(){return-1};ye.prototype.Nb=function(){}; -ye.prototype.Fb=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.P?a="end":a=this.w[this.j+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(na(a.substring(d,f))),d=f+1}}return b}; -function Ae(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; +l.save=function(){var a=new J(this);switch(this.w.Ca){case U.Ca:a.set(0,[this.wa,this.G,this.Ba,this.Y,this.ea,this.ma,this.na]);break;case V.Ca:a.set(0,[this.ha,this.J]),a.set(1,[this.L,this.M]),a.set(2,[this.C,this.ba,this.la,this.ja]),a.set(3,[this.P,this.j,this.O,this.ca,this.F])}return a.data()}; +l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.w.Ca){case U.Ca:return this.wa=b[0],this.G=b[1],this.Ba=b[2],this.Y=b[3],this.ea=b[4],this.ma=b[5],this.na=b[6],!0;case V.Ca:return this.ha=b[0],this.J=b[1],b=a[1],this.L=b[0],this.M=b[1],b=a[2],this.C=b[0],this.ba=b[1],this.la=b[2],this.ja=b[3],b=a[3],this.P=b[0],this.j=b[1],this.O=b[2],this.ca=b[3],this.F=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Td=function(a,b){var c=this.wa;E(this,a,null,b,"STATUS0",c,!0);return c}; +l.Ud=function(a,b){var c=this.G;E(this,a,null,b,"STATUS1",c,!0);return c};l.Vd=function(a,b){var c=this.Ba;E(this,a,null,b,"STATUS2",c,!0);return c};l.Sd=function(a,b){var c=this.Y>>8-this.ea&255;E(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.ce=function(a,b,c){E(this,a,b,c,"SHIFT.COUNT",null,!0);this.ea=b};l.ee=function(a,b,c){E(this,a,b,c,"SOUND1",null,!0);this.ma=b};l.de=function(a,b,c){E(this,a,b,c,"SHIFT.DATA",null,!0);this.Y=b<<8|this.Y>>8}; +l.fe=function(a,b,c){E(this,a,b,c,"SOUND2",null,!0);this.na=b};l.ge=function(a,b,c){E(this,a,b,c,"WATCHDOG",null,!0)};function Rd(a){var b=0,c=0,d=~a.P;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c} +l.Wd=function(a,b){var c=this.J,c=c&~V.Ma.fc;if((Gc(this.b)&64)<<1&&(c|=V.Ma.fc,c!=this.J)){var d,e;d=this.O&1;e=this.O>>1&7;switch(e){case V.Na.Ta.wd:break;case V.Na.Ta.Hc:this.P=this.P<<1|d;break;case V.Na.Ta.Oc:d=Rd(this);this.F[d]=V.Na.Db;ib(this,"doNVRCommand(): erase data at addr "+u(d));break;case V.Na.Ta.Ic:this.j=this.j<<1|d;break;case V.Na.Ta.Ed:d=Rd(this);e=this.j&V.Na.Db;this.F[d]=e;ib(this,"doNVRCommand(): write data "+u(e)+" to addr "+u(d));break;case V.Na.Ta.td:d=Rd(this);e=this.F[d]; +null==e&&(e=V.Na.Db);this.j=e;ib(this,"doNVRCommand(): read data "+u(e)+" from addr "+u(d));break;case V.Na.Ta.vd:this.j<<=1;this.ca=this.j&V.Na.Db+1;break;default:ib(this,"doNVRCommand(): unrecognized command "+ca(e))}}c&=~V.Ma.gc;this.ca&&(c|=V.Ma.gc);c&=~V.Ma.ac;if(d=this.K){d=this.K;if(e=d.C)e=d.b,e=Gc(d.b)>=d.J+e.Y*e.Sa/1E3*1.2731488;e&&(d.C=!1);d=!d.C}d&&(c|=V.Ma.ac);c&=~V.Ma.pc;this.Ha&&this.Ha.Fa&1&&(c|=V.Ma.pc);this.J=c;E(this,a,null,b,"FLAGS",c);return c}; +l.he=function(a,b,c){E(this,a,b,c,"BRIGHTNESS");this.ha=b};l.ke=function(a,b,c){E(this,a,b,c,"NVR.LATCH");this.O=b};l.je=function(a,b,c){E(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.C=this.C&-4|a;break;case 1:this.C=this.C&-13|a<<2;this.video&&(b=this.video,a=this.C,ib(b,"updateScrollOffset("+a+")"),b.gb!==a&&((b.gb=a)?Nc(b,!0):b.qb=!0));break;case 2:switch(a){case 0:this.ba=~this.ba;break;case 2:case 3:this.la=3-a}break;case 3:this.ja=a}}; +l.ie=function(a,b,c){E(this,a,b,c,"DC011");b&V.Ua.sd?(b&=V.Ua.lc,this.M!=b&&(this.M=b,this.video&&(a=this.video,b=this.M==V.Ua.lc?50:60,ib(a,"updateRate("+b+")"),a.tc=b))):(b&=V.Ua.Zb,this.L!=b&&(this.L=b,this.video&&(a=this.L==V.Ua.Zb?132:80,b=this.video,ib(b,"updateDimensions("+a+","+(80>>0,g],q=pa(p,k,a.xc);0>q&&p.splice(-(q+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.G.push({kf:b,H:c,Yd:d,Ea:e,wc:f})}delete this.Ea}return!0};Ud.prototype.Ka=function(){return!0}; +function Vd(a,b,c,d){if(d)a.ka("Unable to load system ROM (error "+d+": "+b+")");else{cb(a.fb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.A=f;else if(g)for(a.A=Array(4*g.length),d=c=0;c>8&255,a.A[d++]=g[c]>>16&255,a.A[d++]=g[c]>>24&255;else a.A=e;a.Ea=e.symbols;if(!a.A.length){w("Empty ROM: "+b);return}if(1==a.A.length){w(a.A[0]);return}}catch(h){a.ka("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm, +" ").replace(/ +$/,"").split(" "),a.A=Array(b.length),e=0;e>>f.ia;0>>= +f.ia;0d?a.j.push({Ub:b,Pb:Date.now(),Eb:!1}):(a.j[d].Pb=Date.now(),a.j[d].Eb=!1);else if(0<=d){if(!a.j[d].Eb){var e=a.j[d].Pb;if(e&&100>Date.now()-e)return a.j[d].Eb=!0,he(a),!0}a.j.splice(d,1)}if(a.F){d=0;switch(b){case "1p":d=U.Za.md;break;case "2p":d=U.Za.qd;break;case "coin":d=U.Za.Nc;break;case "left":d=U.Za.od;break;case "right":d=U.Za.pd;break;case "fire":d=U.Za.nd}d&&(a=a.F,b=d,a.G&=~b,c&&(a.G|=b))}return!0} +function he(a){for(var b=0,c=-1;bc||c>e)c=e}else{fe(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){he(a)},c)}l.Xd=function(a,b){var c=this.G;0<=this.w&&(this.w>3)*a.ba,!yb(a.u,a.Va,a.P,3)))return!1;a.P?(a.oc=a.F.createImageData(b,c),a.rc=16/a.Wa|0,ne(a,a.P>>1)):ne(a,(a.ca+1)*a.wa);a.L=document.createElement("canvas");a.L.width=b;a.L.height=c;a.pb=a.L.getContext("2d");a.fa={};a.ma=1<=a.ic?8:16,f=8>(7>4)*c)}return k}ie.prototype.Ga=function(){return!0};ie.prototype.qa=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Kb[b]=c,!0;switch(b){case "fullScreen":return this.N[b]=c,this.j&&this.j.ib?c.onclick=function(){d.ib()}:c.parentNode.removeChild(c),!0}return!1}; +ie.prototype.ib=function(){var a=!1;if(this.j){if(this.j.ib){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Y/this.O;b>c&&(a=Math.round(c/b*100)+"%")}this.nc?(this.M.style.width=a,this.M.style.width=a,this.M.style.display="block",this.M.style.margin="auto"):(this.j.style.width=a,this.j.style.height="auto");this.j.style.backgroundColor="black";this.j.ib();a=!0}this.la&&this.la.focus()}return a}; +function le(a,b){!b&&a.j&&(a.nc?a.M.style.width=a.M.style.height="":a.j.style.width=a.j.style.height="");ib(a,"notifyFullScreen("+b+")")}function ne(a,b){a.qc=b;a.ja=!1;if(void 0===a.G||a.G.length!=a.qc)a.G=Array(a.qc)}function pe(a,b,c,d,e){d=a.w?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.na&&(208<=c&&236>c?e=a.ma+0:28<=c&&72>c&&(e=a.ma+1));a=a.ha[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} +function Nc(a,b){var c=!0;if(!b){a.Xa&&(120==a.Xa?a.sc&1?(Id(a.b,2),c=!1):Id(a.b,1):Id(a.b,4));if(c&&a.ja&&a.P){for(var d=a.u,e=a.P,f=!0,g=a.Va>>>d.ia;0>=1);;){var v=Bb(a.u,p++);if(127==(v&127)){var r=Bb(a.u,p++),d=r&96,c=(r&15)<<8|Bb(a.u,p),c=c+ +(r&16?8192:16384);break}if(n>4)*v.oa,C,T,da,X,ta=v.sa,Eb=v.oa;y?(C=x*r.sa,T=e*r.oa,da=r.sa,X=r.oa):(C=x*r.jc,T=e*r.kc,da=r.jc,X=r.kc);v.sa>r.sa&&(C*=2,da*=2);v.oa>r.oa&&(q||(H+=r.oa),Eb=r.oa);y?y.drawImage(v.canvas,ga,H,ta,Eb,C,T,da,X):(C+=0,T+=0,r.F.drawImage(v.canvas, +ga,H,ta,Eb,C,T,da,X))}h++}g++}e++}}a.ja=!0;!b&&a.qb&&1==h&&(a.G[k]=-1,h=0);a.qb=!1;(h||b)&&a.pb&&a.F.drawImage(a.L,0,a.gb,a.J,a.ba-a.oa,0,0,a.Gc,a.Jd)}else{e=a.Va;f=e+a.P;k=h=g=0;b=a.J;n=0;c=a.ba;q=d=0;p=a.Wa;x=(1<>8|(r&255)<<8);h>y&x,pe(a,a.oc,h++,k,ga),y+=p;h>n&&(n=h);k=d&&(d=k+1)}e+=2;g++;if(h>=a.J&&(h=0,k++,k>a.ba))break}a.ja=!0;bMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=xa().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= +(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Wa.aspect);f&&.3<=f&&3.33>=f&&(Na("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Da("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new ie(d,e,g,f,c);gb(d,c)}}); +function qe(a){this.fa=+a.adapter;switch(this.fa){case 0:this.ha=0;this.la=2;break;default:w("Unrecognized serial adapter #"+this.fa);return}this.j=this.w=null;this.ja=a.tabSize;this.ea=a.charBOL;this.C=0;this.ba=!1;z.call(this,"SerialPort",a,qe,8388608);var b=a.binding;if("console"==b)this.w="";else{var c;a=re;b&&(void 0===c&&(c="Panel"),(c=fb(c,this.id))&&(b=c.N[b])&&this.qa(null,a,b))}this.G="";this.K=this.M=null;this.exports={connect:this.Cc,receiveData:this.Tb}}A(qe); +var se=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],te=[!1,0,0,133,142,39,238],re="buffer";l=qe.prototype; +l.qa=function(a,b,c,d){var e=this;switch(b){case re:return this.N[b]=this.j=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=na(b[0]);if(c!=this.eb)return;b=na(b[1]);if(this.K=eb(b)){var d=this.K.exports;if(d){var e=d.connect;e&&e.call(this.K);if(this.M=d.receiveData){this.status(this.fb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};l.Ga=function(a,b){if(!b)if(this.Cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; +l.Ka=function(a){return a?this.save():!0};l.reset=function(){xe(this)};l.save=function(){var a=new J(this),b=0,c=[];c[b++]=this.L;c[b++]=this.Y;c[b++]=this.ca;c[b++]=this.Fa;c[b++]=this.J;c[b++]=this.P;c[b]=this.O;a.set(0,c);return a.data()};l.restore=function(a){return xe(this,a[0])};function xe(a,b){var c=0;b||(b=te);a.L=b[c++];a.Y=b[c++];a.ca=b[c++];a.Fa=b[c++];a.J=b[c++];a.P=b[c++];a.O=b[c];return!0} +function ye(a,b){var c=a.O&b;b&15||(c>>=4);b=se[c];c=((a.J&12)>>2)+6;a.J&16&&c++;c+=((a.J&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function ue(a,b){ib(a,"receiveByte("+ca(b)+"), status="+ca(a.Fa));return a.ba||a.Fa&2?!1:(a.Y=b,a.Fa|=2,Id(a.b,a.la),!0)}l.Tb=function(a){null!=a&&(this.G="number"!=typeof a?a:this.G+String.fromCharCode(a));this.G&&(ue(this,this.G.charCodeAt(0))&&(this.G=this.G.substr(1)),this.G&&this.b&&Lc(this.b,this.ma,ye(this,15)));return!0}; +l.Rd=function(a,b){var c=this.Y;E(this,a,null,b,"DATA",c);this.Fa&=-3;return c};l.Qd=function(a,b){var c=this.Fa;E(this,a,null,b,"STATUS",c);return c}; +l.be=function(a,b,c){E(this,a,b,c,"DATA");this.ca=b;this.Fa&=-6;ib(this,"transmitByte("+ca(b)+")");if(19==b)this.ba=!0;else if(17==b)this.ba=!1;else if(this.M&&this.M.call(this.K,b),this.j)8==b?(this.j.value=this.j.value.slice(0,-1),0":String.fromCharCode(b),c=a.length,9==b?(b=this.ja||8,c=b-this.C%b,this.ja&&(a=ma("",c))):13==b&&(this.C=c=0,a="\n"),this.ea&&!this.C&&c&&(a=String.fromCharCode(this.ea)+a),this.j.value+=a,this.j.scrollTop=this.j.scrollHeight, +this.C+=c);else if(null!=this.w){if(10==b||1024<=this.w.length)this.g(this.w),this.w="";10!=b&&(this.w+=String.fromCharCode(b))}this.b&&Lc(this.b,this.na,ye(this,240))};l.ae=function(a,b,c){E(this,a,b,c,"CONTROL");this.L?(this.P=b,this.P&64&&(this.L=!1)):(this.J=b,this.L=!0)};l.$d=function(a,b,c){E(this,a,b,c,"BAUDRATES");this.O=b};var ve={0:qe.prototype.Rd,1:qe.prototype.Qd},we={0:qe.prototype.be,1:qe.prototype.ae,2:qe.prototype.$d}; +Oa(function(){for(var a=D(document,"pc8080","serial"),b=0;b=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};ze.prototype.Nb=function(){return-1};ze.prototype.Ob=function(){}; +ze.prototype.Gb=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.P?a="end":a=this.w[this.j+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(na(a.substring(d,f))),d=f+1}}return b}; +function Be(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} -function Be(a,b,c){var d;if(b){b=Ce(a,b);for(var e=0,f=!1,g=b,h=[],k=[],n=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=p+g;d>>=8}d=t(c,0,!0)+" "+c+". "+ba(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.g((null!=b?b+": ":"")+d);return e}function Ge(a,b){if(b)return Ee(a,b,a.ea[b]);var c=0;for(b in a.ea)Ee(a,b,a.ea[b]),c++;return 0=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=p+g;d>>=8}d=t(c,0,!0)+" "+c+". "+ba(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.g((null!=b?b+": ":"")+d);return e}function He(a,b){if(b)return Fe(a,b,a.ea[b]);var c=0;for(b in a.ea)Fe(a,b,a.ea[b]),c++;return 0>>d.u.ia;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.g("..."):(c=p.type,n=zb[c],p&&d.g(t(p.id)+" %"+t(e<>>e.ia;f!=e.u?e.X[g].Tb(f,b&65535,d):(e.X[g++].zb(f,b&255,d),e.X[g&e.G].zb(0,b>>8&255,d+1));c&&sf(a,c);Dc(this.b,!0)}};function Y(a){return{F:a,Oa:!1}}function tf(a){return[a.F,a.Oa]}function uf(a){return{F:a[0],Oa:a[1]}} -function Se(a,b,c){var d;c=(c?a.M:a.Ua).F;if(void 0!==b){d=b=Ce(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;cc&&(c=sa(Pe,a.substr(b,1))));return c};function xf(a,b){var c=0;a=a.Nb(b);if(void 0!==a)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?t(a,c):"??"} -l.Nb=function(a){var b;if(0<=a){var c=this.b;switch(a){case 7:b=c.i;break;case 0:b=c.S;break;case 1:b=c.T;break;case 8:b=Uc(c);break;case 2:b=c.U;break;case 3:b=c.V;break;case 9:b=Wc(c);break;case 4:b=c.W;break;case 5:b=c.Z;break;case 10:b=K(c);break;case 6:b=c.aa(K(c));break;case 11:b=c.oa;break;case 12:b=c.R;break;case 13:b=Tc(c);break;case 14:b=Tc(c)&255|c.i<<8}}return b}; -function yf(a,b){b=Ce(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Mb(b,c+1),0<=e&&(b=b.substr(0,c)+xf(a,e)+b.substr(c+1+Pe[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Se(a,e))?(d=e+' "'+wf(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Se(a,e))?(sf(d),d=e+ -' "'+wf(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Z(Y(this.b.R).F));this.ta&1073741824?this.ra.push(a):this.la&&a==this.la||(this.la=a,this.ta&-2147483648&&(this.qa(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,Lc(a),a.P=0,Dc(a)))}; -function gb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ta&h)!=h||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+ca(d):"")+")"+(null!=g?": "+ca(g):"")+(null!=e?" at "+Z(e):""))} -function Ke(a){var b;if(Id(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b>>d.ia],!1)}a.O=["br"];if(a.D)for(b=1;b>>d.ia],!0);a.D=["bw"];a.Wa=0}l.Za=function(a,b,c){var d=!0;c||Df(this,a,b,!1,!0);if(a!=this.I){var e=Re(b);if(-1===e)this.g("invalid address: "+Z(b.F)),d=!1;else{var f=this.u;f.X[e>>>f.ia].Za(e&f.u,a==this.D)}}d&&(a.push(b),c?b.Oa=!0:(Ef(this,a,a.length-1,"set"),Ke(this)));return d}; -function Df(a,b,c,d,e){var f=!1;c=Re(c);for(var g=1;g>>d.ia],b==a.D));h.Oa||Ke(a);break}}return f}function Ff(a,b){for(var c=1;c>24,4);break;case 3:y=t(v.$a(y,2),4);break;default:v="imm("+u(r)+")";break a}8086==v.style&&r&64?y="["+y+"]":r&16||(y=(v.style==Ie?"$":"0x")+y);v=y}else r&16? -(v=(q&3840)>>8,r=Pe[v],8086==a.style&&q&64&&(6==v&&(r="HL"),r="["+r+"]"),v=r):r&128&&(v=(f>>3&7).toString());if(!v||!v.length){h="INVALID";break}0b[0]?1:a[0]>>0;for(b=0;b>>0,h=f.Vd;if(e>=g&&e>8&255;case "C":d.T=f&255;break;case "D":d.U=f&255;break; -case "DE":d.U=f>>8&255;case "E":d.V=f&255;break;case "H":d.W=f&255;break;case "HL":d.W=f>>8&255;case "L":d.Z=f&255;break;case "SP":d.oa=f&65535;break;case "PC":I(d,f);a.M=Y(d.R);break;case "PS":Rc(d,f);break;case "PSW":Rc(d,f&255|d.ua&-256);d.i=f>>8;break;case "CF":d.da=f?d.da|256:d.da&255;break;case "PF":f?ad(d)||(d.ga^=1):ad(d)&&(d.ga^=1);break;case "AF":d.ya=f?~d.ga&16|d.ya&-17:d.ga&16|d.ya&-17;break;case "ZF":d.da=f?d.da&-256:d.da|255;break;case "SF":f?dd(d)||(d.ga^=192):dd(d)&&(d.ga^=192);break; -case "IF":d.ua=f?d.ua|512:d.ua&-513;break;default:a.g("unknown register: "+e);return}Dc(d);a.g("updated registers:")}a.g(Kf(a));c&&(a.M=Y(d.R),Bf(a,Z(a.M.F)))}}function Rf(a,b){b=na(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(yf(a,c[2])):Be(a,b,!0)}function Sf(a,b,c){var d="t"!=b;c=De(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Da(c,function(){return jb(a,!0)&&a.kb(e,d,!1)},function(){Dc(a.b);jb(a,!1)})} -function Bf(a,b,c,d){if(b=Se(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Se(a,c,!0);if(!d||d.Fh[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.g(n)}h[3]&&(g=h[3],f=null);f=Hf(a,b,g,f);a.g(f);a.M=b;e-=b.F-k;c++}}} -l.Fb=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.P?a="end":a=this.w[this.j+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(na(a.substring(d,f))),d=f+1}}return b}; -function Gf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.P&&(a.g("ended assemble at "+Z(a.ca.F)),a.M=a.ca,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.la=null;if(lb(a)&&0n||"z"Fa.length&&(a.g("note: only "+Fa.length+" available"),ia=Fa.length);ua-=ia;0>ua&&(null==Fa[Fa.length-1].F?(ia=ua+ia,ua=0):ua+=Fa.length);var ld=[];"call"==Ye&&(Gb=1E5,ld=["CALL"]);for(void 0!==Xe&&a.g(ia+" instructions earlier:");0< -Gb&&ua!=a.fa;){var af=Fa[ua++];if(null==af.F)break;var Hb=Y(af.F),kg=ia--,bf=Hf(a,Hb,"history",kg);(!ld.length||0<=bf.indexOf(ld[0]))&&a.g(bf);Hb.Lb&&(ua+=Hb.Lb,Gb-=Hb.Lb,ia-=Hb.Lb);ua>=Fa.length&&(ua=0);a.eb=ia;$e++;Gb--}}$e||(a.g("no "+Ze+"history available"),a.eb=void 0)}else{var nc=Se(a,X);if(nc){var oc=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Cb),oc=De(a,ta)>>>0,65536>4||1;lg--&&0sc?String.fromCharCode(sc):".";qc--}Ib&&(Ib+="\n");Ib+=X+" "+nd+(Jb?"":" "+cf)}Ib&&a.g(Ib);a.Ua=nc}}}}break;case "e":if("else"==f[0])break;var tc=1,df=255,ef=a.aa,ff=a.va;"ew"==f[0]&&(tc=2,df=65535,ef=a.$a,ff=a.Ib);var gf=tc<<1,hf=f[1];if(null==hf)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a"); -else{var uc=Se(a,hf);if(uc)for(var vc=2;vcud;){for(var Xa=null,rg=256;65536>Mb.F>>>0;){kf.F=a.$a(Mb,2);if(null==Mb.F||!rg--)break;for(var sg=a,xc=kf,lf= -null,Nb=xc.F,mf=Nb,vd=1;6>=vd&&Nb;vd++){if(2\nLicense: GPL version 3 or later ");for(b=0;bWf){if(Yf(d,this.L)){this.D=new J(this,"1.30.1","failsafe");Yf(this.D)&&(cg(this,d),a=2,dg(this.D));this.D.set("timestamp",ra());eg(this.D);var e=this.B&&!this.J;if(1==a||xa("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=bg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Yf(d,g):("error"== -f&&"no machine state"!=g?(this.ka("Error: "+g),"unable to verify user"==g&&(Ba("user",""),this.j=null)):this.g(f+": "+g),dg(d),Yf(d)?(c=bg(d),e=!0):c=!1))}e&&ag(this,c?d:null)}else 2==a&&d.clear()}else ag(this);delete this.L;delete this.M}e=cb(this.id);for(f=0;fa[1];a=a[2];this.ha=!0;this.C.xa=!0;var d=this.N.power;d&&(d.textContent="Shutdown");this.b&&(fg(this,this.b,b,c,a),this.b.rb());this.Y&&(cg(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.w=0}; -function cg(a,b){if(xa("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.j||"";b=b.toString();var d={app:"PC8080",ver:"1.30.1"};d.url=a.fa;d.user=c;d.type="bug";d.data=b;va("http://www.pcjs.org/api/v1/report",d,!0)}} -function Tf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new J(a,"1.30.1"),g=new J(a,"1.30.1","validate"),h=ra();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",wa());a.b&&a.b.Ia&&(c&&a.b.qa(),d=a.b.Ia(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.C.xa=!1,!1===d&&(e=null)));for(var h=cb(a.id),k=0;kf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PC8080$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255>>d.u.ia;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.g("..."):(c=p.type,n=Ab[c],p&&d.g(t(p.id)+" %"+t(e<>>e.ia;f!=e.u?e.X[g].Wb(f,b&65535,d):(e.X[g++].Bb(f,b&255,d),e.X[g&e.G].Bb(0,b>>8&255,d+1));c&&Ue(a,c);Ec(this.b,!0)}};function Y(a){return{H:a,Qa:!1}}function uf(a){return[a.H,a.Qa]}function vf(a){return{H:a[0],Qa:a[1]}} +function Te(a,b,c){var d;c=(c?a.M:a.Va).H;if(void 0!==b){d=b=De(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;cc&&(c=sa(Qe,a.substr(b,1))));return c};function yf(a,b){var c=0;a=a.Ob(b);if(void 0!==a)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?t(a,c):"??"} +l.Ob=function(a){var b;if(0<=a){var c=this.b;switch(a){case 7:b=c.i;break;case 0:b=c.S;break;case 1:b=c.T;break;case 8:b=Vc(c);break;case 2:b=c.U;break;case 3:b=c.V;break;case 9:b=Xc(c);break;case 4:b=c.W;break;case 5:b=c.Z;break;case 10:b=K(c);break;case 6:b=c.aa(K(c));break;case 11:b=c.pa;break;case 12:b=c.R;break;case 13:b=Uc(c);break;case 14:b=Uc(c)&255|c.i<<8}}return b}; +function zf(a,b){b=De(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Nb(b,c+1),0<=e&&(b=b.substr(0,c)+yf(a,e)+b.substr(c+1+Qe[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Te(a,e))?(d=e+' "'+xf(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Te(a,e))?(Ue(d),d=e+ +' "'+xf(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Z(Y(this.b.R).H));this.ta&1073741824?this.ma.push(a):this.la&&a==this.la||(this.la=a,this.ta&-2147483648&&(this.ra(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,Mc(a),a.P=0,Ec(a)))}; +function hb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ta&h)!=h||a.message(b.eb+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+ca(d):"")+")"+(null!=g?": "+ca(g):"")+(null!=e?" at "+Z(e):""))} +function Le(a){var b;if(Jd(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b>>d.ia],!1)}a.O=["br"];if(a.C)for(b=1;b>>d.ia],!0);a.C=["bw"];a.Xa=0}l.$a=function(a,b,c){var d=!0;c||Ef(this,a,b,!1,!0);if(a!=this.F){var e=Se(b);if(-1===e)this.g("invalid address: "+Z(b.H)),d=!1;else{var f=this.u;f.X[e>>>f.ia].$a(e&f.u,a==this.C)}}d&&(a.push(b),c?b.Qa=!0:(Ff(this,a,a.length-1,"set"),Le(this)));return d}; +function Ef(a,b,c,d,e){var f=!1;c=Se(c);for(var g=1;g>>d.ia],b==a.C));h.Qa||Le(a);break}}return f}function Gf(a,b){for(var c=1;c>24,4);break;case 3:y=t(v.ab(y,2),4);break;default:v="imm("+u(r)+")";break a}8086==v.style&&r&64?y="["+y+"]":r&16||(y=(v.style==Je?"$":"0x")+y);v=y}else r&16? +(v=(q&3840)>>8,r=Qe[v],8086==a.style&&q&64&&(6==v&&(r="HL"),r="["+r+"]"),v=r):r&128&&(v=(f>>3&7).toString());if(!v||!v.length){h="INVALID";break}0b[0]?1:a[0]>>0;for(b=0;b>>0,h=f.Yd;if(e>=g&&e>8&255;case "C":d.T=f&255;break;case "D":d.U=f&255;break; +case "DE":d.U=f>>8&255;case "E":d.V=f&255;break;case "H":d.W=f&255;break;case "HL":d.W=f>>8&255;case "L":d.Z=f&255;break;case "SP":d.pa=f&65535;break;case "PC":I(d,f);a.M=Y(d.R);break;case "PS":Sc(d,f);break;case "PSW":Sc(d,f&255|d.ua&-256);d.i=f>>8;break;case "CF":d.da=f?d.da|256:d.da&255;break;case "PF":f?bd(d)||(d.ga^=1):bd(d)&&(d.ga^=1);break;case "AF":d.ya=f?~d.ga&16|d.ya&-17:d.ga&16|d.ya&-17;break;case "ZF":d.da=f?d.da&-256:d.da|255;break;case "SF":f?ed(d)||(d.ga^=192):ed(d)&&(d.ga^=192);break; +case "IF":d.ua=f?d.ua|512:d.ua&-513;break;default:a.g("unknown register: "+e);return}Ec(d);a.g("updated registers:")}a.g(Lf(a));c&&(a.M=Y(d.R),Cf(a,Z(a.M.H)))}}function Sf(a,b){b=na(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(zf(a,c[2])):Ce(a,b,!0)}function Tf(a,b,c){var d="t"!=b;c=Ee(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ea(c,function(){return kb(a,!0)&&a.mb(e,d,!1)},function(){Ec(a.b);kb(a,!1)})} +function Cf(a,b,c,d){if(b=Te(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Te(a,c,!0);if(!d||d.Hh[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.g(n)}h[3]&&(g=h[3],f=null);f=If(a,b,g,f);a.g(f);a.M=b;e-=b.H-k;c++}}} +l.Gb=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.P?a="end":a=this.w[this.j+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(na(a.substring(d,f))),d=f+1}}return b}; +function Hf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.P&&(a.g("ended assemble at "+Z(a.ca.H)),a.M=a.ca,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.la=null;if(mb(a)&&0n||"z"Ga.length&&(a.g("note: only "+Ga.length+" available"),ia=Ga.length);ua-=ia;0>ua&&(null==Ga[Ga.length-1].H?(ia=ua+ia,ua=0):ua+=Ga.length);var md=[];"call"==$e&&(Ib=1E5,md=["CALL"]);for(void 0!==Ze&&a.g(ia+" instructions earlier:");0< +Ib&&ua!=a.fa;){var cf=Ga[ua++];if(null==cf.H)break;var Jb=Y(cf.H),lg=ia--,df=If(a,Jb,"history",lg);(!md.length||0<=df.indexOf(md[0]))&&a.g(df);Jb.Mb&&(ua+=Jb.Mb,Ib-=Jb.Mb,ia-=Jb.Mb);ua>=Ga.length&&(ua=0);a.gb=ia;bf++;Ib--}}bf||(a.g("no "+af+"history available"),a.gb=void 0)}else{var oc=Te(a,X);if(oc){var pc=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Eb),pc=Ee(a,ta)>>>0,65536>4||1;mg--&&0tc?String.fromCharCode(tc):".";rc--}Kb&&(Kb+="\n");Kb+=X+" "+od+(Lb?"":" "+ef)}Kb&&a.g(Kb);a.Va=oc}}}}break;case "e":if("else"==f[0])break;var uc=1,ff=255,gf=a.aa,hf=a.va;"ew"==f[0]&&(uc=2,ff=65535,gf=a.ab,hf=a.Jb);var jf=uc<<1,kf=f[1];if(null==kf)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a"); +else{var vc=Te(a,kf);if(vc)for(var wc=2;wcvd;){for(var Za=null,sg=256;65536>Ob.H>>>0;){mf.H=a.ab(Ob,2);if(null==Ob.H||!sg--)break;for(var tg=a,yc=mf,nf= +null,Pb=yc.H,of=Pb,wd=1;6>=wd&&Pb;wd++){if(2\nLicense: GPL version 3 or later ");for(b=0;bXf){if(Zf(d,this.L)){this.C=new J(this,"1.30.1","failsafe");Zf(this.C)&&(dg(this,d),a=2,eg(this.C));this.C.set("timestamp",ra());fg(this.C);var e=this.A&&!this.K;if(1==a||ya("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=cg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Zf(d,g):("error"== +f&&"no machine state"!=g?(this.ka("Error: "+g),"unable to verify user"==g&&(Ca("user",""),this.j=null)):this.g(f+": "+g),eg(d),Zf(d)?(c=cg(d),e=!0):c=!1))}e&&bg(this,c?d:null)}else 2==a&&d.clear()}else bg(this);delete this.L;delete this.M}e=db(this.id);for(f=0;fa[1];a=a[2];this.ha=!0;this.D.xa=!0;var d=this.N.power;d&&(d.textContent="Shutdown");this.b&&(gg(this,this.b,b,c,a),this.b.tb());this.Y&&(dg(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0}; +function dg(a,b){if(ya("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.j||"";b=b.toString();var d={app:"PC8080",ver:"1.30.1"};d.url=a.fa;d.user=c;d.type="bug";d.data=b;va("http://www.pcjs.org/api/v1/report",d,!0)}} +function Uf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new J(a,"1.30.1"),g=new J(a,"1.30.1","validate"),h=ra();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",xa());a.b&&a.b.Ka&&(c&&a.b.ra(),d=a.b.Ka(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.D.xa=!1,!1===d&&(e=null)));for(var h=db(a.id),k=0;kf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PC8080$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");va(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,""); -a=a.replace(d[0],g);zg(a,b,c)}})}else c(a,null)} -function Ag(a,b,c,d){function e(a){if(void 0===h){var b=g&&D(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=la(a))}function f(a){e("Error: "+a);k&&(--jg||Qa(!0));k=!1}var g,h,k=!0;jg++;ab[a]={};try{if(g=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=n:q.appendChild(document.createTextNode(n));p.appendChild(q)}c|| -(c="/versions/pc8080/1.30.1/components.xsl");n=function(d,h){h?xg(c,null,null,!1,e,function(d,k){k?(bb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--jg||Qa(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--jg||Qa(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?xg(b,a,d,!0,e,n):yg(b,null,a,d,!1,e,n)}else f("missing machine element: "+a)}catch(x){f(x.message)}return k}window.embedPC8080=function(a,b,c,d){Qa(!1);return Ag(a,b,c,d)};window.enableEvents=Qa;window.sendEvent=Sa;})(); +function Ag(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");va(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,""); +a=a.replace(d[0],g);Ag(a,b,c)}})}else c(a,null)} +function Bg(a,b,c,d){function e(a){if(void 0===h){var b=g&&D(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=la(a))}function f(a){e("Error: "+a);k&&(--kg||Sa(!0));k=!1}var g,h,k=!0;kg++;bb[a]={};try{if(g=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=n:q.appendChild(document.createTextNode(n));p.appendChild(q)}c|| +(c="/versions/pc8080/1.30.1/components.xsl");n=function(d,h){h?yg(c,null,null,!1,e,function(d,k){k?(cb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--kg||Sa(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--kg||Sa(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?yg(b,a,d,!0,e,n):zg(b,null,a,d,!1,e,n)}else f("missing machine element: "+a)}catch(x){f(x.message)}return k}window.embedPC8080=function(a,b,c,d){Sa(!1);return Bg(a,b,c,d)};window.enableEvents=Sa;window.sendEvent=Ta;})(); diff --git a/versions/pc8080/1.30.1/pc8080.js b/versions/pc8080/1.30.1/pc8080.js index b6a8f09227..6654169c13 100644 --- a/versions/pc8080/1.30.1/pc8080.js +++ b/versions/pc8080/1.30.1/pc8080.js @@ -29,169 +29,174 @@ http://pcjs.org/modules/pc8080/lib/computer.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2016 */ -var k,m={pd:1,qd:3,rd: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,jb:65,Mb:66,Ob:67,mb:68,E:69,Rb:70,Sb:71,Tb:72,Ub:73,ac:74,bc:75,ob:76,ic:77,jc:78,mc:79,nc:80,Q:81,tc:82,wc:83,Bc:84,Cc:85,Dc:86,Ec:87,Gc:88,Hc:89,Ic:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Zd:97,$d:98,ae:99,d:100,e:101,be:102,ce:103,de:104,ee:105,fe:106,k:107,ge:108, -he:109,n:110,ie:111,p:112,q:113,r:114,je:115,t:116,ke:117,le:118,me:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126}; +var k,m={td:1,ud:3,vd: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,nb:65,Qb:66,Sb:67,qb:68,E:69,Vb:70,Wb:71,Xb:72,Yb:73,ec:74,fc:75,sb:76,mc:77,nc:78,qc:79,rc:80,Q:81,xc:82,Ac:83,Fc:84,Gc:85,Hc:86,Ic:87,Kc:88,Lc:89,Mc:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,ce:97,de:98,ee:99,d:100,e:101,fe:102,ge:103,he:104,ie:105,je:106,k:107,ke:108, +le:109,n:110,me:111,p:112,q:113,r:114,ne:115,t:116,oe:117,pe:118,qe:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126}; function aa(a){var b=16,c;if(a){b||(b=10);var d=a.charAt(0),e=0=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function ba(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0":">",'"':""","'":"'"};function ga(a){return a.replace(/[&<>"']/g,function(a){return fa[a]})}function ha(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")} var ia={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"},ja=Date.now||function(){return+new Date}; function ka(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())} function la(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"== -typeof b){var l="",n;for(n in b)b.hasOwnProperty(n)&&(l&&(l+="&"),l+=n+"="+encodeURIComponent(b[n]));l=l.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}function ea(){return"http://"+(window?window.location.host:"www.pcjs.org")} -function q(a){window&&window.alert(a)}function ma(a){var b=!1;window&&(b=window.confirm(a));return b}var na=null;function oa(){if(null==na){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}na=a}return na}function pa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b} -function qa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ra(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var ta={init:[],show:[],exit:[]},ua=!1,va=!1,wa=!0;function xa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function ya(a){ta.init.push(a)} -function za(a){if(wa)try{for(var b=0;bb?this.Sa=this.id:(this.Ta=this.id.substr(0,b),this.Sa=this.id.substr(b+1));this[a]=c;this.l={ready:!1,Wa:!1,eb:!1,Y:!1,error:!1};this.Za=null;this.l.error=!1;this.A={};this.O=null;v.push(this)}var Da=void 0,Ea={}; -if(window){Da||(Da=window.location.search.substr(1));for(var Fa,Ga=/\+/g,Ha=/([^&=]+)=?([^&]*)/g;Fa=Ha.exec(Da);)Ea[decodeURIComponent(Fa[1].replace(Ga," "))]=decodeURIComponent(Fa[2].replace(Ga," "))}function Ia(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} -function w(a,b){b||(b=r);a.prototype=Ia(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ja=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Ja={},v=[];function Ka(a,b,c){Ja[a]&&b&&(Ja[a][b]=c)}function Aa(a,b,c){b||q((c?c+": ":"")+a)} -function La(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>8&255;else if(e=g.data)for(d.Y=Array(4*e.length),f=c=0;c>8&255,d.Y[f++]=e[c]>>16&255,d.Y[f++]=e[c]>>24&255;else d.Y=g;d.wa=g.symbols;d.Y.length?1==d.Y.length&&(q(d.Y[0]),d=null):(q("Empty resource: "+ +a),d=null)}catch(h){q("Resource data error: "+h.message),d=null}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),d.Y=Array(a.length),c=0;cb?this.Va=this.id:(this.ya=this.id.substr(0,b),this.Va=this.id.substr(b+1));this[a]=c;this.l={ready:!1,Ya:!1,gb:!1,Z:!1,error:!1};this.ab=null;this.l.error=!1;this.A={};this.O=null;v.push(this)}var Ea=void 0,Fa={}; +if(window){Ea||(Ea=window.location.search.substr(1));for(var Ga,Ha=/\+/g,Ia=/([^&=]+)=?([^&]*)/g;Ga=Ia.exec(Ea);)Fa[decodeURIComponent(Ga[1].replace(Ha," "))]=decodeURIComponent(Ga[2].replace(Ha," "))}function Ja(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} +function w(a,b){b||(b=r);a.prototype=Ja(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ka=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Ka={},v=[];function La(a,b,c){Ka[a]&&b&&(Ka[a][b]=c)}function Ba(a,b,c){b||q((c?c+": ":"")+a)} +function Ma(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>1)+2;10>this.j&&(this.j=10);15>2;this.f=this.c-1;this.i=this.u/this.c|0;this.o=this.i-1;this.m=[];this.v=[];this.B=[];this.C=[];a=new D;Ya(a,this.O);this.b=Array(this.i);for(b=0;b>>a.j;0f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.Ma)return h.cb+=h.Ma-e,h.Ma=e,!0;if(e>=h.Ma+h.cb){n=h.size-(e-l);n>f&&(n=f);h.cb=e-h.Ma+n;e=l+a.c;f-=n;g++;continue}}return $a(1,e,f)}e=new D(e,n,a.c,d);Ya(e,a.O,h);a.b[g++]=e;e=l+a.c;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+ab[d]+" at "+p(b,4,!0)),!0):$a(2,b,c)}Xa.prototype.J=function(a){return this.b[(a&this.g)>>>this.j].Pa(a&this.f,a)}; -function bb(a,b){return a.b[(b&a.g)>>>a.j].bb(b&a.f,b)}function cb(a,b){var c=b&a.f,d=(b&a.g)>>>a.j;return c!=a.f?a.b[d].kd(c,b):a.b[d++].Pa(c,b)|a.b[d&a.o].Pa(0,b+1)<<8}Xa.prototype.aa=function(a,b){this.b[(a&this.g)>>>this.j].Qa(a&this.f,b&255,a)};function db(a,b,c){a.b[(b&a.g)>>>a.j].Hb(b&a.f,c&255,b)}function fb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.j;d!=a.f?a.b[e].ld(d,c&65535,b):(a.b[e++].Qa(d,c&255,b),a.b[e&a.o].Qa(0,c>>8&255,b+1))} -function gb(a){for(var b=0,c=[],d=0;d>1),this.a=new Int32Array(this.j,0,c>>2),pb(this,lb?qb:rb);else{this.a=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},C:function(a){return this.a[a>> -2]>>>((a&3)<<3)&255},I:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},S:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.na=!0},w:function(a,b){return this.bb(a,b)},H:function(a,b){return this.Eb(a,b)},N:function(a,b,c){this.c||this.Hb(a,b,c)},W:function(a, -b,c){this.c||this.X(a,b,c)},u:function(a){return this.b[a]},B:function(a){return this.b[a]},G:function(a){return this.A.getUint16(a,!0)},M:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.i[a>>1]},K:function(a,b){this.b[a]=b;this.na=!0},R:function(a,b){this.b[a]=b;this.na=!0},U:function(a,b){this.A.setUint16(a,b,!0);this.na=!0},Z:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.i[a>>1]=b;this.na=!0}};function Ya(a,b,c){a.O=b;a.f=a.g=0;c&&((a.f=c.f)&&tb(a,ub,!1),(a.g=c.g)&&vb(a,ub,!1))} -function vb(a,b,c){c&&a.g||(a.Qa=!a.c&&b[1]||a.o,a.ld=!a.c&&b[3]||a.s);if(c||void 0===c)a.Hb=b[1]||a.o,a.X=b[3]||a.s}function tb(a,b,c){c&&a.f||(a.Pa=b[0]||a.m,a.kd=b[2]||a.v);if(c||void 0===c)a.bb=b[0]||a.m,a.Eb=b[2]||a.v}function pb(a,b){b||(b=wb);tb(a,b,void 0);vb(a,b,void 0)}var wb=[],sb=[D.prototype.C,D.prototype.S,D.prototype.I,D.prototype.ea],ub=[D.prototype.w,D.prototype.N,D.prototype.H,D.prototype.W]; -if(Sa)var rb=[D.prototype.u,D.prototype.K,D.prototype.G,D.prototype.U],qb=[D.prototype.B,D.prototype.R,D.prototype.M,D.prototype.Z];function xb(a,b){r.call(this,"CPU",a,xb);var c=a.multiplier||1;this.la=a.cycles||b;this.K=c;this.Ca=Math.round(this.la/1E4)/100;this.U=this.Ca*this.K;this.l.oa=!1;this.l.Fb=!1;this.l.Na=a.autoStart;this.l.yb=!1;this.l.Xa=!1;this.ta=this.X=0;this.ua=a.csStart;this.Z=a.csInterval;this.ea=a.csStop;this.G=[];this.Va=this.hb.bind(this);B(this)}w(xb);var yb=["power","reset"]; -k=xb.prototype;k.qa=function(a,b,c,d){this.v=a;this.j=b;this.O=d;for(b=0;ba.R/a.U&&(b=1);a.K=b;b=a.Ca*a.K;if(a.U!=b){a.U=b;b=a.U.toFixed(2)+"Mhz";var d=a.A.setSpeed;d&&(d.textContent=b);a.da("target speed: "+b)}c&&a.v&&Hb(a.v)}a.H+=a.N;a.N=0;a.I=ja();a.S=0;Fb(a)}function Ib(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function Kb(a,b,c){0<=b&&ba.G[b][0]&&(c*=a.la*a.K/1E3,a.G[b][0]=c+Lb(a))}function Lb(a,b){var c=a.W-=a.a;a.a=0;b&&(a.W=0);return c} -k.hb=function(a){if(Qa(this,!0)){if(!this.l.oa){Eb(this);this.v&&this.v.start(this.I,Gb(this));this.l.oa=!0;this.l.Fb=!0;this.M&&this.M.start();var b=this.A.run;b&&(b.textContent="Halt");this.v&&(this.v.Aa(!0),a&&Hb(this.v,!0))}this.Da>=this.la&&Fb(this,!0);this.pa=0;this.sa=ja();this.S&&(a=this.sa-this.S,a>this.Ka&&(this.I+=a,this.I>this.sa&&(this.I=this.sa)));try{do{for(var c,d=this.l.Xa?1:this.xa,e=this.G.length-1;0<=e;e--){var f=this.G[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Gb(c);c=Lb(this,!0); -this.pa+=c;this.N+=c;a=c;this.l.Xa&&(b=!1,this.ta=this.ta+this.Bb()|0,this.X-=a,0>=this.X&&(this.X+=this.Z,b=!0),0<=this.ea&&this.ea<=Gb(this)&&(this.Z=this.ea=-1,Bb(this),Db(this),b=!0),b&&this.da(Gb(this)+" cycles: checksum="+p(this.ta)));a=c;for(var g=this.G.length-1;0<=g;g--){var h=this.G[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ja-=c;if(0>=this.ja){this.ja+=this.xa;15<=++this.La&&(this.v&&this.v.Aa(),this.La=0);break}}while(this.l.oa)}catch(l){Db(this);Cb(this);this.v&&this.v.stop(ja(), -Gb(this));Qa(this,!1);c=l.stack||l.message;this.l.error=!0;this.L(c);return}c=setTimeout;d=this.Va;this.S=ja();e=this.Ka;this.pa&&(e=Math.round(e*this.pa/this.xa));e-=this.S-this.sa;if(f=this.S-this.I)this.R=Math.round(this.N/(10*f))/100,864E5<=f&&(this.H=0,Eb(this));if(0>e||this.Re&&(this.I-=e),e=0;this.Da+=this.pa;this.S+=e;c(d,e)}else Cb(this),this.v&&this.v.stop(ja(),Gb(this))};k.Gb=function(){return 0}; -function Db(a){a.l.Wa&&(a.l.eb=!0);Lb(a);a.H+=a.N;a.N=0;if(a.l.oa){a.l.oa=!1;a.M&&a.M.stop();var b=a.A.run;b&&(b.textContent="Run")}a.l.complete=void 0}function Cb(a){if(a.v){for(var b=a.v,c=0;c>8&255;a.D=b&255}function Wb(a){return a.f<<8|a.F}function Xb(a,b){a.f=b>>8&255;a.F=b&255}function G(a){return a.g<<8|a.i} -function I(a,b){a.g=b>>8&255;a.i=b&255}function E(a,b){a.o=b&65535}function J(a){return a.m&256?1:0}function K(a,b){a.m=a.m&255|b}function Yb(a){return Ta[a.s&255]?4:0}function Tb(a){return a.C&-214|(a.s&128?128:0)|(a.m&255?0:64)|((a.s^a.w)&16?16:0)|Yb(a)|J(a)}function Rb(a,b){a.m=a.s=a.w=0;b&1&&(a.m|=256);b&4||(a.s|=1);b&16&&(a.w|=16);b&64||(a.m|=255);b&128&&(a.s^=192);a.C=a.C&-726|b&512|2}function L(a,b){a.w=a.b^b;return a.s=(a.m=a.b+b)&255} -function Zb(a,b){a.w=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?1:0))&255}function $b(a,b){a.m=a.s=a.w=a.b&b;(a.b|b)&8&&(a.w^=16);return a.m}function ac(a,b){a.w=b^255;b=a.s=b+255&255;a.m=a.m&-256|b;return b}function bc(a,b){a.w=b;b=a.s=b+1&255;a.m=a.m&-256|b;return b}function cc(a,b){return a.s=a.m=a.w=a.b|b}function M(a,b){b^=255;a.w=a.b^b;return a.s=(a.m=a.b+b+1^256)&255}function dc(a,b){b^=255;a.w=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?0:1)^256)&255}function ec(a,b){return a.s=a.m=a.w=a.b^b}k.J=function(a){return this.j.J(a)}; -k.aa=function(a,b){this.j.aa(a,b)};function N(a){var b=a.J(a.o);E(a,a.o+1);return b}function O(a){var b=cb(a.j,a.o);E(a,a.o+2);return b}function P(a){var b=cb(a.j,a.u);a.u=a.u+2&65535;return b}function R(a,b){a.u=a.u-2&65535;fb(a.j,a.u,b)}function fc(a){if(a.a&&a.B&255&&a.C&512){for(var b=0;8>b&&!(a.B&1<b?255:1<>8;K(this,a&256);this.a-=4},hc,function(){var a;I(this,a=G(this)+Ub(this));K(this,a>>8&256);this.a-=10},function(){this.b=this.J(Ub(this));this.a-=7},function(){Vb(this,Ub(this)-1);this.a-=5}, -function(){this.D=bc(this,this.D);this.a-=5},function(){this.D=ac(this,this.D);this.a-=5},function(){this.D=N(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;K(this,a);this.a-=4},hc,function(){Xb(this,O(this));this.a-=10},function(){this.aa(Wb(this),this.b);this.a-=7},function(){Xb(this,Wb(this)+1);this.a-=5},function(){this.f=bc(this,this.f);this.a-=5},function(){this.f=ac(this,this.f);this.a-=5},function(){this.f=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|J(this); -K(this,a&256);this.a-=4},hc,function(){var a;I(this,a=G(this)+Wb(this));K(this,a>>8&256);this.a-=10},function(){this.b=this.J(Wb(this));this.a-=7},function(){Xb(this,Wb(this)-1);this.a-=5},function(){this.F=bc(this,this.F);this.a-=5},function(){this.F=ac(this,this.F);this.a-=5},function(){this.F=N(this);this.a-=7},function(){var a=this.b<<8;this.b=(J(this)<<8|this.b)>>1;K(this,a&256);this.a-=4},hc,function(){I(this,O(this));this.a-=10},function(){var a=O(this);fb(this.j,a,G(this));this.a-=16},function(){I(this, -G(this)+1);this.a-=5},function(){this.g=bc(this,this.g);this.a-=5},function(){this.g=ac(this,this.g);this.a-=5},function(){this.g=N(this);this.a-=7},function(){var a=0,b=J(this);if((this.s^this.w)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=L(this,a);K(this,b?256:0);this.a-=4},hc,function(){var a;I(this,a=G(this)+G(this));K(this,a>>8&256);this.a-=10},function(){var a;a=O(this);a=cb(this.j,a);I(this,a);this.a-=16},function(){I(this,G(this)-1);this.a-=5},function(){this.i=bc(this,this.i); -this.a-=5},function(){this.i=ac(this,this.i);this.a-=5},function(){this.i=N(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},hc,function(){this.u=O(this)&65535;this.a-=10},function(){this.aa(O(this),this.b);this.a-=13},function(){this.u=this.u+1&65535;this.a-=5},function(){var a=G(this);this.aa(a,bc(this,this.J(a)));this.a-=10},function(){var a=G(this);this.aa(a,ac(this,this.J(a)));this.a-=10},function(){this.aa(G(this),N(this));this.a-=10},function(){this.m|=256;this.a-=4},hc,function(){var a; -I(this,a=G(this)+this.u);K(this,a>>8&256);this.a-=10},function(){this.b=this.J(O(this));this.a-=13},function(){this.u=this.u-1&65535;this.a-=5},function(){this.b=bc(this,this.b);this.a-=5},function(){this.b=ac(this,this.b);this.a-=5},function(){this.b=N(this);this.a-=7},function(){K(this,J(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.c=this.D;this.a-=5},function(){this.c=this.f;this.a-=5},function(){this.c=this.F;this.a-=5},function(){this.c=this.g;this.a-=5},function(){this.c=this.i; +var Ta="undefined"!==typeof ArrayBuffer,Ua=[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 Va(a){r.call(this,"Panel",a,Va)}w(Va);k=Va.prototype;k.V=function(a,b,c,d){return this.v&&this.v.V(a,b,c,d)||this.a&&this.a.V(a,b,c,d)||this.m&&this.m.V(a,b,c,d)?!0:this.parent.V.call(this,a,b,c,d)};k.ra=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.O=d;this.m=Wa(a,"Keyboard")};k.ga=function(a,b){b||Xa();return!0};k.ia=function(){return!0};k.Da=function(){}; +function Xa(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c>1)+2;10>this.j&&(this.j=10);15>2;this.f=this.c-1;this.i=this.u/this.c|0;this.o=this.i-1;this.m=[];this.v=[];this.B=[];this.C=[];a=new C;Za(a,this.O);this.b=Array(this.i);for(b=0;b>>a.j;0f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.Pa)return h.fb+=h.Pa-e,h.Pa=e,!0;if(e>=h.Pa+h.fb){n=h.size-(e-l);n>f&&(n=f);h.fb=e-h.Pa+n;e=l+a.c;f-=n;g++;continue}}return ab(1,e,f)}e=new C(e,n,a.c,d);Za(e,a.O,h);a.b[g++]=e;e=l+a.c;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+bb[d]+" at "+p(b,4,!0)),!0):ab(2,b,c)}Ya.prototype.J=function(a){return this.b[(a&this.g)>>>this.j].Sa(a&this.f,a)}; +function cb(a,b){return a.b[(b&a.g)>>>a.j].eb(b&a.f,b)}function db(a,b){var c=b&a.f,d=(b&a.g)>>>a.j;return c!=a.f?a.b[d].od(c,b):a.b[d++].Sa(c,b)|a.b[d&a.o].Sa(0,b+1)<<8}Ya.prototype.ba=function(a,b){this.b[(a&this.g)>>>this.j].Ta(a&this.f,b&255,a)};function eb(a,b,c){a.b[(b&a.g)>>>a.j].Lb(b&a.f,c&255,b)}function gb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.j;d!=a.f?a.b[e].pd(d,c&65535,b):(a.b[e++].Ta(d,c&255,b),a.b[e&a.o].Ta(0,c>>8&255,b+1))} +function hb(a){for(var b=0,c=[],d=0;d>1),this.a=new Int32Array(this.j,0,c>>2),qb(this,mb?rb:sb);else{this.a=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},C:function(a){return this.a[a>> +2]>>>((a&3)<<3)&255},I:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},S:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.oa=!0},w:function(a,b){return this.eb(a,b)},H:function(a,b){return this.Ib(a,b)},N:function(a,b,c){this.c||this.Lb(a,b,c)},W:function(a, +b,c){this.c||this.X(a,b,c)},u:function(a){return this.b[a]},B:function(a){return this.b[a]},G:function(a){return this.A.getUint16(a,!0)},M:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.i[a>>1]},L:function(a,b){this.b[a]=b;this.oa=!0},R:function(a,b){this.b[a]=b;this.oa=!0},U:function(a,b){this.A.setUint16(a,b,!0);this.oa=!0},ya:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.i[a>>1]=b;this.oa=!0}};function Za(a,b,c){a.O=b;a.f=a.g=0;c&&((a.f=c.f)&&ub(a,vb,!1),(a.g=c.g)&&wb(a,vb,!1))} +function wb(a,b,c){c&&a.g||(a.Ta=!a.c&&b[1]||a.o,a.pd=!a.c&&b[3]||a.s);if(c||void 0===c)a.Lb=b[1]||a.o,a.X=b[3]||a.s}function ub(a,b,c){c&&a.f||(a.Sa=b[0]||a.m,a.od=b[2]||a.v);if(c||void 0===c)a.eb=b[0]||a.m,a.Ib=b[2]||a.v}function qb(a,b){b||(b=xb);ub(a,b,void 0);wb(a,b,void 0)}var xb=[],tb=[C.prototype.C,C.prototype.S,C.prototype.I,C.prototype.aa],vb=[C.prototype.w,C.prototype.N,C.prototype.H,C.prototype.W]; +if(Ta)var sb=[C.prototype.u,C.prototype.L,C.prototype.G,C.prototype.U],rb=[C.prototype.B,C.prototype.R,C.prototype.M,C.prototype.ya];function yb(a,b){r.call(this,"CPU",a,yb);var c=a.multiplier||1;this.ma=a.cycles||b;this.L=c;this.Fa=Math.round(this.ma/1E4)/100;this.U=this.Fa*this.L;this.l.pa=!1;this.l.Jb=!1;this.l.Qa=a.autoStart;this.l.Cb=!1;this.l.Za=!1;this.ua=this.X=0;this.va=a.csStart;this.aa=a.csInterval;this.ja=a.csStop;this.G=[];this.Xa=this.lb.bind(this);B(this)}w(yb);var zb=["power","reset"]; +k=yb.prototype;k.ra=function(a,b,c,d){this.v=a;this.j=b;this.O=d;for(b=0;ba.R/a.U&&(b=1);a.L=b;b=a.Fa*a.L;if(a.U!=b){a.U=b;b=a.U.toFixed(2)+"Mhz";var d=a.A.setSpeed;d&&(d.textContent=b);a.ea("target speed: "+b)}c&&a.v&&Ib(a.v)}a.H+=a.N;a.N=0;a.I=ja();a.S=0;Gb(a)}function Jb(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function Kb(a,b,c){0<=b&&ba.G[b][0]&&(c*=a.ma*a.L/1E3,a.G[b][0]=c+Mb(a))}function Mb(a,b){var c=a.W-=a.a;a.a=0;b&&(a.W=0);return c} +k.lb=function(a){if(Ra(this,!0)){if(!this.l.pa){Fb(this);this.v&&this.v.start(this.I,Hb(this));this.l.pa=!0;this.l.Jb=!0;this.M&&this.M.start();var b=this.A.run;b&&(b.textContent="Halt");this.v&&(this.v.Da(!0),a&&Ib(this.v,!0))}this.Ga>=this.ma&&Gb(this,!0);this.qa=0;this.ta=ja();this.S&&(a=this.ta-this.S,a>this.Na&&(this.I+=a,this.I>this.ta&&(this.I=this.ta)));try{do{for(var c,d=this.l.Za?1:this.Aa,e=this.G.length-1;0<=e;e--){var f=this.G[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Kb(c);c=Mb(this,!0); +this.qa+=c;this.N+=c;a=c;this.l.Za&&(b=!1,this.ua=this.ua+this.Fb()|0,this.X-=a,0>=this.X&&(this.X+=this.aa,b=!0),0<=this.ja&&this.ja<=Hb(this)&&(this.aa=this.ja=-1,Cb(this),Eb(this),b=!0),b&&this.ea(Hb(this)+" cycles: checksum="+p(this.ua)));a=c;for(var g=this.G.length-1;0<=g;g--){var h=this.G[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.la-=c;if(0>=this.la){this.la+=this.Aa;15<=++this.Oa&&(this.v&&this.v.Da(),this.Oa=0);break}}while(this.l.pa)}catch(l){Eb(this);Db(this);this.v&&this.v.stop(ja(), +Hb(this));Ra(this,!1);c=l.stack||l.message;this.l.error=!0;this.K(c);return}c=setTimeout;d=this.Xa;this.S=ja();e=this.Na;this.qa&&(e=Math.round(e*this.qa/this.Aa));e-=this.S-this.ta;if(f=this.S-this.I)this.R=Math.round(this.N/(10*f))/100,864E5<=f&&(this.H=0,Fb(this));if(0>e||this.Re&&(this.I-=e),e=0;this.Ga+=this.qa;this.S+=e;c(d,e)}else Db(this),this.v&&this.v.stop(ja(),Hb(this))};k.Kb=function(){return 0}; +function Eb(a){a.l.Ya&&(a.l.gb=!0);Mb(a);a.H+=a.N;a.N=0;if(a.l.pa){a.l.pa=!1;a.M&&a.M.stop();var b=a.A.run;b&&(b.textContent="Run")}a.l.complete=void 0}function Db(a){if(a.v){for(var b=a.v,c=0;c>8&255;a.D=b&255}function Xb(a){return a.f<<8|a.F}function Yb(a,b){a.f=b>>8&255;a.F=b&255}function G(a){return a.g<<8|a.i} +function I(a,b){a.g=b>>8&255;a.i=b&255}function E(a,b){a.o=b&65535}function J(a){return a.m&256?1:0}function K(a,b){a.m=a.m&255|b}function Zb(a){return Ua[a.s&255]?4:0}function Ub(a){return a.C&-214|(a.s&128?128:0)|(a.m&255?0:64)|((a.s^a.w)&16?16:0)|Zb(a)|J(a)}function Sb(a,b){a.m=a.s=a.w=0;b&1&&(a.m|=256);b&4||(a.s|=1);b&16&&(a.w|=16);b&64||(a.m|=255);b&128&&(a.s^=192);a.C=a.C&-726|b&512|2}function L(a,b){a.w=a.b^b;return a.s=(a.m=a.b+b)&255} +function $b(a,b){a.w=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?1:0))&255}function ac(a,b){a.m=a.s=a.w=a.b&b;(a.b|b)&8&&(a.w^=16);return a.m}function bc(a,b){a.w=b^255;b=a.s=b+255&255;a.m=a.m&-256|b;return b}function cc(a,b){a.w=b;b=a.s=b+1&255;a.m=a.m&-256|b;return b}function dc(a,b){return a.s=a.m=a.w=a.b|b}function M(a,b){b^=255;a.w=a.b^b;return a.s=(a.m=a.b+b+1^256)&255}function ec(a,b){b^=255;a.w=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?0:1)^256)&255}function fc(a,b){return a.s=a.m=a.w=a.b^b}k.J=function(a){return this.j.J(a)}; +k.ba=function(a,b){this.j.ba(a,b)};function N(a){var b=a.J(a.o);E(a,a.o+1);return b}function O(a){var b=db(a.j,a.o);E(a,a.o+2);return b}function P(a){var b=db(a.j,a.u);a.u=a.u+2&65535;return b}function R(a,b){a.u=a.u-2&65535;gb(a.j,a.u,b)}function gc(a){if(a.a&&a.B&255&&a.C&512){for(var b=0;8>b&&!(a.B&1<b?255:1<>8;K(this,a&256);this.a-=4},ic,function(){var a;I(this,a=G(this)+Vb(this));K(this,a>>8&256);this.a-=10},function(){this.b=this.J(Vb(this));this.a-=7},function(){Wb(this,Vb(this)-1);this.a-=5}, +function(){this.D=cc(this,this.D);this.a-=5},function(){this.D=bc(this,this.D);this.a-=5},function(){this.D=N(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;K(this,a);this.a-=4},ic,function(){Yb(this,O(this));this.a-=10},function(){this.ba(Xb(this),this.b);this.a-=7},function(){Yb(this,Xb(this)+1);this.a-=5},function(){this.f=cc(this,this.f);this.a-=5},function(){this.f=bc(this,this.f);this.a-=5},function(){this.f=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|J(this); +K(this,a&256);this.a-=4},ic,function(){var a;I(this,a=G(this)+Xb(this));K(this,a>>8&256);this.a-=10},function(){this.b=this.J(Xb(this));this.a-=7},function(){Yb(this,Xb(this)-1);this.a-=5},function(){this.F=cc(this,this.F);this.a-=5},function(){this.F=bc(this,this.F);this.a-=5},function(){this.F=N(this);this.a-=7},function(){var a=this.b<<8;this.b=(J(this)<<8|this.b)>>1;K(this,a&256);this.a-=4},ic,function(){I(this,O(this));this.a-=10},function(){var a=O(this);gb(this.j,a,G(this));this.a-=16},function(){I(this, +G(this)+1);this.a-=5},function(){this.g=cc(this,this.g);this.a-=5},function(){this.g=bc(this,this.g);this.a-=5},function(){this.g=N(this);this.a-=7},function(){var a=0,b=J(this);if((this.s^this.w)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=L(this,a);K(this,b?256:0);this.a-=4},ic,function(){var a;I(this,a=G(this)+G(this));K(this,a>>8&256);this.a-=10},function(){var a;a=O(this);a=db(this.j,a);I(this,a);this.a-=16},function(){I(this,G(this)-1);this.a-=5},function(){this.i=cc(this,this.i); +this.a-=5},function(){this.i=bc(this,this.i);this.a-=5},function(){this.i=N(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},ic,function(){this.u=O(this)&65535;this.a-=10},function(){this.ba(O(this),this.b);this.a-=13},function(){this.u=this.u+1&65535;this.a-=5},function(){var a=G(this);this.ba(a,cc(this,this.J(a)));this.a-=10},function(){var a=G(this);this.ba(a,bc(this,this.J(a)));this.a-=10},function(){this.ba(G(this),N(this));this.a-=10},function(){this.m|=256;this.a-=4},ic,function(){var a; +I(this,a=G(this)+this.u);K(this,a>>8&256);this.a-=10},function(){this.b=this.J(O(this));this.a-=13},function(){this.u=this.u-1&65535;this.a-=5},function(){this.b=cc(this,this.b);this.a-=5},function(){this.b=bc(this,this.b);this.a-=5},function(){this.b=N(this);this.a-=7},function(){K(this,J(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.c=this.D;this.a-=5},function(){this.c=this.f;this.a-=5},function(){this.c=this.F;this.a-=5},function(){this.c=this.g;this.a-=5},function(){this.c=this.i; this.a-=5},function(){this.c=this.J(G(this));this.a-=7},function(){this.c=this.b;this.a-=5},function(){this.D=this.c;this.a-=5},function(){this.a-=5},function(){this.D=this.f;this.a-=5},function(){this.D=this.F;this.a-=5},function(){this.D=this.g;this.a-=5},function(){this.D=this.i;this.a-=5},function(){this.D=this.J(G(this));this.a-=7},function(){this.D=this.b;this.a-=5},function(){this.f=this.c;this.a-=5},function(){this.f=this.D;this.a-=5},function(){this.a-=5},function(){this.f=this.F;this.a-= 5},function(){this.f=this.g;this.a-=5},function(){this.f=this.i;this.a-=5},function(){this.f=this.J(G(this));this.a-=7},function(){this.f=this.b;this.a-=5},function(){this.F=this.c;this.a-=5},function(){this.F=this.D;this.a-=5},function(){this.F=this.f;this.a-=5},function(){this.a-=5},function(){this.F=this.g;this.a-=5},function(){this.F=this.i;this.a-=5},function(){this.F=this.J(G(this));this.a-=7},function(){this.F=this.b;this.a-=5},function(){this.g=this.c;this.a-=5},function(){this.g=this.D;this.a-= -5},function(){this.g=this.f;this.a-=5},function(){this.g=this.F;this.a-=5},function(){this.a-=5},function(){this.g=this.i;this.a-=5},function(){this.g=this.J(G(this));this.a-=7},function(){this.g=this.b;this.a-=5},function(){this.i=this.c;this.a-=5},function(){this.i=this.D;this.a-=5},function(){this.i=this.f;this.a-=5},function(){this.i=this.F;this.a-=5},function(){this.i=this.g;this.a-=5},function(){this.a-=5},function(){this.i=this.J(G(this));this.a-=7},function(){this.i=this.b;this.a-=5},function(){this.aa(G(this), -this.c);this.a-=7},function(){this.aa(G(this),this.D);this.a-=7},function(){this.aa(G(this),this.f);this.a-=7},function(){this.aa(G(this),this.F);this.a-=7},function(){this.aa(G(this),this.g);this.a-=7},function(){this.aa(G(this),this.i);this.a-=7},function(){var a=this.o-1;if(this.ra.length)for(var b=0;b>>=f)&l;if(void 0!==g&&g[0])g[0](a,l,d);f+=h<<3;a+=h;e-=h}this.a-=10},function(){var a=O(this);J(this)||(R(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){R(this,Wb(this));this.a-=11},function(){this.b=M(this,N(this));this.a-=7},function(){R(this,this.o);E(this,16);this.a-=11},function(){J(this)&&(E(this,P(this)),this.a-=6);this.a-=5},jc,function(){var a=O(this);J(this)&&E(this,a);this.a-=10},function(){for(var a=N(this),b=this.j,c=this.o+-2&65535,d=1,e=0, -f=0;0>8;this.a-=10},function(){var a=O(this);this.s&128||E(this,a);this.a-=10},function(){this.C&=-513;this.a-=4},function(){var a=O(this);this.s&128||(R(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){R(this, -Tb(this)&255|this.b<<8);this.a-=11},function(){this.b=cc(this,N(this));this.a-=7},function(){R(this,this.o);E(this,48);this.a-=11},function(){this.s&128&&(E(this,P(this)),this.a-=6);this.a-=5},function(){this.u=G(this)&65535;this.a-=5},function(){var a=O(this);this.s&128&&E(this,a);this.a-=10},function(){this.C|=512;this.a-=4;fc(this)},function(){var a=O(this);this.s&128&&(R(this,this.o),E(this,a),this.a-=6);this.a-=11},kc,function(){M(this,N(this));this.a-=7},function(){R(this,this.o);E(this,56); -this.a-=11}];function T(a){r.call(this,"ChipSet",a,T);var b=a.model;b&&!lc[b]&&Aa("Unrecognized ChipSet model: "+b);this.c=lc[b]||{};a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);B(this)}w(T); -var V={ba:1978.1,zc:{ca:0,td:1,xd:16,Ed:32,Nd:64,Md:128,Fa:14},za:{ca:1,Pb:1,sc:2,oc:4,pc:16,qc:32,rc:64,Fa:8},Ac:{ca:2,sd:3,Wd:4,ud:8,Id:16,Jd:32,Kd:64,vd:128,Fa:0},Rd:{ca:3},Pd:{ca:2,Fd:7},Td:{ca:3,Xd:1,Sd:2,Ld:4,Cd:8,wd:16,md:32},Qd:{ca:4},Ud:{ca:5,yd:1,zd:2,Ad:4,Bd:8,Yd:16}},W={ba:100,ka:{ca:66,vb:1,kc:2,lc:4,Hd:8,Gd:16,sb:32,rb:64,nb:128},Nb:{ca:66,INIT:0},wa:{ca:194,od:0,lb:16,uc:32,tb:48,Xb:0,Yb:32},Ra:{ca:162,Od:0,$b:0,Wb:0,Zb:0,Vb:0},ma:{Dd:{ca:98},Ba:{Kb:0,Jb:1,xc:2,Fc:4,Qb:5,vc:6,Vd:7}, -Ua:16383}},lc={SI1978:V,VT100:W};T.prototype.V=function(){return!1};T.prototype.qa=function(a,b,c,d){this.j=b;this.a=c;this.O=d;this.v=a;this.m=Va(a,"Keyboard");this.Z=Va(a,"SerialPort");this.video=Va(a,"Video");hb(b,this,this.c.$a);ib(b,this,this.c.ab)};T.prototype.ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};T.prototype.ia=function(a){return a?this.save():!0};V.INIT=[[V.zc.Fa,V.za.Fa,V.Ac.Fa,0,0,0,0]]; -W.INIT=[[W.Nb.INIT,W.ka.kc|W.ka.lc],[W.wa.Xb,W.wa.Yb],[W.Ra.$b,W.Ra.Wb,W.Ra.Zb,W.Ra.Vb],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], -[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];k=T.prototype;k.reset=function(){this.c.INIT&&!this.restore(this.c.INIT)&&this.L("reset error")}; -k.save=function(){var a=new F(this);switch(this.c.ba){case V.ba:a.set(0,[this.W,this.g,this.X,this.C,this.M,this.S,this.U]);break;case W.ba:a.set(0,[this.K,this.u]),a.set(1,[this.o,this.s]),a.set(2,[this.f,this.G,this.R,this.N]),a.set(3,[this.B,this.b,this.w,this.H,this.i])}return a.data()}; -k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.c.ba){case V.ba:return this.W=b[0],this.g=b[1],this.X=b[2],this.C=b[3],this.M=b[4],this.S=b[5],this.U=b[6],!0;case W.ba:return this.K=b[0],this.u=b[1],b=a[1],this.o=b[0],this.s=b[1],b=a[2],this.f=b[0],this.G=b[1],this.R=b[2],this.N=b[3],b=a[3],this.B=b[0],this.b=b[1],this.w=b[2],this.H=b[3],this.i=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.Sc=function(){return this.W};k.Tc=function(){return this.g};k.Uc=function(){return this.X}; -k.Rc=function(){return this.C>>8-this.M&255};k.$c=function(a,b){this.M=b};k.bd=function(a,b){this.S=b};k.ad=function(a,b){this.C=b<<8|this.C>>8};k.cd=function(a,b){this.U=b};k.dd=function(){};function mc(a){var b=0,c=0,d=~a.B;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c} -k.Vc=function(){var a=this.u,a=a&~W.ka.rb;if((Gb(this.a)&64)<<1&&(a|=W.ka.rb,a!=this.u)){var b,c;b=this.w&1;switch(this.w>>1&7){case W.ma.Ba.Jb:this.B=this.B<<1|b;break;case W.ma.Ba.Qb:b=mc(this);this.i[b]=W.ma.Ua;break;case W.ma.Ba.Kb:this.b=this.b<<1|b;break;case W.ma.Ba.Fc:b=mc(this);c=this.b&W.ma.Ua;this.i[b]=c;break;case W.ma.Ba.vc:b=mc(this);c=this.i[b];null==c&&(c=W.ma.Ua);this.b=c;break;case W.ma.Ba.xc:this.b<<=1,this.H=this.b&W.ma.Ua+1}}a&=~W.ka.sb;this.H&&(a|=W.ka.sb);a&=~W.ka.nb;if(b=this.m){b= -this.m;if(c=b.f)c=b.a,c=Gb(b.a)>=b.m+c.la*c.K/1E3*1.2731488;c&&(b.f=!1);b=!b.f}b&&(a|=W.ka.nb);a&=~W.ka.vb;this.Z&&this.Z.fa&1&&(a|=W.ka.vb);return this.u=a};k.ed=function(a,b){this.K=b};k.hd=function(a,b){this.w=b};k.gd=function(a,b){a=b&3;switch(b>>2&3){case 0:this.f=this.f&-4|a;break;case 1:this.f=this.f&-13|a<<2;this.video&&(b=this.video,a=this.f,b.pa!==a&&((b.pa=a)?Mb(b,!0):b.sa=!0));break;case 2:switch(a){case 0:this.G=~this.G;break;case 2:case 3:this.R=3-a}break;case 3:this.N=a}}; -k.fd=function(a,b){b&W.wa.uc?(b&=W.wa.tb,this.s!=b&&(this.s=b,this.video&&(this.video.Db=this.s==W.wa.tb?50:60))):(b&=W.wa.lb,this.o!=b&&(this.o=b,this.video&&(a=this.video,b=this.o==W.wa.lb?132:80,a.H=b,a.T=a.xa,80>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(h){a.L("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm, +L(this,this.J(G(this)));this.a-=7},function(){this.b=L(this,this.b);this.a-=4},function(){this.b=$b(this,this.c);this.a-=4},function(){this.b=$b(this,this.D);this.a-=4},function(){this.b=$b(this,this.f);this.a-=4},function(){this.b=$b(this,this.F);this.a-=4},function(){this.b=$b(this,this.g);this.a-=4},function(){this.b=$b(this,this.i);this.a-=4},function(){this.b=$b(this,this.J(G(this)));this.a-=7},function(){this.b=$b(this,this.b);this.a-=4},function(){this.b=M(this,this.c);this.a-=4},function(){this.b= +M(this,this.D);this.a-=4},function(){this.b=M(this,this.f);this.a-=4},function(){this.b=M(this,this.F);this.a-=4},function(){this.b=M(this,this.g);this.a-=4},function(){this.b=M(this,this.i);this.a-=4},function(){this.b=M(this,this.J(G(this)));this.a-=7},function(){this.b=M(this,this.b);this.a-=4},function(){this.b=ec(this,this.c);this.a-=4},function(){this.b=ec(this,this.D);this.a-=4},function(){this.b=ec(this,this.f);this.a-=4},function(){this.b=ec(this,this.F);this.a-=4},function(){this.b=ec(this, +this.g);this.a-=4},function(){this.b=ec(this,this.i);this.a-=4},function(){this.b=ec(this,this.J(G(this)));this.a-=7},function(){this.b=ec(this,this.b);this.a-=4},function(){this.b=ac(this,this.c);this.a-=4},function(){this.b=ac(this,this.D);this.a-=4},function(){this.b=ac(this,this.f);this.a-=4},function(){this.b=ac(this,this.F);this.a-=4},function(){this.b=ac(this,this.g);this.a-=4},function(){this.b=ac(this,this.i);this.a-=4},function(){this.b=ac(this,this.J(G(this)));this.a-=7},function(){this.b= +ac(this,this.b);this.a-=4},function(){this.b=fc(this,this.c);this.a-=4},function(){this.b=fc(this,this.D);this.a-=4},function(){this.b=fc(this,this.f);this.a-=4},function(){this.b=fc(this,this.F);this.a-=4},function(){this.b=fc(this,this.g);this.a-=4},function(){this.b=fc(this,this.i);this.a-=4},function(){this.b=fc(this,this.J(G(this)));this.a-=7},function(){this.b=fc(this,this.b);this.a-=4},function(){this.b=dc(this,this.c);this.a-=4},function(){this.b=dc(this,this.D);this.a-=4},function(){this.b= +dc(this,this.f);this.a-=4},function(){this.b=dc(this,this.F);this.a-=4},function(){this.b=dc(this,this.g);this.a-=4},function(){this.b=dc(this,this.i);this.a-=4},function(){this.b=dc(this,this.J(G(this)));this.a-=7},function(){this.b=dc(this,this.b);this.a-=4},function(){M(this,this.c);this.a-=4},function(){M(this,this.D);this.a-=4},function(){M(this,this.f);this.a-=4},function(){M(this,this.F);this.a-=4},function(){M(this,this.g);this.a-=4},function(){M(this,this.i);this.a-=4},function(){M(this, +this.J(G(this)));this.a-=7},function(){M(this,this.b);this.a-=4},function(){this.m&255&&(E(this,P(this)),this.a-=6);this.a-=5},function(){Wb(this,P(this));this.a-=10},function(){var a=O(this);this.m&255&&E(this,a);this.a-=10},jc,function(){var a=O(this);this.m&255&&(R(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){R(this,Vb(this));this.a-=11},function(){this.b=L(this,N(this));this.a-=7},function(){R(this,this.o);E(this,0);this.a-=11},function(){this.m&255||(E(this,P(this)),this.a-=6);this.a-= +5},kc,function(){var a=O(this);this.m&255||E(this,a);this.a-=10},jc,function(){var a=O(this);this.m&255||(R(this,this.o),E(this,a),this.a-=6);this.a-=11},lc,function(){this.b=$b(this,N(this));this.a-=7},function(){R(this,this.o);E(this,8);this.a-=11},function(){J(this)||(E(this,P(this)),this.a-=6);this.a-=5},function(){Yb(this,P(this));this.a-=10},function(){var a=O(this);J(this)||E(this,a);this.a-=10},function(){for(var a=N(this),b=this.j,c=this.b,d=this.o+-2&65535,e=1,f=0;0>>=f)&l;if(void 0!==g&&g[0])g[0](a,l,d);f+=h<<3;a+=h;e-=h}this.a-=10},function(){var a=O(this);J(this)||(R(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){R(this,Xb(this));this.a-=11},function(){this.b=M(this,N(this));this.a-=7},function(){R(this,this.o);E(this,16);this.a-=11},function(){J(this)&&(E(this,P(this)),this.a-=6);this.a-=5},kc,function(){var a=O(this);J(this)&&E(this,a);this.a-=10},function(){for(var a=N(this),b=this.j,c=this.o+-2&65535,d=1,e=0, +f=0;0>8;this.a-=10},function(){var a=O(this);this.s&128||E(this,a);this.a-=10},function(){this.C&=-513;this.a-=4},function(){var a=O(this);this.s&128||(R(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){R(this, +Ub(this)&255|this.b<<8);this.a-=11},function(){this.b=dc(this,N(this));this.a-=7},function(){R(this,this.o);E(this,48);this.a-=11},function(){this.s&128&&(E(this,P(this)),this.a-=6);this.a-=5},function(){this.u=G(this)&65535;this.a-=5},function(){var a=O(this);this.s&128&&E(this,a);this.a-=10},function(){this.C|=512;this.a-=4;gc(this)},function(){var a=O(this);this.s&128&&(R(this,this.o),E(this,a),this.a-=6);this.a-=11},lc,function(){M(this,N(this));this.a-=7},function(){R(this,this.o);E(this,56); +this.a-=11}];function T(a){r.call(this,"ChipSet",a,T);var b=a.model;b&&!mc[b]&&Ba("Unrecognized ChipSet model: "+b);this.c=mc[b]||{};a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);B(this)}w(T); +var V={ca:1978.1,Dc:{da:0,xd:1,Bd:16,Id:32,Rd:64,Qd:128,Ia:14},Ca:{da:1,Tb:1,wc:2,sc:4,tc:16,uc:32,vc:64,Ia:8},Ec:{da:2,wd:3,$d:4,yd:8,Md:16,Nd:32,Od:64,zd:128,Ia:0},Vd:{da:3},Td:{da:2,Jd:7},Xd:{da:3,ae:1,Wd:2,Pd:4,Gd:8,Ad:16,qd:32},Ud:{da:4},Yd:{da:5,Cd:1,Dd:2,Ed:4,Fd:8,be:16}},W={ca:100,ka:{da:66,zb:1,oc:2,pc:4,Ld:8,Kd:16,wb:32,vb:64,rb:128},Rb:{da:66,INIT:0},za:{da:194,sd:0,pb:16,yc:32,xb:48,ac:0,bc:32},Ua:{da:162,Sd:0,dc:0,$b:0,cc:0,Zb:0},na:{Hd:{da:98},Ea:{Ob:0,Nb:1,Bc:2,Jc:4,Ub:5,zc:6,Zd:7}, +Wa:16383}},mc={SI1978:V,VT100:W};T.prototype.V=function(){return!1};T.prototype.ra=function(a,b,c,d){this.j=b;this.a=c;this.O=d;this.v=a;this.m=Wa(a,"Keyboard");this.aa=Wa(a,"SerialPort");this.video=Wa(a,"Video");ib(b,this,this.c.bb);jb(b,this,this.c.cb)};T.prototype.ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};T.prototype.ia=function(a){return a?this.save():!0};V.INIT=[[V.Dc.Ia,V.Ca.Ia,V.Ec.Ia,0,0,0,0]]; +W.INIT=[[W.Rb.INIT,W.ka.oc|W.ka.pc],[W.za.ac,W.za.bc],[W.Ua.dc,W.Ua.$b,W.Ua.cc,W.Ua.Zb],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], +[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];k=T.prototype;k.reset=function(){this.c.INIT&&!this.restore(this.c.INIT)&&this.K("reset error")}; +k.save=function(){var a=new F(this);switch(this.c.ca){case V.ca:a.set(0,[this.W,this.g,this.X,this.C,this.M,this.S,this.U]);break;case W.ca:a.set(0,[this.L,this.u]),a.set(1,[this.o,this.s]),a.set(2,[this.f,this.G,this.R,this.N]),a.set(3,[this.B,this.b,this.w,this.H,this.i])}return a.data()}; +k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.c.ca){case V.ca:return this.W=b[0],this.g=b[1],this.X=b[2],this.C=b[3],this.M=b[4],this.S=b[5],this.U=b[6],!0;case W.ca:return this.L=b[0],this.u=b[1],b=a[1],this.o=b[0],this.s=b[1],b=a[2],this.f=b[0],this.G=b[1],this.R=b[2],this.N=b[3],b=a[3],this.B=b[0],this.b=b[1],this.w=b[2],this.H=b[3],this.i=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.Wc=function(){return this.W};k.Xc=function(){return this.g};k.Yc=function(){return this.X}; +k.Vc=function(){return this.C>>8-this.M&255};k.dd=function(a,b){this.M=b};k.fd=function(a,b){this.S=b};k.ed=function(a,b){this.C=b<<8|this.C>>8};k.gd=function(a,b){this.U=b};k.hd=function(){};function nc(a){var b=0,c=0,d=~a.B;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c} +k.Zc=function(){var a=this.u,a=a&~W.ka.vb;if((Hb(this.a)&64)<<1&&(a|=W.ka.vb,a!=this.u)){var b,c;b=this.w&1;switch(this.w>>1&7){case W.na.Ea.Nb:this.B=this.B<<1|b;break;case W.na.Ea.Ub:b=nc(this);this.i[b]=W.na.Wa;break;case W.na.Ea.Ob:this.b=this.b<<1|b;break;case W.na.Ea.Jc:b=nc(this);c=this.b&W.na.Wa;this.i[b]=c;break;case W.na.Ea.zc:b=nc(this);c=this.i[b];null==c&&(c=W.na.Wa);this.b=c;break;case W.na.Ea.Bc:this.b<<=1,this.H=this.b&W.na.Wa+1}}a&=~W.ka.wb;this.H&&(a|=W.ka.wb);a&=~W.ka.rb;if(b=this.m){b= +this.m;if(c=b.f)c=b.a,c=Hb(b.a)>=b.m+c.ma*c.L/1E3*1.2731488;c&&(b.f=!1);b=!b.f}b&&(a|=W.ka.rb);a&=~W.ka.zb;this.aa&&this.aa.fa&1&&(a|=W.ka.zb);return this.u=a};k.jd=function(a,b){this.L=b};k.md=function(a,b){this.w=b};k.ld=function(a,b){a=b&3;switch(b>>2&3){case 0:this.f=this.f&-4|a;break;case 1:this.f=this.f&-13|a<<2;this.video&&(b=this.video,a=this.f,b.qa!==a&&((b.qa=a)?Nb(b,!0):b.ta=!0));break;case 2:switch(a){case 0:this.G=~this.G;break;case 2:case 3:this.R=3-a}break;case 3:this.N=a}}; +k.kd=function(a,b){b&W.za.yc?(b&=W.za.xb,this.s!=b&&(this.s=b,this.video&&(this.video.Hb=this.s==W.za.xb?50:60))):(b&=W.za.pb,this.o!=b&&(this.o=b,this.video&&(a=this.video,b=this.o==W.za.pb?132:80,a.H=b,a.T=a.Aa,80>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.wa=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(h){a.K("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm, " ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e>>f.j;0>>=f.j;0d?a.j.push({ib:b,fb:Date.now(),Ya:!1}):(a.j[d].fb=Date.now(),a.j[d].Ya=!1);else if(0<=d){if(!a.j[d].Ya){var e=a.j[d].fb;if(e&&100>Date.now()-e)return a.j[d].Ya=!0,Dc(a),!0}a.j.splice(d,1)}if(a.M){d=0;switch(b){case "1p":d=V.za.oc;break;case "2p":d=V.za.sc;break;case "coin":d=V.za.Pb;break;case "left":d=V.za.qc;break;case "right":d=V.za.rc;break;case "fire":d=V.za.pc}d&&(a=a.M,b=d,a.g&=~b,c&&(a.g|=b))}return!0} -function Dc(a){for(var b=0,c=-1;bc||c>e)c=e}else{Bc(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){Dc(a)},c)}k.Wc=function(){var a=this.g;0<=this.c&&(this.c>3)*a.G,!Za(a.j,a.ea,a.B,3)))return!1;a.B?(a.Ja=a.f.createImageData(b,c),a.La=16/a.ja|0,Jc(a,a.B>>1)):Jc(a,(a.H+1)*a.W);a.s=document.createElement("canvas");a.s.width=b;a.s.height=c;a.ra=a.s.getContext("2d");a.I={};a.S=1<=a.xa?8:16,f=8>(7>4)*c)}return l}Ec.prototype.ga=function(){return!0};Ec.prototype.V=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.ua[b]=c,!0;switch(b){case "fullScreen":return this.A[b]=c,this.b&&this.b.Ea?c.onclick=function(){d.Ea()}:c.parentNode.removeChild(c),!0}return!1}; -Ec.prototype.Ea=function(){var a=!1;if(this.b){if(this.b.Ea){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.C/this.w;b>c&&(a=Math.round(c/b*100)+"%")}this.Ia?(this.u.style.width=a,this.u.style.width=a,this.u.style.display="block",this.u.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Ea();a=!0}this.R&&this.R.focus()}return a}; -function Hc(a,b){!b&&a.b&&(a.Ia?a.u.style.width=a.u.style.height="":a.b.style.width=a.b.style.height="")}function Jc(a,b){a.Ka=b;a.N=!1;if(void 0===a.i||a.i.length!=a.Ka)a.i=Array(a.Ka)}function Lc(a,b,c,d,e){d=a.c?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.U&&(208<=c&&236>c?e=a.S+0:28<=c&&72>c&&(e=a.S+1));a=a.K[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} -function Mb(a,b){var c=!0;if(!b){a.la&&(120==a.la?a.Va&1?(gc(a.a,2),c=!1):gc(a.a,1):gc(a.a,4));if(c&&a.N&&a.B){for(var d=a.j,e=a.B,f=!0,g=a.ea>>>d.j;0>=1);;){var x=bb(a.j,u++);if(127==(x&127)){var t=bb(a.j,u++),d=t&96,c=(t&15)<<8|bb(a.j,u),c=c+(t&16? -8192:16384);break}if(n>4)*x.P,Z,sa,Na,eb,xc=x.T,Jb=x.P;C?(Z=H*t.T,sa=e*t.P,Na=t.T,eb=t.P):(Z=H*t.Ca,sa=e*t.Da,Na=t.Ca,eb=t.Da);x.T>t.T&&(Z*=2,Na*=2);x.P>t.P&&(y||(Q+=t.P),Jb=t.P);C?C.drawImage(x.canvas,U,Q,xc,Jb,Z,sa,Na,eb):(Z+=0,sa+=0,t.f.drawImage(x.canvas,U,Q,xc,Jb,Z, -sa,Na,eb))}h++}g++}e++}}a.N=!0;!b&&a.sa&&1==h&&(a.i[l]=-1,h=0);a.sa=!1;(h||b)&&a.ra&&a.f.drawImage(a.s,0,a.pa,a.o,a.G-a.P,0,0,a.Jc,a.Ib)}else{e=a.ea;f=e+a.B;l=h=g=0;b=a.o;n=0;c=a.G;y=d=0;u=a.ja;H=(1<>>t.j;t=x!=t.f?t.b[U].Eb(x,C):t.b[U++].bb(x,C)|t.b[U&t.o].bb(0,C+1)<<8;if(a.N&&t===a.i[g])h+=a.La;else{a.i[g]=t;(C=y)&&(t=t>>8|(t&255)<<8);h>C&H,Lc(a,a.Ja,h++,l,U),C+=u;h>n&&(n=h);l=d&&(d=l+1)}e+= -2;g++;if(h>=a.o&&(h=0,l++,l>a.G))break}a.N=!0;bMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= -(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ea.aspect);f&&.3<=f&&3.33>=f&&(xa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");ra("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Ec(d,e,g,f,c);Pa(d,c)}}); -function Mc(a){this.I=+a.adapter;switch(this.I){case 0:this.K=0;this.R=2;break;default:q("Unrecognized serial adapter #"+this.I);return}this.b=this.c=null;this.N=a.tabSize;this.H=a.charBOL;this.f=0;this.C=!1;r.call(this,"SerialPort",a,Mc);var b=a.binding;if("console"==b)this.c="";else{var c;a=Nc;b&&(void 0===c&&(c="Panel"),(c=Oa(c,this.id))&&(b=c.A[b])&&this.V(null,a,b))}this.g="";this.i=this.s=null;this.exports={connect:this.Cb,receiveData:this.gb}}w(Mc); -var Oc=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Pc=[!1,0,0,133,142,39,238],Nc="buffer";k=Mc.prototype; -k.V=function(a,b,c,d){var e=this;switch(b){case Nc:return this.A[b]=this.b=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=ha(b[0]);if(c!=this.Sa)return;b=ha(b[1]);if(this.i=Ma(b)){var d=this.i.exports;if(d){var e=d.connect;e&&e.call(this.i);if(this.s=d.receiveData){this.status(this.Ta+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.ga=function(a,b){if(!b)if(this.Cb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -k.ia=function(a){return a?this.save():!0};k.reset=function(){Tc(this)};k.save=function(){var a=new F(this),b=0,c=[];c[b++]=this.o;c[b++]=this.B;c[b++]=this.G;c[b++]=this.fa;c[b++]=this.m;c[b++]=this.w;c[b]=this.u;a.set(0,c);return a.data()};k.restore=function(a){return Tc(this,a[0])};function Tc(a,b){var c=0;b||(b=Pc);a.o=b[c++];a.B=b[c++];a.G=b[c++];a.fa=b[c++];a.m=b[c++];a.w=b[c++];a.u=b[c];return!0} -function Uc(a,b){var c=a.u&b;b&15||(c>>=4);b=Oc[c];c=((a.m&12)>>2)+6;a.m&16&&c++;c+=((a.m&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function Qc(a,b){return a.C||a.fa&2?!1:(a.B=b,a.fa|=2,gc(a.a,a.R),!0)}k.gb=function(a){null!=a&&(this.g="number"!=typeof a?a:this.g+String.fromCharCode(a));this.g&&(Qc(this,this.g.charCodeAt(0))&&(this.g=this.g.substr(1)),this.g&&this.a&&Kb(this.a,this.S,Uc(this,15)));return!0};k.Qc=function(){var a=this.B;this.fa&=-3;return a};k.Pc=function(){return this.fa}; -k.Zc=function(a,b){this.G=b;this.fa&=-6;if(19==b)this.C=!0;else if(17==b)this.C=!1;else if(this.s&&this.s.call(this.i,b),this.b)if(8==b)this.b.value=this.b.value.slice(0,-1),0":String.fromCharCode(b);var c=a.length;9==b?(b=this.N||8,c=b-this.f%b,this.N&&(a=" ".slice(0,c))):13==b&&(this.f=c=0,a="\n");this.H&&!this.f&&c&&(a=String.fromCharCode(this.H)+a);this.b.value+=a;this.b.scrollTop=this.b.scrollHeight;this.f+=c}else if(null!= -this.c){if(10==b||1024<=this.c.length)this.da(this.c),this.c="";10!=b&&(this.c+=String.fromCharCode(b))}this.a&&Kb(this.a,this.U,Uc(this,240))};k.Yc=function(a,b){this.o?(this.w=b,this.w&64&&(this.o=!1)):(this.m=b,this.o=!0)};k.Xc=function(a,b){this.u=b};var Rc={0:Mc.prototype.Qc,1:Mc.prototype.Pc},Sc={0:Mc.prototype.Zc,1:Mc.prototype.Yc,2:Mc.prototype.Xc};ya(function(){for(var a=A(document,"pc8080","serial"),b=0;b\nLicense: GPL version 3 or later ");for(b=0;bXc){if(Zc(d,this.s)){this.i=new F(this,"1.30.1","failsafe");Zc(this.i)&&(dd(this,d),a=2,ed(this.i));this.i.set("timestamp",ka());fd(this.i);var e=this.b&&!this.v;if(1==a||ma("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=cd(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Zc(d,g):("error"== -f&&"no machine state"!=g?(this.L("Error: "+g),"unable to verify user"==g&&(qa("user",""),this.c=null)):this.da(f+": "+g),ed(d),Zc(d)?(c=cd(d),e=!0):c=!1))}e&&bd(this,c?d:null)}else 2==a&&d.clear()}else bd(this);delete this.s;delete this.u}e=La(this.id);for(f=0;fa[1];a=a[2];this.K=!0;this.l.Y=!0;var d=this.A.power;d&&(d.textContent="Shutdown");this.a&&(gd(this,this.a,b,c,a),this.a.Na());this.C&&(dd(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0}; -function dd(a,b){if(ma("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PC8080",ver:"1.30.1"};d.url=a.I;d.user=c;d.type="bug";d.data=b;la("http://www.pcjs.org/api/v1/report",d,!0)}} -function hd(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new F(a,"1.30.1"),g=new F(a,"1.30.1","validate"),h=ka();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ia&&(c&&Db(a.a),d=a.a.ia(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.l.Y=!1,!1===d&&(e=null)));for(var h=La(a.id),l=0;lf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PC8080$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){f=null,a=u.message}else a="unrecognized XML: "+(255>>f.j;0>>=f.j;0d?a.j.push({mb:b,hb:Date.now(),$a:!1}):(a.j[d].hb=Date.now(),a.j[d].$a=!1);else if(0<=d){if(!a.j[d].$a){var e=a.j[d].hb;if(e&&100>Date.now()-e)return a.j[d].$a=!0,Ec(a),!0}a.j.splice(d,1)}if(a.M){d=0;switch(b){case "1p":d=V.Ca.sc;break;case "2p":d=V.Ca.wc;break;case "coin":d=V.Ca.Tb;break;case "left":d=V.Ca.uc;break;case "right":d=V.Ca.vc;break;case "fire":d=V.Ca.tc}d&&(a=a.M,b=d,a.g&=~b,c&&(a.g|=b))}return!0} +function Ec(a){for(var b=0,c=-1;bc||c>e)c=e}else{Cc(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){Ec(a)},c)}k.$c=function(){var a=this.g;0<=this.c&&(this.c>3)*a.G,!$a(a.j,a.ja,a.B,3)))return!1;a.B?(a.Ma=a.f.createImageData(b,c),a.Oa=16/a.la|0,Kc(a,a.B>>1)):Kc(a,(a.H+1)*a.W);a.s=document.createElement("canvas");a.s.width=b;a.s.height=c;a.sa=a.s.getContext("2d");a.I={};a.S=1<=a.Aa?8:16,f=8>(7>4)*c)}return l}Fc.prototype.ga=function(){return!0};Fc.prototype.V=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.va[b]=c,!0;switch(b){case "fullScreen":return this.A[b]=c,this.b&&this.b.Ha?c.onclick=function(){d.Ha()}:c.parentNode.removeChild(c),!0}return!1}; +Fc.prototype.Ha=function(){var a=!1;if(this.b){if(this.b.Ha){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.C/this.w;b>c&&(a=Math.round(c/b*100)+"%")}this.La?(this.u.style.width=a,this.u.style.width=a,this.u.style.display="block",this.u.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Ha();a=!0}this.R&&this.R.focus()}return a}; +function Ic(a,b){!b&&a.b&&(a.La?a.u.style.width=a.u.style.height="":a.b.style.width=a.b.style.height="")}function Kc(a,b){a.Na=b;a.N=!1;if(void 0===a.i||a.i.length!=a.Na)a.i=Array(a.Na)}function Mc(a,b,c,d,e){d=a.c?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.U&&(208<=c&&236>c?e=a.S+0:28<=c&&72>c&&(e=a.S+1));a=a.L[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} +function Nb(a,b){var c=!0;if(!b){a.ma&&(120==a.ma?a.Xa&1?(hc(a.a,2),c=!1):hc(a.a,1):hc(a.a,4));if(c&&a.N&&a.B){for(var d=a.j,e=a.B,f=!0,g=a.ja>>>d.j;0>=1);;){var x=cb(a.j,u++);if(127==(x&127)){var t=cb(a.j,u++),d=t&96,c=(t&15)<<8|cb(a.j,u),c=c+(t&16? +8192:16384);break}if(n>4)*x.P,Z,sa,Pa,fb,zc=x.T,Lb=x.P;D?(Z=H*t.T,sa=e*t.P,Pa=t.T,fb=t.P):(Z=H*t.Fa,sa=e*t.Ga,Pa=t.Fa,fb=t.Ga);x.T>t.T&&(Z*=2,Pa*=2);x.P>t.P&&(y||(Q+=t.P),Lb=t.P);D?D.drawImage(x.canvas,U,Q,zc,Lb,Z,sa,Pa,fb):(Z+=0,sa+=0,t.f.drawImage(x.canvas,U,Q,zc,Lb, +Z,sa,Pa,fb))}h++}g++}e++}}a.N=!0;!b&&a.ta&&1==h&&(a.i[l]=-1,h=0);a.ta=!1;(h||b)&&a.sa&&a.f.drawImage(a.s,0,a.qa,a.o,a.G-a.P,0,0,a.Nc,a.Mb)}else{e=a.ja;f=e+a.B;l=h=g=0;b=a.o;n=0;c=a.G;y=d=0;u=a.la;H=(1<>>t.j;t=x!=t.f?t.b[U].Ib(x,D):t.b[U++].eb(x,D)|t.b[U&t.o].eb(0,D+1)<<8;if(a.N&&t===a.i[g])h+=a.Oa;else{a.i[g]=t;(D=y)&&(t=t>>8|(t&255)<<8);h>D&H,Mc(a,a.Ma,h++,l,U),D+=u;h>n&&(n=h);l=d&&(d=l+1)}e+= +2;g++;if(h>=a.o&&(h=0,l++,l>a.G))break}a.N=!0;bMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= +(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Fa.aspect);f&&.3<=f&&3.33>=f&&(ya("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");ta("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Fc(d,e,g,f,c);Qa(d,c)}}); +function Nc(a){this.I=+a.adapter;switch(this.I){case 0:this.L=0;this.R=2;break;default:q("Unrecognized serial adapter #"+this.I);return}this.b=this.c=null;this.N=a.tabSize;this.H=a.charBOL;this.f=0;this.C=!1;r.call(this,"SerialPort",a,Nc);var b=a.binding;if("console"==b)this.c="";else{var c;a=Oc;b&&(void 0===c&&(c="Panel"),(c=Oa(c,this.id))&&(b=c.A[b])&&this.V(null,a,b))}this.g="";this.i=this.s=null;this.exports={connect:this.Gb,receiveData:this.kb}}w(Nc); +var Pc=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Qc=[!1,0,0,133,142,39,238],Oc="buffer";k=Nc.prototype; +k.V=function(a,b,c,d){var e=this;switch(b){case Oc:return this.A[b]=this.b=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=ha(b[0]);if(c!=this.Va)return;b=ha(b[1]);if(this.i=Na(b)){var d=this.i.exports;if(d){var e=d.connect;e&&e.call(this.i);if(this.s=d.receiveData){this.status(this.ya+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.ga=function(a,b){if(!b)if(this.Gb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; +k.ia=function(a){return a?this.save():!0};k.reset=function(){Uc(this)};k.save=function(){var a=new F(this),b=0,c=[];c[b++]=this.o;c[b++]=this.B;c[b++]=this.G;c[b++]=this.fa;c[b++]=this.m;c[b++]=this.w;c[b]=this.u;a.set(0,c);return a.data()};k.restore=function(a){return Uc(this,a[0])};function Uc(a,b){var c=0;b||(b=Qc);a.o=b[c++];a.B=b[c++];a.G=b[c++];a.fa=b[c++];a.m=b[c++];a.w=b[c++];a.u=b[c];return!0} +function Vc(a,b){var c=a.u&b;b&15||(c>>=4);b=Pc[c];c=((a.m&12)>>2)+6;a.m&16&&c++;c+=((a.m&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function Rc(a,b){return a.C||a.fa&2?!1:(a.B=b,a.fa|=2,hc(a.a,a.R),!0)}k.kb=function(a){null!=a&&(this.g="number"!=typeof a?a:this.g+String.fromCharCode(a));this.g&&(Rc(this,this.g.charCodeAt(0))&&(this.g=this.g.substr(1)),this.g&&this.a&&Kb(this.a,this.S,Vc(this,15)));return!0};k.Uc=function(){var a=this.B;this.fa&=-3;return a};k.Tc=function(){return this.fa}; +k.cd=function(a,b){this.G=b;this.fa&=-6;if(19==b)this.C=!0;else if(17==b)this.C=!1;else if(this.s&&this.s.call(this.i,b),this.b)if(8==b)this.b.value=this.b.value.slice(0,-1),0":String.fromCharCode(b);var c=a.length;9==b?(b=this.N||8,c=b-this.f%b,this.N&&(a=" ".slice(0,c))):13==b&&(this.f=c=0,a="\n");this.H&&!this.f&&c&&(a=String.fromCharCode(this.H)+a);this.b.value+=a;this.b.scrollTop=this.b.scrollHeight;this.f+=c}else if(null!= +this.c){if(10==b||1024<=this.c.length)this.ea(this.c),this.c="";10!=b&&(this.c+=String.fromCharCode(b))}this.a&&Kb(this.a,this.U,Vc(this,240))};k.bd=function(a,b){this.o?(this.w=b,this.w&64&&(this.o=!1)):(this.m=b,this.o=!0)};k.ad=function(a,b){this.u=b};var Sc={0:Nc.prototype.Uc,1:Nc.prototype.Tc},Tc={0:Nc.prototype.cd,1:Nc.prototype.bd,2:Nc.prototype.ad};za(function(){for(var a=A(document,"pc8080","serial"),b=0;b\nLicense: GPL version 3 or later ");for(b=0;bYc){if($c(d,this.s)){this.i=new F(this,"1.30.1","failsafe");$c(this.i)&&(ed(this,d),a=2,fd(this.i));this.i.set("timestamp",ka());gd(this.i);var e=this.b&&!this.v;if(1==a||na("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=dd(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?$c(d,g):("error"== +f&&"no machine state"!=g?(this.K("Error: "+g),"unable to verify user"==g&&(ra("user",""),this.c=null)):this.ea(f+": "+g),fd(d),$c(d)?(c=dd(d),e=!0):c=!1))}e&&cd(this,c?d:null)}else 2==a&&d.clear()}else cd(this);delete this.s;delete this.u}e=Ma(this.id);for(f=0;fa[1];a=a[2];this.L=!0;this.l.Z=!0;var d=this.A.power;d&&(d.textContent="Shutdown");this.a&&(hd(this,this.a,b,c,a),this.a.Qa());this.C&&(ed(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0}; +function ed(a,b){if(na("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PC8080",ver:"1.30.1"};d.url=a.I;d.user=c;d.type="bug";d.data=b;la("http://www.pcjs.org/api/v1/report",d,!0)}} +function id(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new F(a,"1.30.1"),g=new F(a,"1.30.1","validate"),h=ka();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ia&&(c&&Eb(a.a),d=a.a.ia(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.l.Z=!1,!1===d&&(e=null)));for(var h=Ma(a.id),l=0;lf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PC8080$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){f=null,a=u.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");la(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],n,u=/( [a-z]+=)(['"])(.*?)\2/g;n=u.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);od(a,b,c)}})}else c(a,null)} -function pd(a,b,c,d){function e(a){if(void 0===h){var b=g&&A(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ga(a))}function f(a){e("Error: "+a);l&&(--ld||Ba(!0));l=!1}var g,h,l=!0;ld++;Ja[a]={};try{if(g=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=n:y.appendChild(document.createTextNode(n));u.appendChild(y)}c|| -(c="/versions/pc8080/1.30.1/components.xsl");n=function(d,h){h?md(c,null,null,!1,e,function(d,l){l?(Ka(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--ld||Ba(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--ld||Ba(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?md(b,a,d,!0,e,n):nd(b,null,a,d,!1,e,n)}else f("missing machine element: "+a)}catch(H){f(H.message)}return l}window.embedPC8080=function(a,b,c,d){Ba(!1);return pd(a,b,c,d)};window.enableEvents=Ba;window.sendEvent=Ca;})(); +function pd(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");la(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],n,u=/( [a-z]+=)(['"])(.*?)\2/g;n=u.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);pd(a,b,c)}})}else c(a,null)} +function qd(a,b,c,d){function e(a){if(void 0===h){var b=g&&A(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ga(a))}function f(a){e("Error: "+a);l&&(--md||Ca(!0));l=!1}var g,h,l=!0;md++;Ka[a]={};try{if(g=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=n:y.appendChild(document.createTextNode(n));u.appendChild(y)}c|| +(c="/versions/pc8080/1.30.1/components.xsl");n=function(d,h){h?nd(c,null,null,!1,e,function(d,l){l?(La(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--md||Ca(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--md||Ca(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?nd(b,a,d,!0,e,n):od(b,null,a,d,!1,e,n)}else f("missing machine element: "+a)}catch(H){f(H.message)}return l}window.embedPC8080=function(a,b,c,d){Ca(!1);return qd(a,b,c,d)};window.enableEvents=Ca;window.sendEvent=Da;})(); diff --git a/versions/pcx86/1.30.1/components.css b/versions/pcx86/1.30.1/components.css index dc7dbc154c..6fa42a7a70 100644 --- a/versions/pcx86/1.30.1/components.css +++ b/versions/pcx86/1.30.1/components.css @@ -85,7 +85,7 @@ } .pcjs-description, .pcjs-status { font-size: x-small; - line-height: 2em; + line-height: 2.8em; } .pcjs-key { border: 1px solid black; diff --git a/versions/pcx86/1.30.1/components.xsl b/versions/pcx86/1.30.1/components.xsl index 2fdfafed38..4e63686a96 100644 --- a/versions/pcx86/1.30.1/components.xsl +++ b/versions/pcx86/1.30.1/components.xsl @@ -580,9 +580,9 @@ null - + - + 0 @@ -610,7 +610,7 @@ - ,model:'',stepping:'',fpu:,cycles:,multiplier:,autoStart:,resetAddr:,csStart:,csInterval:,csStop: + ,model:'',stepping:'',fpu:,cycles:,multiplier:,autoStart:,addrReset:,csStart:,csInterval:,csStop: @@ -931,16 +931,10 @@ - - - - false - - rom - ,addr:,size:,alias:,file:'',notify:'',writable: + ,addr:,size:,alias:,file:'',notify:'' @@ -964,6 +958,24 @@ 0 + + + + + + + + + + null + + + + + + null + + @@ -973,7 +985,7 @@ ram - ,addr:,size:,test: + ,addr:,size:,file:'',load:,exec:,test: diff --git a/versions/pdpjs/1.30.1/components.css b/versions/pdpjs/1.30.1/components.css index dc7dbc154c..6fa42a7a70 100644 --- a/versions/pdpjs/1.30.1/components.css +++ b/versions/pdpjs/1.30.1/components.css @@ -85,7 +85,7 @@ } .pcjs-description, .pcjs-status { font-size: x-small; - line-height: 2em; + line-height: 2.8em; } .pcjs-key { border: 1px solid black; diff --git a/versions/pdpjs/1.30.1/components.xsl b/versions/pdpjs/1.30.1/components.xsl index 2ed9557728..3d896754c3 100644 --- a/versions/pdpjs/1.30.1/components.xsl +++ b/versions/pdpjs/1.30.1/components.xsl @@ -580,9 +580,9 @@ null - + - + 0 @@ -610,7 +610,7 @@ - ,model:'',stepping:'',fpu:,cycles:,multiplier:,autoStart:,resetAddr:,csStart:,csInterval:,csStop: + ,model:'',stepping:'',fpu:,cycles:,multiplier:,autoStart:,addrReset:,csStart:,csInterval:,csStop: @@ -931,16 +931,10 @@ - - - - false - - rom - ,addr:,size:,alias:,file:'',notify:'',writable: + ,addr:,size:,alias:,file:'',notify:'' @@ -964,6 +958,24 @@ 0 + + + + + + + + + + null + + + + + + null + + @@ -973,7 +985,7 @@ ram - ,addr:,size:,test: + ,addr:,size:,file:'',load:,exec:,test: diff --git a/versions/pdpjs/1.30.1/pdp11-dbg.js b/versions/pdpjs/1.30.1/pdp11-dbg.js index b773c3a4e3..4986bdf8b3 100644 --- a/versions/pdpjs/1.30.1/pdp11-dbg.js +++ b/versions/pdpjs/1.30.1/pdp11-dbg.js @@ -29,231 +29,233 @@ http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2016 */ for(var h,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,da=["Math","log2"],ea=0;ea>=3;return(c?"0o":"")+d}function k(a,b,c){var d="";b?8=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d} -function pa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0":">",'"':""","'":"'"};function ua(a){return a.replace(/[&<>"']/g,function(a){return ta[a]})}function va(a,b){return(a+" ").slice(0,b)} -function xa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var ya={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"}; -function za(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a>1,l;l=c(b,a[g]);0a?"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 Fa(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var l=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(l.onreadystatechange=function(){4===l.readyState&&(f=l.responseText,200==l.status||!l.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=l.status||-1),d&&d(a,f,e))});if(b&&"object"== -typeof b){var m="",p;for(p in b)b.hasOwnProperty(p)&&(m&&(m+="&"),m+=p+"="+encodeURIComponent(b[p]));m=m.replace(/%20/g,"+");l.open("POST",a,!!c);l.setRequestHeader("Content-type","application/x-www-form-urlencoded");l.send(m)}else l.open("GET",a,!!c),"bytes"==b&&l.overrideMimeType("text/plain; charset=x-user-defined"),l.send();c||(f=l.responseText,200!=l.status&&(e=l.status||-1),d&&d(a,f,e),g=[f,e]);return g}function sa(){return"http://"+(window?window.location.host:"www.pcjs.org")} -function n(a){window&&window.alert(a)}function Ga(a){var b=!1;window&&(b=window.confirm(a));return b}var Ha=null;function Ia(){if(null==Ha){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Ha=a}return Ha}function Ja(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b} -function Ka(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function La(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 Ma(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0>=3;return(c?"0o":"")+d}function k(a,b,c){var d="";b?8=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d} +function oa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0":">",'"':""","'":"'"};function ta(a){return a.replace(/[&<>"']/g,function(a){return sa[a]})}function ua(a,b){return(a+" ").slice(0,b)} +function va(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var wa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"}; +function ya(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a>1,l;l=c(b,a[g]);0a?"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 Ba(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var l=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(l.onreadystatechange=function(){4===l.readyState&&(f=l.responseText,200==l.status||!l.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=l.status||-1),d&&d(a,f,e))});if(b&&"object"== +typeof b){var m="",p;for(p in b)b.hasOwnProperty(p)&&(m&&(m+="&"),m+=p+"="+encodeURIComponent(b[p]));m=m.replace(/%20/g,"+");l.open("POST",a,!!c);l.setRequestHeader("Content-type","application/x-www-form-urlencoded");l.send(m)}else l.open("GET",a,!!c),"bytes"==b&&l.overrideMimeType("text/plain; charset=x-user-defined"),l.send();c||(f=l.responseText,200!=l.status&&(e=l.status||-1),d&&d(a,f,e),g=[f,e]);return g} +function Fa(a,b){var c,d={ga:null,ja:null,Lb:null,Kb:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g=eval("("+b+")");d.Lb=g.load;d.Kb=g.exec;if(e=g.bytes)d.ga=e;else if(e=g.words)for(d.ga=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.ga=Array(4*e.length),f=c=0;c>8&255,d.ga[f++]=e[c]>>16&255,d.ga[f++]=e[c]>>24&255;else d.ga=g;d.ja=g.symbols;d.ga.length?1==d.ga.length&&(n(d.ga[0]),d=null): +(n("Empty resource: "+a),d=null)}catch(l){n("Resource data error: "+l.message),d=null}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),d.ga=Array(a.length),c=0;cb?this.Ua=this.id:(this.Gb=this.id.substr(0,b),this.Ua=this.id.substr(b+1));this[a]=c;this.v={ready:!1,jb:!1,Hb:!1,ha:!1,error:!1};this.xb=null;this.v.error=!1;this.J={};this.i=null;this.ia=d||0;t.push(this)}var cb=void 0,db={}; +function Ua(a){if(Ra)try{for(var b=0;bb?this.Ua=this.id:(this.Va=this.id.substr(0,b),this.Ua=this.id.substr(b+1));this[a]=c;this.v={ready:!1,mb:!1,Ib:!1,ia:!1,error:!1};this.zb=null;this.v.error=!1;this.J={};this.i=null;this.ka=d||0;t.push(this)}var cb=void 0,db={}; if(window){cb||(cb=window.location.search.substr(1));for(var eb,fb=/\+/g,gb=/([^&=]+)=?([^&]*)/g;eb=gb.exec(cb);)db[decodeURIComponent(eb[1].replace(fb," "))]=decodeURIComponent(eb[2].replace(fb," "))}function hb(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 u(a,b){b||(b=r);a.prototype=hb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var ib=window.PCjs.Machines||(window.PCjs.Machines={}),t=window.PCjs.Components||(window.PCjs.Components=[])}else ib={},t=[];function jb(a,b,c){ib[a]&&b&&(ib[a][b]=c)}function kb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>2;this.w=this.sa-1;this.D=this.H/this.sa|0;this.Ga=[];this.C=0;this.B=[];this.ic=[Nb,Ob,Pb,Qb];a=new J(this);Rb(a,this.i);this.W=Array(this.D);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.Ga[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.i&&G(this.i,64)&&E(this.i,e[4]+".readByte("+K(this.i,b)+"): "+K(this.i,c),!0,!0),c;c=Tb(d,b,!0);this.i&&G(this.i,64)&&E(this.i,"warning: unconverted read access to byte @"+K(this.i,b)+": "+K(this.i,c),!0,!0);return c} -function Ob(a,b,c){var d=!1,e=this.controller,f=e.Ga[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.Ga[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d?this.i&&G(this.i,64)&&E(this.i,f[4]+".writeByte("+K(this.i,c)+","+K(this.i,b)+")",!0,!0):(Tb(e,c,!0,b),this.i&&G(this.i,64)&&E(this.i,"warning: unconverted write access to byte @"+K(this.i,c)+": "+K(this.i,b),!0,!0))} -function Pb(a,b){var c=-1,d=this.controller;(a=d.Ga[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));if(0<=c)return this.i&&G(this.i,64)&&E(this.i,a[4]+".readWord("+K(this.i,b)+"): "+K(this.i,c),!0,!0),c;c=Tb(d,b,!1);this.i&&G(this.i,64)&&E(this.i,"warning: unconverted read access to word @"+K(this.i,b)+": "+K(this.i,c),!0,!0);return c} -function Qb(a,b,c){var d=!1,e=this.controller;if(a=e.Ga[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d?this.i&&G(this.i,64)&&E(this.i,a[4]+".writeWord("+K(this.i,c)+","+K(this.i,b)+")",!0,!0):(Tb(e,c,!1,b),this.i&&G(this.i,64)&&E(this.i,"warning: unconverted write access to word @"+K(this.i,c)+": "+K(this.i,b),!0,!0))} -function Ub(a,b){if(b!=a.g){var c;a.g&&(c=(1<>>a.ga;0g&&(q=g);if(!e&&m&&m.size){if(m.type==d){if(f+g<=m.A)return m.tb+=m.A-f,m.A=f,!0;if(f>=m.A+m.tb){q=m.size-(f-p);q>g&&(q=g);m.tb=f-m.A+q;f=p+a.sa;g-=q;l++;continue}}return $b(1,f,g)}f=new J(a,f,q,a.sa,d,e);Rb(f,a.i,m);a.W[l++]=f;f=p+a.sa;g-=q}if(0>=g){c/=1024;var v;e="";v?10>>=a.ga;0>>=a.ga;0>>this.ga].Cb(a&this.w,a)};h.zb=function(a){this.C++;a=this.W[(a&this.f)>>>this.ga].Jb(a&this.w,a);this.C--;return a};h.ka=function(a){return this.W[(a&this.f)>>>this.ga].ra(a&this.w,a)}; -h.mb=function(a){var b=a&this.w,c=(a&this.f)>>>this.ga;this.C++;a=this.W[c].Kb(b,a);this.C--;return a};h.Db=function(a,b){this.W[(a&this.f)>>>this.ga].Fb(a&this.w,b&255,a)};h.rb=function(a,b){this.C++;this.W[(a&this.f)>>>this.ga].Pb(a&this.w,b&255,a);this.C--};h.Sa=function(a,b){this.W[(a&this.f)>>>this.ga].ub(a&this.w,b&65535,a)};h.Eb=function(a,b){var c=a&this.w,d=(a&this.f)>>>this.ga;this.C++;this.W[d].Qb(c,b&65535,a);this.C--}; -function bc(a){for(var b=0,c=[],d=0;da.b.Ya)){var g=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!g&&m&&(g=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));kc(a,e,e,g,l,m,p,f[4])}}}function mc(a,b){a.B.push(b)} -function nc(a,b){a.C||(a.i&&G(a.i,536870912)&&E(a.i,"memory fault on address "+K(a.i,b),!0,!0),a.b.ea(4,b))}function $b(a,b,c){n("Memory block error ("+a+": "+k(b)+","+k(c)+")");return!1}function L(a){r.call(this,"Device",a,L,256);this.g={data:0,Pd:0,Bb:20,dd:0};this.f={Qd:0,Ob:-1}}u(L);h=L.prototype; -h.Ba=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.Ob=oc(c,function(){e.f.Ia|=128;e.f.Ia&64&&(pc(e.b,e.f.ed),qc(e.b,e.f.Ob,1E3/60))});this.f.ed=rc(64,6);lc(b,this,M);mc(b,this.reset.bind(this));H(this)};h.reset=function(){this.g.Bb=this.g.Bb&-120|20;this.f.Ia=0};h.Ac=function(){var a=this.f.Ia;this.f.Ia&=-129;return a};h.od=function(a){this.f.Ia=a;a&64&&qc(this.b,this.f.Ob,1E3/60);this.f.Ia=a&-129};h.tc=function(a){return(a?this.g.dd:this.g.data)&65535}; -h.gd=function(a){this.g.data=a};h.Cc=function(){var a=this.b;return a.G&62337|a.ua<<5|a.va<<1};h.qd=function(a){var b=this.b;a&=62337;if(b.G!=a){b.G=a;b.ua=a>>5&3;b.va=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ja!=c&&(b.Ja=c,sc(b))}tc(this)};h.Dc=function(){var a=this.b.La;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Ec=function(){return this.b.qb};h.Fc=function(){return this.b.Ma}; -h.rd=function(a){var b=this.b;1170>b.Ya&&(a&=-49);b.Ma!=a&&(b.Ma=a,a&16?(b.Wa=4194303,b.wa=3915776):(b.Wa=262143,b.wa=253952),sc(b));tc(this)};function tc(a){a.g.Bb=a.g.Bb&-8|(a.b.Ja?a.b.Ma&16?1:2:4)}h.Tc=function(a){return this.b.P[1][a>>1&7]};h.Fd=function(a,b){this.b.P[1][b>>1&7]=a&65295};h.Rc=function(a){return this.b.P[1][(a>>1&7)+8]};h.Dd=function(a,b){this.b.P[1][(b>>1&7)+8]=a&65295};h.Sc=function(a){return this.b.qa[1][a>>1&7]}; -h.Ed=function(a,b){b=b>>1&7;this.b.qa[1][b]=a;this.b.P[1][b]&=65295};h.Qc=function(a){return this.b.qa[1][(a>>1&7)+8]};h.Cd=function(a,b){b=(b>>1&7)+8;this.b.qa[1][b]=a;this.b.P[1][b]&=65295};h.zc=function(a){return this.b.P[0][a>>1&7]};h.nd=function(a,b){this.b.P[0][b>>1&7]=a&65295};h.xc=function(a){return this.b.P[0][(a>>1&7)+8]};h.ld=function(a,b){this.b.P[0][(b>>1&7)+8]=a&65295};h.yc=function(a){return this.b.qa[0][a>>1&7]};h.md=function(a,b){b=b>>1&7;this.b.qa[0][b]=a;this.b.P[0][b]&=65295}; -h.wc=function(a){return this.b.qa[0][(a>>1&7)+8]};h.kd=function(a,b){b=(b>>1&7)+8;this.b.qa[0][b]=a;this.b.P[0][b]&=65295};h.Zc=function(a){return this.b.P[3][a>>1&7]};h.Ld=function(a,b){this.b.P[3][b>>1&7]=a&65295};h.Xc=function(a){return this.b.P[3][(a>>1&7)+8]};h.Jd=function(a,b){this.b.P[3][(b>>1&7)+8]=a&65295};h.Yc=function(a){return this.b.qa[3][a>>1&7]};h.Kd=function(a,b){b=b>>1&7;this.b.qa[3][b]=a;this.b.P[3][b]&=65295};h.Wc=function(a){return this.b.qa[3][(a>>1&7)+8]}; -h.Id=function(a,b){b=(b>>1&7)+8;this.b.qa[3][b]=a;this.b.P[3][b]&=65295};h.bb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};h.gb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};h.Kc=function(){return this.b.L&49152?this.b.ta[0]:this.b.u[6]};h.wd=function(a){this.b.L&49152?this.b.ta[0]=a:this.b.u[6]=a};h.Nc=function(){return this.b.u[7]};h.zd=function(a){this.b.u[7]=a};h.cb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]}; -h.hb=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};h.Lc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.ta[1]};h.xd=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.ta[1]=a};h.Mc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.ta[3]};h.yd=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.ta[3]=a};h.vc=function(a){return this.b.cc[a-65504>>1]};h.jd=function(a,b){this.b.cc[b-65504>>1]=a};h.$b=function(a){return 65520==a?61183:0};h.fc=function(){}; -h.Vc=function(){return 1};h.Hd=function(){};h.uc=function(){return this.b.Z};h.hd=function(){this.b.Z=0};h.Bc=function(){return this.b.bc};h.pd=function(a,b){b&1||(a&=255);this.b.bc=a};h.Gc=function(a){return a?this.b.Mb:0};h.sd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Mb=a;b.F|=2};h.Uc=function(a){return a?this.b.Na&65280:0};h.Gd=function(a){this.b.Na=a|255};h.Jc=function(){return Kb(this.b)};h.vd=function(a){uc(this.b,a&-1809|Kb(this.b)&1808);this.b.F|=128}; -h.ec=function(a,b){G(this)&&E(this,"writeIgnored("+oa(b)+"): "+oa(a),!0,!0)}; -var N={},M=(N[62592]=[null,null,L.prototype.Tc,L.prototype.Fd,"SISDR",1145],N[62608]=[null,null,L.prototype.Rc,L.prototype.Dd,"SDSDR",1145],N[62624]=[null,null,L.prototype.Sc,L.prototype.Ed,"SISAR",1145],N[62640]=[null,null,L.prototype.Qc,L.prototype.Cd,"SDSAR",1145],N[62656]=[null,null,L.prototype.zc,L.prototype.nd,"KISDR",1145],N[62672]=[null,null,L.prototype.xc,L.prototype.ld,"KDSDR",1145],N[62688]=[null,null,L.prototype.yc,L.prototype.md,"KISAR",1145],N[62704]=[null,null,L.prototype.wc,L.prototype.kd, -"KDSAR",1145],N[62798]=[null,null,L.prototype.Fc,L.prototype.rd,"MMR3",1145],N[65382]=[null,null,L.prototype.Ac,L.prototype.od,"LKS"],N[65400]=[null,null,L.prototype.tc,L.prototype.gd,"CNSL"],N[65402]=[null,null,L.prototype.Cc,L.prototype.qd,"MMR0",1145],N[65404]=[null,null,L.prototype.Dc,L.prototype.ec,"MMR1",1145],N[65406]=[null,null,L.prototype.Ec,L.prototype.ec,"MMR2",1145],N[65408]=[null,null,L.prototype.Zc,L.prototype.Ld,"UISDR",1145],N[65424]=[null,null,L.prototype.Xc,L.prototype.Jd,"UDSDR", -1145],N[65440]=[null,null,L.prototype.Yc,L.prototype.Kd,"UISAR",1145],N[65456]=[null,null,L.prototype.Wc,L.prototype.Id,"UDSAR",1145],N[65472]=[null,null,L.prototype.bb,L.prototype.gb,"R0SET0"],N[65473]=[null,null,L.prototype.bb,L.prototype.gb,"R1SET0"],N[65474]=[null,null,L.prototype.bb,L.prototype.gb,"R2SET0"],N[65475]=[null,null,L.prototype.bb,L.prototype.gb,"R3SET0"],N[65476]=[null,null,L.prototype.bb,L.prototype.gb,"R4SET0"],N[65477]=[null,null,L.prototype.bb,L.prototype.gb,"R5SET0"],N[65478]= -[null,null,L.prototype.Kc,L.prototype.wd,"R6KERNEL"],N[65479]=[null,null,L.prototype.Nc,L.prototype.zd,"R7KERNEL"],N[65480]=[null,null,L.prototype.cb,L.prototype.hb,"R0SET1",1145],N[65481]=[null,null,L.prototype.cb,L.prototype.hb,"R1SET1",1145],N[65482]=[null,null,L.prototype.cb,L.prototype.hb,"R2SET1",1145],N[65483]=[null,null,L.prototype.cb,L.prototype.hb,"R3SET1",1145],N[65484]=[null,null,L.prototype.cb,L.prototype.hb,"R4SET1",1145],N[65485]=[null,null,L.prototype.cb,L.prototype.hb,"R5SET1",1145], -N[65486]=[null,null,L.prototype.Lc,L.prototype.xd,"R6SUPER",1145],N[65487]=[null,null,L.prototype.Mc,L.prototype.yd,"R6USER",1145],N[65504]=[null,null,L.prototype.vc,L.prototype.jd,"CTRL",1170],N[65520]=[null,null,L.prototype.$b,L.prototype.fc,"LSIZE",1170],N[65522]=[null,null,L.prototype.$b,L.prototype.fc,"HSIZE",1170],N[65524]=[null,null,L.prototype.Vc,L.prototype.Hd,"SYSID",1170],N[65526]=[null,null,L.prototype.uc,L.prototype.hd,"CPUERR",1170],N[65528]=[null,null,L.prototype.Bc,L.prototype.pd, -"MB",1170],N[65530]=[null,null,L.prototype.Gc,L.prototype.sd,"PIR"],N[65532]=[null,null,L.prototype.Uc,L.prototype.Gd,"SL"],N[65534]=[null,null,L.prototype.Jc,L.prototype.vd,"PSW"],N);M[62594]=M[62592];M[62596]=M[62592];M[62598]=M[62592];M[62600]=M[62592];M[62602]=M[62592];M[62604]=M[62592];M[62606]=M[62592];M[62610]=M[62608];M[62612]=M[62608];M[62614]=M[62608];M[62616]=M[62608];M[62618]=M[62608];M[62620]=M[62608];M[62622]=M[62608];M[62626]=M[62624];M[62628]=M[62624];M[62630]=M[62624];M[62632]=M[62624]; -M[62634]=M[62624];M[62636]=M[62624];M[62638]=M[62624];M[62642]=M[62640];M[62644]=M[62640];M[62646]=M[62640];M[62648]=M[62640];M[62650]=M[62640];M[62652]=M[62640];M[62654]=M[62640];M[62658]=M[62656];M[62660]=M[62656];M[62662]=M[62656];M[62664]=M[62656];M[62666]=M[62656];M[62668]=M[62656];M[62670]=M[62656];M[62674]=M[62672];M[62676]=M[62672];M[62678]=M[62672];M[62680]=M[62672];M[62682]=M[62672];M[62684]=M[62672];M[62686]=M[62672];M[62690]=M[62688];M[62692]=M[62688];M[62694]=M[62688];M[62696]=M[62688]; -M[62698]=M[62688];M[62700]=M[62688];M[62702]=M[62688];M[62706]=M[62704];M[62708]=M[62704];M[62710]=M[62704];M[62712]=M[62704];M[62714]=M[62704];M[62716]=M[62704];M[62718]=M[62704];M[65410]=M[65408];M[65412]=M[65408];M[65414]=M[65408];M[65416]=M[65408];M[65418]=M[65408];M[65420]=M[65408];M[65422]=M[65408];M[65426]=M[65424];M[65428]=M[65424];M[65430]=M[65424];M[65432]=M[65424];M[65434]=M[65424];M[65436]=M[65424];M[65438]=M[65424];M[65442]=M[65440];M[65444]=M[65440];M[65446]=M[65440];M[65448]=M[65440]; -M[65450]=M[65440];M[65452]=M[65440];M[65454]=M[65440];M[65458]=M[65456];M[65460]=M[65456];M[65462]=M[65456];M[65464]=M[65456];M[65466]=M[65456];M[65468]=M[65456];M[65470]=M[65456];M[65506]=M[65504];M[65508]=M[65504];M[65510]=M[65504];M[65512]=M[65504];M[65514]=M[65504];M[65516]=M[65504];M[65518]=M[65504];Ta(function(){for(var a=B(document,"pdp11","device"),b=0;b>1),this.b=new Int32Array(this.C,0,d>>2),Cc(this,yc?Dc:Ec);else{this.b=Array(d>>2);for(a=0;a>2),b=0;b>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ja:function(a,b){a&1&&nc(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},ua:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= -this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ha=!0},T:function(a,b){if(this.i&&null!=this.A){var c=this.i;Jc(c,this.A+a,1,c.M)&&c.da(!0)}return this.Jb(a,b)},ba:function(a,b){if(this.i&&null!=this.A){var c=this.i;Jc(c,this.A+a,2,c.M)&&c.da(!0)}return this.Kb(a,b)},ma:function(a,b,c){if(this.i&&null!=this.A){var d=this.i;Jc(d,this.A+a, -1,d.D)&&d.da(!0)}this.f?this.J(a,b,c):this.Pb(a,b,c)},wa:function(a,b,c){if(this.i&&null!=this.A){var d=this.i;Jc(d,this.A+a,2,d.D)&&d.da(!0)}this.f?this.J(a,b,c):this.Qb(a,b,c)},R:function(a){return this.D[a]},U:function(a,b){a=this.D[a];this.i&&G(this.i,128)&&E(this.i,"Memory.readByte("+K(this.i,b)+"): "+K(this.i,a),!0);return a},aa:function(a,b){a&1&&nc(this.w,b);return this.G.getUint16(a,!0)},fa:function(a,b){a&1&&nc(this.w,b);a=this.I[a>>1];this.i&&G(this.i,128)&&E(this.i,"Memory.readWord("+ -K(this.i,b)+"): "+K(this.i,a),!0);return a},la:function(a,b){this.D[a]=b;this.Ha=!0},pa:function(a,b,c){this.D[a]=b;this.Ha=!0;this.i&&G(this.i,128)&&E(this.i,"Memory.writeByte("+K(this.i,c)+","+K(this.i,b)+")",!0)},va:function(a,b,c){a&1&&nc(this.w,c);this.G.setUint16(a,b,!0);this.Ha=!0},Ua:function(a,b,c){a&1&&nc(this.w,c);this.I[a>>1]=b;this.Ha=!0;this.i&&G(this.i,128)&&E(this.i,"Memory.writeWord("+K(this.i,c)+","+K(this.i,b)+")",!0)}}; -function Rb(a,b,c){a.i=b;a.g=a.B=0;c&&((a.g=c.g)&&Ic(a,Hc,!1),(a.B=c.B)&&Gc(a,Hc,!1))}function Kc(a,b){b?--a.B||(a.Fb=a.f?a.J:a.Pb,a.ub=a.f?a.H:a.Qb):--a.g||(a.Cb=a.Jb,a.ra=a.Kb)}function Gc(a,b,c){c&&a.B||(a.Fb=!a.f&&b[1]||a.J,a.ub=!a.f&&b[3]||a.H);if(c||void 0===c)a.Pb=b[1]||a.J,a.Qb=b[3]||a.H}function Ic(a,b,c){c&&a.g||(a.Cb=b[0]||a.K,a.ra=b[2]||a.M);if(c||void 0===c)a.Jb=b[0]||a.K,a.Kb=b[2]||a.M}function Cc(a,b){b||(b=Lc);Ic(a,b,void 0);Gc(a,b,void 0)} -var Lc=[],Fc=[J.prototype.V,J.prototype.ua,J.prototype.ja,J.prototype.za],Hc=[J.prototype.T,J.prototype.ma,J.prototype.ba,J.prototype.wa];if(sb)var Ec=[J.prototype.R,J.prototype.la,J.prototype.aa,J.prototype.va],Dc=[J.prototype.U,J.prototype.pa,J.prototype.fa,J.prototype.Ua]; -function Mc(a,b){r.call(this,"CPU",a,Mc,1);var c=a.multiplier||1;this.Fa=a.cycles||b;this.Ka=c;this.Va=Math.round(this.Fa/1E4)/100;this.Ra=this.Va*this.Ka;this.v.ca=!1;this.v.Nb=!1;this.v.ib=a.autoStart;this.v.Xa=!1;this.nb=this.ja=0;this.ob=a.csStart;this.Za=a.csInterval;this.$a=a.csStop;this.K=[];this.Ab=this.cd.bind(this);H(this)}u(Mc);var Nc=["power","reset"];h=Mc.prototype; -h.Ba=function(a,b,c,d){this.B=a;this.w=b;this.i=d;for(b=0;b=a.ja&&(a.ja+=a.Za,c=!0);0<=a.$a&&a.$a<=Tc(a)&&(a.Za=a.$a=-1,Qc(a),a.da(),c=!0);c&&a.j(Tc(a)+" cycles: checksum="+k(a.nb))}} -h.oa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.v.ha)a=!0;else{var b=null,c,l=kb(a.id);for(c=0;ca.V/a.Ra?b=1:d=!0;a.Ka=b;b=a.Va*a.Ka;if(a.Ra!=b){a.Ra=b;b=a.Ra.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.B&&a.B.sb()}Vc(a,a.T);a.T=0;a.R=Aa();a.aa=0;Wc(a);return d}function oc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function qc(a,b,c){0<=b&&ba.K[b][0]&&(c=a.Fa*a.Ka/1E3*c|0,a.K[b][0]=c+Xc(a))} -function Yc(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Zc(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Xc(a,b){var c=a.ba-=a.b;a.b=0;b&&(a.ba=0);return c} -h.cd=function(){if(this.v.ca){this.kb>=this.Fa&&Wc(this,!0);this.pa=0;this.za=Aa();if(this.aa){var a=this.za-this.aa;a>this.wb&&(this.R+=a,this.R>this.za&&(this.R=this.za))}try{do{var b=Yc(this,this.v.Xa?1:this.Oa);try{this.fb(b)}catch(e){if("number"!=typeof e)throw e;}b=Xc(this,!0);this.pa+=b;this.T+=b;Sc(this,b);Zc(this,b);this.la-=b;if(0>=this.la){this.la+=this.Oa;15<=++this.yb&&(this.B&&this.B.$(),this.yb=0);break}}while(this.v.ca)}catch(e){this.da();this.B&&this.B.stop(Aa(),Tc(this));rb(this, -e.stack||e.message);return}if(this.v.ca){a=setTimeout;b=this.Ab;this.aa=Aa();var c=this.wb;this.pa&&(c=Math.round(c*this.pa/this.Oa));var c=c-(this.aa-this.za),d=this.aa-this.R;d&&(this.V=Math.round(this.T/(10*d))/100,864E5<=d&&(this.fa=0,Uc(this)));if(0>c||this.Vc&&(this.R-=c),c=0;this.kb+=this.pa;this.aa+=c;a(b,c)}}}; -h.eb=function(a){if(qb(this))return!1;if(this.v.ca)return this.j(this.toString()+" busy"),!1;Uc(this);this.v.ca=!0;this.v.Nb=!0;var b=this.J.run;b&&(b.textContent="Halt");this.B&&(a&&this.B.sb(!0),this.B.start(this.R,Tc(this)));setTimeout(this.Ab,0);return!0};h.fb=function(){return 0};h.da=function(a){if(this.v.ca){Xc(this);Vc(this,this.T);this.T=0;this.v.ca=!1;var b=this.J.run;b&&(b.textContent="Run");this.B&&this.B.stop(Aa(),Tc(this))}this.v.complete=a}; -function $c(a){this.Ya=+a.model||1170;this.qc=a.resetAddr||0;Mc.call(this,a,6666667);this.decode=1120==this.Ya?ad.bind(this):ud.bind(this);vd(this);this.C=0;this.U=null;this.v.complete=this.v.kc=!1}u($c,Mc);h=$c.prototype;h.reset=function(){this.status("model "+this.Ya);this.v.ca&&this.da();vd(this);Pc(this);this.v.error=!1;this.parent.reset.call(this)}; -function vd(a){a.N=65536;a.O=32768;a.X=65535;a.S=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.qc];a.Ea=[0,0,0,0,0,0];a.ta=[0,0,0,0];a.D=0;a.va=0;a.oc=[4,2,0,1];a.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.qa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.rc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.cc=[0,0,0,0,0,0,0,0];a.bc=0;a.F=0;a.H=a.I=0;a.g=a.f=a.Ta=0;a.ma=-1;wd(a)}function wd(a){a.Na=255;a.Z=0;a.Mb=0;a.G=0;a.La=0;a.qb=0;a.Ma=0;a.Ja=0;a.ua=0;a.Wa=262143;a.wa=253952;a.F|=2;a.w&&sc(a)}function sc(a){a.Ja?(a.M=65536,a.Y=a.nc,a.ra=a.$c,a.ub=a.Md,Ub(a.w,a.Ma&16?22:18)):(a.M=0,a.Y=a.mc,a.ra=a.ac,a.ub=a.gc,Ub(a.w,16))}h.Wb=function(){return 0}; -h.save=function(){var a=new O(this);a.set(0,[]);a.set(1,[this.fa,this.Ka]);a.set(2,bc(this.w));return a.data()};h.restore=function(a){var b=a[1];this.fa=b[1];Uc(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c>14&3;c=a.L>>14&3;a.D!=c&&(a.ta[c]=a.u[6],a.u[6]=a.ta[a.D]);a.L=b;a.F|=2}function P(a,b){a.F&128||(a.S=a.X=b,a.O=0)}function Cd(a,b,c){a.F&128||(a.S=a.X=a.N=b,a.O=c||0)}function Dd(a,b,c,d){a.F&128||(a.S=a.X=a.N=b,a.O=(c^b)&(d^b))}function Ed(a,b){a.F&128||(a.S=a.X=a.N=b,a.O=a.S^a.N>>1)}function Fd(a,b,c,d){a.F&128||(a.S=a.X=a.N=b,a.O=(c^d)&(d^b))} -h.ea=function(a,b){if(!this.C){var c=!1;0>this.ma?this.ma=Kb(this):this.D||(a=4,c=!0);this.G&57344||(this.La=63222,this.qb=a);this.D=0;var d=this.ra(a|this.M),e=this.ra(a+2&65535|this.M);uc(this,e&-12289|this.ma>>2&12288);c&&(this.Z|=4,this.u[6]=4);Gd(this,this.ma);Gd(this,this.u[7]);Bd(this,d);this.F&=-113;this.ma=-1;if(26!=b)throw a;}};function Hd(a){var b=Id(a),c=Id(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);Bd(a,b);uc(a,c);a.F&=-17} -function Jd(a,b,c){var d,e,f,g=0;d=b>>13;a.Ma&a.oc[a.D]||(d&=7);e=a.P[a.D][d];f=(a.qa[a.D][d]<<6)+(b&8191)&a.Wa;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.Ma&32&&(f=a.rc[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.wa&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? -192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.P[a.D][d]=e;if(4194170!==f||a.D)a.ua=a.D,a.va=d;g&&(g&57344&&(0<=a.ma&&(g|=128),a.G&57344||(a.G=a.G|g|a.ua<<5|a.va<<1),a.ea(168,16)),a.G&61440||!(4191360>f||4194239c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.ra(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.ra(e)|g; -a.b-=8;break;case 6:return e=Ad(a),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=Ad(a),e=e+a.u[c]&65535,e=a.ra(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.G&57344||(a.La=a.La<<8|f<<3&248|c);6==c&&!a.D&&d&4&&0>=f&&(a.u[6]<=a.Na||65534<=a.u[6])&&(a.u[6]<=a.Na-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.F|=64));return e}h.zb=function(a){if(!this.Ja)return this.w.zb(a);this.C++;a=Kd(this,Jd(this,a,3));this.C--;return a}; -h.mb=function(a){if(!this.Ja)return this.w.mb(a);this.C++;a=this.ac(Jd(this,a,2));this.C--;return a};h.rb=function(a,b){this.Ja?(this.C++,Ld(this,Jd(this,a,5),b),this.C--):this.w.rb(a,b)};h.Eb=function(a,b){this.Ja?(this.C++,this.gc(Jd(this,a,4),b),this.C--):this.w.Eb(a,b)};h.mc=function(a,b,c){return Md(this,a,b,c)};h.nc=function(a,b,c){return Jd(this,Md(this,a,b,c),c)};h.ac=function(a){return this.w.ka(a)};h.$c=function(a){return this.w.ka(Jd(this,a,2))};h.gc=function(a,b){this.w.Sa(a,b&65535)}; -h.Md=function(a,b){this.w.Sa(Jd(this,a,4),b)};function Nd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Md(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.D=a.L>>12&3,c=a.ra(d|c&a.M),a.D=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.ta[a.L>>12&3];return c}function Od(a,b,c,d){a.G&57344||(a.La=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Md(a,b,e,4),c&65536||(e&=65535),a.D=a.L>>12&3,e=Jd(a,e|c&65536,4),a.D=a.L>>14&3,a.w.Sa(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.ta[a.L>>12&3]=d} -function Pd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?Kd(a,a.Y(b,c,3)):a.u[c]&255}function Qd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?a.w.ka(a.Y(b,c,2)):a.u[c]}function Rd(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Md(a,b,c,8)}function Sd(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Kd(a,a.Y(b,c,3)):a.u[c]&255}function Td(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.ka(a.Y(b,c,2)):a.u[c]} -function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Ta=a.Y(b,e,7),Ld(a,e,d.call(a,c,Kd(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Y(b,e,6),a.w.Sa(e,d.call(a,c,a.w.ka(e)))):a.u[e]=d.call(a,c,a.u[e])}function Ud(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Ld(a,a.Y(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Vd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.Sa(a.Y(b,d,4),c):a.u[d]=c&65535;return c} -function S(a,b,c){c&&(Bd(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3} -h.fb=function(a){this.v.complete=!0;var b=this.v.kc=this.i&&Wd(this.i),c=a?this.v.Nb?0:1:-1;this.v.Nb=!1;this.ba=this.b=a;do{if(b){if(Xd(this.i,this.u[7],c)){this.da();break}c=1}if(this.F&&(this.F&112&&(this.F&32?this.ea(168,28):this.F&64?this.ea(4,30):this.F&16&&this.ea(12,32),this.F&=-113),this.F&7))if(this.F&2){this.F&=-3;var d=160,e=(this.Mb&224)>>5;if(a=this.U&&this.U.ab>e?this.U:null)d=a.fd,e=a.ab;e>(this.L&224)>>5?(this.F&4&&(this.u[7]=this.u[7]+2&65535,this.F&=-5),this.ea(d,26),e=!0):e=!1; -if(e&&a)if(e=this.U,e==a)this.U=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.F&1&&this.F++;this.G&57344||(this.La=0,this.qb=this.u[7]);this.F=this.F&7|this.L&16;this.decode(Ad(this))}while(0>2;this.w=this.ua-1;this.D=this.H/this.ua|0;this.Ha=[];this.C=0;this.B=[];this.mc=[Ob,Pb,Qb,Rb];a=new I(this);Sb(a,this.i);this.W=Array(this.D);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.Ha[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.i&&G(this.i,64)&&E(this.i,e[4]+".readByte("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!0);this.i&&G(this.i,64)&&E(this.i,"warning: unconverted read access to byte @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c} +function Pb(a,b,c){var d=!1,e=this.controller,f=e.Ha[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.Ha[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d?this.i&&G(this.i,64)&&E(this.i,f[4]+".writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!0,b),this.i&&G(this.i,64)&&E(this.i,"warning: unconverted write access to byte @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} +function Qb(a,b){var c=-1,d=this.controller;(a=d.Ha[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));if(0<=c)return this.i&&G(this.i,64)&&E(this.i,a[4]+".readWord("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!1);this.i&&G(this.i,64)&&E(this.i,"warning: unconverted read access to word @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c} +function Rb(a,b,c){var d=!1,e=this.controller;if(a=e.Ha[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d?this.i&&G(this.i,64)&&E(this.i,a[4]+".writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!1,b),this.i&&G(this.i,64)&&E(this.i,"warning: unconverted write access to word @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} +function Vb(a,b){if(b!=a.g){var c;a.g&&(c=(1<>>a.ha;0g&&(q=g);if(!e&&m&&m.size){if(m.type==d){if(f+g<=m.A)return m.vb+=m.A-f,m.A=f,!0;if(f>=m.A+m.vb){q=m.size-(f-p);q>g&&(q=g);m.vb=f-m.A+q;f=p+a.ua;g-=q;l++;continue}}return ac(1,f,g)}f=new I(a,f,q,a.ua,d,e);Sb(f,a.i,m);a.W[l++]=f;f=p+a.ua;g-=q}if(0>=g){c/=1024;var v;e="";v?10>>=a.ha;0>>=a.ha;0>>this.ha].Eb(a&this.w,a)};h.Bb=function(a){this.C++;a=this.W[(a&this.f)>>>this.ha].Mb(a&this.w,a);this.C--;return a};h.ma=function(a){return this.W[(a&this.f)>>>this.ha].ta(a&this.w,a)}; +h.pb=function(a){var b=a&this.w,c=(a&this.f)>>>this.ha;this.C++;a=this.W[c].Nb(b,a);this.C--;return a};h.Fb=function(a,b){this.W[(a&this.f)>>>this.ha].Hb(a&this.w,b&255,a)};h.gb=function(a,b){this.C++;this.W[(a&this.f)>>>this.ha].Sb(a&this.w,b&255,a);this.C--};h.Ta=function(a,b){this.W[(a&this.f)>>>this.ha].wb(a&this.w,b&65535,a)};h.Gb=function(a,b){var c=a&this.w,d=(a&this.f)>>>this.ha;this.C++;this.W[d].Tb(c,b&65535,a);this.C--}; +function cc(a){for(var b=0,c=[],d=0;da.b.$a)){var g=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!g&&m&&(g=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));lc(a,e,e,g,l,m,p,f[4])}}}function nc(a,b){a.B.push(b)} +function oc(a,b){a.C||(a.i&&G(a.i,536870912)&&E(a.i,"memory fault on address "+J(a.i,b),!0,!0),a.b.ea(4,b))}function ac(a,b,c){n("Memory block error ("+a+": "+k(b)+","+k(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.g={data:0,Sd:0,Db:20,gd:0};this.f={Td:0,Rb:-1}}u(K);h=K.prototype; +h.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.Rb=pc(c,function(){e.f.Ja|=128;e.f.Ja&64&&(qc(e.b,e.f.hd),rc(e.b,e.f.Rb,1E3/60))});this.f.hd=sc(64,6);mc(b,this,L);nc(b,this.reset.bind(this));H(this)};h.reset=function(){this.g.Db=this.g.Db&-120|20;this.f.Ja=0};h.Dc=function(){var a=this.f.Ja;this.f.Ja&=-129;return a};h.rd=function(a){this.f.Ja=a;a&64&&rc(this.b,this.f.Rb,1E3/60);this.f.Ja=a&-129};h.wc=function(a){return(a?this.g.gd:this.g.data)&65535}; +h.kd=function(a){this.g.data=a};h.Fc=function(){var a=this.b;return a.G&62337|a.wa<<5|a.xa<<1};h.td=function(a){var b=this.b;a&=62337;if(b.G!=a){b.G=a;b.wa=a>>5&3;b.xa=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ka!=c&&(b.Ka=c,tc(b))}uc(this)};h.Gc=function(){var a=this.b.Ma;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Hc=function(){return this.b.tb};h.Ic=function(){return this.b.Na}; +h.ud=function(a){var b=this.b;1170>b.$a&&(a&=-49);b.Na!=a&&(b.Na=a,a&16?(b.Ya=4194303,b.ya=3915776):(b.Ya=262143,b.ya=253952),tc(b));uc(this)};function uc(a){a.g.Db=a.g.Db&-8|(a.b.Ka?a.b.Na&16?1:2:4)}h.Wc=function(a){return this.b.P[1][a>>1&7]};h.Id=function(a,b){this.b.P[1][b>>1&7]=a&65295};h.Uc=function(a){return this.b.P[1][(a>>1&7)+8]};h.Gd=function(a,b){this.b.P[1][(b>>1&7)+8]=a&65295};h.Vc=function(a){return this.b.sa[1][a>>1&7]}; +h.Hd=function(a,b){b=b>>1&7;this.b.sa[1][b]=a;this.b.P[1][b]&=65295};h.Tc=function(a){return this.b.sa[1][(a>>1&7)+8]};h.Fd=function(a,b){b=(b>>1&7)+8;this.b.sa[1][b]=a;this.b.P[1][b]&=65295};h.Cc=function(a){return this.b.P[0][a>>1&7]};h.qd=function(a,b){this.b.P[0][b>>1&7]=a&65295};h.Ac=function(a){return this.b.P[0][(a>>1&7)+8]};h.od=function(a,b){this.b.P[0][(b>>1&7)+8]=a&65295};h.Bc=function(a){return this.b.sa[0][a>>1&7]};h.pd=function(a,b){b=b>>1&7;this.b.sa[0][b]=a;this.b.P[0][b]&=65295}; +h.zc=function(a){return this.b.sa[0][(a>>1&7)+8]};h.nd=function(a,b){b=(b>>1&7)+8;this.b.sa[0][b]=a;this.b.P[0][b]&=65295};h.bd=function(a){return this.b.P[3][a>>1&7]};h.Od=function(a,b){this.b.P[3][b>>1&7]=a&65295};h.$c=function(a){return this.b.P[3][(a>>1&7)+8]};h.Md=function(a,b){this.b.P[3][(b>>1&7)+8]=a&65295};h.ad=function(a){return this.b.sa[3][a>>1&7]};h.Nd=function(a,b){b=b>>1&7;this.b.sa[3][b]=a;this.b.P[3][b]&=65295};h.Zc=function(a){return this.b.sa[3][(a>>1&7)+8]}; +h.Ld=function(a,b){b=(b>>1&7)+8;this.b.sa[3][b]=a;this.b.P[3][b]&=65295};h.eb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};h.jb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};h.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};h.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};h.Qc=function(){return this.b.u[7]};h.Cd=function(a){this.b.u[7]=a};h.fb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]}; +h.kb=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};h.Oc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[1]};h.Ad=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[1]=a};h.Pc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[3]};h.Bd=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[3]=a};h.yc=function(a){return this.b.gc[a-65504>>1]};h.md=function(a,b){this.b.gc[b-65504>>1]=a};h.dc=function(a){return 65520==a?61183:0};h.jc=function(){}; +h.Yc=function(){return 1};h.Kd=function(){};h.xc=function(){return this.b.Z};h.ld=function(){this.b.Z=0};h.Ec=function(){return this.b.fc};h.sd=function(a,b){b&1||(a&=255);this.b.fc=a};h.Jc=function(a){return a?this.b.Pb:0};h.vd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Pb=a;b.F|=2};h.Xc=function(a){return a?this.b.Oa&65280:0};h.Jd=function(a){this.b.Oa=a|255};h.Mc=function(){return Lb(this.b)};h.yd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.F|=128}; +h.ic=function(a,b){G(this)&&E(this,"writeIgnored("+na(b)+"): "+na(a),!0,!0)}; +var M={},L=(M[62592]=[null,null,K.prototype.Wc,K.prototype.Id,"SISDR",1145],M[62608]=[null,null,K.prototype.Uc,K.prototype.Gd,"SDSDR",1145],M[62624]=[null,null,K.prototype.Vc,K.prototype.Hd,"SISAR",1145],M[62640]=[null,null,K.prototype.Tc,K.prototype.Fd,"SDSAR",1145],M[62656]=[null,null,K.prototype.Cc,K.prototype.qd,"KISDR",1145],M[62672]=[null,null,K.prototype.Ac,K.prototype.od,"KDSDR",1145],M[62688]=[null,null,K.prototype.Bc,K.prototype.pd,"KISAR",1145],M[62704]=[null,null,K.prototype.zc,K.prototype.nd, +"KDSAR",1145],M[62798]=[null,null,K.prototype.Ic,K.prototype.ud,"MMR3",1145],M[65382]=[null,null,K.prototype.Dc,K.prototype.rd,"LKS"],M[65400]=[null,null,K.prototype.wc,K.prototype.kd,"CNSL"],M[65402]=[null,null,K.prototype.Fc,K.prototype.td,"MMR0",1145],M[65404]=[null,null,K.prototype.Gc,K.prototype.ic,"MMR1",1145],M[65406]=[null,null,K.prototype.Hc,K.prototype.ic,"MMR2",1145],M[65408]=[null,null,K.prototype.bd,K.prototype.Od,"UISDR",1145],M[65424]=[null,null,K.prototype.$c,K.prototype.Md,"UDSDR", +1145],M[65440]=[null,null,K.prototype.ad,K.prototype.Nd,"UISAR",1145],M[65456]=[null,null,K.prototype.Zc,K.prototype.Ld,"UDSAR",1145],M[65472]=[null,null,K.prototype.eb,K.prototype.jb,"R0SET0"],M[65473]=[null,null,K.prototype.eb,K.prototype.jb,"R1SET0"],M[65474]=[null,null,K.prototype.eb,K.prototype.jb,"R2SET0"],M[65475]=[null,null,K.prototype.eb,K.prototype.jb,"R3SET0"],M[65476]=[null,null,K.prototype.eb,K.prototype.jb,"R4SET0"],M[65477]=[null,null,K.prototype.eb,K.prototype.jb,"R5SET0"],M[65478]= +[null,null,K.prototype.Nc,K.prototype.zd,"R6KERNEL"],M[65479]=[null,null,K.prototype.Qc,K.prototype.Cd,"R7KERNEL"],M[65480]=[null,null,K.prototype.fb,K.prototype.kb,"R0SET1",1145],M[65481]=[null,null,K.prototype.fb,K.prototype.kb,"R1SET1",1145],M[65482]=[null,null,K.prototype.fb,K.prototype.kb,"R2SET1",1145],M[65483]=[null,null,K.prototype.fb,K.prototype.kb,"R3SET1",1145],M[65484]=[null,null,K.prototype.fb,K.prototype.kb,"R4SET1",1145],M[65485]=[null,null,K.prototype.fb,K.prototype.kb,"R5SET1",1145], +M[65486]=[null,null,K.prototype.Oc,K.prototype.Ad,"R6SUPER",1145],M[65487]=[null,null,K.prototype.Pc,K.prototype.Bd,"R6USER",1145],M[65504]=[null,null,K.prototype.yc,K.prototype.md,"CTRL",1170],M[65520]=[null,null,K.prototype.dc,K.prototype.jc,"LSIZE",1170],M[65522]=[null,null,K.prototype.dc,K.prototype.jc,"HSIZE",1170],M[65524]=[null,null,K.prototype.Yc,K.prototype.Kd,"SYSID",1170],M[65526]=[null,null,K.prototype.xc,K.prototype.ld,"CPUERR",1170],M[65528]=[null,null,K.prototype.Ec,K.prototype.sd, +"MB",1170],M[65530]=[null,null,K.prototype.Jc,K.prototype.vd,"PIR"],M[65532]=[null,null,K.prototype.Xc,K.prototype.Jd,"SL"],M[65534]=[null,null,K.prototype.Mc,K.prototype.yd,"PSW"],M);L[62594]=L[62592];L[62596]=L[62592];L[62598]=L[62592];L[62600]=L[62592];L[62602]=L[62592];L[62604]=L[62592];L[62606]=L[62592];L[62610]=L[62608];L[62612]=L[62608];L[62614]=L[62608];L[62616]=L[62608];L[62618]=L[62608];L[62620]=L[62608];L[62622]=L[62608];L[62626]=L[62624];L[62628]=L[62624];L[62630]=L[62624];L[62632]=L[62624]; +L[62634]=L[62624];L[62636]=L[62624];L[62638]=L[62624];L[62642]=L[62640];L[62644]=L[62640];L[62646]=L[62640];L[62648]=L[62640];L[62650]=L[62640];L[62652]=L[62640];L[62654]=L[62640];L[62658]=L[62656];L[62660]=L[62656];L[62662]=L[62656];L[62664]=L[62656];L[62666]=L[62656];L[62668]=L[62656];L[62670]=L[62656];L[62674]=L[62672];L[62676]=L[62672];L[62678]=L[62672];L[62680]=L[62672];L[62682]=L[62672];L[62684]=L[62672];L[62686]=L[62672];L[62690]=L[62688];L[62692]=L[62688];L[62694]=L[62688];L[62696]=L[62688]; +L[62698]=L[62688];L[62700]=L[62688];L[62702]=L[62688];L[62706]=L[62704];L[62708]=L[62704];L[62710]=L[62704];L[62712]=L[62704];L[62714]=L[62704];L[62716]=L[62704];L[62718]=L[62704];L[65410]=L[65408];L[65412]=L[65408];L[65414]=L[65408];L[65416]=L[65408];L[65418]=L[65408];L[65420]=L[65408];L[65422]=L[65408];L[65426]=L[65424];L[65428]=L[65424];L[65430]=L[65424];L[65432]=L[65424];L[65434]=L[65424];L[65436]=L[65424];L[65438]=L[65424];L[65442]=L[65440];L[65444]=L[65440];L[65446]=L[65440];L[65448]=L[65440]; +L[65450]=L[65440];L[65452]=L[65440];L[65454]=L[65440];L[65458]=L[65456];L[65460]=L[65456];L[65462]=L[65456];L[65464]=L[65456];L[65466]=L[65456];L[65468]=L[65456];L[65470]=L[65456];L[65506]=L[65504];L[65508]=L[65504];L[65510]=L[65504];L[65512]=L[65504];L[65514]=L[65504];L[65516]=L[65504];L[65518]=L[65504];Ta(function(){for(var a=B(document,"pdp11","device"),b=0;b>1),this.b=new Int32Array(this.C,0,d>>2),Dc(this,zc?Ec:Fc);else{this.b=Array(d>>2);for(a=0;a>2),b=0;b>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},la:function(a,b){a&1&&oc(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},wa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= +this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ia=!0},T:function(a,b){if(this.i&&null!=this.A){var c=this.i;Kc(c,this.A+a,1,c.M)&&c.da(!0)}return this.Mb(a,b)},ba:function(a,b){if(this.i&&null!=this.A){var c=this.i;Kc(c,this.A+a,2,c.M)&&c.da(!0)}return this.Nb(a,b)},oa:function(a,b,c){if(this.i&&null!=this.A){var d=this.i;Kc(d,this.A+a, +1,d.D)&&d.da(!0)}this.f?this.J(a,b,c):this.Sb(a,b,c)},ya:function(a,b,c){if(this.i&&null!=this.A){var d=this.i;Kc(d,this.A+a,2,d.D)&&d.da(!0)}this.f?this.J(a,b,c):this.Tb(a,b,c)},R:function(a){return this.D[a]},U:function(a,b){a=this.D[a];this.i&&G(this.i,128)&&E(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},aa:function(a,b){a&1&&oc(this.w,b);return this.G.getUint16(a,!0)},fa:function(a,b){a&1&&oc(this.w,b);a=this.I[a>>1];this.i&&G(this.i,128)&&E(this.i,"Memory.readWord("+ +J(this.i,b)+"): "+J(this.i,a),!0);return a},na:function(a,b){this.D[a]=b;this.Ia=!0},ra:function(a,b,c){this.D[a]=b;this.Ia=!0;this.i&&G(this.i,128)&&E(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},xa:function(a,b,c){a&1&&oc(this.w,c);this.G.setUint16(a,b,!0);this.Ia=!0},Ua:function(a,b,c){a&1&&oc(this.w,c);this.I[a>>1]=b;this.Ia=!0;this.i&&G(this.i,128)&&E(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}}; +function Sb(a,b,c){a.i=b;a.g=a.B=0;c&&((a.g=c.g)&&Jc(a,Ic,!1),(a.B=c.B)&&Hc(a,Ic,!1))}function Lc(a,b){b?--a.B||(a.Hb=a.f?a.J:a.Sb,a.wb=a.f?a.H:a.Tb):--a.g||(a.Eb=a.Mb,a.ta=a.Nb)}function Hc(a,b,c){c&&a.B||(a.Hb=!a.f&&b[1]||a.J,a.wb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Sb=b[1]||a.J,a.Tb=b[3]||a.H}function Jc(a,b,c){c&&a.g||(a.Eb=b[0]||a.K,a.ta=b[2]||a.M);if(c||void 0===c)a.Mb=b[0]||a.K,a.Nb=b[2]||a.M}function Dc(a,b){b||(b=Mc);Jc(a,b,void 0);Hc(a,b,void 0)} +var Mc=[],Gc=[I.prototype.V,I.prototype.wa,I.prototype.la,I.prototype.Va],Ic=[I.prototype.T,I.prototype.oa,I.prototype.ba,I.prototype.ya];if(sb)var Fc=[I.prototype.R,I.prototype.na,I.prototype.aa,I.prototype.xa],Ec=[I.prototype.U,I.prototype.ra,I.prototype.fa,I.prototype.Ua]; +function Nc(a,b){r.call(this,"CPU",a,Nc,1);var c=a.multiplier||1;this.Ga=a.cycles||b;this.La=c;this.Xa=Math.round(this.Ga/1E4)/100;this.Sa=this.Xa*this.La;this.v.ca=!1;this.v.Qb=!1;this.v.lb=a.autoStart;this.v.Za=!1;this.qb=this.la=0;this.rb=a.csStart;this.ab=a.csInterval;this.bb=a.csStop;this.K=[];this.bc=this.fd.bind(this);H(this)}u(Nc);var Oc=["power","reset"];h=Nc.prototype; +h.Ca=function(a,b,c,d){this.B=a;this.w=b;this.i=d;for(b=0;b=a.la&&(a.la+=a.ab,c=!0);0<=a.bb&&a.bb<=Uc(a)&&(a.ab=a.bb=-1,Rc(a),a.da(),c=!0);c&&a.j(Uc(a)+" cycles: checksum="+k(a.qb))}} +h.qa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.v.ia)a=!0;else{var b=null,c,l=kb(a.id);for(c=0;ca.V/a.Sa?b=1:d=!0;a.La=b;b=a.Xa*a.La;if(a.Sa!=b){a.Sa=b;b=a.Sa.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.B&&a.B.ub()}Wc(a,a.T);a.T=0;a.R=za();a.aa=0;Xc(a);return d}function pc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function rc(a,b,c){0<=b&&ba.K[b][0]&&(c=a.Ga*a.La/1E3*c|0,a.K[b][0]=c+Yc(a))} +function Zc(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function $c(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Yc(a,b){var c=a.ba-=a.b;a.b=0;b&&(a.ba=0);return c} +h.fd=function(){if(this.v.ca){this.nb>=this.Ga&&Xc(this,!0);this.ra=0;this.Fa=za();if(this.aa){var a=this.Fa-this.aa;a>this.Ab&&(this.R+=a,this.R>this.Fa&&(this.R=this.Fa))}try{do{var b=Zc(this,this.v.Za?1:this.Pa);try{this.ib(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.ra+=b;this.T+=b;Tc(this,b);$c(this,b);this.na-=b;if(0>=this.na){this.na+=this.Pa;15<=++this.Cb&&(this.B&&this.B.$(),this.Cb=0);break}}while(this.v.ca)}catch(e){this.da();this.B&&this.B.stop(za(),Uc(this));rb(this, +e.stack||e.message);return}if(this.v.ca){a=setTimeout;b=this.bc;this.aa=za();var c=this.Ab;this.ra&&(c=Math.round(c*this.ra/this.Pa));var c=c-(this.aa-this.Fa),d=this.aa-this.R;d&&(this.V=Math.round(this.T/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.Vc&&(this.R-=c),c=0;this.nb+=this.ra;this.aa+=c;a(b,c)}}}; +h.hb=function(a){if(qb(this))return!1;if(this.v.ca)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.ca=!0;this.v.Qb=!0;var b=this.J.run;b&&(b.textContent="Halt");this.B&&(a&&this.B.ub(!0),this.B.start(this.R,Uc(this)));setTimeout(this.bc,0);return!0};h.ib=function(){return 0};h.da=function(a){if(this.v.ca){Yc(this);Wc(this,this.T);this.T=0;this.v.ca=!1;var b=this.J.run;b&&(b.textContent="Run");this.B&&this.B.stop(za(),Uc(this))}this.v.complete=a}; +function ad(a){this.$a=+a.model||1170;this.xb=a.addrReset||0;Nc.call(this,a,6666667);this.decode=1120==this.$a?ud.bind(this):vd.bind(this);wd(this);this.C=0;this.U=null;this.v.complete=this.v.oc=!1}u(ad,Nc);h=ad.prototype;h.reset=function(){this.status("model "+this.$a);this.v.ca&&this.da();wd(this);Qc(this);this.v.error=!1;this.parent.reset.call(this)}; +function wd(a){a.N=65536;a.O=32768;a.X=65535;a.S=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.xb];a.Ea=[0,0,0,0,0,0];a.va=[0,0,0,0];a.D=0;a.xa=0;a.sc=[4,2,0,1];a.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.sa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.gc=[0,0,0,0,0,0,0,0];a.fc=0;a.F=0;a.H=a.I=0;a.g=a.f=a.Wa=0;a.oa=-1;xd(a)}function xd(a){a.Oa=255;a.Z=0;a.Pb=0;a.G=0;a.Ma=0;a.tb=0;a.Na=0;a.Ka=0;a.wa=0;a.Ya=262143;a.ya=253952;a.F|=2;a.w&&tc(a)}function tc(a){a.Ka?(a.M=65536,a.Y=a.rc,a.ta=a.cd,a.wb=a.Pd,Vb(a.w,a.Na&16?22:18)):(a.M=0,a.Y=a.qc,a.ta=a.ec,a.wb=a.kc,Vb(a.w,16))}h.Zb=function(){return 0}; +h.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.fa,this.La]);a.set(2,cc(this.w));return a.data()};h.restore=function(a){var b=a[1];this.fa=b[1];Vc(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c>14&3;c=a.L>>14&3;a.D!=c&&(a.va[c]=a.u[6],a.u[6]=a.va[a.D]);a.L=b;a.F|=2}function P(a,b){a.F&128||(a.S=a.X=b,a.O=0)}function Cd(a,b,c){a.F&128||(a.S=a.X=a.N=b,a.O=c||0)}function Dd(a,b,c,d){a.F&128||(a.S=a.X=a.N=b,a.O=(c^b)&(d^b))}function Ed(a,b){a.F&128||(a.S=a.X=a.N=b,a.O=a.S^a.N>>1)}function Fd(a,b,c,d){a.F&128||(a.S=a.X=a.N=b,a.O=(c^d)&(d^b))} +h.ea=function(a,b){if(!this.C){var c=!1;0>this.oa?this.oa=Lb(this):this.D||(a=4,c=!0);this.G&57344||(this.Ma=63222,this.tb=a);this.D=0;var d=this.ta(a|this.M),e=this.ta(a+2&65535|this.M);vc(this,e&-12289|this.oa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Gd(this,this.oa);Gd(this,this.u[7]);O(this,d);this.F&=-113;this.oa=-1;if(26!=b)throw a;}};function Hd(a){var b=Id(a),c=Id(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);O(a,b);vc(a,c);a.F&=-17} +function Jd(a,b,c){var d,e,f,g=0;d=b>>13;a.Na&a.sc[a.D]||(d&=7);e=a.P[a.D][d];f=(a.sa[a.D][d]<<6)+(b&8191)&a.Ya;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.Na&32&&(f=a.uc[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? +192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.P[a.D][d]=e;if(4194170!==f||a.D)a.wa=a.D,a.xa=d;g&&(g&57344&&(0<=a.oa&&(g|=128),a.G&57344||(a.G=a.G|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.G&61440||!(4191360>f||4194239c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.ta(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.ta(e)|g; +a.b-=8;break;case 6:return e=Bd(a),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=Bd(a),e=e+a.u[c]&65535,e=a.ta(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.G&57344||(a.Ma=a.Ma<<8|f<<3&248|c);6==c&&!a.D&&d&4&&0>=f&&(a.u[6]<=a.Oa||65534<=a.u[6])&&(a.u[6]<=a.Oa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.F|=64));return e}h.Bb=function(a){if(!this.Ka)return this.w.Bb(a);this.C++;a=Kd(this,Jd(this,a,3));this.C--;return a}; +h.pb=function(a){if(!this.Ka)return this.w.pb(a);this.C++;a=this.ec(Jd(this,a,2));this.C--;return a};h.gb=function(a,b){this.Ka?(this.C++,Ld(this,Jd(this,a,5),b),this.C--):this.w.gb(a,b)};h.Gb=function(a,b){this.Ka?(this.C++,this.kc(Jd(this,a,4),b),this.C--):this.w.Gb(a,b)};h.qc=function(a,b,c){return Md(this,a,b,c)};h.rc=function(a,b,c){return Jd(this,Md(this,a,b,c),c)};h.ec=function(a){return this.w.ma(a)};h.cd=function(a){return this.w.ma(Jd(this,a,2))};h.kc=function(a,b){this.w.Ta(a,b&65535)}; +h.Pd=function(a,b){this.w.Ta(Jd(this,a,4),b)};function Nd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Md(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.D=a.L>>12&3,c=a.ta(d|c&a.M),a.D=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.va[a.L>>12&3];return c}function Od(a,b,c,d){a.G&57344||(a.Ma=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Md(a,b,e,4),c&65536||(e&=65535),a.D=a.L>>12&3,e=Jd(a,e|c&65536,4),a.D=a.L>>14&3,a.w.Ta(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.va[a.L>>12&3]=d} +function Pd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?Kd(a,a.Y(b,c,3)):a.u[c]&255}function Qd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?a.w.ma(a.Y(b,c,2)):a.u[c]}function Rd(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Md(a,b,c,8)}function Sd(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Kd(a,a.Y(b,c,3)):a.u[c]&255}function Td(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.ma(a.Y(b,c,2)):a.u[c]} +function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Wa=a.Y(b,e,7),Ld(a,e,d.call(a,c,Kd(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Y(b,e,6),a.w.Ta(e,d.call(a,c,a.w.ma(e)))):a.u[e]=d.call(a,c,a.u[e])}function Ud(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Ld(a,a.Y(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Vd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.Ta(a.Y(b,d,4),c):a.u[d]=c&65535;return c} +function S(a,b,c){c&&(O(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3} +h.ib=function(a){this.v.complete=!0;var b=this.v.oc=this.i&&Wd(this.i),c=a?this.v.Qb?0:1:-1;this.v.Qb=!1;this.ba=this.b=a;do{if(b){if(Xd(this.i,this.u[7],c)){this.da();break}c=1}if(this.F&&(this.F&112&&(this.F&32?this.ea(168,28):this.F&64?this.ea(4,30):this.F&16&&this.ea(12,32),this.F&=-113),this.F&7))if(this.F&2){this.F&=-3;var d=160,e=(this.Pb&224)>>5;if(a=this.U&&this.U.cb>e?this.U:null)d=a.jd,e=a.cb;e>(this.L&224)>>5?(this.F&4&&(this.u[7]=this.u[7]+2&65535,this.F&=-5),this.ea(d,26),e=!0):e=!1; +if(e&&a)if(e=this.U,e==a)this.U=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.F&1&&this.F++;this.G&57344||(this.Ma=0,this.tb=this.u[7]);this.F=this.F&7|this.L&16;this.decode(Bd(this))}while(0>1|b<<16;Ed(this,a);return a&65535}function ce(a,b){a=b&2048|b>>1|b<<8;Ed(this,a<<8);return a&255}function de(a,b){a=b&~a;P(this,a);return a}function ee(a,b){a=b&~a;P(this,a<<8);return a}function fe(a,b){a|=b;P(this,a);return a}function ge(a,b){a|=b;P(this,a<<8);return a} function he(a,b){a=~b|65536;Cd(this,a);return a&65535}function ie(a,b){a=~b|256;Cd(this,a<<8);return a&255}function je(a,b){a=b-a;this.F&128||(this.S=this.X=a,this.O=b&(b^a));return a&65535}function ke(a,b){a=b-a;var c=a<<8;b<<=8;this.F&128||(this.S=this.X=c,this.O=b&(b^c));return a&255}function le(a,b){a=b+a;this.F&128||(this.S=this.X=a,this.O=a&(b^a));return a&65535}function me(a,b){a=b+a;var c=a<<8;this.F&128||(this.S=this.X=c,this.O=c&(b<<8^c));return a&255} function ne(a,b){a=-b;Cd(this,a,a&b&32768);return a&65535}function oe(a,b){a=-b;Cd(this,a<<8,(a&b&128)<<8);return a&255}function pe(a,b){a=b<<1|this.N>>16&1;Ed(this,a);return a&65535}function qe(a,b){a=b<<1|this.N>>16&1;Ed(this,a<<8);return a&255}function re(a,b){a=(this.N&65536|b)>>1|b<<16;Ed(this,a);return a&65535}function se(a,b){a=((this.N&65536)>>8|b)>>1|b<<8;Ed(this,a<<8);return a&255}function te(a,b){var c=b-a;Fd(this,c,a,b);return c&65535} function ue(a,b){var c=b-a;Fd(this,c<<8,a<<8,b<<8);return c&255}function ve(a,b){this.F&128||(this.S=this.X=b&65280,this.O=this.N=0);return(b<<8|b>>8)&65535}function we(a,b){a^=b;P(this,a);return a&65535}function xe(a){R(this,a,Qd(this,a),Yd);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} function ye(a){var b=Td(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.N=this.O=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.O=32768)}this.u[a]=c&65535;this.S=this.X=c;this.b-=(this.g?6:7)+b} -function ze(a){var b=Td(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.N=this.O=0;b&=63;if(b&32){b=64-b;32>b-1;this.N=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.u[a|1]=d&65535;this.S=d>>16;this.X=d>>16|d;this.b-=(this.g?6:7)+b}function Ae(a){S(this,a,!xd(this))}function Be(a){S(this,a,xd(this))} +function ze(a){var b=Td(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.N=this.O=0;b&=63;if(b&32){b=64-b;32>b-1;this.N=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.u[a|1]=d&65535;this.S=d>>16;this.X=d>>16|d;this.b-=(this.g?6:7)+b}function Ae(a){S(this,a,!yd(this))}function Be(a){S(this,a,yd(this))} function Ce(a){R(this,a,Qd(this,a),de);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function De(a){Q(this,a,Pd(this,a),ee);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ee(a){R(this,a,Qd(this,a),fe);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Fe(a){Q(this,a,Pd(this,a),ge);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} -function Ge(a){P(this,Qd(this,a)&Td(this,a));this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function He(a){P(this,(Pd(this,a)&Sd(this,a))<<8);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ie(a){S(this,a,zd(this))}function Je(a){S(this,a,!this.Da()==!yd(this))}function Ke(a){S(this,a,!zd(this)&&!this.Da()==!yd(this))}function Le(a){S(this,a,!xd(this)&&!zd(this))}function Me(a){S(this,a,zd(this)||!this.Da()!=!yd(this))} -function Ne(a){S(this,a,xd(this)||zd(this))}function Oe(a){S(this,a,!this.Da()!=!yd(this))}function Pe(a){S(this,a,this.Da())}function Qe(a){S(this,a,!zd(this))}function Re(a){S(this,a,!this.Da())}function Se(){this.ea(12,1);this.b-=5}function Te(a){S(this,a,!0)}function Ue(a){S(this,a,!yd(this))}function Ve(a){S(this,a,yd(this))}function T(a){a&1&&(this.N=0);a&2&&(this.O=0);a&4&&(this.X=1);a&8&&(this.S=0);this.b-=5} +function Ge(a){P(this,Qd(this,a)&Td(this,a));this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function He(a){P(this,(Pd(this,a)&Sd(this,a))<<8);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ie(a){S(this,a,Ad(this))}function Je(a){S(this,a,!this.Da()==!zd(this))}function Ke(a){S(this,a,!Ad(this)&&!this.Da()==!zd(this))}function Le(a){S(this,a,!yd(this)&&!Ad(this))}function Me(a){S(this,a,Ad(this)||!this.Da()!=!zd(this))} +function Ne(a){S(this,a,yd(this)||Ad(this))}function Oe(a){S(this,a,!this.Da()!=!zd(this))}function Pe(a){S(this,a,this.Da())}function Qe(a){S(this,a,!Ad(this))}function Re(a){S(this,a,!this.Da())}function Se(){this.ea(12,1);this.b-=5}function Te(a){S(this,a,!0)}function Ue(a){S(this,a,!zd(this))}function Ve(a){S(this,a,zd(this))}function T(a){a&1&&(this.N=0);a&2&&(this.O=0);a&4&&(this.X=1);a&8&&(this.S=0);this.b-=5} function We(a){var b=Qd(this,a);a=Td(this,a);Fd(this,b-a,a,b);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Xe(a){var b=Pd(this,a)<<8;a=Sd(this,a)<<8;Fd(this,b-a,a,b);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)} function Ye(a){var b=Td(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.N=this.O=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.X=d>>16|d,this.S=d>>16):(this.O=32768,this.X=d>>15|d,this.S=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.S=0,this.O=32768,this.N=65536,this.b-=7}function Ze(){this.ea(24,2);this.b-=25}function $e(){this.L&49152?(this.Z|=128,this.ea(4,3)):this.da();this.b-=7} -function af(){this.ea(16,4);this.b-=25}var bf=[0,7,7,10,7,11,9,13];function cf(a){var b=this.b;Bd(this,Rd(this,a));this.b=b-bf[this.g]}var df=[0,14,14,17,14,18,16,20];function ef(a){var b=this.b,c=Rd(this,a);a=a>>6&7;Gd(this,this.u[a]);this.u[a]=this.u[7];Bd(this,c);this.b=b-df[this.g]}var ff=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function gf(a){var b=Qd(this,a),c=this.b;P(this,Vd(this,a,b));this.b=c-ff[(this.H?8:0)+this.g]+(7!=this.f||this.g?0:2)} -function hf(a){var b=Pd(this,a);P(this,Ud(this,a,b,1)<<8);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var jf=[7,13,13,17,14,18,17,21];function kf(a){var b=Td(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.F&128||(this.S=b>>16,this.X=this.S|b,this.O=0,this.N=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)Bd(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function qf(a){R(this,a,Qd(this,a),te);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} -function rf(a){R(this,a,0,ve);this.b-=this.g?9:3+(7==this.f?2:0)}function sf(){this.ea(28,5);this.b-=5}function tf(){this.F&4||this.B.$();this.F|=4;this.u[7]=this.u[7]+-2&65535;this.b-=3}function uf(a){R(this,a,Qd(this,a),we);this.b-=this.g?9:3+(7==this.f?2:0)}function V(a){var b;if(b=this.i)b=this.i,E(b,"undefined opcode "+K(b,a),!0,!0),b=Zb(b);b||this.ea(8,6)}function ad(a){vf[a>>12].call(this,a)}function wf(a){xf[a>>6&3].call(this,a)}function yf(a){zf[a>>6&3].call(this,a)} -function Af(a){Bf[a>>6&3].call(this,a)}function Cf(a){Df[a&15].call(this,a)}function Xf(a){Yf[a&15].call(this,a)}function Zf(a){$f[a>>6&3].call(this,a)}function ag(a){bg[a>>6&3].call(this,a)}function cg(a){dg[a>>6&3].call(this,a)} +function af(){this.ea(16,4);this.b-=25}var bf=[0,7,7,10,7,11,9,13];function cf(a){var b=this.b;O(this,Rd(this,a));this.b=b-bf[this.g]}var df=[0,14,14,17,14,18,16,20];function ef(a){var b=this.b,c=Rd(this,a);a=a>>6&7;Gd(this,this.u[a]);this.u[a]=this.u[7];O(this,c);this.b=b-df[this.g]}var ff=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function gf(a){var b=Qd(this,a),c=this.b;P(this,Vd(this,a,b));this.b=c-ff[(this.H?8:0)+this.g]+(7!=this.f||this.g?0:2)} +function hf(a){var b=Pd(this,a);P(this,Ud(this,a,b,1)<<8);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var jf=[7,13,13,17,14,18,17,21];function kf(a){var b=Td(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.F&128||(this.S=b>>16,this.X=this.S|b,this.O=0,this.N=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)O(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function qf(a){R(this,a,Qd(this,a),te);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} +function rf(a){R(this,a,0,ve);this.b-=this.g?9:3+(7==this.f?2:0)}function sf(){this.ea(28,5);this.b-=5}function tf(){this.F&4||this.B.$();this.F|=4;this.u[7]=this.u[7]+-2&65535;this.b-=3}function uf(a){R(this,a,Qd(this,a),we);this.b-=this.g?9:3+(7==this.f?2:0)}function V(a){var b;if(b=this.i)b=this.i,E(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function ud(a){vf[a>>12].call(this,a)}function wf(a){xf[a>>6&3].call(this,a)}function yf(a){zf[a>>6&3].call(this,a)} +function Af(a){Bf[a>>6&3].call(this,a)}function Cf(a){Df[a&15].call(this,a)}function Ef(a){Ff[a&15].call(this,a)}function Gf(a){$f[a>>6&3].call(this,a)}function ag(a){bg[a>>6&3].call(this,a)}function cg(a){dg[a>>6&3].call(this,a)} var vf=[function(a){eg[a>>8&15].call(this,a)},gf,We,Ge,Ce,Ee,xe,V,function(a){fg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,qf,V],eg=[function(a){gg[a>>4&15].call(this,a)},Te,Qe,Ie,Je,Oe,Ke,Me,ef,ef,wf,yf,Af,V,V,V],xf=[function(a){Cd(this,Vd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,he);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,le);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,je);this.b-=this.g?9:3+(7==this.f?2:0)}],zf=[function(a){R(this,a,0, -ne);this.b-=this.g?11:6},function(a){R(this,a,xd(this)?1:0,Yd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,xd(this)?1:0,te);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Td(this,a);Cd(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Bf=[function(a){R(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,pe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,$d);this.b-=this.g?9:3+(7==this.f?2:0)}], -gg=[function(a){hg[a&15].call(this,a)},V,V,V,cf,cf,cf,cf,of,V,Cf,Xf,rf,rf,rf,rf],hg=[$e,tf,nf,Se,af,mf,V,V,V,V,V,V,V,V,V,V],Df=[lf,function(){this.N=0;this.b-=5},function(){this.O=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.S=0;this.b-=5},T,T,T,T,T,T,T],Yf=[lf,function(){this.N=65536;this.b-=5},function(){this.O=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.S=32768;this.b-=5},W,W,W,W,W,W,W],fg=[Re,Pe,Le,Ne,Ue,Ve,Ae,Be,Ze,sf,Zf,ag,cg,V,V,V],$f=[function(a){Cd(this, -Ud(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,ke);this.b-=this.g?9:3+(7==this.f?2:0)}],bg=[function(a){Q(this,a,0,oe);this.b-=this.g?11:6},function(a){Q(this,a,xd(this)?1:0,Zd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,xd(this)?1:0,ue);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Sd(this,a);Cd(this,a<<8);this.b-=this.g?4:3+(7== -this.f?2:0)}],dg=[function(a){Q(this,a,0,se);this.b-=this.g?9+(this.Ta&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,qe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ce);this.b-=this.g?9+(this.Ta&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,ae);this.b-=this.g?9:3+(7==this.f?2:0)}];function ud(a){ig[a>>12].call(this,a)} -var ig=[function(a){jg[a>>8&15].call(this,a)},gf,We,Ge,Ce,Ee,xe,function(a){kg[a>>8&15].call(this,a)},function(a){lg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,qf,V],jg=[function(a){mg[a>>4&15].call(this,a)},Te,Qe,Ie,Je,Oe,Ke,Me,ef,ef,wf,yf,Af,function(a){ng[a>>6&3].call(this,a)},V,V],ng=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.ra(a|this.M);Bd(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Nd(this,a,0);Gd(this,a);P(this,a);this.b-=11},function(a){var b=Id(this),c= -this.b;Od(this,a,0,b);P(this,b);this.b=c-jf[this.g]},function(a){P(this,Vd(this,a,this.Da?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],mg=[function(a){og[a&15].call(this,a)},V,V,V,cf,cf,cf,cf,of,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.F|=1),this.b-=5):V.call(this,a)},Cf,Xf,rf,rf,rf,rf],og=[$e,tf,nf,Se,af,mf,function(){Hd(this);this.b-=13},V,V,V,V,V,V,V,V,V],kg=[kf,kf,Ye,Ye,ye,ye,ze,ze,uf,uf,V,V,V,V,pf,pf],lg=[Re,Pe,Le,Ne,Ue,Ve,Ae,Be,Ze,sf,Zf,ag,cg,function(a){pg[a>>6&3].call(this, -a)},V,V],pg=[V,function(a){a=Nd(this,a,65536);Gd(this,a);P(this,a);this.b-=11},function(a){var b=Id(this),c=this.b;Od(this,a,65536,b);P(this,b);this.b=c-jf[this.g]},V];function qg(a){r.call(this,"ROM",a,qg);this.f=null;this.D=a.addr;this.g=a.size;this.G=a.writable;this.B=a.alias;this.C=a.file;this.H=pa(this.C);if(this.C){a=this.C;var b=qa(this.H);"json"!=b&&"hex"!=b&&(a=sa()+"/api/v1/dump?file="+this.C+"&format=bytes&decimal=true");var c=this;Fa(a,null,!0,function(a,b,f){rg(c,a,b,f)})}}u(qg); -qg.prototype.Ba=function(a,b,c,d){this.w=b;this.b=c;this.i=d;sg(this)};qg.prototype.ya=function(){if(this.Ca){if(this.i){var a=this.i,b=this.id,c=this.D,d=this.g,e=this.Ca,f=[],g;for(g in e){var l=e[g];"number"==typeof l&&(e[g]=l={o:l});var m=l.o,p=l.a;if(void 0!==m){var q=f,m=[m>>>0,g],v=za(q,m,a.Sb);0>v&&q.splice(-(v+1),0,m)}p&&(l.a=p.replace(/''/g,'"'))}a.G.push({Rd:b,A:c,sc:d,Ca:e,Rb:f})}delete this.Ca}return!0};qg.prototype.xa=function(){return!0}; -function rg(a,b,c,d){if(d)a.na("Unable to load system ROM (error "+d+": "+b+")");else{jb(a.Gb,b,c);var e;if("["==c.charAt(0)||"{"==c.charAt(0))try{var f,g,l=eval("("+c+")");if(f=l.bytes)a.f=f;else if(f=l.words)for(a.f=Array(2*f.length),g=e=0;e>8&255;else if(f=l.data)for(a.f=Array(4*f.length),g=e=0;e>8&255,a.f[g++]=f[e]>>16&255,a.f[g++]=f[e]>>24&255;else a.f=l;a.Ca=l.symbols;if(!a.f.length){n("Empty ROM: "+ -b);return}if(1==a.f.length){n(a.f[0]);return}}catch(m){a.na("ROM data error: "+m.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.f=Array(b.length),e=0;e=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=xa(b[0]);if(c!=this.Ua)return;b=xa(b[1]);if(this.I=lb(b)){var d=this.I.exports;if(d){var e=d.connect;e&&e.call(this.I);if(this.K=d.receiveData){this.status(this.Gb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.ya=function(a,b){if(!b)if(this.Zb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -h.xa=function(a){return a?this.save():!0};h.reset=function(){xg(this)};h.save=function(){var a=new O(this);a.set(0,[]);return a.data()};h.restore=function(){return xg(this)};function xg(a){a.R=0;a.f=0;a.g=128;a.D=[];return!0}h.Lb=function(a){if("number"==typeof a)this.D.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.T||8,c=a-this.H%a,this.T&&(b=va("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.C.value+=b;this.C.scrollTop=this.C.scrollHeight;this.H+=c}else if(null!=this.G){if(10==a||1024<=this.G.length)this.j(this.G), -this.G="";10!=a&&(this.G+=String.fromCharCode(a))}this.g&=-129;qc(this.b,this.V,1)}};var yg={},wg=(yg[65392]=[null,null,Y.prototype.Pc,Y.prototype.Bd,"RCSR"],yg[65394]=[null,null,Y.prototype.Oc,Y.prototype.Ad,"RBUF"],yg[65396]=[null,null,Y.prototype.bd,Y.prototype.Od,"XCSR"],yg[65398]=[null,null,Y.prototype.ad,Y.prototype.Nd,"XBUF"],yg);Ta(function(){for(var a=B(document,"pdp11","serial"),b=0;b=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Bg.prototype.Xb=function(){return-1};Bg.prototype.Yb=function(){}; -function Dg(a,b,c,d){if(c)if(b){0>a.C&&a.g.length&&(a.C=0);if(0>a.C||b!=a.g[a.C])a.g.splice(0,0,b),a.C=0;a.C--}else a.U?b="end":b=a.g[a.C+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(xa(b.substring(c,f))),c=f+1}}return a} +ne);this.b-=this.g?11:6},function(a){R(this,a,yd(this)?1:0,Yd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,yd(this)?1:0,te);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Td(this,a);Cd(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Bf=[function(a){R(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,pe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,$d);this.b-=this.g?9:3+(7==this.f?2:0)}], +gg=[function(a){hg[a&15].call(this,a)},V,V,V,cf,cf,cf,cf,of,V,Cf,Ef,rf,rf,rf,rf],hg=[$e,tf,nf,Se,af,mf,V,V,V,V,V,V,V,V,V,V],Df=[lf,function(){this.N=0;this.b-=5},function(){this.O=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.S=0;this.b-=5},T,T,T,T,T,T,T],Ff=[lf,function(){this.N=65536;this.b-=5},function(){this.O=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.S=32768;this.b-=5},W,W,W,W,W,W,W],fg=[Re,Pe,Le,Ne,Ue,Ve,Ae,Be,Ze,sf,Gf,ag,cg,V,V,V],$f=[function(a){Cd(this, +Ud(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,ke);this.b-=this.g?9:3+(7==this.f?2:0)}],bg=[function(a){Q(this,a,0,oe);this.b-=this.g?11:6},function(a){Q(this,a,yd(this)?1:0,Zd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,yd(this)?1:0,ue);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Sd(this,a);Cd(this,a<<8);this.b-=this.g?4:3+(7== +this.f?2:0)}],dg=[function(a){Q(this,a,0,se);this.b-=this.g?9+(this.Wa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,qe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ce);this.b-=this.g?9+(this.Wa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,ae);this.b-=this.g?9:3+(7==this.f?2:0)}];function vd(a){ig[a>>12].call(this,a)} +var ig=[function(a){jg[a>>8&15].call(this,a)},gf,We,Ge,Ce,Ee,xe,function(a){kg[a>>8&15].call(this,a)},function(a){lg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,qf,V],jg=[function(a){mg[a>>4&15].call(this,a)},Te,Qe,Ie,Je,Oe,Ke,Me,ef,ef,wf,yf,Af,function(a){ng[a>>6&3].call(this,a)},V,V],ng=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.ta(a|this.M);O(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Nd(this,a,0);Gd(this,a);P(this,a);this.b-=11},function(a){var b=Id(this),c= +this.b;Od(this,a,0,b);P(this,b);this.b=c-jf[this.g]},function(a){P(this,Vd(this,a,this.Da?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],mg=[function(a){og[a&15].call(this,a)},V,V,V,cf,cf,cf,cf,of,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.F|=1),this.b-=5):V.call(this,a)},Cf,Ef,rf,rf,rf,rf],og=[$e,tf,nf,Se,af,mf,function(){Hd(this);this.b-=13},V,V,V,V,V,V,V,V,V],kg=[kf,kf,Ye,Ye,ye,ye,ze,ze,uf,uf,V,V,V,V,pf,pf],lg=[Re,Pe,Le,Ne,Ue,Ve,Ae,Be,Ze,sf,Gf,ag,cg,function(a){pg[a>>6&3].call(this, +a)},V,V],pg=[V,function(a){a=Nd(this,a,65536);Gd(this,a);P(this,a);this.b-=11},function(a){var b=Id(this),c=this.b;Od(this,a,65536,b);P(this,b);this.b=c-jf[this.g]},V]; +function qg(a){r.call(this,"ROM",a,qg);this.ja=this.f=null;this.D=a.addr;this.g=a.size;this.C=a.alias;this.B=a.file;this.G=oa(this.B);if(this.B){a=this.B;var b=pa(this.G);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.B+"&format=bytes&decimal=true");var c=this;Ba(a,null,!0,function(a,b,f){f?c.pa("Unable to load ROM resource (error "+f+": "+a+")"):(jb(c.Va,a,b),(a=Fa(a,b))?(c.f=a.ga,c.ja=a.ja):c.B=null,rg(c))})}}u(qg);qg.prototype.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;rg(this)}; +qg.prototype.Aa=function(){if(this.ja){if(this.i){var a=this.i,b=this.id,c=this.D,d=this.g,e=this.ja,f=[],g;for(g in e){var l=e[g];"number"==typeof l&&(e[g]=l={o:l});var m=l.o,p=l.a;if(void 0!==m){var q=f,m=[m>>>0,g],v=ya(q,m,a.Vb);0>v&&q.splice(-(v+1),0,m)}p&&(l.a=p.replace(/''/g,'"'))}a.G.push({Ud:b,A:c,vc:d,ja:e,Ub:f})}delete this.ja}return!0};qg.prototype.za=function(){return!0}; +function rg(a){if(!pb(a)){if(a.B){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if(a.f.length!=a.g)rb(a,"ROM size ("+k(a.f.length,8,!0)+") does not match specified size ("+k(a.g,8,!0)+")");else{var b;b=a.D;if(Yb(a.w,b,a.g,Cc)){var c;for(c=0;c=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=va(b[0]);if(c!=this.Ua)return;b=va(b[1]);if(this.I=lb(b)){var d=this.I.exports;if(d){var e=d.connect;e&&e.call(this.I);if(this.K=d.receiveData){this.status(this.Va+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.Aa=function(a,b){if(!b)if(this.cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; +h.za=function(a){return a?this.save():!0};h.reset=function(){xg(this)};h.save=function(){var a=new N(this);a.set(0,[]);return a.data()};h.restore=function(){return xg(this)};function xg(a){a.R=0;a.f=0;a.g=128;a.D=[];return!0}h.Ob=function(a){if("number"==typeof a)this.D.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.T||8,c=a-this.H%a,this.T&&(b=ua("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.C.value+=b;this.C.scrollTop=this.C.scrollHeight;this.H+=c}else if(null!=this.G){if(10==a||1024<=this.G.length)this.j(this.G), +this.G="";10!=a&&(this.G+=String.fromCharCode(a))}this.g&=-129;rc(this.b,this.V,1)}};var yg={},wg=(yg[65392]=[null,null,X.prototype.Sc,X.prototype.Ed,"RCSR"],yg[65394]=[null,null,X.prototype.Rc,X.prototype.Dd,"RBUF"],yg[65396]=[null,null,X.prototype.ed,X.prototype.Rd,"XCSR"],yg[65398]=[null,null,X.prototype.dd,X.prototype.Qd,"XBUF"],yg);Ta(function(){for(var a=B(document,"pdp11","serial"),b=0;b=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Bg.prototype.$b=function(){return-1};Bg.prototype.ac=function(){}; +function Dg(a,b,c,d){if(c)if(b){0>a.C&&a.g.length&&(a.C=0);if(0>a.C||b!=a.g[a.C])a.g.splice(0,0,b),a.C=0;a.C--}else a.U?b="end":b=a.g[a.C+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} function Eg(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} -function Fg(a,b,c){var d;if(b){b=Gg(a,b);for(var e=0,f=!1,g=b,l=[],m=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=q+g;d>>=8}d=k(c,0,!0)+" "+c+". "+oa(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Jg(a,b){if(b)return Ig(a,b,a.aa[b]);var c=0;for(b in a.aa)Ig(a,b,a.aa[b]),c++;return 0=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=q+g;d>>=8}d=k(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Jg(a,b){if(b)return Ig(a,b,a.aa[b]);var c=0;for(b in a.aa)Ig(a,b,a.aa[b]),c++;return 0this.b.Ya?Sg:[];Tg(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(Ug(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ga;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=ac[c],q&&d.j(k(q.id,8)+" %"+k(e<d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}h.Yb=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.ta[a-16]:20==a&&(b=Kb(this.b)));return b}; -h.message=function(a,b){b&&(a+=" @"+K(this,Z(this.b.qb).A));this.ia&1073741824?this.ua.push(a):this.pa&&a==this.pa||(this.pa=a,this.ia&-2147483648&&(this.da(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Xc(a),a.la=0,a.B.$()))}; -function Mg(a){var b;if(Wd(a)){if(!a.I||!a.I.length){a.I=Array(1E3);for(b=0;b>>d.ga],!1)}a.M=["br"];if(a.D)for(b=1;b>>d.ga],!0);a.D=["bw"];a.Ta=0} -h.Pa=function(a,b,c){var d=!0;c||dh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+K(this,b.A)),d=!1;else{var f=this.w;f.W[e>>>f.ga].Pa(e&f.w,a==this.D)}}d&&(a.push(b),c?b.Aa=!0:(eh(this,a,a.length-1,"set"),Mg(this)));return d};function dh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ga],b==a.D));l.Aa||Mg(a);break}}return f} -function fh(a,b){for(var c=1;c>23)&65535,y=K(x,w);else if(8192==D)w=w.A-((f&63)<<1)&65535,y=K(x,w);else if(12288==D)y=K(x,f&7,1);else if(24576==D)y=K(x,f&63,1);else if(D=f&C,C&4032&&(D>>=6,C>>=6),C&63)switch(C=D&7,D&56){case 0:y= -Zg(C);break;case 8:y="@"+Zg(C);break;case 16:7>C?y="("+Zg(C)+")+":(D=x.ka(w,2),y="#"+K(x,D,0,!0));break;case 24:7>C?y="@("+Zg(C)+")+":(D=x.ka(w,2),y="@#"+K(x,D,0,!0));break;case 32:y="-("+Zg(C)+")";break;case 40:y="@-("+Zg(C)+")";break;case 48:D=x.ka(w,2);y=K(x,D,0,!0)+"("+Zg(C)+")";7==C&&(y=[y,K(x,D+w.A&65535)]);break;case 56:D=x.ka(w,2),y="@"+K(x,D)+"("+Zg(C)+")",7==C&&(y=[y,K(x,D+w.A&65535)])}x=y;if(!x||!x.length){l="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=Zg(b),c+="="+K(a,d.u[b])):13>b?c="A"+(b-8)+"="+K(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+K(a,d.ta[b-16]):20==b&&(c="PS="+K(a,Kb(d)));c&&(c+=" ");return c}function kh(a){var b,c="";for(b=0;6>b;b++)c+=jh(a,b);c=c+"\n"+(jh(a,6)+jh(a,7)+jh(a,20));return c+=ih(a,"T")+ih(a,"N")+ih(a,"Z")+ih(a,"V")+ih(a,"C")}h.Sb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,l=f.sc;if(e>=g&&ethis.b.$a?Sg:[];Tg(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(Ug(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ha;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(k(q.id,8)+" %"+k(e<d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}h.ac=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; +h.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.tb).A));this.ka&1073741824?this.wa.push(a):this.ra&&a==this.ra||(this.ra=a,this.ka&-2147483648&&(this.da(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.na=0,a.B.$()))}; +function Mg(a){var b;if(Wd(a)){if(!a.I||!a.I.length){a.I=Array(1E3);for(b=0;b>>d.ha],!1)}a.M=["br"];if(a.D)for(b=1;b>>d.ha],!0);a.D=["bw"];a.Wa=0} +h.Qa=function(a,b,c){var d=!0;c||dh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.A)),d=!1;else{var f=this.w;f.W[e>>>f.ha].Qa(e&f.w,a==this.D)}}d&&(a.push(b),c?b.Ba=!0:(eh(this,a,a.length-1,"set"),Mg(this)));return d};function dh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ha],b==a.D));l.Ba||Mg(a);break}}return f} +function fh(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==D)w=w.A-((f&63)<<1)&65535,y=J(x,w);else if(12288==D)y=J(x,f&7,1);else if(24576==D)y=J(x,f&63,1);else if(D=f&C,C&4032&&(D>>=6,C>>=6),C&63)switch(C=D&7,D&56){case 0:y= +Zg(C);break;case 8:y="@"+Zg(C);break;case 16:7>C?y="("+Zg(C)+")+":(D=x.ma(w,2),y="#"+J(x,D,0,!0));break;case 24:7>C?y="@("+Zg(C)+")+":(D=x.ma(w,2),y="@#"+J(x,D,0,!0));break;case 32:y="-("+Zg(C)+")";break;case 40:y="@-("+Zg(C)+")";break;case 48:D=x.ma(w,2);y=J(x,D,0,!0)+"("+Zg(C)+")";7==C&&(y=[y,J(x,D+w.A&65535)]);break;case 56:D=x.ma(w,2),y="@"+J(x,D)+"("+Zg(C)+")",7==C&&(y=[y,J(x,D+w.A&65535)])}x=y;if(!x||!x.length){l="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=Zg(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function kh(a){var b,c="";for(b=0;6>b;b++)c+=jh(a,b);c=c+"\n"+(jh(a,6)+jh(a,7)+jh(a,20));return c+=ih(a,"T")+ih(a,"N")+ih(a,"Z")+ih(a,"V")+ih(a,"C")}h.Vb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,l=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.B.$();a.j("updated registers:")}a.j(kh(a));c&&(a.K=Z(d.u[7]),bh(a,K(a,a.K.A)))}}function ph(a,b){b=xa(b);var c=b.match(/^(['"])(.*?)\1$/);c?1b)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.B.$();a.j("updated registers:")}a.j(kh(a));c&&(a.K=Z(d.u[7]),bh(a,J(a,a.K.A)))}}function ph(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1l[0].indexOf("+"))){var p=l[0]+":";l[2]&&(p+=" "+l[2]);a.j(p)}l[3]&&(g=l[3],f=null);f=hh(a,b,g,f);a.j(f);a.K=b;e-=b.A-m;c++}}} -function gh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.U&&(a.j("ended assemble at "+K(a,a.T.A)),a.K=a.T,a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.pa=null;if(pb(a)&&0q||"z"ia.length&&(a.j("note: only "+ia.length+" available"),X=ia.length);ca-=X;0>ca&&(null==ia[ia.length-1].A?(X=ca+X,ca=0):ca+=ia.length);var ed=[];"call"==Jf&&(tb=1E5,ed=["CALL"]);for(void 0!==If&&a.j(X+" instructions earlier:");0=ia.length&&(ca=0);a.Va=X;Lf++;tb--}}Lf||(a.j("no "+Kf+"history available"),a.Va=void 0)}else{var vb=Ug(a,ha);if(vb){var cc=0;Da&&("l"==Da.charAt(0)&&(Da=Da.substr(1)||Jh),cc=Hg(a,Da)>>>0,65536>4||1;Lh--&&0fc?String.fromCharCode(fc):".";dc--}wb&&(wb+="\n");wb+=ha+" "+fd+(0==yb?" "+Of:"")}wb&&a.j(wb);a.Oa=vb}}}}break;case "e":if("else"==g[0])break;var $a,hd,id,jd,kd=g[0],ld=g[1];"eb"==kd?($a=1,hd=255,id=a.lb,jd=a.Db):"e"==kd||"ew"==kd?($a=2,hd=65535,id=a.ka,jd=a.Sa):ld=null;if(null==ld)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var gc=Ug(a,ld);if(gc)for(var hc=2;hc< -g.length;hc++){var zb=Fg(a,g[hc]);if(void 0===zb){a.j("unrecognized value: "+g[hc]);break}zb&~hd&&a.j("warning: "+k(zb)+" exceeds "+$a+"-byte value");var Mh=id.call(a,gc);a.j("changing "+K(a,gc.A)+" from "+K(a,Mh,$a)+" to "+K(a,zb,$a));jd.call(a,gc,zb,$a)}}break;case "g":a:{var Pf=g[1],Nh=b;if(void 0!==Pf){var md=Ug(a,Pf,!0);if(!md)break a;Yg(a,md,Nh);a.Pa(a.f,md,!0)}a.eb(!0,c)}break;case "h":a.v.ca?(c||a.j("halting"),a.da()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var nd; -var Ab=b.substr(2),Ab=xa(Ab);Fg(a,Ab)?(c||a.j("true: "+Ab),nd=!0):(c||a.j("false: "+Ab),nd=!1);nd||(d=!1);break}f=!0;break;case "k":var Oh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var od=0,pd=Z(),Bb=Z(a.b.u[6]);for(a.j("stack trace for "+K(a,Bb.A));10>od;){for(var Ea=null,Ph=256;65536>Bb.A>>>0;){pd.A=a.ka(Bb,2);if(null==Bb.A||!Ph--)break;if(!(pd.A&1)){for(var Qh=a,ic=pd,Qf=null,Cb=ic.A,Rf=Cb,qd=1;6>=qd&&Cb;qd++){if(2< -qd){ic.A=Cb;var jc=hh(Qh,ic);if(0<=jc.indexOf("JSR")){var Sf=jc.indexOf(" ");if(Cb+(jc.indexOf(" ",Sf+1)-Sf-1)/2==Rf){Qf=jc;break}}}Cb-=2}ic.A=Rf;if(Ea=Qf)break}}if(!Ea||null==Ea)break;var Tf=null;if("ks"==Oh){var Uf=Ea.match(/[0-9A-F]+$/);Uf&&(Tf=oh(a,Uf[0]))}Ea=va(Ea,50)+" ;"+(Tf||"stack="+K(a,Bb.A));a.j(Ea);od++}od||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){oh(a,g[1],!0);break}f=!0;break;case "m":a:{var ja,ka=null,F=g[1];"?"==F&&(F=void 0);if(void 0!==F){var wa=0;if("all"== -F)wa=1878917119,F=null;else if("on"==F)ka=!0,F=null;else if("off"==F)ka=!1,F=null;else{"keys"==F&&(F="key");"kbd"==F&&(F="keyboard");for(ja in I)if(F==ja){wa=I[ja];ka=!!(a.ia&wa);break}if(!wa){a.j("unknown message category: "+F);break a}}if(wa)if("on"==g[2])a.ia|=wa,ka=!0;else if("off"==g[2]&&(a.ia&=~wa,ka=!1,1073741824==wa)){for(var rd=0;rd\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;buh){if(wh(d,this.I)){this.D=new O(this,"1.30.1","failsafe");wh(this.D)&&(Bh(this,d),a=2,Ch(this.D));this.D.set("timestamp",Ba());Dh(this.D);var e=this.f&&!this.G;if(1==a||Ga("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ah(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?wh(d,g):("error"== -f&&"no machine state"!=g?(this.na("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Ch(d),wh(d)?(c=Ah(d),e=!0):c=!1))}e&&zh(this,c?d:null)}else 2==a&&d.clear()}else zh(this);delete this.I;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ha=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.b&&(Eh(this,this.b,b,c,a),this.b.ib());this.T&&(Bh(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.B=0}; -function Bh(a,b){if(Ga("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Fa("http://www.pcjs.org/api/v1/report",d,!0)}} -function rh(a,b,c){var d,e="none";if(a.B)return null;a.B--;var f=new O(a,"1.30.1"),g=new O(a,"1.30.1","validate"),l=Ba();g.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.xa&&(c&&a.b.da(),d=a.b.xa(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ha=!1,!1===d&&(e=null)));for(var l=kb(a.id),m=0;m> "+b):(a.U&&(a.j("ended assemble at "+J(a,a.T.A)),a.K=a.T,a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ra=null;if(pb(a)&&0q||"z"ia.length&&(a.j("note: only "+ia.length+" available"),Y=ia.length);ca-=Y;0>ca&&(null==ia[ia.length-1].A?(Y=ca+Y,ca=0):ca+=ia.length);var ed=[];"call"==Mf&&(tb=1E5,ed=["CALL"]);for(void 0!==Lf&&a.j(Y+" instructions earlier:");0=ia.length&&(ca=0);a.Xa=Y;Of++;tb--}}Of||(a.j("no "+Nf+"history available"),a.Xa=void 0)}else{var vb=Ug(a,ha);if(vb){var dc=0;Da&&("l"==Da.charAt(0)&&(Da=Da.substr(1)||Jh),dc=Hg(a,Da)>>>0,65536>4||1;Lh--&&0gc?String.fromCharCode(gc):".";ec--}wb&&(wb+="\n");wb+=ha+" "+fd+(0==yb?" "+Rf:"")}wb&&a.j(wb);a.Pa=vb}}}}break;case "e":if("else"==g[0])break;var bb,hd,id,jd,kd=g[0],ld=g[1];"eb"==kd?(bb=1,hd=255,id=a.ob,jd=a.Fb):"e"==kd||"ew"==kd?(bb=2,hd=65535,id=a.ma,jd=a.Ta):ld=null;if(null==ld)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var hc=Ug(a,ld);if(hc)for(var ic=2;ic< +g.length;ic++){var zb=Fg(a,g[ic]);if(void 0===zb){a.j("unrecognized value: "+g[ic]);break}zb&~hd&&a.j("warning: "+k(zb)+" exceeds "+bb+"-byte value");var Mh=id.call(a,hc);a.j("changing "+J(a,hc.A)+" from "+J(a,Mh,bb)+" to "+J(a,zb,bb));jd.call(a,hc,zb,bb)}}break;case "g":a:{var Sf=g[1],Nh=b;if(void 0!==Sf){var md=Ug(a,Sf,!0);if(!md)break a;Yg(a,md,Nh);a.Qa(a.f,md,!0)}a.hb(!0,c)}break;case "h":a.v.ca?(c||a.j("halting"),a.da()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var nd; +var Ab=b.substr(2),Ab=va(Ab);Fg(a,Ab)?(c||a.j("true: "+Ab),nd=!0):(c||a.j("false: "+Ab),nd=!1);nd||(d=!1);break}f=!0;break;case "k":var Oh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var od=0,pd=Z(),Bb=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Bb.A));10>od;){for(var Ea=null,Ph=256;65536>Bb.A>>>0;){pd.A=a.ma(Bb,2);if(null==Bb.A||!Ph--)break;if(!(pd.A&1)){for(var Qh=a,jc=pd,Tf=null,Cb=jc.A,Uf=Cb,qd=1;6>=qd&&Cb;qd++){if(2< +qd){jc.A=Cb;var kc=hh(Qh,jc);if(0<=kc.indexOf("JSR")){var Vf=kc.indexOf(" ");if(Cb+(kc.indexOf(" ",Vf+1)-Vf-1)/2==Uf){Tf=kc;break}}}Cb-=2}jc.A=Uf;if(Ea=Tf)break}}if(!Ea||null==Ea)break;var Wf=null;if("ks"==Oh){var Xf=Ea.match(/[0-9A-F]+$/);Xf&&(Wf=oh(a,Xf[0]))}Ea=ua(Ea,50)+" ;"+(Wf||"stack="+J(a,Bb.A));a.j(Ea);od++}od||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){oh(a,g[1],!0);break}f=!0;break;case "m":a:{var ja,ka=null,F=g[1];"?"==F&&(F=void 0);if(void 0!==F){var xa=0;if("all"== +F)xa=1878917119,F=null;else if("on"==F)ka=!0,F=null;else if("off"==F)ka=!1,F=null;else{"keys"==F&&(F="key");"kbd"==F&&(F="keyboard");for(ja in Gb)if(F==ja){xa=Gb[ja];ka=!!(a.ka&xa);break}if(!xa){a.j("unknown message category: "+F);break a}}if(xa)if("on"==g[2])a.ka|=xa,ka=!0;else if("off"==g[2]&&(a.ka&=~xa,ka=!1,1073741824==xa)){for(var rd=0;rd\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;buh){if(wh(d,this.I)){this.D=new N(this,"1.30.1","failsafe");wh(this.D)&&(Bh(this,d),a=2,Ch(this.D));this.D.set("timestamp",Aa());Dh(this.D);var e=this.f&&!this.G;if(1==a||Ga("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ah(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?wh(d,g):("error"== +f&&"no machine state"!=g?(this.pa("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Ch(d),wh(d)?(c=Ah(d),e=!0):c=!1))}e&&zh(this,c?d:null)}else 2==a&&d.clear()}else zh(this);delete this.I;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ia=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.b&&(Eh(this,this.b,b,c,a),this.b.lb());this.T&&(Bh(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.B=0}; +function Bh(a,b){if(Ga("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} +function rh(a,b,c){var d,e="none";if(a.B)return null;a.B--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),l=Aa();g.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.da(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ia=!1,!1===d&&(e=null)));for(var l=kb(a.id),m=0;mf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Fa(e,null,!0,function(f,g,l){if(l||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=l[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);l[0]!=m&&(g=g.replace(l[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, +function Wh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,l){if(l||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=l[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);l[0]!=m&&(g=g.replace(l[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, "");a=a.replace(d[0],g);Wh(a,b,c)}})}else c(a,null)} -function Xh(a,b,c,d){function e(a){if(void 0===l){var b=g&&B(g,"machine-warning");l=b&&b[0]||g}l&&(l.innerHTML=ua(a))}function f(a){e("Error: "+a);m&&(--Ih||ab(!0));m=!1}var g,l,m=!0;Ih++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,l){l?Uh(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=l.transformNode(m))?(g.outerHTML=m,--Ih||ab(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(l,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Ih||ab(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Uh(b,a,d,!0,e,p):Vh(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){ab(!1);return Xh(a,b,c,d)};window.enableEvents=ab;window.sendEvent=bb;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map +function Xh(a,b,c,d){function e(a){if(void 0===l){var b=g&&B(g,"machine-warning");l=b&&b[0]||g}l&&(l.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Ih||Va(!0));m=!1}var g,l,m=!0;Ih++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,l){l?Uh(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=l.transformNode(m))?(g.outerHTML=m,--Ih||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(l,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Ih||Va(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Uh(b,a,d,!0,e,p):Vh(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return Xh(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map diff --git a/versions/pdpjs/1.30.1/pdp11.js b/versions/pdpjs/1.30.1/pdp11.js index 7fd52ef1b0..f0fa902d5a 100644 --- a/versions/pdpjs/1.30.1/pdp11.js +++ b/versions/pdpjs/1.30.1/pdp11.js @@ -29,157 +29,158 @@ http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2016 */ for(var g,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,ca=["Math","log2"],da=0;da>=3;return""+c}function h(a,b,c){var d="";b?8=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d} +ha!=ga&&null!=ha&&aa(ba,fa,{configurable:!0,writable:!0,value:ha});function ia(a,b){var c="";b?11>=3;return""+c}function ja(a,b,c){var d="";b?8=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d} function ka(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0":">",'"':""","'":"'"};function pa(a){return a.replace(/[&<>"']/g,function(a){return oa[a]})}function qa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")} var ra={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"},sa=Date.now||function(){return+new Date}; function ta(){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 m(a,b,c,d){var e=0,f=null,k=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),k;var l=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(l.onreadystatechange=function(){4===l.readyState&&(f=l.responseText,200==l.status||!l.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=l.status||-1),d&&d(a,f,e))});if(b&&"object"== -typeof b){var n="",r;for(r in b)b.hasOwnProperty(r)&&(n&&(n+="&"),n+=r+"="+encodeURIComponent(b[r]));n=n.replace(/%20/g,"+");l.open("POST",a,!!c);l.setRequestHeader("Content-type","application/x-www-form-urlencoded");l.send(n)}else l.open("GET",a,!!c),"bytes"==b&&l.overrideMimeType("text/plain; charset=x-user-defined"),l.send();c||(f=l.responseText,200!=l.status&&(e=l.status||-1),d&&d(a,f,e),k=[f,e]);return k}function na(){return"http://"+(window?window.location.host:"www.pcjs.org")} -function p(a){window&&window.alert(a)}function ua(a){var b=!1;window&&(b=window.confirm(a));return b}var va=null;function wa(){if(null==va){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}va=a}return va}function xa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b} -function ya(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function za(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var q={init:[],show:[],exit:[]},Aa=!1,Ba=!1,Ca=!0;function Da(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function u(a){q.init.push(a)} -function Ea(a){if(Ca)try{for(var b=0;bb?this.Ea=this.id:(this.Ua=this.id.substr(0,b),this.Ea=this.id.substr(b+1));this[a]=c;this.h={ready:!1,bd:!1,cd:!1,L:!1,error:!1};this.Oa=null;this.h.error=!1;this.v={};this.G=null;w.push(this)}var Ha=void 0,Ia={}; -if(window){Ha||(Ha=window.location.search.substr(1));for(var Ja,Ka=/\+/g,La=/([^&=]+)=?([^&]*)/g;Ja=La.exec(Ha);)Ia[decodeURIComponent(Ja[1].replace(Ka," "))]=decodeURIComponent(Ja[2].replace(Ka," "))}function Ma(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} -function x(a,b){b||(b=v);a.prototype=Ma(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Na=window.PCjs.Machines||(window.PCjs.Machines={}),w=window.PCjs.Components||(window.PCjs.Components=[])}else Na={},w=[];function Oa(a,b,c){Na[a]&&b&&(Na[a][b]=c)}function y(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>8&255;else if(e=k.data)for(d.K=Array(4*e.length),f=c=0;c>8&255,d.K[f++]=e[c]>>16&255,d.K[f++]=e[c]>>24&255;else d.K=k;d.Y=k.symbols;d.K.length?1==d.K.length&&(m(d.K[0]),d=null):(m("Empty resource: "+ +a),d=null)}catch(l){m("Resource data error: "+l.message),d=null}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),d.K=Array(a.length),c=0;cb?this.Ga=this.id:(this.Ha=this.id.substr(0,b),this.Ga=this.id.substr(b+1));this[a]=c;this.i={ready:!1,fd:!1,gd:!1,M:!1,error:!1};this.Ra=null;this.i.error=!1;this.v={};this.G=null;v.push(this)}var Ia=void 0,Ja={}; +if(window){Ia||(Ia=window.location.search.substr(1));for(var Ka,La=/\+/g,Ma=/([^&=]+)=?([^&]*)/g;Ka=Ma.exec(Ia);)Ja[decodeURIComponent(Ka[1].replace(La," "))]=decodeURIComponent(Ka[2].replace(La," "))}function Na(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} +function w(a,b){b||(b=u);a.prototype=Na(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Oa=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Oa={},v=[];function Pa(a,b,c){Oa[a]&&b&&(Oa[a][b]=c)}function x(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>2;this.g=this.c-1;this.w=this.A/this.c|0;this.ia=[];this.R=0;this.o=[];this.vb=[$a,ab,bb,cb];a=new F(this);db(a,this.G);this.b=Array(this.w);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.ia[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);return 0<=c?c:c=fb(d,b)}function ab(a,b,c){var d=!1,e=this.controller,f=e.ia[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.ia[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d||fb(e,c)} -function bb(a,b){var c=-1,d=this.controller;(a=d.ia[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));return 0<=c?c:c=fb(d,b)}function cb(a,b,c){var d=!1,e=this.controller;if(a=e.ia[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d||fb(e,c)}function gb(a,b){if(b!=a.m){var c;a.m&&(c=(1<>>a.l;0k&&(t=k);if(!e&&n&&n.size){if(n.type==d){if(f+k<=n.za)return n.Qa+=n.za-f,n.za=f,!0;if(f>=n.za+n.Qa){t=n.size-(f-r);t>k&&(t=k);n.Qa=f-n.za+t;f=r+a.c;k-=t;l++;continue}}return lb(1,f,k)}f=new F(a,f,t,a.c,d,e);db(f,a.G,n);a.b[l++]=f;f=r+a.c;k-=t}if(0>=k){c/=1024;var D;e="";D?10>>=a.l;0>>=a.l;0>>a.l].Ya(b&a.g,b)}function ob(a,b){return a.b[(b&a.i)>>>a.l].S(b&a.g,b)}Za.prototype.bb=function(a,b){this.R++;this.b[(a&this.i)>>>this.l].sb(a&this.g,b&255,a);this.R--}; -function pb(a,b,c){a.b[(b&a.i)>>>a.l].Ra(b&a.g,c&65535,b)}function qb(a){for(var b=0,c=[],d=0;da.a.Ia)){var k=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,n=f[2]?f[2].bind(b):null,r=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!k&&n&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&r&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(r)));rb(a,e,e,k,l,n,r,f[4])}}}function tb(a,b){a.o.push(b)}function ub(a,b){a.R||G(a.a,4,b)} -function lb(a,b,c){p("Memory block error ("+a+": "+h(b)+","+h(c)+")");return!1}function H(a){v.call(this,"Device",a,H);this.c={data:0,ad:0,Pa:20,pc:0};this.b={dd:0,cb:-1}}x(H);g=H.prototype;g.ca=function(a,b,c,d){this.l=b;this.a=c;this.G=d;var e=this;this.b.cb=vb(c,function(){e.b.la|=128;e.b.la&64&&(wb(e.a,e.b.qc),xb(e.a,e.b.cb,1E3/60))});this.b.qc=yb(64,6);sb(b,this,I);tb(b,this.reset.bind(this));C(this)};g.reset=function(){this.c.Pa=this.c.Pa&-120|20;this.b.la=0}; -g.Lb=function(){var a=this.b.la;this.b.la&=-129;return a};g.zc=function(a){this.b.la=a;a&64&&xb(this.a,this.b.cb,1E3/60);this.b.la=a&-129};g.Eb=function(a){return(a?this.c.pc:this.c.data)&65535};g.sc=function(a){this.c.data=a};g.Nb=function(){var a=this.a;return a.A&62337|a.Fa<<5|a.Ga<<1};g.Bc=function(a){var b=this.a;a&=62337;if(b.A!=a){b.A=a;b.Fa=a>>5&3;b.Ga=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ba!=c&&(b.Ba=c,zb(b))}Ab(this)}; -g.Ob=function(){var a=this.a.ma;a&65280&&(a=(a<<8|a>>8)&65535);return a};g.Pb=function(){return this.a.$a};g.Qb=function(){return this.a.na};g.Cc=function(a){var b=this.a;1170>b.Ia&&(a&=-49);b.na!=a&&(b.na=a,a&16?(b.Wa=4194303,b.Ha=3915776):(b.Wa=262143,b.Ha=253952),zb(b));Ab(this)};function Ab(a){a.c.Pa=a.c.Pa&-8|(a.a.Ba?a.a.na&16?1:2:4)}g.dc=function(a){return this.a.C[1][a>>1&7]};g.Qc=function(a,b){this.a.C[1][b>>1&7]=a&65295};g.bc=function(a){return this.a.C[1][(a>>1&7)+8]}; -g.Oc=function(a,b){this.a.C[1][(b>>1&7)+8]=a&65295};g.cc=function(a){return this.a.P[1][a>>1&7]};g.Pc=function(a,b){b=b>>1&7;this.a.P[1][b]=a;this.a.C[1][b]&=65295};g.ac=function(a){return this.a.P[1][(a>>1&7)+8]};g.Nc=function(a,b){b=(b>>1&7)+8;this.a.P[1][b]=a;this.a.C[1][b]&=65295};g.Kb=function(a){return this.a.C[0][a>>1&7]};g.yc=function(a,b){this.a.C[0][b>>1&7]=a&65295};g.Ib=function(a){return this.a.C[0][(a>>1&7)+8]};g.wc=function(a,b){this.a.C[0][(b>>1&7)+8]=a&65295}; -g.Jb=function(a){return this.a.P[0][a>>1&7]};g.xc=function(a,b){b=b>>1&7;this.a.P[0][b]=a;this.a.C[0][b]&=65295};g.Hb=function(a){return this.a.P[0][(a>>1&7)+8]};g.vc=function(a,b){b=(b>>1&7)+8;this.a.P[0][b]=a;this.a.C[0][b]&=65295};g.jc=function(a){return this.a.C[3][a>>1&7]};g.Wc=function(a,b){this.a.C[3][b>>1&7]=a&65295};g.hc=function(a){return this.a.C[3][(a>>1&7)+8]};g.Uc=function(a,b){this.a.C[3][(b>>1&7)+8]=a&65295};g.ic=function(a){return this.a.P[3][a>>1&7]}; -g.Vc=function(a,b){b=b>>1&7;this.a.P[3][b]=a;this.a.C[3][b]&=65295};g.gc=function(a){return this.a.P[3][(a>>1&7)+8]};g.Tc=function(a,b){b=(b>>1&7)+8;this.a.P[3][b]=a;this.a.C[3][b]&=65295};g.ua=function(a){a&=7;return this.a.u&2048?this.a.sa[a]:this.a.f[a]};g.wa=function(a,b){b&=7;this.a.u&2048?this.a.sa[b]=a:this.a.f[b]=a};g.Vb=function(){return this.a.u&49152?this.a.Z[0]:this.a.f[6]};g.Hc=function(a){this.a.u&49152?this.a.Z[0]=a:this.a.f[6]=a};g.Yb=function(){return this.a.f[7]}; -g.Kc=function(a){this.a.f[7]=a};g.va=function(a){a&=7;return this.a.u&2048?this.a.f[a]:this.a.sa[a]};g.xa=function(a,b){b&=7;this.a.u&2048?this.a.f[b]=a:this.a.sa[b]=a};g.Wb=function(){return 1==(this.a.u&49152)>>14?this.a.f[6]:this.a.Z[1]};g.Ic=function(a){1==(this.a.u&49152)>>14?this.a.f[6]=a:this.a.Z[1]=a};g.Xb=function(){return 3==(this.a.u&49152)>>14?this.a.f[6]:this.a.Z[3]};g.Jc=function(a){3==(this.a.u&49152)>>14?this.a.f[6]=a:this.a.Z[3]=a};g.Gb=function(a){return this.a.pb[a-65504>>1]}; -g.uc=function(a,b){this.a.pb[b-65504>>1]=a};g.nb=function(a){return 65520==a?61183:0};g.ub=function(){};g.fc=function(){return 1};g.Sc=function(){};g.Fb=function(){return this.a.F};g.tc=function(){this.a.F=0};g.Mb=function(){return this.a.ob};g.Ac=function(a,b){b&1||(a&=255);this.a.ob=a};g.Rb=function(a){return a?this.a.ab:0};g.Dc=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.ab=a;b.j|=2};g.ec=function(a){return a?this.a.oa&65280:0};g.Rc=function(a){this.a.oa=a|255}; -g.Ub=function(){return Ya(this.a)};g.Gc=function(a){Bb(this.a,a&-1809|Ya(this.a)&1808);this.a.j|=128};g.tb=function(){}; -var J={},I=(J[62592]=[null,null,H.prototype.dc,H.prototype.Qc,"SISDR",1145],J[62608]=[null,null,H.prototype.bc,H.prototype.Oc,"SDSDR",1145],J[62624]=[null,null,H.prototype.cc,H.prototype.Pc,"SISAR",1145],J[62640]=[null,null,H.prototype.ac,H.prototype.Nc,"SDSAR",1145],J[62656]=[null,null,H.prototype.Kb,H.prototype.yc,"KISDR",1145],J[62672]=[null,null,H.prototype.Ib,H.prototype.wc,"KDSDR",1145],J[62688]=[null,null,H.prototype.Jb,H.prototype.xc,"KISAR",1145],J[62704]=[null,null,H.prototype.Hb,H.prototype.vc, -"KDSAR",1145],J[62798]=[null,null,H.prototype.Qb,H.prototype.Cc,"MMR3",1145],J[65382]=[null,null,H.prototype.Lb,H.prototype.zc,"LKS"],J[65400]=[null,null,H.prototype.Eb,H.prototype.sc,"CNSL"],J[65402]=[null,null,H.prototype.Nb,H.prototype.Bc,"MMR0",1145],J[65404]=[null,null,H.prototype.Ob,H.prototype.tb,"MMR1",1145],J[65406]=[null,null,H.prototype.Pb,H.prototype.tb,"MMR2",1145],J[65408]=[null,null,H.prototype.jc,H.prototype.Wc,"UISDR",1145],J[65424]=[null,null,H.prototype.hc,H.prototype.Uc,"UDSDR", -1145],J[65440]=[null,null,H.prototype.ic,H.prototype.Vc,"UISAR",1145],J[65456]=[null,null,H.prototype.gc,H.prototype.Tc,"UDSAR",1145],J[65472]=[null,null,H.prototype.ua,H.prototype.wa,"R0SET0"],J[65473]=[null,null,H.prototype.ua,H.prototype.wa,"R1SET0"],J[65474]=[null,null,H.prototype.ua,H.prototype.wa,"R2SET0"],J[65475]=[null,null,H.prototype.ua,H.prototype.wa,"R3SET0"],J[65476]=[null,null,H.prototype.ua,H.prototype.wa,"R4SET0"],J[65477]=[null,null,H.prototype.ua,H.prototype.wa,"R5SET0"],J[65478]= -[null,null,H.prototype.Vb,H.prototype.Hc,"R6KERNEL"],J[65479]=[null,null,H.prototype.Yb,H.prototype.Kc,"R7KERNEL"],J[65480]=[null,null,H.prototype.va,H.prototype.xa,"R0SET1",1145],J[65481]=[null,null,H.prototype.va,H.prototype.xa,"R1SET1",1145],J[65482]=[null,null,H.prototype.va,H.prototype.xa,"R2SET1",1145],J[65483]=[null,null,H.prototype.va,H.prototype.xa,"R3SET1",1145],J[65484]=[null,null,H.prototype.va,H.prototype.xa,"R4SET1",1145],J[65485]=[null,null,H.prototype.va,H.prototype.xa,"R5SET1",1145], -J[65486]=[null,null,H.prototype.Wb,H.prototype.Ic,"R6SUPER",1145],J[65487]=[null,null,H.prototype.Xb,H.prototype.Jc,"R6USER",1145],J[65504]=[null,null,H.prototype.Gb,H.prototype.uc,"CTRL",1170],J[65520]=[null,null,H.prototype.nb,H.prototype.ub,"LSIZE",1170],J[65522]=[null,null,H.prototype.nb,H.prototype.ub,"HSIZE",1170],J[65524]=[null,null,H.prototype.fc,H.prototype.Sc,"SYSID",1170],J[65526]=[null,null,H.prototype.Fb,H.prototype.tc,"CPUERR",1170],J[65528]=[null,null,H.prototype.Mb,H.prototype.Ac, -"MB",1170],J[65530]=[null,null,H.prototype.Rb,H.prototype.Dc,"PIR"],J[65532]=[null,null,H.prototype.ec,H.prototype.Rc,"SL"],J[65534]=[null,null,H.prototype.Ub,H.prototype.Gc,"PSW"],J);I[62594]=I[62592];I[62596]=I[62592];I[62598]=I[62592];I[62600]=I[62592];I[62602]=I[62592];I[62604]=I[62592];I[62606]=I[62592];I[62610]=I[62608];I[62612]=I[62608];I[62614]=I[62608];I[62616]=I[62608];I[62618]=I[62608];I[62620]=I[62608];I[62622]=I[62608];I[62626]=I[62624];I[62628]=I[62624];I[62630]=I[62624];I[62632]=I[62624]; -I[62634]=I[62624];I[62636]=I[62624];I[62638]=I[62624];I[62642]=I[62640];I[62644]=I[62640];I[62646]=I[62640];I[62648]=I[62640];I[62650]=I[62640];I[62652]=I[62640];I[62654]=I[62640];I[62658]=I[62656];I[62660]=I[62656];I[62662]=I[62656];I[62664]=I[62656];I[62666]=I[62656];I[62668]=I[62656];I[62670]=I[62656];I[62674]=I[62672];I[62676]=I[62672];I[62678]=I[62672];I[62680]=I[62672];I[62682]=I[62672];I[62684]=I[62672];I[62686]=I[62672];I[62690]=I[62688];I[62692]=I[62688];I[62694]=I[62688];I[62696]=I[62688]; -I[62698]=I[62688];I[62700]=I[62688];I[62702]=I[62688];I[62706]=I[62704];I[62708]=I[62704];I[62710]=I[62704];I[62712]=I[62704];I[62714]=I[62704];I[62716]=I[62704];I[62718]=I[62704];I[65410]=I[65408];I[65412]=I[65408];I[65414]=I[65408];I[65416]=I[65408];I[65418]=I[65408];I[65420]=I[65408];I[65422]=I[65408];I[65426]=I[65424];I[65428]=I[65424];I[65430]=I[65424];I[65432]=I[65424];I[65434]=I[65424];I[65436]=I[65424];I[65438]=I[65424];I[65442]=I[65440];I[65444]=I[65440];I[65446]=I[65440];I[65448]=I[65440]; -I[65450]=I[65440];I[65452]=I[65440];I[65454]=I[65440];I[65458]=I[65456];I[65460]=I[65456];I[65462]=I[65456];I[65464]=I[65456];I[65466]=I[65456];I[65468]=I[65456];I[65470]=I[65456];I[65506]=I[65504];I[65508]=I[65504];I[65510]=I[65504];I[65512]=I[65504];I[65514]=I[65504];I[65516]=I[65504];I[65518]=I[65504];u(function(){for(var a=B(document,"pdp11","device"),b=0;b>1),this.a=new Int32Array(this.b,0,d>>2),Ib(this,Eb?Jb:Kb);else{this.a=Array(d>>2);for(a=0;a>2),b=0;b>8,c)},M:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},$:function(a,b){a&1&&ub(this.l,b);b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},fa:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.ja=!0},H:function(a,b){return this.I(a,b)}, -R:function(a,b){return this.V(a,b)},ba:function(a,b,c){this.v||this.sb(a,b,c)},ha:function(a,b,c){this.v||this.pa(a,b,c)},D:function(a){return this.c[a]},J:function(a){return this.c[a]},N:function(a,b){a&1&&ub(this.l,b);return this.g.getUint16(a,!0)},W:function(a,b){a&1&&ub(this.l,b);return this.o[a>>1]},aa:function(a,b){this.c[a]=b;this.ja=!0},ea:function(a,b){this.c[a]=b;this.ja=!0},ga:function(a,b,c){a&1&&ub(this.l,c);this.g.setUint16(a,b,!0);this.ja=!0},qa:function(a,b,c){a&1&&ub(this.l,c);this.o[a>> -1]=b;this.ja=!0}};function db(a,b,c){a.G=b;a.i=a.m=0;c&&((a.i=c.i)&&Mb(a,Nb,!1),(a.m=c.m)&&Ob(a,Nb,!1))}function Ob(a,b,c){c&&a.m||(a.eb=!a.v&&b[1]||a.A,a.Ra=!a.v&&b[3]||a.B);if(c||void 0===c)a.sb=b[1]||a.A,a.pa=b[3]||a.B}function Mb(a,b,c){c&&a.i||(a.Ya=b[0]||a.w,a.S=b[2]||a.s);if(c||void 0===c)a.I=b[0]||a.w,a.V=b[2]||a.s}function Ib(a,b){b||(b=Pb);Mb(a,b,void 0);Ob(a,b,void 0)} -var Pb=[],Lb=[F.prototype.M,F.prototype.fa,F.prototype.$,F.prototype.ra],Nb=[F.prototype.H,F.prototype.ba,F.prototype.R,F.prototype.ha];if(Sa)var Kb=[F.prototype.D,F.prototype.aa,F.prototype.N,F.prototype.ga],Jb=[F.prototype.J,F.prototype.ea,F.prototype.W,F.prototype.qa]; -function Qb(a,b){v.call(this,"CPU",a,Qb);var c=a.multiplier||1;this.La=a.cycles||b;this.ba=c;this.Va=Math.round(this.La/1E4)/100;this.ea=this.Va*this.ba;this.h.T=!1;this.h.qb=!1;this.h.Aa=a.autoStart;this.h.Ma=!1;this.Ja=this.ga=0;this.Ka=a.csStart;this.pa=a.csInterval;this.qa=a.csStop;this.H=[];this.mb=this.oc.bind(this);C(this)}x(Qb);var Rb=["power","reset"];g=Qb.prototype; -g.ca=function(a,b,c,d){this.w=a;this.l=b;this.G=d;for(b=0;ba.$/a.ea&&(b=1),a.ba=b,b=a.Va*a.ba,a.ea!=b)){a.ea=b;b=a.ea.toFixed(2)+"Mhz";var c=a.v.setSpeed;c&&(c.textContent=b);a.O("target speed: "+b)}a.J+=a.V;a.V=0;a.N=sa();a.aa=0;Xb(a)}function vb(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function xb(a,b,c){0<=b&&ba.H[b][0]&&(c=a.La*a.ba/1E3*c|0,a.H[b][0]=c+Zb(a))}function Zb(a,b){var c=a.fa-=a.a;a.a=0;b&&(a.fa=0);return c} -g.oc=function(){if(this.h.T){this.Xa>=this.La&&Xb(this,!0);this.ya=0;this.Da=sa();if(this.aa){var a=this.Da-this.aa;a>this.kb&&(this.N+=a,this.N>this.Da&&(this.N=this.Da))}try{do{for(var b,c=this.h.Ma?1:this.Na,d=this.H.length-1;0<=d;d--){var e=this.H[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.rb(b)}catch(n){if("number"!=typeof n)throw n;}b=Zb(this,!0);this.ya+=b;this.V+=b;a=b;if(this.h.Ma){var f=!1;this.Ja=this.Ja+this.hb()|0;this.ga-=a;0>=this.ga&&(this.ga+=this.pa,f=!0);0<=this.qa&&this.qa<=Yb(this)&& -(this.pa=this.qa=-1,Ub(this),Wa(this),f=!0);f&&this.O(Yb(this)+" cycles: checksum="+h(this.Ja))}for(var a=b,k=this.H.length-1;0<=k;k--){var l=this.H[k];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.ra-=b;if(0>=this.ra){this.ra+=this.Na;15<=++this.lb&&(this.w&&this.w.da(),this.lb=0);break}}while(this.h.T)}catch(n){Wa(this);this.w&&this.w.stop(sa(),Yb(this));b=n.stack||n.message;this.h.error=!0;this.K(b);return}if(this.h.T){b=setTimeout;c=this.mb;this.aa=sa();d=this.kb;this.ya&&(d=Math.round(d*this.ya/ -this.Na));d-=this.aa-this.Da;if(e=this.aa-this.N)this.$=Math.round(this.V/(10*e))/100,864E5<=e&&(this.J=0,Wb(this));if(0>d||this.$d&&(this.N-=d),d=0;this.Xa+=this.ya;this.aa+=d;b(c,d)}}};function Vb(a){var b;a.h.error?(a.O(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.T)a.O(a.toString()+" busy");else{Wb(a);a.h.T=!0;a.h.qb=!0;if(b=a.v.run)b.textContent="Halt";a.w&&a.w.start(a.N,Yb(a));setTimeout(a.mb,0)}}g.rb=function(){return 0}; -function Wa(a){if(a.h.T){Zb(a);a.J+=a.V;a.V=0;a.h.T=!1;var b=a.v.run;b&&(b.textContent="Run");a.w&&a.w.stop(sa(),Yb(a))}a.h.complete=void 0}function $b(a){this.Ia=+a.model||1170;this.Cb=a.resetAddr||0;Qb.call(this,a,6666667);this.decode=1120==this.Ia?ac.bind(this):bc.bind(this);cc(this);this.R=0;this.W=null;this.h.complete=this.h.wb=!1}x($b,Qb);g=$b.prototype;g.reset=function(){this.status("model "+this.Ia);this.h.T&&Wa(this);cc(this);Tb(this);this.h.error=!1;this.parent.reset.call(this)}; -function cc(a){a.m=65536;a.g=32768;a.i=65535;a.o=32768;a.u=15;a.f=[0,0,0,0,0,0,0,a.Cb];a.sa=[0,0,0,0,0,0];a.Z=[0,0,0,0];a.s=0;a.Ga=0;a.Ab=[4,2,0,1];a.C=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Db=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.pb=[0,0,0,0,0,0,0,0];a.ob=0;a.j=0;a.B=a.D=0;a.c=a.b=a.Ta=0;a.ha=-1;dc(a)}function dc(a){a.oa=255;a.F=0;a.ab=0;a.A=0;a.ma=0;a.$a=0;a.na=0;a.Ba=0;a.Fa=0;a.Wa=262143;a.Ha=253952;a.j|=2;a.l&&zb(a)}function zb(a){a.Ba?(a.M=65536,a.I=a.zb,a.S=a.lc,a.Ra=a.Yc,gb(a.l,a.na&16?22:18)):(a.M=0,a.I=a.yb,a.S=a.kc,a.Ra=a.Xc,gb(a.l,16))}g.hb=function(){return 0}; -g.save=function(){var a=new L(this);a.set(0,[]);a.set(1,[this.J,this.ba]);a.set(2,qb(this.l));return a.data()};g.restore=function(a){var b=a[1];this.J=b[1];Wb(this,b[3]);a:{b=this.l;a=a[2];var c;for(c=0;c>14&3;c=a.u>>14&3;a.s!=c&&(a.Z[c]=a.f[6],a.f[6]=a.Z[a.s]);a.u=b;a.j|=2}function N(a,b){a.j&128||(a.o=a.i=b,a.g=0)}function O(a,b,c){a.j&128||(a.o=a.i=a.m=b,a.g=c||0)}function fc(a,b,c,d){a.j&128||(a.o=a.i=a.m=b,a.g=(c^b)&(d^b))}function P(a,b){a.j&128||(a.o=a.i=a.m=b,a.g=a.o^a.m>>1)}function gc(a,b,c,d){a.j&128||(a.o=a.i=a.m=b,a.g=(c^d)&(d^b))} -function G(a,b,c){if(!a.R){var d=!1;0>a.ha?a.ha=Ya(a):a.s||(b=4,d=!0);a.A&57344||(a.ma=63222,a.$a=b);a.s=0;var e=a.S(b|a.M),f=a.S(b+2&65535|a.M);Bb(a,f&-12289|a.ha>>2&12288);d&&(a.F|=4,a.f[6]=4);hc(a,a.ha);hc(a,a.f[7]);a.f[7]=e&65535;a.j&=-113;a.ha=-1;if(26!=c)throw b;}}function ic(a){var b=jc(a),c=jc(a)&-1793;a.u&49152&&(c=c&-225|a.u&63712);a.f[7]=b&65535;Bb(a,c);a.j&=-17} -function kc(a,b,c){var d,e,f,k=0;d=b>>13;a.na&a.Ab[a.s]||(d&=7);e=a.C[a.s][d];f=(a.P[a.s][d]<<6)+(b&8191)&a.Wa;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.na&32&&(f=a.Db[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Ha&&4186112>f&&(a.F|=32,G(a,4,12))}switch(e&7){case 1:k=4096;case 2:e|=128;c&4&&(k=8192);break;case 4:k=4096;case 5:c&4&&(k=4096);case 6:e|=c&4?192: -128;break;default:k=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(k|=16384):(b&8128)>(e>>2&8128)&&(k|=16384));a.C[a.s][d]=e;if(4194170!==f||a.s)a.Fa=a.s,a.Ga=d;k&&(k&57344&&(0<=a.ha&&(k|=128),a.A&57344||(a.A=a.A|k|a.Fa<<5|a.Ga<<1),G(a,168,16)),a.A&61440||!(4191360>f||4194239>>a.l].eb(b&a.g,c&255,b)}function jc(a){var b=a.S(a.f[6]|a.M);a.f[6]=a.f[6]+2&65535;return b} -function hc(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.ma=a.ma<<8|246);!a.s&&c<=a.oa&&4c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=k);e=a.S(e);e|=k;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.f[c]+f&65535;7!==c&&(e|=k);a.a-=4;break;case 5:f=-2;e=a.f[c]-2&65535;7!==c&&(e|=k);e=a.S(e)|k;a.a-= -8;break;case 6:return e=ec(a),e=e+a.f[c]&65535|k,a.a-=6,e;case 7:return e=ec(a),e=e+a.f[c]&65535,e=a.S(e|a.M)|k,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!k||a.A&57344||(a.ma=a.ma<<8|f<<3&248|c);6==c&&!a.s&&d&4&&0>=f&&(a.f[6]<=a.oa||65534<=a.f[6])&&(a.f[6]<=a.oa-32?(a.F|=4,a.f[6]=4,G(a,4,24)):(a.F|=8,a.j|=64));return e}g.bb=function(a,b){this.Ba?(this.R++,lc(this,kc(this,a,5),b),this.R--):this.l.bb(a,b)};g.yb=function(a,b,c){return mc(this,a,b,c)};g.zb=function(a,b,c){return kc(this,mc(this,a,b,c),c)}; -g.kc=function(a){return ob(this.l,a)};g.lc=function(a){return ob(this.l,kc(this,a,2))};g.Xc=function(a,b){pb(this.l,a,b&65535)};g.Yc=function(a,b){pb(this.l,kc(this,a,4),b)};function nc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=mc(a,b,d,2),c&65536||61440!==(a.u&61440)&&(d&=65535),a.s=a.u>>12&3,c=a.S(d|c&a.M),a.s=a.u>>14&3):c=6!=d||(a.u>>2&12288)===(a.u&12288)?a.f[d]:a.Z[a.u>>12&3];return c} -function oc(a,b,c,d){a.A&57344||(a.ma=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=mc(a,b,e,4),c&65536||(e&=65535),a.s=a.u>>12&3,e=kc(a,e|c&65536,4),a.s=a.u>>14&3,pb(a.l,e,d)):6!=e||(a.u>>2&12288)===(a.u&12288)?a.f[e]=d:a.Z[a.u>>12&3]=d}function pc(a,b){b>>=6;var c=a.D=b&7;(b=a.B=(b&56)>>3)?(c=a.I(b,c,3),a=nb(a.l,c)):a=a.f[c]&255;return a}function Q(a,b){b>>=6;var c=a.D=b&7;return(b=a.B=(b&56)>>3)?ob(a.l,a.I(b,c,2)):a.f[c]}function qc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return mc(a,b,c,8)} -function rc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.I(b,c,3),a=nb(a.l,c)):a=a.f[c]&255;return a}function sc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?ob(a.l,a.I(b,c,2)):a.f[c]}function R(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.Ta=a.I(b,e,7),lc(a,e,d.call(a,c,nb(a.l,e)))):a.f[e]=a.f[e]&65280|d.call(a,c,a.f[e])}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.I(b,e,6),pb(a.l,e,d.call(a,c,ob(a.l,e)))):a.f[e]=d.call(a,c,a.f[e])} -function tc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?lc(a,a.I(b,e,5),c):a.f[e]=c?d&1?c<<24>>24&65535:a.f[e]&-256|c&255:a.f[e]&-256;return c}function uc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?pb(a.l,a.I(b,d,4),c):a.f[d]=c&65535;return c}function T(a,b,c){c&&(a.f[7]=a.f[7]+(b<<24>>23)&65535,a.a-=2);a.a-=3} -g.rb=function(a){this.h.complete=!0;this.h.wb=!1;this.h.qb=!1;this.fa=this.a=a;do{if(this.j&&(this.j&112&&(this.j&32?G(this,168,28):this.j&64?G(this,4,30):this.j&16&&G(this,12,32),this.j&=-113),this.j&7))if(this.j&2){this.j&=-3;var b=160,c=(this.ab&224)>>5;if(a=this.W&&this.W.ta>c?this.W:null)b=a.rc,c=a.ta;c>(this.u&224)>>5?(this.j&4&&(this.f[7]=this.f[7]+2&65535,this.j&=-5),G(this,b,26),c=!0):c=!1;if(c&&a)if(c=this.W,c==a)this.W=a.next;else for(;c;){b=c.next;if(b==a){c.next=b.next;break}c=b}}else this.j& -1&&this.j++;this.A&57344||(this.ma=0,this.$a=this.f[7]);this.j=this.j&7|this.u&16;this.decode(ec(this))}while(0>1|b<<16;P(this,a);return a&65535}function Ac(a,b){a=b&2048|b>>1|b<<8;P(this,a<<8);return a&255}function Bc(a,b){a=b&~a;N(this,a);return a}function Cc(a,b){a=b&~a;N(this,a<<8);return a}function Dc(a,b){a|=b;N(this,a);return a}function Ec(a,b){a|=b;N(this,a<<8);return a}function Fc(a,b){a=~b|65536;O(this,a);return a&65535}function Gc(a,b){a=~b|256;O(this,a<<8);return a&255} -function Hc(a,b){a=b-a;this.j&128||(this.o=this.i=a,this.g=b&(b^a));return a&65535}function Ic(a,b){a=b-a;var c=a<<8;b<<=8;this.j&128||(this.o=this.i=c,this.g=b&(b^c));return a&255}function Jc(a,b){a=b+a;this.j&128||(this.o=this.i=a,this.g=a&(b^a));return a&65535}function Kc(a,b){a=b+a;var c=a<<8;this.j&128||(this.o=this.i=c,this.g=c&(b<<8^c));return a&255}function Lc(a,b){a=-b;O(this,a,a&b&32768);return a&65535}function Mc(a,b){a=-b;O(this,a<<8,(a&b&128)<<8);return a&255} -function Nc(a,b){a=b<<1|this.m>>16&1;P(this,a);return a&65535}function Oc(a,b){a=b<<1|this.m>>16&1;P(this,a<<8);return a&255}function Pc(a,b){a=(this.m&65536|b)>>1|b<<16;P(this,a);return a&65535}function Qc(a,b){a=((this.m&65536)>>8|b)>>1|b<<8;P(this,a<<8);return a&255}function Rc(a,b){var c=b-a;gc(this,c,a,b);return c&65535}function Sc(a,b){var c=b-a;gc(this,c<<8,a<<8,b<<8);return c&255}function Tc(a,b){this.j&128||(this.o=this.i=b&65280,this.g=this.m=0);return(b<<8|b>>8)&65535} -function Uc(a,b){a^=b;N(this,a);return a&65535}function Vc(a){S(this,a,Q(this,a),vc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Wc(a){var b=sc(this,a);a=a>>6&7;var c=this.f[a];c&32768&&(c|=4294901760);this.m=this.g=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.g=32768)}this.f[a]=c&65535;this.o=this.i=c;this.a-=(this.c?6:7)+b} -function Xc(a){var b=sc(this,a);a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.m=this.g=0;b&=63;if(b&32){b=64-b;32>b-1;this.m=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.f[a|1]=d&65535;this.o=d>>16;this.i=d>>16|d;this.a-=(this.c?6:7)+b}function Yc(a){T(this,a,!M(this))}function Zc(a){T(this,a,M(this))} -function $c(a){S(this,a,Q(this,a),Bc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function ad(a){R(this,a,pc(this,a),Cc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function bd(a){S(this,a,Q(this,a),Dc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function cd(a){R(this,a,pc(this,a),Ec);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} -function dd(a){N(this,Q(this,a)&sc(this,a));this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function ed(a){N(this,(pc(this,a)&rc(this,a))<<8);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function fd(a){T(this,a,this.i&65535?0:4)}function gd(a){T(this,a,!this.ka()==!(this.g&32768))}function hd(a){T(this,a,!!(this.i&65535)&&!this.ka()==!(this.g&32768))}function id(a){T(this,a,!M(this)&&!!(this.i&65535))} -function jd(a){T(this,a,(this.i&65535?0:4)||!this.ka()!=!(this.g&32768))}function kd(a){T(this,a,M(this)||(this.i&65535?0:4))}function ld(a){T(this,a,!this.ka()!=!(this.g&32768))}function md(a){T(this,a,this.ka())}function nd(a){T(this,a,!!(this.i&65535))}function od(a){T(this,a,!this.ka())}function pd(){G(this,12,1);this.a-=5}function qd(a){T(this,a,!0)}function rd(a){T(this,a,!(this.g&32768))}function sd(a){T(this,a,this.g&32768?2:0)} -function U(a){a&1&&(this.m=0);a&2&&(this.g=0);a&4&&(this.i=1);a&8&&(this.o=0);this.a-=5}function td(a){var b=Q(this,a);a=sc(this,a);gc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function ud(a){var b=pc(this,a)<<8;a=rc(this,a)<<8;gc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)} -function vd(a){var b=sc(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.m=this.g=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.f[a]=d&65535,this.f[a|1]=c-d*b&65535,this.i=d>>16|d,this.o=d>>16):(this.g=32768,this.i=d>>15|d,this.o=c>>16,-1===b&&65534===this.f[a]&&(this.f[a]=this.f[a|1]=1));this.a-=53}else this.i=this.o=0,this.g=32768,this.m=65536,this.a-=7}function wd(){G(this,24,2);this.a-=25}function xd(){this.u&49152?(this.F|=128,G(this,4,3)):Wa(this);this.a-=7} -function yd(){G(this,16,4);this.a-=25}var zd=[0,7,7,10,7,11,9,13];function V(a){var b=this.a;a=qc(this,a);this.f[7]=a&65535;this.a=b-zd[this.c]}var Ad=[0,14,14,17,14,18,16,20];function Bd(a){var b=this.a,c=qc(this,a);a=a>>6&7;hc(this,this.f[a]);this.f[a]=this.f[7];this.f[7]=c&65535;this.a=b-Ad[this.c]}var Cd=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Dd(a){var b=Q(this,a),c=this.a;N(this,uc(this,a,b));this.a=c-Cd[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)} -function Ed(a){var b=pc(this,a);N(this,tc(this,a,b,1)<<8);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Fd=[7,13,13,17,14,18,17,21];function Gd(a){var b=sc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.j&128||(this.o=b>>16,this.i=this.o|b,this.g=0,this.m=-32768>b||32767>6;if(this.f[b]=this.f[b]-1&65535)this.f[7]=this.f[7]-((a&63)<<1)&65535,this.a+=1;this.a-=6}function Md(a){S(this,a,Q(this,a),Rc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} -function X(a){S(this,a,0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)}function Od(){G(this,28,5);this.a-=5}function Pd(){this.j&4||this.w.da();this.j|=4;this.f[7]=this.f[7]+-2&65535;this.a-=3}function Qd(a){S(this,a,Q(this,a),Uc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){G(this,8,6)}function ac(a){Rd[a>>12].call(this,a)}function Sd(a){Td[a>>6&3].call(this,a)}function Ud(a){Vd[a>>6&3].call(this,a)}function Wd(a){Xd[a>>6&3].call(this,a)}function Yd(a){Zd[a&15].call(this,a)} -function $d(a){ae[a&15].call(this,a)}function be(a){ce[a>>6&3].call(this,a)}function de(a){ee[a>>6&3].call(this,a)}function fe(a){ge[a>>6&3].call(this,a)} -var Rd=[function(a){he[a>>8&15].call(this,a)},Dd,td,dd,$c,bd,Vc,Y,function(a){ie[a>>8&15].call(this,a)},Ed,ud,ed,ad,cd,Md,Y],he=[function(a){je[a>>4&15].call(this,a)},qd,nd,fd,gd,ld,hd,jd,Bd,Bd,Sd,Ud,Wd,Y,Y,Y],Td=[function(a){O(this,uc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Fc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Hc);this.a-=this.c?9:3+(7==this.b?2:0)}],Vd=[function(a){S(this,a,0,Lc); -this.a-=this.c?11:6},function(a){S(this,a,M(this)?1:0,vc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,M(this)?1:0,Rc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=sc(this,a);O(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Xd=[function(a){S(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Nc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,xc);this.a-=this.c?9:3+(7==this.b?2:0)}],je=[function(a){ke[a& -15].call(this,a)},Y,Y,Y,V,V,V,V,Kd,Y,Yd,$d,X,X,X,X],ke=[xd,Pd,Jd,pd,yd,Id,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],Zd=[Hd,function(){this.m=0;this.a-=5},function(){this.g=0;this.a-=5},U,function(){this.i=1;this.a-=5},U,U,U,function(){this.o=0;this.a-=5},U,U,U,U,U,U,U],ae=[Hd,function(){this.m=65536;this.a-=5},function(){this.g=32768;this.a-=5},W,function(){this.i=0;this.a-=5},W,W,W,function(){this.o=32768;this.a-=5},W,W,W,W,W,W,W],ie=[od,md,id,kd,rd,sd,Yc,Zc,wd,Od,be,de,fe,Y,Y,Y],ce=[function(a){O(this,tc(this,a,0)); -this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Gc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Ic);this.a-=this.c?9:3+(7==this.b?2:0)}],ee=[function(a){R(this,a,0,Mc);this.a-=this.c?11:6},function(a){R(this,a,M(this)?1:0,wc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,M(this)?1:0,Sc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=rc(this,a);O(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}],ge= -[function(a){R(this,a,0,Qc);this.a-=this.c?9+(this.Ta&1):3+(7==this.b?2:0)},function(a){R(this,a,0,Oc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Ac);this.a-=this.c?9+(this.Ta&1):3+(7==this.b?2:0)},function(a){R(this,a,0,yc);this.a-=this.c?9:3+(7==this.b?2:0)}];function bc(a){le[a>>12].call(this,a)} -var le=[function(a){me[a>>8&15].call(this,a)},Dd,td,dd,$c,bd,Vc,function(a){ne[a>>8&15].call(this,a)},function(a){oe[a>>8&15].call(this,a)},Ed,ud,ed,ad,cd,Md,Y],me=[function(a){pe[a>>4&15].call(this,a)},qd,nd,fd,gd,ld,hd,jd,Bd,Bd,Sd,Ud,Wd,function(a){qe[a>>6&3].call(this,a)},Y,Y],qe=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.S(a|this.M);this.f[7]=this.f[5]&65535;this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=nc(this,a,0);hc(this,a);N(this,a);this.a-=11},function(a){var b=jc(this), -c=this.a;oc(this,a,0,b);N(this,b);this.a=c-Fd[this.c]},function(a){N(this,uc(this,a,this.ka?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],pe=[function(a){re[a&15].call(this,a)},Y,Y,Y,V,V,V,V,Kd,function(a){a&8?(this.u&49152||(this.u=this.u&-2017|(a&7)<<5,this.j|=1),this.a-=5):G(this,8,6)},Yd,$d,X,X,X,X],re=[xd,Pd,Jd,pd,yd,Id,function(){ic(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],ne=[Gd,Gd,vd,vd,Wc,Wc,Xc,Xc,Qd,Qd,Y,Y,Y,Y,Ld,Ld],oe=[od,md,id,kd,rd,sd,Yc,Zc,wd,Od,be,de,fe,function(a){se[a>>6&3].call(this, -a)},Y,Y],se=[Y,function(a){a=nc(this,a,65536);hc(this,a);N(this,a);this.a-=11},function(a){var b=jc(this),c=this.a;oc(this,a,65536,b);N(this,b);this.a=c-Fd[this.c]},Y];function te(a){v.call(this,"ROM",a,te);this.b=null;this.o=a.addr;this.c=a.size;this.w=a.writable;this.g=a.alias;this.i=a.file;this.s=ka(this.i);if(this.i){a=this.i;var b=la(this.s);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;m(a,null,!0,function(a,b,f){ue(c,a,b,f)})}}x(te); -te.prototype.ca=function(a,b,c,d){this.l=b;this.a=c;this.G=d;ve(this)};te.prototype.Y=function(){this.m&&(this.G&&this.G.a(this.id,this.o,this.c,this.m),delete this.m);return!0};te.prototype.X=function(){return!0}; -function ue(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Oa(a.Ua,b,c);var e;if("["==c.charAt(0)||"{"==c.charAt(0))try{var f,k,l=eval("("+c+")");if(f=l.bytes)a.b=f;else if(f=l.words)for(a.b=Array(2*f.length),k=e=0;e>8&255;else if(f=l.data)for(a.b=Array(4*f.length),k=e=0;e>8&255,a.b[k++]=f[e]>>16&255,a.b[k++]=f[e]>>24&255;else a.b=l;a.m=l.symbols;if(!a.b.length){p("Empty ROM: "+b); -return}if(1==a.b.length){p(a.b[0]);return}}catch(n){a.K("ROM data error: "+n.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=qa(b[0]);if(c!=this.Ea)return;b=qa(b[1]);if(this.s=Pa(b)){var d=this.s.exports;if(d){var e=d.connect;e&&e.call(this.s);if(this.A=d.receiveData){this.status(this.Ua+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.Y=function(a,b){if(!b)if(this.ib(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -g.X=function(a){return a?this.save():!0};g.reset=function(){Ae(this)};g.save=function(){var a=new L(this);a.set(0,[]);return a.data()};g.restore=function(){return Ae(this)};function Ae(a){a.D=0;a.b=0;a.c=128;a.i=[];return!0}g.Za=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.H||8,c=a-this.o%a,this.H&&(b=" ".slice(0,c)));this.B&&!this.o&&c&&(b=String.fromCharCode(this.B)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.o+=c}else if(null!=this.m){if(10==a||1024<=this.m.length)this.O(this.m), -this.m="";10!=a&&(this.m+=String.fromCharCode(a))}this.c&=-129;xb(this.a,this.J,1)}};var Be={},ze=(Be[65392]=[null,null,Z.prototype.$b,Z.prototype.Mc,"RCSR"],Be[65394]=[null,null,Z.prototype.Zb,Z.prototype.Lc,"RBUF"],Be[65396]=[null,null,Z.prototype.nc,Z.prototype.$c,"XCSR"],Be[65398]=[null,null,Z.prototype.mc,Z.prototype.Zc,"XBUF"],Be);u(function(){for(var a=B(document,"pdp11","serial"),b=0;b\nLicense: GPL version 3 or later ");this.O("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bGe){if(Ie(d,this.s)){this.m=new L(this,"1.30.1","failsafe");Ie(this.m)&&(Ne(this,d),a=2,Oe(this.m));this.m.set("timestamp",ta());Pe(this.m);var e=this.b&&!this.o;if(1==a||ua("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Me(d)){var f=d.get("code"),k=d.get("data");f&&("ok"==f?Ie(d,k):("error"== -f&&"no machine state"!=k?(this.K("Error: "+k),"unable to verify user"==k&&(ya("user",""),this.c=null)):this.O(f+": "+k),Oe(d),Ie(d)?(c=Me(d),e=!0):c=!1))}e&&Le(this,c?d:null)}else 2==a&&d.clear()}else Le(this);delete this.s;delete this.A}e=y(this.id);for(f=0;fa[1];a=a[2];this.R=!0;this.h.L=!0;var d=this.v.power;d&&(d.textContent="Shutdown");this.a&&(Qe(this,this.a,b,c,a),this.a.Aa());this.H&&(Ne(this,b),b.clear());!c&&this.m&&(this.m.clear(),delete this.m);this.g=0}; -function Ne(a,b){if(ua("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.N;d.user=c;d.type="bug";d.data=b;m("http://www.pcjs.org/api/v1/report",d,!0)}} -function Re(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new L(a,"1.30.1"),k=new L(a,"1.30.1","validate"),l=ta();k.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.X&&(c&&Wa(a.a),d=a.a.X(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.h.L=!1,!1===d&&(e=null)));for(var l=y(a.id),n=0;nf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");m(e,null,!0,function(f,k,l){if(l||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(k=k.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],k);Ye(a,b,c)}})}else c(a,null)} -function Ze(a,b,c,d){function e(a){if(void 0===l){var b=k&&B(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--Ve||Fa(!0));n=!1}var k,l,n=!0;Ve++;Na[a]={};try{if(k=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=r:D.appendChild(document.createTextNode(r));t.appendChild(D)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?We(c,null,null,!1,e,function(d,n){n?(Oa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(k.outerHTML=n,--Ve||Fa(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(n,k),--Ve||Fa(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?We(b,a,d,!0,e,r):Xe(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Nd){f(Nd.message)}return n}window.embedPDP11=function(a,b,c,d){Fa(!1);return Ze(a,b,c,d)};window.enableEvents=Fa;window.sendEvent=Ga;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map +Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});var Ta="undefined"!==typeof ArrayBuffer;function Ua(a){u.call(this,"Panel",a,Ua);this.b=0;this.i.jb=!0}w(Ua);g=Ua.prototype; +g.V=function(a,b,c,d){if(this.w&&this.w.V(a,b,c,d)||this.a&&this.a.V(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.v[b]=c,this.b++,!0;default:return"rled"==a?(this.v[b]=c,this.b++,!0):this.parent.V.call(this,a,b,c,d)}};g.ea=function(a,b,c,d){this.w=a;this.m=b;this.a=c;this.G=d};g.$=function(a,b){b||Va();return!0};g.Z=function(){return!0}; +function Wa(a,b,c,d){if(a.v[b]){void 0===c&&(a.i.error=!0,a.L("Value for "+b+" is invalid"),Xa(a.a));var e=a.G&&a.G.b||8;c=!a.a.i.U||a.i.jb?8==e?ia(c,d):ja(c,d):"--------".substr(0,d||4);a.v[b].textContent!=c&&(a.v[b].textContent=c)}}function Ya(a,b,c,d){for(var e=0;e>2;this.g=this.c-1;this.w=this.A/this.c|0;this.ka=[];this.S=0;this.o=[];this.Ab=[ab,bb,cb,db];a=new E(this);eb(a,this.G);this.b=Array(this.w);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.ka[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);return 0<=c?c:c=gb(d,b)}function bb(a,b,c){var d=!1,e=this.controller,f=e.ka[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.ka[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d||gb(e,c)} +function cb(a,b){var c=-1,d=this.controller;(a=d.ka[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));return 0<=c?c:c=gb(d,b)}function db(a,b,c){var d=!1,e=this.controller;if(a=e.ka[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d||gb(e,c)}function hb(a,b){if(b!=a.j){var c;a.j&&(c=(1<>>a.m;0k&&(t=k);if(!e&&n&&n.size){if(n.type==d){if(f+k<=n.Ba)return n.Ua+=n.Ba-f,n.Ba=f,!0;if(f>=n.Ba+n.Ua){t=n.size-(f-r);t>k&&(t=k);n.Ua=f-n.Ba+t;f=r+a.c;k-=t;l++;continue}}return mb(1,f,k)}f=new E(a,f,t,a.c,d,e);eb(f,a.G,n);a.b[l++]=f;f=r+a.c;k-=t}if(0>=k){c/=1024;var C;e="";C?10>>=a.m;0>>=a.m;0>>a.m].cb(b&a.g,b)}function pb(a,b){return a.b[(b&a.h)>>>a.m].T(b&a.g,b)}$a.prototype.Ta=function(a,b){this.S++;this.b[(a&this.h)>>>this.m].xb(a&this.g,b&255,a);this.S--}; +function qb(a,b,c){a.b[(b&a.h)>>>a.m].Va(b&a.g,c&65535,b)}function rb(a){for(var b=0,c=[],d=0;da.a.Fa)){var k=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,n=f[2]?f[2].bind(b):null,r=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!k&&n&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&r&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(r)));sb(a,e,e,k,l,n,r,f[4])}}}function ub(a,b){a.o.push(b)}function vb(a,b){a.S||F(a.a,4,b)} +function mb(a,b,c){m("Memory block error ("+a+": "+ja(b)+","+ja(c)+")");return!1}function G(a){u.call(this,"Device",a,G);this.c={data:0,ed:0,Sa:20,tc:0};this.b={hd:0,hb:-1}}w(G);g=G.prototype;g.ea=function(a,b,c,d){this.m=b;this.a=c;this.G=d;var e=this;this.b.hb=wb(c,function(){e.b.na|=128;e.b.na&64&&(xb(e.a,e.b.uc),yb(e.a,e.b.hb,1E3/60))});this.b.uc=zb(64,6);tb(b,this,H);ub(b,this.reset.bind(this));B(this)};g.reset=function(){this.c.Sa=this.c.Sa&-120|20;this.b.na=0}; +g.Pb=function(){var a=this.b.na;this.b.na&=-129;return a};g.Dc=function(a){this.b.na=a;a&64&&yb(this.a,this.b.hb,1E3/60);this.b.na=a&-129};g.Ib=function(a){return(a?this.c.tc:this.c.data)&65535};g.wc=function(a){this.c.data=a};g.Rb=function(){var a=this.a;return a.A&62337|a.Ia<<5|a.Ja<<1};g.Fc=function(a){var b=this.a;a&=62337;if(b.A!=a){b.A=a;b.Ia=a>>5&3;b.Ja=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Da!=c&&(b.Da=c,Ab(b))}Bb(this)}; +g.Sb=function(){var a=this.a.oa;a&65280&&(a=(a<<8|a>>8)&65535);return a};g.Tb=function(){return this.a.fb};g.Ub=function(){return this.a.pa};g.Gc=function(a){var b=this.a;1170>b.Fa&&(a&=-49);b.pa!=a&&(b.pa=a,a&16?(b.Za=4194303,b.Ka=3915776):(b.Za=262143,b.Ka=253952),Ab(b));Bb(this)};function Bb(a){a.c.Sa=a.c.Sa&-8|(a.a.Da?a.a.pa&16?1:2:4)}g.hc=function(a){return this.a.C[1][a>>1&7]};g.Uc=function(a,b){this.a.C[1][b>>1&7]=a&65295};g.fc=function(a){return this.a.C[1][(a>>1&7)+8]}; +g.Sc=function(a,b){this.a.C[1][(b>>1&7)+8]=a&65295};g.gc=function(a){return this.a.R[1][a>>1&7]};g.Tc=function(a,b){b=b>>1&7;this.a.R[1][b]=a;this.a.C[1][b]&=65295};g.ec=function(a){return this.a.R[1][(a>>1&7)+8]};g.Rc=function(a,b){b=(b>>1&7)+8;this.a.R[1][b]=a;this.a.C[1][b]&=65295};g.Ob=function(a){return this.a.C[0][a>>1&7]};g.Cc=function(a,b){this.a.C[0][b>>1&7]=a&65295};g.Mb=function(a){return this.a.C[0][(a>>1&7)+8]};g.Ac=function(a,b){this.a.C[0][(b>>1&7)+8]=a&65295}; +g.Nb=function(a){return this.a.R[0][a>>1&7]};g.Bc=function(a,b){b=b>>1&7;this.a.R[0][b]=a;this.a.C[0][b]&=65295};g.Lb=function(a){return this.a.R[0][(a>>1&7)+8]};g.zc=function(a,b){b=(b>>1&7)+8;this.a.R[0][b]=a;this.a.C[0][b]&=65295};g.nc=function(a){return this.a.C[3][a>>1&7]};g.$c=function(a,b){this.a.C[3][b>>1&7]=a&65295};g.lc=function(a){return this.a.C[3][(a>>1&7)+8]};g.Yc=function(a,b){this.a.C[3][(b>>1&7)+8]=a&65295};g.mc=function(a){return this.a.R[3][a>>1&7]}; +g.Zc=function(a,b){b=b>>1&7;this.a.R[3][b]=a;this.a.C[3][b]&=65295};g.kc=function(a){return this.a.R[3][(a>>1&7)+8]};g.Xc=function(a,b){b=(b>>1&7)+8;this.a.R[3][b]=a;this.a.C[3][b]&=65295};g.wa=function(a){a&=7;return this.a.u&2048?this.a.ua[a]:this.a.f[a]};g.ya=function(a,b){b&=7;this.a.u&2048?this.a.ua[b]=a:this.a.f[b]=a};g.Zb=function(){return this.a.u&49152?this.a.aa[0]:this.a.f[6]};g.Lc=function(a){this.a.u&49152?this.a.aa[0]=a:this.a.f[6]=a};g.bc=function(){return this.a.f[7]}; +g.Oc=function(a){this.a.f[7]=a};g.xa=function(a){a&=7;return this.a.u&2048?this.a.f[a]:this.a.ua[a]};g.za=function(a,b){b&=7;this.a.u&2048?this.a.f[b]=a:this.a.ua[b]=a};g.$b=function(){return 1==(this.a.u&49152)>>14?this.a.f[6]:this.a.aa[1]};g.Mc=function(a){1==(this.a.u&49152)>>14?this.a.f[6]=a:this.a.aa[1]=a};g.ac=function(){return 3==(this.a.u&49152)>>14?this.a.f[6]:this.a.aa[3]};g.Nc=function(a){3==(this.a.u&49152)>>14?this.a.f[6]=a:this.a.aa[3]=a};g.Kb=function(a){return this.a.ub[a-65504>>1]}; +g.yc=function(a,b){this.a.ub[b-65504>>1]=a};g.sb=function(a){return 65520==a?61183:0};g.zb=function(){};g.jc=function(){return 1};g.Wc=function(){};g.Jb=function(){return this.a.F};g.xc=function(){this.a.F=0};g.Qb=function(){return this.a.tb};g.Ec=function(a,b){b&1||(a&=255);this.a.tb=a};g.Vb=function(a){return a?this.a.gb:0};g.Hc=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.gb=a;b.l|=2};g.ic=function(a){return a?this.a.qa&65280:0};g.Vc=function(a){this.a.qa=a|255}; +g.Yb=function(){return Za(this.a)};g.Kc=function(a){Cb(this.a,a&-1809|Za(this.a)&1808);this.a.l|=128};g.yb=function(){}; +var I={},H=(I[62592]=[null,null,G.prototype.hc,G.prototype.Uc,"SISDR",1145],I[62608]=[null,null,G.prototype.fc,G.prototype.Sc,"SDSDR",1145],I[62624]=[null,null,G.prototype.gc,G.prototype.Tc,"SISAR",1145],I[62640]=[null,null,G.prototype.ec,G.prototype.Rc,"SDSAR",1145],I[62656]=[null,null,G.prototype.Ob,G.prototype.Cc,"KISDR",1145],I[62672]=[null,null,G.prototype.Mb,G.prototype.Ac,"KDSDR",1145],I[62688]=[null,null,G.prototype.Nb,G.prototype.Bc,"KISAR",1145],I[62704]=[null,null,G.prototype.Lb,G.prototype.zc, +"KDSAR",1145],I[62798]=[null,null,G.prototype.Ub,G.prototype.Gc,"MMR3",1145],I[65382]=[null,null,G.prototype.Pb,G.prototype.Dc,"LKS"],I[65400]=[null,null,G.prototype.Ib,G.prototype.wc,"CNSL"],I[65402]=[null,null,G.prototype.Rb,G.prototype.Fc,"MMR0",1145],I[65404]=[null,null,G.prototype.Sb,G.prototype.yb,"MMR1",1145],I[65406]=[null,null,G.prototype.Tb,G.prototype.yb,"MMR2",1145],I[65408]=[null,null,G.prototype.nc,G.prototype.$c,"UISDR",1145],I[65424]=[null,null,G.prototype.lc,G.prototype.Yc,"UDSDR", +1145],I[65440]=[null,null,G.prototype.mc,G.prototype.Zc,"UISAR",1145],I[65456]=[null,null,G.prototype.kc,G.prototype.Xc,"UDSAR",1145],I[65472]=[null,null,G.prototype.wa,G.prototype.ya,"R0SET0"],I[65473]=[null,null,G.prototype.wa,G.prototype.ya,"R1SET0"],I[65474]=[null,null,G.prototype.wa,G.prototype.ya,"R2SET0"],I[65475]=[null,null,G.prototype.wa,G.prototype.ya,"R3SET0"],I[65476]=[null,null,G.prototype.wa,G.prototype.ya,"R4SET0"],I[65477]=[null,null,G.prototype.wa,G.prototype.ya,"R5SET0"],I[65478]= +[null,null,G.prototype.Zb,G.prototype.Lc,"R6KERNEL"],I[65479]=[null,null,G.prototype.bc,G.prototype.Oc,"R7KERNEL"],I[65480]=[null,null,G.prototype.xa,G.prototype.za,"R0SET1",1145],I[65481]=[null,null,G.prototype.xa,G.prototype.za,"R1SET1",1145],I[65482]=[null,null,G.prototype.xa,G.prototype.za,"R2SET1",1145],I[65483]=[null,null,G.prototype.xa,G.prototype.za,"R3SET1",1145],I[65484]=[null,null,G.prototype.xa,G.prototype.za,"R4SET1",1145],I[65485]=[null,null,G.prototype.xa,G.prototype.za,"R5SET1",1145], +I[65486]=[null,null,G.prototype.$b,G.prototype.Mc,"R6SUPER",1145],I[65487]=[null,null,G.prototype.ac,G.prototype.Nc,"R6USER",1145],I[65504]=[null,null,G.prototype.Kb,G.prototype.yc,"CTRL",1170],I[65520]=[null,null,G.prototype.sb,G.prototype.zb,"LSIZE",1170],I[65522]=[null,null,G.prototype.sb,G.prototype.zb,"HSIZE",1170],I[65524]=[null,null,G.prototype.jc,G.prototype.Wc,"SYSID",1170],I[65526]=[null,null,G.prototype.Jb,G.prototype.xc,"CPUERR",1170],I[65528]=[null,null,G.prototype.Qb,G.prototype.Ec, +"MB",1170],I[65530]=[null,null,G.prototype.Vb,G.prototype.Hc,"PIR"],I[65532]=[null,null,G.prototype.ic,G.prototype.Vc,"SL"],I[65534]=[null,null,G.prototype.Yb,G.prototype.Kc,"PSW"],I);H[62594]=H[62592];H[62596]=H[62592];H[62598]=H[62592];H[62600]=H[62592];H[62602]=H[62592];H[62604]=H[62592];H[62606]=H[62592];H[62610]=H[62608];H[62612]=H[62608];H[62614]=H[62608];H[62616]=H[62608];H[62618]=H[62608];H[62620]=H[62608];H[62622]=H[62608];H[62626]=H[62624];H[62628]=H[62624];H[62630]=H[62624];H[62632]=H[62624]; +H[62634]=H[62624];H[62636]=H[62624];H[62638]=H[62624];H[62642]=H[62640];H[62644]=H[62640];H[62646]=H[62640];H[62648]=H[62640];H[62650]=H[62640];H[62652]=H[62640];H[62654]=H[62640];H[62658]=H[62656];H[62660]=H[62656];H[62662]=H[62656];H[62664]=H[62656];H[62666]=H[62656];H[62668]=H[62656];H[62670]=H[62656];H[62674]=H[62672];H[62676]=H[62672];H[62678]=H[62672];H[62680]=H[62672];H[62682]=H[62672];H[62684]=H[62672];H[62686]=H[62672];H[62690]=H[62688];H[62692]=H[62688];H[62694]=H[62688];H[62696]=H[62688]; +H[62698]=H[62688];H[62700]=H[62688];H[62702]=H[62688];H[62706]=H[62704];H[62708]=H[62704];H[62710]=H[62704];H[62712]=H[62704];H[62714]=H[62704];H[62716]=H[62704];H[62718]=H[62704];H[65410]=H[65408];H[65412]=H[65408];H[65414]=H[65408];H[65416]=H[65408];H[65418]=H[65408];H[65420]=H[65408];H[65422]=H[65408];H[65426]=H[65424];H[65428]=H[65424];H[65430]=H[65424];H[65432]=H[65424];H[65434]=H[65424];H[65436]=H[65424];H[65438]=H[65424];H[65442]=H[65440];H[65444]=H[65440];H[65446]=H[65440];H[65448]=H[65440]; +H[65450]=H[65440];H[65452]=H[65440];H[65454]=H[65440];H[65458]=H[65456];H[65460]=H[65456];H[65462]=H[65456];H[65464]=H[65456];H[65466]=H[65456];H[65468]=H[65456];H[65470]=H[65456];H[65506]=H[65504];H[65508]=H[65504];H[65510]=H[65504];H[65512]=H[65504];H[65514]=H[65504];H[65516]=H[65504];H[65518]=H[65504];q(function(){for(var a=A(document,"pdp11","device"),b=0;b>1),this.a=new Int32Array(this.b,0,d>>2),Jb(this,Fb?Kb:Lb);else{this.a=Array(d>>2);for(a=0;a>2),b=0;b>8,c)},N:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ba:function(a,b){a&1&&vb(this.m,b);b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},ha:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.la=!0},H:function(a,b){return this.I(a,b)}, +S:function(a,b){return this.W(a,b)},da:function(a,b,c){this.v||this.xb(a,b,c)},ja:function(a,b,c){this.v||this.ra(a,b,c)},D:function(a){return this.c[a]},J:function(a){return this.c[a]},O:function(a,b){a&1&&vb(this.m,b);return this.g.getUint16(a,!0)},X:function(a,b){a&1&&vb(this.m,b);return this.o[a>>1]},ca:function(a,b){this.c[a]=b;this.la=!0},ga:function(a,b){this.c[a]=b;this.la=!0},ia:function(a,b,c){a&1&&vb(this.m,c);this.g.setUint16(a,b,!0);this.la=!0},sa:function(a,b,c){a&1&&vb(this.m,c);this.o[a>> +1]=b;this.la=!0}};function eb(a,b,c){a.G=b;a.h=a.j=0;c&&((a.h=c.h)&&Nb(a,Ob,!1),(a.j=c.j)&&Pb(a,Ob,!1))}function Pb(a,b,c){c&&a.j||(a.ib=!a.v&&b[1]||a.A,a.Va=!a.v&&b[3]||a.B);if(c||void 0===c)a.xb=b[1]||a.A,a.ra=b[3]||a.B}function Nb(a,b,c){c&&a.h||(a.cb=b[0]||a.w,a.T=b[2]||a.s);if(c||void 0===c)a.I=b[0]||a.w,a.W=b[2]||a.s}function Jb(a,b){b||(b=Qb);Nb(a,b,void 0);Pb(a,b,void 0)} +var Qb=[],Mb=[E.prototype.N,E.prototype.ha,E.prototype.ba,E.prototype.ta],Ob=[E.prototype.H,E.prototype.da,E.prototype.S,E.prototype.ja];if(Ta)var Lb=[E.prototype.D,E.prototype.ca,E.prototype.O,E.prototype.ia],Kb=[E.prototype.J,E.prototype.ga,E.prototype.X,E.prototype.sa]; +function Rb(a,b){u.call(this,"CPU",a,Rb);var c=a.multiplier||1;this.Pa=a.cycles||b;this.da=c;this.Ya=Math.round(this.Pa/1E4)/100;this.ga=this.Ya*this.da;this.i.U=!1;this.i.vb=!1;this.i.Ca=a.autoStart;this.i.Oa=!1;this.Ma=this.ia=0;this.Na=a.csStart;this.ra=a.csInterval;this.sa=a.csStop;this.H=[];this.rb=this.sc.bind(this);B(this)}w(Rb);var Sb=["power","reset"];g=Rb.prototype; +g.ea=function(a,b,c,d){this.w=a;this.m=b;this.G=d;for(b=0;ba.ba/a.ga&&(b=1),a.da=b,b=a.Ya*a.da,a.ga!=b)){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var c=a.v.setSpeed;c&&(c.textContent=b);a.P("target speed: "+b)}a.J+=a.W;a.W=0;a.O=sa();a.ca=0;Yb(a)}function wb(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function yb(a,b,c){0<=b&&ba.H[b][0]&&(c=a.Pa*a.da/1E3*c|0,a.H[b][0]=c+$b(a))}function $b(a,b){var c=a.ha-=a.a;a.a=0;b&&(a.ha=0);return c} +g.sc=function(){if(this.i.U){this.$a>=this.Pa&&Yb(this,!0);this.Aa=0;this.La=sa();if(this.ca){var a=this.La-this.ca;a>this.pb&&(this.O+=a,this.O>this.La&&(this.O=this.La))}try{do{for(var b,c=this.i.Oa?1:this.Qa,d=this.H.length-1;0<=d;d--){var e=this.H[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.wb(b)}catch(n){if("number"!=typeof n)throw n;}b=$b(this,!0);this.Aa+=b;this.W+=b;a=b;if(this.i.Oa){var f=!1;this.Ma=this.Ma+this.lb()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.ra,f=!0);0<=this.sa&&this.sa<=Zb(this)&& +(this.ra=this.sa=-1,Vb(this),Xa(this),f=!0);f&&this.P(Zb(this)+" cycles: checksum="+ja(this.Ma))}for(var a=b,k=this.H.length-1;0<=k;k--){var l=this.H[k];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.ta-=b;if(0>=this.ta){this.ta+=this.Qa;15<=++this.qb&&(this.w&&this.w.fa(),this.qb=0);break}}while(this.i.U)}catch(n){Xa(this);this.w&&this.w.stop(sa(),Zb(this));b=n.stack||n.message;this.i.error=!0;this.L(b);return}if(this.i.U){b=setTimeout;c=this.rb;this.ca=sa();d=this.pb;this.Aa&&(d=Math.round(d* +this.Aa/this.Qa));d-=this.ca-this.La;if(e=this.ca-this.O)this.ba=Math.round(this.W/(10*e))/100,864E5<=e&&(this.J=0,Xb(this));if(0>d||this.bad&&(this.O-=d),d=0;this.$a+=this.Aa;this.ca+=d;b(c,d)}}};function Wb(a){var b;a.i.error?(a.P(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.U)a.P(a.toString()+" busy");else{Xb(a);a.i.U=!0;a.i.vb=!0;if(b=a.v.run)b.textContent="Halt";a.w&&a.w.start(a.O,Zb(a));setTimeout(a.rb,0)}}g.wb=function(){return 0}; +function Xa(a){if(a.i.U){$b(a);a.J+=a.W;a.W=0;a.i.U=!1;var b=a.v.run;b&&(b.textContent="Run");a.w&&a.w.stop(sa(),Zb(a))}a.i.complete=void 0}function ac(a){this.Fa=+a.model||1170;this.nb=a.addrReset||0;Rb.call(this,a,6666667);this.decode=1120==this.Fa?bc.bind(this):cc.bind(this);dc(this);this.S=0;this.X=null;this.i.complete=this.i.Bb=!1}w(ac,Rb);g=ac.prototype;g.reset=function(){this.status("model "+this.Fa);this.i.U&&Xa(this);dc(this);Ub(this);this.i.error=!1;this.parent.reset.call(this)}; +function dc(a){a.j=65536;a.g=32768;a.h=65535;a.o=32768;a.u=15;a.f=[0,0,0,0,0,0,0,a.nb];a.ua=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.s=0;a.Ja=0;a.Fb=[4,2,0,1];a.C=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.R=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Hb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.ub=[0,0,0,0,0,0,0,0];a.tb=0;a.l=0;a.B=a.D=0;a.c=a.b=a.Xa=0;a.ja=-1;ec(a)}function ec(a){a.qa=255;a.F=0;a.gb=0;a.A=0;a.oa=0;a.fb=0;a.pa=0;a.Da=0;a.Ia=0;a.Za=262143;a.Ka=253952;a.l|=2;a.m&&Ab(a)}function Ab(a){a.Da?(a.N=65536,a.I=a.Eb,a.T=a.pc,a.Va=a.bd,hb(a.m,a.pa&16?22:18)):(a.N=0,a.I=a.Db,a.T=a.oc,a.Va=a.ad,hb(a.m,16))}g.lb=function(){return 0}; +g.save=function(){var a=new K(this);a.set(0,[]);a.set(1,[this.J,this.da]);a.set(2,rb(this.m));return a.data()};g.restore=function(a){var b=a[1];this.J=b[1];Xb(this,b[3]);a:{b=this.m;a=a[2];var c;for(c=0;c>14&3;c=a.u>>14&3;a.s!=c&&(a.aa[c]=a.f[6],a.f[6]=a.aa[a.s]);a.u=b;a.l|=2}function N(a,b){a.l&128||(a.o=a.h=b,a.g=0)}function O(a,b,c){a.l&128||(a.o=a.h=a.j=b,a.g=c||0)}function gc(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^b)&(d^b))}function P(a,b){a.l&128||(a.o=a.h=a.j=b,a.g=a.o^a.j>>1)}function hc(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^d)&(d^b))} +function F(a,b,c){if(!a.S){var d=!1;0>a.ja?a.ja=Za(a):a.s||(b=4,d=!0);a.A&57344||(a.oa=63222,a.fb=b);a.s=0;var e=a.T(b|a.N),f=a.T(b+2&65535|a.N);Cb(a,f&-12289|a.ja>>2&12288);d&&(a.F|=4,a.f[6]=4);ic(a,a.ja);ic(a,a.f[7]);M(a,e);a.l&=-113;a.ja=-1;if(26!=c)throw b;}}function jc(a){var b=kc(a),c=kc(a)&-1793;a.u&49152&&(c=c&-225|a.u&63712);M(a,b);Cb(a,c);a.l&=-17} +function lc(a,b,c){var d,e,f,k=0;d=b>>13;a.pa&a.Fb[a.s]||(d&=7);e=a.C[a.s][d];f=(a.R[a.s][d]<<6)+(b&8191)&a.Za;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.pa&32&&(f=a.Hb[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Ka&&4186112>f&&(a.F|=32,F(a,4,12))}switch(e&7){case 1:k=4096;case 2:e|=128;c&4&&(k=8192);break;case 4:k=4096;case 5:c&4&&(k=4096);case 6:e|=c&4?192: +128;break;default:k=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(k|=16384):(b&8128)>(e>>2&8128)&&(k|=16384));a.C[a.s][d]=e;if(4194170!==f||a.s)a.Ia=a.s,a.Ja=d;k&&(k&57344&&(0<=a.ja&&(k|=128),a.A&57344||(a.A=a.A|k|a.Ia<<5|a.Ja<<1),F(a,168,16)),a.A&61440||!(4191360>f||4194239>>a.m].ib(b&a.g,c&255,b)}function kc(a){var b=a.T(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b} +function ic(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.oa=a.oa<<8|246);!a.s&&c<=a.qa&&4c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=k);e=a.T(e);e|=k;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.f[c]+f&65535;7!==c&&(e|=k);a.a-=4;break;case 5:f=-2;e=a.f[c]-2&65535;7!==c&&(e|=k);e=a.T(e)|k;a.a-= +8;break;case 6:return e=fc(a),e=e+a.f[c]&65535|k,a.a-=6,e;case 7:return e=fc(a),e=e+a.f[c]&65535,e=a.T(e|a.N)|k,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!k||a.A&57344||(a.oa=a.oa<<8|f<<3&248|c);6==c&&!a.s&&d&4&&0>=f&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32?(a.F|=4,a.f[6]=4,F(a,4,24)):(a.F|=8,a.l|=64));return e}g.Ta=function(a,b){this.Da?(this.S++,mc(this,lc(this,a,5),b),this.S--):this.m.Ta(a,b)};g.Db=function(a,b,c){return nc(this,a,b,c)};g.Eb=function(a,b,c){return lc(this,nc(this,a,b,c),c)}; +g.oc=function(a){return pb(this.m,a)};g.pc=function(a){return pb(this.m,lc(this,a,2))};g.ad=function(a,b){qb(this.m,a,b&65535)};g.bd=function(a,b){qb(this.m,lc(this,a,4),b)};function oc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=nc(a,b,d,2),c&65536||61440!==(a.u&61440)&&(d&=65535),a.s=a.u>>12&3,c=a.T(d|c&a.N),a.s=a.u>>14&3):c=6!=d||(a.u>>2&12288)===(a.u&12288)?a.f[d]:a.aa[a.u>>12&3];return c} +function pc(a,b,c,d){a.A&57344||(a.oa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=nc(a,b,e,4),c&65536||(e&=65535),a.s=a.u>>12&3,e=lc(a,e|c&65536,4),a.s=a.u>>14&3,qb(a.m,e,d)):6!=e||(a.u>>2&12288)===(a.u&12288)?a.f[e]=d:a.aa[a.u>>12&3]=d}function qc(a,b){b>>=6;var c=a.D=b&7;(b=a.B=(b&56)>>3)?(c=a.I(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function Q(a,b){b>>=6;var c=a.D=b&7;return(b=a.B=(b&56)>>3)?pb(a.m,a.I(b,c,2)):a.f[c]}function rc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return nc(a,b,c,8)} +function sc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.I(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function tc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?pb(a.m,a.I(b,c,2)):a.f[c]}function R(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.Xa=a.I(b,e,7),mc(a,e,d.call(a,c,ob(a.m,e)))):a.f[e]=a.f[e]&65280|d.call(a,c,a.f[e])}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.I(b,e,6),qb(a.m,e,d.call(a,c,pb(a.m,e)))):a.f[e]=d.call(a,c,a.f[e])} +function uc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?mc(a,a.I(b,e,5),c):a.f[e]=c?d&1?c<<24>>24&65535:a.f[e]&-256|c&255:a.f[e]&-256;return c}function vc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?qb(a.m,a.I(b,d,4),c):a.f[d]=c&65535;return c}function T(a,b,c){c&&(M(a,a.f[7]+(b<<24>>23)),a.a-=2);a.a-=3} +g.wb=function(a){this.i.complete=!0;this.i.Bb=!1;this.i.vb=!1;this.ha=this.a=a;do{if(this.l&&(this.l&112&&(this.l&32?F(this,168,28):this.l&64?F(this,4,30):this.l&16&&F(this,12,32),this.l&=-113),this.l&7))if(this.l&2){this.l&=-3;var b=160,c=(this.gb&224)>>5;if(a=this.X&&this.X.va>c?this.X:null)b=a.vc,c=a.va;c>(this.u&224)>>5?(this.l&4&&(this.f[7]=this.f[7]+2&65535,this.l&=-5),F(this,b,26),c=!0):c=!1;if(c&&a)if(c=this.X,c==a)this.X=a.next;else for(;c;){b=c.next;if(b==a){c.next=b.next;break}c=b}}else this.l& +1&&this.l++;this.A&57344||(this.oa=0,this.fb=this.f[7]);this.l=this.l&7|this.u&16;this.decode(fc(this))}while(0>1|b<<16;P(this,a);return a&65535}function Bc(a,b){a=b&2048|b>>1|b<<8;P(this,a<<8);return a&255}function Cc(a,b){a=b&~a;N(this,a);return a}function Dc(a,b){a=b&~a;N(this,a<<8);return a}function Ec(a,b){a|=b;N(this,a);return a}function Fc(a,b){a|=b;N(this,a<<8);return a}function Gc(a,b){a=~b|65536;O(this,a);return a&65535}function Hc(a,b){a=~b|256;O(this,a<<8);return a&255} +function Ic(a,b){a=b-a;this.l&128||(this.o=this.h=a,this.g=b&(b^a));return a&65535}function Jc(a,b){a=b-a;var c=a<<8;b<<=8;this.l&128||(this.o=this.h=c,this.g=b&(b^c));return a&255}function Kc(a,b){a=b+a;this.l&128||(this.o=this.h=a,this.g=a&(b^a));return a&65535}function Lc(a,b){a=b+a;var c=a<<8;this.l&128||(this.o=this.h=c,this.g=c&(b<<8^c));return a&255}function Mc(a,b){a=-b;O(this,a,a&b&32768);return a&65535}function Nc(a,b){a=-b;O(this,a<<8,(a&b&128)<<8);return a&255} +function Oc(a,b){a=b<<1|this.j>>16&1;P(this,a);return a&65535}function Pc(a,b){a=b<<1|this.j>>16&1;P(this,a<<8);return a&255}function Qc(a,b){a=(this.j&65536|b)>>1|b<<16;P(this,a);return a&65535}function Rc(a,b){a=((this.j&65536)>>8|b)>>1|b<<8;P(this,a<<8);return a&255}function Sc(a,b){var c=b-a;hc(this,c,a,b);return c&65535}function Tc(a,b){var c=b-a;hc(this,c<<8,a<<8,b<<8);return c&255}function Uc(a,b){this.l&128||(this.o=this.h=b&65280,this.g=this.j=0);return(b<<8|b>>8)&65535} +function Vc(a,b){a^=b;N(this,a);return a&65535}function Wc(a){S(this,a,Q(this,a),wc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Xc(a){var b=tc(this,a);a=a>>6&7;var c=this.f[a];c&32768&&(c|=4294901760);this.j=this.g=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.g=32768)}this.f[a]=c&65535;this.o=this.h=c;this.a-=(this.c?6:7)+b} +function Yc(a){var b=tc(this,a);a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&=63;if(b&32){b=64-b;32>b-1;this.j=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.f[a|1]=d&65535;this.o=d>>16;this.h=d>>16|d;this.a-=(this.c?6:7)+b}function Zc(a){T(this,a,!L(this))}function $c(a){T(this,a,L(this))} +function ad(a){S(this,a,Q(this,a),Cc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function bd(a){R(this,a,qc(this,a),Dc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function cd(a){S(this,a,Q(this,a),Ec);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function dd(a){R(this,a,qc(this,a),Fc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} +function ed(a){N(this,Q(this,a)&tc(this,a));this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function fd(a){N(this,(qc(this,a)&sc(this,a))<<8);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function gd(a){T(this,a,this.h&65535?0:4)}function hd(a){T(this,a,!this.ma()==!(this.g&32768))}function id(a){T(this,a,!!(this.h&65535)&&!this.ma()==!(this.g&32768))}function jd(a){T(this,a,!L(this)&&!!(this.h&65535))} +function kd(a){T(this,a,(this.h&65535?0:4)||!this.ma()!=!(this.g&32768))}function ld(a){T(this,a,L(this)||(this.h&65535?0:4))}function md(a){T(this,a,!this.ma()!=!(this.g&32768))}function nd(a){T(this,a,this.ma())}function od(a){T(this,a,!!(this.h&65535))}function pd(a){T(this,a,!this.ma())}function qd(){F(this,12,1);this.a-=5}function rd(a){T(this,a,!0)}function sd(a){T(this,a,!(this.g&32768))}function td(a){T(this,a,this.g&32768?2:0)} +function U(a){a&1&&(this.j=0);a&2&&(this.g=0);a&4&&(this.h=1);a&8&&(this.o=0);this.a-=5}function ud(a){var b=Q(this,a);a=tc(this,a);hc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function vd(a){var b=qc(this,a)<<8;a=sc(this,a)<<8;hc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)} +function wd(a){var b=tc(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.f[a]=d&65535,this.f[a|1]=c-d*b&65535,this.h=d>>16|d,this.o=d>>16):(this.g=32768,this.h=d>>15|d,this.o=c>>16,-1===b&&65534===this.f[a]&&(this.f[a]=this.f[a|1]=1));this.a-=53}else this.h=this.o=0,this.g=32768,this.j=65536,this.a-=7}function xd(){F(this,24,2);this.a-=25}function yd(){this.u&49152?(this.F|=128,F(this,4,3)):Xa(this);this.a-=7} +function zd(){F(this,16,4);this.a-=25}var Ad=[0,7,7,10,7,11,9,13];function V(a){var b=this.a;M(this,rc(this,a));this.a=b-Ad[this.c]}var Bd=[0,14,14,17,14,18,16,20];function Cd(a){var b=this.a,c=rc(this,a);a=a>>6&7;ic(this,this.f[a]);this.f[a]=this.f[7];M(this,c);this.a=b-Bd[this.c]}var Dd=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Ed(a){var b=Q(this,a),c=this.a;N(this,vc(this,a,b));this.a=c-Dd[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)} +function Fd(a){var b=qc(this,a);N(this,uc(this,a,b,1)<<8);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Gd=[7,13,13,17,14,18,17,21];function Hd(a){var b=tc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.l&128||(this.o=b>>16,this.h=this.o|b,this.g=0,this.j=-32768>b||32767>6;if(this.f[b]=this.f[b]-1&65535)M(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Nd(a){S(this,a,Q(this,a),Sc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} +function X(a){S(this,a,0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)}function Od(){F(this,28,5);this.a-=5}function Qd(){this.l&4||this.w.fa();this.l|=4;this.f[7]=this.f[7]+-2&65535;this.a-=3}function Rd(a){S(this,a,Q(this,a),Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){F(this,8,6)}function bc(a){Sd[a>>12].call(this,a)}function Td(a){Ud[a>>6&3].call(this,a)}function Vd(a){Wd[a>>6&3].call(this,a)}function Xd(a){Yd[a>>6&3].call(this,a)}function Zd(a){$d[a&15].call(this,a)} +function ae(a){be[a&15].call(this,a)}function ce(a){de[a>>6&3].call(this,a)}function ee(a){fe[a>>6&3].call(this,a)}function ge(a){he[a>>6&3].call(this,a)} +var Sd=[function(a){ie[a>>8&15].call(this,a)},Ed,ud,ed,ad,cd,Wc,Y,function(a){je[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Nd,Y],ie=[function(a){ke[a>>4&15].call(this,a)},rd,od,gd,hd,md,id,kd,Cd,Cd,Td,Vd,Xd,Y,Y,Y],Ud=[function(a){O(this,vc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Gc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Ic);this.a-=this.c?9:3+(7==this.b?2:0)}],Wd=[function(a){S(this,a,0,Mc); +this.a-=this.c?11:6},function(a){S(this,a,L(this)?1:0,wc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,L(this)?1:0,Sc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=tc(this,a);O(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Yd=[function(a){S(this,a,0,Qc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Oc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Ac);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,yc);this.a-=this.c?9:3+(7==this.b?2:0)}],ke=[function(a){le[a& +15].call(this,a)},Y,Y,Y,V,V,V,V,Ld,Y,Zd,ae,X,X,X,X],le=[yd,Qd,Kd,qd,zd,Jd,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],$d=[Id,function(){this.j=0;this.a-=5},function(){this.g=0;this.a-=5},U,function(){this.h=1;this.a-=5},U,U,U,function(){this.o=0;this.a-=5},U,U,U,U,U,U,U],be=[Id,function(){this.j=65536;this.a-=5},function(){this.g=32768;this.a-=5},W,function(){this.h=0;this.a-=5},W,W,W,function(){this.o=32768;this.a-=5},W,W,W,W,W,W,W],je=[pd,nd,jd,ld,sd,td,Zc,$c,xd,Od,ce,ee,ge,Y,Y,Y],de=[function(a){O(this,uc(this,a,0)); +this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],fe=[function(a){R(this,a,0,Nc);this.a-=this.c?11:6},function(a){R(this,a,L(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,L(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=sc(this,a);O(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}],he= +[function(a){R(this,a,0,Rc);this.a-=this.c?9+(this.Xa&1):3+(7==this.b?2:0)},function(a){R(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Bc);this.a-=this.c?9+(this.Xa&1):3+(7==this.b?2:0)},function(a){R(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}];function cc(a){me[a>>12].call(this,a)} +var me=[function(a){ne[a>>8&15].call(this,a)},Ed,ud,ed,ad,cd,Wc,function(a){oe[a>>8&15].call(this,a)},function(a){pe[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Nd,Y],ne=[function(a){qe[a>>4&15].call(this,a)},rd,od,gd,hd,md,id,kd,Cd,Cd,Td,Vd,Xd,function(a){re[a>>6&3].call(this,a)},Y,Y],re=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.T(a|this.N);M(this,this.f[5]);this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=oc(this,a,0);ic(this,a);N(this,a);this.a-=11},function(a){var b=kc(this),c=this.a; +pc(this,a,0,b);N(this,b);this.a=c-Gd[this.c]},function(a){N(this,vc(this,a,this.ma?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],qe=[function(a){se[a&15].call(this,a)},Y,Y,Y,V,V,V,V,Ld,function(a){a&8?(this.u&49152||(this.u=this.u&-2017|(a&7)<<5,this.l|=1),this.a-=5):F(this,8,6)},Zd,ae,X,X,X,X],se=[yd,Qd,Kd,qd,zd,Jd,function(){jc(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],oe=[Hd,Hd,wd,wd,Xc,Xc,Yc,Yc,Rd,Rd,Y,Y,Y,Y,Md,Md],pe=[pd,nd,jd,ld,sd,td,Zc,$c,xd,Od,ce,ee,ge,function(a){te[a>>6&3].call(this,a)},Y, +Y],te=[Y,function(a){a=oc(this,a,65536);ic(this,a);N(this,a);this.a-=11},function(a){var b=kc(this),c=this.a;pc(this,a,65536,b);N(this,b);this.a=c-Gd[this.c]},Y]; +function ue(a){u.call(this,"ROM",a,ue);this.Y=this.b=null;this.j=a.addr;this.c=a.size;this.h=a.alias;this.g=a.file;this.o=ka(this.g);if(this.g){a=this.g;var b=la(this.o);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;h(a,null,!0,function(a,b,f){f?c.L("Unable to load ROM resource (error "+f+": "+a+")"):(Pa(c.Ha,a,b),(a=ua(a,b))?(c.b=a.K,c.Y=a.Y):c.g=null,ve(c))})}}w(ue);ue.prototype.ea=function(a,b,c,d){this.m=b;this.a=c;this.G=d;ve(this)}; +ue.prototype.$=function(){this.Y&&(this.G&&this.G.a(this.id,this.j,this.c,this.Y),delete this.Y);return!0};ue.prototype.Z=function(){return!0}; +function ve(a){if(!Sa(a)){if(a.g){if(!a.b||!a.m)return;a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+ja(a.b.length,8,!0)+") does not match specified size ("+ja(a.c,8,!0)+")";a.i.error=!0;a.L(b)}else{b=a.j;if(kb(a.m,b,a.c,Ib)){var c;for(c=0;c=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=qa(b[0]);if(c!=this.Ga)return;b=qa(b[1]);if(this.s=Qa(b)){var d=this.s.exports;if(d){var e=d.connect;e&&e.call(this.s);if(this.A=d.receiveData){this.status(this.Ha+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.$=function(a,b){if(!b)if(this.mb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; +g.Z=function(a){return a?this.save():!0};g.reset=function(){Be(this)};g.save=function(){var a=new K(this);a.set(0,[]);return a.data()};g.restore=function(){return Be(this)};function Be(a){a.D=0;a.b=0;a.c=128;a.h=[];return!0}g.eb=function(a){if("number"==typeof a)this.h.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.H||8,c=a-this.o%a,this.H&&(b=" ".slice(0,c)));this.B&&!this.o&&c&&(b=String.fromCharCode(this.B)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.o+=c}else if(null!=this.j){if(10==a||1024<=this.j.length)this.P(this.j), +this.j="";10!=a&&(this.j+=String.fromCharCode(a))}this.c&=-129;yb(this.a,this.J,1)}};var Ce={},Ae=(Ce[65392]=[null,null,Z.prototype.dc,Z.prototype.Qc,"RCSR"],Ce[65394]=[null,null,Z.prototype.cc,Z.prototype.Pc,"RBUF"],Ce[65396]=[null,null,Z.prototype.rc,Z.prototype.dd,"XCSR"],Ce[65398]=[null,null,Z.prototype.qc,Z.prototype.cd,"XBUF"],Ce);q(function(){for(var a=A(document,"pdp11","serial"),b=0;b\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bHe){if(Je(d,this.s)){this.j=new K(this,"1.30.1","failsafe");Je(this.j)&&(Oe(this,d),a=2,Pe(this.j));this.j.set("timestamp",ta());Qe(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ne(d)){var f=d.get("code"),k=d.get("data");f&&("ok"==f?Je(d,k):("error"== +f&&"no machine state"!=k?(this.L("Error: "+k),"unable to verify user"==k&&(za("user",""),this.c=null)):this.P(f+": "+k),Pe(d),Je(d)?(c=Ne(d),e=!0):c=!1))}e&&Me(this,c?d:null)}else 2==a&&d.clear()}else Me(this);delete this.s;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.S=!0;this.i.M=!0;var d=this.v.power;d&&(d.textContent="Shutdown");this.a&&(Re(this,this.a,b,c,a),this.a.Ca());this.H&&(Oe(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; +function Oe(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;h("http://www.pcjs.org/api/v1/report",d,!0)}} +function Se(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new K(a,"1.30.1"),k=new K(a,"1.30.1","validate"),l=ta();k.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&Xa(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.M=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;nf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");h(e,null,!0,function(f,k,l){if(l||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(k=k.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],k);Ze(a,b,c)}})}else c(a,null)} +function $e(a,b,c,d){function e(a){if(void 0===l){var b=k&&A(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--We||Ga(!0));n=!1}var k,l,n=!0;We++;Oa[a]={};try{if(k=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],C=document.createElement("style");C.type="text/css";C.styleSheet?C.styleSheet.cssText=r:C.appendChild(document.createTextNode(r));t.appendChild(C)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?Xe(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(k.outerHTML=n,--We||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(n,k),--We||Ga(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Xe(b,a,d,!0,e,r):Ye(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Pd){f(Pd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return $e(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map From 13756e0c64f4e7b1004e6e5c1aa7af4dbdea417a Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Mon, 17 Oct 2016 11:18:18 -0700 Subject: [PATCH 03/32] Updated READMEs regarding RAM image support --- devices/pc8080/ram/README.md | 14 ++++++++------ devices/pc8080/rom/README.md | 11 +++++------ devices/pdp11/ram/README.md | 13 +++++++++++++ modules/pc8080/lib/rom.js | 1 - 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/devices/pc8080/ram/README.md b/devices/pc8080/ram/README.md index e5ebd5ab2a..95e98bc538 100644 --- a/devices/pc8080/ram/README.md +++ b/devices/pc8080/ram/README.md @@ -7,15 +7,17 @@ permalink: /devices/pc8080/ram/ 8080-Based RAM Images --------------------- -RAM images are added to machines by including a ** component in the machine XML configuration file -with the *file* attribute set to the filename of the image; eg: +RAM images are added to machines by including a `` component in the machine XML configuration file +with the *file* attribute set to the filename of the image, along with optional *load* and *exec* addresses; eg: ```xml - + ``` -The project currently contains the following 8080-based ROMs: +If no *load* address is specified, the `` component relies on the "load" property of the JSON-encoded RAM image; +otherwise, the starting RAM address is used. If no *exec* address is specified, the CPU will begin execution at its usual +reset address. + +The project currently contains the following 8080-based RAM images: * [8080 Exerciser Tests](exerciser/) -* [Space Invaders (1978)](invaders/) -* [DEC VT100 Terminal](vt100/) diff --git a/devices/pc8080/rom/README.md b/devices/pc8080/rom/README.md index 0288823ff5..dc09e6fd89 100644 --- a/devices/pc8080/rom/README.md +++ b/devices/pc8080/rom/README.md @@ -1,21 +1,20 @@ --- layout: page -title: 8080-Based ROMs +title: 8080-Based ROM Images permalink: /devices/pc8080/rom/ --- -8080-Based ROMs ---- +8080-Based ROM Images +--------------------- -ROMs are added to machines by including one *[ROM](/docs/pcx86/rom/)* component in the machine XML configuration file +ROMs are added to machines by including one `` component in the machine XML configuration file for each ROM in the machine; eg: ```xml ``` -The project currently contains the following 8080-based ROMs: +The project currently contains the following 8080-based ROM images: -* [8080 Exerciser Tests](exerciser/) * [Space Invaders (1978)](invaders/) * [DEC VT100 Terminal](vt100/) diff --git a/devices/pdp11/ram/README.md b/devices/pdp11/ram/README.md index 20cbf01d6e..e35d850f26 100644 --- a/devices/pdp11/ram/README.md +++ b/devices/pdp11/ram/README.md @@ -7,5 +7,18 @@ permalink: /devices/pdp11/ram/ PDP-11 RAM Images ----------------- +RAM images are added to machines by including a `` component in the machine XML configuration file +with the *file* attribute set to the filename of the image, along with optional *load* and *exec* addresses; eg: + +```xml + +``` + +If no *load* address is specified, the `` component relies on the "load" property of the JSON-encoded RAM image; +otherwise, the starting RAM address is used. If no *exec* address is specified, the CPU will begin execution at its usual +reset address. + +The project currently contains the following PDP-11 RAM images: + * [PDP-11 Boot Demo](bootdemo/) * [PDP-11 Bootstrap Loader](bootstrap/) diff --git a/modules/pc8080/lib/rom.js b/modules/pc8080/lib/rom.js index a25ecfcae6..c4e04132aa 100644 --- a/modules/pc8080/lib/rom.js +++ b/modules/pc8080/lib/rom.js @@ -65,7 +65,6 @@ function ROM8080(parmsROM) this.addrROM = parmsROM['addr']; this.sizeROM = parmsROM['size']; - /* * The new 'alias' property can now be EITHER a single physical address (like 'addr') OR an array of * physical addresses; eg: From 2d0f9148d0d53c66b469bac000a0f7b500e1b258 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Mon, 17 Oct 2016 15:19:01 -0700 Subject: [PATCH 04/32] Lots of tweaks in advance of PDPjs support for loading tape files --- apps/README.md | 1 + apps/c1p/README.md | 2 +- apps/c1p/all.xml | 2 +- apps/c1p/samples.xml | 2 +- apps/pdp11/README.md | 10 + .../pdp11/ram => apps/pdp11/boot}/README.md | 14 +- .../pdp11/boot/bootstrap/BOOTSTRAP-16KB.json | 0 .../pdp11/boot/bootstrap/BOOTSTRAP-16KB.lst | 0 .../pdp11/boot}/bootstrap/README.md | 11 +- .../pdp11/boot/test/BOOTTEST.json | 0 .../pdp11/boot/test/BOOTTEST.lst | 0 .../pdp11/boot/test/BOOTTEST.mac | 0 apps/pdp11/boot/test/README.md | 15 + apps/pdp11/boot/test/makefile | 11 + apps/pdp11/tapes/DEC-11-AJPB-PB.json | 639 ++++++++++++++++++ apps/pdp11/tapes/DEC-11-L2PC-PO.json | 14 + apps/pdp11/tapes/README.md | 27 + apps/pdp11/tapes/samples.xml | 13 + devices/c1p/machine/32kb/machine.xml | 4 +- .../c1p/machine/8kb/all/debugger/machine.xml | 4 +- devices/c1p/machine/8kb/all/machine.xml | 2 +- devices/c1p/machine/8kb/embed/machine.xml | 2 +- .../c1p/machine/8kb/large/debugger/local.xml | 4 +- .../machine/8kb/large/debugger/machine.xml | 2 +- devices/c1p/machine/8kb/large/machine.xml | 4 +- devices/c1p/machine/8kb/small/machine.xml | 2 +- .../machine/invaders/debugger/machine.xml | 2 +- devices/pc8080/machine/invaders/machine.xml | 2 +- .../pc8080/machine/vt100/debugger/machine.xml | 20 +- devices/pc8080/machine/vt100/machine.xml | 20 +- devices/pc8080/panel/left.xml | 34 +- devices/pc8080/panel/wide.xml | 36 +- devices/pcx86/chipset/5150-cga-max.xml | 2 +- devices/pcx86/chipset/att6300-cga-max.xml | 2 +- devices/pcx86/chipset/mpc1600-cga-max.xml | 2 +- devices/pcx86/chipset/z150-cga-max.xml | 2 +- .../pcx86/keyboard/us83-buttons-arrows.xml | 2 +- .../pcx86/keyboard/us83-buttons-functions.xml | 2 +- .../pcx86/keyboard/us83-buttons-minimal.xml | 2 +- .../pcx86/keyboard/us83-buttons-mpc1600.xml | 2 +- devices/pcx86/keyboard/us83-buttons-z150.xml | 2 +- devices/pcx86/keyboard/us83-softkeys.xml | 2 +- .../pcx86/keyboard/us84-buttons-arrows.xml | 2 +- .../pcx86/keyboard/us84-buttons-functions.xml | 2 +- devices/pcx86/keyboard/us84-buttons-test.xml | 2 +- .../5150/cga/384kb/softkbd/machine.xml | 2 +- .../machine/5150/cga/64kb/donkey/machine.xml | 2 +- .../pcx86/machine/5150/dual/64kb/machine.xml | 2 +- .../5150/mda/64kb/debugger/machine.xml | 2 +- .../pcx86/machine/5150/mda/64kb/machine.xml | 2 +- .../machine/5150/mda/64kb/softkbd/machine.xml | 2 +- .../machine/5160/cga/256kb/array/machine.xml | 2 +- .../5160/cga/256kb/demo/debugger/machine.xml | 2 +- .../machine/5160/cga/256kb/demo/machine.xml | 2 +- .../5160/cga/256kb/softkbd/machine.xml | 2 +- .../cga/256kb/win101/debugger/machine.xml | 2 +- .../machine/5160/cga/256kb/win101/machine.xml | 2 +- .../5160/cga/256kb/win101/softkbd/machine.xml | 2 +- .../5160/cga/512kb/win101/softkbd/machine.xml | 2 +- .../5160/cga/640kb/debugger/machine.xml | 2 +- .../pcx86/machine/5160/cga/640kb/machine.xml | 2 +- .../5160/cga/640kb/softkbd/machine.xml | 2 +- .../5160/ega/256kb/debugger/machine.xml | 2 +- .../5160/ega/640kb/debugger/machine.xml | 2 +- .../mda/256kb/fake188/debugger/machine.xml | 6 +- .../5160/mda/256kb/fake188/machine.xml | 8 +- .../machine/5160/mda/64kb/softkbd/machine.xml | 2 +- .../machine/5170/ega/1152kb/rev3/machine.xml | 2 +- .../pcx86/machine/5170/vga/2048kb/machine.xml | 2 +- .../pcx86/machine/5170/vga/4096kb/machine.xml | 2 +- .../machine/att/6300/cga/640kb/machine.xml | 2 +- .../machine/cdp/mpc1600/cga/640kb/machine.xml | 2 +- devices/pcx86/machine/custom/machine.xml | 2 +- .../machine/zenith/z150/cga/640kb/machine.xml | 2 +- devices/pcx86/panel/btpanel.xml | 12 +- devices/pcx86/panel/default.xml | 56 +- devices/pcx86/panel/wide.xml | 56 +- devices/pcx86/panel/wide386.xml | 68 +- devices/pcx86/video/cdp/cga/cdp-cga.xml | 6 +- .../ega/000412-001B/256kb-autolockfs.xml | 8 +- .../compaq/vga/109360-001/256kb-autolock.xml | 8 +- .../pcx86/video/ibm/cga/ibm-cga-keygrid.xml | 6 +- devices/pcx86/video/ibm/cga/ibm-cga-lock.xml | 10 +- devices/pcx86/video/ibm/cga/ibm-cga.xml | 6 +- .../ibm/ega/1984-09-13/128kb-autolock640.xml | 6 +- .../ibm/ega/1984-09-13/128kb-autolockfs.xml | 8 +- .../video/ibm/ega/1984-09-13/128kb-lockfs.xml | 10 +- .../ibm/ega/1984-09-13/256kb-autolock640.xml | 6 +- .../ibm/ega/1984-09-13/256kb-autolockfs.xml | 8 +- .../video/ibm/ega/1984-09-13/256kb-lockfs.xml | 10 +- .../pcx86/video/ibm/ega/1984-09-13/64kb.xml | 6 +- devices/pcx86/video/ibm/mda/ibm-mda-dual.xml | 6 +- devices/pcx86/video/ibm/mda/ibm-mda.xml | 6 +- .../ibm/vga/1986-10-27/256kb-autolockfs.xml | 8 +- .../video/ibm/vga/1986-10-27/256kb-lockfs.xml | 10 +- devices/pdp11/README.md | 1 - .../1120/bootstrap/debugger/machine.xml | 4 +- .../pdp11/machine/1120/bootstrap/machine.xml | 2 +- .../machine/1120/test/debugger/machine.xml | 2 +- devices/pdp11/machine/1120/test/machine.xml | 2 +- .../machine/1170/panel/debugger/machine.xml | 2 +- devices/pdp11/machine/1170/panel/machine.xml | 2 +- .../machine/1170/test/debugger/machine.xml | 2 +- devices/pdp11/machine/1170/test/machine.xml | 2 +- .../machine/1170/vt100/debugger/machine.xml | 2 +- devices/pdp11/machine/1170/vt100/machine.xml | 2 +- devices/pdp11/panel/1170/debugger/front.xml | 40 +- devices/pdp11/panel/1170/front.xml | 12 +- .../pdp11/panel/test/debugger/terminal.xml | 36 +- devices/pdp11/panel/test/terminal.xml | 8 +- devices/pdp11/ram/bootdemo/README.md | 15 - devices/pdp11/ram/bootdemo/makefile | 11 - disks/c1p/samples.xml | 2 +- disks/pcx86/compiled/library.xml | 6 +- disks/pcx86/compiled/samples.xml | 6 +- disks/pcx86/cpm/1.1b/machine.xml | 4 +- disks/pcx86/fixed/20mb/pcdos330-empty.xml | 2 +- disks/pcx86/games/infocom/disks.xml | 6 +- disks/pcx86/games/infocom/machine.xml | 2 +- .../games/infocom/zork1/debugger/machine.xml | 2 +- .../games/microsoft/adventure/machine.xml | 2 +- disks/pcx86/library.xml | 6 +- disks/pcx86/samples.xml | 6 +- disks/pcx86/windows/win10x.xml | 4 +- docs/pcx86/examples/components.xsl | 51 +- docs/pcx86/examples/example3a.xml | 56 +- modules/c1pjs/lib/outline.xml | 2 +- modules/c1pjs/templates/components.xsl | 8 +- modules/shared/templates/components.xsl | 51 +- .../Graphics_for_the_IBM_PC/demos/basic.xml | 6 +- .../demos/machine-debugger.xml | 6 +- .../Graphics_for_the_IBM_PC/demos/machine.xml | 6 +- versions/c1pjs/1.30.1/components.xsl | 8 +- versions/pc8080/1.30.1/components.xsl | 51 +- versions/pcx86/1.30.1/components.xsl | 51 +- versions/pdpjs/1.30.1/components.xsl | 51 +- 136 files changed, 1355 insertions(+), 498 deletions(-) create mode 100644 apps/pdp11/README.md rename {devices/pdp11/ram => apps/pdp11/boot}/README.md (59%) rename devices/pdp11/ram/bootstrap/bootstrap.json => apps/pdp11/boot/bootstrap/BOOTSTRAP-16KB.json (100%) rename devices/pdp11/ram/bootstrap/bootstrap.lst => apps/pdp11/boot/bootstrap/BOOTSTRAP-16KB.lst (100%) rename {devices/pdp11/ram => apps/pdp11/boot}/bootstrap/README.md (76%) rename devices/pdp11/ram/bootdemo/bootdemo.json => apps/pdp11/boot/test/BOOTTEST.json (100%) rename devices/pdp11/ram/bootdemo/bootdemo.lst => apps/pdp11/boot/test/BOOTTEST.lst (100%) rename devices/pdp11/ram/bootdemo/bootdemo.mac => apps/pdp11/boot/test/BOOTTEST.mac (100%) create mode 100644 apps/pdp11/boot/test/README.md create mode 100644 apps/pdp11/boot/test/makefile create mode 100644 apps/pdp11/tapes/DEC-11-AJPB-PB.json create mode 100644 apps/pdp11/tapes/DEC-11-L2PC-PO.json create mode 100644 apps/pdp11/tapes/README.md create mode 100644 apps/pdp11/tapes/samples.xml delete mode 100644 devices/pdp11/ram/bootdemo/README.md delete mode 100644 devices/pdp11/ram/bootdemo/makefile diff --git a/apps/README.md b/apps/README.md index 8ff75e04d7..7ae99a6ca4 100644 --- a/apps/README.md +++ b/apps/README.md @@ -10,6 +10,7 @@ Browse these PCjs Application Archives: - [IBM PC](pcx86/) - [Challenger 1P](c1p/) +- [PDP-11](pdp11/) --- diff --git a/apps/c1p/README.md b/apps/c1p/README.md index 57f83f566c..1ec0f2c3bc 100644 --- a/apps/c1p/README.md +++ b/apps/c1p/README.md @@ -12,7 +12,7 @@ Challenger 1P Applications - [BASIC](BASIC/) - [6502 Machine-Language](6502/) -To make it easy for our machines to load our applications, we provide the following **Serial** configuration files: +To make it easy for our C1Pjs machines to load these applications, we provide the following **Serial** configuration files: - [all.xml](all.xml) - [samples.xml](samples.xml) diff --git a/apps/c1p/all.xml b/apps/c1p/all.xml index 12a8067174..c48efa11b5 100644 --- a/apps/c1p/all.xml +++ b/apps/c1p/all.xml @@ -1,5 +1,5 @@ - + 6502 4K Assembler (JP) 6502 8K Assembler (JP) diff --git a/apps/c1p/samples.xml b/apps/c1p/samples.xml index 70d76a9df9..8f0fec3388 100644 --- a/apps/c1p/samples.xml +++ b/apps/c1p/samples.xml @@ -1,5 +1,5 @@ - + BASIC MATH CHECKING diff --git a/apps/pdp11/README.md b/apps/pdp11/README.md new file mode 100644 index 0000000000..e03b2c1902 --- /dev/null +++ b/apps/pdp11/README.md @@ -0,0 +1,10 @@ +--- +layout: page +title: PDP-11 Software +permalink: /apps/pdp11/ +--- + +PDP-11 Software +--------------- + +This is where we maintain selected PDP-11 software distributed on [Tape](tapes/). diff --git a/devices/pdp11/ram/README.md b/apps/pdp11/boot/README.md similarity index 59% rename from devices/pdp11/ram/README.md rename to apps/pdp11/boot/README.md index e35d850f26..53b327da34 100644 --- a/devices/pdp11/ram/README.md +++ b/apps/pdp11/boot/README.md @@ -1,17 +1,17 @@ --- layout: page -title: PDP-11 RAM Images -permalink: /devices/pdp11/ram/ +title: PDP-11 Boot Code +permalink: /apps/pdp11/boot/ --- -PDP-11 RAM Images ------------------ +PDP-11 Boot Code +---------------- -RAM images are added to machines by including a `` component in the machine XML configuration file +Boot code can be added to machines by including a `` component in the machine XML configuration file with the *file* attribute set to the filename of the image, along with optional *load* and *exec* addresses; eg: ```xml - + ``` If no *load* address is specified, the `` component relies on the "load" property of the JSON-encoded RAM image; @@ -20,5 +20,5 @@ reset address. The project currently contains the following PDP-11 RAM images: -* [PDP-11 Boot Demo](bootdemo/) +* [PDP-11 Boot Test](test/) * [PDP-11 Bootstrap Loader](bootstrap/) diff --git a/devices/pdp11/ram/bootstrap/bootstrap.json b/apps/pdp11/boot/bootstrap/BOOTSTRAP-16KB.json similarity index 100% rename from devices/pdp11/ram/bootstrap/bootstrap.json rename to apps/pdp11/boot/bootstrap/BOOTSTRAP-16KB.json diff --git a/devices/pdp11/ram/bootstrap/bootstrap.lst b/apps/pdp11/boot/bootstrap/BOOTSTRAP-16KB.lst similarity index 100% rename from devices/pdp11/ram/bootstrap/bootstrap.lst rename to apps/pdp11/boot/bootstrap/BOOTSTRAP-16KB.lst diff --git a/devices/pdp11/ram/bootstrap/README.md b/apps/pdp11/boot/bootstrap/README.md similarity index 76% rename from devices/pdp11/ram/bootstrap/README.md rename to apps/pdp11/boot/bootstrap/README.md index 2e2f0735ed..72d2349a7f 100644 --- a/devices/pdp11/ram/bootstrap/README.md +++ b/apps/pdp11/boot/bootstrap/README.md @@ -1,13 +1,13 @@ --- layout: page title: PDP-11 Bootstrap Loader -permalink: /devices/pdp11/ram/bootstrap/ +permalink: /apps/pdp11/boot/bootstrap/ --- PDP-11 Bootstrap Loader ----------------------- -The blog post "[PDP-11 Paper Tape BASIC](http://avitech.com.au/?page_id=709)" describes the *Bootstrap Loader*, +The blog post "[PDP-11 Paper Tape BASIC](http://www.avitech.com.au/ptb/ptb.html)" describes the *Bootstrap Loader*, a small program used to load the *Absolute Loader*, which in turn loads the *PDP-11 BASIC Paper Tape*. Here's what the *Bootstrap Loader* looks like: @@ -45,13 +45,12 @@ You can immediately disassemble the code using `u 037744 040000`: 037774: 000765 BR 037750 037776: 177550 .WORD 177550 -I also pasted the disassembled code into a listing file, [bootstrap.lst](bootstrap.lst), and ran [FileDump](/modules/filedump) -to produce a [bootstrap.json](bootstrap.json) that can be pre-loaded into any machine: +I also pasted the disassembled code into a listing file, [BOOTSTRAP-16KB.LST](BOOTSTRAP-16KB.lst), and ran [FileDump](/modules/filedump) +to produce a [BOOTSTRAP-16KB.JSON](BOOTSTRAP-16KB.json) that can be pre-loaded into any machine: - filedump --file=bootstrap.lst --format=octal --output=bootstrap.json + filedump --file=BOOTSTRAP-16KB.lst --format=octal --output=BOOTSTRAP-16KB.json To run the *Bootstrap Loader*, set the PC to 037744 and start the machine: r pc=037744 g - diff --git a/devices/pdp11/ram/bootdemo/bootdemo.json b/apps/pdp11/boot/test/BOOTTEST.json similarity index 100% rename from devices/pdp11/ram/bootdemo/bootdemo.json rename to apps/pdp11/boot/test/BOOTTEST.json diff --git a/devices/pdp11/ram/bootdemo/bootdemo.lst b/apps/pdp11/boot/test/BOOTTEST.lst similarity index 100% rename from devices/pdp11/ram/bootdemo/bootdemo.lst rename to apps/pdp11/boot/test/BOOTTEST.lst diff --git a/devices/pdp11/ram/bootdemo/bootdemo.mac b/apps/pdp11/boot/test/BOOTTEST.mac similarity index 100% rename from devices/pdp11/ram/bootdemo/bootdemo.mac rename to apps/pdp11/boot/test/BOOTTEST.mac diff --git a/apps/pdp11/boot/test/README.md b/apps/pdp11/boot/test/README.md new file mode 100644 index 0000000000..30be090cd0 --- /dev/null +++ b/apps/pdp11/boot/test/README.md @@ -0,0 +1,15 @@ +--- +layout: page +title: PDP-11 Boot Test +permalink: /apps/pdp11/boot/test/ +redirect_from: + - /devices/pdp11/rom/test/ +--- + +PDP-11 Boot Test +---------------- + +[BOOTTEST.MAC](BOOTTEST.mac) is based on [BOOT.MAC](http://skn.noip.me/pdp11/boot.mac) written by [Paul Nankervis](mailto:paulnank@hotmail.com)) + +[BOOTTEST.MAC](BOOTTEST.mac) was cross-assembled with [MACRO11](https://github.com/shattered/macro11) to produce [BOOTTEST.LST](BOOTTEST.lst), +which was then processed by [FileDump](/modules/filedump/) to produce [BOOTTEST.JSON](BOOTTEST.json). diff --git a/apps/pdp11/boot/test/makefile b/apps/pdp11/boot/test/makefile new file mode 100644 index 0000000000..6d6b10b83a --- /dev/null +++ b/apps/pdp11/boot/test/makefile @@ -0,0 +1,11 @@ +# +# Don't have macro11? Make yourself a copy from https://github.com/shattered/macro11 +# + +all: BOOTTEST.json + +BOOTTEST.lst: BOOTTEST.mac + macro11 BOOTTEST.mac -l BOOTTEST.lst + +BOOTTEST.json: BOOTTEST.lst + node ../../../../modules/filedump/bin/filedump --file=BOOTTEST.lst --format=octal --output=BOOTTEST.json --overwrite diff --git a/apps/pdp11/tapes/DEC-11-AJPB-PB.json b/apps/pdp11/tapes/DEC-11-AJPB-PB.json new file mode 100644 index 0000000000..ccc0dd96f8 --- /dev/null +++ b/apps/pdp11/tapes/DEC-11-AJPB-PB.json @@ -0,0 +1,639 @@ +{"words":[ +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0001 /*000001*/,0x0008 /*000010*/,0x0022 /*000042*/, +0x4107 /*040407*/,0x018D /*000615*/,0x2600 /*023000*/,0x0000 /*000000*/,0x7700 /*073400*/,0x2000 /*020000*/,0x0606 /*003006*/,0x0000 /*000000*/, +0x0A00 /*005000*/,0x0000 /*000000*/,0x0E00 /*007000*/,0x0000 /*000000*/,0x1200 /*011000*/,0x0000 /*000000*/,0x1600 /*013000*/,0x0000 /*000000*/, +0x1A00 /*015000*/,0x0000 /*000000*/,0x4000 /*040000*/,0x0000 /*000000*/,0x9C00 /*116000*/,0x0001 /*000001*/,0x000E /*000016*/,0x0028 /*000050*/, +0x002E /*000056*/,0x005F /*000137*/,0x002E /*000056*/,0x8935 /*104465*/,0x0150 /*000520*/,0x1600 /*013000*/,0x3000 /*030000*/,0x5E00 /*057000*/, +0x0002 /*000002*/,0x3600 /*033000*/,0x0000 /*000000*/,0x3A00 /*035000*/,0x0000 /*000000*/,0x3E00 /*037000*/,0x0000 /*000000*/,0xAB00 /*125400*/, +0x0001 /*000001*/,0x0034 /*000064*/,0x0040 /*000100*/,0x13B6 /*011666*/,0x0002 /*000002*/,0xE5CE /*162716*/,0x0002 /*000002*/,0x17A6 /*013646*/, +0x0C8E /*006216*/,0x8704 /*103404*/,0x0CCE /*006316*/,0x65CE /*062716*/,0x77AC /*073654*/,0x1787 /*013607*/,0x45CE /*042716*/,0xFF80 /*177600*/, +0x1582 /*012602*/,0x2097 /*020227*/,0x0040 /*000100*/,0x0609 /*003011*/,0x0A37 /*005067*/,0x1756 /*013526*/,0x15F7 /*012767*/,0x0001 /*000001*/, +0x1754 /*013524*/,0x1DC6 /*016706*/,0x0123 /*000443*/,0x3400 /*032000*/,0x6E00 /*067000*/,0x5A00 /*055000*/,0xE617 /*163027*/,0x5215 /*051025*/, +0x6608 /*063010*/,0x8110 /*100420*/,0xC010 /*140020*/,0x9B15 /*115425*/,0x6600 /*063000*/,0x0A10 /*005020*/,0x0289 /*001211*/,0xC089 /*140211*/, +0x9615 /*113025*/,0x3600 /*033000*/,0x0489 /*002211*/,0x0289 /*001211*/,0xD689 /*153211*/,0x010B /*000413*/,0x4E02 /*047002*/,0x8189 /*100611*/, +0x8715 /*103425*/,0x4500 /*042400*/,0x5252 /*051122*/,0x524F /*051117*/,0xC820 /*144040*/,0x0001 /*000001*/,0x0015 /*000025*/,0x009C /*000234*/, +0x2020 /*020040*/,0x2020 /*020040*/,0x2020 /*020040*/,0x5441 /*052101*/,0x4C20 /*046040*/,0x4E49 /*047111*/,0x2045 /*020105*/,0x9100 /*110400*/, +0x0001 /*000001*/,0x0034 /*000064*/,0x00AC /*000254*/,0x013E /*000476*/,0x017C /*000574*/,0x04CA /*002312*/,0x103C /*010074*/,0x1320 /*011440*/, +0x1346 /*011506*/,0x1376 /*011566*/,0x13EA /*011752*/,0x148E /*012216*/,0x1522 /*012442*/,0x1540 /*012500*/,0x1568 /*012550*/,0x15FE /*012776*/, +0x16C8 /*013310*/,0x16D4 /*013324*/,0x1676 /*013166*/,0x173E /*013476*/,0x1738 /*013470*/,0x19A6 /*014646*/,0x19E4 /*014744*/,0x19B6 /*014666*/, +0x195E /*014536*/,0x16EC /*013354*/,0x017D /*000575*/,0x3400 /*032000*/,0xDA00 /*155000*/,0xB200 /*131000*/,0x0E19 /*007031*/,0xFE1C /*177034*/, +0x1E13 /*017023*/,0x8614 /*103024*/,0x1801 /*014001*/,0x9401 /*112001*/,0xAE02 /*127002*/,0x9003 /*110003*/,0xA403 /*122003*/,0xA601 /*123001*/, +0x5603 /*053003*/,0x0804 /*004004*/,0x9E04 /*117004*/,0xE002 /*160002*/,0x1E02 /*017002*/,0xAE03 /*127003*/,0x8802 /*104002*/,0x5E03 /*057003*/, +0xFA03 /*175003*/,0xD403 /*152003*/,0xE603 /*163003*/,0x6404 /*062004*/,0x2604 /*023004*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0108 /*000410*/, +0x04F2 /*002362*/,0x097C /*004574*/,0x0500 /*002400*/,0x050C /*002414*/,0x0C08 /*006010*/,0x02C2 /*001302*/,0x02D2 /*001322*/,0x1E0A /*017012*/, +0x2097 /*020227*/,0x0030 /*000060*/,0x050D /*002415*/,0x2097 /*020227*/,0x0039 /*000071*/,0x0602 /*003002*/,0x00B4 /*000264*/,0x0087 /*000207*/, +0x2097 /*020227*/,0x0041 /*000101*/,0x0505 /*002405*/,0x2097 /*020227*/,0x005A /*000132*/,0x0602 /*003002*/,0x00AF /*000257*/,0x0167 /*000547*/, +0x3400 /*032000*/,0x3600 /*033000*/,0x8701 /*103401*/,0xAF00 /*127400*/,0xB200 /*131000*/,0x8700 /*103400*/,0x6600 /*063000*/,0xC110 /*140420*/, +0x7415 /*072025*/,0xF7FF /*173777*/,0x760B /*073013*/,0x0316 /*001426*/,0xC103 /*140403*/,0x781D /*074035*/,0x0E16 /*007026*/,0xB701 /*133401*/, +0x660A /*063012*/,0xD716 /*153426*/,0x622D /*061055*/,0x4816 /*044026*/,0x0500 /*002400*/,0xA607 /*123007*/,0x2610 /*023020*/,0x0210 /*001020*/, +0x8089 /*100211*/,0x3E15 /*037025*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0164 /*000544*/,0x1582 /*012602*/,0x0BF7 /*005767*/,0x1656 /*013126*/, +0x0306 /*001406*/,0x0AB7 /*005267*/,0x1658 /*013130*/,0x8BC9 /*105711*/,0x80FC /*100374*/,0x90B1 /*110261*/,0x0002 /*000002*/,0x1581 /*012601*/, +0x0087 /*000207*/,0x15F7 /*012767*/,0xFFFE /*177776*/,0x1638 /*013070*/,0x15C0 /*012700*/,0x0843 /*004103*/,0x9402 /*112002*/,0x03F8 /*001770*/, +0x8900 /*104400*/,0x01FC /*000774*/,0x0BF7 /*005767*/,0x162A /*013052*/,0x0129 /*000451*/,0x3400 /*032000*/,0x9200 /*111000*/,0x0A01 /*005001*/, +0xC302 /*141402*/,0x6025 /*060045*/,0x0517 /*002427*/,0xC286 /*141206*/,0x5C15 /*056025*/,0x0000 /*000000*/,0xC389 /*141611*/,0x020A /*001012*/, +0xC301 /*141401*/,0x6015 /*060025*/,0xF717 /*173427*/,0x100B /*010013*/,0x1F16 /*017426*/,0x3703 /*033403*/,0x0E0A /*007012*/,0xC216 /*141026*/, +0x0E1D /*007035*/,0x9716 /*113426*/,0x7020 /*070040*/,0x02FF /*001377*/,0x3702 /*033402*/,0xB00A /*130012*/,0x9DFD /*116775*/,0x0001 /*000001*/, +0x0034 /*000064*/,0x01C0 /*000700*/,0x8A8A /*105212*/,0x0AB7 /*005267*/,0x1602 /*013002*/,0x0BCA /*005712*/,0x8142 /*100502*/,0x8BCA /*105712*/, +0x80FA /*100372*/,0x1C82 /*016202*/,0x0002 /*000002*/,0x03EA /*001752*/,0x45C2 /*042702*/,0xFF80 /*177600*/,0xA097 /*120227*/,0x0010 /*000020*/, +0x032F /*001457*/,0xA5C2 /*122702*/,0x000D /*000015*/,0x0209 /*001011*/,0x8902 /*104402*/,0x15C2 /*012702*/,0x000A /*000012*/,0x010F /*000417*/, +0x0A37 /*005067*/,0x01EE /*000756*/,0x3400 /*032000*/,0xEE00 /*167000*/,0x8001 /*100001*/,0xC2FD /*141375*/,0x7015 /*070025*/,0xE6FF /*163377*/, +0xC201 /*141001*/,0x7FA5 /*077645*/,0xC900 /*144400*/,0xC203 /*141003*/,0x60A5 /*060245*/,0x2500 /*022400*/,0xC207 /*141007*/,0x15A5 /*012645*/, +0x1200 /*011000*/,0x0003 /*000003*/,0x9389 /*111611*/,0x9790 /*113620*/,0x0AA0 /*005240*/,0x0400 /*002000*/,0xD703 /*153403*/,0xAF20 /*127440*/, +0xC817 /*144027*/,0x1987 /*014607*/,0xC189 /*140611*/,0x8415 /*102025*/,0x0001 /*000001*/,0x0034 /*000064*/,0x021C /*001034*/,0x1760 /*013540*/, +0x15F7 /*012767*/,0x0001 /*000001*/,0x159C /*012634*/,0x55F7 /*052767*/,0x0040 /*000100*/,0xFD46 /*176506*/,0x0087 /*000207*/,0x95C2 /*112702*/, +0x005E /*000136*/,0x8900 /*104400*/,0x95C2 /*112702*/,0x0055 /*000125*/,0x8900 /*104400*/,0x8902 /*104402*/,0x01B4 /*000664*/,0x15F7 /*012767*/, +0x0040 /*000100*/,0xFD2E /*176456*/,0x0A26 /*005046*/,0x15E6 /*012746*/,0x062E /*003056*/,0x10A6 /*010246*/,0x01E3 /*000743*/,0x3400 /*032000*/, +0x4A00 /*045000*/,0x1302 /*011402*/,0x0701 /*003401*/,0x3789 /*033611*/,0x6A0A /*065012*/,0xF715 /*173425*/,0x0115 /*000425*/,0x6800 /*064000*/, +0xD615 /*153025*/,0x770B /*073413*/,0xEC00 /*166000*/,0xA603 /*123003*/,0xC210 /*141020*/,0x0E9D /*007235*/,0xC2FD /*141375*/,0x8045 /*100105*/, +0x97FF /*113777*/,0x10A0 /*010240*/,0x0200 /*001000*/,0x8203 /*101003*/,0x0215 /*001025*/,0xE600 /*163000*/,0x4A1D /*045035*/,0xF715 /*173425*/, +0x5115 /*050425*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0278 /*001170*/,0x0001 /*000001*/,0x1544 /*012504*/,0x15C2 /*012702*/,0x005E /*000136*/, +0x8900 /*104400*/,0x15C2 /*012702*/,0x0050 /*000120*/,0x8900 /*104400*/,0x15B7 /*012667*/,0x1534 /*012464*/,0x15F7 /*012767*/,0x0001 /*000001*/, +0x1530 /*012460*/,0x01ED /*000755*/,0x9442 /*112102*/,0xA5C2 /*122702*/,0x0020 /*000040*/,0x03FC /*001774*/,0x0087 /*000207*/,0xA257 /*121127*/, +0x003A /*000072*/,0x0304 /*001404*/,0xA457 /*122127*/,0x011C /*000434*/,0x3400 /*032000*/,0xA600 /*123000*/,0x0A02 /*005002*/,0xFA00 /*175000*/, +0xC102 /*140402*/,0x870A /*103412*/,0x3700 /*033400*/,0x060A /*003012*/,0xF715 /*173425*/,0x000B /*000013*/,0x0415 /*002025*/,0xC503 /*142403*/, +0xFA1D /*175035*/,0x3714 /*033424*/,0xF60A /*173012*/,0x8714 /*103424*/,0x4A00 /*045000*/,0x0089 /*000211*/,0x4A0A /*045012*/,0x4089 /*040211*/, +0x4A11 /*045021*/,0x4A89 /*045211*/,0x4A89 /*045211*/,0x8789 /*103611*/,0x8000 /*100000*/,0xFE10 /*177020*/,0x0001 /*000001*/,0x0034 /*000064*/, +0x02D4 /*001324*/,0x894A /*104512*/,0x10C0 /*010300*/,0x894A /*104512*/,0x1100 /*010400*/,0x894A /*104512*/,0x0087 /*000207*/,0x1126 /*010446*/, +0x1144 /*010504*/,0x65C4 /*062704*/,0x0014 /*000024*/,0x2106 /*020406*/,0x860C /*103014*/,0x0BF7 /*005767*/,0x14C6 /*012306*/,0x0206 /*001006*/, +0x1177 /*010567*/,0x14C0 /*012300*/,0x0A85 /*005205*/,0x0C85 /*006205*/,0x00A1 /*000241*/,0x0CC5 /*006305*/,0x1015 /*010025*/,0x1584 /*012604*/, +0x0102 /*000402*/,0x3400 /*032000*/,0x0200 /*001000*/,0x8703 /*103403*/,0x0100 /*000400*/,0xC089 /*140211*/,0x8012 /*100022*/,0x0443 /*002103*/, +0x1320 /*011440*/,0xC003 /*140003*/,0xFF45 /*177505*/,0xC01F /*140037*/,0x0025 /*000045*/,0x1240 /*011100*/,0xC302 /*141402*/,0x1065 /*010145*/, +0x0600 /*003000*/,0xC301 /*141401*/,0x0C0B /*006013*/,0x4603 /*043003*/,0xEF21 /*167441*/,0x6686 /*063206*/,0x2610 /*023020*/,0xC610 /*143020*/, +0xEB20 /*165440*/,0xC586 /*142606*/,0xAA20 /*125040*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0330 /*001460*/,0x87EA /*103752*/,0x0A03 /*005003*/, +0x1580 /*012600*/,0x1581 /*012601*/,0x0BC3 /*005703*/,0x0087 /*000207*/,0x0605 /*003005*/,0x65C3 /*062703*/,0x0002 /*000002*/,0x65C3 /*062703*/, +0x0004 /*000004*/,0x01F1 /*000761*/,0x0BC0 /*005700*/,0x0302 /*001402*/,0x0BD3 /*005723*/,0x01ED /*000755*/,0x9CC0 /*116300*/,0x0002 /*000002*/, +0x9CC1 /*116301*/,0x0003 /*000003*/,0x8952 /*104522*/,0x6003 /*060003*/,0x01F2 /*000762*/,0x01BC /*000674*/,0x3400 /*032000*/,0x5E00 /*057000*/, +0xC003 /*140003*/,0x0045 /*000105*/,0xC1FF /*140777*/,0x0045 /*000105*/,0x80FF /*100377*/,0x810A /*100412*/,0x260A /*023012*/,0xE611 /*163021*/, +0x0E10 /*007020*/,0x8389 /*101611*/,0x8415 /*102025*/,0xC115 /*140425*/,0x060B /*003013*/,0x1702 /*013402*/,0x0020 /*000040*/,0x0324 /*001444*/, +0x5886 /*054206*/,0xAF89 /*127611*/,0x8700 /*103400*/,0xB200 /*131000*/,0x8700 /*103400*/,0xC100 /*140400*/,0x4210 /*041020*/,0x2C10 /*026020*/, +0x0001 /*000001*/,0x0034 /*000064*/,0x038C /*001614*/,0x6101 /*060401*/,0x0104 /*000404*/,0x894E /*104516*/,0x1043 /*010103*/,0x1042 /*010102*/, +0x8942 /*104502*/,0x2045 /*020105*/,0x8602 /*103002*/,0x9453 /*112123*/,0x01FC /*000774*/,0x10C5 /*010305*/,0x1081 /*010201*/,0x0087 /*000207*/, +0xA457 /*122127*/,0x000A /*000012*/,0x02FD /*001375*/,0x0087 /*000207*/,0x1DC1 /*016701*/,0x1400 /*012000*/,0x8942 /*104502*/,0x2045 /*020105*/, +0x860B /*103013*/,0x1026 /*010046*/,0x015C /*000534*/,0x3400 /*032000*/,0xBA00 /*135000*/,0x6603 /*063003*/,0x0810 /*004020*/,0x8189 /*100611*/, +0x0215 /*001025*/,0x8010 /*100020*/,0x0215 /*001025*/,0x0220 /*001040*/,0xF403 /*172003*/,0xAF06 /*127406*/,0x8700 /*103400*/,0xAF00 /*127400*/, +0xB200 /*131000*/,0x8700 /*103400*/,0x3A00 /*035000*/,0x3889 /*034211*/,0x0E89 /*007211*/,0x0D03 /*006403*/,0xC285 /*141205*/,0xC045 /*140105*/, +0x84FF /*102377*/,0xC410 /*142020*/,0x8400 /*102000*/,0x840C /*102014*/,0x260C /*023014*/,0x0001 /*000001*/,0x0034 /*000064*/,0x03E8 /*001750*/, +0x893A /*104472*/,0x8938 /*104470*/,0x0202 /*001002*/,0x5084 /*050204*/,0x893A /*104472*/,0x00AF /*000257*/,0x0087 /*000207*/,0x00B2 /*000262*/, +0x0087 /*000207*/,0x0BC0 /*005700*/,0x05E6 /*002746*/,0x2017 /*020027*/,0x00FF /*000377*/,0x06E3 /*003343*/,0x00B4 /*000264*/,0x0087 /*000207*/, +0x893A /*104472*/,0x8938 /*104470*/,0x020D /*001015*/,0x0AC1 /*005301*/,0x8908 /*104410*/,0x1026 /*010046*/,0x893A /*104472*/,0x015A /*000532*/, +0x3400 /*032000*/,0x1600 /*013000*/,0xC204 /*141004*/,0x2C25 /*026045*/,0x0800 /*004000*/,0x0802 /*004002*/,0xC089 /*140211*/,0x050B /*002413*/, +0x0403 /*002003*/,0x8310 /*101420*/,0x8715 /*103425*/,0x2600 /*023000*/,0xF50A /*172412*/,0x0401 /*002001*/,0xFA0A /*175012*/,0xF701 /*173401*/, +0x0115 /*000425*/,0x8800 /*104000*/,0x7713 /*073423*/,0xE600 /*163000*/,0xF700 /*173400*/,0x0115 /*000425*/,0x7C00 /*076000*/,0xC513 /*142423*/, +0x6E1D /*067035*/,0xCA13 /*145023*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0444 /*002104*/,0x0A85 /*005205*/,0x0A37 /*005067*/,0x136C /*011554*/, +0x0A37 /*005067*/,0x1374 /*011564*/,0x0A37 /*005067*/,0x135E /*011536*/,0x0077 /*000167*/,0x019C /*000634*/,0x1144 /*010504*/,0x6004 /*060004*/, +0x1183 /*010603*/,0xE5C3 /*162703*/,0x0038 /*000070*/,0x20C4 /*020304*/,0x0087 /*000207*/,0x10E6 /*010346*/,0x895E /*104536*/,0x851F /*102437*/, +0xA257 /*121127*/,0x002C /*000054*/,0x0221 /*001041*/,0x09F7 /*004767*/,0x0145 /*000505*/,0x3400 /*032000*/,0x7200 /*071000*/,0x4204 /*041004*/, +0x3A00 /*035000*/,0x2689 /*023211*/,0x5E10 /*057020*/,0x1B89 /*015611*/,0x2084 /*020204*/,0x1A89 /*015211*/,0x8281 /*101201*/,0x8415 /*102025*/, +0x001F /*000037*/,0xC400 /*142000*/,0x0045 /*000105*/,0x04FF /*002377*/,0x1320 /*011440*/,0x6606 /*063006*/,0x8110 /*100420*/,0x2610 /*023020*/, +0x0010 /*000020*/,0x8011 /*100021*/,0x0E0A /*007012*/,0x8089 /*100211*/,0x5865 /*054145*/,0x8189 /*100611*/,0x0615 /*003025*/,0x0001 /*000001*/, +0x0034 /*000064*/,0x04A0 /*002240*/,0x6380 /*061600*/,0x0BD0 /*005720*/,0x1583 /*012603*/,0x0087 /*000207*/,0x09F7 /*004767*/,0x000A /*000012*/, +0x1002 /*010002*/,0x0A00 /*005000*/,0x01E8 /*000750*/,0x890B /*104413*/,0x890D /*104415*/,0x8920 /*104440*/,0x81FD /*100775*/,0x1F84 /*017604*/, +0x0002 /*000002*/,0x00C4 /*000304*/,0x45C4 /*042704*/,0xFF00 /*177400*/,0x2004 /*020004*/,0x06F6 /*003366*/,0x0087 /*000207*/,0xE5C6 /*162706*/, +0x0008 /*000010*/,0x011F /*000437*/,0x3400 /*032000*/,0xCE00 /*147000*/,0x8004 /*100004*/,0xC111 /*140421*/,0xDC1D /*156035*/,0x0A12 /*005022*/, +0x8089 /*100211*/,0xD011 /*150021*/,0x360B /*033013*/,0x078A /*003612*/,0x3600 /*033000*/,0xC689 /*143211*/,0x0865 /*004145*/,0x8700 /*103400*/, +0xA100 /*120400*/,0xC000 /*140000*/,0x260C /*023014*/,0xC010 /*140020*/,0x800C /*100014*/,0x8765 /*103545*/,0xC300 /*141400*/,0xC01D /*140035*/, +0x8312 /*101422*/,0x830A /*101412*/,0xA10C /*120414*/,0x1300 /*011400*/,0x0001 /*000001*/,0x0034 /*000064*/,0x04FC /*002374*/,0x0CC3 /*006303*/, +0x0087 /*000207*/,0x893A /*104472*/,0x1084 /*010204*/,0x00C4 /*000304*/,0x893A /*104472*/,0x5084 /*050204*/,0x0087 /*000207*/,0x10E6 /*010346*/, +0x10A6 /*010246*/,0x1DA6 /*016646*/,0x0004 /*000004*/,0x1136 /*010466*/,0x0006 /*000006*/,0x2146 /*020506*/,0x8601 /*103001*/,0x0087 /*000207*/, +0x8901 /*104401*/,0x894E /*104516*/,0x8946 /*104506*/,0x10C0 /*010300*/,0x0230 /*001060*/,0x1DC3 /*016703*/,0x01F5 /*000765*/,0x3400 /*032000*/, +0x2A00 /*025000*/,0x8605 /*103005*/,0xC412 /*142022*/,0x320B /*031013*/,0x4402 /*042002*/,0xF711 /*173421*/,0x8C0B /*106013*/,0x3E12 /*037022*/, +0xC202 /*141002*/,0x9794 /*113624*/,0x60A0 /*060240*/,0x1100 /*010400*/,0xC205 /*141005*/,0x60E5 /*060345*/,0xC000 /*140000*/,0x9615 /*113025*/, +0x8107 /*100407*/,0xC110 /*140420*/,0x040A /*002012*/,0x1705 /*013405*/,0x24A4 /*022244*/,0xFD00 /*176400*/,0xFA02 /*175002*/,0x0201 /*001001*/, +0x7C94 /*076224*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0558 /*002530*/,0xA097 /*120227*/,0x0024 /*000044*/,0x03EA /*001752*/,0x8900 /*104400*/, +0x01FA /*000772*/,0xA097 /*120227*/,0x000A /*000012*/,0x0302 /*001402*/,0x8900 /*104400*/,0x01E3 /*000743*/,0x8902 /*104402*/,0x20C4 /*020304*/, +0x87E0 /*103740*/,0x0BF7 /*005767*/,0x1248 /*011110*/,0x0306 /*001406*/,0x0A02 /*005002*/,0x15C1 /*012701*/,0x0040 /*000100*/,0x8900 /*104400*/, +0x0AC1 /*005301*/,0x02FD /*001375*/,0x0077 /*000167*/,0x01C8 /*000710*/,0x3400 /*032000*/,0x8600 /*103000*/,0xBE05 /*137005*/,0x2600 /*023000*/, +0x3C11 /*036021*/,0x8489 /*102211*/,0x4515 /*042425*/,0xCB20 /*145440*/,0x4382 /*041602*/,0x0010 /*000020*/,0x0721 /*003441*/,0x0007 /*000007*/, +0xE611 /*163021*/,0x3C10 /*036020*/,0x0689 /*003211*/,0x8302 /*101402*/,0x4515 /*042425*/,0xC520 /*142440*/,0x4282 /*041202*/,0x4489 /*042211*/, +0xC310 /*141420*/,0x8301 /*101401*/,0x4515 /*042425*/,0xBF20 /*137440*/,0xFA82 /*175202*/,0x8501 /*102401*/,0x0001 /*000001*/,0x0034 /*000064*/, +0x05B4 /*002664*/,0x0077 /*000167*/,0x0076 /*000166*/,0x894E /*104516*/,0x8946 /*104506*/,0x1DC1 /*016701*/,0x11F2 /*010762*/,0x0BC4 /*005704*/, +0x0201 /*001001*/,0x10C4 /*010304*/,0x1126 /*010446*/,0x10E6 /*010346*/,0x8942 /*104502*/,0x2045 /*020105*/,0x860A /*103012*/,0x1066 /*010146*/, +0x8908 /*104410*/,0x1581 /*012601*/,0x200E /*020016*/,0x05F8 /*002770*/,0x2036 /*020066*/,0x0002 /*000002*/,0x0602 /*003002*/,0x893E /*104476*/, +0x011C /*000434*/,0x3400 /*032000*/,0xE200 /*161000*/,0xF405 /*172005*/,0x9601 /*113001*/,0x3125 /*030445*/,0x4E01 /*047001*/,0x3C89 /*036211*/, +0x0B89 /*005611*/,0x3E02 /*037002*/,0x0989 /*004611*/,0xF701 /*173401*/,0x9E09 /*117011*/,0xC2FC /*141374*/,0x3AA5 /*035245*/,0x5000 /*050000*/, +0xC203 /*141003*/,0x0AA5 /*005245*/,0x0100 /*000400*/,0x0703 /*003403*/,0xF789 /*173611*/,0xAC0B /*126013*/,0x2511 /*022421*/,0xF703 /*173403*/, +0xA80B /*124013*/,0x0311 /*001421*/,0x4D03 /*046403*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0610 /*003020*/,0x2077 /*020167*/,0x11A2 /*010642*/, +0x0101 /*000401*/,0x2045 /*020105*/,0x864C /*103114*/,0x09F7 /*004767*/,0x0D02 /*006402*/,0x1037 /*010067*/,0x118E /*010616*/,0x013C /*000474*/, +0x1DC5 /*016705*/,0x118A /*010612*/,0x0A85 /*005205*/,0x0A37 /*005067*/,0x1188 /*010610*/,0x1DC6 /*016706*/,0x1198 /*010630*/,0x0A37 /*005067*/, +0x1186 /*010606*/,0x0A37 /*005067*/,0x1188 /*010610*/,0x0A37 /*005067*/,0x1172 /*010562*/,0x0118 /*000430*/,0x3400 /*032000*/,0x3E00 /*037000*/, +0xF706 /*173406*/,0x0115 /*000425*/,0x7C00 /*076000*/,0x0211 /*001021*/,0x3789 /*033611*/,0x740A /*072012*/,0x3711 /*033421*/,0x660A /*063012*/, +0xC011 /*140021*/,0x3E15 /*037025*/,0x3608 /*033010*/,0x3789 /*033611*/,0x6A0A /*065012*/,0x4011 /*040021*/,0x3A89 /*035211*/,0x9789 /*113611*/, +0x0A20 /*005040*/,0xF900 /*174400*/,0xC103 /*140403*/,0x6015 /*060025*/,0x0817 /*004027*/,0x5789 /*053611*/,0x0AA2 /*005242*/,0x2400 /*022000*/, +0x0001 /*000001*/,0x0034 /*000064*/,0x066C /*003154*/,0x03BD /*001675*/,0x1043 /*010103*/,0x15C0 /*012700*/,0x0796 /*003626*/,0x0A02 /*005002*/, +0xA4D7 /*122327*/,0x0020 /*000040*/,0x03FD /*001775*/,0xA8D0 /*124320*/,0x0205 /*001005*/,0x0A83 /*005203*/,0xA217 /*121027*/,0x0024 /*000044*/, +0x0318 /*001430*/,0x01F6 /*000766*/,0xA417 /*122027*/,0x0024 /*000044*/,0x02FD /*001375*/,0xA217 /*121027*/,0x0024 /*000044*/,0x0310 /*001420*/, +0x1043 /*010103*/,0x0A82 /*005202*/,0x0185 /*000605*/,0x3400 /*032000*/,0x9A00 /*115000*/,0xED06 /*166406*/,0xF701 /*173401*/,0x220B /*021013*/, +0xC611 /*143021*/,0xF702 /*173402*/,0xEE09 /*167011*/,0xC2FB /*141373*/,0x60E5 /*060345*/,0x0500 /*002400*/,0xC281 /*141201*/,0x7A0C /*075014*/, +0x1000 /*010000*/,0x7708 /*073410*/,0x9000 /*110000*/,0x0301 /*001401*/,0xC289 /*141211*/,0x6065 /*060145*/,0x9100 /*110400*/,0x4490 /*042220*/, +0xD110 /*150420*/,0xD792 /*153622*/,0x0AA4 /*005244*/,0xFC00 /*176000*/,0xF402 /*172002*/,0x0001 /*000001*/,0x0034 /*000064*/,0x06C8 /*003310*/, +0xA097 /*120227*/,0x0063 /*000143*/,0x0335 /*001465*/,0x2097 /*020227*/,0x006D /*000155*/,0x021D /*001035*/,0x1101 /*010401*/,0x893A /*104472*/, +0xA097 /*120227*/,0x0054 /*000124*/,0x0212 /*001022*/,0x893A /*104472*/,0xA097 /*120227*/,0x0048 /*000110*/,0x020E /*001016*/,0x893A /*104472*/, +0xA097 /*120227*/,0x0045 /*000105*/,0x020A /*001012*/,0x893A /*104472*/,0xA097 /*120227*/,0x004E /*000116*/,0x0206 /*001006*/,0x0187 /*000607*/, +0x3400 /*032000*/,0xF600 /*173000*/,0x3A06 /*035006*/,0xC189 /*140611*/,0x440A /*042012*/,0x3810 /*034020*/,0x0789 /*003611*/,0xB603 /*133003*/, +0x9701 /*113401*/,0x0AA0 /*005240*/,0x1800 /*014000*/,0x9703 /*113403*/,0x3AA0 /*035240*/,0xE400 /*162000*/,0x0102 /*000402*/,0x5711 /*053421*/, +0x22A2 /*021242*/,0x0800 /*004000*/,0x5703 /*053403*/,0x3AA4 /*035244*/,0xED00 /*166400*/,0x5703 /*053403*/,0x0AA8 /*005250*/,0x0A00 /*005000*/, +0x8103 /*100403*/,0xBA0A /*135012*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0724 /*003444*/,0x01F5 /*000765*/,0x0A81 /*005201*/,0xA257 /*121127*/, +0x0022 /*000042*/,0x03FA /*001772*/,0xA257 /*121127*/,0x000A /*000012*/,0x02F9 /*001371*/,0x8933 /*104463*/,0x0A81 /*005201*/,0x1043 /*010103*/, +0x15C1 /*012701*/,0x1760 /*013540*/,0x893A /*104472*/,0x8938 /*104470*/,0x0302 /*001402*/,0x0AC1 /*005301*/,0x01AA /*000652*/,0x894E /*104516*/, +0x15C1 /*012701*/,0x1760 /*013540*/,0xE043 /*160103*/,0x10E6 /*010346*/,0x01E6 /*000746*/,0x3400 /*032000*/,0x5200 /*051000*/,0x0807 /*004007*/, +0xC089 /*140211*/,0x1E0B /*017013*/,0x1703 /*013403*/,0xFF20 /*177440*/,0x1B1F /*015437*/,0x3C06 /*036006*/,0x0189 /*000611*/,0x3E02 /*037002*/, +0x8389 /*101611*/,0x4E15 /*047025*/,0xC089 /*140211*/,0x4410 /*042020*/,0x0389 /*001611*/,0x0186 /*000606*/,0x0589 /*002611*/,0x0860 /*004140*/, +0x4501 /*042401*/,0xFC20 /*176040*/,0x4286 /*041206*/,0x0511 /*002421*/,0x4460 /*042140*/,0xA411 /*122021*/,0x3398 /*031630*/,0x0001 /*000001*/, +0x0034 /*000064*/,0x0780 /*003600*/,0x2042 /*020102*/,0x83FD /*101775*/,0x15C2 /*012702*/,0x1760 /*013540*/,0x9291 /*111221*/,0xA497 /*122227*/, +0x000A /*000012*/,0x02FC /*001374*/,0x0077 /*000167*/,0xFE70 /*177160*/,0x8921 /*104441*/,0x494C /*044514*/,0x5453 /*052123*/,0x4C24 /*046044*/, +0x5445 /*052105*/,0x5224 /*051044*/,0x4145 /*040505*/,0x2444 /*022104*/,0x4552 /*042522*/,0x244D /*022115*/,0x5552 /*052522*/,0x244E /*022116*/, +0x4552 /*042522*/,0x01BE /*000676*/,0x3400 /*032000*/,0xAE00 /*127000*/,0x5307 /*051407*/,0x4F54 /*047524*/,0x4552 /*042522*/,0x5224 /*051044*/, +0x5445 /*052105*/,0x5255 /*051125*/,0x244E /*022116*/,0x4144 /*040504*/,0x4154 /*040524*/,0x4424 /*042044*/,0x4D49 /*046511*/,0x4424 /*042044*/, +0x4C45 /*046105*/,0x5445 /*052105*/,0x2445 /*022105*/,0x5250 /*051120*/,0x4E49 /*047111*/,0x2454 /*022124*/,0x4F47 /*047507*/,0x5553 /*052523*/, +0x2442 /*022102*/,0x4F47 /*047507*/,0x4F54 /*047524*/,0x9C24 /*116044*/,0x0001 /*000001*/,0x0034 /*000064*/,0x07DC /*003734*/,0x4649 /*043111*/, +0x4624 /*043044*/,0x524F /*051117*/,0x4E24 /*047044*/,0x5845 /*054105*/,0x2454 /*022124*/,0x4E49 /*047111*/,0x5550 /*052520*/,0x2454 /*022124*/, +0x4153 /*040523*/,0x4556 /*042526*/,0x5324 /*051444*/,0x4F54 /*047524*/,0x2450 /*022120*/,0x4E45 /*047105*/,0x2444 /*022104*/,0x4544 /*042504*/, +0x2446 /*022106*/,0x4C4F /*046117*/,0x2444 /*022104*/,0x4152 /*040522*/,0x444E /*042116*/,0x4D4F /*046517*/,0x01A4 /*000644*/,0x0B00 /*005400*/, +0x0A00 /*005000*/,0x4908 /*044410*/,0x455A /*042532*/,0x2424 /*022044*/,0x01B2 /*000662*/,0x3400 /*032000*/,0x1000 /*010000*/,0x2008 /*020010*/, +0x3805 /*034005*/,0x680C /*064014*/,0xD40E /*152016*/,0x680C /*064014*/,0xA008 /*120010*/,0xA608 /*123010*/,0xD408 /*152010*/,0xDA0C /*155014*/, +0xB808 /*134010*/,0x1805 /*014005*/,0x840D /*102015*/,0x8E08 /*107010*/,0x6008 /*060010*/,0xC20C /*141014*/,0x900E /*110016*/,0xB00F /*130017*/, +0x300D /*030015*/,0x4604 /*043004*/,0x4608 /*043010*/,0x3C08 /*036010*/,0x3A09 /*035011*/,0x2C04 /*026004*/,0x4110 /*040420*/,0x0001 /*000001*/, +0x0034 /*000064*/,0x083E /*004076*/,0x4552 /*042522*/,0x4441 /*042101*/,0x0D59 /*006531*/,0x000A /*000012*/,0x8902 /*104402*/,0x15C0 /*012700*/, +0x085A /*004132*/,0x8936 /*104466*/,0x8904 /*104404*/,0x8902 /*104402*/,0x0A37 /*005067*/,0x0F5A /*007532*/,0x0077 /*000167*/,0xFDF0 /*176760*/, +0x5453 /*052123*/,0x504F /*050117*/,0x4120 /*040440*/,0x2054 /*020124*/,0x494C /*044514*/,0x454E /*042516*/,0x0020 /*000040*/,0x894E /*104516*/, +0x0A37 /*005067*/,0x01D7 /*000727*/,0x3400 /*032000*/,0x6C00 /*066000*/,0x4208 /*041010*/,0xC10F /*140417*/,0x401D /*040035*/,0x810F /*100417*/, +0xF70A /*173412*/,0x4715 /*043425*/,0xAE17 /*127027*/,0xF707 /*173407*/,0x0115 /*000425*/,0x3400 /*032000*/,0x770F /*073417*/,0x8000 /*100000*/, +0xC0FD /*140375*/,0x281D /*024035*/,0xC00F /*140017*/,0x0055 /*000125*/,0x4A20 /*045040*/,0x0889 /*004211*/,0x3C89 /*036211*/,0x0589 /*002611*/, +0xF702 /*173402*/,0x0115 /*000425*/,0x1A00 /*015000*/,0x3C0F /*036017*/,0x0001 /*000001*/,0x0034 /*000064*/,0x089A /*004232*/,0x0077 /*000167*/, +0xFD7C /*176574*/,0x8905 /*104405*/,0x0A37 /*005067*/,0x0F14 /*007424*/,0x0147 /*000507*/,0x0A26 /*005046*/,0x15C4 /*012704*/,0x2000 /*020000*/, +0x895C /*104534*/,0x0314 /*001424*/,0x15C0 /*012700*/,0x1FFF /*017777*/,0x894C /*104514*/,0x0303 /*001403*/,0x10CE /*010316*/,0x0BD3 /*005723*/, +0x01FB /*000773*/,0x1583 /*012603*/,0x030B /*001413*/,0x12C0 /*011300*/,0x4100 /*040400*/,0x0A80 /*005200*/,0x0111 /*000421*/,0x3400 /*032000*/, +0xC800 /*144000*/,0xC408 /*142010*/,0x0215 /*001025*/,0x5000 /*050000*/,0x1789 /*013611*/,0x0120 /*000440*/,0xBF00 /*137400*/,0x3C03 /*036003*/, +0xDE89 /*157211*/,0x0901 /*004401*/,0x6489 /*062211*/,0x1789 /*013611*/,0x2D85 /*026605*/,0x2602 /*023002*/,0x3A11 /*035021*/,0x9789 /*113611*/, +0x2820 /*024040*/,0x1100 /*010400*/,0x0802 /*004002*/,0x5489 /*052211*/,0x0E89 /*007211*/,0x2602 /*023002*/,0xCE10 /*147020*/,0x3A00 /*035000*/, +0x2E89 /*027211*/,0x0001 /*000001*/,0x0034 /*000064*/,0x08F6 /*004366*/,0xA097 /*120227*/,0x002C /*000054*/,0x0205 /*001005*/,0x8908 /*104410*/, +0x8954 /*104524*/,0x0205 /*001005*/,0x500E /*050016*/,0x893A /*104472*/,0x2097 /*020227*/,0x0029 /*000051*/,0x0301 /*001401*/,0x891B /*104433*/, +0x1582 /*012602*/,0x1580 /*012600*/,0x1066 /*010146*/,0x894A /*104512*/,0x1080 /*010200*/,0x894A /*104512*/,0x1081 /*010201*/,0x00C1 /*000301*/, +0x8952 /*104522*/,0x850B /*102413*/,0x8944 /*104504*/,0x01E3 /*000743*/,0x3400 /*032000*/,0x2400 /*022000*/,0x0909 /*004411*/,0x0587 /*002607*/, +0x8160 /*100540*/,0x3A15 /*035025*/,0x9789 /*113611*/,0x2C20 /*026040*/,0xD400 /*152000*/,0xC103 /*140403*/,0x770A /*073412*/,0xBA00 /*135000*/, +0x1DFC /*016774*/,0x2389 /*021611*/,0x6089 /*060211*/,0x1789 /*013611*/,0x4E21 /*047041*/,0x1B46 /*015506*/,0x3A02 /*035002*/,0x3889 /*034211*/, +0x1889 /*014211*/,0x1703 /*013403*/,0xC285 /*141205*/,0x0055 /*000125*/,0x8060 /*100140*/,0x3810 /*034020*/,0x0001 /*000001*/,0x0034 /*000064*/, +0x0952 /*004522*/,0x894A /*104512*/,0x893A /*104472*/,0x2097 /*020227*/,0x0028 /*000050*/,0x020F /*001017*/,0x8956 /*104526*/,0x850D /*102415*/, +0x1100 /*010400*/,0x894A /*104512*/,0x2097 /*020227*/,0x0029 /*000051*/,0x0208 /*001010*/,0x893A /*104472*/,0x2097 /*020227*/,0x003D /*000075*/, +0x0204 /*001004*/,0x1040 /*010100*/,0x894A /*104512*/,0x8948 /*104510*/,0x01DD /*000735*/,0x891F /*104437*/,0x0A00 /*005000*/,0x894A /*104512*/, +0x0197 /*000627*/,0x3400 /*032000*/,0x8000 /*100000*/,0xE609 /*163011*/,0xFF15 /*177425*/,0x44FF /*042377*/,0x7189 /*070611*/,0x3A87 /*035207*/, +0x9789 /*113611*/,0x2B20 /*025440*/,0x0800 /*004000*/,0x9703 /*113403*/,0x2D20 /*026440*/,0x0600 /*003000*/,0x8002 /*100002*/,0x0210 /*001020*/, +0x030A /*001412*/,0x040A /*002012*/,0x080A /*004012*/,0x3A01 /*035001*/,0x9789 /*113611*/,0x2820 /*024040*/,0x0700 /*003400*/,0x2602 /*023002*/, +0xB50A /*132412*/,0xFE0A /*177012*/,0x91FF /*110777*/,0x0001 /*000001*/,0x0034 /*000064*/,0x09AE /*004656*/,0x01EA /*000752*/,0x8962 /*104542*/, +0x1026 /*010046*/,0x01F5 /*000765*/,0x0AC1 /*005301*/,0x1966 /*014546*/,0x09F7 /*004767*/,0x00C2 /*000302*/,0x1595 /*012625*/,0x10A6 /*010246*/, +0x893A /*104472*/,0x15C0 /*012700*/,0x0A73 /*005163*/,0xA802 /*124002*/,0x0307 /*001407*/,0x2017 /*020027*/,0x0A6D /*005155*/,0x82FB /*101373*/, +0x0A00 /*005000*/,0x0AC1 /*005301*/,0x1582 /*012602*/,0x0102 /*000402*/,0x1080 /*010200*/,0x01B3 /*000663*/,0x3400 /*032000*/,0xDC00 /*156000*/, +0xFC09 /*176011*/,0xCE01 /*147001*/,0x2F0B /*027413*/,0x6607 /*063007*/,0xC110 /*140420*/,0x7315 /*071425*/,0x400A /*040012*/,0xFEA8 /*177250*/, +0x8102 /*100402*/,0x550C /*052414*/,0xC110 /*140420*/,0x7315 /*071425*/,0x760A /*073012*/,0x02A8 /*001250*/,0xFD00 /*176400*/,0x8102 /*100402*/, +0x550C /*052414*/,0x8110 /*100420*/,0x6515 /*062425*/,0xD629 /*153051*/,0x1505 /*012405*/,0xC010 /*140020*/,0x7315 /*071425*/,0x5D0A /*056412*/, +0x0001 /*000001*/,0x0034 /*000064*/,0x0A0A /*005012*/,0xA80E /*124016*/,0x02FE /*001376*/,0xE5C0 /*162700*/,0x0A6E /*005156*/,0x0CC0 /*006300*/, +0x65C0 /*062700*/,0x0A74 /*005164*/,0x1015 /*010025*/,0x0BD6 /*005726*/,0x1180 /*010600*/,0x8962 /*104542*/,0x1066 /*010146*/,0x1181 /*010601*/, +0x0BD1 /*005721*/,0x1942 /*014502*/,0x1966 /*014546*/,0x09FA /*004772*/,0x0000 /*000000*/,0x1580 /*012600*/,0x1581 /*012601*/,0x65C6 /*062706*/, +0x0006 /*000006*/,0x1582 /*012602*/,0x013F /*000477*/,0x3400 /*032000*/,0x3800 /*034000*/,0x830A /*101412*/,0x8415 /*102025*/,0xCE15 /*147025*/, +0xD10B /*150413*/,0x1706 /*013406*/,0x2920 /*024440*/,0x0800 /*004000*/,0xC003 /*140003*/,0xB30B /*131413*/,0xE506 /*162406*/,0x030B /*001413*/, +0xD602 /*153002*/,0xAF0B /*127413*/,0x8700 /*103400*/,0x0F00 /*007400*/,0xE589 /*162611*/,0x030B /*001413*/,0xD602 /*153002*/,0xB20B /*131013*/, +0x8700 /*103400*/,0xCE00 /*147000*/,0xFB0B /*175413*/,0xD605 /*153005*/,0x4C0B /*046013*/,0x0001 /*000001*/,0x0013 /*000023*/,0x0A66 /*005146*/, +0x0AD5 /*005325*/,0x01AB /*000653*/,0x8901 /*104401*/,0x2900 /*024400*/,0x2D2B /*026453*/,0x2F2A /*027452*/,0x2F5E /*027536*/,0x0001 /*000001*/, +0x0034 /*000064*/,0x0A74 /*005164*/,0x148E /*012216*/,0x1522 /*012442*/,0x15FE /*012776*/,0x1568 /*012550*/,0x17CC /*013714*/,0x8937 /*104467*/, +0x1066 /*010146*/,0x893A /*104472*/,0x8938 /*104470*/,0x850F /*102417*/,0x0212 /*001022*/,0x1581 /*012601*/,0xE5C6 /*162706*/,0x0006 /*000006*/, +0x1180 /*010600*/,0x8906 /*104406*/,0x85F4 /*102764*/,0x1582 /*012602*/,0x1583 /*012603*/,0x1584 /*012604*/,0x0087 /*000207*/,0x1402 /*012002*/, +0x1403 /*012003*/,0x0143 /*000503*/,0x3400 /*032000*/,0xA200 /*121000*/,0x040A /*002012*/,0x8714 /*103424*/,0x9700 /*113400*/,0x2E20 /*027040*/, +0xEF00 /*167400*/,0x3903 /*034403*/,0x9701 /*113401*/,0x4620 /*043040*/,0x3B00 /*035400*/,0xE603 /*163003*/,0xC015 /*140025*/,0x82FF /*101377*/, +0x8043 /*100103*/,0x5810 /*054020*/,0x5889 /*054211*/,0x3A89 /*035211*/,0x3889 /*034211*/,0x2C89 /*026211*/,0x2B85 /*025605*/,0x8203 /*101003*/, +0x8043 /*100103*/,0x5860 /*054140*/,0x5889 /*054211*/,0x9989 /*114611*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0AD0 /*005320*/,0x893A /*104472*/, +0x8938 /*104470*/,0x8524 /*102444*/,0x0323 /*001443*/,0x4582 /*042602*/,0x6080 /*060200*/,0x15C3 /*012703*/,0x0BDC /*005734*/,0x24C0 /*022300*/, +0x0304 /*001404*/,0x20D7 /*020327*/,0x0BF2 /*005762*/,0x87FB /*103773*/,0x016A /*000552*/,0x893A /*104472*/,0x2097 /*020227*/,0x0028 /*000050*/, +0x0266 /*001146*/,0x1CE6 /*016346*/,0x0014 /*000024*/,0x895E /*104536*/,0x8413 /*102023*/,0x1580 /*012600*/,0x0139 /*000471*/,0x3400 /*032000*/, +0xFE00 /*177000*/,0x620A /*061012*/,0x0289 /*001211*/,0x8010 /*100020*/,0x6611 /*063021*/,0x0110 /*000420*/,0xC610 /*143020*/,0x06E5 /*003345*/, +0x8000 /*100000*/,0xCA11 /*145021*/,0x8209 /*101011*/,0x8315 /*101425*/,0x8415 /*102025*/,0x8115 /*100425*/,0xC615 /*143025*/,0x0865 /*004145*/, +0x8700 /*103400*/,0xD600 /*153000*/,0x4F0B /*047413*/,0x9701 /*113401*/,0x8423 /*102043*/,0x1E1E /*017036*/,0xE902 /*164402*/,0x3A01 /*035001*/, +0x2789 /*023611*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0B2C /*005454*/,0x2097 /*020227*/,0x004E /*000116*/,0x0247 /*001107*/,0x893A /*104472*/, +0x8938 /*104470*/,0x8544 /*102504*/,0x0343 /*001503*/,0x895C /*104534*/,0x0347 /*001507*/,0x0A00 /*005000*/,0x55C2 /*052702*/,0x6000 /*060000*/, +0x1084 /*010204*/,0x894C /*104514*/,0x033B /*001473*/,0x0BD3 /*005723*/,0x14C4 /*012304*/,0x14E6 /*012346*/,0x895C /*104534*/,0x894C /*104514*/, +0x0217 /*001027*/,0x893A /*104472*/,0x2097 /*020227*/,0x015F /*000537*/,0x3400 /*032000*/,0x5A00 /*055000*/,0x280B /*024013*/,0xE000 /*160000*/, +0x2602 /*023002*/,0x5E11 /*057021*/,0x0189 /*000611*/,0x0F85 /*007605*/,0x8089 /*100211*/,0x6615 /*063025*/,0x4A11 /*045021*/,0x0089 /*000211*/, +0x4A0A /*045012*/,0x6889 /*064211*/,0x6689 /*063211*/,0x8110 /*100420*/,0x041D /*002035*/,0x5E00 /*057000*/,0xF489 /*172211*/,0x8185 /*100605*/, +0x8515 /*102425*/,0x9615 /*113025*/,0x8725 /*103445*/,0xD300 /*151400*/,0x8024 /*100044*/,0xFD15 /*176425*/,0x0001 /*000001*/,0x0034 /*000064*/, +0x0B88 /*005610*/,0x14E6 /*012346*/,0x14E6 /*012346*/,0x14E6 /*012346*/,0x10E6 /*010346*/,0x1026 /*010046*/,0x893A /*104472*/,0x2097 /*020227*/, +0x0028 /*000050*/,0x021E /*001036*/,0x895E /*104536*/,0x84E3 /*102343*/,0x1040 /*010100*/,0x1D81 /*016601*/,0x0002 /*000002*/,0x1121 /*010441*/, +0x10E1 /*010341*/,0x10A1 /*010241*/,0x1581 /*012601*/,0x1026 /*010046*/,0x895E /*104536*/,0x85D9 /*102731*/,0x1581 /*012601*/,0x1580 /*012600*/, +0x010E /*000416*/,0x3400 /*032000*/,0xB600 /*133000*/,0xA00B /*120013*/,0xA015 /*120025*/,0xA015 /*120025*/,0xD615 /*153025*/,0x870B /*103413*/, +0x8100 /*100400*/,0x6415 /*062025*/,0x0389 /*001611*/,0x0285 /*001205*/,0x7703 /*073403*/,0xD200 /*151000*/,0xF7FE /*173776*/,0x0289 /*001211*/, +0x030A /*001412*/,0x040A /*002012*/,0x870A /*103412*/,0xC600 /*143000*/,0x0A65 /*005145*/,0xF200 /*171000*/,0x8201 /*101001*/,0x5F61 /*057541*/, +0xEE11 /*167021*/,0xC007 /*140007*/,0xB21C /*131034*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0BE4 /*005744*/,0x3EE3 /*037343*/,0x056B /*002553*/, +0x62A6 /*061246*/,0x2F9C /*027634*/,0x5D1C /*056434*/,0x613A /*060472*/,0x1CB6 /*016266*/,0x1A10 /*015020*/,0x1A72 /*015162*/,0x1AB0 /*015260*/, +0x18B0 /*014260*/,0x17F4 /*013764*/,0x1538 /*012470*/,0x1BA2 /*015642*/,0x16FA /*013372*/,0x1004 /*010004*/,0x1552 /*012522*/,0x1E84 /*017204*/, +0x8956 /*104526*/,0x8512 /*102422*/,0x0AC1 /*005301*/,0x0A00 /*005000*/,0x895C /*104534*/,0x01D8 /*000730*/,0x3400 /*032000*/,0x1200 /*011000*/, +0x0D0C /*006414*/,0x4C03 /*046003*/,0x0B89 /*005611*/,0x9703 /*113403*/,0xDC23 /*156043*/,0x0B08 /*005410*/,0xD303 /*151403*/,0x570B /*053413*/, +0x28A2 /*024242*/,0x0600 /*003000*/,0x8102 /*100402*/,0x260A /*023012*/,0x5A11 /*055021*/,0x8489 /*102211*/,0xC015 /*140025*/,0x870B /*103413*/, +0xD300 /*151400*/,0xC00B /*140013*/,0x8710 /*103420*/,0x6400 /*062000*/,0x1089 /*010211*/,0x0285 /*001205*/,0x0002 /*000002*/,0xAB11 /*125421*/, +0x0001 /*000001*/,0x0034 /*000064*/,0x0C40 /*006100*/,0x8966 /*104546*/,0x1026 /*010046*/,0x893A /*104472*/,0x2097 /*020227*/,0x003D /*000075*/, +0x0208 /*001010*/,0x895E /*104536*/,0x8507 /*102407*/,0x1580 /*012600*/,0x1090 /*010220*/,0x10D0 /*010320*/,0x1110 /*010420*/,0x0077 /*000167*/, +0xF996 /*174626*/,0x8911 /*104421*/,0x890F /*104417*/,0x895E /*104536*/,0x85FD /*102775*/,0x8962 /*104542*/,0x8960 /*104540*/,0x2097 /*020227*/, +0x003E /*000076*/,0x0305 /*001405*/,0x017E /*000576*/,0x3400 /*032000*/,0x6E00 /*067000*/,0x970C /*113414*/,0x3D20 /*036440*/,0x0200 /*001000*/, +0xC103 /*140403*/,0x040A /*002012*/,0xC28A /*141212*/,0xA815 /*124025*/,0x120C /*011014*/,0x0421 /*002041*/,0x9703 /*113403*/,0xB420 /*132040*/, +0xFB0C /*175414*/,0x1387 /*011607*/,0xC289 /*141211*/,0x5665 /*053145*/,0xC2F3 /*141363*/,0xC20C /*141014*/,0xB465 /*132145*/,0xA60C /*123014*/, +0x5E10 /*057020*/,0xE389 /*161611*/,0x6685 /*063205*/,0x8110 /*100420*/,0x7311 /*071421*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0C9C /*006234*/, +0x2451 /*022121*/,0x8962 /*104542*/,0x1180 /*010600*/,0x891C /*104434*/,0x007E /*000176*/,0x0008 /*000010*/,0x3C3E /*036076*/,0x3C3D /*036075*/, +0x3C00 /*036000*/,0x3E3D /*037075*/,0x3E00 /*037000*/,0x3D00 /*036400*/,0x0213 /*001023*/,0x0109 /*000411*/,0x0711 /*003421*/,0x0107 /*000407*/, +0x050F /*002417*/,0x0105 /*000405*/,0x040D /*002015*/,0x0103 /*000403*/,0x060B /*003013*/,0x0101 /*000401*/,0x0309 /*001411*/,0x0155 /*000525*/, +0x3400 /*032000*/,0xCA00 /*145000*/,0xC60C /*143014*/,0x0665 /*003145*/,0x8100 /*100400*/,0xC615 /*143025*/,0x0865 /*004145*/,0x4200 /*041000*/, +0xC189 /*140611*/,0x770A /*073412*/,0x1600 /*013000*/,0xC6F9 /*143371*/,0x0665 /*003145*/,0x8100 /*100400*/,0xC615 /*143025*/,0x0865 /*004145*/, +0x6000 /*060000*/,0x1789 /*013611*/,0x4821 /*044041*/,0x0D54 /*006524*/,0x6002 /*060002*/,0x1789 /*013611*/,0x4E21 /*047041*/,0x1045 /*010105*/, +0x3A02 /*035002*/,0x9089 /*110211*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0CF8 /*006370*/,0x0AC1 /*005301*/,0x8938 /*104470*/,0x8503 /*102403*/, +0x020B /*001013*/,0x0077 /*000167*/,0xFB8A /*175612*/,0x0077 /*000167*/,0xF994 /*174624*/,0x2117 /*020427*/,0x474F /*043517*/,0x0204 /*001004*/, +0x8960 /*104540*/,0x2117 /*020427*/,0x544F /*052117*/,0x03F5 /*001765*/,0x8915 /*104425*/,0x0A26 /*005046*/,0x15C0 /*012700*/,0x001C /*000034*/, +0x8944 /*104504*/,0x8746 /*103506*/,0x893A /*104472*/,0xA097 /*120227*/,0x01C3 /*000703*/,0x3400 /*032000*/,0x2600 /*023000*/,0x2C0D /*026015*/, +0x1C00 /*016000*/,0x9703 /*113403*/,0x3BA0 /*035640*/,0x2A00 /*025000*/,0x9703 /*113403*/,0x22A0 /*021240*/,0x2B00 /*025400*/,0x9703 /*113403*/, +0x3AA0 /*035240*/,0x3300 /*031400*/,0x9703 /*113403*/,0x0AA0 /*005240*/,0x3000 /*030000*/,0xCE03 /*147003*/,0x220B /*021013*/,0xC105 /*140405*/, +0x5E0A /*057012*/,0x1F89 /*017611*/,0x6685 /*063205*/,0xF710 /*173420*/,0x7C09 /*076011*/,0x8004 /*100004*/,0x2F11 /*027421*/,0x0001 /*000001*/, +0x0034 /*000064*/,0x0D54 /*006524*/,0x8936 /*104466*/,0x65C6 /*062706*/,0x0014 /*000024*/,0x1581 /*012601*/,0x15CE /*012716*/,0xFFFF /*177777*/, +0x01DC /*000734*/,0x1DC0 /*016700*/,0x0A54 /*005124*/,0x2017 /*020027*/,0x0038 /*000070*/,0x0502 /*002402*/,0x8902 /*104402*/,0x010A /*000412*/, +0x0B00 /*005400*/,0x0603 /*003003*/,0x65C0 /*062700*/,0x000E /*000016*/,0x01FC /*000774*/,0x95C2 /*112702*/,0x0020 /*000040*/,0x8900 /*104400*/, +0x0AC0 /*005300*/,0x01C3 /*000703*/,0x3400 /*032000*/,0x8200 /*101000*/,0xFD0D /*176415*/,0xCE06 /*147006*/,0x0115 /*000425*/,0xC800 /*144000*/, +0x1701 /*013401*/,0x4289 /*041211*/,0x0094 /*000224*/,0x5789 /*053611*/,0x0AA2 /*005242*/,0xFA00 /*175000*/,0x5703 /*053403*/,0x22A2 /*021242*/, +0xF800 /*174000*/,0x8102 /*100402*/,0x0E0A /*007012*/,0xBC0A /*136012*/,0xD601 /*153001*/,0x010B /*000413*/,0x0206 /*001006*/,0xC189 /*140611*/, +0x770A /*073412*/,0x4400 /*042000*/,0x01F8 /*000770*/,0x9D89 /*116611*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0DB0 /*006660*/,0x0A26 /*005046*/, +0x09F7 /*004767*/,0x0080 /*000200*/,0x8401 /*102001*/,0x8925 /*104445*/,0x0A26 /*005046*/,0x1066 /*010146*/,0x15C2 /*012702*/,0x003F /*000077*/, +0x8900 /*104400*/,0x8940 /*104500*/,0x09F7 /*004767*/,0x002A /*000052*/,0x8512 /*102422*/,0x060D /*003015*/,0x050E /*002416*/,0x1581 /*012601*/, +0x0BD6 /*005726*/,0x0BD6 /*005726*/,0x02FE /*001376*/,0x0AC1 /*005301*/,0x0BF7 /*005767*/,0x09D6 /*004726*/,0x0132 /*000462*/,0x3400 /*032000*/, +0xDE00 /*157000*/,0x020D /*001015*/,0xC902 /*144402*/,0x0A95 /*005225*/,0x7700 /*073400*/,0x0A00 /*005000*/,0xF5F8 /*172770*/,0xE989 /*164611*/, +0xF301 /*171401*/,0xE789 /*163611*/,0xF101 /*170401*/,0xE589 /*162611*/,0x8401 /*102001*/,0x1411 /*012021*/,0xD425 /*152045*/,0xD40B /*152013*/, +0xFE0B /*177013*/,0xE402 /*162002*/,0x000B /*000013*/,0x1519 /*012431*/,0x2603 /*023003*/,0x0611 /*003021*/,0x1489 /*012211*/,0x8485 /*102205*/, +0x2B15 /*025425*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0E0C /*007014*/,0xA257 /*121127*/,0x002C /*000054*/,0x0308 /*001410*/,0xA257 /*121127*/, +0x003A /*000072*/,0x0307 /*001407*/,0xA257 /*121127*/,0x000A /*000012*/,0x0304 /*001404*/,0x00B2 /*000262*/,0x0087 /*000207*/,0x0A81 /*005201*/, +0x01ED /*000755*/,0x1900 /*014400*/,0x03FB /*001773*/,0x00B8 /*000270*/,0x0087 /*000207*/,0x00AF /*000257*/,0x0087 /*000207*/,0x0BD6 /*005726*/, +0x01F4 /*000764*/,0x8964 /*104544*/,0x8514 /*102424*/,0x01A0 /*000640*/,0x3400 /*032000*/,0x3A00 /*035000*/,0x020E /*001016*/,0x0002 /*000002*/, +0x6611 /*063021*/,0x8289 /*101211*/,0x2615 /*023025*/,0xC010 /*140020*/,0x0415 /*002025*/,0x4400 /*042000*/,0x0D89 /*006611*/,0xA687 /*123207*/, +0x3A10 /*035020*/,0x9789 /*113611*/,0x2CA0 /*026240*/,0xF000 /*170000*/,0x9703 /*113403*/,0x3AA0 /*035240*/,0x0400 /*002000*/,0x9703 /*113403*/, +0x0AA0 /*005240*/,0x0100 /*000400*/,0xB203 /*131003*/,0x8700 /*103400*/,0x0100 /*000400*/,0x2989 /*024611*/,0x0001 /*000001*/,0x0034 /*000064*/, +0x0E68 /*007150*/,0x15E6 /*012746*/,0x0001 /*000001*/,0x0A26 /*005046*/,0x09F7 /*004767*/,0xFFC4 /*177704*/,0x8401 /*102001*/,0x8927 /*104447*/, +0x0A26 /*005046*/,0x1066 /*010146*/,0x1DC1 /*016701*/,0x093A /*004472*/,0x0203 /*001003*/,0x1DC1 /*016701*/,0x092E /*004456*/,0x0116 /*000426*/, +0xA257 /*121127*/,0x000A /*000012*/,0x0313 /*001423*/,0x09F7 /*004767*/,0xFF64 /*177544*/,0x8517 /*102427*/,0x050B /*002413*/,0x1077 /*010167*/, +0x018A /*000612*/,0x3400 /*032000*/,0x9600 /*113000*/,0x200E /*020016*/,0x8109 /*100411*/,0xD615 /*153025*/,0xD60B /*153013*/,0xFE0B /*177013*/, +0xD602 /*153002*/,0xFE0B /*177013*/,0xC103 /*140403*/,0x770A /*073412*/,0x4800 /*044000*/,0xD4F7 /*152367*/,0x140B /*012013*/,0xCC0A /*146012*/, +0xFD0B /*176413*/,0x5C02 /*056002*/,0xD189 /*150611*/,0x67A5 /*063645*/,0xE600 /*163000*/,0x4303 /*041403*/,0xFB20 /*175440*/,0x2987 /*024607*/, +0x2B89 /*025611*/,0x5689 /*053211*/,0x9B89 /*115611*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0EC4 /*007304*/,0x2097 /*020227*/,0x003D /*000075*/, +0x024F /*001117*/,0x0A00 /*005000*/,0x1126 /*010446*/,0x895C /*104534*/,0x894C /*104514*/,0x0203 /*001003*/,0x1100 /*010400*/,0x8966 /*104546*/, +0x0102 /*000402*/,0x10C0 /*010300*/,0x2410 /*022020*/,0x1026 /*010046*/,0x0A00 /*005000*/,0x895C /*104534*/,0x55C4 /*052704*/,0x4000 /*040000*/, +0x894C /*104514*/,0x0307 /*001407*/,0x1126 /*010446*/,0x1066 /*010146*/,0x15C4 /*012704*/,0x01CA /*000712*/,0x3400 /*032000*/,0xF200 /*171000*/, +0x100E /*010016*/,0x5000 /*050000*/,0x8189 /*100611*/,0x8415 /*102025*/,0x0015 /*000025*/,0x4A11 /*045021*/,0xC089 /*140211*/,0xAE1D /*127035*/, +0x4A08 /*045010*/,0x5E89 /*057211*/,0x8089 /*100211*/,0x9013 /*110023*/,0xD010 /*150020*/,0x1010 /*010020*/,0x6011 /*060021*/,0x1789 /*013611*/, +0x4F21 /*047441*/,0x2954 /*024524*/,0x5E02 /*057002*/,0x6889 /*064211*/,0x5789 /*053611*/,0x53A2 /*051642*/,0x0B00 /*005400*/,0x2E02 /*027002*/, +0x0001 /*000001*/,0x0034 /*000064*/,0x0F20 /*007440*/,0x8960 /*104540*/,0x2117 /*020427*/,0x5354 /*051524*/,0x0220 /*001040*/,0x8960 /*104540*/, +0x2117 /*020427*/,0x4550 /*042520*/,0x021C /*001034*/,0x895E /*104536*/,0x8968 /*104550*/,0x0106 /*000406*/,0x0A02 /*005002*/,0x15C3 /*012703*/, +0x4000 /*040000*/,0x15C4 /*012704*/,0x8001 /*100001*/,0x01F8 /*000770*/,0x1380 /*011600*/,0x1066 /*010146*/,0x1141 /*010501*/,0xE5C1 /*162701*/, +0x000C /*000014*/,0x1066 /*010146*/,0x0105 /*000405*/,0x3400 /*032000*/,0x4E00 /*047000*/,0x1C0F /*016017*/,0x0689 /*003211*/,0x0B03 /*005403*/, +0x8105 /*100405*/,0xF115 /*170425*/,0x080B /*004013*/,0x0B00 /*005400*/,0x0105 /*000405*/,0xD601 /*153001*/,0x810B /*100413*/,0x9615 /*113025*/, +0x7725 /*073445*/,0x8A00 /*105000*/,0x2DF6 /*026766*/,0x8189 /*100611*/,0xF115 /*170425*/,0x080B /*004013*/,0xF700 /*173400*/,0x8105 /*100405*/, +0xD615 /*153025*/,0x5C0B /*056013*/,0x5789 /*053611*/,0x6FA4 /*067644*/,0xC900 /*144400*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0F7C /*007574*/, +0x0303 /*001403*/,0x2043 /*020103*/,0x87FB /*103773*/,0x892F /*104457*/,0x8956 /*104526*/,0x210E /*020416*/,0x02F7 /*001367*/,0x0BD6 /*005726*/, +0x0AC1 /*005301*/,0x01EA /*000752*/,0x0A00 /*005000*/,0x8956 /*104526*/,0x1126 /*010446*/,0x895C /*104534*/,0x894C /*104514*/,0x0329 /*001451*/, +0x10E6 /*010346*/,0x55C4 /*052704*/,0x4000 /*040000*/,0x895C /*104534*/,0x894C /*104514*/,0x0323 /*001443*/,0x1066 /*010146*/,0x0154 /*000524*/, +0x3400 /*032000*/,0xAA00 /*125000*/,0xD30F /*151417*/,0xC124 /*140444*/,0xC110 /*140420*/,0x0665 /*003145*/,0x8000 /*100000*/,0x021D /*001035*/, +0xE600 /*163000*/,0x1010 /*010020*/,0x2624 /*023044*/,0x1010 /*010020*/,0x8089 /*100211*/,0x8315 /*101425*/,0xC113 /*140423*/,0xF310 /*171420*/, +0x080B /*004013*/,0x0300 /*001400*/,0x1C80 /*016200*/,0x1189 /*010611*/,0x0206 /*001006*/,0x1C01 /*016001*/,0x0E89 /*007211*/,0x8005 /*100005*/, +0xD615 /*153025*/,0x140B /*012013*/,0x0001 /*000001*/,0x0034 /*000064*/,0x0FD8 /*007730*/,0x1026 /*010046*/,0x0BE0 /*005740*/,0x1200 /*011000*/, +0x893C /*104474*/,0x8948 /*104510*/,0x1044 /*010104*/,0x1581 /*012601*/,0x1380 /*011600*/,0x1126 /*010446*/,0x2410 /*022020*/,0x01AF /*000657*/, +0x8931 /*104461*/,0x1581 /*012601*/,0x65C1 /*062701*/,0x0006 /*000006*/,0x1D80 /*016600*/,0x0002 /*000002*/,0x2410 /*022020*/,0x8912 /*104422*/, +0x1581 /*012601*/,0x2596 /*022626*/,0x01C4 /*000704*/,0x1026 /*010046*/,0x014D /*000515*/,0x3400 /*032000*/,0x0600 /*003000*/,0xC010 /*140020*/, +0x1E1D /*017035*/,0xC100 /*140400*/,0x1C1D /*016035*/,0x0E00 /*007000*/,0xC089 /*140211*/,0x0045 /*000105*/,0x3780 /*033600*/,0x1010 /*010020*/, +0x0100 /*000400*/,0x8010 /*100020*/,0x1E13 /*017023*/,0x8089 /*100211*/,0xF015 /*170025*/,0x0FE5 /*007745*/,0x0400 /*002000*/,0x8700 /*103400*/, +0x4700 /*043400*/,0x0317 /*001427*/,0xF701 /*173401*/,0x981D /*114035*/,0xF607 /*173007*/,0xF7FF /*173777*/,0xA855 /*124125*/,0x0001 /*000001*/, +0x0034 /*000064*/,0x1034 /*010064*/,0x0001 /*000001*/,0xFFF0 /*177760*/,0x0077 /*000167*/,0xF5B6 /*172666*/,0x1166 /*010546*/,0x1026 /*010046*/, +0x0A10 /*005020*/,0x0A10 /*005020*/,0x0A08 /*005010*/,0x0A26 /*005046*/,0x0A26 /*005046*/,0x0A26 /*005046*/,0x893A /*104472*/,0xA5C2 /*122702*/, +0x0045 /*000105*/,0x033C /*001474*/,0xA5C2 /*122702*/,0x002D /*000055*/,0x034A /*001512*/,0xA5C2 /*122702*/,0x002B /*000053*/,0x0344 /*001504*/, +0xA5C2 /*122702*/,0x0123 /*000443*/,0x3400 /*032000*/,0x6200 /*061000*/,0x2E10 /*027020*/,0x3B00 /*035400*/,0x3803 /*034003*/,0x5589 /*052611*/, +0xC202 /*141002*/,0x30E5 /*030345*/,0x6600 /*063000*/,0xF610 /*173020*/,0x0435 /*002065*/,0x0200 /*001000*/,0x1B00 /*015400*/,0xC602 /*143002*/, +0x06E5 /*003345*/,0x8000 /*100000*/,0x8111 /*100421*/,0x1E10 /*017020*/,0x8089 /*100211*/,0x0E1D /*007035*/,0xC100 /*140400*/,0xB015 /*130025*/, +0x1811 /*014021*/,0x5689 /*053211*/,0x8085 /*100205*/,0x651D /*062435*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1090 /*010220*/,0x000E /*000016*/, +0x1181 /*010601*/,0x8910 /*104420*/,0x35F6 /*032766*/,0x0008 /*000010*/,0x0008 /*000010*/,0x0302 /*001402*/,0x0AF6 /*005366*/,0x000A /*000012*/, +0x65C6 /*062706*/,0x0006 /*000006*/,0x1581 /*012601*/,0x55CE /*052716*/,0x0001 /*000001*/,0x0134 /*000464*/,0x10A6 /*010246*/,0x1D83 /*016603*/, +0x0008 /*000010*/,0x15C5 /*012705*/,0x000A /*000012*/,0x0A02 /*005002*/,0x0A04 /*005004*/,0x20D7 /*020327*/,0x0135 /*000465*/,0x3400 /*032000*/, +0xBE00 /*137000*/,0xD410 /*152020*/,0x4003 /*040003*/,0x3206 /*031006*/,0x8389 /*101611*/,0xF665 /*173145*/,0x0610 /*003020*/,0xED00 /*166400*/, +0xCE01 /*147001*/,0x0435 /*002065*/,0x3100 /*030400*/,0xCE02 /*147002*/,0x0455 /*002125*/,0xCE00 /*147000*/,0x0145 /*000505*/,0x1D00 /*016400*/, +0xCE01 /*147001*/,0x0C35 /*006065*/,0x2900 /*024400*/,0xCE02 /*147002*/,0x0855 /*004125*/,0x1700 /*013400*/,0xCE01 /*147001*/,0x0045 /*000105*/, +0x1F01 /*017401*/,0x0001 /*000001*/,0x0034 /*000064*/,0x10EC /*010354*/,0x0101 /*000401*/,0x55CE /*052716*/,0x0100 /*000400*/,0x35CE /*032716*/, +0x0004 /*000004*/,0x0210 /*001020*/,0x35CE /*032716*/,0x0001 /*000001*/,0x020B /*001013*/,0x35CE /*032716*/,0x0018 /*000030*/,0x0218 /*001030*/, +0x55CE /*052716*/,0x0010 /*000020*/,0x35CE /*032716*/,0x0100 /*000400*/,0x0304 /*001404*/,0x55CE /*052716*/,0x0040 /*000100*/,0x0101 /*000401*/, +0x0118 /*000430*/,0x019A /*000632*/,0x35CE /*032716*/,0x01F0 /*000760*/,0x3400 /*032000*/,0x1A00 /*015000*/,0x0111 /*000421*/,0xFB00 /*175400*/, +0x9702 /*113402*/,0x2033 /*020063*/,0x0800 /*004000*/,0xCE02 /*147002*/,0x2055 /*020125*/,0xCE00 /*147000*/,0x0035 /*000065*/,0xF401 /*172001*/, +0xCE03 /*147003*/,0x8055 /*100125*/,0xF100 /*170400*/,0xCE01 /*147001*/,0x0255 /*001125*/,0xED00 /*166400*/,0xC601 /*143001*/,0x0865 /*004145*/, +0x8100 /*100400*/,0xF915 /*174425*/,0x9601 /*113001*/,0xF725 /*173445*/,0x6601 /*063001*/,0xDC10 /*156020*/,0x0001 /*000001*/,0x0034 /*000064*/, +0x1148 /*010510*/,0x35F6 /*032766*/,0x0040 /*000100*/,0x0002 /*000002*/,0x0304 /*001404*/,0x1D80 /*016600*/,0x0008 /*000010*/,0x1001 /*010001*/, +0x8914 /*104424*/,0x35F6 /*032766*/,0x0080 /*000200*/,0x0002 /*000002*/,0x0307 /*001407*/,0x0B36 /*005466*/,0x0006 /*000006*/,0x8404 /*102004*/, +0x55F6 /*052766*/,0x0002 /*000002*/,0x0002 /*000002*/,0x0116 /*000426*/,0x6DB6 /*066666*/,0x0004 /*000004*/,0x0006 /*000006*/,0x0312 /*001422*/, +0x017D /*000575*/,0x3400 /*032000*/,0x7600 /*073000*/,0x0911 /*004421*/,0x8005 /*100005*/,0x081D /*004035*/,0xC100 /*140400*/,0xB015 /*130025*/, +0x1811 /*014021*/,0xF689 /*173211*/,0x060A /*003012*/,0xF800 /*174000*/,0x0806 /*004006*/,0x8001 /*100001*/,0x081D /*004035*/,0xC100 /*140400*/, +0xB015 /*130025*/,0x1611 /*013021*/,0xB689 /*133211*/,0x060A /*003012*/,0xF800 /*174000*/,0x8105 /*100405*/,0xC115 /*140425*/,0x840A /*102012*/, +0xC615 /*143025*/,0x0665 /*003145*/,0x8300 /*101400*/,0x0001 /*000001*/,0x0034 /*000064*/,0x11A4 /*010644*/,0x1585 /*012605*/,0x35C4 /*032704*/, +0x0002 /*000002*/,0x0301 /*001401*/,0x00B2 /*000262*/,0x0087 /*000207*/,0x0000 /*000000*/,0x5000 /*050000*/,0x8004 /*100004*/,0x0000 /*000000*/, +0x4000 /*040000*/,0x8001 /*100001*/,0x0000 /*000000*/,0x7A12 /*075022*/,0x8014 /*100024*/,0x4000 /*040000*/,0x4C4B /*046113*/,0x8018 /*100030*/, +0x0000 /*000000*/,0x4000 /*040000*/,0x8000 /*100000*/,0x15C0 /*012700*/,0x000A /*000012*/,0x0181 /*000601*/,0x3400 /*032000*/,0xD200 /*151000*/, +0x2611 /*023021*/,0xC00A /*140012*/,0xFD0A /*176412*/,0x6206 /*061006*/,0xF689 /*173211*/,0x2015 /*020025*/,0x0830 /*004060*/,0xF600 /*173000*/, +0x2095 /*020225*/,0x0A00 /*005000*/,0xC300 /*141400*/,0x660B /*063013*/,0x0603 /*003003*/,0x8006 /*100006*/,0x0111 /*000421*/,0x1410 /*012020*/, +0xF689 /*173211*/,0x2D95 /*026625*/,0x0800 /*004000*/,0xC100 /*140400*/,0xBC15 /*136025*/,0x8011 /*100021*/,0x1C11 /*016021*/,0xCD89 /*146611*/, +0x0001 /*000001*/,0x0034 /*000064*/,0x1200 /*011000*/,0x060C /*003014*/,0x15C0 /*012700*/,0x11C2 /*010702*/,0x1181 /*010601*/,0x891C /*104434*/, +0x050E /*002416*/,0x15C1 /*012701*/,0x11B0 /*010660*/,0x1180 /*010600*/,0x8916 /*104426*/,0x0AB6 /*005266*/,0x0006 /*000006*/,0x01F4 /*000764*/, +0x15C1 /*012701*/,0x11B0 /*010660*/,0x1180 /*010600*/,0x8918 /*104430*/,0x0AF6 /*005366*/,0x0006 /*000006*/,0x01E8 /*000750*/,0x15C1 /*012701*/, +0x11C8 /*010710*/,0x1180 /*010600*/,0x013B /*000473*/,0x3400 /*032000*/,0x2E00 /*027000*/,0x1012 /*010022*/,0xF689 /*173211*/,0x1FE5 /*017745*/, +0x0480 /*002200*/,0xB600 /*133000*/,0x020C /*001014*/,0x0E00 /*007000*/,0xB60C /*133014*/,0x040A /*002012*/,0xFA00 /*175000*/,0x8002 /*100002*/, +0xC011 /*140021*/,0x0E65 /*007145*/,0x8100 /*100400*/,0x2611 /*023021*/,0x0C10 /*006020*/,0x8089 /*100211*/,0xC015 /*140025*/,0x0365 /*001545*/, +0xC800 /*144000*/,0x20A5 /*020245*/,0x0300 /*001400*/,0xB603 /*133003*/,0xA50A /*122412*/,0x0001 /*000001*/,0x0034 /*000064*/,0x125C /*011134*/, +0x0006 /*000006*/,0x0101 /*000401*/,0x0A80 /*005200*/,0x65F6 /*062766*/,0x0007 /*000007*/,0x0006 /*000006*/,0x15C1 /*012701*/,0x0008 /*000010*/, +0x1002 /*010002*/,0x65C2 /*062702*/,0x0007 /*000007*/,0x0AC1 /*005301*/,0xA5E2 /*122742*/,0x0030 /*000060*/,0x03FC /*001774*/,0x1184 /*010604*/, +0x65C4 /*062704*/,0x0009 /*000011*/,0x25F6 /*022766*/,0x0008 /*000010*/,0x0006 /*000006*/,0x0728 /*003450*/,0x25F6 /*022766*/,0x018A /*000612*/, +0x3400 /*032000*/,0x8A00 /*105000*/,0xF812 /*174022*/,0x06FF /*003377*/,0x2400 /*022000*/,0x4304 /*041404*/,0x0310 /*001420*/,0x830B /*101413*/, +0x066D /*003155*/,0xC300 /*141400*/,0x0765 /*003545*/,0x1D00 /*016400*/,0x8305 /*101405*/,0x061D /*003035*/,0x0D00 /*006400*/,0x1305 /*011405*/, +0xD406 /*152006*/,0x2E95 /*027225*/,0x1400 /*012000*/,0x0294 /*001224*/,0xFD20 /*176440*/,0xD483 /*152203*/,0x2095 /*020225*/,0x0C00 /*006000*/, +0xC68A /*143212*/,0x6665 /*063145*/,0x0001 /*000001*/,0x0034 /*000064*/,0x12B8 /*011270*/,0x0008 /*000010*/,0x1D87 /*016607*/,0x0012 /*000022*/, +0x95D4 /*112724*/,0x002E /*000056*/,0x95D4 /*112724*/,0x0030 /*000060*/,0x0A83 /*005203*/,0x05FC /*002774*/,0x01EF /*000757*/,0x9414 /*112024*/, +0x0AC3 /*005303*/,0x06FD /*003375*/,0x2002 /*020002*/,0x83E8 /*101750*/,0x01EC /*000754*/,0x95D4 /*112724*/,0x002E /*000056*/,0x9414 /*112024*/, +0x2002 /*020002*/,0x83FD /*101775*/,0x95D4 /*112724*/,0x0045 /*000105*/,0x0114 /*000424*/,0x3400 /*032000*/,0xE600 /*163000*/,0xC612 /*143022*/, +0x0665 /*003145*/,0x8100 /*100400*/,0x8013 /*100023*/,0xC011 /*140021*/,0x0C65 /*006145*/,0x2600 /*023000*/,0x2610 /*023020*/,0x0A11 /*005021*/, +0x8489 /*102211*/,0x8015 /*100025*/,0x1715 /*013425*/,0x20A4 /*020244*/,0xFD00 /*176400*/,0x1703 /*013403*/,0x2DA8 /*026650*/,0x0200 /*001000*/, +0xD403 /*152003*/,0x2095 /*020225*/,0x1400 /*012000*/,0x1794 /*013624*/,0x20A2 /*020242*/,0xFC00 /*176000*/,0x4A02 /*045002*/,0x0001 /*000001*/, +0x0034 /*000064*/,0x1314 /*011424*/,0x95D4 /*112724*/,0x0020 /*000040*/,0x8A0C /*105014*/,0x0BD6 /*005726*/,0x1D87 /*016607*/,0x0012 /*000022*/, +0x0A00 /*005000*/,0x09F7 /*004767*/,0xEF6E /*167556*/,0x09F7 /*004767*/,0xEDEE /*166756*/,0x020B /*001013*/,0xE5C2 /*162702*/,0x0030 /*000060*/, +0x0CC0 /*006300*/,0x6002 /*060002*/,0x0CC0 /*006300*/,0x0CC0 /*006300*/,0x6080 /*060200*/,0x35C0 /*032700*/,0xE000 /*160000*/,0x03F1 /*001761*/, +0x8921 /*104441*/,0x01AF /*000657*/,0x3400 /*032000*/,0x4200 /*041000*/,0xC113 /*140423*/,0x870A /*103412*/,0x2600 /*023000*/,0x2610 /*023020*/, +0x660A /*063012*/,0x0210 /*001020*/,0x7604 /*073004*/,0x020A /*001012*/,0x8100 /*100400*/,0xC611 /*143021*/,0x0CE5 /*006345*/,0x8000 /*100000*/, +0x0C11 /*006021*/,0x8189 /*100611*/,0x8011 /*100021*/,0x101D /*010035*/,0xC100 /*140400*/,0x0565 /*002545*/,0xC200 /*141000*/,0x0715 /*003425*/, +0x5000 /*050000*/,0xC294 /*141224*/,0xFD0A /*176412*/,0x5606 /*053006*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1370 /*011560*/,0x65C6 /*062706*/, +0x0012 /*000022*/,0x0087 /*000207*/,0x1166 /*010546*/,0x1026 /*010046*/,0x0A26 /*005046*/,0x1443 /*012103*/,0x1242 /*011102*/,0x0404 /*002004*/, +0x0B02 /*005402*/,0x0B03 /*005403*/,0x0B82 /*005602*/,0x0A8E /*005216*/,0x15C5 /*012705*/,0x000A /*000012*/,0x0A04 /*005004*/,0x15E6 /*012746*/, +0xFFFF /*177777*/,0x0A00 /*005000*/,0x0A01 /*005001*/,0x8934 /*104464*/,0x1066 /*010146*/,0x5080 /*050200*/,0x01B1 /*000661*/,0x3400 /*032000*/, +0x9E00 /*117000*/,0xC013 /*140023*/,0xC050 /*140120*/,0xF80B /*174013*/,0x8502 /*102402*/,0x8411 /*102021*/,0xD50A /*152412*/,0xFD0B /*176413*/, +0xC404 /*142004*/,0xC30A /*141412*/,0x0B15 /*005425*/,0x0300 /*001400*/,0xC3E1 /*141741*/,0x400A /*040012*/,0x021D /*001035*/,0xC300 /*141400*/, +0x040B /*002013*/,0xD007 /*150007*/,0x2095 /*020225*/,0xC300 /*141400*/,0xFA0A /*175012*/,0xCD01 /*146401*/,0x030B /*001413*/,0xD003 /*150003*/, +0x1695 /*013225*/,0x0001 /*000001*/,0x0034 /*000064*/,0x13CC /*011714*/,0x002D /*000055*/,0x0102 /*000402*/,0x95D0 /*112720*/,0x0020 /*000040*/, +0x65CE /*062716*/,0x0030 /*000060*/,0x9590 /*112620*/,0x0BCE /*005716*/,0x04FB /*002373*/,0x95C8 /*112710*/,0x0020 /*000040*/,0x65C6 /*062706*/, +0x0006 /*000006*/,0x1585 /*012605*/,0x0087 /*000207*/,0x1166 /*010546*/,0x1003 /*010003*/,0x1045 /*010105*/,0x0A02 /*005002*/,0x0A04 /*005004*/, +0x8932 /*104462*/,0x10C0 /*010300*/,0x1081 /*010201*/,0x01F3 /*000763*/,0x3400 /*032000*/,0xFA00 /*175000*/,0x8513 /*102423*/,0x8715 /*103425*/, +0x0000 /*000000*/,0x010A /*000412*/,0xE60A /*163012*/,0x2115 /*020425*/,0x0000 /*000000*/,0x010C /*000414*/,0x020C /*001014*/,0x030C /*001414*/, +0x030C /*001414*/,0x4186 /*040606*/,0x4061 /*040141*/,0x000B /*000013*/,0xCE61 /*147141*/,0xF60A /*173012*/,0xD602 /*153002*/,0x870B /*103413*/, +0xE600 /*163000*/,0x2015 /*020025*/,0x2600 /*023000*/,0x6611 /*063021*/,0x3611 /*033021*/,0x1D0B /*016413*/,0x0001 /*000001*/,0x0034 /*000064*/, +0x1428 /*012050*/,0x0002 /*000002*/,0x0B0E /*005416*/,0x0BB6 /*005666*/,0x0002 /*000002*/,0x6381 /*061601*/,0x0B40 /*005500*/,0x6D80 /*066600*/, +0x0002 /*000002*/,0x8725 /*103445*/,0x0A26 /*005046*/,0x0C43 /*006103*/,0x0C42 /*006102*/,0x0C41 /*006101*/,0x0C40 /*006100*/,0x0BCE /*005716*/, +0x0308 /*001410*/,0x0A0E /*005016*/,0x6D81 /*066601*/,0x0002 /*000002*/,0x0B40 /*005500*/,0x0B4E /*005516*/,0x6D80 /*066600*/,0x0004 /*000004*/, +0x0100 /*000400*/,0x3400 /*032000*/,0x5600 /*053000*/,0x0414 /*002024*/,0x4101 /*040401*/,0x4061 /*040141*/,0x4E0B /*047013*/,0x000B /*000013*/, +0x4E61 /*047141*/,0xCE0B /*147013*/,0x010B /*000413*/,0x8303 /*101403*/,0xF60A /*173012*/,0x060A /*003012*/,0xE700 /*163400*/,0x0306 /*001406*/, +0x040C /*002014*/,0x4187 /*040607*/,0x4061 /*040141*/,0x000B /*000013*/,0xA161 /*120541*/,0x4300 /*041400*/,0xC60C /*143014*/,0x0865 /*004145*/, +0xA200 /*121000*/,0x8700 /*103400*/,0xCB00 /*145400*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1484 /*012204*/,0x65C6 /*062706*/,0x0006 /*000006*/, +0x89FB /*104773*/,0x00B2 /*000262*/,0x0087 /*000207*/,0x1166 /*010546*/,0x1026 /*010046*/,0x1466 /*012146*/,0x1466 /*012146*/,0x1266 /*011146*/, +0x1402 /*012002*/,0x1401 /*012001*/,0x1200 /*011000*/,0x200E /*020016*/,0x830A /*101412*/,0x1184 /*010604*/,0x1003 /*010003*/,0x1300 /*011400*/, +0x10D4 /*010324*/,0x1043 /*010103*/,0x1301 /*011401*/,0x10D4 /*010324*/,0x1083 /*010203*/,0x01B7 /*000667*/,0x3400 /*032000*/,0xB200 /*131000*/, +0x0214 /*001024*/,0xD413 /*152023*/,0x8010 /*100020*/,0x19E3 /*014743*/,0x0303 /*001403*/,0x1780 /*013600*/,0xE120 /*160440*/,0x05FF /*002777*/, +0x8504 /*102404*/,0x021D /*001035*/,0x8300 /*101400*/,0x041D /*002035*/,0x1C00 /*016000*/,0x1701 /*013401*/,0xF020 /*170040*/,0x07FF /*003777*/, +0xC006 /*140006*/,0x1065 /*010145*/,0x4200 /*041000*/,0x0110 /*000420*/,0xC20A /*141012*/,0x010B /*000413*/,0x4180 /*040600*/,0x270A /*023412*/, +0x0001 /*000001*/,0x0034 /*000064*/,0x14E0 /*012340*/,0x0BC0 /*005700*/,0x0304 /*001404*/,0x0C81 /*006201*/,0x0C02 /*006002*/,0x0A80 /*005200*/, +0x02FC /*001374*/,0x1D85 /*016605*/,0x0002 /*000002*/,0x1D83 /*016603*/,0x0004 /*000004*/,0x6083 /*060203*/,0x0B45 /*005505*/,0x8511 /*102421*/, +0x6045 /*060105*/,0x8403 /*102003*/,0x0C05 /*006005*/,0x0C03 /*006003*/,0x0A8E /*005216*/,0x1D80 /*016600*/,0x0006 /*000006*/,0x1001 /*010001*/, +0x10D0 /*010320*/,0x1150 /*010520*/,0x01F8 /*000770*/,0x3400 /*032000*/,0x0E00 /*007000*/,0x9015 /*110025*/,0x4013 /*040023*/,0xC610 /*143020*/, +0x0865 /*004145*/,0x8500 /*102400*/,0x7715 /*073425*/,0x6600 /*063000*/,0x4501 /*042401*/,0xF260 /*171140*/,0xEE87 /*167207*/,0x0401 /*002001*/, +0xC610 /*143020*/,0x06E5 /*003345*/,0x8000 /*100000*/,0x1411 /*012021*/,0x0089 /*000211*/,0x8111 /*100421*/,0x1011 /*010021*/,0xC689 /*143211*/, +0x0665 /*003145*/,0x8700 /*103400*/,0x1A00 /*015000*/,0xF189 /*170611*/,0x770B /*073413*/,0x0001 /*000001*/,0x0034 /*000064*/,0x153C /*012474*/, +0x0002 /*000002*/,0x0408 /*002010*/,0x1442 /*012102*/,0x1443 /*012103*/,0x0B03 /*005403*/,0x0B02 /*005402*/,0x0B83 /*005603*/,0x1090 /*010220*/, +0x10D0 /*010320*/,0x1450 /*012120*/,0x0087 /*000207*/,0x891A /*104432*/,0x15C1 /*012701*/,0x11B6 /*010666*/,0x0BF0 /*005760*/,0x0002 /*000002*/, +0x0603 /*003003*/,0x0303 /*001403*/,0x8914 /*104424*/,0x0087 /*000207*/,0x891A /*104432*/,0x0087 /*000207*/,0x1166 /*010546*/,0x019A /*000632*/, +0x3400 /*032000*/,0x6A00 /*065000*/,0x2615 /*023025*/,0x2610 /*023020*/,0x450A /*042412*/,0x4414 /*042024*/,0xC414 /*142024*/,0x3F0B /*037413*/, +0x0403 /*002003*/,0x0404 /*002004*/,0x050B /*002413*/,0x840B /*102013*/,0x8E0B /*107013*/,0x030A /*001412*/,0x0214 /*001024*/,0x7314 /*071424*/, +0x0403 /*002003*/,0x0206 /*001006*/,0x030B /*001413*/,0x820B /*101013*/,0xCE0B /*147013*/,0x410A /*040412*/,0x0112 /*000422*/,0x010B /*000413*/, +0x0162 /*000542*/,0xDA0C /*155014*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1598 /*012630*/,0x0C41 /*006101*/,0x842C /*102054*/,0x65C1 /*062701*/, +0x8000 /*100000*/,0x1066 /*010146*/,0x10C1 /*010301*/,0x1080 /*010200*/,0x0A02 /*005002*/,0x0A03 /*005003*/,0x0C00 /*006000*/,0x0C01 /*006001*/, +0x0C02 /*006002*/,0x8934 /*104464*/,0x0B04 /*005404*/,0x0B05 /*005405*/,0x0B84 /*005604*/,0x0CC1 /*006301*/,0x0C40 /*006100*/,0x6141 /*060501*/, +0x0B40 /*005500*/,0x6100 /*060400*/,0x0503 /*002403*/,0x65C3 /*062703*/,0x0162 /*000542*/,0x3400 /*032000*/,0xC600 /*143000*/,0x0115 /*000425*/, +0x4200 /*041000*/,0xA10B /*120413*/,0x0200 /*001000*/,0x030C /*001414*/,0x8E0C /*107014*/,0xF60A /*173012*/,0x020B /*001013*/,0x0300 /*001400*/, +0x0203 /*001003*/,0x030B /*001413*/,0x820B /*101013*/,0x800B /*100013*/,0x041D /*002035*/,0xD000 /*150000*/,0x9010 /*110020*/,0x8810 /*104020*/, +0x9615 /*113025*/,0x8525 /*102445*/,0x2015 /*020025*/,0x0128 /*000450*/,0x7710 /*073420*/,0x8E00 /*107000*/,0x2A00 /*025000*/,0x0001 /*000001*/, +0x0034 /*000064*/,0x15F4 /*012764*/,0x2596 /*022626*/,0x89FB /*104773*/,0x1585 /*012605*/,0x00B2 /*000262*/,0x0087 /*000207*/,0x1166 /*010546*/, +0x1026 /*010046*/,0x1445 /*012105*/,0x1444 /*012104*/,0x1241 /*011101*/,0x0A26 /*005046*/,0x0BC4 /*005704*/,0x032F /*001457*/,0x8004 /*100004*/, +0x0B04 /*005404*/,0x0B05 /*005405*/,0x0B84 /*005604*/,0x0ACE /*005316*/,0x1403 /*012003*/,0x1402 /*012002*/,0x0327 /*001447*/,0x8004 /*100004*/, +0x0B02 /*005402*/,0x01DC /*000734*/,0x3400 /*032000*/,0x2200 /*021000*/,0x0316 /*001426*/,0x820B /*101013*/,0x8E0B /*107013*/,0x010A /*000412*/, +0x0162 /*000542*/,0x410C /*040414*/,0xE20C /*161014*/,0xC184 /*140604*/,0x0065 /*000145*/,0x6680 /*063200*/,0x3210 /*031020*/,0x8E89 /*107211*/, +0x420A /*041012*/,0x410C /*040414*/,0x400C /*040014*/,0x020C /*001014*/,0xCE85 /*147205*/,0xFA0A /*175012*/,0x0001 /*000001*/,0x010C /*000414*/, +0x410C /*040414*/,0x400B /*040013*/,0x020B /*001013*/,0x5784 /*053604*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1650 /*013120*/,0x0A8E /*005216*/, +0x01F9 /*000771*/,0x1582 /*012602*/,0x0BD6 /*005726*/,0x0303 /*001403*/,0x0B00 /*005400*/,0x0B01 /*005401*/,0x0B80 /*005600*/,0x1583 /*012603*/, +0x1053 /*010123*/,0x1013 /*010023*/,0x108B /*010213*/,0x1585 /*012605*/,0x0087 /*000207*/,0x0A00 /*005000*/,0x0A01 /*005001*/,0x0A02 /*005002*/, +0x0BD6 /*005726*/,0x01F5 /*000765*/,0x0A10 /*005020*/,0x1050 /*010120*/,0x15C8 /*012710*/,0x800F /*100017*/,0x01FB /*000773*/,0x3400 /*032000*/, +0x7E00 /*077000*/,0x2016 /*020026*/,0x0128 /*000450*/,0x4410 /*042020*/,0x4214 /*041024*/,0x4314 /*041424*/,0xC114 /*140424*/,0xC210 /*141020*/, +0x040B /*002013*/,0xC402 /*142002*/,0x020B /*001013*/,0x0302 /*001402*/,0x100A /*010012*/,0x8301 /*101401*/,0xC30A /*141412*/,0xC40A /*142012*/, +0x420C /*041014*/,0xFC0C /*176014*/,0x0884 /*004204*/,0x0786 /*003606*/,0xC402 /*142002*/,0x040B /*002013*/,0xB102 /*130402*/,0x0200 /*001000*/, +0x210C /*020414*/,0x0001 /*000001*/,0x0034 /*000064*/,0x16AC /*013254*/,0x0A83 /*005203*/,0x0A81 /*005201*/,0x00B1 /*000261*/,0x0C02 /*006002*/, +0x0C04 /*006004*/,0x1110 /*010420*/,0x1090 /*010220*/,0x10D0 /*010320*/,0x20C1 /*020301*/,0x8202 /*101002*/,0x00A2 /*000242*/,0x0087 /*000207*/, +0x00B2 /*000262*/,0x0087 /*000207*/,0x1042 /*010102*/,0x1004 /*010004*/,0x1494 /*012224*/,0x1494 /*012224*/,0x1494 /*012224*/,0x0087 /*000207*/, +0x1066 /*010146*/,0x892C /*104454*/,0x1180 /*010600*/,0x0119 /*000431*/,0x3400 /*032000*/,0xDA00 /*155000*/,0x8116 /*100426*/,0x061D /*003035*/, +0x1200 /*011000*/,0x8189 /*100611*/,0x021D /*001035*/,0xC600 /*143000*/,0x0865 /*004145*/,0x0100 /*000400*/,0x870B /*103413*/,0x8200 /*101000*/, +0xC015 /*140025*/,0x0665 /*003145*/,0x2600 /*023000*/,0x2618 /*023030*/,0x2618 /*023030*/,0x8718 /*103430*/,0x4310 /*041420*/,0x4214 /*041024*/, +0x4414 /*042024*/,0x1112 /*010422*/,0x6180 /*060600*/,0x1728 /*013450*/,0x1F21 /*017441*/,0x2F80 /*027600*/,0x0001 /*000001*/,0x0034 /*000064*/, +0x1708 /*013410*/,0x86DF /*103337*/,0xE5C4 /*162704*/,0x801F /*100037*/,0x0C82 /*006202*/,0x0C03 /*006003*/,0x0A84 /*005204*/,0x05FC /*002774*/, +0x1001 /*010001*/,0x10D0 /*010320*/,0x1090 /*010220*/,0x15C8 /*012710*/,0x801F /*100037*/,0x1040 /*010100*/,0x01AF /*000657*/,0x0BC2 /*005702*/, +0x8004 /*100004*/,0x15C1 /*012701*/,0x11B6 /*010666*/,0x0077 /*000167*/,0xFE10 /*177020*/,0x0A10 /*005020*/,0x0A10 /*005020*/,0x0A08 /*005010*/, +0x010D /*000415*/,0x3400 /*032000*/,0x3600 /*033000*/,0x8717 /*103427*/,0x4200 /*041000*/,0x4314 /*041424*/,0x4414 /*042024*/,0x1712 /*013422*/, +0x0F21 /*007441*/,0x0B80 /*005600*/,0x0882 /*004202*/,0x1703 /*013403*/,0x0021 /*000041*/,0x0880 /*004200*/,0xC487 /*142207*/,0x0FE5 /*007745*/, +0x8380 /*101600*/,0x840C /*102014*/,0xFD0A /*176412*/,0xC002 /*140002*/,0x8710 /*103420*/,0xF900 /*174400*/,0x0089 /*000211*/,0x870A /*103412*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x9000 /*110000*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1764 /*013544*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0150 /*000520*/,0x3400 /*032000*/,0x9200 /*111000*/, +0x0017 /*000027*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x2200 /*021000*/, +0x0001 /*000001*/,0x0034 /*000064*/,0x17C0 /*013700*/,0x0001 /*000001*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0001 /*000001*/, +0x17B0 /*013660*/,0x1066 /*010146*/,0x1026 /*010046*/,0xE5C6 /*162706*/,0x0006 /*000006*/,0x1001 /*010001*/,0x1180 /*010600*/,0x09F7 /*004767*/, +0x0018 /*000030*/,0x1D81 /*016601*/,0x0008 /*000010*/,0x1180 /*010600*/,0x8918 /*104430*/,0x1D80 /*016600*/,0x0006 /*000006*/,0x1181 /*010601*/, +0x09F7 /*004767*/,0x00C2 /*000302*/,0x0145 /*000505*/,0x3400 /*032000*/,0xEE00 /*167000*/,0xC617 /*143027*/,0x0A65 /*005145*/,0x8700 /*103400*/, +0x2E00 /*027000*/,0xF089 /*170211*/,0x020B /*001013*/,0x0400 /*002000*/,0xFF06 /*177406*/,0xC689 /*143211*/,0x0465 /*002145*/,0x8700 /*103400*/, +0x0100 /*000400*/,0xD110 /*150420*/,0x0C0B /*006013*/,0x5702 /*053402*/,0x0024 /*000044*/,0x0940 /*004500*/,0x5702 /*053402*/,0x0124 /*000444*/, +0x0680 /*003200*/,0x1002 /*010002*/,0x100A /*010012*/,0x100A /*010012*/,0xFB0A /*175412*/,0x0001 /*000001*/,0x0034 /*000064*/,0x181C /*014034*/, +0x65C6 /*062706*/,0x0004 /*000004*/,0x0087 /*000207*/,0x1C26 /*016046*/,0x0004 /*000004*/,0x65CE /*062716*/,0x8000 /*100000*/,0x15F0 /*012760*/, +0x8000 /*100000*/,0x0004 /*000004*/,0x1381 /*011601*/,0xE5C6 /*162706*/,0x0006 /*000006*/,0x1180 /*010600*/,0x891E /*104436*/,0x1D80 /*016600*/, +0x0008 /*000010*/,0x892C /*104454*/,0x15C1 /*012701*/,0x188C /*014214*/,0x8912 /*104422*/,0x1180 /*010600*/,0x15C1 /*012701*/,0x010C /*000414*/, +0x3400 /*032000*/,0x4A00 /*045000*/,0x8C18 /*106030*/,0x1018 /*010030*/,0x8089 /*100211*/,0x0E1D /*007035*/,0x8100 /*100400*/,0x1611 /*013021*/, +0xC489 /*142211*/,0x9815 /*114025*/,0x8018 /*100030*/,0x0E1D /*007035*/,0xC300 /*141400*/,0x0415 /*002025*/,0x2800 /*024000*/,0x2A89 /*025211*/, +0x8089 /*100211*/,0x0E1D /*007035*/,0xC100 /*140400*/,0x4615 /*043025*/,0x1219 /*011031*/,0xC689 /*143211*/,0x0665 /*003145*/,0x8000 /*100000*/, +0xC111 /*140421*/,0xC915 /*144425*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1878 /*014170*/,0x1892 /*014222*/,0x8918 /*104430*/,0x1181 /*010601*/, +0x1D80 /*016600*/,0x0008 /*000010*/,0x8910 /*104420*/,0x65C6 /*062706*/,0x000C /*000014*/,0x00A2 /*000242*/,0x0087 /*000207*/,0x7996 /*074626*/, +0x5A82 /*055202*/,0x8000 /*100000*/,0x0BFE /*005776*/,0x58B9 /*054271*/,0x8000 /*100000*/,0xAA4A /*125112*/,0x4D0C /*046414*/,0x7FFF /*077777*/, +0x0F09 /*007411*/,0x6650 /*063120*/,0x7FFF /*077777*/,0x6CDB /*066333*/,0x015D /*000535*/,0x3400 /*032000*/,0xA600 /*123000*/,0x5518 /*052430*/, +0x0055 /*000125*/,0xFA80 /*175200*/,0xFFFF /*177777*/,0x017F /*000577*/,0x2E80 /*027200*/,0x1789 /*013611*/,0x042C /*002054*/,0x0E00 /*007000*/, +0xA180 /*120600*/,0xC182 /*140602*/,0x4015 /*040025*/,0x2619 /*023031*/,0x8089 /*100211*/,0x021D /*001035*/,0xC100 /*140400*/,0x4615 /*043025*/, +0x1819 /*014031*/,0x8089 /*100211*/,0x021D /*001035*/,0x2C00 /*026000*/,0x2C89 /*026211*/,0x8089 /*100211*/,0x4F11 /*047421*/,0x0001 /*000001*/, +0x0034 /*000064*/,0x18D4 /*014324*/,0x15C1 /*012701*/,0x194C /*014514*/,0x8910 /*104420*/,0x1180 /*010600*/,0x1001 /*010001*/,0x8914 /*104424*/, +0x0AB6 /*005266*/,0x000A /*000012*/,0x1D80 /*016600*/,0x000E /*000016*/,0x1001 /*010001*/,0x8918 /*104430*/,0x1D80 /*016600*/,0x000E /*000016*/, +0x15C1 /*012701*/,0x1958 /*014530*/,0x8910 /*104420*/,0x15C0 /*012700*/,0x1952 /*014522*/,0x892C /*104454*/,0x1180 /*010600*/,0x1D81 /*016601*/, +0x0014 /*000024*/,0x01E2 /*000742*/,0x3400 /*032000*/,0x0200 /*001000*/,0x1619 /*013031*/,0x8089 /*100211*/,0x0111 /*000421*/,0xC110 /*140420*/, +0x0665 /*003145*/,0x1000 /*010000*/,0x8189 /*100611*/,0x4011 /*040021*/,0xC010 /*140020*/,0x0C65 /*006145*/,0x1600 /*013000*/,0xC689 /*143211*/, +0x0C65 /*006145*/,0x8000 /*100000*/,0xC111 /*140421*/,0xB615 /*133025*/,0x1011 /*010021*/,0x8089 /*100211*/,0x0111 /*000421*/,0x1810 /*014020*/, +0x8189 /*100611*/,0x8011 /*100021*/,0x081D /*004035*/,0x8000 /*100000*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1930 /*014460*/,0x891A /*104432*/, +0x1D80 /*016600*/,0x0008 /*000010*/,0x6DB0 /*066660*/,0x0006 /*000006*/,0x0004 /*000004*/,0x0077 /*000167*/,0xFF44 /*177504*/,0x1D94 /*016624*/, +0x5C55 /*056125*/,0x8001 /*100001*/,0x0BFE /*005776*/,0x58B9 /*054271*/,0x7FFF /*077777*/,0x3EE7 /*037347*/,0x9FE1 /*117741*/,0x8004 /*100004*/, +0x4375 /*041565*/,0xB4C6 /*132306*/,0x800A /*100012*/,0x2D78 /*026570*/,0x782E /*074056*/,0x8006 /*100006*/,0x0128 /*000450*/,0x3400 /*032000*/, +0x5E00 /*057000*/,0xF619 /*173031*/,0x02E5 /*001345*/,0x0200 /*001000*/,0x8000 /*100000*/,0x081D /*004035*/,0x8100 /*100400*/,0x0A1D /*005035*/, +0x2600 /*023000*/,0x1810 /*014020*/,0xF689 /*173211*/,0x0665 /*003145*/,0x0C00 /*006000*/,0x8000 /*100000*/,0x8113 /*100423*/,0x0C1D /*006035*/, +0x1000 /*010000*/,0xF689 /*173211*/,0x040B /*002013*/,0x0700 /*003400*/,0x8003 /*100003*/,0x8113 /*100423*/,0x081D /*004035*/,0x1800 /*014000*/, +0x2589 /*022611*/,0x0001 /*000001*/,0x0034 /*000064*/,0x198C /*014614*/,0x0AF6 /*005366*/,0x0004 /*000004*/,0x01EF /*000757*/,0x1380 /*011600*/, +0x1D81 /*016601*/,0x0006 /*000006*/,0x8918 /*104430*/,0x0BD6 /*005726*/,0x1583 /*012603*/,0x65C6 /*062706*/,0x0016 /*000026*/,0x10E6 /*010346*/, +0x0087 /*000207*/,0x1583 /*012603*/,0x0A26 /*005046*/,0x1066 /*010146*/,0x1026 /*010046*/,0x891A /*104432*/,0x10C7 /*010307*/,0x1583 /*012603*/, +0x01FA /*000772*/,0x1581 /*012601*/,0x892C /*104454*/,0x0157 /*000527*/,0x3400 /*032000*/,0xBA00 /*135000*/,0x6619 /*063031*/,0x2610 /*023020*/, +0xE611 /*163021*/,0x2610 /*023020*/,0x0110 /*000420*/,0x1810 /*014020*/,0x8089 /*100211*/,0x8315 /*101425*/,0x8415 /*102025*/,0x8115 /*100425*/, +0x2C15 /*026025*/,0x2689 /*023211*/,0x2611 /*023021*/,0xA610 /*123020*/,0xCE11 /*147021*/,0x0665 /*003145*/,0xA600 /*123000*/,0xCE11 /*147021*/, +0x0E65 /*007145*/,0xE600 /*163000*/,0x4710 /*043420*/,0x8010 /*100020*/,0x021D /*001035*/,0x1B00 /*015400*/,0x0001 /*000001*/,0x0034 /*000064*/, +0x19E8 /*014750*/,0x8918 /*104430*/,0x15B6 /*012666*/,0x0002 /*000002*/,0x1381 /*011601*/,0x8922 /*104442*/,0x1026 /*010046*/,0x1381 /*011601*/, +0xE5C6 /*162706*/,0x0006 /*000006*/,0x1180 /*010600*/,0x891E /*104436*/,0x1181 /*010601*/,0x1D80 /*016600*/,0x0008 /*000010*/,0x8912 /*104422*/, +0x65C6 /*062706*/,0x0006 /*000006*/,0x1DA6 /*016646*/,0x0004 /*000004*/,0x0087 /*000207*/,0x8924 /*104444*/,0x0BF0 /*005760*/,0x0002 /*000002*/, +0x016F /*000557*/,0x3400 /*032000*/,0x1600 /*013000*/,0x051A /*002432*/,0x0104 /*000404*/,0x1410 /*012020*/,0xB689 /*133211*/,0x040A /*002012*/, +0x0400 /*002000*/,0x0301 /*001401*/,0xC602 /*143002*/,0x0665 /*003145*/,0x8700 /*103400*/,0xC100 /*140400*/,0x8615 /*103025*/,0x261A /*023032*/, +0x8289 /*101211*/,0xC215 /*141025*/,0xFC45 /*176105*/,0xC2FF /*141377*/,0xC20C /*141014*/,0x7E65 /*077145*/,0x871A /*103432*/,0xC112 /*140422*/, +0xB615 /*133025*/,0x8011 /*100021*/,0x4A13 /*045023*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1A44 /*015104*/,0x8912 /*104422*/,0x1380 /*011600*/, +0x1001 /*010001*/,0x8914 /*104424*/,0x0104 /*000404*/,0x15C1 /*012701*/,0x11B6 /*010666*/,0x1380 /*011600*/,0x8912 /*104422*/,0x1380 /*011600*/, +0x15C4 /*012704*/,0x1A8C /*015214*/,0x15C3 /*012703*/,0x0006 /*000006*/,0x8928 /*104450*/,0x892A /*104452*/,0x0BF6 /*005766*/,0x0004 /*000004*/, +0x03DD /*001735*/,0x1380 /*011600*/,0x1001 /*010001*/,0x8914 /*104424*/,0x01D9 /*000731*/,0x016D /*000555*/,0x3400 /*032000*/,0x7200 /*071000*/, +0x241A /*022032*/,0xC189 /*140611*/,0xAA15 /*125025*/,0x101A /*010032*/,0x8089 /*100211*/,0xCA13 /*145023*/,0x5601 /*053001*/,0x3E1A /*037032*/, +0x461A /*043032*/,0x4E1A /*047032*/,0xB91A /*134432*/,0x7CC1 /*076301*/,0x0051 /*000121*/,0xBE80 /*137200*/,0x4E1F /*047037*/,0xEE8D /*167215*/, +0xCE7F /*147177*/,0xFFFA /*177772*/,0xF453 /*172123*/,0x8C7F /*106177*/,0x4BDC /*045734*/,0xF9B3 /*174663*/,0xFE7F /*177177*/,0x2EEE /*027356*/, +0x0001 /*000001*/,0x0034 /*000064*/,0x1AA0 /*015240*/,0x519A /*050632*/,0x7FFD /*077775*/,0x0C75 /*006165*/,0xAD51 /*126521*/,0x8000 /*100000*/, +0xED4E /*166516*/,0x6487 /*062207*/,0x8001 /*100001*/,0x0A26 /*005046*/,0x8924 /*104444*/,0x0BF0 /*005760*/,0x0002 /*000002*/,0x0358 /*001530*/, +0x0404 /*002004*/,0x0AB6 /*005266*/,0x0006 /*000006*/,0x1001 /*010001*/,0x8914 /*104424*/,0x15C1 /*012701*/,0x11B6 /*010666*/,0x1380 /*011600*/, +0x891C /*104434*/,0x040F /*002017*/,0x016B /*000553*/,0x3400 /*032000*/,0xCE00 /*147000*/,0xB61A /*133032*/,0x040A /*002012*/,0xC000 /*140000*/, +0xB615 /*133025*/,0x2C11 /*026021*/,0x8089 /*100211*/,0x8111 /*100421*/,0x061D /*003035*/,0x1600 /*013000*/,0x8189 /*100611*/,0x8011 /*100021*/, +0x061D /*003035*/,0x1A00 /*015000*/,0xC689 /*143211*/,0x0665 /*003145*/,0xC100 /*140400*/,0x7215 /*071025*/,0x801B /*100033*/,0x1C13 /*016023*/, +0x0489 /*002211*/,0x2607 /*023007*/,0x260A /*023012*/,0x260A /*023012*/,0xBB0A /*135412*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1AFC /*015374*/, +0x0118 /*000430*/,0x15C0 /*012700*/,0x1B7E /*015576*/,0x892C /*104454*/,0x1D80 /*016600*/,0x0006 /*000006*/,0x892C /*104454*/,0x15C1 /*012701*/, +0x1B78 /*015570*/,0x8918 /*104430*/,0x1D80 /*016600*/,0x000C /*000014*/,0x15C1 /*012701*/,0x11B6 /*010666*/,0x8912 /*104422*/,0x1180 /*010600*/, +0x15C1 /*012701*/,0x1B78 /*015570*/,0x8910 /*104420*/,0x1D80 /*016600*/,0x000C /*000014*/,0x1181 /*010601*/,0x8916 /*104426*/,0x01C9 /*000711*/, +0x3400 /*032000*/,0x2A00 /*025000*/,0xC61B /*143033*/,0x0665 /*003145*/,0x8000 /*100000*/,0x061D /*003035*/,0xC400 /*142000*/,0x8415 /*102025*/, +0xC31B /*141433*/,0x0515 /*002425*/,0x2800 /*024000*/,0x2A89 /*025211*/,0x8189 /*100611*/,0x8011 /*100021*/,0x061D /*003035*/,0x1000 /*010000*/, +0xC689 /*143211*/,0x0665 /*003145*/,0xF600 /*173000*/,0x040B /*002013*/,0x0700 /*003400*/,0x8003 /*100003*/,0xC113 /*140423*/,0xAA15 /*125025*/, +0x121A /*011032*/,0x2389 /*021611*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1B58 /*015530*/,0x1380 /*011600*/,0x1001 /*010001*/,0x8914 /*104424*/, +0x0BF6 /*005766*/,0x0006 /*000006*/,0x0303 /*001403*/,0x1380 /*011600*/,0x1001 /*010001*/,0x8914 /*104424*/,0x65C6 /*062706*/,0x0008 /*000010*/, +0x00A2 /*000242*/,0x0087 /*000207*/,0x517C /*050574*/,0x4498 /*042230*/,0x7FFF /*077777*/,0xEBA0 /*165640*/,0x6ED9 /*067331*/,0x8001 /*100001*/, +0x48DE /*044336*/,0x4305 /*041405*/,0x8000 /*100000*/,0x9720 /*113440*/,0x014E /*000516*/,0x3400 /*032000*/,0x8600 /*103000*/,0x321B /*031033*/, +0xFD61 /*176541*/,0xCF7F /*147577*/,0x6E8F /*067217*/,0xFEB7 /*177267*/,0xA67F /*123177*/,0x61DB /*060733*/,0xFE66 /*177146*/,0x0A7F /*005177*/, +0xAAB2 /*125262*/,0xFFAA /*177652*/,0xFE7F /*177177*/,0xFFFF /*177777*/,0x007F /*000177*/,0x2480 /*022200*/,0xF089 /*170211*/,0x020B /*001013*/, +0x2E00 /*027000*/,0x0403 /*002003*/,0xB604 /*133004*/,0x040A /*002012*/,0x0100 /*000400*/,0x1410 /*012020*/,0x7889 /*074211*/,0x0001 /*000001*/, +0x0034 /*000064*/,0x1BB4 /*015664*/,0x0A36 /*005066*/,0x0002 /*000002*/,0x1380 /*011600*/,0x2410 /*022020*/,0x65C8 /*062710*/,0x8000 /*100000*/, +0x0C88 /*006210*/,0x0B76 /*005566*/,0x0002 /*000002*/,0x1226 /*011046*/,0x15C8 /*012710*/,0x8000 /*100000*/,0x1D80 /*016600*/,0x0002 /*000002*/, +0x892C /*104454*/,0x15C1 /*012701*/,0x1C3E /*016076*/,0x8918 /*104430*/,0x1D80 /*016600*/,0x0008 /*000010*/,0x15C1 /*012701*/,0x1C38 /*016070*/, +0x8910 /*104420*/,0x010D /*000415*/,0x3400 /*032000*/,0xE200 /*161000*/,0x301B /*030033*/,0x3089 /*030211*/,0x3089 /*030211*/,0xB089 /*130211*/, +0x066D /*003155*/,0x0400 /*002000*/,0xC600 /*143000*/,0x0865 /*004145*/,0xF600 /*173000*/,0x020B /*001013*/,0x0300 /*001400*/,0xC103 /*140403*/, +0x3215 /*031025*/,0x181C /*014034*/,0xF689 /*173211*/,0x040B /*002013*/,0x0100 /*000400*/,0xFD03 /*176403*/,0xC689 /*143211*/,0x0665 /*003145*/, +0xA200 /*121000*/,0x8700 /*103400*/,0x8000 /*100000*/,0x0111 /*000421*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1C10 /*016020*/,0x0BD0 /*005720*/, +0x892C /*104454*/,0x1180 /*010600*/,0x1D81 /*016601*/,0x0010 /*000020*/,0x8916 /*104426*/,0x1181 /*010601*/,0x1D80 /*016600*/,0x0010 /*000020*/, +0x8910 /*104420*/,0x1D80 /*016600*/,0x0010 /*000020*/,0x0AF0 /*005360*/,0x0004 /*000004*/,0x65C6 /*062706*/,0x0006 /*000006*/,0x0087 /*000207*/, +0x7996 /*074626*/,0x5A82 /*055202*/,0x8001 /*100001*/,0xABBA /*125672*/,0x6AD4 /*065324*/,0x7FFF /*077777*/,0x0169 /*000551*/,0x0C00 /*006000*/, +0x3E00 /*037000*/,0x421C /*041034*/,0x8A6E /*105156*/,0x004B /*000113*/,0x9480 /*112200*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1C44 /*016104*/, +0x1DC6 /*016706*/,0xFB82 /*175602*/,0x8902 /*104402*/,0x15F7 /*012767*/,0x1C56 /*016126*/,0xE3B4 /*161664*/,0x1DC1 /*016701*/,0xE314 /*161424*/, +0x0102 /*000402*/,0x0AB7 /*005267*/,0x02DA /*001332*/,0x15F7 /*012767*/,0x1C66 /*016146*/,0xE3A4 /*161644*/,0x29A6 /*024646*/,0x15C1 /*012701*/, +0xE000 /*160000*/,0x2596 /*022626*/,0x1849 /*014111*/,0xE5C1 /*162701*/,0x00C2 /*000302*/,0x1077 /*010167*/,0x02C0 /*001300*/,0x018F /*000617*/, +0x3400 /*032000*/,0x7200 /*071000*/,0xC01C /*140034*/,0x6015 /*060025*/,0x6A17 /*065027*/,0xC289 /*141211*/,0x4CA5 /*046245*/,0x1B00 /*015400*/, +0xC203 /*141003*/,0x44A5 /*042245*/,0x1D00 /*016400*/,0xC203 /*141003*/,0x45A5 /*042645*/,0x1800 /*014000*/,0xC203 /*141003*/,0x48A5 /*044245*/, +0x1A00 /*015000*/,0xC203 /*141003*/,0x0AA5 /*005245*/,0x4300 /*041400*/,0x3803 /*034003*/,0x1889 /*014211*/,0xC102 /*140402*/,0x080A /*004012*/, +0x3789 /*033611*/,0x9A10 /*115020*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1CA0 /*016240*/,0x0286 /*001206*/,0x893A /*104472*/,0xA5C2 /*122702*/, +0x000A /*000012*/,0x0339 /*001471*/,0xA5C2 /*122702*/,0x002C /*000054*/,0x02F9 /*001371*/,0x893A /*104472*/,0x01E2 /*000742*/,0x0AB7 /*005267*/, +0x0272 /*001162*/,0x01F4 /*000764*/,0x0AB7 /*005267*/,0x0270 /*001160*/,0x0AB7 /*005267*/,0x026A /*001152*/,0x01EF /*000757*/,0x0AF7 /*005367*/, +0x0268 /*001150*/,0x01EC /*000754*/,0x0A37 /*005067*/,0x025A /*001132*/,0x0174 /*000564*/,0x3400 /*032000*/,0xCE00 /*147000*/,0x371C /*033434*/, +0x580A /*054012*/,0x3702 /*033402*/,0x560A /*053012*/,0x3702 /*033402*/,0x540A /*052012*/,0x3702 /*033402*/,0x520A /*051012*/,0xC002 /*140002*/, +0xC415 /*142025*/,0x6A1E /*065036*/,0xF789 /*173611*/,0x4410 /*042020*/,0x0502 /*002402*/,0xC007 /*140007*/,0x9C15 /*116025*/,0x6A1E /*065036*/, +0xF789 /*173611*/,0x3A10 /*035020*/,0xF702 /*173402*/,0x3C0B /*036013*/,0x0502 /*002402*/,0xC002 /*140002*/,0x9D15 /*116425*/,0x0001 /*000001*/, +0x0034 /*000064*/,0x1CFC /*016374*/,0x1EE8 /*017350*/,0x896A /*104552*/,0x10F7 /*010367*/,0x0226 /*001046*/,0x15C0 /*012700*/,0x1F01 /*017401*/, +0x896A /*104552*/,0x10F7 /*010367*/,0x0222 /*001042*/,0x15C0 /*012700*/,0x1F1F /*017437*/,0x8936 /*104466*/,0x8940 /*104500*/,0x8908 /*104410*/, +0x1037 /*010067*/,0x020C /*001014*/,0x6DF7 /*066767*/,0x0214 /*001024*/,0x0208 /*001010*/,0x0BF7 /*005767*/,0x0204 /*001004*/,0x0707 /*003407*/, +0x15F7 /*012767*/,0x0151 /*000521*/,0x3400 /*032000*/,0x2A00 /*025000*/,0x701D /*070035*/,0x96FF /*113377*/,0xF7FA /*173772*/,0x7415 /*072025*/, +0x92FF /*111377*/,0x06FA /*003372*/,0xF701 /*173401*/,0x6815 /*064025*/,0x88FF /*104377*/,0xF7FA /*173772*/,0x6C15 /*066025*/,0x84FF /*102377*/, +0xC1FA /*140772*/,0xEC1D /*166035*/,0xC001 /*140001*/,0xDE1D /*157035*/,0x0C01 /*006001*/,0xC003 /*140003*/,0xC000 /*140000*/,0xC00C /*140014*/, +0xC00C /*140014*/,0xC00C /*140014*/,0xFF45 /*177505*/,0xC407 /*142007*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1D58 /*016530*/,0x2017 /*020027*/, +0x2000 /*020000*/,0x87B6 /*103666*/,0x2001 /*020001*/,0x8201 /*101001*/,0x1001 /*010001*/,0x1046 /*010106*/,0x15F7 /*012767*/,0x0006 /*000006*/, +0xE298 /*161230*/,0x1077 /*010167*/,0xFA5A /*175132*/,0x15C1 /*012701*/,0x1C44 /*016104*/,0x0BF7 /*005767*/,0x01B4 /*000664*/,0x071B /*003433*/, +0x0A37 /*005067*/,0xEE5E /*167136*/,0x0A37 /*005067*/,0xEE5C /*167134*/,0x0A37 /*005067*/,0xEE5A /*167132*/,0x01A0 /*000640*/,0x3400 /*032000*/, +0x8600 /*103000*/,0x371D /*033435*/,0x5E0A /*057012*/,0xC1EE /*140756*/,0x1015 /*010025*/,0xF71A /*173432*/,0x9C0B /*116013*/,0x0E01 /*007001*/, +0x3707 /*033407*/,0x4A0A /*045012*/,0x37EE /*033756*/,0x480A /*044012*/,0xC0EE /*140356*/,0x5E15 /*057025*/,0x8000 /*100000*/,0xC10C /*140414*/, +0xCC15 /*146025*/,0xC217 /*141027*/,0x2615 /*023025*/,0x911E /*110436*/,0xC014 /*140024*/,0xFD0A /*176412*/,0xF706 /*173406*/,0x7C0B /*076013*/, +0x7301 /*071401*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1DB4 /*016664*/,0x041E /*002036*/,0x15F7 /*012767*/,0x1DC2 /*016702*/,0xE270 /*161160*/, +0x1077 /*010167*/,0xFA02 /*175002*/,0x0000 /*000000*/,0x1DC1 /*016701*/,0xF9FC /*174774*/,0x15C0 /*012700*/,0x0018 /*000030*/,0x0C80 /*006200*/, +0x15C2 /*012702*/,0x1E84 /*017204*/,0x1077 /*010167*/,0xEE32 /*167062*/,0x1077 /*010167*/,0xED4C /*166514*/,0x15C3 /*012703*/,0x000E /*000016*/, +0x6043 /*060103*/,0x10F7 /*010367*/,0xE24A /*161112*/,0x0130 /*000460*/,0x3400 /*032000*/,0xE200 /*161000*/,0x911D /*110435*/,0xC014 /*140024*/, +0xFD0A /*176412*/,0xC606 /*143006*/,0x3C1D /*036035*/,0xB7E2 /*133742*/,0xDA11 /*155021*/,0x02F9 /*001371*/,0x3701 /*033401*/,0xFA0A /*175012*/, +0x77ED /*073755*/,0xB810 /*134020*/,0xC5F9 /*142771*/,0xB41D /*132035*/,0xD5F9 /*152771*/,0x0A95 /*005225*/,0x3700 /*033400*/,0xBC0A /*136012*/, +0x77F9 /*073771*/,0x4000 /*040000*/,0x36E8 /*033350*/,0x4089 /*040211*/,0x3A89 /*035211*/,0x7889 /*074211*/,0x0001 /*000001*/,0x0034 /*000064*/, +0x1E10 /*017020*/,0x0A03 /*005003*/,0xA097 /*120227*/,0x0059 /*000131*/,0x0202 /*001002*/,0x0AC3 /*005303*/,0x0087 /*000207*/,0xA097 /*120227*/, +0x004E /*000116*/,0x02FC /*001374*/,0x0A83 /*005203*/,0x0087 /*000207*/,0x1026 /*010046*/,0x892C /*104454*/,0x1040 /*010100*/,0x892C /*104454*/, +0x15C1 /*012701*/,0x11B6 /*010666*/,0x1D80 /*016600*/,0x000C /*000014*/,0x891A /*104432*/,0x1180 /*010600*/,0x1026 /*010046*/,0x1026 /*010046*/, +0x013B /*000473*/,0x3400 /*032000*/,0x3E00 /*037000*/,0xCE1E /*147036*/,0x0665 /*003145*/,0x8000 /*100000*/,0x021D /*001035*/,0x0100 /*000400*/, +0xDF10 /*157420*/,0xFA09 /*175011*/,0xF616 /*173026*/,0x060B /*003013*/,0x0500 /*002400*/,0x0E06 /*007006*/,0xC605 /*143005*/,0x1265 /*011145*/, +0xA200 /*121000*/,0x8700 /*103400*/,0x8100 /*100400*/,0x8013 /*100023*/,0x101D /*010035*/,0x1800 /*014000*/,0xC189 /*140611*/,0xB615 /*133025*/, +0x8011 /*100021*/,0x021D /*001035*/,0xE500 /*162400*/,0x0001 /*000001*/,0x0034 /*000064*/,0x1E6C /*017154*/,0x8912 /*104422*/,0x01EE /*000756*/, +0x1381 /*011601*/,0x1D80 /*016600*/,0x0010 /*000020*/,0x8916 /*104426*/,0x15C1 /*012701*/,0x11B6 /*010666*/,0x1D80 /*016600*/,0x0002 /*000002*/, +0x8910 /*104420*/,0x01E4 /*000744*/,0x65C6 /*062706*/,0x0008 /*000010*/,0x1040 /*010100*/,0x1581 /*012601*/,0x17C2 /*013702*/,0x0028 /*000050*/, +0x004A /*000112*/,0x1582 /*012602*/,0x1583 /*012603*/,0x1584 /*012604*/,0x005F /*000137*/,0x0192 /*000622*/,0x0800 /*004000*/,0x9A00 /*115000*/, +0x181E /*014036*/,0x1C0B /*016013*/,0x0001 /*000001*/,0x0026 /*000046*/,0x1760 /*013540*/,0x4450 /*042120*/,0x2D50 /*026520*/,0x3131 /*030461*/, +0x4220 /*041040*/,0x5341 /*051501*/,0x4349 /*041511*/,0x202C /*020054*/,0x4556 /*042526*/,0x5352 /*051522*/,0x4F49 /*047511*/,0x204E /*020116*/, +0x3030 /*030060*/,0x4137 /*040467*/,0x0A0D /*005015*/,0x4F2A /*047452*/,0x0020 /*000040*/,0x0153 /*000523*/,0x3400 /*032000*/,0x9C00 /*116000*/, +0x441E /*042036*/,0x204F /*020117*/,0x4F59 /*047531*/,0x2055 /*020125*/,0x4552 /*042522*/,0x5551 /*052521*/,0x5249 /*051111*/,0x2045 /*020105*/, +0x5845 /*054105*/,0x2050 /*020120*/,0x524F /*051117*/,0x4C20 /*046040*/,0x474F /*043517*/,0x2820 /*024040*/,0x4C46 /*046106*/,0x414F /*040517*/, +0x4954 /*044524*/,0x474E /*043516*/,0x5E20 /*057040*/,0x3F29 /*037451*/,0x4400 /*042000*/,0x204F /*020117*/,0x4F59 /*047531*/,0x2255 /*021125*/, +0x0001 /*000001*/,0x0034 /*000064*/,0x1ECA /*017312*/,0x4E20 /*047040*/,0x4545 /*042505*/,0x2044 /*020104*/,0x4854 /*044124*/,0x2045 /*020105*/, +0x5845 /*054105*/,0x4554 /*042524*/,0x444E /*042116*/,0x4445 /*042105*/,0x4620 /*043040*/,0x4E55 /*047125*/,0x5443 /*052103*/,0x4F49 /*047511*/, +0x534E /*051516*/,0x003F /*000077*/,0x4948 /*044510*/,0x4847 /*044107*/,0x532D /*051455*/,0x4550 /*042520*/,0x4445 /*042105*/,0x5220 /*051040*/, +0x4145 /*040505*/,0x4544 /*042504*/,0x01DE /*000736*/,0x3400 /*032000*/,0xF800 /*174000*/,0x521E /*051036*/,0x502F /*050057*/,0x4E55 /*047125*/, +0x4843 /*044103*/,0x003F /*000077*/,0x4553 /*042523*/,0x2054 /*020124*/,0x5055 /*050125*/,0x5420 /*052040*/,0x4548 /*042510*/,0x4520 /*042440*/, +0x5458 /*052130*/,0x5245 /*051105*/,0x414E /*040516*/,0x204C /*020114*/,0x5546 /*052506*/,0x434E /*041516*/,0x4954 /*044524*/,0x4E4F /*047117*/, +0x003F /*000077*/,0x454D /*042515*/,0x4F4D /*047515*/,0x5952 /*054522*/,0x653F /*062477*/,0x0001 /*000001*/,0x0007 /*000007*/,0x1F26 /*017446*/, +0xB300 /*131400*/,0x0001 /*000001*/,0x0014 /*000024*/,0x1F28 /*017450*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x01A4 /*000644*/,0x0600 /*003000*/,0x4400 /*042000*/,0x991C /*114434*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x8100 /*100400*/,0x2442 /*022102*/,0x2418 /*022030*/,0x8142 /*100502*/,0x2442 /*022102*/,0x2418 /*022030*/,0x8142 /*100502*/, +0x2442 /*022102*/,0x2418 /*022030*/,0x8142 /*100502*/,0x0000 /*000000*/,0xCC00 /*146000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, +0x0000 /*000000*/,0xFF00 /*177400*/] +} \ No newline at end of file diff --git a/apps/pdp11/tapes/DEC-11-L2PC-PO.json b/apps/pdp11/tapes/DEC-11-L2PC-PO.json new file mode 100644 index 0000000000..6b5f2ad510 --- /dev/null +++ b/apps/pdp11/tapes/DEC-11-L2PC-PO.json @@ -0,0 +1,14 @@ +{"words":[ +0xE9E9 /*164751*/,0x3DE9 /*036751*/,0x0000 /*000000*/,0x11C6 /*010706*/,0x29A6 /*024646*/,0x11C5 /*010705*/,0x65C5 /*062705*/,0x004A /*000112*/, +0x0A01 /*005001*/,0x17CE /*013716*/,0xFF78 /*177570*/,0x0C0E /*006016*/,0x8702 /*103402*/,0x0A0E /*005016*/,0x0103 /*000403*/,0x0CCE /*006316*/, +0x0201 /*001001*/,0x104E /*010116*/,0x0A00 /*005000*/,0x09CD /*004715*/,0x8AC3 /*105303*/,0x02FC /*001374*/,0x09CD /*004715*/,0x09F7 /*004767*/, +0x003C /*000074*/,0x1102 /*010402*/,0xE5C2 /*162702*/,0x0004 /*000004*/,0x25C2 /*022702*/,0x0002 /*000002*/,0x0321 /*001441*/,0x09F7 /*004767*/, +0x002C /*000054*/,0x6384 /*061604*/,0x1101 /*010401*/,0x09CD /*004715*/,0x0404 /*002004*/,0x8BC0 /*105700*/,0x03EB /*001753*/,0x0000 /*000000*/, +0x01E9 /*000751*/,0x90D1 /*110321*/,0x01F8 /*000770*/,0x1DC3 /*016703*/,0x006A /*000152*/,0x8A8B /*105213*/,0x8BCB /*105713*/,0x80FE /*100376*/, +0x9CC3 /*116303*/,0x0002 /*000002*/,0x60C0 /*060300*/,0x45C3 /*042703*/,0xFF00 /*177400*/,0x0AC2 /*005302*/,0x0087 /*000207*/,0x15B7 /*012667*/, +0x0026 /*000046*/,0x09CD /*004715*/,0x10C4 /*010304*/,0x09CD /*004715*/,0x00C3 /*000303*/,0x50C4 /*050304*/,0x1DC7 /*016707*/,0x0018 /*000030*/, +0x09F7 /*004767*/,0xFFEA /*177752*/,0x09CD /*004715*/,0x8BC0 /*105700*/,0x02E2 /*001342*/,0x0C84 /*006204*/,0x8602 /*103002*/,0x0000 /*000000*/, +0x01C0 /*000700*/,0x0CC4 /*006304*/,0x6384 /*061604*/,0x004C /*000114*/,0x0000 /*000000*/,0x15F7 /*012767*/,0x00EA /*000352*/,0x0010 /*000020*/, +0x15F7 /*012767*/,0x01F5 /*000765*/,0x001C /*000034*/,0x0077 /*000167*/,0xFF5A /*177532*/,0x1DC1 /*016701*/,0x0016 /*000026*/,0x15C2 /*012702*/, +0xEBFB /*165773*/,0x0000 /*000000*/,0x0000 /*000000*/] +} \ No newline at end of file diff --git a/apps/pdp11/tapes/README.md b/apps/pdp11/tapes/README.md new file mode 100644 index 0000000000..ed3f2d0c3f --- /dev/null +++ b/apps/pdp11/tapes/README.md @@ -0,0 +1,27 @@ +--- +layout: page +title: PDP-11 Software Tapes +permalink: /apps/pdp11/tapes/ +--- + +PDP-11 Software Tapes +--------------------- + +The initial PDP-11 software we are working on supporting includes: + +- [Absolute Loader](DEC-11-L2PC-PO.json) +- [BASIC (Single User)](DEC-11-AJPB-PB.json) + +To make it easy for PDPjs machines to load these applications, we provide the following High-Speed +Paper Tape Reader (PC11) configuration files: + +- [samples.xml](samples.xml) + +These configuration files create UI controls that allow you to choose from a set of tapes that are automatically sent +to the machine's PC11 device. + +Third-Party Resources +--------------------- + +- "[Analysis of the PDP-11 bootstrap loader code](http://decuser.blogspot.com/2015/12/analysis-of-pdp-11-bootloader-code.html)" +- "[PDP-11 Paper Tape BASIC](http://www.avitech.com.au/ptb/ptb.html)" and follow-up article "[PDP-11 BASIC, booting the hard way](http://decuser.blogspot.com/2015/12/pdp-11-basic-booting-hard-way.html)" diff --git a/apps/pdp11/tapes/samples.xml b/apps/pdp11/tapes/samples.xml new file mode 100644 index 0000000000..cba22c8187 --- /dev/null +++ b/apps/pdp11/tapes/samples.xml @@ -0,0 +1,13 @@ + + + + + + + + + Load + + + + diff --git a/devices/c1p/machine/32kb/machine.xml b/devices/c1p/machine/32kb/machine.xml index bf328e8372..44030af5b0 100644 --- a/devices/c1p/machine/32kb/machine.xml +++ b/devices/c1p/machine/32kb/machine.xml @@ -1,6 +1,6 @@ - + OSI Challenger 1P (32Kb) with Disk Support @@ -22,7 +22,7 @@ - + CTRL-C CTRL-O BREAK diff --git a/devices/c1p/machine/8kb/all/debugger/machine.xml b/devices/c1p/machine/8kb/all/debugger/machine.xml index de23306ffa..ecc5ff602d 100644 --- a/devices/c1p/machine/8kb/all/debugger/machine.xml +++ b/devices/c1p/machine/8kb/all/debugger/machine.xml @@ -1,6 +1,6 @@ - + OSI Challenger 1P (8Kb, Additional Software) @@ -21,7 +21,7 @@ - + CTRL-C CTRL-O BREAK diff --git a/devices/c1p/machine/8kb/all/machine.xml b/devices/c1p/machine/8kb/all/machine.xml index 25b39f339b..4e3b988ad3 100644 --- a/devices/c1p/machine/8kb/all/machine.xml +++ b/devices/c1p/machine/8kb/all/machine.xml @@ -20,7 +20,7 @@ - + CTRL-C CTRL-O BREAK diff --git a/devices/c1p/machine/8kb/embed/machine.xml b/devices/c1p/machine/8kb/embed/machine.xml index d8cabb67bf..ba45b52533 100644 --- a/devices/c1p/machine/8kb/embed/machine.xml +++ b/devices/c1p/machine/8kb/embed/machine.xml @@ -16,7 +16,7 @@ - SET-UP + SET-UP - TEST RECEIVER + TEST RECEIVER diff --git a/devices/pc8080/machine/vt100/machine.xml b/devices/pc8080/machine/vt100/machine.xml index 9565f1e3ac..b1e90f3ac8 100644 --- a/devices/pc8080/machine/vt100/machine.xml +++ b/devices/pc8080/machine/vt100/machine.xml @@ -12,22 +12,22 @@ VT100 Screen - - - - - - - - Full Screen + + + + + + + + Full Screen - SET-UP + SET-UP - TEST RECEIVER + TEST RECEIVER diff --git a/devices/pc8080/panel/left.xml b/devices/pc8080/panel/left.xml index b8126d5117..1611dcb8a5 100644 --- a/devices/pc8080/panel/left.xml +++ b/devices/pc8080/panel/left.xml @@ -1,28 +1,28 @@ Control Panel - + - - 00 - 0000 - 0000 - 0000 - 0000 - 0000 + + 00 + 0000 + 0000 + 0000 + 0000 + 0000 - 0 - 0 - 0 - 0 - 0 - 0 + 0 + 0 + 0 + 0 + 0 + 0 - Speed: - Stopped + Speed: + Stopped - + Run Step Reset diff --git a/devices/pc8080/panel/wide.xml b/devices/pc8080/panel/wide.xml index 674d25f6c6..e202f0c8ac 100644 --- a/devices/pc8080/panel/wide.xml +++ b/devices/pc8080/panel/wide.xml @@ -1,32 +1,32 @@ Control Panel - + - - 00 - 0000 - 0000 - 0000 - 0000 - 0000 + + 00 + 0000 + 0000 + 0000 + 0000 + 0000 - 0 - 0 - 0 - 0 - 0 - 0 + 0 + 0 + 0 + 0 + 0 + 0 - Speed: - Stopped + Speed: + Stopped - + Enter Clear - Run + Run Step Reset Fast diff --git a/devices/pcx86/chipset/5150-cga-max.xml b/devices/pcx86/chipset/5150-cga-max.xml index 13cfce1930..1335068ba1 100644 --- a/devices/pcx86/chipset/5150-cga-max.xml +++ b/devices/pcx86/chipset/5150-cga-max.xml @@ -1,5 +1,5 @@ - + diff --git a/devices/pcx86/chipset/att6300-cga-max.xml b/devices/pcx86/chipset/att6300-cga-max.xml index e3d736f85e..b4a4da3f55 100644 --- a/devices/pcx86/chipset/att6300-cga-max.xml +++ b/devices/pcx86/chipset/att6300-cga-max.xml @@ -1,5 +1,5 @@ - + diff --git a/devices/pcx86/chipset/mpc1600-cga-max.xml b/devices/pcx86/chipset/mpc1600-cga-max.xml index 0692bdb559..6bf974074f 100644 --- a/devices/pcx86/chipset/mpc1600-cga-max.xml +++ b/devices/pcx86/chipset/mpc1600-cga-max.xml @@ -1,5 +1,5 @@ - + diff --git a/devices/pcx86/chipset/z150-cga-max.xml b/devices/pcx86/chipset/z150-cga-max.xml index e470dc5110..c92267f6f9 100644 --- a/devices/pcx86/chipset/z150-cga-max.xml +++ b/devices/pcx86/chipset/z150-cga-max.xml @@ -1,5 +1,5 @@ - + diff --git a/devices/pcx86/keyboard/us83-buttons-arrows.xml b/devices/pcx86/keyboard/us83-buttons-arrows.xml index 2fb5326f19..98efe9b1f2 100644 --- a/devices/pcx86/keyboard/us83-buttons-arrows.xml +++ b/devices/pcx86/keyboard/us83-buttons-arrows.xml @@ -1,5 +1,5 @@ - + ESC F1 diff --git a/devices/pcx86/keyboard/us83-buttons-functions.xml b/devices/pcx86/keyboard/us83-buttons-functions.xml index dd2fdef098..923343c9c2 100644 --- a/devices/pcx86/keyboard/us83-buttons-functions.xml +++ b/devices/pcx86/keyboard/us83-buttons-functions.xml @@ -1,5 +1,5 @@ - + ESC CTRL-C CTRL-ALT-DEL diff --git a/devices/pcx86/keyboard/us83-buttons-minimal.xml b/devices/pcx86/keyboard/us83-buttons-minimal.xml index d76721f3bf..af693bdd8d 100644 --- a/devices/pcx86/keyboard/us83-buttons-minimal.xml +++ b/devices/pcx86/keyboard/us83-buttons-minimal.xml @@ -1,5 +1,5 @@ - + ESC F1 F10 diff --git a/devices/pcx86/keyboard/us83-buttons-mpc1600.xml b/devices/pcx86/keyboard/us83-buttons-mpc1600.xml index 6d5d8f31a7..d8596c3eeb 100644 --- a/devices/pcx86/keyboard/us83-buttons-mpc1600.xml +++ b/devices/pcx86/keyboard/us83-buttons-mpc1600.xml @@ -1,5 +1,5 @@ - + ESC F1 F10 diff --git a/devices/pcx86/keyboard/us83-buttons-z150.xml b/devices/pcx86/keyboard/us83-buttons-z150.xml index f52426838a..da3c614453 100644 --- a/devices/pcx86/keyboard/us83-buttons-z150.xml +++ b/devices/pcx86/keyboard/us83-buttons-z150.xml @@ -1,5 +1,5 @@ - + ESC F1 F10 diff --git a/devices/pcx86/keyboard/us83-softkeys.xml b/devices/pcx86/keyboard/us83-softkeys.xml index dfbf2e824b..297762aae9 100644 --- a/devices/pcx86/keyboard/us83-softkeys.xml +++ b/devices/pcx86/keyboard/us83-softkeys.xml @@ -1,4 +1,4 @@ - + F1 F2 diff --git a/devices/pcx86/keyboard/us84-buttons-arrows.xml b/devices/pcx86/keyboard/us84-buttons-arrows.xml index 26b1db5b5c..8b78ba87c0 100644 --- a/devices/pcx86/keyboard/us84-buttons-arrows.xml +++ b/devices/pcx86/keyboard/us84-buttons-arrows.xml @@ -1,5 +1,5 @@ - + ESC F1 SysReq diff --git a/devices/pcx86/keyboard/us84-buttons-functions.xml b/devices/pcx86/keyboard/us84-buttons-functions.xml index 14f0d62654..86bfac8af8 100644 --- a/devices/pcx86/keyboard/us84-buttons-functions.xml +++ b/devices/pcx86/keyboard/us84-buttons-functions.xml @@ -1,5 +1,5 @@ - + ESC CTRL-C CTRL-ALT-DEL diff --git a/devices/pcx86/keyboard/us84-buttons-test.xml b/devices/pcx86/keyboard/us84-buttons-test.xml index 268871c668..0072577464 100644 --- a/devices/pcx86/keyboard/us84-buttons-test.xml +++ b/devices/pcx86/keyboard/us84-buttons-test.xml @@ -1,5 +1,5 @@ - + ESC F1 SysReq diff --git a/devices/pcx86/machine/5150/cga/384kb/softkbd/machine.xml b/devices/pcx86/machine/5150/cga/384kb/softkbd/machine.xml index 56f39065e7..5311b2ae63 100644 --- a/devices/pcx86/machine/5150/cga/384kb/softkbd/machine.xml +++ b/devices/pcx86/machine/5150/cga/384kb/softkbd/machine.xml @@ -12,7 +12,7 @@ - + diff --git a/devices/pcx86/machine/5150/cga/64kb/donkey/machine.xml b/devices/pcx86/machine/5150/cga/64kb/donkey/machine.xml index 4d58066845..721aafa481 100644 --- a/devices/pcx86/machine/5150/cga/64kb/donkey/machine.xml +++ b/devices/pcx86/machine/5150/cga/64kb/donkey/machine.xml @@ -8,7 +8,7 @@ diff --git a/devices/pdp11/machine/1120/bootstrap/machine.xml b/devices/pdp11/machine/1120/bootstrap/machine.xml index 0c8fe4b0ea..d801920b6f 100644 --- a/devices/pdp11/machine/1120/bootstrap/machine.xml +++ b/devices/pdp11/machine/1120/bootstrap/machine.xml @@ -4,7 +4,7 @@ PDP-11/20: 16Kb, Bootstrap Loader - + diff --git a/devices/pdp11/machine/1120/test/debugger/machine.xml b/devices/pdp11/machine/1120/test/debugger/machine.xml index fa6e6760e6..c815495f6b 100644 --- a/devices/pdp11/machine/1120/test/debugger/machine.xml +++ b/devices/pdp11/machine/1120/test/debugger/machine.xml @@ -4,7 +4,7 @@ PDP-11/20 Test Machine with 56Kb and Debugger - + diff --git a/devices/pdp11/machine/1120/test/machine.xml b/devices/pdp11/machine/1120/test/machine.xml index f01522a86d..c4e3fc0f10 100644 --- a/devices/pdp11/machine/1120/test/machine.xml +++ b/devices/pdp11/machine/1120/test/machine.xml @@ -4,7 +4,7 @@ PDP-11/20 Test Machine with 56Kb - + diff --git a/devices/pdp11/machine/1170/panel/debugger/machine.xml b/devices/pdp11/machine/1170/panel/debugger/machine.xml index 4fcdc1eab7..b8d743f609 100644 --- a/devices/pdp11/machine/1170/panel/debugger/machine.xml +++ b/devices/pdp11/machine/1170/panel/debugger/machine.xml @@ -4,7 +4,7 @@ PDP-11/70 with Front Panel and Debugger - + diff --git a/devices/pdp11/machine/1170/panel/machine.xml b/devices/pdp11/machine/1170/panel/machine.xml index 463841a985..c975dcbf8b 100644 --- a/devices/pdp11/machine/1170/panel/machine.xml +++ b/devices/pdp11/machine/1170/panel/machine.xml @@ -4,7 +4,7 @@ PDP-11/70 with Front Panel - + diff --git a/devices/pdp11/machine/1170/test/debugger/machine.xml b/devices/pdp11/machine/1170/test/debugger/machine.xml index 5de64ce400..8f8c2ae12b 100644 --- a/devices/pdp11/machine/1170/test/debugger/machine.xml +++ b/devices/pdp11/machine/1170/test/debugger/machine.xml @@ -4,7 +4,7 @@ PDP-11/70 Test Machine with Debugger - + diff --git a/devices/pdp11/machine/1170/test/machine.xml b/devices/pdp11/machine/1170/test/machine.xml index 87e3736ee8..186cff8c6d 100644 --- a/devices/pdp11/machine/1170/test/machine.xml +++ b/devices/pdp11/machine/1170/test/machine.xml @@ -4,7 +4,7 @@ PDP-11/70 Test Machine - + diff --git a/devices/pdp11/machine/1170/vt100/debugger/machine.xml b/devices/pdp11/machine/1170/vt100/debugger/machine.xml index 71dce867a8..e4d5799d43 100644 --- a/devices/pdp11/machine/1170/vt100/debugger/machine.xml +++ b/devices/pdp11/machine/1170/vt100/debugger/machine.xml @@ -4,7 +4,7 @@ PDP-11/70 with Front Panel - + diff --git a/devices/pdp11/machine/1170/vt100/machine.xml b/devices/pdp11/machine/1170/vt100/machine.xml index 69be2f3ee3..29de720e0d 100644 --- a/devices/pdp11/machine/1170/vt100/machine.xml +++ b/devices/pdp11/machine/1170/vt100/machine.xml @@ -4,7 +4,7 @@ PDP-11/70 with Front Panel - + diff --git a/devices/pdp11/panel/1170/debugger/front.xml b/devices/pdp11/panel/1170/debugger/front.xml index ca8da42489..7061cdb470 100644 --- a/devices/pdp11/panel/1170/debugger/front.xml +++ b/devices/pdp11/panel/1170/debugger/front.xml @@ -1,7 +1,7 @@ Control Panel - + ADDRESS @@ -49,7 +49,7 @@ - + DATA @@ -85,36 +85,36 @@ - - + + Enter Clear - - 0000 - 0000 - 0000 - 0000 - 0000 - 0000 - 0000 - 0000 - 0000 + + 0000 + 0000 + 0000 + 0000 + 0000 + 0000 + 0000 + 0000 + 0000 - 0 - 0 - 0 - 0 + 0 + 0 + 0 + 0 - + Run Step Reset Fast - Stopped + Stopped diff --git a/devices/pdp11/panel/1170/front.xml b/devices/pdp11/panel/1170/front.xml index 1b1fd7b632..d62926aa62 100644 --- a/devices/pdp11/panel/1170/front.xml +++ b/devices/pdp11/panel/1170/front.xml @@ -1,7 +1,7 @@ Control Panel - + ADDRESS @@ -49,7 +49,7 @@ - + DATA @@ -85,13 +85,13 @@ - - + + - + Run Reset Fast - Stopped + Stopped diff --git a/devices/pdp11/panel/test/debugger/terminal.xml b/devices/pdp11/panel/test/debugger/terminal.xml index 93b469513e..02fc28ac08 100644 --- a/devices/pdp11/panel/test/debugger/terminal.xml +++ b/devices/pdp11/panel/test/debugger/terminal.xml @@ -1,36 +1,36 @@ Control Panel - - + + Enter Clear - - 0000 - 0000 - 0000 - 0000 - 0000 - 0000 - 0000 - 0000 - 0000 + + 0000 + 0000 + 0000 + 0000 + 0000 + 0000 + 0000 + 0000 + 0000 - 0 - 0 - 0 - 0 + 0 + 0 + 0 + 0 - + Run Step Reset Fast - Stopped + Stopped diff --git a/devices/pdp11/panel/test/terminal.xml b/devices/pdp11/panel/test/terminal.xml index 66aa2fc314..a4dd30e994 100644 --- a/devices/pdp11/panel/test/terminal.xml +++ b/devices/pdp11/panel/test/terminal.xml @@ -1,13 +1,13 @@ Control Panel - - + + - + Run Reset Fast - Stopped + Stopped diff --git a/devices/pdp11/ram/bootdemo/README.md b/devices/pdp11/ram/bootdemo/README.md deleted file mode 100644 index 9633f08aa7..0000000000 --- a/devices/pdp11/ram/bootdemo/README.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: page -title: PDP-11 Boot Demo -permalink: /devices/pdp11/ram/bootdemo/ -redirect_from: - - /devices/pdp11/rom/test/ ---- - -PDP-11 Boot Demo ----------------- - -[BOOTDEMO.MAC](bootdemo.mac) is based on [BOOT.MAC](http://skn.noip.me/pdp11/boot.mac) written by [Paul Nankervis](mailto:paulnank@hotmail.com)) - -[BOOTDEMO.MAC](bootdemo.mac) was cross-assembled with [MACRO11](https://github.com/shattered/macro11) to produce [BOOTDEMO.LST](bootdemo.lst), -which was then processed by [FileDump](/modules/filedump/) to produce [BOOTDEMO.JSON](bootdemo.json). diff --git a/devices/pdp11/ram/bootdemo/makefile b/devices/pdp11/ram/bootdemo/makefile deleted file mode 100644 index d371c4914c..0000000000 --- a/devices/pdp11/ram/bootdemo/makefile +++ /dev/null @@ -1,11 +0,0 @@ -# -# Don't have macro11? Make yourself a copy from https://github.com/shattered/macro11 -# - -all: bootdemo.json - -bootdemo.lst: bootdemo.mac - macro11 bootdemo.mac -l bootdemo.lst - -bootdemo.json: bootdemo.lst - node ../../../../modules/filedump/bin/filedump --file=bootdemo.lst --format=octal --output=bootdemo.json --overwrite diff --git a/disks/c1p/samples.xml b/disks/c1p/samples.xml index 711f9e12cd..443f875df5 100644 --- a/disks/c1p/samples.xml +++ b/disks/c1p/samples.xml @@ -1,5 +1,5 @@ - + OS65D33 diff --git a/disks/pcx86/compiled/library.xml b/disks/pcx86/compiled/library.xml index e85622b3ef..c6399a2a52 100644 --- a/disks/pcx86/compiled/library.xml +++ b/disks/pcx86/compiled/library.xml @@ -1,5 +1,5 @@ - + Empty Diskette (360K) @@ -518,7 +518,7 @@ VGA Tests (Black Book) Load - Save - + Save + diff --git a/disks/pcx86/compiled/samples.xml b/disks/pcx86/compiled/samples.xml index 69139ad510..6b08e9d857 100644 --- a/disks/pcx86/compiled/samples.xml +++ b/disks/pcx86/compiled/samples.xml @@ -1,5 +1,5 @@ - + PC-DOS 1.00 @@ -10,7 +10,7 @@ VisiCalc (1981) Load - Save - + Save + diff --git a/disks/pcx86/cpm/1.1b/machine.xml b/disks/pcx86/cpm/1.1b/machine.xml index 68f8ef0853..4aafc35e49 100644 --- a/disks/pcx86/cpm/1.1b/machine.xml +++ b/disks/pcx86/cpm/1.1b/machine.xml @@ -13,9 +13,9 @@ Load - + - + Run Reset diff --git a/disks/pcx86/fixed/20mb/pcdos330-empty.xml b/disks/pcx86/fixed/20mb/pcdos330-empty.xml index ca4df75102..2dab372421 100644 --- a/disks/pcx86/fixed/20mb/pcdos330-empty.xml +++ b/disks/pcx86/fixed/20mb/pcdos330-empty.xml @@ -1,4 +1,4 @@ - + Save HD diff --git a/disks/pcx86/games/infocom/disks.xml b/disks/pcx86/games/infocom/disks.xml index f97eb7e304..50717f2847 100644 --- a/disks/pcx86/games/infocom/disks.xml +++ b/disks/pcx86/games/infocom/disks.xml @@ -1,5 +1,5 @@ - + @@ -8,6 +8,6 @@ - Load - + Load + diff --git a/disks/pcx86/games/infocom/machine.xml b/disks/pcx86/games/infocom/machine.xml index cd3b567732..f9be73de8f 100644 --- a/disks/pcx86/games/infocom/machine.xml +++ b/disks/pcx86/games/infocom/machine.xml @@ -8,7 +8,7 @@ @@ -317,10 +317,10 @@ padding:; - padding-top:; - padding-right:; - padding-bottom:; - padding-left:; + padding-top:; + padding-right:; + padding-bottom:; + padding-left:; @@ -389,7 +389,7 @@ @@ -451,7 +451,38 @@ - + + + + + + + + + + + + + + + + + + + desc:'' + + ,href:'' + + + + + + + + + + + diff --git a/docs/pcx86/examples/example3a.xml b/docs/pcx86/examples/example3a.xml index e52e84ab08..6a5a50dfd6 100644 --- a/docs/pcx86/examples/example3a.xml +++ b/docs/pcx86/examples/example3a.xml @@ -12,7 +12,7 @@ Monochrome Display - + Control Panel @@ -23,36 +23,36 @@ - 0000 - 0000 - 0000 - 0000 - 0000 - 0000 - 0000 - 0000 - 0000 - 0000 - 0000 - 0000 - 0000 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - Stopped + 0000 + 0000 + 0000 + 0000 + 0000 + 0000 + 0000 + 0000 + 0000 + 0000 + 0000 + 0000 + 0000 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + Stopped Run Step Reset Fast - + @@ -60,14 +60,14 @@ VisiCalc Load - + - + - + diff --git a/modules/c1pjs/lib/outline.xml b/modules/c1pjs/lib/outline.xml index c9000900ed..62f6eac6f7 100644 --- a/modules/c1pjs/lib/outline.xml +++ b/modules/c1pjs/lib/outline.xml @@ -4,7 +4,7 @@ C1Pjs The following document describes the C1Pjs source code. - + diff --git a/modules/c1pjs/templates/components.xsl b/modules/c1pjs/templates/components.xsl index fc2ad1c1a7..cd0e0fc5c5 100644 --- a/modules/c1pjs/templates/components.xsl +++ b/modules/c1pjs/templates/components.xsl @@ -123,10 +123,10 @@ padding:; - padding-top:; - padding-right:; - padding-bottom:; - padding-left:; + padding-top:; + padding-right:; + padding-bottom:; + padding-left:; diff --git a/modules/shared/templates/components.xsl b/modules/shared/templates/components.xsl index 8be709153c..b9baf7f0f9 100644 --- a/modules/shared/templates/components.xsl +++ b/modules/shared/templates/components.xsl @@ -182,10 +182,10 @@ padding:; - padding-top:; - padding-right:; - padding-bottom:; - padding-left:; + padding-top:; + padding-right:; + padding-bottom:; + padding-left:; @@ -318,10 +318,10 @@ padding:; - padding-top:; - padding-right:; - padding-bottom:; - padding-left:; + padding-top:; + padding-right:; + padding-bottom:; + padding-left:; @@ -390,7 +390,7 @@ @@ -452,7 +452,38 @@ - + + + + + + + + + + + + + + + + + + + desc:'' + + ,href:'' + + + + + + + + + + + diff --git a/pubs/pc/programming/Graphics_for_the_IBM_PC/demos/basic.xml b/pubs/pc/programming/Graphics_for_the_IBM_PC/demos/basic.xml index c7a6e384d4..4d534c534f 100644 --- a/pubs/pc/programming/Graphics_for_the_IBM_PC/demos/basic.xml +++ b/pubs/pc/programming/Graphics_for_the_IBM_PC/demos/basic.xml @@ -1,5 +1,5 @@ - + @@ -9,7 +9,7 @@ BASIC Programs - Load - + Load + diff --git a/pubs/pc/programming/Graphics_for_the_IBM_PC/demos/machine-debugger.xml b/pubs/pc/programming/Graphics_for_the_IBM_PC/demos/machine-debugger.xml index 0bf47fef1e..17b8624003 100644 --- a/pubs/pc/programming/Graphics_for_the_IBM_PC/demos/machine-debugger.xml +++ b/pubs/pc/programming/Graphics_for_the_IBM_PC/demos/machine-debugger.xml @@ -8,14 +8,14 @@ @@ -451,7 +451,38 @@ - + + + + + + + + + + + + + + + + + + + desc:'' + + ,href:'' + + + + + + + + + + + diff --git a/versions/pcx86/1.30.1/components.xsl b/versions/pcx86/1.30.1/components.xsl index 4e63686a96..a0fe1e2980 100644 --- a/versions/pcx86/1.30.1/components.xsl +++ b/versions/pcx86/1.30.1/components.xsl @@ -181,10 +181,10 @@ padding:; - padding-top:; - padding-right:; - padding-bottom:; - padding-left:; + padding-top:; + padding-right:; + padding-bottom:; + padding-left:; @@ -317,10 +317,10 @@ padding:; - padding-top:; - padding-right:; - padding-bottom:; - padding-left:; + padding-top:; + padding-right:; + padding-bottom:; + padding-left:; @@ -389,7 +389,7 @@ @@ -451,7 +451,38 @@ - + + + + + + + + + + + + + + + + + + + desc:'' + + ,href:'' + + + + + + + + + + + diff --git a/versions/pdpjs/1.30.1/components.xsl b/versions/pdpjs/1.30.1/components.xsl index 3d896754c3..8f4c9c2d9f 100644 --- a/versions/pdpjs/1.30.1/components.xsl +++ b/versions/pdpjs/1.30.1/components.xsl @@ -181,10 +181,10 @@ padding:; - padding-top:; - padding-right:; - padding-bottom:; - padding-left:; + padding-top:; + padding-right:; + padding-bottom:; + padding-left:; @@ -317,10 +317,10 @@ padding:; - padding-top:; - padding-right:; - padding-bottom:; - padding-left:; + padding-top:; + padding-right:; + padding-bottom:; + padding-left:; @@ -389,7 +389,7 @@ @@ -451,7 +451,38 @@ - + + + + + + + + + + + + + + + + + + + desc:'' + + ,href:'' + + + + + + + + + + + From 59e1f1f4c4f273d05e75b45d4f208656bddab9d6 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Mon, 17 Oct 2016 15:25:15 -0700 Subject: [PATCH 05/32] Changed BOOTTEST to simply TEST --- apps/pdp11/boot/test/README.md | 6 +++--- apps/pdp11/boot/test/{BOOTTEST.json => TEST.json} | 0 apps/pdp11/boot/test/{BOOTTEST.lst => TEST.lst} | 0 apps/pdp11/boot/test/{BOOTTEST.mac => TEST.mac} | 0 apps/pdp11/boot/test/makefile | 10 +++++----- devices/pdp11/machine/1120/test/debugger/machine.xml | 2 +- devices/pdp11/machine/1120/test/machine.xml | 2 +- devices/pdp11/machine/1170/panel/debugger/machine.xml | 2 +- devices/pdp11/machine/1170/panel/machine.xml | 2 +- devices/pdp11/machine/1170/test/debugger/machine.xml | 2 +- devices/pdp11/machine/1170/test/machine.xml | 2 +- devices/pdp11/machine/1170/vt100/debugger/machine.xml | 2 +- devices/pdp11/machine/1170/vt100/machine.xml | 2 +- 13 files changed, 16 insertions(+), 16 deletions(-) rename apps/pdp11/boot/test/{BOOTTEST.json => TEST.json} (100%) rename apps/pdp11/boot/test/{BOOTTEST.lst => TEST.lst} (100%) rename apps/pdp11/boot/test/{BOOTTEST.mac => TEST.mac} (100%) diff --git a/apps/pdp11/boot/test/README.md b/apps/pdp11/boot/test/README.md index 30be090cd0..00da05dbeb 100644 --- a/apps/pdp11/boot/test/README.md +++ b/apps/pdp11/boot/test/README.md @@ -9,7 +9,7 @@ redirect_from: PDP-11 Boot Test ---------------- -[BOOTTEST.MAC](BOOTTEST.mac) is based on [BOOT.MAC](http://skn.noip.me/pdp11/boot.mac) written by [Paul Nankervis](mailto:paulnank@hotmail.com)) +[TEST.MAC](TEST.mac) is based on [BOOT.MAC](http://skn.noip.me/pdp11/boot.mac) written by [Paul Nankervis](mailto:paulnank@hotmail.com)) -[BOOTTEST.MAC](BOOTTEST.mac) was cross-assembled with [MACRO11](https://github.com/shattered/macro11) to produce [BOOTTEST.LST](BOOTTEST.lst), -which was then processed by [FileDump](/modules/filedump/) to produce [BOOTTEST.JSON](BOOTTEST.json). +[TEST.MAC](TEST.mac) was cross-assembled with [MACRO11](https://github.com/shattered/macro11) to produce [TEST.LST](TEST.lst), +which was then processed by [FileDump](/modules/filedump/) to produce [TEST.JSON](TEST.json). diff --git a/apps/pdp11/boot/test/BOOTTEST.json b/apps/pdp11/boot/test/TEST.json similarity index 100% rename from apps/pdp11/boot/test/BOOTTEST.json rename to apps/pdp11/boot/test/TEST.json diff --git a/apps/pdp11/boot/test/BOOTTEST.lst b/apps/pdp11/boot/test/TEST.lst similarity index 100% rename from apps/pdp11/boot/test/BOOTTEST.lst rename to apps/pdp11/boot/test/TEST.lst diff --git a/apps/pdp11/boot/test/BOOTTEST.mac b/apps/pdp11/boot/test/TEST.mac similarity index 100% rename from apps/pdp11/boot/test/BOOTTEST.mac rename to apps/pdp11/boot/test/TEST.mac diff --git a/apps/pdp11/boot/test/makefile b/apps/pdp11/boot/test/makefile index 6d6b10b83a..0e815f029d 100644 --- a/apps/pdp11/boot/test/makefile +++ b/apps/pdp11/boot/test/makefile @@ -2,10 +2,10 @@ # Don't have macro11? Make yourself a copy from https://github.com/shattered/macro11 # -all: BOOTTEST.json +all: TEST.json -BOOTTEST.lst: BOOTTEST.mac - macro11 BOOTTEST.mac -l BOOTTEST.lst +TEST.lst: TEST.mac + macro11 TEST.mac -l TEST.lst -BOOTTEST.json: BOOTTEST.lst - node ../../../../modules/filedump/bin/filedump --file=BOOTTEST.lst --format=octal --output=BOOTTEST.json --overwrite +TEST.json: TEST.lst + node ../../../../modules/filedump/bin/filedump --file=TEST.lst --format=octal --output=TEST.json --overwrite diff --git a/devices/pdp11/machine/1120/test/debugger/machine.xml b/devices/pdp11/machine/1120/test/debugger/machine.xml index c815495f6b..fc86812989 100644 --- a/devices/pdp11/machine/1120/test/debugger/machine.xml +++ b/devices/pdp11/machine/1120/test/debugger/machine.xml @@ -4,7 +4,7 @@ PDP-11/20 Test Machine with 56Kb and Debugger - + diff --git a/devices/pdp11/machine/1120/test/machine.xml b/devices/pdp11/machine/1120/test/machine.xml index c4e3fc0f10..64234acf3e 100644 --- a/devices/pdp11/machine/1120/test/machine.xml +++ b/devices/pdp11/machine/1120/test/machine.xml @@ -4,7 +4,7 @@ PDP-11/20 Test Machine with 56Kb - + diff --git a/devices/pdp11/machine/1170/panel/debugger/machine.xml b/devices/pdp11/machine/1170/panel/debugger/machine.xml index b8d743f609..dfaa6c55ef 100644 --- a/devices/pdp11/machine/1170/panel/debugger/machine.xml +++ b/devices/pdp11/machine/1170/panel/debugger/machine.xml @@ -4,7 +4,7 @@ PDP-11/70 with Front Panel and Debugger - + diff --git a/devices/pdp11/machine/1170/panel/machine.xml b/devices/pdp11/machine/1170/panel/machine.xml index c975dcbf8b..ef77099eaa 100644 --- a/devices/pdp11/machine/1170/panel/machine.xml +++ b/devices/pdp11/machine/1170/panel/machine.xml @@ -4,7 +4,7 @@ PDP-11/70 with Front Panel - + diff --git a/devices/pdp11/machine/1170/test/debugger/machine.xml b/devices/pdp11/machine/1170/test/debugger/machine.xml index 8f8c2ae12b..28686e51fd 100644 --- a/devices/pdp11/machine/1170/test/debugger/machine.xml +++ b/devices/pdp11/machine/1170/test/debugger/machine.xml @@ -4,7 +4,7 @@ PDP-11/70 Test Machine with Debugger - + diff --git a/devices/pdp11/machine/1170/test/machine.xml b/devices/pdp11/machine/1170/test/machine.xml index 186cff8c6d..c5bc975c5d 100644 --- a/devices/pdp11/machine/1170/test/machine.xml +++ b/devices/pdp11/machine/1170/test/machine.xml @@ -4,7 +4,7 @@ PDP-11/70 Test Machine - + diff --git a/devices/pdp11/machine/1170/vt100/debugger/machine.xml b/devices/pdp11/machine/1170/vt100/debugger/machine.xml index e4d5799d43..a9730674e3 100644 --- a/devices/pdp11/machine/1170/vt100/debugger/machine.xml +++ b/devices/pdp11/machine/1170/vt100/debugger/machine.xml @@ -4,7 +4,7 @@ PDP-11/70 with Front Panel - + diff --git a/devices/pdp11/machine/1170/vt100/machine.xml b/devices/pdp11/machine/1170/vt100/machine.xml index 29de720e0d..603c988414 100644 --- a/devices/pdp11/machine/1170/vt100/machine.xml +++ b/devices/pdp11/machine/1170/vt100/machine.xml @@ -4,7 +4,7 @@ PDP-11/70 with Front Panel - + From cb153453e70e0154de7ef1f46d0734e26a17cd89 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Mon, 17 Oct 2016 15:29:59 -0700 Subject: [PATCH 06/32] Changed name of tape demo configuration --- apps/pdp11/tapes/README.md | 6 +++--- apps/pdp11/tapes/{samples.xml => demo.xml} | 0 devices/pdp11/machine/1120/bootstrap/debugger/machine.xml | 2 +- devices/pdp11/machine/1120/bootstrap/machine.xml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) rename apps/pdp11/tapes/{samples.xml => demo.xml} (100%) diff --git a/apps/pdp11/tapes/README.md b/apps/pdp11/tapes/README.md index ed3f2d0c3f..ed552e3738 100644 --- a/apps/pdp11/tapes/README.md +++ b/apps/pdp11/tapes/README.md @@ -7,15 +7,15 @@ permalink: /apps/pdp11/tapes/ PDP-11 Software Tapes --------------------- -The initial PDP-11 software we are working on supporting includes: +Supported PDP-11 software includes: - [Absolute Loader](DEC-11-L2PC-PO.json) - [BASIC (Single User)](DEC-11-AJPB-PB.json) -To make it easy for PDPjs machines to load these applications, we provide the following High-Speed +To make it easy for PDPjs machines to load these tapes, we provide the following High-Speed Paper Tape Reader (PC11) configuration files: -- [samples.xml](samples.xml) +- [tapedemo.xml](tapedemo.xml) These configuration files create UI controls that allow you to choose from a set of tapes that are automatically sent to the machine's PC11 device. diff --git a/apps/pdp11/tapes/samples.xml b/apps/pdp11/tapes/demo.xml similarity index 100% rename from apps/pdp11/tapes/samples.xml rename to apps/pdp11/tapes/demo.xml diff --git a/devices/pdp11/machine/1120/bootstrap/debugger/machine.xml b/devices/pdp11/machine/1120/bootstrap/debugger/machine.xml index fe053de673..ea2264f078 100644 --- a/devices/pdp11/machine/1120/bootstrap/debugger/machine.xml +++ b/devices/pdp11/machine/1120/bootstrap/debugger/machine.xml @@ -9,5 +9,5 @@ - + diff --git a/devices/pdp11/machine/1120/bootstrap/machine.xml b/devices/pdp11/machine/1120/bootstrap/machine.xml index d801920b6f..059aeceaf6 100644 --- a/devices/pdp11/machine/1120/bootstrap/machine.xml +++ b/devices/pdp11/machine/1120/bootstrap/machine.xml @@ -6,7 +6,7 @@ - + From 50a140744229432704d48185ccf8bb37140dd73d Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Mon, 17 Oct 2016 18:22:42 -0700 Subject: [PATCH 07/32] Added PC11 support for loading tapes remotely --- apps/pdp11/tapes/DEC-11-AJPB-PB.json | 2 +- apps/pdp11/tapes/demo.xml | 2 +- docs/pcx86/examples/components.xsl | 22 +- modules/pcx86/lib/disk.js | 38 +- modules/pcx86/lib/fdc.js | 7 +- modules/pdp11/lib/pc11.js | 453 +++++++++++++++++++++++- modules/shared/lib/weblib.js | 55 ++- modules/shared/templates/components.xsl | 22 +- versions/pc8080/1.30.1/components.xsl | 22 +- versions/pc8080/1.30.1/pc8080-dbg.js | 35 +- versions/pc8080/1.30.1/pc8080.js | 80 ++--- versions/pcx86/1.30.1/components.xsl | 22 +- versions/pdpjs/1.30.1/components.xsl | 22 +- versions/pdpjs/1.30.1/pdp11-dbg.js | 391 ++++++++++---------- versions/pdpjs/1.30.1/pdp11.js | 261 +++++++------- 15 files changed, 993 insertions(+), 441 deletions(-) diff --git a/apps/pdp11/tapes/DEC-11-AJPB-PB.json b/apps/pdp11/tapes/DEC-11-AJPB-PB.json index ccc0dd96f8..2024937e2f 100644 --- a/apps/pdp11/tapes/DEC-11-AJPB-PB.json +++ b/apps/pdp11/tapes/DEC-11-AJPB-PB.json @@ -636,4 +636,4 @@ 0x2442 /*022102*/,0x2418 /*022030*/,0x8142 /*100502*/,0x0000 /*000000*/,0xCC00 /*146000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, 0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/, 0x0000 /*000000*/,0xFF00 /*177400*/] -} \ No newline at end of file +} diff --git a/apps/pdp11/tapes/demo.xml b/apps/pdp11/tapes/demo.xml index cba22c8187..9e54a95d84 100644 --- a/apps/pdp11/tapes/demo.xml +++ b/apps/pdp11/tapes/demo.xml @@ -1,5 +1,5 @@ - + diff --git a/docs/pcx86/examples/components.xsl b/docs/pcx86/examples/components.xsl index 605bcdb84c..5c69d9f5a0 100644 --- a/docs/pcx86/examples/components.xsl +++ b/docs/pcx86/examples/components.xsl @@ -738,21 +738,32 @@ - + + + + + + + + + + + + device - ,type:'' + ,type:'',autoMount:'' @@ -878,10 +889,11 @@ - + - + + @@ -893,7 +905,7 @@ fdc - ,autoMount:'',sortBy:'' + ,autoMount:'',sortBy:'' diff --git a/modules/pcx86/lib/disk.js b/modules/pcx86/lib/disk.js index 68962c1272..dc801b5cc5 100644 --- a/modules/pcx86/lib/disk.js +++ b/modules/pcx86/lib/disk.js @@ -1094,7 +1094,6 @@ Disk.prototype.load = function(sDiskName, sDiskPath, file, fnNotify, controller) }; /** - * * build(buffer, fModified) * * Builds a disk image from an ArrayBuffer (eg, from a FileReader object), rather than from JSON-encoded data. @@ -1217,24 +1216,6 @@ Disk.prototype.doneLoad = function(sURL, sDiskData, nErrorCode) } /* * The most likely source of any exception will be here, where we're parsing the disk data. - * - * TODO: IE9 is rather unfriendly and restrictive with regard to how much data it's willing to - * eval(). In particular, the 10Mb disk image we use for the Windows 1.01 demo config fails in - * IE9 with an "Out of memory" exception. One work-around would be to chop the data into chunks - * (perhaps one track per chunk, using regular expressions) and then manually re-assemble it. - * - * However, it turns out that using JSON.parse(sDiskData) instead of eval("(" + sDiskData + ")") - * is a much easier fix. The only drawback is that we must first quote any unquoted property names - * and remove any comments, because while eval() was cool with them, JSON.parse() is more particular; - * the following RegExp replacements take care of those requirements. - * - * The use of hex values is something else that eval() was OK with, but JSON.parse() is not, and - * while I've stopped using hex values in DumpAPI responses (at least when "format=json" is specified), - * I can't guarantee they won't show up in "legacy" images, and there's no simple RegExp replacement - * for transforming hex values into decimal values, so I cop out and fall back to eval() if I detect - * any hex prefixes ("0x") in the sequence. Ditto for error messages, which appear like so: - * - * ["unrecognized disk path: test.img"] */ var aDiskData; if (sDiskData.substr(0, 1) == "<") { // if the "data" begins with a "<"... @@ -1249,6 +1230,25 @@ Disk.prototype.doneLoad = function(sURL, sDiskData, nErrorCode) */ aDiskData = ["Missing disk image: " + this.sDiskName]; } else { + /* + * TODO: IE9 is rather unfriendly and restrictive with regard to how much data it's willing to + * eval(). In particular, the 10Mb disk image we use for the Windows 1.01 demo config fails in + * IE9 with an "Out of memory" exception. One work-around would be to chop the data into chunks + * (perhaps one track per chunk, using regular expressions) and then manually re-assemble it. + * + * However, it turns out that using JSON.parse(sDiskData) instead of eval("(" + sDiskData + ")") + * is a much easier fix. The only drawback is that we must first quote any unquoted property names + * and remove any comments, because while eval() was cool with them, JSON.parse() is more particular; + * the following RegExp replacements take care of those requirements. + * + * The use of hex values is something else that eval() was OK with, but JSON.parse() is not, and + * while I've stopped using hex values in DumpAPI responses (at least when "format=json" is specified), + * I can't guarantee they won't show up in "legacy" images, and there's no simple RegExp replacement + * for transforming hex values into decimal values, so I cop out and fall back to eval() if I detect + * any hex prefixes ("0x") in the sequence. Ditto for error messages, which appear like so: + * + * ["unrecognized disk path: test.img"] + */ if (sDiskData.indexOf("0x") < 0 && sDiskData.substr(0, 2) != "[\"") { aDiskData = JSON.parse(sDiskData.replace(/([a-z]+):/gm, "\"$1\":").replace(/\/\/[^\n]*/gm, "")); } else { diff --git a/modules/pcx86/lib/fdc.js b/modules/pcx86/lib/fdc.js index 48697e9ebf..45c966009b 100644 --- a/modules/pcx86/lib/fdc.js +++ b/modules/pcx86/lib/fdc.js @@ -659,10 +659,7 @@ FDC.prototype.initBus = function(cmp, bus, cpu, dbg) bus.addPortOutputTable(this, FDC.aPortOutput); this.addDiskette("None", "", true); - - if (this.fLocalDisks) { - this.addDiskette("Local Disk", "?"); - } + if (this.fLocalDisks) this.addDiskette("Local Disk", "?"); this.addDiskette("Remote Disk", "??"); if (!this.autoMount()) this.setReady(); @@ -1535,6 +1532,7 @@ FDC.prototype.doneLoadDiskette = function onFDCLoadNotify(drive, disk, sDiskette /** * addDiskette(sName, sPath, fTop) * + * @this {FDC} * @param {string} sName * @param {string} sPath * @param {boolean} [fTop] (default is bottom) @@ -1563,6 +1561,7 @@ FDC.prototype.addDiskette = function(sName, sPath, fTop) * This is used to deal with mount requests (eg, autoMount) that supply a path without a name; * if we can find the path in the "listDisks" control, then we return the associated disk name. * + * @this {FDC} * @param {string} sPath * @return {string|null} */ diff --git a/modules/pdp11/lib/pc11.js b/modules/pdp11/lib/pc11.js index b8f8863960..d356ceec80 100644 --- a/modules/pdp11/lib/pc11.js +++ b/modules/pdp11/lib/pc11.js @@ -31,6 +31,7 @@ if (NODE) { var str = require("../../shared/lib/strlib"); var web = require("../../shared/lib/weblib"); + var DumpAPI = require("../../shared/lib/dumpapi"); var Component = require("../../shared/lib/component"); var State = require("../../shared/lib/state"); var PDP11 = require("./defines"); @@ -48,14 +49,30 @@ function PC11(parms) { Component.call(this, "PC11", parms, PC11); + /* + * We record any 'autoMount' object now, but we no longer parse it until initBus(), because the Computer's + * getMachineParm() service may have an override for us. + */ + this.configMount = parms['autoMount'] || null; + /* * TODO: Technically, the PC11 should have a timer that "clocks" data from the abReader buffer into the * PRB register at the appropriate rate (300 CPS for the high-speed version, 10 CPS for the low-speed version). */ - this.prs = 0; // PRS register - this.prb = 0; // PRB register - this.iReader = 0; // buffer index - this.abReader = []; // buffer for the PRB register + this.prs = 0; // PRS register + this.prb = 0; // PRB register + this.iReader = 0; // buffer index + this.abReader = []; // buffer for the PRB register + + this.flags.local = false; + this.sTapeName = this.sTapePath = this.sTapeFile = ""; + + /* + * Support for local tape images is currently limited to desktop browsers with FileReader support; + * when this flag is set, setBinding() allows local tape bindings and informs initBus() to update the + * "listTapes" binding accordingly. + */ + this.fLocalTapes = (!web.isMobile() && window && 'FileReader' in window); } Component.subclass(PC11); @@ -64,14 +81,103 @@ Component.subclass(PC11); * setBinding(sType, sBinding, control, sValue) * * @this {PC11} - * @param {string|null} sType is the type of the HTML control (eg, "button", "textarea", "register", "flag", "rled", etc) - * @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "buffer") + * @param {string|null} sType is the type of the HTML control (eg, "button", "list", "text", etc) + * @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "listTapes") * @param {Object} control is the HTML control DOM object (eg, HTMLButtonElement) * @param {string} [sValue] optional data value * @return {boolean} true if binding was successful, false if unrecognized binding request */ PC11.prototype.setBinding = function(sType, sBinding, control, sValue) { + var pc11 = this; + + switch (sBinding) { + + case "listTapes": + this.bindings[sBinding] = control; + + control.onchange = function onChangeListTapes(event) { + var controlDesc = pc11.bindings["descTape"]; + var controlOption = control.options[control.selectedIndex]; + if (controlDesc && controlOption) { + var dataValue = {}; + var sValue = controlOption.getAttribute("data-value"); + if (sValue) { + try { + dataValue = eval("(" + sValue + ")"); + } catch (e) { + Component.error("PC11 option error: " + e.message); + } + } + var sHTML = dataValue['desc']; + if (sHTML === undefined) sHTML = ""; + var sHRef = dataValue['href']; + if (sHRef !== undefined) sHTML = "" + sHTML + ""; + controlDesc.innerHTML = sHTML; + } + }; + return true; + + case "descTape": + this.bindings[sBinding] = control; + return true; + + case "loadTape": + this.bindings[sBinding] = control; + + control.onclick = function onClickLoadTape(event) { + var controlTapes = pc11.bindings["listTapes"]; + if (controlTapes) { + var sTapeName = controlTapes.options[controlTapes.selectedIndex].text; + var sTapePath = controlTapes.value; + pc11.loadSelectedTape(sTapeName, sTapePath); + } + }; + return true; + + case "mountTape": + if (!this.fLocalTapes) { + if (DEBUG) this.log("Local tape support not available"); + /* + * We could also simply hide the control; eg: + * + * control.style.display = "none"; + * + * but removing the control altogether seems better. + */ + control.parentNode.removeChild(/** @type {Node} */ (control)); + return false; + } + + this.bindings[sBinding] = control; + + /* + * Enable "Mount" button only if a file is actually selected + */ + control.addEventListener('change', function() { + var fieldset = control.children[0]; + var files = fieldset.children[0].files; + var submit = fieldset.children[1]; + submit.disabled = !files.length; + }); + + control.onsubmit = function(event) { + var file = event.currentTarget[1].files[0]; + if (file) { + var sTapePath = file.name; + var sTapeName = str.getBaseName(sTapePath, true); + pc11.loadSelectedTape(sTapeName, sTapePath, file); + } + /* + * Prevent reloading of web page after form submission + */ + return false; + }; + return true; + + default: + break; + } return false; }; @@ -91,9 +197,30 @@ PC11.prototype.initBus = function(cmp, bus, cpu, dbg) this.cpu = cpu; this.dbg = dbg; + this.configMount = this.cmp.getMachineParm('autoMount') || this.configMount; + + if (this.configMount) { + if (typeof this.configMount == "string") { + try { + /* + * The most likely source of any exception will be right here, where we're parsing + * this JSON-encoded data. + */ + this.configMount = eval("(" + this.configMount + ")"); + } catch (e) { + Component.error("PC11 auto-mount error: " + e.message + " (" + this.configMount + ")"); + this.configMount = null; + } + } + } + bus.addIOTable(this, PC11.UNIBUS_IOTABLE); - this.setReady(); + this.addTape("None", "", true); + if (this.fLocalTapes) this.addTape("Local Tape", "?"); + this.addTape("Remote Tape", "??"); + + if (!this.autoMount()) this.setReady(); }; /** @@ -142,6 +269,318 @@ PC11.prototype.reset = function() this.abReader = []; }; +/** + * autoMount(fRemount) + * + * @this {PC11} + * @param {boolean} [fRemount] is true if we're remounting all auto-mounted tapes + * @return {boolean} true if one or more tape images are being auto-mounted, false if none + */ +PC11.prototype.autoMount = function(fRemount) +{ + if (!fRemount) this.cAutoMount = 0; + if (this.configMount) { + var sTapePath = this.configMount['path']; + var sTapeName = this.configMount['name'] || this.findTape(sTapePath); + if (sTapePath && sTapeName) { + if (!this.loadTape(sTapeName, sTapePath, true) && fRemount) { + this.setReady(false); + } + } else { + this.notice("Incorrect auto-mount settings for PC11 (" + JSON.stringify(this.configMount) + ")"); + } + } + return !!this.cAutoMount; +}; + +/** + * loadSelectedTape(sTapeName, sTapePath, file) + * + * @this {PC11} + * @param {string} sTapeName + * @param {string} sTapePath + * @param {File} [file] is set if there's an associated File object + */ +PC11.prototype.loadSelectedTape = function(sTapeName, sTapePath, file) +{ + if (!sTapePath) { + this.unloadTape(); + return; + } + + if (sTapePath == "?") { + this.notice('Use "Choose File" and "Mount" to select and load a local tape.'); + return; + } + + /* + * If the special path of "??" is selected, then we want to prompt the user for a URL. Oh, and + * make sure we pass an empty string as the 2nd parameter to prompt(), so that IE won't display + * "undefined" -- because after all, undefined and "undefined" are EXACTLY the same thing, right? + * + * TODO: This is literally all I've done to support remote tape images. There's probably more + * I should do, like dynamically updating "listTapes" to include new entries, and adding new entries + * to the save/restore data. + */ + if (sTapePath == "??") { + sTapePath = window.prompt("Enter the URL of a remote tape image.", "") || ""; + if (!sTapePath) return; + sTapeName = str.getBaseName(sTapePath); + if (DEBUG) this.println("Attempting to load " + sTapePath + " as \"" + sTapeName + "\""); + } + + this.loadTape(sTapeName, sTapePath, false, file); +}; + +/** + * loadTape(sTapeName, sTapePath, fAutoMount, file) + * + * NOTE: If sTapePath is already loaded, nothing needs to be done. + * + * @this {PC11} + * @param {string} sTapeName + * @param {string} sTapePath + * @param {boolean} [fAutoMount] + * @param {File} [file] is set if there's an associated File object + * @return {number} 1 if tape loaded, 0 if queued up (or busy), -1 if already loaded + */ +PC11.prototype.loadTape = function(sTapeName, sTapePath, fAutoMount, file) +{ + if (sTapePath) { + if (this.sTapePath.toLowerCase() != sTapePath.toLowerCase()) { + + this.unloadTape(fAutoMount, true); + + if (this.flags.busy) { + this.notice("PC11 busy"); + return 0; + } + + // if (DEBUG) this.println("tape queued: " + sTapeName); + + this.flags.busy = true; + if (fAutoMount) { + this.fAutoMount = true; + this.cAutoMount++; + if (this.messageEnabled()) this.printMessage("auto-loading tape: " + sTapeName); + } + + this.flags.local = !!file; + if (!this.load(sTapeName, sTapePath, file)) { + return 0; + } + return 1; + } + if (DEBUG) this.println("tape loaded"); + } + return -1; +}; + +/** + * load(sTapeName, sTapePath, file) + * + * @this {PC11} + * @param {string} sTapeName + * @param {string} sTapePath + * @param {File} [file] is set if there's an associated File object + * @return {boolean} true if load completed (successfully or not), false if queued + */ +PC11.prototype.load = function(sTapeName, sTapePath, file) +{ + var sTapeURL = sTapePath; + + if (DEBUG) { + var sMessage = 'load("' + sTapeName + '","' + sTapePath + '")'; + this.printMessage(sMessage); + } + + var sTapeFile = str.getBaseName(sTapePath); + + var pc11 = this; + + if (file) { + var reader = new FileReader(); + reader.onload = function() { + pc11.build(reader.result); + }; + reader.readAsArrayBuffer(file); + return true; + } + + /* + * If there's an occurrence of API_ENDPOINT anywhere in the path, we assume we can use it as-is; + * ie, that the user has already formed a URL of the type we use ourselves for unconverted tape images. + */ + if (sTapePath.indexOf(DumpAPI.ENDPOINT) < 0) { + /* + * If the selected tape image has a "json" extension, then we assume it's a pre-converted + * JSON-encoded tape image, so we load it as-is; otherwise, we ask our server-side tape image + * converter to return the corresponding JSON-encoded data. + */ + var sTapeExt = str.getExtension(sTapePath); + if (sTapeExt == DumpAPI.FORMAT.JSON || sTapeExt == DumpAPI.FORMAT.JSON_GZ) { + sTapeURL = encodeURI(sTapePath); + } else { + var sTapeParm = DumpAPI.QUERY.PATH; + sTapeURL = web.getHost() + DumpAPI.ENDPOINT + '?' + sTapeParm + '=' + encodeURIComponent(sTapePath) + "&" + DumpAPI.QUERY.FORMAT + "=" + DumpAPI.FORMAT.JSON; + } + } + + return !!web.getResource(sTapeURL, null, true, function(sURL, sResponse, nErrorCode) { + pc11.doneLoad(sURL, sTapeName, sTapePath, sResponse, nErrorCode); + }); +}; + +/** + * build(buffer) + * + * Builds a disk image from an ArrayBuffer (eg, from a FileReader object), rather than from JSON-encoded data. + * + * @this {PC11} + * @param {?} buffer (we KNOW this is an ArrayBuffer, but we can't seem to convince the Closure Compiler) + */ +PC11.prototype.build = function(buffer) +{ + if (buffer) { + this.aTapeData = new Uint8Array(buffer, 0, buffer.byteLength); + } +}; + +/** + * doneLoad(sURL, sTapeName, sTapePath, sTapeData, nErrorCode) + * + * @this {PC11} + * @param {string} sURL + * @param {string} sTapeName + * @param {string} sTapePath + * @param {string} sTapeData + * @param {number} nErrorCode (response from server if anything other than 200) + */ +PC11.prototype.doneLoad = function(sURL, sTapeName, sTapePath, sTapeData, nErrorCode) +{ + this.flags.busy = false; + + var fPrintOnly = (nErrorCode < 0 && this.cmp && !this.cmp.flags.powered); + + if (nErrorCode) { + /* + * This can happen for innocuous reasons, such as the user switching away too quickly, forcing + * the request to be cancelled. And unfortunately, the browser cancels XMLHttpRequest requests + * BEFORE it notifies any page event handlers, so if the Computer's being powered down, we won't know + * that yet. For now, we rely on the lack of a specific error (nErrorCode < 0), and suppress the + * notify() alert if there's no specific error AND the computer is not powered up yet. + */ + this.notice("Unable to load tape \"" + sTapeName + "\" (error " + nErrorCode + ": " + sURL + ")", fPrintOnly); + } + else { + if (DEBUG && this.messageEnabled()) { + this.printMessage('doneLoad("' + sTapePath + '")'); + } + + Component.addMachineResource(this.idMachine, sURL, sTapeData); + + var resource = web.parseMemoryResource(sURL, sTapeData); + if (resource) { + this.sTapeName = sTapeName; + this.sTapePath = sTapePath; + this.aTapeData = resource.aBytes; + if (DEBUG) this.println("tape loaded: " + sTapeName); + } + } + + if (this.fAutoMount) { + this.fAutoMount = false; + if (!--this.cAutoMount) this.setReady(); + } + + this.displayTape(); +}; + +/** + * addTape(sName, sPath, fTop) + * + * @this {PC11} + * @param {string} sName + * @param {string} sPath + * @param {boolean} [fTop] (default is bottom) + */ +PC11.prototype.addTape = function(sName, sPath, fTop) +{ + var controlTapes = this.bindings["listTapes"]; + if (controlTapes && controlTapes.options) { + for (var i = 0; i < controlTapes.options.length; i++) { + if (controlTapes.options[i].value == sPath) return; + } + var controlOption = document.createElement("option"); + controlOption.text = sName; + controlOption.value = sPath; + if (fTop && controlTapes.childNodes[0]) { + controlTapes.insertBefore(controlOption, controlTapes.childNodes[0]); + } else { + controlTapes.appendChild(controlOption); + } + } +}; + +/** + * findTape(sPath) + * + * This is used to deal with mount requests (eg, autoMount) that supply a path without a name; + * if we can find the path in the "listTapes" control, then we return the associated tape name. + * + * @this {PC11} + * @param {string} sPath + * @return {string|null} + */ +PC11.prototype.findTape = function(sPath) +{ + var controlTapes = this.bindings["listTapes"]; + if (controlTapes && controlTapes.options) { + for (var i = 0; i < controlTapes.options.length; i++) { + var control = controlTapes.options[i]; + if (control.value == sPath) return control.text; + } + } + return str.getBaseName(sPath, true); +}; + +/** + * displayTape() + * + * @this {PC11} + */ +PC11.prototype.displayTape = function() +{ + var controlTapes = this.bindings["listTapes"]; + + if (controlTapes && controlTapes.options) { + var sTargetPath = (this.flags.local? "?" : this.sTapePath); + for (var i = 0; i < controlTapes.options.length; i++) { + if (controlTapes.options[i].value == sTargetPath) { + if (controlTapes.selectedIndex != i) { + controlTapes.selectedIndex = i; + } + break; + } + } + if (i == controlTapes.options.length) controlTapes.selectedIndex = 0; + } +}; + +/** + * unloadTape(fAutoUnload, fQuiet) + * + * @this {PC11} + * @param {boolean} [fAutoUnload] is true if this unload is being forced as part of an automount and/or restored mount + * @param {boolean} [fQuiet] + */ +PC11.prototype.unloadTape = function(fAutoUnload, fQuiet) +{ + this.sTapeName = ""; + this.sTapePath = ""; + this.flags.local = false; +}; + /** * save() * diff --git a/modules/shared/lib/weblib.js b/modules/shared/lib/weblib.js index 412a2a757d..6bf99876f8 100644 --- a/modules/shared/lib/weblib.js +++ b/modules/shared/lib/weblib.js @@ -298,10 +298,45 @@ web.parseMemoryResource = function(sURL, sData) nLoad: null, nExec: null }; + if (sData.charAt(0) == "[" || sData.charAt(0) == "{") { try { - var a, ib; - var data = eval("(" + sData + ")"); + var a, ib, data; + + if (sData.substr(0, 1) == "<") { // if the "data" begins with a "<"... + /* + * Early server configs reported an error (via the nErrorCode parameter) if a tape URL was invalid, + * but more recent server configs now display a somewhat friendlier HTML error page. The downside, + * however, is that the original error has been buried, and we've received "data" that isn't actually + * tape data. So if the data we've received appears to be "HTML-like", we treat it as an error message. + */ + throw new Error(sData); + } + + /* + * TODO: IE9 is rather unfriendly and restrictive with regard to how much data it's willing to + * eval(). In particular, the 10Mb disk image we use for the Windows 1.01 demo config fails in + * IE9 with an "Out of memory" exception. One work-around would be to chop the data into chunks + * (perhaps one track per chunk, using regular expressions) and then manually re-assemble it. + * + * However, it turns out that using JSON.parse(sDiskData) instead of eval("(" + sDiskData + ")") + * is a much easier fix. The only drawback is that we must first quote any unquoted property names + * and remove any comments, because while eval() was cool with them, JSON.parse() is more particular; + * the following RegExp replacements take care of those requirements. + * + * The use of hex values is something else that eval() was OK with, but JSON.parse() is not, and + * while I've stopped using hex values in DumpAPI responses (at least when "format=json" is specified), + * I can't guarantee they won't show up in "legacy" images, and there's no simple RegExp replacement + * for transforming hex values into decimal values, so I cop out and fall back to eval() if I detect + * any hex prefixes ("0x") in the sequence. Ditto for error messages, which appear like so: + * + * ["unrecognized disk path: test.img"] + */ + if (sData.indexOf("0x") < 0 && sData.substr(0, 2) != "[\"") { + data = JSON.parse(sData.replace(/([a-z]+):/gm, "\"$1\":").replace(/\/\/[^\n]*/gm, "")); + } else { + data = eval("(" + sData + ")"); + } resource.nLoad = data['load']; resource.nExec = data['exec']; @@ -347,22 +382,26 @@ web.parseMemoryResource = function(sURL, sData) resource = null; } } catch (e) { - Component.error("Resource data error: " + e.message); + Component.error("Resource data error (" + sURL + "): " + e.message); resource = null; } } else { /* - * Parse the data manually; we'll assume it's in "simplified" hex form - * (a series of hex byte-values separated by whitespace). + * Parse the data manually; we assume it's a series of hex byte-values separated by whitespace. */ + var ab = []; var sHexData = sData.replace(/\n/gm, " ").replace(/ +$/, ""); var asHexData = sHexData.split(" "); - resource.aBytes = new Array(asHexData.length); for (i = 0; i < asHexData.length; i++) { - resource.aBytes[i] = parseInt(asHexData[i], 16); - Component.assert(!isNaN(resource.aBytes[i])); + var n = parseInt(asHexData[i], 16); + if (isNaN(n)) { + Component.error("Resource data error (" + sURL + "): invalid hex byte (" + asHexData[i] + ")"); + break; + } + ab.push(n & 0xff); } + if (i == asHexData.length) resource.aBytes = ab; } return resource; }; diff --git a/modules/shared/templates/components.xsl b/modules/shared/templates/components.xsl index b9baf7f0f9..d2f1b07c88 100644 --- a/modules/shared/templates/components.xsl +++ b/modules/shared/templates/components.xsl @@ -740,21 +740,32 @@ - + + + + + + + + + + + + device - ,type:'' + ,type:'',autoMount:'' @@ -880,10 +891,11 @@ - + - + + @@ -895,7 +907,7 @@ fdc - ,autoMount:'',sortBy:'' + ,autoMount:'',sortBy:'' diff --git a/versions/pc8080/1.30.1/components.xsl b/versions/pc8080/1.30.1/components.xsl index 68c052cfa1..5afadcb976 100644 --- a/versions/pc8080/1.30.1/components.xsl +++ b/versions/pc8080/1.30.1/components.xsl @@ -738,21 +738,32 @@ - + + + + + + + + + + + + device - ,type:'' + ,type:'',autoMount:'' @@ -878,10 +889,11 @@ - + - + + @@ -893,7 +905,7 @@ fdc - ,autoMount:'',sortBy:'' + ,autoMount:'',sortBy:'' diff --git a/versions/pc8080/1.30.1/pc8080-dbg.js b/versions/pc8080/1.30.1/pc8080-dbg.js index 0346bc1e94..344d26855f 100644 --- a/versions/pc8080/1.30.1/pc8080-dbg.js +++ b/versions/pc8080/1.30.1/pc8080-dbg.js @@ -39,8 +39,9 @@ function pa(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a function sa(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c>8&255;else if(e=g.data)for(d.za=Array(4*e.length),f=c=0;c>8&255,d.za[f++]=e[c]>>16&255,d.za[f++]=e[c]>>24&255;else d.za=g;d.Ea=g.symbols;d.za.length?1==d.za.length&&(w(d.za[0]),d=null): -(w("Empty resource: "+a),d=null)}catch(h){w("Resource data error: "+h.message),d=null}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),d.za=Array(a.length),c=0;cb.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Rb=g.load;d.Qb=g.exec;if(e=g.bytes)d.Aa=e;else if(e=g.words)for(d.Aa=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.Aa=Array(4*e.length),f=c=0;c>8&255,d.Aa[f++]=e[c]>>16&255,d.Aa[f++]=e[c]>>24&255;else d.Aa=g;d.Ea=g.symbols;d.Aa.length?1==d.Aa.length&&(w(d.Aa[0]),d=null):(w("Empty resource: "+a),d=null)}catch(h){w("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c>1]},ha:function(a,b){this.u[a]=b;this.Pa=!0},eb:function(a,b){this.u[a]=b;this.Pa=!0},la:function(a,b){this.C.setUint16(a,b,!0);this.Pa=!0},na:function(a,b){a&1?(this.u[a]=b,this.u[a+1]=b>>8):this.K[a>>1]=b;this.Pa=!0}}; function xb(a,b,c){a.I=b;a.A=a.j=0;c&&((a.A=c.A)&&ic(a,hc,!1),(a.j=c.j)&&gc(a,hc,!1))}function kc(a,b){b?--a.j||(a.nb=a.N?a.w:a.Bb,a.Fc=a.N?a.G:a.Wb):--a.A||(a.lb=a.yb,a.Dc=a.Sb)}function gc(a,b,c){c&&a.j||(a.nb=!a.N&&b[1]||a.w,a.Fc=!a.N&&b[3]||a.G);if(c||void 0===c)a.Bb=b[1]||a.w,a.Wb=b[3]||a.G}function ic(a,b,c){c&&a.A||(a.lb=b[0]||a.J,a.Dc=b[2]||a.L);if(c||void 0===c)a.yb=b[0]||a.J,a.Sb=b[2]||a.L}function cc(a,b){b||(b=lc);ic(a,b,void 0);gc(a,b,void 0)} var lc=[],fc=[G.prototype.Y,G.prototype.fb,G.prototype.fa,G.prototype.wa],hc=[G.prototype.O,G.prototype.ja,G.prototype.ca,G.prototype.ma];if(qb)var ec=[G.prototype.M,G.prototype.ha,G.prototype.ba,G.prototype.la],dc=[G.prototype.P,G.prototype.eb,G.prototype.ea,G.prototype.na]; -function mc(a,b){z.call(this,"CPU",a,mc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Sa=c;this.ha=Math.round(this.Y/1E4)/100;this.bb=this.ha*this.Sa;this.D.Aa=!1;this.D.Vb=!1;this.D.tb=a.autoStart;this.D.yc=!1;this.D.hb=!1;this.vb=this.O=0;this.wb=a.csStart;this.jb=a.csInterval;this.kb=a.csStop;this.w=[];this.Ha=this.cb.bind(this);F(this)}A(mc);var nc=["power","reset"];l=mc.prototype; +function mc(a,b){z.call(this,"CPU",a,mc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Sa=c;this.ha=Math.round(this.Y/1E4)/100;this.bb=this.ha*this.Sa;this.D.za=!1;this.D.Vb=!1;this.D.tb=a.autoStart;this.D.yc=!1;this.D.hb=!1;this.vb=this.O=0;this.wb=a.csStart;this.jb=a.csInterval;this.kb=a.csStop;this.w=[];this.Ha=this.cb.bind(this);F(this)}A(mc);var nc=["power","reset"];l=mc.prototype; l.Ra=function(a,b,c,d){this.A=a;this.u=b;this.I=d;for(b=0;b=a.O&&(a.O+=a.jb,c=!0);0<=a.kb&&a.kb<=Gc(a)&&(a.jb=a.kb=-1,Cc(a),a.ra(),c=!0);c&&a.g(Gc(a)+" cycles: checksum="+t(a.vb))}} -l.qa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.D.xa)a=!0;else{var b=null,c,h=db(a.id);for(c=0;ca.K/a.bb?b=1:d=!0;a.Sa=b;b=a.ha*a.Sa;if(a.bb!=b){a.bb=b;b=a.bb.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.A&&a.A.zb()}Ic(a,a.G);a.G=0;a.C=qa();a.J=0;Jc(a);return d}function Kc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Lc(a,b,c){0<=b&&ba.w[b][0]&&(c*=a.Y*a.Sa/1E3,a.w[b][0]=c+Mc(a))}function Mc(a,b){var c=a.L-=a.b;a.b=0;b&&(a.L=0);return c} -l.cb=function(a){if(kb(this,!0)){if(!this.D.Aa){Hc(this);this.A&&this.A.start(this.C,Gc(this));this.D.Aa=!0;this.D.Vb=!0;this.F&&this.F.start();var b=this.N.run;b&&(b.textContent="Halt");this.A&&(this.A.La(!0),a&&this.A.zb(!0))}this.ja>=this.Y&&Jc(this,!0);this.ba=0;this.ea=qa();this.J&&(a=this.ea-this.J,a>this.wa&&(this.C+=a,this.C>this.ea&&(this.C=this.ea)));try{do{for(var c,d=this.D.hb?1:this.fa,e=this.w.length-1;0<=e;e--){var f=this.w[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.mb(c);c=Mc(this,!0);this.ba+= -c;this.G+=c;Fc(this,c);a=c;for(var g=this.w.length-1;0<=g;g--){var h=this.w[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.P-=c;if(0>=this.P){this.P+=this.fa;15<=++this.Ba&&(this.A&&this.A.La(),this.Ba=0);break}}while(this.D.Aa)}catch(k){this.ra();Ec(this);this.A&&this.A.stop(qa(),Gc(this));kb(this,!1);nb(this,k.stack||k.message);return}c=setTimeout;d=this.Ha;this.J=qa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e-=this.J-this.ea;if(f=this.J-this.C)this.K=Math.round(this.G/(10*f))/ -100,864E5<=f&&(this.M=0,Hc(this));if(0>e||this.Ke&&(this.C-=e),e=0;this.ja+=this.ba;this.J+=e;c(d,e)}else Ec(this),this.A&&this.A.stop(qa(),Gc(this))};l.mb=function(){return 0};l.ra=function(a){lb(this,!0);Mc(this);Ic(this,this.G);this.G=0;if(this.D.Aa){this.D.Aa=!1;this.F&&this.F.stop();var b=this.N.run;b&&(b.textContent="Run")}this.D.complete=a};function Ec(a,b){if(a.A){for(var c=a.A,d=0;d=this.Y&&Jc(this,!0);this.ba=0;this.ea=qa();this.J&&(a=this.ea-this.J,a>this.wa&&(this.C+=a,this.C>this.ea&&(this.C=this.ea)));try{do{for(var c,d=this.D.hb?1:this.fa,e=this.w.length-1;0<=e;e--){var f=this.w[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.mb(c);c=Mc(this,!0);this.ba+= +c;this.G+=c;Fc(this,c);a=c;for(var g=this.w.length-1;0<=g;g--){var h=this.w[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.P-=c;if(0>=this.P){this.P+=this.fa;15<=++this.Ba&&(this.A&&this.A.La(),this.Ba=0);break}}while(this.D.za)}catch(k){this.ra();Ec(this);this.A&&this.A.stop(qa(),Gc(this));kb(this,!1);nb(this,k.stack||k.message);return}c=setTimeout;d=this.Ha;this.J=qa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e-=this.J-this.ea;if(f=this.J-this.C)this.K=Math.round(this.G/(10*f))/ +100,864E5<=f&&(this.M=0,Hc(this));if(0>e||this.Ke&&(this.C-=e),e=0;this.ja+=this.ba;this.J+=e;c(d,e)}else Ec(this),this.A&&this.A.stop(qa(),Gc(this))};l.mb=function(){return 0};l.ra=function(a){lb(this,!0);Mc(this);Ic(this,this.G);this.G=0;if(this.D.za){this.D.za=!1;this.F&&this.F.stop();var b=this.N.run;b&&(b.textContent="Run")}this.D.complete=a};function Ec(a,b){if(a.A){for(var c=a.A,d=0;d>8&255;a.T=b&255}function Xc(a){return a.U<<8|a.V}function Yc(a,b){a.U=b>>8&255;a.V=b&255}function K(a){return a.W<<8|a.Z} function Zc(a,b){a.W=b>>8&255;a.Z=b&255}function I(a,b){a.R=b&65535}function $c(a){return a.da&256?1:0}function ad(a,b){a.da=a.da&255|b}function bd(a){return rb[a.ga&255]?4:0}function cd(a){return(a.ga^a.ya)&16?16:0}function dd(a){return a.da&255?0:64}function ed(a){return a.ga&128?128:0}function Uc(a){return a.ua&-214|ed(a)|dd(a)|cd(a)|bd(a)|$c(a)}function Sc(a,b){a.da=a.ga=a.ya=0;b&1&&(a.da|=256);b&4||(a.ga|=1);b&16&&(a.ya|=16);b&64||(a.da|=255);b&128&&(a.ga^=192);a.ua=a.ua&-726|b&512|2} function fd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b)&255}function gd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?1:0))&255}function hd(a,b){a.da=a.ga=a.ya=a.i&b;(a.i|b)&8&&(a.ya^=16);return a.da}function id(a,b){a.ya=b^255;b=a.ga=b+255&255;a.da=a.da&-256|b;return b}function jd(a,b){a.ya=b;b=a.ga=b+1&255;a.da=a.da&-256|b;return b}function Ed(a,b){return a.ga=a.da=a.ya=a.i|b}function L(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+1^256)&255} function Fd(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?0:1)^256)&255}function Gd(a,b){return a.ga=a.da=a.ya=a.i^b}l.aa=function(a){return this.u.aa(a)};l.va=function(a,b){this.u.va(a,b)};function M(a){var b=a.aa(a.R);I(a,a.R+1);return b}function O(a){var b=a.u.ab(a.R);I(a,a.R+2);return b}function P(a){var b=a.u.ab(a.pa);a.pa=a.pa+2&65535;return b}function Q(a,b){a.pa=a.pa-2&65535;a.u.Jb(a.pa,b)} -function Hd(a){if(a.b&&a.j&255&&a.ua&512){for(var b=0;8>b&&!(a.j&1<b?255:1<b&&!(a.j&1<b?255:1<>8;ad(this,a&256);this.b-=4},Ld,function(){var a;Zc(this,a=K(this)+Vc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Vc(this));this.b-=7},function(){Wc(this,Vc(this)-1);this.b-= 5},function(){this.T=jd(this,this.T);this.b-=5},function(){this.T=id(this,this.T);this.b-=5},function(){this.T=M(this);this.b-=7},function(){var a=this.i<<8&256;this.i=(a|this.i)>>1;ad(this,a);this.b-=4},Ld,function(){Yc(this,O(this));this.b-=10},function(){this.va(Xc(this),this.i);this.b-=7},function(){Yc(this,Xc(this)+1);this.b-=5},function(){this.U=jd(this,this.U);this.b-=5},function(){this.U=id(this,this.U);this.b-=5},function(){this.U=M(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255| @@ -139,7 +140,7 @@ function Vd(a,b,c,d){if(d)a.ka("Unable to load system ROM (error "+d+": "+b+")") " ").replace(/ +$/,"").split(" "),a.A=Array(b.length),e=0;e>>f.ia;0>>= f.ia;0>>d.ia],!1)}a.O=["br"];if(a.C)for(b=1;b>>d.ia],!0);a.C=["bw"];a.Xa=0}l.$a=function(a,b,c){var d=!0;c||Ef(this,a,b,!1,!0);if(a!=this.F){var e=Se(b);if(-1===e)this.g("invalid address: "+Z(b.H)),d=!1;else{var f=this.u;f.X[e>>>f.ia].$a(e&f.u,a==this.C)}}d&&(a.push(b),c?b.Qa=!0:(Ff(this,a,a.length-1,"set"),Le(this)));return d}; function Ef(a,b,c,d,e){var f=!1;c=Se(c);for(var g=1;g>>d.ia],b==a.C));h.Qa||Le(a);break}}return f}function Gf(a,b){for(var c=1;c>24,4);break;case 3:y=t(v.ab(y,2),4);break;default:v="imm("+u(r)+")";break a}8086==v.style&&r&64?y="["+y+"]":r&16||(y=(v.style==Je?"$":"0x")+y);v=y}else r&16? (v=(q&3840)>>8,r=Qe[v],8086==a.style&&q&64&&(6==v&&(r="HL"),r="["+r+"]"),v=r):r&128&&(v=(f>>3&7).toString());if(!v||!v.length){h="INVALID";break}0b[0]?1:a[0]=Ga.length&&(ua=0);a.gb=ia;bf++;Ib--}}bf||(a.g("no "+af+"history available"),a.gb=void 0)}else{var oc=Te(a,X);if(oc){var pc=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Eb),pc=Ee(a,ta)>>>0,65536>4||1;mg--&&0tc?String.fromCharCode(tc):".";rc--}Kb&&(Kb+="\n");Kb+=X+" "+od+(Lb?"":" "+ef)}Kb&&a.g(Kb);a.Va=oc}}}}break;case "e":if("else"==f[0])break;var uc=1,ff=255,gf=a.aa,hf=a.va;"ew"==f[0]&&(uc=2,ff=65535,gf=a.ab,hf=a.Jb);var jf=uc<<1,kf=f[1];if(null==kf)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a"); else{var vc=Te(a,kf);if(vc)for(var wc=2;wcvd;){for(var Za=null,sg=256;65536>Ob.H>>>0;){mf.H=a.ab(Ob,2);if(null==Ob.H||!sg--)break;for(var tg=a,yc=mf,nf= null,Pb=yc.H,of=Pb,wd=1;6>=wd&&Pb;wd++){if(2a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())} function la(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"== typeof b){var l="",n;for(n in b)b.hasOwnProperty(n)&&(l&&(l+="&"),l+=n+"="+encodeURIComponent(b[n]));l=l.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g} -function ma(a,b){var c,d={Y:null,wa:null,jb:null,ib:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g=eval("("+b+")");d.jb=g.load;d.ib=g.exec;if(e=g.bytes)d.Y=e;else if(e=g.words)for(d.Y=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.Y=Array(4*e.length),f=c=0;c>8&255,d.Y[f++]=e[c]>>16&255,d.Y[f++]=e[c]>>24&255;else d.Y=g;d.wa=g.symbols;d.Y.length?1==d.Y.length&&(q(d.Y[0]),d=null):(q("Empty resource: "+ -a),d=null)}catch(h){q("Resource data error: "+h.message),d=null}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),d.Y=Array(a.length),c=0;cb?this.Va=this.id:(this.ya=this.id.substr(0,b),this.Va=this.id.substr(b+1));this[a]=c;this.l={ready:!1,Ya:!1,gb:!1,Z:!1,error:!1};this.ab=null;this.l.error=!1;this.A={};this.O=null;v.push(this)}var Ea=void 0,Fa={}; +function ma(a,b){var c,d={aa:null,wa:null,jb:null,ib:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.jb=g.load;d.ib=g.exec;if(e=g.bytes)d.aa=e;else if(e=g.words)for(d.aa=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.aa=Array(4*e.length),f=c=0;c>8&255,d.aa[f++]=e[c]>>16&255,d.aa[f++]=e[c]>>24&255;else d.aa=g;d.wa=g.symbols;d.aa.length?1==d.aa.length&&(q(d.aa[0]),d=null):(q("Empty resource: "+a),d=null)}catch(h){q("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;cb?this.Va=this.id:(this.ya=this.id.substr(0,b),this.Va=this.id.substr(b+1));this[a]=c;this.l={ready:!1,Ya:!1,gb:!1,Y:!1,error:!1};this.ab=null;this.l.error=!1;this.A={};this.O=null;v.push(this)}var Ea=void 0,Fa={}; if(window){Ea||(Ea=window.location.search.substr(1));for(var Ga,Ha=/\+/g,Ia=/([^&=]+)=?([^&]*)/g;Ga=Ia.exec(Ea);)Fa[decodeURIComponent(Ga[1].replace(Ha," "))]=decodeURIComponent(Ga[2].replace(Ha," "))}function Ja(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} function w(a,b){b||(b=r);a.prototype=Ja(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ka=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Ka={},v=[];function La(a,b,c){Ka[a]&&b&&(Ka[a][b]=c)}function Ba(a,b,c){b||q((c?c+": ":"")+a)} function Ma(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>1)+2;10>this.j&&(this.j=10);15>2;this.f=this.c-1;this.i=this.u/this.c|0;this.o=this.i-1;this.m=[];this.v=[];this.B=[];this.C=[];a=new C;Za(a,this.O);this.b=Array(this.i);for(b=0;b>>a.j;0f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.Pa)return h.fb+=h.Pa-e,h.Pa=e,!0;if(e>=h.Pa+h.fb){n=h.size-(e-l);n>f&&(n=f);h.fb=e-h.Pa+n;e=l+a.c;f-=n;g++;continue}}return ab(1,e,f)}e=new C(e,n,a.c,d);Za(e,a.O,h);a.b[g++]=e;e=l+a.c;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+bb[d]+" at "+p(b,4,!0)),!0):ab(2,b,c)}Ya.prototype.J=function(a){return this.b[(a&this.g)>>>this.j].Sa(a&this.f,a)}; function cb(a,b){return a.b[(b&a.g)>>>a.j].eb(b&a.f,b)}function db(a,b){var c=b&a.f,d=(b&a.g)>>>a.j;return c!=a.f?a.b[d].od(c,b):a.b[d++].Sa(c,b)|a.b[d&a.o].Sa(0,b+1)<<8}Ya.prototype.ba=function(a,b){this.b[(a&this.g)>>>this.j].Ta(a&this.f,b&255,a)};function eb(a,b,c){a.b[(b&a.g)>>>a.j].Lb(b&a.f,c&255,b)}function gb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.j;d!=a.f?a.b[e].pd(d,c&65535,b):(a.b[e++].Ta(d,c&255,b),a.b[e&a.o].Ta(0,c>>8&255,b+1))} @@ -63,17 +63,17 @@ function hb(a){for(var b=0,c=[],d=0;d>1),this.a=new Int32Array(this.j,0,c>>2),qb(this,mb?rb:sb);else{this.a=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},C:function(a){return this.a[a>> -2]>>>((a&3)<<3)&255},I:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},S:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.oa=!0},w:function(a,b){return this.eb(a,b)},H:function(a,b){return this.Ib(a,b)},N:function(a,b,c){this.c||this.Lb(a,b,c)},W:function(a, +2]>>>((a&3)<<3)&255},I:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},S:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.oa=!0},w:function(a,b){return this.eb(a,b)},H:function(a,b){return this.Ib(a,b)},N:function(a,b,c){this.c||this.Lb(a,b,c)},W:function(a, b,c){this.c||this.X(a,b,c)},u:function(a){return this.b[a]},B:function(a){return this.b[a]},G:function(a){return this.A.getUint16(a,!0)},M:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.i[a>>1]},L:function(a,b){this.b[a]=b;this.oa=!0},R:function(a,b){this.b[a]=b;this.oa=!0},U:function(a,b){this.A.setUint16(a,b,!0);this.oa=!0},ya:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.i[a>>1]=b;this.oa=!0}};function Za(a,b,c){a.O=b;a.f=a.g=0;c&&((a.f=c.f)&&ub(a,vb,!1),(a.g=c.g)&&wb(a,vb,!1))} -function wb(a,b,c){c&&a.g||(a.Ta=!a.c&&b[1]||a.o,a.pd=!a.c&&b[3]||a.s);if(c||void 0===c)a.Lb=b[1]||a.o,a.X=b[3]||a.s}function ub(a,b,c){c&&a.f||(a.Sa=b[0]||a.m,a.od=b[2]||a.v);if(c||void 0===c)a.eb=b[0]||a.m,a.Ib=b[2]||a.v}function qb(a,b){b||(b=xb);ub(a,b,void 0);wb(a,b,void 0)}var xb=[],tb=[C.prototype.C,C.prototype.S,C.prototype.I,C.prototype.aa],vb=[C.prototype.w,C.prototype.N,C.prototype.H,C.prototype.W]; -if(Ta)var sb=[C.prototype.u,C.prototype.L,C.prototype.G,C.prototype.U],rb=[C.prototype.B,C.prototype.R,C.prototype.M,C.prototype.ya];function yb(a,b){r.call(this,"CPU",a,yb);var c=a.multiplier||1;this.ma=a.cycles||b;this.L=c;this.Fa=Math.round(this.ma/1E4)/100;this.U=this.Fa*this.L;this.l.pa=!1;this.l.Jb=!1;this.l.Qa=a.autoStart;this.l.Cb=!1;this.l.Za=!1;this.ua=this.X=0;this.va=a.csStart;this.aa=a.csInterval;this.ja=a.csStop;this.G=[];this.Xa=this.lb.bind(this);B(this)}w(yb);var zb=["power","reset"]; +function wb(a,b,c){c&&a.g||(a.Ta=!a.c&&b[1]||a.o,a.pd=!a.c&&b[3]||a.s);if(c||void 0===c)a.Lb=b[1]||a.o,a.X=b[3]||a.s}function ub(a,b,c){c&&a.f||(a.Sa=b[0]||a.m,a.od=b[2]||a.v);if(c||void 0===c)a.eb=b[0]||a.m,a.Ib=b[2]||a.v}function qb(a,b){b||(b=xb);ub(a,b,void 0);wb(a,b,void 0)}var xb=[],tb=[C.prototype.C,C.prototype.S,C.prototype.I,C.prototype.Z],vb=[C.prototype.w,C.prototype.N,C.prototype.H,C.prototype.W]; +if(Ta)var sb=[C.prototype.u,C.prototype.L,C.prototype.G,C.prototype.U],rb=[C.prototype.B,C.prototype.R,C.prototype.M,C.prototype.ya];function yb(a,b){r.call(this,"CPU",a,yb);var c=a.multiplier||1;this.ma=a.cycles||b;this.L=c;this.Fa=Math.round(this.ma/1E4)/100;this.U=this.Fa*this.L;this.l.pa=!1;this.l.Jb=!1;this.l.Qa=a.autoStart;this.l.Cb=!1;this.l.Za=!1;this.ua=this.X=0;this.va=a.csStart;this.Z=a.csInterval;this.ja=a.csStop;this.G=[];this.Xa=this.lb.bind(this);B(this)}w(yb);var zb=["power","reset"]; k=yb.prototype;k.ra=function(a,b,c,d){this.v=a;this.j=b;this.O=d;for(b=0;ba.R/a.U&&(b=1);a.L=b;b=a.Fa*a.L;if(a.U!=b){a.U=b;b=a.U.toFixed(2)+"Mhz";var d=a.A.setSpeed;d&&(d.textContent=b);a.ea("target speed: "+b)}c&&a.v&&Ib(a.v)}a.H+=a.N;a.N=0;a.I=ja();a.S=0;Gb(a)}function Jb(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function Kb(a,b,c){0<=b&&ba.G[b][0]&&(c*=a.ma*a.L/1E3,a.G[b][0]=c+Mb(a))}function Mb(a,b){var c=a.W-=a.a;a.a=0;b&&(a.W=0);return c} k.lb=function(a){if(Ra(this,!0)){if(!this.l.pa){Fb(this);this.v&&this.v.start(this.I,Hb(this));this.l.pa=!0;this.l.Jb=!0;this.M&&this.M.start();var b=this.A.run;b&&(b.textContent="Halt");this.v&&(this.v.Da(!0),a&&Ib(this.v,!0))}this.Ga>=this.ma&&Gb(this,!0);this.qa=0;this.ta=ja();this.S&&(a=this.ta-this.S,a>this.Na&&(this.I+=a,this.I>this.ta&&(this.I=this.ta)));try{do{for(var c,d=this.l.Za?1:this.Aa,e=this.G.length-1;0<=e;e--){var f=this.G[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Kb(c);c=Mb(this,!0); -this.qa+=c;this.N+=c;a=c;this.l.Za&&(b=!1,this.ua=this.ua+this.Fb()|0,this.X-=a,0>=this.X&&(this.X+=this.aa,b=!0),0<=this.ja&&this.ja<=Hb(this)&&(this.aa=this.ja=-1,Cb(this),Eb(this),b=!0),b&&this.ea(Hb(this)+" cycles: checksum="+p(this.ua)));a=c;for(var g=this.G.length-1;0<=g;g--){var h=this.G[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.la-=c;if(0>=this.la){this.la+=this.Aa;15<=++this.Oa&&(this.v&&this.v.Da(),this.Oa=0);break}}while(this.l.pa)}catch(l){Eb(this);Db(this);this.v&&this.v.stop(ja(), +this.qa+=c;this.N+=c;a=c;this.l.Za&&(b=!1,this.ua=this.ua+this.Fb()|0,this.X-=a,0>=this.X&&(this.X+=this.Z,b=!0),0<=this.ja&&this.ja<=Hb(this)&&(this.Z=this.ja=-1,Cb(this),Eb(this),b=!0),b&&this.ea(Hb(this)+" cycles: checksum="+p(this.ua)));a=c;for(var g=this.G.length-1;0<=g;g--){var h=this.G[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.la-=c;if(0>=this.la){this.la+=this.Aa;15<=++this.Oa&&(this.v&&this.v.Da(),this.Oa=0);break}}while(this.l.pa)}catch(l){Eb(this);Db(this);this.v&&this.v.stop(ja(), Hb(this));Ra(this,!1);c=l.stack||l.message;this.l.error=!0;this.K(c);return}c=setTimeout;d=this.Xa;this.S=ja();e=this.Na;this.qa&&(e=Math.round(e*this.qa/this.Aa));e-=this.S-this.ta;if(f=this.S-this.I)this.R=Math.round(this.N/(10*f))/100,864E5<=f&&(this.H=0,Fb(this));if(0>e||this.Re&&(this.I-=e),e=0;this.Ga+=this.qa;this.S+=e;c(d,e)}else Db(this),this.v&&this.v.stop(ja(),Hb(this))};k.Kb=function(){return 0}; function Eb(a){a.l.Ya&&(a.l.gb=!0);Mb(a);a.H+=a.N;a.N=0;if(a.l.pa){a.l.pa=!1;a.M&&a.M.stop();var b=a.A.run;b&&(b.textContent="Run")}a.l.complete=void 0}function Db(a){if(a.v){for(var b=a.v,c=0;cb&&!(a.B&1<b?255:1<>8;K(this,a&256);this.a-=4},ic,function(){var a;I(this,a=G(this)+Vb(this));K(this,a>>8&256);this.a-=10},function(){this.b=this.J(Vb(this));this.a-=7},function(){Wb(this,Vb(this)-1);this.a-=5}, function(){this.D=cc(this,this.D);this.a-=5},function(){this.D=bc(this,this.D);this.a-=5},function(){this.D=N(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;K(this,a);this.a-=4},ic,function(){Yb(this,O(this));this.a-=10},function(){this.ba(Xb(this),this.b);this.a-=7},function(){Yb(this,Xb(this)+1);this.a-=5},function(){this.f=cc(this,this.f);this.a-=5},function(){this.f=bc(this,this.f);this.a-=5},function(){this.f=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|J(this); @@ -111,25 +111,25 @@ O(this);Zb(this)&&(R(this,this.o),E(this,a),this.a-=6);this.a-=11},lc,function() Ub(this)&255|this.b<<8);this.a-=11},function(){this.b=dc(this,N(this));this.a-=7},function(){R(this,this.o);E(this,48);this.a-=11},function(){this.s&128&&(E(this,P(this)),this.a-=6);this.a-=5},function(){this.u=G(this)&65535;this.a-=5},function(){var a=O(this);this.s&128&&E(this,a);this.a-=10},function(){this.C|=512;this.a-=4;gc(this)},function(){var a=O(this);this.s&128&&(R(this,this.o),E(this,a),this.a-=6);this.a-=11},lc,function(){M(this,N(this));this.a-=7},function(){R(this,this.o);E(this,56); this.a-=11}];function T(a){r.call(this,"ChipSet",a,T);var b=a.model;b&&!mc[b]&&Ba("Unrecognized ChipSet model: "+b);this.c=mc[b]||{};a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);B(this)}w(T); var V={ca:1978.1,Dc:{da:0,xd:1,Bd:16,Id:32,Rd:64,Qd:128,Ia:14},Ca:{da:1,Tb:1,wc:2,sc:4,tc:16,uc:32,vc:64,Ia:8},Ec:{da:2,wd:3,$d:4,yd:8,Md:16,Nd:32,Od:64,zd:128,Ia:0},Vd:{da:3},Td:{da:2,Jd:7},Xd:{da:3,ae:1,Wd:2,Pd:4,Gd:8,Ad:16,qd:32},Ud:{da:4},Yd:{da:5,Cd:1,Dd:2,Ed:4,Fd:8,be:16}},W={ca:100,ka:{da:66,zb:1,oc:2,pc:4,Ld:8,Kd:16,wb:32,vb:64,rb:128},Rb:{da:66,INIT:0},za:{da:194,sd:0,pb:16,yc:32,xb:48,ac:0,bc:32},Ua:{da:162,Sd:0,dc:0,$b:0,cc:0,Zb:0},na:{Hd:{da:98},Ea:{Ob:0,Nb:1,Bc:2,Jc:4,Ub:5,zc:6,Zd:7}, -Wa:16383}},mc={SI1978:V,VT100:W};T.prototype.V=function(){return!1};T.prototype.ra=function(a,b,c,d){this.j=b;this.a=c;this.O=d;this.v=a;this.m=Wa(a,"Keyboard");this.aa=Wa(a,"SerialPort");this.video=Wa(a,"Video");ib(b,this,this.c.bb);jb(b,this,this.c.cb)};T.prototype.ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};T.prototype.ia=function(a){return a?this.save():!0};V.INIT=[[V.Dc.Ia,V.Ca.Ia,V.Ec.Ia,0,0,0,0]]; +Wa:16383}},mc={SI1978:V,VT100:W};T.prototype.V=function(){return!1};T.prototype.ra=function(a,b,c,d){this.j=b;this.a=c;this.O=d;this.v=a;this.m=Wa(a,"Keyboard");this.Z=Wa(a,"SerialPort");this.video=Wa(a,"Video");ib(b,this,this.c.bb);jb(b,this,this.c.cb)};T.prototype.ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};T.prototype.ia=function(a){return a?this.save():!0};V.INIT=[[V.Dc.Ia,V.Ca.Ia,V.Ec.Ia,0,0,0,0]]; W.INIT=[[W.Rb.INIT,W.ka.oc|W.ka.pc],[W.za.ac,W.za.bc],[W.Ua.dc,W.Ua.$b,W.Ua.cc,W.Ua.Zb],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];k=T.prototype;k.reset=function(){this.c.INIT&&!this.restore(this.c.INIT)&&this.K("reset error")}; k.save=function(){var a=new F(this);switch(this.c.ca){case V.ca:a.set(0,[this.W,this.g,this.X,this.C,this.M,this.S,this.U]);break;case W.ca:a.set(0,[this.L,this.u]),a.set(1,[this.o,this.s]),a.set(2,[this.f,this.G,this.R,this.N]),a.set(3,[this.B,this.b,this.w,this.H,this.i])}return a.data()}; k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.c.ca){case V.ca:return this.W=b[0],this.g=b[1],this.X=b[2],this.C=b[3],this.M=b[4],this.S=b[5],this.U=b[6],!0;case W.ca:return this.L=b[0],this.u=b[1],b=a[1],this.o=b[0],this.s=b[1],b=a[2],this.f=b[0],this.G=b[1],this.R=b[2],this.N=b[3],b=a[3],this.B=b[0],this.b=b[1],this.w=b[2],this.H=b[3],this.i=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.Wc=function(){return this.W};k.Xc=function(){return this.g};k.Yc=function(){return this.X}; k.Vc=function(){return this.C>>8-this.M&255};k.dd=function(a,b){this.M=b};k.fd=function(a,b){this.S=b};k.ed=function(a,b){this.C=b<<8|this.C>>8};k.gd=function(a,b){this.U=b};k.hd=function(){};function nc(a){var b=0,c=0,d=~a.B;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c} k.Zc=function(){var a=this.u,a=a&~W.ka.vb;if((Hb(this.a)&64)<<1&&(a|=W.ka.vb,a!=this.u)){var b,c;b=this.w&1;switch(this.w>>1&7){case W.na.Ea.Nb:this.B=this.B<<1|b;break;case W.na.Ea.Ub:b=nc(this);this.i[b]=W.na.Wa;break;case W.na.Ea.Ob:this.b=this.b<<1|b;break;case W.na.Ea.Jc:b=nc(this);c=this.b&W.na.Wa;this.i[b]=c;break;case W.na.Ea.zc:b=nc(this);c=this.i[b];null==c&&(c=W.na.Wa);this.b=c;break;case W.na.Ea.Bc:this.b<<=1,this.H=this.b&W.na.Wa+1}}a&=~W.ka.wb;this.H&&(a|=W.ka.wb);a&=~W.ka.rb;if(b=this.m){b= -this.m;if(c=b.f)c=b.a,c=Hb(b.a)>=b.m+c.ma*c.L/1E3*1.2731488;c&&(b.f=!1);b=!b.f}b&&(a|=W.ka.rb);a&=~W.ka.zb;this.aa&&this.aa.fa&1&&(a|=W.ka.zb);return this.u=a};k.jd=function(a,b){this.L=b};k.md=function(a,b){this.w=b};k.ld=function(a,b){a=b&3;switch(b>>2&3){case 0:this.f=this.f&-4|a;break;case 1:this.f=this.f&-13|a<<2;this.video&&(b=this.video,a=this.f,b.qa!==a&&((b.qa=a)?Nb(b,!0):b.ta=!0));break;case 2:switch(a){case 0:this.G=~this.G;break;case 2:case 3:this.R=3-a}break;case 3:this.N=a}}; +this.m;if(c=b.f)c=b.a,c=Hb(b.a)>=b.m+c.ma*c.L/1E3*1.2731488;c&&(b.f=!1);b=!b.f}b&&(a|=W.ka.rb);a&=~W.ka.zb;this.Z&&this.Z.fa&1&&(a|=W.ka.zb);return this.u=a};k.jd=function(a,b){this.L=b};k.md=function(a,b){this.w=b};k.ld=function(a,b){a=b&3;switch(b>>2&3){case 0:this.f=this.f&-4|a;break;case 1:this.f=this.f&-13|a<<2;this.video&&(b=this.video,a=this.f,b.qa!==a&&((b.qa=a)?Nb(b,!0):b.ta=!0));break;case 2:switch(a){case 0:this.G=~this.G;break;case 2:case 3:this.R=3-a}break;case 3:this.N=a}}; k.kd=function(a,b){b&W.za.yc?(b&=W.za.xb,this.s!=b&&(this.s=b,this.video&&(this.video.Hb=this.s==W.za.xb?50:60))):(b&=W.za.pb,this.o!=b&&(this.o=b,this.video&&(a=this.video,b=this.o==W.za.pb?132:80,a.H=b,a.T=a.Aa,80>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.wa=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(h){a.K("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm, " ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e>>f.j;0>>=f.j;0>>=f.j;0d?a.j.push({mb:b,hb:Date.now(),$a:!1}):(a.j[d].hb=Date.now(),a.j[d].$a=!1);else if(0<=d){if(!a.j[d].$a){var e=a.j[d].hb;if(e&&100>Date.now()-e)return a.j[d].$a=!0,Ec(a),!0}a.j.splice(d,1)}if(a.M){d=0;switch(b){case "1p":d=V.Ca.sc;break;case "2p":d=V.Ca.wc;break;case "coin":d=V.Ca.Tb;break;case "left":d=V.Ca.uc;break;case "right":d=V.Ca.vc;break;case "fire":d=V.Ca.tc}d&&(a=a.M,b=d,a.g&=~b,c&&(a.g|=b))}return!0} function Ec(a){for(var b=0,c=-1;bc||c>e)c=e}else{Cc(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){Ec(a)},c)}k.$c=function(){var a=this.g;0<=this.c&&(this.c>3)*a.G,!$a(a.j,a.ja,a.B,3)))return!1;a.B?(a.Ma=a.f.createImageData(b,c),a.Oa=16/a.la|0,Kc(a,a.B>>1)):Kc(a,(a.H+1)*a.W);a.s=document.createElement("canvas");a.s.width=b;a.s.height=c;a.sa=a.s.getContext("2d");a.I={};a.S=1<>3)*a.G,!$a(a.j,a.ja,a.B,3)))return!1;a.B?(a.Ma=a.f.createImageData(b,c),a.Oa=16/a.la|0,Kc(a,a.B>>1)):Kc(a,(a.H+1)*a.W);a.s=document.createElement("canvas");a.s.width=b;a.s.height=c;a.sa=a.s.getContext("2d");a.I={};a.S=1<=a.Aa?8:16,f=8>(7=a.Aa?8:16,f=8>(7>4)*c)}return l}Fc.prototype.ga=function(){return!0};Fc.prototype.V=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.va[b]=c,!0;switch(b){case "fullScreen":return this.A[b]=c,this.b&&this.b.Ha?c.onclick=function(){d.Ha()}:c.parentNode.removeChild(c),!0}return!1}; Fc.prototype.Ha=function(){var a=!1;if(this.b){if(this.b.Ha){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.C/this.w;b>c&&(a=Math.round(c/b*100)+"%")}this.La?(this.u.style.width=a,this.u.style.width=a,this.u.style.display="block",this.u.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Ha();a=!0}this.R&&this.R.focus()}return a}; function Ic(a,b){!b&&a.b&&(a.La?a.u.style.width=a.u.style.height="":a.b.style.width=a.b.style.height="")}function Kc(a,b){a.Na=b;a.N=!1;if(void 0===a.i||a.i.length!=a.Na)a.i=Array(a.Na)}function Mc(a,b,c,d,e){d=a.c?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.U&&(208<=c&&236>c?e=a.S+0:28<=c&&72>c&&(e=a.S+1));a=a.L[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} -function Nb(a,b){var c=!0;if(!b){a.ma&&(120==a.ma?a.Xa&1?(hc(a.a,2),c=!1):hc(a.a,1):hc(a.a,4));if(c&&a.N&&a.B){for(var d=a.j,e=a.B,f=!0,g=a.ja>>>d.j;0>=1);;){var x=cb(a.j,u++);if(127==(x&127)){var t=cb(a.j,u++),d=t&96,c=(t&15)<<8|cb(a.j,u),c=c+(t&16? -8192:16384);break}if(n>4)*x.P,Z,sa,Pa,fb,zc=x.T,Lb=x.P;D?(Z=H*t.T,sa=e*t.P,Pa=t.T,fb=t.P):(Z=H*t.Fa,sa=e*t.Ga,Pa=t.Fa,fb=t.Ga);x.T>t.T&&(Z*=2,Pa*=2);x.P>t.P&&(y||(Q+=t.P),Lb=t.P);D?D.drawImage(x.canvas,U,Q,zc,Lb,Z,sa,Pa,fb):(Z+=0,sa+=0,t.f.drawImage(x.canvas,U,Q,zc,Lb, -Z,sa,Pa,fb))}h++}g++}e++}}a.N=!0;!b&&a.ta&&1==h&&(a.i[l]=-1,h=0);a.ta=!1;(h||b)&&a.sa&&a.f.drawImage(a.s,0,a.qa,a.o,a.G-a.P,0,0,a.Nc,a.Mb)}else{e=a.ja;f=e+a.B;l=h=g=0;b=a.o;n=0;c=a.G;y=d=0;u=a.la;H=(1<>>t.j;t=x!=t.f?t.b[U].Ib(x,D):t.b[U++].eb(x,D)|t.b[U&t.o].eb(0,D+1)<<8;if(a.N&&t===a.i[g])h+=a.Oa;else{a.i[g]=t;(D=y)&&(t=t>>8|(t&255)<<8);h>D&H,Mc(a,a.Ma,h++,l,U),D+=u;h>n&&(n=h);l=d&&(d=l+1)}e+= +function Nb(a,b){var c=!0;if(!b){a.ma&&(120==a.ma?a.Xa&1?(hc(a.a,2),c=!1):hc(a.a,1):hc(a.a,4));if(c&&a.N&&a.B){for(var d=a.j,e=a.B,f=!0,g=a.ja>>>d.j;0>=1);;){var x=cb(a.j,u++);if(127==(x&127)){var t=cb(a.j,u++),d=t&96,c=(t&15)<<8|cb(a.j,u),c=c+(t&16? +8192:16384);break}if(n>4)*x.P,Z,sa,Pa,fb,zc=x.T,Lb=x.P;D?(Z=H*t.T,sa=e*t.P,Pa=t.T,fb=t.P):(Z=H*t.Fa,sa=e*t.Ga,Pa=t.Fa,fb=t.Ga);x.T>t.T&&(Z*=2,Pa*=2);x.P>t.P&&(z||(Q+=t.P),Lb=t.P);D?D.drawImage(x.canvas,U,Q,zc,Lb,Z,sa,Pa,fb):(Z+=0,sa+=0,t.f.drawImage(x.canvas,U,Q,zc,Lb,Z, +sa,Pa,fb))}h++}g++}e++}}a.N=!0;!b&&a.ta&&1==h&&(a.i[l]=-1,h=0);a.ta=!1;(h||b)&&a.sa&&a.f.drawImage(a.s,0,a.qa,a.o,a.G-a.P,0,0,a.Nc,a.Mb)}else{e=a.ja;f=e+a.B;l=h=g=0;b=a.o;n=0;c=a.G;z=d=0;u=a.la;H=(1<>>t.j;t=x!=t.f?t.b[U].Ib(x,D):t.b[U++].eb(x,D)|t.b[U&t.o].eb(0,D+1)<<8;if(a.N&&t===a.i[g])h+=a.Oa;else{a.i[g]=t;(D=z)&&(t=t>>8|(t&255)<<8);h>D&H,Mc(a,a.Ma,h++,l,U),D+=u;h>n&&(n=h);l=d&&(d=l+1)}e+= 2;g++;if(h>=a.o&&(h=0,l++,l>a.G))break}a.N=!0;bMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= +za(function(){for(var a=A(document,"pc8080","video"),b=0;bMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= (a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Fa.aspect);f&&.3<=f&&3.33>=f&&(ya("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");ta("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Fc(d,e,g,f,c);Qa(d,c)}}); function Nc(a){this.I=+a.adapter;switch(this.I){case 0:this.L=0;this.R=2;break;default:q("Unrecognized serial adapter #"+this.I);return}this.b=this.c=null;this.N=a.tabSize;this.H=a.charBOL;this.f=0;this.C=!1;r.call(this,"SerialPort",a,Nc);var b=a.binding;if("console"==b)this.c="";else{var c;a=Oc;b&&(void 0===c&&(c="Panel"),(c=Oa(c,this.id))&&(b=c.A[b])&&this.V(null,a,b))}this.g="";this.i=this.s=null;this.exports={connect:this.Gb,receiveData:this.kb}}w(Nc); var Pc=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Qc=[!1,0,0,133,142,39,238],Oc="buffer";k=Nc.prototype; @@ -167,28 +167,28 @@ k.Gb=function(){if(!this.i){var a=Ab(this.v,"connection");if(a){var b=a.split("- k.ia=function(a){return a?this.save():!0};k.reset=function(){Uc(this)};k.save=function(){var a=new F(this),b=0,c=[];c[b++]=this.o;c[b++]=this.B;c[b++]=this.G;c[b++]=this.fa;c[b++]=this.m;c[b++]=this.w;c[b]=this.u;a.set(0,c);return a.data()};k.restore=function(a){return Uc(this,a[0])};function Uc(a,b){var c=0;b||(b=Qc);a.o=b[c++];a.B=b[c++];a.G=b[c++];a.fa=b[c++];a.m=b[c++];a.w=b[c++];a.u=b[c];return!0} function Vc(a,b){var c=a.u&b;b&15||(c>>=4);b=Pc[c];c=((a.m&12)>>2)+6;a.m&16&&c++;c+=((a.m&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function Rc(a,b){return a.C||a.fa&2?!1:(a.B=b,a.fa|=2,hc(a.a,a.R),!0)}k.kb=function(a){null!=a&&(this.g="number"!=typeof a?a:this.g+String.fromCharCode(a));this.g&&(Rc(this,this.g.charCodeAt(0))&&(this.g=this.g.substr(1)),this.g&&this.a&&Kb(this.a,this.S,Vc(this,15)));return!0};k.Uc=function(){var a=this.B;this.fa&=-3;return a};k.Tc=function(){return this.fa}; k.cd=function(a,b){this.G=b;this.fa&=-6;if(19==b)this.C=!0;else if(17==b)this.C=!1;else if(this.s&&this.s.call(this.i,b),this.b)if(8==b)this.b.value=this.b.value.slice(0,-1),0":String.fromCharCode(b);var c=a.length;9==b?(b=this.N||8,c=b-this.f%b,this.N&&(a=" ".slice(0,c))):13==b&&(this.f=c=0,a="\n");this.H&&!this.f&&c&&(a=String.fromCharCode(this.H)+a);this.b.value+=a;this.b.scrollTop=this.b.scrollHeight;this.f+=c}else if(null!= -this.c){if(10==b||1024<=this.c.length)this.ea(this.c),this.c="";10!=b&&(this.c+=String.fromCharCode(b))}this.a&&Kb(this.a,this.U,Vc(this,240))};k.bd=function(a,b){this.o?(this.w=b,this.w&64&&(this.o=!1)):(this.m=b,this.o=!0)};k.ad=function(a,b){this.u=b};var Sc={0:Nc.prototype.Uc,1:Nc.prototype.Tc},Tc={0:Nc.prototype.cd,1:Nc.prototype.bd,2:Nc.prototype.ad};za(function(){for(var a=A(document,"pc8080","serial"),b=0;b\nLicense: GPL version 3 or later ");for(b=0;bYc){if($c(d,this.s)){this.i=new F(this,"1.30.1","failsafe");$c(this.i)&&(ed(this,d),a=2,fd(this.i));this.i.set("timestamp",ka());gd(this.i);var e=this.b&&!this.v;if(1==a||na("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=dd(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?$c(d,g):("error"== f&&"no machine state"!=g?(this.K("Error: "+g),"unable to verify user"==g&&(ra("user",""),this.c=null)):this.ea(f+": "+g),fd(d),$c(d)?(c=dd(d),e=!0):c=!1))}e&&cd(this,c?d:null)}else 2==a&&d.clear()}else cd(this);delete this.s;delete this.u}e=Ma(this.id);for(f=0;fa[1];a=a[2];this.L=!0;this.l.Z=!0;var d=this.A.power;d&&(d.textContent="Shutdown");this.a&&(hd(this,this.a,b,c,a),this.a.Qa());this.C&&(ed(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0}; +function hd(a,b,c,d,e){if(!b.l.Y){b.l.Y=!0;if(b.ga){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.ga(f,d)&&f&&(q("Unable to restore state for "+b.type),a.B&&!a.G?(c.clear(),a.b=Yc,window&&window.location.reload()):a.C=!0,b.ga(null),e=!1)}if(!d&&b.yb)for(a=b.yb.split("|"),c=0;ca[1];a=a[2];this.L=!0;this.l.Y=!0;var d=this.A.power;d&&(d.textContent="Shutdown");this.a&&(hd(this,this.a,b,c,a),this.a.Qa());this.C&&(ed(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0}; function ed(a,b){if(na("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PC8080",ver:"1.30.1"};d.url=a.I;d.user=c;d.type="bug";d.data=b;la("http://www.pcjs.org/api/v1/report",d,!0)}} -function id(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new F(a,"1.30.1"),g=new F(a,"1.30.1","validate"),h=ka();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ia&&(c&&Eb(a.a),d=a.a.ia(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.l.Z=!1,!1===d&&(e=null)));for(var h=Ma(a.id),l=0;l).*?(<\/xsl:variable>)/,"$1pc8080$2" null)} function pd(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");la(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],n,u=/( [a-z]+=)(['"])(.*?)\2/g;n=u.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);pd(a,b,c)}})}else c(a,null)} -function qd(a,b,c,d){function e(a){if(void 0===h){var b=g&&A(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ga(a))}function f(a){e("Error: "+a);l&&(--md||Ca(!0));l=!1}var g,h,l=!0;md++;Ka[a]={};try{if(g=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=n:y.appendChild(document.createTextNode(n));u.appendChild(y)}c|| +function qd(a,b,c,d){function e(a){if(void 0===h){var b=g&&A(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ga(a))}function f(a){e("Error: "+a);l&&(--md||Ca(!0));l=!1}var g,h,l=!0;md++;Ka[a]={};try{if(g=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],z=document.createElement("style");z.type="text/css";z.styleSheet?z.styleSheet.cssText=n:z.appendChild(document.createTextNode(n));u.appendChild(z)}c|| (c="/versions/pc8080/1.30.1/components.xsl");n=function(d,h){h?nd(c,null,null,!1,e,function(d,l){l?(La(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--md||Ca(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--md||Ca(!0)):f("invalid machine element: "+ a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?nd(b,a,d,!0,e,n):od(b,null,a,d,!1,e,n)}else f("missing machine element: "+a)}catch(H){f(H.message)}return l}window.embedPC8080=function(a,b,c,d){Ca(!1);return qd(a,b,c,d)};window.enableEvents=Ca;window.sendEvent=Da;})(); diff --git a/versions/pcx86/1.30.1/components.xsl b/versions/pcx86/1.30.1/components.xsl index a0fe1e2980..2636d6e68c 100644 --- a/versions/pcx86/1.30.1/components.xsl +++ b/versions/pcx86/1.30.1/components.xsl @@ -738,21 +738,32 @@ - + + + + + + + + + + + + device - ,type:'' + ,type:'',autoMount:'' @@ -878,10 +889,11 @@ - + - + + @@ -893,7 +905,7 @@ fdc - ,autoMount:'',sortBy:'' + ,autoMount:'',sortBy:'' diff --git a/versions/pdpjs/1.30.1/components.xsl b/versions/pdpjs/1.30.1/components.xsl index 8f4c9c2d9f..0e4f5a23cd 100644 --- a/versions/pdpjs/1.30.1/components.xsl +++ b/versions/pdpjs/1.30.1/components.xsl @@ -738,21 +738,32 @@ - + + + + + + + + + + + + device - ,type:'' + ,type:'',autoMount:'' @@ -878,10 +889,11 @@ - + - + + @@ -893,7 +905,7 @@ fdc - ,autoMount:'',sortBy:'' + ,autoMount:'',sortBy:'' diff --git a/versions/pdpjs/1.30.1/pdp11-dbg.js b/versions/pdpjs/1.30.1/pdp11-dbg.js index 4986bdf8b3..33b1fcc703 100644 --- a/versions/pdpjs/1.30.1/pdp11-dbg.js +++ b/versions/pdpjs/1.30.1/pdp11-dbg.js @@ -28,234 +28,241 @@ http://pcjs.org/modules/pdp11/lib/computer.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2016 */ -for(var h,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,da=["Math","log2"],ea=0;ea>=3;return(c?"0o":"")+d}function k(a,b,c){var d="";b?8=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d} -function oa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0":">",'"':""","'":"'"};function ta(a){return a.replace(/[&<>"']/g,function(a){return sa[a]})}function ua(a,b){return(a+" ").slice(0,b)} -function va(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var wa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"}; -function ya(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a>1,l;l=c(b,a[g]);0a?"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 Ba(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var l=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(l.onreadystatechange=function(){4===l.readyState&&(f=l.responseText,200==l.status||!l.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=l.status||-1),d&&d(a,f,e))});if(b&&"object"== -typeof b){var m="",p;for(p in b)b.hasOwnProperty(p)&&(m&&(m+="&"),m+=p+"="+encodeURIComponent(b[p]));m=m.replace(/%20/g,"+");l.open("POST",a,!!c);l.setRequestHeader("Content-type","application/x-www-form-urlencoded");l.send(m)}else l.open("GET",a,!!c),"bytes"==b&&l.overrideMimeType("text/plain; charset=x-user-defined"),l.send();c||(f=l.responseText,200!=l.status&&(e=l.status||-1),d&&d(a,f,e),g=[f,e]);return g} -function Fa(a,b){var c,d={ga:null,ja:null,Lb:null,Kb:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g=eval("("+b+")");d.Lb=g.load;d.Kb=g.exec;if(e=g.bytes)d.ga=e;else if(e=g.words)for(d.ga=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.ga=Array(4*e.length),f=c=0;c>8&255,d.ga[f++]=e[c]>>16&255,d.ga[f++]=e[c]>>24&255;else d.ga=g;d.ja=g.symbols;d.ga.length?1==d.ga.length&&(n(d.ga[0]),d=null): -(n("Empty resource: "+a),d=null)}catch(l){n("Resource data error: "+l.message),d=null}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),d.ga=Array(a.length),c=0;c>=3;return(c?"0o":"")+d}function l(a,b,c){var d="";b?8=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d} +function oa(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0":">",'"':""","'":"'"};function ta(a){return a.replace(/[&<>"']/g,function(a){return sa[a]})} +function ua(a,b){return(a+" ").slice(0,b)}function va(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var wa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"}; +function ya(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a>1,k;k=c(b,a[g]);0a?"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 Ba(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(k.onreadystatechange=function(){4===k.readyState&&(f=k.responseText,200==k.status||!k.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=k.status||-1),d&&d(a,f,e))});if(b&&"object"== +typeof b){var m="",p;for(p in b)b.hasOwnProperty(p)&&(m&&(m+="&"),m+=p+"="+encodeURIComponent(b[p]));m=m.replace(/%20/g,"+");k.open("POST",a,!!c);k.setRequestHeader("Content-type","application/x-www-form-urlencoded");k.send(m)}else k.open("GET",a,!!c),"bytes"==b&&k.overrideMimeType("text/plain; charset=x-user-defined"),k.send();c||(f=k.responseText,200!=k.status&&(e=k.status||-1),d&&d(a,f,e),g=[f,e]);return g} +function Ca(a,b){var c,d={ja:null,ka:null,Lb:null,Kb:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Lb=g.load;d.Kb=g.exec;if(e=g.bytes)d.ja=e;else if(e=g.words)for(d.ja=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.ja=Array(4*e.length),f=c=0;c>8&255,d.ja[f++]=e[c]>>16&255,d.ja[f++]=e[c]>>24&255;else d.ja=g;d.ka=g.symbols;d.ja.length?1==d.ja.length&&(n(d.ja[0]),d=null):(n("Empty resource: "+a),d=null)}catch(k){n("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;cb?this.Ua=this.id:(this.Va=this.id.substr(0,b),this.Ua=this.id.substr(b+1));this[a]=c;this.v={ready:!1,mb:!1,Ib:!1,ia:!1,error:!1};this.zb=null;this.v.error=!1;this.J={};this.i=null;this.ka=d||0;t.push(this)}var cb=void 0,db={}; +function r(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Yb=b.comment;this.tc=b;b=this.id.indexOf(".");0>b?this.Wa=this.id:(this.Ra=this.id.substr(0,b),this.Wa=this.id.substr(b+1));this[a]=c;this.v={ready:!1,Ia:!1,Ib:!1,ha:!1,error:!1};this.zb=null;this.v.error=!1;this.I={};this.i=null;this.la=d||0;t.push(this)}var cb=void 0,db={}; if(window){cb||(cb=window.location.search.substr(1));for(var eb,fb=/\+/g,gb=/([^&=]+)=?([^&]*)/g;eb=gb.exec(cb);)db[decodeURIComponent(eb[1].replace(fb," "))]=decodeURIComponent(eb[2].replace(fb," "))}function hb(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 u(a,b){b||(b=r);a.prototype=hb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var ib=window.PCjs.Machines||(window.PCjs.Machines={}),t=window.PCjs.Components||(window.PCjs.Components=[])}else ib={},t=[];function jb(a,b,c){ib[a]&&b&&(ib[a][b]=c)}function kb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>2;this.w=this.ua-1;this.D=this.H/this.ua|0;this.Ha=[];this.C=0;this.B=[];this.mc=[Ob,Pb,Qb,Rb];a=new I(this);Sb(a,this.i);this.W=Array(this.D);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.Ha[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.i&&G(this.i,64)&&E(this.i,e[4]+".readByte("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!0);this.i&&G(this.i,64)&&E(this.i,"warning: unconverted read access to byte @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c} -function Pb(a,b,c){var d=!1,e=this.controller,f=e.Ha[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.Ha[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d?this.i&&G(this.i,64)&&E(this.i,f[4]+".writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!0,b),this.i&&G(this.i,64)&&E(this.i,"warning: unconverted write access to byte @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} -function Qb(a,b){var c=-1,d=this.controller;(a=d.Ha[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));if(0<=c)return this.i&&G(this.i,64)&&E(this.i,a[4]+".readWord("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!1);this.i&&G(this.i,64)&&E(this.i,"warning: unconverted read access to word @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c} -function Rb(a,b,c){var d=!1,e=this.controller;if(a=e.Ha[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d?this.i&&G(this.i,64)&&E(this.i,a[4]+".writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!1,b),this.i&&G(this.i,64)&&E(this.i,"warning: unconverted write access to word @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} -function Vb(a,b){if(b!=a.g){var c;a.g&&(c=(1<>>a.ha;0g&&(q=g);if(!e&&m&&m.size){if(m.type==d){if(f+g<=m.A)return m.vb+=m.A-f,m.A=f,!0;if(f>=m.A+m.vb){q=m.size-(f-p);q>g&&(q=g);m.vb=f-m.A+q;f=p+a.ua;g-=q;l++;continue}}return ac(1,f,g)}f=new I(a,f,q,a.ua,d,e);Sb(f,a.i,m);a.W[l++]=f;f=p+a.ua;g-=q}if(0>=g){c/=1024;var v;e="";v?10>>=a.ha;0>>=a.ha;0>>this.ha].Eb(a&this.w,a)};h.Bb=function(a){this.C++;a=this.W[(a&this.f)>>>this.ha].Mb(a&this.w,a);this.C--;return a};h.ma=function(a){return this.W[(a&this.f)>>>this.ha].ta(a&this.w,a)}; -h.pb=function(a){var b=a&this.w,c=(a&this.f)>>>this.ha;this.C++;a=this.W[c].Nb(b,a);this.C--;return a};h.Fb=function(a,b){this.W[(a&this.f)>>>this.ha].Hb(a&this.w,b&255,a)};h.gb=function(a,b){this.C++;this.W[(a&this.f)>>>this.ha].Sb(a&this.w,b&255,a);this.C--};h.Ta=function(a,b){this.W[(a&this.f)>>>this.ha].wb(a&this.w,b&65535,a)};h.Gb=function(a,b){var c=a&this.w,d=(a&this.f)>>>this.ha;this.C++;this.W[d].Tb(c,b&65535,a);this.C--}; -function cc(a){for(var b=0,c=[],d=0;da.b.$a)){var g=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!g&&m&&(g=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));lc(a,e,e,g,l,m,p,f[4])}}}function nc(a,b){a.B.push(b)} -function oc(a,b){a.C||(a.i&&G(a.i,536870912)&&E(a.i,"memory fault on address "+J(a.i,b),!0,!0),a.b.ea(4,b))}function ac(a,b,c){n("Memory block error ("+a+": "+k(b)+","+k(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.g={data:0,Sd:0,Db:20,gd:0};this.f={Td:0,Rb:-1}}u(K);h=K.prototype; -h.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.Rb=pc(c,function(){e.f.Ja|=128;e.f.Ja&64&&(qc(e.b,e.f.hd),rc(e.b,e.f.Rb,1E3/60))});this.f.hd=sc(64,6);mc(b,this,L);nc(b,this.reset.bind(this));H(this)};h.reset=function(){this.g.Db=this.g.Db&-120|20;this.f.Ja=0};h.Dc=function(){var a=this.f.Ja;this.f.Ja&=-129;return a};h.rd=function(a){this.f.Ja=a;a&64&&rc(this.b,this.f.Rb,1E3/60);this.f.Ja=a&-129};h.wc=function(a){return(a?this.g.gd:this.g.data)&65535}; -h.kd=function(a){this.g.data=a};h.Fc=function(){var a=this.b;return a.G&62337|a.wa<<5|a.xa<<1};h.td=function(a){var b=this.b;a&=62337;if(b.G!=a){b.G=a;b.wa=a>>5&3;b.xa=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ka!=c&&(b.Ka=c,tc(b))}uc(this)};h.Gc=function(){var a=this.b.Ma;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Hc=function(){return this.b.tb};h.Ic=function(){return this.b.Na}; -h.ud=function(a){var b=this.b;1170>b.$a&&(a&=-49);b.Na!=a&&(b.Na=a,a&16?(b.Ya=4194303,b.ya=3915776):(b.Ya=262143,b.ya=253952),tc(b));uc(this)};function uc(a){a.g.Db=a.g.Db&-8|(a.b.Ka?a.b.Na&16?1:2:4)}h.Wc=function(a){return this.b.P[1][a>>1&7]};h.Id=function(a,b){this.b.P[1][b>>1&7]=a&65295};h.Uc=function(a){return this.b.P[1][(a>>1&7)+8]};h.Gd=function(a,b){this.b.P[1][(b>>1&7)+8]=a&65295};h.Vc=function(a){return this.b.sa[1][a>>1&7]}; +var sb="undefined"!==typeof ArrayBuffer,tb={cpu:1,trap:16,bus:64,memory:128,device:256,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){r.call(this,"Panel",a,ub);this.f=0;this.v.Wb=!0}u(ub);h=ub.prototype; +h.qa=function(a,b,c,d){if(this.C&&this.C.qa(a,b,c,d)||this.b&&this.b.qa(a,b,c,d)||this.i&&this.i.qa(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.I[b]=c,this.f++,!0;default:return"rled"==a?(this.I[b]=c,this.f++,!0):this.parent.qa.call(this,a,b,c,d)}};h.Ca=function(a,b,c,d){this.C=a;this.w=b;this.b=c;this.i=d};h.Aa=function(a,b){b||Ib();return!0};h.za=function(){return!0}; +function Jb(a,b,c,d){if(a.I[b]){void 0===c&&(rb(a,"Value for "+b+" is invalid"),a.b.da());var e=a.i&&a.i.ma||8;c=!a.b.v.ca||a.v.Wb?8==e?na(c,d):l(c,d):"--------".substr(0,d||4);a.I[b].textContent!=c&&(a.I[b].textContent=c)}}function Kb(a,b,c,d){for(var e=0;e>2;this.w=this.ua-1;this.D=this.H/this.ua|0;this.Ha=[];this.A=0;this.C=[];this.mc=[Ob,Pb,Qb,Rb];a=new I(this);Sb(a,this.i);this.W=Array(this.D);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.Ha[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.i&&D(this.i,64)&&C(this.i,e[4]+".readByte("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!0);this.i&&D(this.i,64)&&C(this.i,"warning: unconverted read access to byte @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c} +function Pb(a,b,c){var d=!1,e=this.controller,f=e.Ha[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.Ha[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d?this.i&&D(this.i,64)&&C(this.i,f[4]+".writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!0,b),this.i&&D(this.i,64)&&C(this.i,"warning: unconverted write access to byte @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} +function Qb(a,b){var c=-1,d=this.controller;(a=d.Ha[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));if(0<=c)return this.i&&D(this.i,64)&&C(this.i,a[4]+".readWord("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!1);this.i&&D(this.i,64)&&C(this.i,"warning: unconverted read access to word @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c} +function Rb(a,b,c){var d=!1,e=this.controller;if(a=e.Ha[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d?this.i&&D(this.i,64)&&C(this.i,a[4]+".writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!1,b),this.i&&D(this.i,64)&&C(this.i,"warning: unconverted write access to word @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} +function Vb(a,b){if(b!=a.g){var c;a.g&&(c=(1<>>a.ia;0g&&(q=g);if(!e&&m&&m.size){if(m.type==d){if(f+g<=m.B)return m.vb+=m.B-f,m.B=f,!0;if(f>=m.B+m.vb){q=m.size-(f-p);q>g&&(q=g);m.vb=f-m.B+q;f=p+a.ua;g-=q;k++;continue}}return ac(1,f,g)}f=new I(a,f,q,a.ua,d,e);Sb(f,a.i,m);a.W[k++]=f;f=p+a.ua;g-=q}if(0>=g){c/=1024;var v;e="";v?10>>=a.ia;0>>=a.ia;0>>this.ia].Eb(a&this.w,a)};h.Bb=function(a){this.A++;a=this.W[(a&this.f)>>>this.ia].Mb(a&this.w,a);this.A--;return a};h.na=function(a){return this.W[(a&this.f)>>>this.ia].ta(a&this.w,a)}; +h.pb=function(a){var b=a&this.w,c=(a&this.f)>>>this.ia;this.A++;a=this.W[c].Nb(b,a);this.A--;return a};h.Fb=function(a,b){this.W[(a&this.f)>>>this.ia].Hb(a&this.w,b&255,a)};h.hb=function(a,b){this.A++;this.W[(a&this.f)>>>this.ia].Sb(a&this.w,b&255,a);this.A--};h.Va=function(a,b){this.W[(a&this.f)>>>this.ia].wb(a&this.w,b&65535,a)};h.Gb=function(a,b){var c=a&this.w,d=(a&this.f)>>>this.ia;this.A++;this.W[d].Tb(c,b&65535,a);this.A--}; +function cc(a){for(var b=0,c=[],d=0;da.b.ab)){var g=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!g&&m&&(g=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!k&&p&&(k=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));dc(a,e,e,g,k,m,p,f[4])}}}function nc(a,b){a.C.push(b)} +function oc(a,b){a.A||(a.i&&D(a.i,536870912)&&C(a.i,"memory fault on address "+J(a.i,b),!0,!0),a.b.ea(4,b))}function ac(a,b,c){n("Memory block error ("+a+": "+l(b)+","+l(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.g={data:0,Sd:0,Db:20,gd:0};this.f={Td:0,Rb:-1}}u(K);h=K.prototype; +h.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.Rb=pc(c,function(){e.f.Ka|=128;e.f.Ka&64&&(qc(e.b,e.f.hd),rc(e.b,e.f.Rb,1E3/60))});this.f.hd=sc(64,6);mc(b,this,L);nc(b,this.reset.bind(this));H(this)};h.reset=function(){this.g.Db=this.g.Db&-120|20;this.f.Ka=0};h.Dc=function(){var a=this.f.Ka;this.f.Ka&=-129;return a};h.rd=function(a){this.f.Ka=a;a&64&&rc(this.b,this.f.Rb,1E3/60);this.f.Ka=a&-129};h.wc=function(a){return(a?this.g.gd:this.g.data)&65535}; +h.kd=function(a){this.g.data=a};h.Fc=function(){var a=this.b;return a.G&62337|a.wa<<5|a.xa<<1};h.td=function(a){var b=this.b;a&=62337;if(b.G!=a){b.G=a;b.wa=a>>5&3;b.xa=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.La!=c&&(b.La=c,tc(b))}uc(this)};h.Gc=function(){var a=this.b.Na;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Hc=function(){return this.b.tb};h.Ic=function(){return this.b.Oa}; +h.ud=function(a){var b=this.b;1170>b.ab&&(a&=-49);b.Oa!=a&&(b.Oa=a,a&16?(b.Za=4194303,b.ya=3915776):(b.Za=262143,b.ya=253952),tc(b));uc(this)};function uc(a){a.g.Db=a.g.Db&-8|(a.b.La?a.b.Oa&16?1:2:4)}h.Wc=function(a){return this.b.P[1][a>>1&7]};h.Id=function(a,b){this.b.P[1][b>>1&7]=a&65295};h.Uc=function(a){return this.b.P[1][(a>>1&7)+8]};h.Gd=function(a,b){this.b.P[1][(b>>1&7)+8]=a&65295};h.Vc=function(a){return this.b.sa[1][a>>1&7]}; h.Hd=function(a,b){b=b>>1&7;this.b.sa[1][b]=a;this.b.P[1][b]&=65295};h.Tc=function(a){return this.b.sa[1][(a>>1&7)+8]};h.Fd=function(a,b){b=(b>>1&7)+8;this.b.sa[1][b]=a;this.b.P[1][b]&=65295};h.Cc=function(a){return this.b.P[0][a>>1&7]};h.qd=function(a,b){this.b.P[0][b>>1&7]=a&65295};h.Ac=function(a){return this.b.P[0][(a>>1&7)+8]};h.od=function(a,b){this.b.P[0][(b>>1&7)+8]=a&65295};h.Bc=function(a){return this.b.sa[0][a>>1&7]};h.pd=function(a,b){b=b>>1&7;this.b.sa[0][b]=a;this.b.P[0][b]&=65295}; h.zc=function(a){return this.b.sa[0][(a>>1&7)+8]};h.nd=function(a,b){b=(b>>1&7)+8;this.b.sa[0][b]=a;this.b.P[0][b]&=65295};h.bd=function(a){return this.b.P[3][a>>1&7]};h.Od=function(a,b){this.b.P[3][b>>1&7]=a&65295};h.$c=function(a){return this.b.P[3][(a>>1&7)+8]};h.Md=function(a,b){this.b.P[3][(b>>1&7)+8]=a&65295};h.ad=function(a){return this.b.sa[3][a>>1&7]};h.Nd=function(a,b){b=b>>1&7;this.b.sa[3][b]=a;this.b.P[3][b]&=65295};h.Zc=function(a){return this.b.sa[3][(a>>1&7)+8]}; -h.Ld=function(a,b){b=(b>>1&7)+8;this.b.sa[3][b]=a;this.b.P[3][b]&=65295};h.eb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};h.jb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};h.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};h.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};h.Qc=function(){return this.b.u[7]};h.Cd=function(a){this.b.u[7]=a};h.fb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]}; -h.kb=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};h.Oc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[1]};h.Ad=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[1]=a};h.Pc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[3]};h.Bd=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[3]=a};h.yc=function(a){return this.b.gc[a-65504>>1]};h.md=function(a,b){this.b.gc[b-65504>>1]=a};h.dc=function(a){return 65520==a?61183:0};h.jc=function(){}; -h.Yc=function(){return 1};h.Kd=function(){};h.xc=function(){return this.b.Z};h.ld=function(){this.b.Z=0};h.Ec=function(){return this.b.fc};h.sd=function(a,b){b&1||(a&=255);this.b.fc=a};h.Jc=function(a){return a?this.b.Pb:0};h.vd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Pb=a;b.F|=2};h.Xc=function(a){return a?this.b.Oa&65280:0};h.Jd=function(a){this.b.Oa=a|255};h.Mc=function(){return Lb(this.b)};h.yd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.F|=128}; -h.ic=function(a,b){G(this)&&E(this,"writeIgnored("+na(b)+"): "+na(a),!0,!0)}; +h.Ld=function(a,b){b=(b>>1&7)+8;this.b.sa[3][b]=a;this.b.P[3][b]&=65295};h.fb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};h.kb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};h.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};h.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};h.Qc=function(){return this.b.u[7]};h.Cd=function(a){this.b.u[7]=a};h.gb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]}; +h.lb=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};h.Oc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[1]};h.Ad=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[1]=a};h.Pc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[3]};h.Bd=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[3]=a};h.yc=function(a){return this.b.gc[a-65504>>1]};h.md=function(a,b){this.b.gc[b-65504>>1]=a};h.dc=function(a){return 65520==a?61183:0};h.jc=function(){}; +h.Yc=function(){return 1};h.Kd=function(){};h.xc=function(){return this.b.Z};h.ld=function(){this.b.Z=0};h.Ec=function(){return this.b.fc};h.sd=function(a,b){b&1||(a&=255);this.b.fc=a};h.Jc=function(a){return a?this.b.Pb:0};h.vd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Pb=a;b.F|=2};h.Xc=function(a){return a?this.b.Pa&65280:0};h.Jd=function(a){this.b.Pa=a|255};h.Mc=function(){return Lb(this.b)};h.yd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.F|=128}; +h.ic=function(a,b){D(this)&&C(this,"writeIgnored("+na(b)+"): "+na(a),!0,!0)}; var M={},L=(M[62592]=[null,null,K.prototype.Wc,K.prototype.Id,"SISDR",1145],M[62608]=[null,null,K.prototype.Uc,K.prototype.Gd,"SDSDR",1145],M[62624]=[null,null,K.prototype.Vc,K.prototype.Hd,"SISAR",1145],M[62640]=[null,null,K.prototype.Tc,K.prototype.Fd,"SDSAR",1145],M[62656]=[null,null,K.prototype.Cc,K.prototype.qd,"KISDR",1145],M[62672]=[null,null,K.prototype.Ac,K.prototype.od,"KDSDR",1145],M[62688]=[null,null,K.prototype.Bc,K.prototype.pd,"KISAR",1145],M[62704]=[null,null,K.prototype.zc,K.prototype.nd, "KDSAR",1145],M[62798]=[null,null,K.prototype.Ic,K.prototype.ud,"MMR3",1145],M[65382]=[null,null,K.prototype.Dc,K.prototype.rd,"LKS"],M[65400]=[null,null,K.prototype.wc,K.prototype.kd,"CNSL"],M[65402]=[null,null,K.prototype.Fc,K.prototype.td,"MMR0",1145],M[65404]=[null,null,K.prototype.Gc,K.prototype.ic,"MMR1",1145],M[65406]=[null,null,K.prototype.Hc,K.prototype.ic,"MMR2",1145],M[65408]=[null,null,K.prototype.bd,K.prototype.Od,"UISDR",1145],M[65424]=[null,null,K.prototype.$c,K.prototype.Md,"UDSDR", -1145],M[65440]=[null,null,K.prototype.ad,K.prototype.Nd,"UISAR",1145],M[65456]=[null,null,K.prototype.Zc,K.prototype.Ld,"UDSAR",1145],M[65472]=[null,null,K.prototype.eb,K.prototype.jb,"R0SET0"],M[65473]=[null,null,K.prototype.eb,K.prototype.jb,"R1SET0"],M[65474]=[null,null,K.prototype.eb,K.prototype.jb,"R2SET0"],M[65475]=[null,null,K.prototype.eb,K.prototype.jb,"R3SET0"],M[65476]=[null,null,K.prototype.eb,K.prototype.jb,"R4SET0"],M[65477]=[null,null,K.prototype.eb,K.prototype.jb,"R5SET0"],M[65478]= -[null,null,K.prototype.Nc,K.prototype.zd,"R6KERNEL"],M[65479]=[null,null,K.prototype.Qc,K.prototype.Cd,"R7KERNEL"],M[65480]=[null,null,K.prototype.fb,K.prototype.kb,"R0SET1",1145],M[65481]=[null,null,K.prototype.fb,K.prototype.kb,"R1SET1",1145],M[65482]=[null,null,K.prototype.fb,K.prototype.kb,"R2SET1",1145],M[65483]=[null,null,K.prototype.fb,K.prototype.kb,"R3SET1",1145],M[65484]=[null,null,K.prototype.fb,K.prototype.kb,"R4SET1",1145],M[65485]=[null,null,K.prototype.fb,K.prototype.kb,"R5SET1",1145], +1145],M[65440]=[null,null,K.prototype.ad,K.prototype.Nd,"UISAR",1145],M[65456]=[null,null,K.prototype.Zc,K.prototype.Ld,"UDSAR",1145],M[65472]=[null,null,K.prototype.fb,K.prototype.kb,"R0SET0"],M[65473]=[null,null,K.prototype.fb,K.prototype.kb,"R1SET0"],M[65474]=[null,null,K.prototype.fb,K.prototype.kb,"R2SET0"],M[65475]=[null,null,K.prototype.fb,K.prototype.kb,"R3SET0"],M[65476]=[null,null,K.prototype.fb,K.prototype.kb,"R4SET0"],M[65477]=[null,null,K.prototype.fb,K.prototype.kb,"R5SET0"],M[65478]= +[null,null,K.prototype.Nc,K.prototype.zd,"R6KERNEL"],M[65479]=[null,null,K.prototype.Qc,K.prototype.Cd,"R7KERNEL"],M[65480]=[null,null,K.prototype.gb,K.prototype.lb,"R0SET1",1145],M[65481]=[null,null,K.prototype.gb,K.prototype.lb,"R1SET1",1145],M[65482]=[null,null,K.prototype.gb,K.prototype.lb,"R2SET1",1145],M[65483]=[null,null,K.prototype.gb,K.prototype.lb,"R3SET1",1145],M[65484]=[null,null,K.prototype.gb,K.prototype.lb,"R4SET1",1145],M[65485]=[null,null,K.prototype.gb,K.prototype.lb,"R5SET1",1145], M[65486]=[null,null,K.prototype.Oc,K.prototype.Ad,"R6SUPER",1145],M[65487]=[null,null,K.prototype.Pc,K.prototype.Bd,"R6USER",1145],M[65504]=[null,null,K.prototype.yc,K.prototype.md,"CTRL",1170],M[65520]=[null,null,K.prototype.dc,K.prototype.jc,"LSIZE",1170],M[65522]=[null,null,K.prototype.dc,K.prototype.jc,"HSIZE",1170],M[65524]=[null,null,K.prototype.Yc,K.prototype.Kd,"SYSID",1170],M[65526]=[null,null,K.prototype.xc,K.prototype.ld,"CPUERR",1170],M[65528]=[null,null,K.prototype.Ec,K.prototype.sd, "MB",1170],M[65530]=[null,null,K.prototype.Jc,K.prototype.vd,"PIR"],M[65532]=[null,null,K.prototype.Xc,K.prototype.Jd,"SL"],M[65534]=[null,null,K.prototype.Mc,K.prototype.yd,"PSW"],M);L[62594]=L[62592];L[62596]=L[62592];L[62598]=L[62592];L[62600]=L[62592];L[62602]=L[62592];L[62604]=L[62592];L[62606]=L[62592];L[62610]=L[62608];L[62612]=L[62608];L[62614]=L[62608];L[62616]=L[62608];L[62618]=L[62608];L[62620]=L[62608];L[62622]=L[62608];L[62626]=L[62624];L[62628]=L[62624];L[62630]=L[62624];L[62632]=L[62624]; L[62634]=L[62624];L[62636]=L[62624];L[62638]=L[62624];L[62642]=L[62640];L[62644]=L[62640];L[62646]=L[62640];L[62648]=L[62640];L[62650]=L[62640];L[62652]=L[62640];L[62654]=L[62640];L[62658]=L[62656];L[62660]=L[62656];L[62662]=L[62656];L[62664]=L[62656];L[62666]=L[62656];L[62668]=L[62656];L[62670]=L[62656];L[62674]=L[62672];L[62676]=L[62672];L[62678]=L[62672];L[62680]=L[62672];L[62682]=L[62672];L[62684]=L[62672];L[62686]=L[62672];L[62690]=L[62688];L[62692]=L[62688];L[62694]=L[62688];L[62696]=L[62688]; L[62698]=L[62688];L[62700]=L[62688];L[62702]=L[62688];L[62706]=L[62704];L[62708]=L[62704];L[62710]=L[62704];L[62712]=L[62704];L[62714]=L[62704];L[62716]=L[62704];L[62718]=L[62704];L[65410]=L[65408];L[65412]=L[65408];L[65414]=L[65408];L[65416]=L[65408];L[65418]=L[65408];L[65420]=L[65408];L[65422]=L[65408];L[65426]=L[65424];L[65428]=L[65424];L[65430]=L[65424];L[65432]=L[65424];L[65434]=L[65424];L[65436]=L[65424];L[65438]=L[65424];L[65442]=L[65440];L[65444]=L[65440];L[65446]=L[65440];L[65448]=L[65440]; L[65450]=L[65440];L[65452]=L[65440];L[65454]=L[65440];L[65458]=L[65456];L[65460]=L[65456];L[65462]=L[65456];L[65464]=L[65456];L[65466]=L[65456];L[65468]=L[65456];L[65470]=L[65456];L[65506]=L[65504];L[65508]=L[65504];L[65510]=L[65504];L[65512]=L[65504];L[65514]=L[65504];L[65516]=L[65504];L[65518]=L[65504];Ta(function(){for(var a=B(document,"pdp11","device"),b=0;b>1),this.b=new Int32Array(this.C,0,d>>2),Dc(this,zc?Ec:Fc);else{this.b=Array(d>>2);for(a=0;a>1),this.b=new Int32Array(this.A,0,d>>2),Dc(this,zc?Ec:Fc);else{this.b=Array(d>>2);for(a=0;a>2),b=0;b>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},la:function(a,b){a&1&&oc(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},wa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= -this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ia=!0},T:function(a,b){if(this.i&&null!=this.A){var c=this.i;Kc(c,this.A+a,1,c.M)&&c.da(!0)}return this.Mb(a,b)},ba:function(a,b){if(this.i&&null!=this.A){var c=this.i;Kc(c,this.A+a,2,c.M)&&c.da(!0)}return this.Nb(a,b)},oa:function(a,b,c){if(this.i&&null!=this.A){var d=this.i;Kc(d,this.A+a, -1,d.D)&&d.da(!0)}this.f?this.J(a,b,c):this.Sb(a,b,c)},ya:function(a,b,c){if(this.i&&null!=this.A){var d=this.i;Kc(d,this.A+a,2,d.D)&&d.da(!0)}this.f?this.J(a,b,c):this.Tb(a,b,c)},R:function(a){return this.D[a]},U:function(a,b){a=this.D[a];this.i&&G(this.i,128)&&E(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},aa:function(a,b){a&1&&oc(this.w,b);return this.G.getUint16(a,!0)},fa:function(a,b){a&1&&oc(this.w,b);a=this.I[a>>1];this.i&&G(this.i,128)&&E(this.i,"Memory.readWord("+ -J(this.i,b)+"): "+J(this.i,a),!0);return a},na:function(a,b){this.D[a]=b;this.Ia=!0},ra:function(a,b,c){this.D[a]=b;this.Ia=!0;this.i&&G(this.i,128)&&E(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},xa:function(a,b,c){a&1&&oc(this.w,c);this.G.setUint16(a,b,!0);this.Ia=!0},Ua:function(a,b,c){a&1&&oc(this.w,c);this.I[a>>1]=b;this.Ia=!0;this.i&&G(this.i,128)&&E(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}}; -function Sb(a,b,c){a.i=b;a.g=a.B=0;c&&((a.g=c.g)&&Jc(a,Ic,!1),(a.B=c.B)&&Hc(a,Ic,!1))}function Lc(a,b){b?--a.B||(a.Hb=a.f?a.J:a.Sb,a.wb=a.f?a.H:a.Tb):--a.g||(a.Eb=a.Mb,a.ta=a.Nb)}function Hc(a,b,c){c&&a.B||(a.Hb=!a.f&&b[1]||a.J,a.wb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Sb=b[1]||a.J,a.Tb=b[3]||a.H}function Jc(a,b,c){c&&a.g||(a.Eb=b[0]||a.K,a.ta=b[2]||a.M);if(c||void 0===c)a.Mb=b[0]||a.K,a.Nb=b[2]||a.M}function Dc(a,b){b||(b=Mc);Jc(a,b,void 0);Hc(a,b,void 0)} -var Mc=[],Gc=[I.prototype.V,I.prototype.wa,I.prototype.la,I.prototype.Va],Ic=[I.prototype.T,I.prototype.oa,I.prototype.ba,I.prototype.ya];if(sb)var Fc=[I.prototype.R,I.prototype.na,I.prototype.aa,I.prototype.xa],Ec=[I.prototype.U,I.prototype.ra,I.prototype.fa,I.prototype.Ua]; -function Nc(a,b){r.call(this,"CPU",a,Nc,1);var c=a.multiplier||1;this.Ga=a.cycles||b;this.La=c;this.Xa=Math.round(this.Ga/1E4)/100;this.Sa=this.Xa*this.La;this.v.ca=!1;this.v.Qb=!1;this.v.lb=a.autoStart;this.v.Za=!1;this.qb=this.la=0;this.rb=a.csStart;this.ab=a.csInterval;this.bb=a.csStop;this.K=[];this.bc=this.fd.bind(this);H(this)}u(Nc);var Oc=["power","reset"];h=Nc.prototype; -h.Ca=function(a,b,c,d){this.B=a;this.w=b;this.i=d;for(b=0;b=a.la&&(a.la+=a.ab,c=!0);0<=a.bb&&a.bb<=Uc(a)&&(a.ab=a.bb=-1,Rc(a),a.da(),c=!0);c&&a.j(Uc(a)+" cycles: checksum="+k(a.qb))}} -h.qa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.v.ia)a=!0;else{var b=null,c,l=kb(a.id);for(c=0;ca.V/a.Sa?b=1:d=!0;a.La=b;b=a.Xa*a.La;if(a.Sa!=b){a.Sa=b;b=a.Sa.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.B&&a.B.ub()}Wc(a,a.T);a.T=0;a.R=za();a.aa=0;Xc(a);return d}function pc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function rc(a,b,c){0<=b&&ba.K[b][0]&&(c=a.Ga*a.La/1E3*c|0,a.K[b][0]=c+Yc(a))} +I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(sb)for(a=Array(this.size>>2),b=0;b>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a,b){a&1&&oc(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},ra:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= +this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ja=!0},T:function(a,b){if(this.i&&null!=this.B){var c=this.i;Kc(c,this.B+a,1,c.M)&&c.da(!0)}return this.Mb(a,b)},ba:function(a,b){if(this.i&&null!=this.B){var c=this.i;Kc(c,this.B+a,2,c.M)&&c.da(!0)}return this.Nb(a,b)},pa:function(a,b,c){if(this.i&&null!=this.B){var d=this.i;Kc(d,this.B+a, +1,d.D)&&d.da(!0)}this.f?this.C(a,b,c):this.Sb(a,b,c)},xa:function(a,b,c){if(this.i&&null!=this.B){var d=this.i;Kc(d,this.B+a,2,d.D)&&d.da(!0)}this.f?this.C(a,b,c):this.Tb(a,b,c)},R:function(a){return this.D[a]},U:function(a,b){a=this.D[a];this.i&&D(this.i,128)&&C(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},aa:function(a,b){a&1&&oc(this.w,b);return this.G.getUint16(a,!0)},fa:function(a,b){a&1&&oc(this.w,b);a=this.J[a>>1];this.i&&D(this.i,128)&&C(this.i,"Memory.readWord("+ +J(this.i,b)+"): "+J(this.i,a),!0);return a},oa:function(a,b){this.D[a]=b;this.Ja=!0},Ra:function(a,b,c){this.D[a]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},wa:function(a,b,c){a&1&&oc(this.w,c);this.G.setUint16(a,b,!0);this.Ja=!0},ya:function(a,b,c){a&1&&oc(this.w,c);this.J[a>>1]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}}; +function Sb(a,b,c){a.i=b;a.g=a.I=0;c&&((a.g=c.g)&&Jc(a,Ic,!1),(a.I=c.I)&&Hc(a,Ic,!1))}function Lc(a,b){b?--a.I||(a.Hb=a.f?a.C:a.Sb,a.wb=a.f?a.H:a.Tb):--a.g||(a.Eb=a.Mb,a.ta=a.Nb)}function Hc(a,b,c){c&&a.I||(a.Hb=!a.f&&b[1]||a.C,a.wb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Sb=b[1]||a.C,a.Tb=b[3]||a.H}function Jc(a,b,c){c&&a.g||(a.Eb=b[0]||a.K,a.ta=b[2]||a.M);if(c||void 0===c)a.Mb=b[0]||a.K,a.Nb=b[2]||a.M}function Dc(a,b){b||(b=Mc);Jc(a,b,void 0);Hc(a,b,void 0)} +var Mc=[],Gc=[I.prototype.V,I.prototype.ra,I.prototype.ma,I.prototype.Wa],Ic=[I.prototype.T,I.prototype.pa,I.prototype.ba,I.prototype.xa];if(sb)var Fc=[I.prototype.R,I.prototype.oa,I.prototype.aa,I.prototype.wa],Ec=[I.prototype.U,I.prototype.Ra,I.prototype.fa,I.prototype.ya]; +function Nc(a,b){r.call(this,"CPU",a,Nc,1);var c=a.multiplier||1;this.Ga=a.cycles||b;this.Ma=c;this.Ya=Math.round(this.Ga/1E4)/100;this.Ua=this.Ya*this.Ma;this.v.ca=!1;this.v.Qb=!1;this.v.mb=a.autoStart;this.v.$a=!1;this.qb=this.ma=0;this.rb=a.csStart;this.bb=a.csInterval;this.cb=a.csStop;this.K=[];this.bc=this.fd.bind(this);H(this)}u(Nc);var Oc=["power","reset"];h=Nc.prototype; +h.Ca=function(a,b,c,d){this.C=a;this.w=b;this.i=d;for(b=0;b=a.ma&&(a.ma+=a.bb,c=!0);0<=a.cb&&a.cb<=Uc(a)&&(a.bb=a.cb=-1,Rc(a),a.da(),c=!0);c&&a.j(Uc(a)+" cycles: checksum="+l(a.qb))}} +h.qa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.I[b]=c,!0;case "run":return this.I[b]=c,c.onclick=function(){var a;if(a=d.C)if(a=d.C,a.v.ha)a=!0;else{var b=null,c,k=kb(a.id);for(c=0;ca.V/a.Ua?b=1:d=!0;a.Ma=b;b=a.Ya*a.Ma;if(a.Ua!=b){a.Ua=b;b=a.Ua.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.C&&a.C.ub()}Wc(a,a.T);a.T=0;a.R=za();a.aa=0;Xc(a);return d}function pc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function rc(a,b,c){0<=b&&ba.K[b][0]&&(c=a.Ga*a.Ma/1E3*c|0,a.K[b][0]=c+Yc(a))} function Zc(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function $c(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Yc(a,b){var c=a.ba-=a.b;a.b=0;b&&(a.ba=0);return c} -h.fd=function(){if(this.v.ca){this.nb>=this.Ga&&Xc(this,!0);this.ra=0;this.Fa=za();if(this.aa){var a=this.Fa-this.aa;a>this.Ab&&(this.R+=a,this.R>this.Fa&&(this.R=this.Fa))}try{do{var b=Zc(this,this.v.Za?1:this.Pa);try{this.ib(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.ra+=b;this.T+=b;Tc(this,b);$c(this,b);this.na-=b;if(0>=this.na){this.na+=this.Pa;15<=++this.Cb&&(this.B&&this.B.$(),this.Cb=0);break}}while(this.v.ca)}catch(e){this.da();this.B&&this.B.stop(za(),Uc(this));rb(this, -e.stack||e.message);return}if(this.v.ca){a=setTimeout;b=this.bc;this.aa=za();var c=this.Ab;this.ra&&(c=Math.round(c*this.ra/this.Pa));var c=c-(this.aa-this.Fa),d=this.aa-this.R;d&&(this.V=Math.round(this.T/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.Vc&&(this.R-=c),c=0;this.nb+=this.ra;this.aa+=c;a(b,c)}}}; -h.hb=function(a){if(qb(this))return!1;if(this.v.ca)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.ca=!0;this.v.Qb=!0;var b=this.J.run;b&&(b.textContent="Halt");this.B&&(a&&this.B.ub(!0),this.B.start(this.R,Uc(this)));setTimeout(this.bc,0);return!0};h.ib=function(){return 0};h.da=function(a){if(this.v.ca){Yc(this);Wc(this,this.T);this.T=0;this.v.ca=!1;var b=this.J.run;b&&(b.textContent="Run");this.B&&this.B.stop(za(),Uc(this))}this.v.complete=a}; -function ad(a){this.$a=+a.model||1170;this.xb=a.addrReset||0;Nc.call(this,a,6666667);this.decode=1120==this.$a?ud.bind(this):vd.bind(this);wd(this);this.C=0;this.U=null;this.v.complete=this.v.oc=!1}u(ad,Nc);h=ad.prototype;h.reset=function(){this.status("model "+this.$a);this.v.ca&&this.da();wd(this);Qc(this);this.v.error=!1;this.parent.reset.call(this)}; -function wd(a){a.N=65536;a.O=32768;a.X=65535;a.S=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.xb];a.Ea=[0,0,0,0,0,0];a.va=[0,0,0,0];a.D=0;a.xa=0;a.sc=[4,2,0,1];a.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.sa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.gc=[0,0,0,0,0,0,0,0];a.fc=0;a.F=0;a.H=a.I=0;a.g=a.f=a.Wa=0;a.oa=-1;xd(a)}function xd(a){a.Oa=255;a.Z=0;a.Pb=0;a.G=0;a.Ma=0;a.tb=0;a.Na=0;a.Ka=0;a.wa=0;a.Ya=262143;a.ya=253952;a.F|=2;a.w&&tc(a)}function tc(a){a.Ka?(a.M=65536,a.Y=a.rc,a.ta=a.cd,a.wb=a.Pd,Vb(a.w,a.Na&16?22:18)):(a.M=0,a.Y=a.qc,a.ta=a.ec,a.wb=a.kc,Vb(a.w,16))}h.Zb=function(){return 0}; -h.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.fa,this.La]);a.set(2,cc(this.w));return a.data()};h.restore=function(a){var b=a[1];this.fa=b[1];Vc(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c=this.Ga&&Xc(this,!0);this.ra=0;this.Fa=za();if(this.aa){var a=this.Fa-this.aa;a>this.Ab&&(this.R+=a,this.R>this.Fa&&(this.R=this.Fa))}try{do{var b=Zc(this,this.v.$a?1:this.Qa);try{this.jb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.ra+=b;this.T+=b;Tc(this,b);$c(this,b);this.oa-=b;if(0>=this.oa){this.oa+=this.Qa;15<=++this.Cb&&(this.C&&this.C.$(),this.Cb=0);break}}while(this.v.ca)}catch(e){this.da();this.C&&this.C.stop(za(),Uc(this));rb(this, +e.stack||e.message);return}if(this.v.ca){a=setTimeout;b=this.bc;this.aa=za();var c=this.Ab;this.ra&&(c=Math.round(c*this.ra/this.Qa));var c=c-(this.aa-this.Fa),d=this.aa-this.R;d&&(this.V=Math.round(this.T/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.Vc&&(this.R-=c),c=0;this.nb+=this.ra;this.aa+=c;a(b,c)}}}; +h.ib=function(a){if(qb(this))return!1;if(this.v.ca)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.ca=!0;this.v.Qb=!0;var b=this.I.run;b&&(b.textContent="Halt");this.C&&(a&&this.C.ub(!0),this.C.start(this.R,Uc(this)));setTimeout(this.bc,0);return!0};h.jb=function(){return 0};h.da=function(a){if(this.v.ca){Yc(this);Wc(this,this.T);this.T=0;this.v.ca=!1;var b=this.I.run;b&&(b.textContent="Run");this.C&&this.C.stop(za(),Uc(this))}this.v.complete=a}; +function ad(a){this.ab=+a.model||1170;this.xb=a.addrReset||0;Nc.call(this,a,6666667);this.decode=1120==this.ab?bd.bind(this):cd.bind(this);dd(this);this.A=0;this.U=null;this.v.complete=this.v.oc=!1}u(ad,Nc);h=ad.prototype;h.reset=function(){this.status("model "+this.ab);this.v.ca&&this.da();dd(this);Qc(this);this.v.error=!1;this.parent.reset.call(this)}; +function dd(a){a.N=65536;a.O=32768;a.X=65535;a.S=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.xb];a.Ea=[0,0,0,0,0,0];a.va=[0,0,0,0];a.D=0;a.xa=0;a.sc=[4,2,0,1];a.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.sa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.gc=[0,0,0,0,0,0,0,0];a.fc=0;a.F=0;a.H=a.J=0;a.g=a.f=a.Xa=0;a.pa=-1;ed(a)}function ed(a){a.Pa=255;a.Z=0;a.Pb=0;a.G=0;a.Na=0;a.tb=0;a.Oa=0;a.La=0;a.wa=0;a.Za=262143;a.ya=253952;a.F|=2;a.w&&tc(a)}function tc(a){a.La?(a.M=65536,a.Y=a.rc,a.ta=a.cd,a.wb=a.Pd,Vb(a.w,a.Oa&16?22:18)):(a.M=0,a.Y=a.qc,a.ta=a.ec,a.wb=a.kc,Vb(a.w,16))}h.Zb=function(){return 0}; +h.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.fa,this.Ma]);a.set(2,cc(this.w));return a.data()};h.restore=function(a){var b=a[1];this.fa=b[1];Vc(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c>14&3;c=a.L>>14&3;a.D!=c&&(a.va[c]=a.u[6],a.u[6]=a.va[a.D]);a.L=b;a.F|=2}function P(a,b){a.F&128||(a.S=a.X=b,a.O=0)}function Cd(a,b,c){a.F&128||(a.S=a.X=a.N=b,a.O=c||0)}function Dd(a,b,c,d){a.F&128||(a.S=a.X=a.N=b,a.O=(c^b)&(d^b))}function Ed(a,b){a.F&128||(a.S=a.X=a.N=b,a.O=a.S^a.N>>1)}function Fd(a,b,c,d){a.F&128||(a.S=a.X=a.N=b,a.O=(c^d)&(d^b))} -h.ea=function(a,b){if(!this.C){var c=!1;0>this.oa?this.oa=Lb(this):this.D||(a=4,c=!0);this.G&57344||(this.Ma=63222,this.tb=a);this.D=0;var d=this.ta(a|this.M),e=this.ta(a+2&65535|this.M);vc(this,e&-12289|this.oa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Gd(this,this.oa);Gd(this,this.u[7]);O(this,d);this.F&=-113;this.oa=-1;if(26!=b)throw a;}};function Hd(a){var b=Id(a),c=Id(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);O(a,b);vc(a,c);a.F&=-17} -function Jd(a,b,c){var d,e,f,g=0;d=b>>13;a.Na&a.sc[a.D]||(d&=7);e=a.P[a.D][d];f=(a.sa[a.D][d]<<6)+(b&8191)&a.Ya;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.Na&32&&(f=a.uc[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? -192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.P[a.D][d]=e;if(4194170!==f||a.D)a.wa=a.D,a.xa=d;g&&(g&57344&&(0<=a.oa&&(g|=128),a.G&57344||(a.G=a.G|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.G&61440||!(4191360>f||4194239c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.ta(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.ta(e)|g; -a.b-=8;break;case 6:return e=Bd(a),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=Bd(a),e=e+a.u[c]&65535,e=a.ta(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.G&57344||(a.Ma=a.Ma<<8|f<<3&248|c);6==c&&!a.D&&d&4&&0>=f&&(a.u[6]<=a.Oa||65534<=a.u[6])&&(a.u[6]<=a.Oa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.F|=64));return e}h.Bb=function(a){if(!this.Ka)return this.w.Bb(a);this.C++;a=Kd(this,Jd(this,a,3));this.C--;return a}; -h.pb=function(a){if(!this.Ka)return this.w.pb(a);this.C++;a=this.ec(Jd(this,a,2));this.C--;return a};h.gb=function(a,b){this.Ka?(this.C++,Ld(this,Jd(this,a,5),b),this.C--):this.w.gb(a,b)};h.Gb=function(a,b){this.Ka?(this.C++,this.kc(Jd(this,a,4),b),this.C--):this.w.Gb(a,b)};h.qc=function(a,b,c){return Md(this,a,b,c)};h.rc=function(a,b,c){return Jd(this,Md(this,a,b,c),c)};h.ec=function(a){return this.w.ma(a)};h.cd=function(a){return this.w.ma(Jd(this,a,2))};h.kc=function(a,b){this.w.Ta(a,b&65535)}; -h.Pd=function(a,b){this.w.Ta(Jd(this,a,4),b)};function Nd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Md(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.D=a.L>>12&3,c=a.ta(d|c&a.M),a.D=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.va[a.L>>12&3];return c}function Od(a,b,c,d){a.G&57344||(a.Ma=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Md(a,b,e,4),c&65536||(e&=65535),a.D=a.L>>12&3,e=Jd(a,e|c&65536,4),a.D=a.L>>14&3,a.w.Ta(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.va[a.L>>12&3]=d} -function Pd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?Kd(a,a.Y(b,c,3)):a.u[c]&255}function Qd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?a.w.ma(a.Y(b,c,2)):a.u[c]}function Rd(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Md(a,b,c,8)}function Sd(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Kd(a,a.Y(b,c,3)):a.u[c]&255}function Td(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.ma(a.Y(b,c,2)):a.u[c]} -function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Wa=a.Y(b,e,7),Ld(a,e,d.call(a,c,Kd(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Y(b,e,6),a.w.Ta(e,d.call(a,c,a.w.ma(e)))):a.u[e]=d.call(a,c,a.u[e])}function Ud(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Ld(a,a.Y(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Vd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.Ta(a.Y(b,d,4),c):a.u[d]=c&65535;return c} +h.ea=function(a,b){if(!this.A){var c=!1;0>this.pa?this.pa=Lb(this):this.D||(a=4,c=!0);this.G&57344||(this.Na=63222,this.tb=a);this.D=0;var d=this.ta(a|this.M),e=this.ta(a+2&65535|this.M);vc(this,e&-12289|this.pa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Gd(this,this.pa);Gd(this,this.u[7]);O(this,d);this.F&=-113;this.pa=-1;if(26!=b)throw a;}};function Hd(a){var b=Id(a),c=Id(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);O(a,b);vc(a,c);a.F&=-17} +function Jd(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.D]||(d&=7);e=a.P[a.D][d];f=(a.sa[a.D][d]<<6)+(b&8191)&a.Za;if(ff){if(3932160<=f){f&=262143;var k=f>>13&31;31>k?a.Oa&32&&(f=a.uc[k]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? +192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.P[a.D][d]=e;if(4194170!==f||a.D)a.wa=a.D,a.xa=d;g&&(g&57344&&(0<=a.pa&&(g|=128),a.G&57344||(a.G=a.G|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.G&61440||!(4191360>f||4194239c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.ta(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.ta(e)|g; +a.b-=8;break;case 6:return e=Bd(a),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=Bd(a),e=e+a.u[c]&65535,e=a.ta(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.G&57344||(a.Na=a.Na<<8|f<<3&248|c);6==c&&!a.D&&d&4&&0>=f&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.F|=64));return e}h.Bb=function(a){if(!this.La)return this.w.Bb(a);this.A++;a=Kd(this,Jd(this,a,3));this.A--;return a}; +h.pb=function(a){if(!this.La)return this.w.pb(a);this.A++;a=this.ec(Jd(this,a,2));this.A--;return a};h.hb=function(a,b){this.La?(this.A++,Ld(this,Jd(this,a,5),b),this.A--):this.w.hb(a,b)};h.Gb=function(a,b){this.La?(this.A++,this.kc(Jd(this,a,4),b),this.A--):this.w.Gb(a,b)};h.qc=function(a,b,c){return Md(this,a,b,c)};h.rc=function(a,b,c){return Jd(this,Md(this,a,b,c),c)};h.ec=function(a){return this.w.na(a)};h.cd=function(a){return this.w.na(Jd(this,a,2))};h.kc=function(a,b){this.w.Va(a,b&65535)}; +h.Pd=function(a,b){this.w.Va(Jd(this,a,4),b)};function Nd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Md(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.D=a.L>>12&3,c=a.ta(d|c&a.M),a.D=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.va[a.L>>12&3];return c}function Od(a,b,c,d){a.G&57344||(a.Na=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Md(a,b,e,4),c&65536||(e&=65535),a.D=a.L>>12&3,e=Jd(a,e|c&65536,4),a.D=a.L>>14&3,a.w.Va(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.va[a.L>>12&3]=d} +function Pd(a,b){b>>=6;var c=a.J=b&7;return(b=a.H=(b&56)>>3)?Kd(a,a.Y(b,c,3)):a.u[c]&255}function Qd(a,b){b>>=6;var c=a.J=b&7;return(b=a.H=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]}function Rd(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Md(a,b,c,8)}function Sd(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Kd(a,a.Y(b,c,3)):a.u[c]&255}function Td(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]} +function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Xa=a.Y(b,e,7),Ld(a,e,d.call(a,c,Kd(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Y(b,e,6),a.w.Va(e,d.call(a,c,a.w.na(e)))):a.u[e]=d.call(a,c,a.u[e])}function Ud(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Ld(a,a.Y(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Vd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.Va(a.Y(b,d,4),c):a.u[d]=c&65535;return c} function S(a,b,c){c&&(O(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3} -h.ib=function(a){this.v.complete=!0;var b=this.v.oc=this.i&&Wd(this.i),c=a?this.v.Qb?0:1:-1;this.v.Qb=!1;this.ba=this.b=a;do{if(b){if(Xd(this.i,this.u[7],c)){this.da();break}c=1}if(this.F&&(this.F&112&&(this.F&32?this.ea(168,28):this.F&64?this.ea(4,30):this.F&16&&this.ea(12,32),this.F&=-113),this.F&7))if(this.F&2){this.F&=-3;var d=160,e=(this.Pb&224)>>5;if(a=this.U&&this.U.cb>e?this.U:null)d=a.jd,e=a.cb;e>(this.L&224)>>5?(this.F&4&&(this.u[7]=this.u[7]+2&65535,this.F&=-5),this.ea(d,26),e=!0):e=!1; -if(e&&a)if(e=this.U,e==a)this.U=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.F&1&&this.F++;this.G&57344||(this.Ma=0,this.tb=this.u[7]);this.F=this.F&7|this.L&16;this.decode(Bd(this))}while(0>5;if(a=this.U&&this.U.eb>e?this.U:null)d=a.jd,e=a.eb;e>(this.L&224)>>5?(this.F&4&&(this.u[7]=this.u[7]+2&65535,this.F&=-5),this.ea(d,26),e=!0):e=!1; +if(e&&a)if(e=this.U,e==a)this.U=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.F&1&&this.F++;this.G&57344||(this.Na=0,this.tb=this.u[7]);this.F=this.F&7|this.L&16;this.decode(Bd(this))}while(0>1|b<<16;Ed(this,a);return a&65535}function ce(a,b){a=b&2048|b>>1|b<<8;Ed(this,a<<8);return a&255}function de(a,b){a=b&~a;P(this,a);return a}function ee(a,b){a=b&~a;P(this,a<<8);return a}function fe(a,b){a|=b;P(this,a);return a}function ge(a,b){a|=b;P(this,a<<8);return a} function he(a,b){a=~b|65536;Cd(this,a);return a&65535}function ie(a,b){a=~b|256;Cd(this,a<<8);return a&255}function je(a,b){a=b-a;this.F&128||(this.S=this.X=a,this.O=b&(b^a));return a&65535}function ke(a,b){a=b-a;var c=a<<8;b<<=8;this.F&128||(this.S=this.X=c,this.O=b&(b^c));return a&255}function le(a,b){a=b+a;this.F&128||(this.S=this.X=a,this.O=a&(b^a));return a&65535}function me(a,b){a=b+a;var c=a<<8;this.F&128||(this.S=this.X=c,this.O=c&(b<<8^c));return a&255} function ne(a,b){a=-b;Cd(this,a,a&b&32768);return a&65535}function oe(a,b){a=-b;Cd(this,a<<8,(a&b&128)<<8);return a&255}function pe(a,b){a=b<<1|this.N>>16&1;Ed(this,a);return a&65535}function qe(a,b){a=b<<1|this.N>>16&1;Ed(this,a<<8);return a&255}function re(a,b){a=(this.N&65536|b)>>1|b<<16;Ed(this,a);return a&65535}function se(a,b){a=((this.N&65536)>>8|b)>>1|b<<8;Ed(this,a<<8);return a&255}function te(a,b){var c=b-a;Fd(this,c,a,b);return c&65535} -function ue(a,b){var c=b-a;Fd(this,c<<8,a<<8,b<<8);return c&255}function ve(a,b){this.F&128||(this.S=this.X=b&65280,this.O=this.N=0);return(b<<8|b>>8)&65535}function we(a,b){a^=b;P(this,a);return a&65535}function xe(a){R(this,a,Qd(this,a),Yd);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} +function ue(a,b){var c=b-a;Fd(this,c<<8,a<<8,b<<8);return c&255}function ve(a,b){this.F&128||(this.S=this.X=b&65280,this.O=this.N=0);return(b<<8|b>>8)&65535}function we(a,b){a^=b;P(this,a);return a&65535}function xe(a){R(this,a,Qd(this,a),Yd);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} function ye(a){var b=Td(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.N=this.O=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.O=32768)}this.u[a]=c&65535;this.S=this.X=c;this.b-=(this.g?6:7)+b} -function ze(a){var b=Td(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.N=this.O=0;b&=63;if(b&32){b=64-b;32>b-1;this.N=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.u[a|1]=d&65535;this.S=d>>16;this.X=d>>16|d;this.b-=(this.g?6:7)+b}function Ae(a){S(this,a,!yd(this))}function Be(a){S(this,a,yd(this))} -function Ce(a){R(this,a,Qd(this,a),de);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function De(a){Q(this,a,Pd(this,a),ee);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ee(a){R(this,a,Qd(this,a),fe);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Fe(a){Q(this,a,Pd(this,a),ge);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} -function Ge(a){P(this,Qd(this,a)&Td(this,a));this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function He(a){P(this,(Pd(this,a)&Sd(this,a))<<8);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ie(a){S(this,a,Ad(this))}function Je(a){S(this,a,!this.Da()==!zd(this))}function Ke(a){S(this,a,!Ad(this)&&!this.Da()==!zd(this))}function Le(a){S(this,a,!yd(this)&&!Ad(this))}function Me(a){S(this,a,Ad(this)||!this.Da()!=!zd(this))} -function Ne(a){S(this,a,yd(this)||Ad(this))}function Oe(a){S(this,a,!this.Da()!=!zd(this))}function Pe(a){S(this,a,this.Da())}function Qe(a){S(this,a,!Ad(this))}function Re(a){S(this,a,!this.Da())}function Se(){this.ea(12,1);this.b-=5}function Te(a){S(this,a,!0)}function Ue(a){S(this,a,!zd(this))}function Ve(a){S(this,a,zd(this))}function T(a){a&1&&(this.N=0);a&2&&(this.O=0);a&4&&(this.X=1);a&8&&(this.S=0);this.b-=5} -function We(a){var b=Qd(this,a);a=Td(this,a);Fd(this,b-a,a,b);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Xe(a){var b=Pd(this,a)<<8;a=Sd(this,a)<<8;Fd(this,b-a,a,b);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)} +function ze(a){var b=Td(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.N=this.O=0;b&=63;if(b&32){b=64-b;32>b-1;this.N=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.u[a|1]=d&65535;this.S=d>>16;this.X=d>>16|d;this.b-=(this.g?6:7)+b}function Ae(a){S(this,a,!fd(this))}function Be(a){S(this,a,fd(this))} +function Ce(a){R(this,a,Qd(this,a),de);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function De(a){Q(this,a,Pd(this,a),ee);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ee(a){R(this,a,Qd(this,a),fe);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Fe(a){Q(this,a,Pd(this,a),ge);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} +function Ge(a){P(this,Qd(this,a)&Td(this,a));this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function He(a){P(this,(Pd(this,a)&Sd(this,a))<<8);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ie(a){S(this,a,Ad(this))}function Je(a){S(this,a,!this.Da()==!zd(this))}function Ke(a){S(this,a,!Ad(this)&&!this.Da()==!zd(this))}function Le(a){S(this,a,!fd(this)&&!Ad(this))}function Me(a){S(this,a,Ad(this)||!this.Da()!=!zd(this))} +function Ne(a){S(this,a,fd(this)||Ad(this))}function Oe(a){S(this,a,!this.Da()!=!zd(this))}function Pe(a){S(this,a,this.Da())}function Qe(a){S(this,a,!Ad(this))}function Re(a){S(this,a,!this.Da())}function Se(){this.ea(12,1);this.b-=5}function Te(a){S(this,a,!0)}function Ue(a){S(this,a,!zd(this))}function Ve(a){S(this,a,zd(this))}function T(a){a&1&&(this.N=0);a&2&&(this.O=0);a&4&&(this.X=1);a&8&&(this.S=0);this.b-=5} +function We(a){var b=Qd(this,a);a=Td(this,a);Fd(this,b-a,a,b);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Xe(a){var b=Pd(this,a)<<8;a=Sd(this,a)<<8;Fd(this,b-a,a,b);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)} function Ye(a){var b=Td(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.N=this.O=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.X=d>>16|d,this.S=d>>16):(this.O=32768,this.X=d>>15|d,this.S=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.S=0,this.O=32768,this.N=65536,this.b-=7}function Ze(){this.ea(24,2);this.b-=25}function $e(){this.L&49152?(this.Z|=128,this.ea(4,3)):this.da();this.b-=7} function af(){this.ea(16,4);this.b-=25}var bf=[0,7,7,10,7,11,9,13];function cf(a){var b=this.b;O(this,Rd(this,a));this.b=b-bf[this.g]}var df=[0,14,14,17,14,18,16,20];function ef(a){var b=this.b,c=Rd(this,a);a=a>>6&7;Gd(this,this.u[a]);this.u[a]=this.u[7];O(this,c);this.b=b-df[this.g]}var ff=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function gf(a){var b=Qd(this,a),c=this.b;P(this,Vd(this,a,b));this.b=c-ff[(this.H?8:0)+this.g]+(7!=this.f||this.g?0:2)} -function hf(a){var b=Pd(this,a);P(this,Ud(this,a,b,1)<<8);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var jf=[7,13,13,17,14,18,17,21];function kf(a){var b=Td(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.F&128||(this.S=b>>16,this.X=this.S|b,this.O=0,this.N=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)O(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function qf(a){R(this,a,Qd(this,a),te);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} -function rf(a){R(this,a,0,ve);this.b-=this.g?9:3+(7==this.f?2:0)}function sf(){this.ea(28,5);this.b-=5}function tf(){this.F&4||this.B.$();this.F|=4;this.u[7]=this.u[7]+-2&65535;this.b-=3}function uf(a){R(this,a,Qd(this,a),we);this.b-=this.g?9:3+(7==this.f?2:0)}function V(a){var b;if(b=this.i)b=this.i,E(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function ud(a){vf[a>>12].call(this,a)}function wf(a){xf[a>>6&3].call(this,a)}function yf(a){zf[a>>6&3].call(this,a)} -function Af(a){Bf[a>>6&3].call(this,a)}function Cf(a){Df[a&15].call(this,a)}function Ef(a){Ff[a&15].call(this,a)}function Gf(a){$f[a>>6&3].call(this,a)}function ag(a){bg[a>>6&3].call(this,a)}function cg(a){dg[a>>6&3].call(this,a)} +function hf(a){var b=Pd(this,a);P(this,Ud(this,a,b,1)<<8);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var jf=[7,13,13,17,14,18,17,21];function kf(a){var b=Td(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.F&128||(this.S=b>>16,this.X=this.S|b,this.O=0,this.N=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)O(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function qf(a){R(this,a,Qd(this,a),te);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} +function rf(a){R(this,a,0,ve);this.b-=this.g?9:3+(7==this.f?2:0)}function sf(){this.ea(28,5);this.b-=5}function tf(){this.F&4||this.C.$();this.F|=4;this.u[7]=this.u[7]+-2&65535;this.b-=3}function uf(a){R(this,a,Qd(this,a),we);this.b-=this.g?9:3+(7==this.f?2:0)}function V(a){var b;if(b=this.i)b=this.i,C(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function bd(a){vf[a>>12].call(this,a)}function wf(a){xf[a>>6&3].call(this,a)}function yf(a){zf[a>>6&3].call(this,a)} +function Af(a){Bf[a>>6&3].call(this,a)}function Cf(a){Df[a&15].call(this,a)}function Ef(a){Ff[a&15].call(this,a)}function Gf(a){Hf[a>>6&3].call(this,a)}function If(a){Jf[a>>6&3].call(this,a)}function cg(a){dg[a>>6&3].call(this,a)} var vf=[function(a){eg[a>>8&15].call(this,a)},gf,We,Ge,Ce,Ee,xe,V,function(a){fg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,qf,V],eg=[function(a){gg[a>>4&15].call(this,a)},Te,Qe,Ie,Je,Oe,Ke,Me,ef,ef,wf,yf,Af,V,V,V],xf=[function(a){Cd(this,Vd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,he);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,le);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,je);this.b-=this.g?9:3+(7==this.f?2:0)}],zf=[function(a){R(this,a,0, -ne);this.b-=this.g?11:6},function(a){R(this,a,yd(this)?1:0,Yd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,yd(this)?1:0,te);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Td(this,a);Cd(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Bf=[function(a){R(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,pe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,$d);this.b-=this.g?9:3+(7==this.f?2:0)}], -gg=[function(a){hg[a&15].call(this,a)},V,V,V,cf,cf,cf,cf,of,V,Cf,Ef,rf,rf,rf,rf],hg=[$e,tf,nf,Se,af,mf,V,V,V,V,V,V,V,V,V,V],Df=[lf,function(){this.N=0;this.b-=5},function(){this.O=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.S=0;this.b-=5},T,T,T,T,T,T,T],Ff=[lf,function(){this.N=65536;this.b-=5},function(){this.O=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.S=32768;this.b-=5},W,W,W,W,W,W,W],fg=[Re,Pe,Le,Ne,Ue,Ve,Ae,Be,Ze,sf,Gf,ag,cg,V,V,V],$f=[function(a){Cd(this, -Ud(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,ke);this.b-=this.g?9:3+(7==this.f?2:0)}],bg=[function(a){Q(this,a,0,oe);this.b-=this.g?11:6},function(a){Q(this,a,yd(this)?1:0,Zd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,yd(this)?1:0,ue);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Sd(this,a);Cd(this,a<<8);this.b-=this.g?4:3+(7== -this.f?2:0)}],dg=[function(a){Q(this,a,0,se);this.b-=this.g?9+(this.Wa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,qe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ce);this.b-=this.g?9+(this.Wa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,ae);this.b-=this.g?9:3+(7==this.f?2:0)}];function vd(a){ig[a>>12].call(this,a)} +ne);this.b-=this.g?11:6},function(a){R(this,a,fd(this)?1:0,Yd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,fd(this)?1:0,te);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Td(this,a);Cd(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Bf=[function(a){R(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,pe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,$d);this.b-=this.g?9:3+(7==this.f?2:0)}], +gg=[function(a){hg[a&15].call(this,a)},V,V,V,cf,cf,cf,cf,of,V,Cf,Ef,rf,rf,rf,rf],hg=[$e,tf,nf,Se,af,mf,V,V,V,V,V,V,V,V,V,V],Df=[lf,function(){this.N=0;this.b-=5},function(){this.O=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.S=0;this.b-=5},T,T,T,T,T,T,T],Ff=[lf,function(){this.N=65536;this.b-=5},function(){this.O=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.S=32768;this.b-=5},W,W,W,W,W,W,W],fg=[Re,Pe,Le,Ne,Ue,Ve,Ae,Be,Ze,sf,Gf,If,cg,V,V,V],Hf=[function(a){Cd(this, +Ud(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,ke);this.b-=this.g?9:3+(7==this.f?2:0)}],Jf=[function(a){Q(this,a,0,oe);this.b-=this.g?11:6},function(a){Q(this,a,fd(this)?1:0,Zd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,fd(this)?1:0,ue);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Sd(this,a);Cd(this,a<<8);this.b-=this.g?4:3+(7== +this.f?2:0)}],dg=[function(a){Q(this,a,0,se);this.b-=this.g?9+(this.Xa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,qe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ce);this.b-=this.g?9+(this.Xa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,ae);this.b-=this.g?9:3+(7==this.f?2:0)}];function cd(a){ig[a>>12].call(this,a)} var ig=[function(a){jg[a>>8&15].call(this,a)},gf,We,Ge,Ce,Ee,xe,function(a){kg[a>>8&15].call(this,a)},function(a){lg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,qf,V],jg=[function(a){mg[a>>4&15].call(this,a)},Te,Qe,Ie,Je,Oe,Ke,Me,ef,ef,wf,yf,Af,function(a){ng[a>>6&3].call(this,a)},V,V],ng=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.ta(a|this.M);O(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Nd(this,a,0);Gd(this,a);P(this,a);this.b-=11},function(a){var b=Id(this),c= -this.b;Od(this,a,0,b);P(this,b);this.b=c-jf[this.g]},function(a){P(this,Vd(this,a,this.Da?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],mg=[function(a){og[a&15].call(this,a)},V,V,V,cf,cf,cf,cf,of,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.F|=1),this.b-=5):V.call(this,a)},Cf,Ef,rf,rf,rf,rf],og=[$e,tf,nf,Se,af,mf,function(){Hd(this);this.b-=13},V,V,V,V,V,V,V,V,V],kg=[kf,kf,Ye,Ye,ye,ye,ze,ze,uf,uf,V,V,V,V,pf,pf],lg=[Re,Pe,Le,Ne,Ue,Ve,Ae,Be,Ze,sf,Gf,ag,cg,function(a){pg[a>>6&3].call(this, +this.b;Od(this,a,0,b);P(this,b);this.b=c-jf[this.g]},function(a){P(this,Vd(this,a,this.Da?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],mg=[function(a){og[a&15].call(this,a)},V,V,V,cf,cf,cf,cf,of,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.F|=1),this.b-=5):V.call(this,a)},Cf,Ef,rf,rf,rf,rf],og=[$e,tf,nf,Se,af,mf,function(){Hd(this);this.b-=13},V,V,V,V,V,V,V,V,V],kg=[kf,kf,Ye,Ye,ye,ye,ze,ze,uf,uf,V,V,V,V,pf,pf],lg=[Re,Pe,Le,Ne,Ue,Ve,Ae,Be,Ze,sf,Gf,If,cg,function(a){pg[a>>6&3].call(this, a)},V,V],pg=[V,function(a){a=Nd(this,a,65536);Gd(this,a);P(this,a);this.b-=11},function(a){var b=Id(this),c=this.b;Od(this,a,65536,b);P(this,b);this.b=c-jf[this.g]},V]; -function qg(a){r.call(this,"ROM",a,qg);this.ja=this.f=null;this.D=a.addr;this.g=a.size;this.C=a.alias;this.B=a.file;this.G=oa(this.B);if(this.B){a=this.B;var b=pa(this.G);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.B+"&format=bytes&decimal=true");var c=this;Ba(a,null,!0,function(a,b,f){f?c.pa("Unable to load ROM resource (error "+f+": "+a+")"):(jb(c.Va,a,b),(a=Fa(a,b))?(c.f=a.ga,c.ja=a.ja):c.B=null,rg(c))})}}u(qg);qg.prototype.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;rg(this)}; -qg.prototype.Aa=function(){if(this.ja){if(this.i){var a=this.i,b=this.id,c=this.D,d=this.g,e=this.ja,f=[],g;for(g in e){var l=e[g];"number"==typeof l&&(e[g]=l={o:l});var m=l.o,p=l.a;if(void 0!==m){var q=f,m=[m>>>0,g],v=ya(q,m,a.Vb);0>v&&q.splice(-(v+1),0,m)}p&&(l.a=p.replace(/''/g,'"'))}a.G.push({Ud:b,A:c,vc:d,ja:e,Ub:f})}delete this.ja}return!0};qg.prototype.za=function(){return!0}; -function rg(a){if(!pb(a)){if(a.B){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if(a.f.length!=a.g)rb(a,"ROM size ("+k(a.f.length,8,!0)+") does not match specified size ("+k(a.g,8,!0)+")");else{var b;b=a.D;if(Yb(a.w,b,a.g,Cc)){var c;for(c=0;c>>0,g],v=ya(q,m,a.Vb);0>v&&q.splice(-(v+1),0,m)}p&&(k.a=p.replace(/''/g,'"'))}a.G.push({Ud:b,B:c,vc:d,ka:e,Ub:f})}delete this.ka}return!0};qg.prototype.za=function(){return!0}; +function rg(a){if(!pb(a)){if(a.C){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if(a.f.length!=a.g)rb(a,"ROM size ("+l(a.f.length,8,!0)+") does not match specified size ("+l(a.g,8,!0)+")");else{var b;b=a.D;if(Yb(a.w,b,a.g,Cc)){var c;for(c=0;c=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=va(b[0]);if(c!=this.Ua)return;b=va(b[1]);if(this.I=lb(b)){var d=this.I.exports;if(d){var e=d.connect;e&&e.call(this.I);if(this.K=d.receiveData){this.status(this.Va+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.Aa=function(a,b){if(!b)if(this.cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; +function sg(a){r.call(this,"RAM",a,sg);this.ka=this.g=null;this.G=a.addr;this.H=a.size;this.A=a.load;this.C=a.exec;this.D=!1;this.f=a.file;this.J=oa(this.f);if(this.f){a=this.f;var b=pa(this.J);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.f+"&format=bytes&decimal=true");var c=this;Ba(a,null,!0,function(a,b,f){f?c.ga("Unable to load RAM resource (error "+f+": "+a+")"):(jb(c.Ra,a,b),(a=Ca(a,b))?(c.g=a.ja,c.ka=a.ka,null==c.A&&null!=a.Lb&&(c.A=a.Lb),null==c.C&&null!=a.Kb&&(c.C=a.Kb)):c.f=null, +tg(c))})}}u(sg);sg.prototype.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;tg(this)};sg.prototype.Aa=function(){return!0};sg.prototype.za=function(){return!0};function tg(a){!a.D&&a.H&&Yb(a.w,a.G,a.H,1)&&(a.D=!0);if(!pb(a)){if(!a.D)n("No RAM allocated");else if(a.f){if(!a.g||!a.w)return;var b=a.G;null!==a.A&&(b=a.A);for(var c=0;c=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=va(b[0]);if(c!=this.Wa)return;b=va(b[1]);if(this.J=lb(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.K=d.receiveData){this.status(this.Ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.Aa=function(a,b){if(!b)if(this.cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; h.za=function(a){return a?this.save():!0};h.reset=function(){xg(this)};h.save=function(){var a=new N(this);a.set(0,[]);return a.data()};h.restore=function(){return xg(this)};function xg(a){a.R=0;a.f=0;a.g=128;a.D=[];return!0}h.Ob=function(a){if("number"==typeof a)this.D.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.T||8,c=a-this.H%a,this.T&&(b=ua("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.C.value+=b;this.C.scrollTop=this.C.scrollHeight;this.H+=c}else if(null!=this.G){if(10==a||1024<=this.G.length)this.j(this.G), +h.Qd=function(a){if(a&=255){C(this,"transmitByte("+l(a,2,!0)+")");this.K&&this.K.call(this.J,a);if(this.A)if(13==a)this.H=0;else if(8==a)this.A.value=this.A.value.slice(0,-1),0":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.T||8,c=a-this.H%a,this.T&&(b=ua("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.A.value+=b;this.A.scrollTop=this.A.scrollHeight;this.H+=c}else if(null!=this.G){if(10==a||1024<=this.G.length)this.j(this.G), this.G="";10!=a&&(this.G+=String.fromCharCode(a))}this.g&=-129;rc(this.b,this.V,1)}};var yg={},wg=(yg[65392]=[null,null,X.prototype.Sc,X.prototype.Ed,"RCSR"],yg[65394]=[null,null,X.prototype.Rc,X.prototype.Dd,"RBUF"],yg[65396]=[null,null,X.prototype.ed,X.prototype.Rd,"XCSR"],yg[65398]=[null,null,X.prototype.dd,X.prototype.Qd,"XBUF"],yg);Ta(function(){for(var a=B(document,"pdp11","serial"),b=0;b=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Bg.prototype.$b=function(){return-1};Bg.prototype.ac=function(){}; -function Dg(a,b,c,d){if(c)if(b){0>a.C&&a.g.length&&(a.C=0);if(0>a.C||b!=a.g[a.C])a.g.splice(0,0,b),a.C=0;a.C--}else a.U?b="end":b=a.g[a.C+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} -function Eg(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; +function wc(a){r.call(this,"PC11",a,wc);this.f=a.autoMount||null;this.J=this.g=0;this.v.local=!1;this.A="";this.H=!La("Mobi")&&window&&"FileReader"in window}u(wc);h=wc.prototype; +h.qa=function(a,b,c){var d=this;switch(b){case "listTapes":return this.I[b]=c,c.onchange=function(){var a=d.I.descTape,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){n("PC11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b=''+b+"");a.innerHTML=b}},!0;case "descTape":return this.I[b]=c,!0;case "loadTape":return this.I[b]=c,c.onclick=function(){var a=d.I.listTapes;a&&zg(d, +a.options[a.selectedIndex].text,a.value)},!0;case "mountTape":if(this.H)return this.I[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;zg(d,oa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; +h.Ca=function(a,b,c,d){this.C=a;this.w=b;this.b=c;this.i=d;if((this.f=Pc(this.C,"autoMount")||this.f)&&"string"==typeof this.f)try{this.f=eval("("+this.f+")")}catch(e){n("PC11 auto-mount error: "+e.message+" ("+this.f+")"),this.f=null}mc(b,this,Ag);Bg(this,"None","",!0);this.H&&Bg(this,"Local Tape","?");Bg(this,"Remote Tape","??");Cg(this)||H(this)};h.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.za=function(a){return a?this.save():!0}; +h.reset=function(){this.g&=-2241;this.J=0};function Cg(a){a.D=0;if(a.f){var b=a.f.path,c;if(!(c=a.f.name))a:{if((c=a.I.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(d=pa(c),e="json"==d||"gz"==d?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(e,null,!0,function(d,e,f){a.v.Ia=!1;var g=0>f&&a.C&&!a.C.v.ha;f?a.ga('Unable to load tape "'+b+'" (error '+f+": "+d+")",g):(jb(a.Ra,d,e),Ca(d,e)&&(a.A=c));a.G&&(a.G=!1,--a.D||H(a));if((d=a.I.listTapes)&& +d.options){e=a.v.local?"?":a.A;for(f=0;f=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Gg.prototype.$b=function(){return-1};Gg.prototype.ac=function(){}; +function Ig(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.U?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} +function Jg(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} -function Fg(a,b,c){var d;if(b){b=Gg(a,b);for(var e=0,f=!1,g=b,l=[],m=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=q+g;d>>=8}d=k(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Jg(a,b){if(b)return Ig(a,b,a.aa[b]);var c=0;for(b in a.aa)Ig(a,b,a.aa[b]),c++;return 0=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Og(a,b){if(b)return Ng(a,b,a.aa[b]);var c=0;for(b in a.aa)Ng(a,b,a.aa[b]),c++;return 0this.b.$a?Sg:[];Tg(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(Ug(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ha;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(k(q.id,8)+" %"+k(e<d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}h.ac=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; -h.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.tb).A));this.ka&1073741824?this.wa.push(a):this.ra&&a==this.ra||(this.ra=a,this.ka&-2147483648&&(this.da(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.na=0,a.B.$()))}; -function Mg(a){var b;if(Wd(a)){if(!a.I||!a.I.length){a.I=Array(1E3);for(b=0;b>>d.ha],!1)}a.M=["br"];if(a.D)for(b=1;b>>d.ha],!0);a.D=["bw"];a.Wa=0} -h.Qa=function(a,b,c){var d=!0;c||dh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.A)),d=!1;else{var f=this.w;f.W[e>>>f.ha].Qa(e&f.w,a==this.D)}}d&&(a.push(b),c?b.Ba=!0:(eh(this,a,a.length-1,"set"),Mg(this)));return d};function dh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ha],b==a.D));l.Ba||Mg(a);break}}return f} -function fh(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==D)w=w.A-((f&63)<<1)&65535,y=J(x,w);else if(12288==D)y=J(x,f&7,1);else if(24576==D)y=J(x,f&63,1);else if(D=f&C,C&4032&&(D>>=6,C>>=6),C&63)switch(C=D&7,D&56){case 0:y= -Zg(C);break;case 8:y="@"+Zg(C);break;case 16:7>C?y="("+Zg(C)+")+":(D=x.ma(w,2),y="#"+J(x,D,0,!0));break;case 24:7>C?y="@("+Zg(C)+")+":(D=x.ma(w,2),y="@#"+J(x,D,0,!0));break;case 32:y="-("+Zg(C)+")";break;case 40:y="@-("+Zg(C)+")";break;case 48:D=x.ma(w,2);y=J(x,D,0,!0)+"("+Zg(C)+")";7==C&&(y=[y,J(x,D+w.A&65535)]);break;case 56:D=x.ma(w,2),y="@"+J(x,D)+"("+Zg(C)+")",7==C&&(y=[y,J(x,D+w.A&65535)])}x=y;if(!x||!x.length){l="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=Zg(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function kh(a){var b,c="";for(b=0;6>b;b++)c+=jh(a,b);c=c+"\n"+(jh(a,6)+jh(a,7)+jh(a,20));return c+=ih(a,"T")+ih(a,"N")+ih(a,"Z")+ih(a,"V")+ih(a,"C")}h.Vb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,l=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.B.$();a.j("updated registers:")}a.j(kh(a));c&&(a.K=Z(d.u[7]),bh(a,J(a,a.K.A)))}}function ph(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1l[0].indexOf("+"))){var p=l[0]+":";l[2]&&(p+=" "+l[2]);a.j(p)}l[3]&&(g=l[3],f=null);f=hh(a,b,g,f);a.j(f);a.K=b;e-=b.A-m;c++}}} -function gh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.U&&(a.j("ended assemble at "+J(a,a.T.A)),a.K=a.T,a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ra=null;if(pb(a)&&0q||"z"ia.length&&(a.j("note: only "+ia.length+" available"),Y=ia.length);ca-=Y;0>ca&&(null==ia[ia.length-1].A?(Y=ca+Y,ca=0):ca+=ia.length);var ed=[];"call"==Mf&&(tb=1E5,ed=["CALL"]);for(void 0!==Lf&&a.j(Y+" instructions earlier:");0=ia.length&&(ca=0);a.Xa=Y;Of++;tb--}}Of||(a.j("no "+Nf+"history available"),a.Xa=void 0)}else{var vb=Ug(a,ha);if(vb){var dc=0;Da&&("l"==Da.charAt(0)&&(Da=Da.substr(1)||Jh),dc=Hg(a,Da)>>>0,65536>4||1;Lh--&&0gc?String.fromCharCode(gc):".";ec--}wb&&(wb+="\n");wb+=ha+" "+fd+(0==yb?" "+Rf:"")}wb&&a.j(wb);a.Pa=vb}}}}break;case "e":if("else"==g[0])break;var bb,hd,id,jd,kd=g[0],ld=g[1];"eb"==kd?(bb=1,hd=255,id=a.ob,jd=a.Fb):"e"==kd||"ew"==kd?(bb=2,hd=65535,id=a.ma,jd=a.Ta):ld=null;if(null==ld)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var hc=Ug(a,ld);if(hc)for(var ic=2;ic< -g.length;ic++){var zb=Fg(a,g[ic]);if(void 0===zb){a.j("unrecognized value: "+g[ic]);break}zb&~hd&&a.j("warning: "+k(zb)+" exceeds "+bb+"-byte value");var Mh=id.call(a,hc);a.j("changing "+J(a,hc.A)+" from "+J(a,Mh,bb)+" to "+J(a,zb,bb));jd.call(a,hc,zb,bb)}}break;case "g":a:{var Sf=g[1],Nh=b;if(void 0!==Sf){var md=Ug(a,Sf,!0);if(!md)break a;Yg(a,md,Nh);a.Qa(a.f,md,!0)}a.hb(!0,c)}break;case "h":a.v.ca?(c||a.j("halting"),a.da()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var nd; -var Ab=b.substr(2),Ab=va(Ab);Fg(a,Ab)?(c||a.j("true: "+Ab),nd=!0):(c||a.j("false: "+Ab),nd=!1);nd||(d=!1);break}f=!0;break;case "k":var Oh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var od=0,pd=Z(),Bb=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Bb.A));10>od;){for(var Ea=null,Ph=256;65536>Bb.A>>>0;){pd.A=a.ma(Bb,2);if(null==Bb.A||!Ph--)break;if(!(pd.A&1)){for(var Qh=a,jc=pd,Tf=null,Cb=jc.A,Uf=Cb,qd=1;6>=qd&&Cb;qd++){if(2< -qd){jc.A=Cb;var kc=hh(Qh,jc);if(0<=kc.indexOf("JSR")){var Vf=kc.indexOf(" ");if(Cb+(kc.indexOf(" ",Vf+1)-Vf-1)/2==Uf){Tf=kc;break}}}Cb-=2}jc.A=Uf;if(Ea=Tf)break}}if(!Ea||null==Ea)break;var Wf=null;if("ks"==Oh){var Xf=Ea.match(/[0-9A-F]+$/);Xf&&(Wf=oh(a,Xf[0]))}Ea=ua(Ea,50)+" ;"+(Wf||"stack="+J(a,Bb.A));a.j(Ea);od++}od||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){oh(a,g[1],!0);break}f=!0;break;case "m":a:{var ja,ka=null,F=g[1];"?"==F&&(F=void 0);if(void 0!==F){var xa=0;if("all"== -F)xa=1878917119,F=null;else if("on"==F)ka=!0,F=null;else if("off"==F)ka=!1,F=null;else{"keys"==F&&(F="key");"kbd"==F&&(F="keyboard");for(ja in Gb)if(F==ja){xa=Gb[ja];ka=!!(a.ka&xa);break}if(!xa){a.j("unknown message category: "+F);break a}}if(xa)if("on"==g[2])a.ka|=xa,ka=!0;else if("off"==g[2]&&(a.ka&=~xa,ka=!1,1073741824==xa)){for(var rd=0;rd\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;buh){if(wh(d,this.I)){this.D=new N(this,"1.30.1","failsafe");wh(this.D)&&(Bh(this,d),a=2,Ch(this.D));this.D.set("timestamp",Aa());Dh(this.D);var e=this.f&&!this.G;if(1==a||Ga("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ah(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?wh(d,g):("error"== -f&&"no machine state"!=g?(this.pa("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Ch(d),wh(d)?(c=Ah(d),e=!0):c=!1))}e&&zh(this,c?d:null)}else 2==a&&d.clear()}else zh(this);delete this.I;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ia=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.b&&(Eh(this,this.b,b,c,a),this.b.lb());this.T&&(Bh(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.B=0}; -function Bh(a,b){if(Ga("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} -function rh(a,b,c){var d,e="none";if(a.B)return null;a.B--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),l=Aa();g.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.da(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ia=!1,!1===d&&(e=null)));for(var l=kb(a.id),m=0;mthis.b.ab?Xg:[];Yg(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(Zg(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ia;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}h.ac=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; +h.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.tb).B));this.la&1073741824?this.wa.push(a):this.ra&&a==this.ra||(this.ra=a,this.la&-2147483648&&(this.da(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.oa=0,a.C.$()))}; +function Rg(a){var b;if(Wd(a)){if(!a.J||!a.J.length){a.J=Array(1E3);for(b=0;b>>d.ia],!1)}a.M=["br"];if(a.D)for(b=1;b>>d.ia],!0);a.D=["bw"];a.Xa=0} +h.Sa=function(a,b,c){var d=!0;c||ih(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.B)),d=!1;else{var f=this.w;f.W[e>>>f.ia].Sa(e&f.w,a==this.D)}}d&&(a.push(b),c?b.Ba=!0:(jh(this,a,a.length-1,"set"),Rg(this)));return d};function ih(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ia],b==a.D));k.Ba||Rg(a);break}}return f} +function kh(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.B-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= +dh(E);break;case 8:y="@"+dh(E);break;case 16:7>E?y="("+dh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+dh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+dh(E)+")";break;case 40:y="@-("+dh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+dh(E)+")";7==E&&(y=[y,J(x,F+w.B&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+dh(E)+")",7==E&&(y=[y,J(x,F+w.B&65535)])}x=y;if(!x||!x.length){k="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=dh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function ph(a){var b,c="";for(b=0;6>b;b++)c+=oh(a,b);c=c+"\n"+(oh(a,6)+oh(a,7)+oh(a,20));return c+=nh(a,"T")+nh(a,"N")+nh(a,"Z")+nh(a,"V")+nh(a,"C")}h.Vb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,k=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.C.$();a.j("updated registers:")}a.j(ph(a));c&&(a.K=Z(d.u[7]),gh(a,J(a,a.K.B)))}}function uh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1k[0].indexOf("+"))){var p=k[0]+":";k[2]&&(p+=" "+k[2]);a.j(p)}k[3]&&(g=k[3],f=null);f=mh(a,b,g,f);a.j(f);a.K=b;e-=b.B-m;c++}}} +function lh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.U&&(a.j("ended assemble at "+J(a,a.T.B)),a.K=a.T,a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ra=null;if(pb(a)&&0q||"z"ja.length&&(a.j("note: only "+ja.length+" available"),Y=ja.length);ca-=Y;0>ca&&(null==ja[ja.length-1].B?(Y=ca+Y,ca=0):ca+=ja.length);var jd=[];"call"==Pf&&(vb=1E5,jd=["CALL"]);for(void 0!==Of&&a.j(Y+" instructions earlier:");0=ja.length&&(ca=0);a.Ya=Y;Rf++;vb--}}Rf||(a.j("no "+Qf+"history available"),a.Ya=void 0)}else{var xb=Zg(a,ia);if(xb){var ec=0;Fa&&("l"==Fa.charAt(0)&&(Fa=Fa.substr(1)||Oh),ec=Mg(a,Fa)>>>0,65536>4||1;Qh--&&0hc?String.fromCharCode(hc):".";fc--}yb&&(yb+="\n");yb+=ia+" "+kd+(0==Ab?" "+Uf:"")}yb&&a.j(yb);a.Qa=xb}}}}break;case "e":if("else"==g[0])break;var bb,md,nd,od,pd=g[0],qd=g[1];"eb"==pd?(bb=1,md=255,nd=a.ob,od=a.Fb):"e"==pd||"ew"==pd?(bb=2,md=65535,nd=a.na,od=a.Va):qd=null;if(null==qd)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var ic=Zg(a,qd);if(ic)for(var jc=2;jc< +g.length;jc++){var Bb=Kg(a,g[jc]);if(void 0===Bb){a.j("unrecognized value: "+g[jc]);break}Bb&~md&&a.j("warning: "+l(Bb)+" exceeds "+bb+"-byte value");var Rh=nd.call(a,ic);a.j("changing "+J(a,ic.B)+" from "+J(a,Rh,bb)+" to "+J(a,Bb,bb));od.call(a,ic,Bb,bb)}}break;case "g":a:{var Vf=g[1],Sh=b;if(void 0!==Vf){var rd=Zg(a,Vf,!0);if(!rd)break a;ch(a,rd,Sh);a.Sa(a.f,rd,!0)}a.ib(!0,c)}break;case "h":a.v.ca?(c||a.j("halting"),a.da()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var sd; +var Cb=b.substr(2),Cb=va(Cb);Kg(a,Cb)?(c||a.j("true: "+Cb),sd=!0):(c||a.j("false: "+Cb),sd=!1);sd||(d=!1);break}f=!0;break;case "k":var Th=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var td=0,ud=Z(),Db=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Db.B));10>td;){for(var Ga=null,Uh=256;65536>Db.B>>>0;){ud.B=a.na(Db,2);if(null==Db.B||!Uh--)break;if(!(ud.B&1)){for(var Vh=a,kc=ud,Wf=null,Eb=kc.B,Xf=Eb,vd=1;6>=vd&&Eb;vd++){if(2< +vd){kc.B=Eb;var lc=mh(Vh,kc);if(0<=lc.indexOf("JSR")){var Yf=lc.indexOf(" ");if(Eb+(lc.indexOf(" ",Yf+1)-Yf-1)/2==Xf){Wf=lc;break}}}Eb-=2}kc.B=Xf;if(Ga=Wf)break}}if(!Ga||null==Ga)break;var Zf=null;if("ks"==Th){var $f=Ga.match(/[0-9A-F]+$/);$f&&(Zf=th(a,$f[0]))}Ga=ua(Ga,50)+" ;"+(Zf||"stack="+J(a,Db.B));a.j(Ga);td++}td||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){th(a,g[1],!0);break}f=!0;break;case "m":a:{var ka,la=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== +G)xa=1878917119,G=null;else if("on"==G)la=!0,G=null;else if("off"==G)la=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(ka in tb)if(G==ka){xa=tb[ka];la=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,la=!0;else if("off"==g[2]&&(a.la&=~xa,la=!1,1073741824==xa)){for(var wd=0;wd\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bzh){if(Bh(d,this.J)){this.D=new N(this,"1.30.1","failsafe");Bh(this.D)&&(Gh(this,d),a=2,Hh(this.D));this.D.set("timestamp",Aa());Ih(this.D);var e=this.f&&!this.G;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Fh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Bh(d,g):("error"== +f&&"no machine state"!=g?(this.ga("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Hh(d),Bh(d)?(c=Fh(d),e=!0):c=!1))}e&&Eh(this,c?d:null)}else 2==a&&d.clear()}else Eh(this);delete this.J;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ha=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(Jh(this,this.b,b,c,a),this.b.mb());this.T&&(Gh(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.C=0}; +function Gh(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} +function wh(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),k=Aa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.da(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ha=!1,!1===d&&(e=null)));for(var k=kb(a.id),m=0;mf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,l){if(l||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=l[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);l[0]!=m&&(g=g.replace(l[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],g);Wh(a,b,c)}})}else c(a,null)} -function Xh(a,b,c,d){function e(a){if(void 0===l){var b=g&&B(g,"machine-warning");l=b&&b[0]||g}l&&(l.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Ih||Va(!0));m=!1}var g,l,m=!0;Ih++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,l){l?Uh(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=l.transformNode(m))?(g.outerHTML=m,--Ih||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(l,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Ih||Va(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Uh(b,a,d,!0,e,p):Vh(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return Xh(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map +h.qa=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.C||(d.v.ha?wh(d,!1,!0):Dh(d,d.sb))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.v.ha&&!d.C)if(d.f&&!d.H){var a=Da("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");wh(d,a,!0);!a&&d.R?window&&window.location.reload():d.sb(zh)}else d.reset(),d.b&&d.b.mb()},!0;case "save":if(qa())c.parentNode.removeChild(c);else return this.I[b]= +c,c.onclick=function(){var a=Ah(d,!0);if(a){var b=!!(d.f&&!d.H||d.R),c=wh(d,b);b?Kh(d,a,c):d.ga("Resume disabled, machine state not saved")}},!0}return!1}; +function Ah(a,b){var c=a.g;c||((c=Ja("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Lh(a,c))||a.ga("The user ID is invalid.")):b&&a.ga("Browser local storage is not available"));return c} +function Lh(a,b){a.g=null;b=Ba(ra()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ka("user",b.data),a.g=b.data)}catch(d){n(d.message+" ("+c+")")}return a.g}function Ch(a){var b=null;a.g&&(b=ra()+"/api/v1/user?req=load&user="+a.g+"&state="+Mh(a,"1.30.1"));return b} +function Kh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Mh(a,"1.30.1");d.data=c;b=Ba(ra()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=k[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);k[0]!=m&&(g=g.replace(k[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],g);ai(a,b,c)}})}else c(a,null)} +function bi(a,b,c,d){function e(a){if(void 0===k){var b=g&&B(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Nh||Va(!0));m=!1}var g,k,m=!0;Nh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,k){k?Zh(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=k.transformNode(m))?(g.outerHTML=m,--Nh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Nh||Va(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Zh(b,a,d,!0,e,p):$h(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return bi(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map diff --git a/versions/pdpjs/1.30.1/pdp11.js b/versions/pdpjs/1.30.1/pdp11.js index f0fa902d5a..b5739031e9 100644 --- a/versions/pdpjs/1.30.1/pdp11.js +++ b/versions/pdpjs/1.30.1/pdp11.js @@ -30,157 +30,164 @@ */ for(var g,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,ca=["Math","log2"],da=0;da>=3;return""+c}function ja(a,b,c){var d="";b?8=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d} -function ka(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0":">",'"':""","'":"'"};function pa(a){return a.replace(/[&<>"']/g,function(a){return oa[a]})}function qa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")} -var ra={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"},sa=Date.now||function(){return+new Date}; +function ka(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0":">",'"':""","'":"'"};function pa(a){return a.replace(/[&<>"']/g,function(a){return oa[a]})} +function qa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var ra={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"},sa=Date.now||function(){return+new Date}; function ta(){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 h(a,b,c,d){var e=0,f=null,k=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),k;var l=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(l.onreadystatechange=function(){4===l.readyState&&(f=l.responseText,200==l.status||!l.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=l.status||-1),d&&d(a,f,e))});if(b&&"object"== typeof b){var n="",r;for(r in b)b.hasOwnProperty(r)&&(n&&(n+="&"),n+=r+"="+encodeURIComponent(b[r]));n=n.replace(/%20/g,"+");l.open("POST",a,!!c);l.setRequestHeader("Content-type","application/x-www-form-urlencoded");l.send(n)}else l.open("GET",a,!!c),"bytes"==b&&l.overrideMimeType("text/plain; charset=x-user-defined"),l.send();c||(f=l.responseText,200!=l.status&&(e=l.status||-1),d&&d(a,f,e),k=[f,e]);return k} -function ua(a,b){var c,d={K:null,Y:null,bb:null,ab:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,k=eval("("+b+")");d.bb=k.load;d.ab=k.exec;if(e=k.bytes)d.K=e;else if(e=k.words)for(d.K=Array(2*e.length),f=c=0;c>8&255;else if(e=k.data)for(d.K=Array(4*e.length),f=c=0;c>8&255,d.K[f++]=e[c]>>16&255,d.K[f++]=e[c]>>24&255;else d.K=k;d.Y=k.symbols;d.K.length?1==d.K.length&&(m(d.K[0]),d=null):(m("Empty resource: "+ -a),d=null)}catch(l){m("Resource data error: "+l.message),d=null}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),d.K=Array(a.length),c=0;cb?this.Ga=this.id:(this.Ha=this.id.substr(0,b),this.Ga=this.id.substr(b+1));this[a]=c;this.i={ready:!1,fd:!1,gd:!1,M:!1,error:!1};this.Ra=null;this.i.error=!1;this.v={};this.G=null;v.push(this)}var Ia=void 0,Ja={}; +function ua(a,b){var c,d={M:null,Y:null,cb:null,bb:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,k;if("<"==b.substr(0,1))throw Error(b);k=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.cb=k.load;d.bb=k.exec;if(e=k.bytes)d.M=e;else if(e=k.words)for(d.M=Array(2*e.length),f=c=0;c>8&255;else if(e=k.data)for(d.M=Array(4*e.length),f=c=0;c>8&255,d.M[f++]=e[c]>>16&255,d.M[f++]=e[c]>>24&255;else d.M=k;d.Y=k.symbols;d.M.length?1==d.M.length&&(m(d.M[0]),d=null):(m("Empty resource: "+a),d=null)}catch(l){m("Resource data error ("+a+"): "+l.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;cb?this.Ha=this.id:(this.ra=this.id.substr(0,b),this.Ha=this.id.substr(b+1));this[a]=c;this.h={ready:!1,Wa:!1,gd:!1,L:!1,error:!1};this.Ra=null;this.h.error=!1;this.s={};this.G=null;v.push(this)}var Ia=void 0,Ja={}; if(window){Ia||(Ia=window.location.search.substr(1));for(var Ka,La=/\+/g,Ma=/([^&=]+)=?([^&]*)/g;Ka=Ma.exec(Ia);)Ja[decodeURIComponent(Ka[1].replace(La," "))]=decodeURIComponent(Ka[2].replace(La," "))}function Na(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} function w(a,b){b||(b=u);a.prototype=Na(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Oa=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Oa={},v=[];function Pa(a,b,c){Oa[a]&&b&&(Oa[a][b]=c)}function x(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>2;this.g=this.c-1;this.w=this.A/this.c|0;this.ka=[];this.S=0;this.o=[];this.Ab=[ab,bb,cb,db];a=new E(this);eb(a,this.G);this.b=Array(this.w);for(b=0;b>2;this.g=this.c-1;this.v=this.A/this.c|0;this.ka=[];this.S=0;this.o=[];this.Bb=[ab,bb,cb,db];a=new E(this);eb(a,this.G);this.b=Array(this.v);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.ka[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);return 0<=c?c:c=gb(d,b)}function bb(a,b,c){var d=!1,e=this.controller,f=e.ka[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.ka[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d||gb(e,c)} -function cb(a,b){var c=-1,d=this.controller;(a=d.ka[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));return 0<=c?c:c=gb(d,b)}function db(a,b,c){var d=!1,e=this.controller;if(a=e.ka[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d||gb(e,c)}function hb(a,b){if(b!=a.j){var c;a.j&&(c=(1<>8,c+1),d=!0);d||gb(e,c)}function hb(a,b){if(b!=a.j){var c;a.j&&(c=(1<>>a.m;0k&&(t=k);if(!e&&n&&n.size){if(n.type==d){if(f+k<=n.Ba)return n.Ua+=n.Ba-f,n.Ba=f,!0;if(f>=n.Ba+n.Ua){t=n.size-(f-r);t>k&&(t=k);n.Ua=f-n.Ba+t;f=r+a.c;k-=t;l++;continue}}return mb(1,f,k)}f=new E(a,f,t,a.c,d,e);eb(f,a.G,n);a.b[l++]=f;f=r+a.c;k-=t}if(0>=k){c/=1024;var C;e="";C?10>>=a.m;0>>=a.m;0>>a.m].cb(b&a.g,b)}function pb(a,b){return a.b[(b&a.h)>>>a.m].T(b&a.g,b)}$a.prototype.Ta=function(a,b){this.S++;this.b[(a&this.h)>>>this.m].xb(a&this.g,b&255,a);this.S--}; -function qb(a,b,c){a.b[(b&a.h)>>>a.m].Va(b&a.g,c&65535,b)}function rb(a){for(var b=0,c=[],d=0;da.a.Fa)){var k=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,n=f[2]?f[2].bind(b):null,r=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!k&&n&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&r&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(r)));sb(a,e,e,k,l,n,r,f[4])}}}function ub(a,b){a.o.push(b)}function vb(a,b){a.S||F(a.a,4,b)} -function mb(a,b,c){m("Memory block error ("+a+": "+ja(b)+","+ja(c)+")");return!1}function G(a){u.call(this,"Device",a,G);this.c={data:0,ed:0,Sa:20,tc:0};this.b={hd:0,hb:-1}}w(G);g=G.prototype;g.ea=function(a,b,c,d){this.m=b;this.a=c;this.G=d;var e=this;this.b.hb=wb(c,function(){e.b.na|=128;e.b.na&64&&(xb(e.a,e.b.uc),yb(e.a,e.b.hb,1E3/60))});this.b.uc=zb(64,6);tb(b,this,H);ub(b,this.reset.bind(this));B(this)};g.reset=function(){this.c.Sa=this.c.Sa&-120|20;this.b.na=0}; -g.Pb=function(){var a=this.b.na;this.b.na&=-129;return a};g.Dc=function(a){this.b.na=a;a&64&&yb(this.a,this.b.hb,1E3/60);this.b.na=a&-129};g.Ib=function(a){return(a?this.c.tc:this.c.data)&65535};g.wc=function(a){this.c.data=a};g.Rb=function(){var a=this.a;return a.A&62337|a.Ia<<5|a.Ja<<1};g.Fc=function(a){var b=this.a;a&=62337;if(b.A!=a){b.A=a;b.Ia=a>>5&3;b.Ja=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Da!=c&&(b.Da=c,Ab(b))}Bb(this)}; -g.Sb=function(){var a=this.a.oa;a&65280&&(a=(a<<8|a>>8)&65535);return a};g.Tb=function(){return this.a.fb};g.Ub=function(){return this.a.pa};g.Gc=function(a){var b=this.a;1170>b.Fa&&(a&=-49);b.pa!=a&&(b.pa=a,a&16?(b.Za=4194303,b.Ka=3915776):(b.Za=262143,b.Ka=253952),Ab(b));Bb(this)};function Bb(a){a.c.Sa=a.c.Sa&-8|(a.a.Da?a.a.pa&16?1:2:4)}g.hc=function(a){return this.a.C[1][a>>1&7]};g.Uc=function(a,b){this.a.C[1][b>>1&7]=a&65295};g.fc=function(a){return this.a.C[1][(a>>1&7)+8]}; -g.Sc=function(a,b){this.a.C[1][(b>>1&7)+8]=a&65295};g.gc=function(a){return this.a.R[1][a>>1&7]};g.Tc=function(a,b){b=b>>1&7;this.a.R[1][b]=a;this.a.C[1][b]&=65295};g.ec=function(a){return this.a.R[1][(a>>1&7)+8]};g.Rc=function(a,b){b=(b>>1&7)+8;this.a.R[1][b]=a;this.a.C[1][b]&=65295};g.Ob=function(a){return this.a.C[0][a>>1&7]};g.Cc=function(a,b){this.a.C[0][b>>1&7]=a&65295};g.Mb=function(a){return this.a.C[0][(a>>1&7)+8]};g.Ac=function(a,b){this.a.C[0][(b>>1&7)+8]=a&65295}; -g.Nb=function(a){return this.a.R[0][a>>1&7]};g.Bc=function(a,b){b=b>>1&7;this.a.R[0][b]=a;this.a.C[0][b]&=65295};g.Lb=function(a){return this.a.R[0][(a>>1&7)+8]};g.zc=function(a,b){b=(b>>1&7)+8;this.a.R[0][b]=a;this.a.C[0][b]&=65295};g.nc=function(a){return this.a.C[3][a>>1&7]};g.$c=function(a,b){this.a.C[3][b>>1&7]=a&65295};g.lc=function(a){return this.a.C[3][(a>>1&7)+8]};g.Yc=function(a,b){this.a.C[3][(b>>1&7)+8]=a&65295};g.mc=function(a){return this.a.R[3][a>>1&7]}; -g.Zc=function(a,b){b=b>>1&7;this.a.R[3][b]=a;this.a.C[3][b]&=65295};g.kc=function(a){return this.a.R[3][(a>>1&7)+8]};g.Xc=function(a,b){b=(b>>1&7)+8;this.a.R[3][b]=a;this.a.C[3][b]&=65295};g.wa=function(a){a&=7;return this.a.u&2048?this.a.ua[a]:this.a.f[a]};g.ya=function(a,b){b&=7;this.a.u&2048?this.a.ua[b]=a:this.a.f[b]=a};g.Zb=function(){return this.a.u&49152?this.a.aa[0]:this.a.f[6]};g.Lc=function(a){this.a.u&49152?this.a.aa[0]=a:this.a.f[6]=a};g.bc=function(){return this.a.f[7]}; -g.Oc=function(a){this.a.f[7]=a};g.xa=function(a){a&=7;return this.a.u&2048?this.a.f[a]:this.a.ua[a]};g.za=function(a,b){b&=7;this.a.u&2048?this.a.f[b]=a:this.a.ua[b]=a};g.$b=function(){return 1==(this.a.u&49152)>>14?this.a.f[6]:this.a.aa[1]};g.Mc=function(a){1==(this.a.u&49152)>>14?this.a.f[6]=a:this.a.aa[1]=a};g.ac=function(){return 3==(this.a.u&49152)>>14?this.a.f[6]:this.a.aa[3]};g.Nc=function(a){3==(this.a.u&49152)>>14?this.a.f[6]=a:this.a.aa[3]=a};g.Kb=function(a){return this.a.ub[a-65504>>1]}; -g.yc=function(a,b){this.a.ub[b-65504>>1]=a};g.sb=function(a){return 65520==a?61183:0};g.zb=function(){};g.jc=function(){return 1};g.Wc=function(){};g.Jb=function(){return this.a.F};g.xc=function(){this.a.F=0};g.Qb=function(){return this.a.tb};g.Ec=function(a,b){b&1||(a&=255);this.a.tb=a};g.Vb=function(a){return a?this.a.gb:0};g.Hc=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.gb=a;b.l|=2};g.ic=function(a){return a?this.a.qa&65280:0};g.Vc=function(a){this.a.qa=a|255}; -g.Yb=function(){return Za(this.a)};g.Kc=function(a){Cb(this.a,a&-1809|Za(this.a)&1808);this.a.l|=128};g.yb=function(){}; -var I={},H=(I[62592]=[null,null,G.prototype.hc,G.prototype.Uc,"SISDR",1145],I[62608]=[null,null,G.prototype.fc,G.prototype.Sc,"SDSDR",1145],I[62624]=[null,null,G.prototype.gc,G.prototype.Tc,"SISAR",1145],I[62640]=[null,null,G.prototype.ec,G.prototype.Rc,"SDSAR",1145],I[62656]=[null,null,G.prototype.Ob,G.prototype.Cc,"KISDR",1145],I[62672]=[null,null,G.prototype.Mb,G.prototype.Ac,"KDSDR",1145],I[62688]=[null,null,G.prototype.Nb,G.prototype.Bc,"KISAR",1145],I[62704]=[null,null,G.prototype.Lb,G.prototype.zc, -"KDSAR",1145],I[62798]=[null,null,G.prototype.Ub,G.prototype.Gc,"MMR3",1145],I[65382]=[null,null,G.prototype.Pb,G.prototype.Dc,"LKS"],I[65400]=[null,null,G.prototype.Ib,G.prototype.wc,"CNSL"],I[65402]=[null,null,G.prototype.Rb,G.prototype.Fc,"MMR0",1145],I[65404]=[null,null,G.prototype.Sb,G.prototype.yb,"MMR1",1145],I[65406]=[null,null,G.prototype.Tb,G.prototype.yb,"MMR2",1145],I[65408]=[null,null,G.prototype.nc,G.prototype.$c,"UISDR",1145],I[65424]=[null,null,G.prototype.lc,G.prototype.Yc,"UDSDR", -1145],I[65440]=[null,null,G.prototype.mc,G.prototype.Zc,"UISAR",1145],I[65456]=[null,null,G.prototype.kc,G.prototype.Xc,"UDSAR",1145],I[65472]=[null,null,G.prototype.wa,G.prototype.ya,"R0SET0"],I[65473]=[null,null,G.prototype.wa,G.prototype.ya,"R1SET0"],I[65474]=[null,null,G.prototype.wa,G.prototype.ya,"R2SET0"],I[65475]=[null,null,G.prototype.wa,G.prototype.ya,"R3SET0"],I[65476]=[null,null,G.prototype.wa,G.prototype.ya,"R4SET0"],I[65477]=[null,null,G.prototype.wa,G.prototype.ya,"R5SET0"],I[65478]= -[null,null,G.prototype.Zb,G.prototype.Lc,"R6KERNEL"],I[65479]=[null,null,G.prototype.bc,G.prototype.Oc,"R7KERNEL"],I[65480]=[null,null,G.prototype.xa,G.prototype.za,"R0SET1",1145],I[65481]=[null,null,G.prototype.xa,G.prototype.za,"R1SET1",1145],I[65482]=[null,null,G.prototype.xa,G.prototype.za,"R2SET1",1145],I[65483]=[null,null,G.prototype.xa,G.prototype.za,"R3SET1",1145],I[65484]=[null,null,G.prototype.xa,G.prototype.za,"R4SET1",1145],I[65485]=[null,null,G.prototype.xa,G.prototype.za,"R5SET1",1145], -I[65486]=[null,null,G.prototype.$b,G.prototype.Mc,"R6SUPER",1145],I[65487]=[null,null,G.prototype.ac,G.prototype.Nc,"R6USER",1145],I[65504]=[null,null,G.prototype.Kb,G.prototype.yc,"CTRL",1170],I[65520]=[null,null,G.prototype.sb,G.prototype.zb,"LSIZE",1170],I[65522]=[null,null,G.prototype.sb,G.prototype.zb,"HSIZE",1170],I[65524]=[null,null,G.prototype.jc,G.prototype.Wc,"SYSID",1170],I[65526]=[null,null,G.prototype.Jb,G.prototype.xc,"CPUERR",1170],I[65528]=[null,null,G.prototype.Qb,G.prototype.Ec, -"MB",1170],I[65530]=[null,null,G.prototype.Vb,G.prototype.Hc,"PIR"],I[65532]=[null,null,G.prototype.ic,G.prototype.Vc,"SL"],I[65534]=[null,null,G.prototype.Yb,G.prototype.Kc,"PSW"],I);H[62594]=H[62592];H[62596]=H[62592];H[62598]=H[62592];H[62600]=H[62592];H[62602]=H[62592];H[62604]=H[62592];H[62606]=H[62592];H[62610]=H[62608];H[62612]=H[62608];H[62614]=H[62608];H[62616]=H[62608];H[62618]=H[62608];H[62620]=H[62608];H[62622]=H[62608];H[62626]=H[62624];H[62628]=H[62624];H[62630]=H[62624];H[62632]=H[62624]; +function kb(a,b,c,d,e){for(var f=b,k=c,l=f>>>a.m;0k&&(t=k);if(!e&&n&&n.size){if(n.type==d){if(f+k<=n.Ca)return n.Ua+=n.Ca-f,n.Ca=f,!0;if(f>=n.Ca+n.Ua){t=n.size-(f-r);t>k&&(t=k);n.Ua=f-n.Ca+t;f=r+a.c;k-=t;l++;continue}}return mb(1,f,k)}f=new E(a,f,t,a.c,d,e);eb(f,a.G,n);a.b[l++]=f;f=r+a.c;k-=t}if(0>=k){c/=1024;var D;e="";D?10>>=a.m;0>>=a.m;0>>a.m].eb(b&a.g,b)}function pb(a,b){return a.b[(b&a.i)>>>a.m].T(b&a.g,b)}$a.prototype.Ta=function(a,b){this.S++;this.b[(a&this.i)>>>this.m].yb(a&this.g,b&255,a);this.S--}; +function qb(a,b,c){a.b[(b&a.i)>>>a.m].Va(b&a.g,c&65535,b)}function rb(a){for(var b=0,c=[],d=0;da.a.Ga)){var k=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,n=f[2]?f[2].bind(b):null,r=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!k&&n&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&r&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(r)));sb(a,e,e,k,l,n,r,f[4])}}}function ub(a,b){a.o.push(b)}function vb(a,b){a.S||F(a.a,4,b)} +function mb(a,b,c){m("Memory block error ("+a+": "+ja(b)+","+ja(c)+")");return!1}function G(a){u.call(this,"Device",a,G);this.c={data:0,fd:0,Sa:20,uc:0};this.b={hd:0,ib:-1}}w(G);g=G.prototype;g.ea=function(a,b,c,d){this.m=b;this.a=c;this.G=d;var e=this;this.b.ib=wb(c,function(){e.b.na|=128;e.b.na&64&&(xb(e.a,e.b.vc),yb(e.a,e.b.ib,1E3/60))});this.b.vc=zb(64,6);tb(b,this,H);ub(b,this.reset.bind(this));B(this)};g.reset=function(){this.c.Sa=this.c.Sa&-120|20;this.b.na=0}; +g.Qb=function(){var a=this.b.na;this.b.na&=-129;return a};g.Ec=function(a){this.b.na=a;a&64&&yb(this.a,this.b.ib,1E3/60);this.b.na=a&-129};g.Jb=function(a){return(a?this.c.uc:this.c.data)&65535};g.xc=function(a){this.c.data=a};g.Sb=function(){var a=this.a;return a.A&62337|a.Ia<<5|a.Ja<<1};g.Gc=function(a){var b=this.a;a&=62337;if(b.A!=a){b.A=a;b.Ia=a>>5&3;b.Ja=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ea!=c&&(b.Ea=c,Ab(b))}Bb(this)}; +g.Tb=function(){var a=this.a.oa;a&65280&&(a=(a<<8|a>>8)&65535);return a};g.Ub=function(){return this.a.gb};g.Vb=function(){return this.a.pa};g.Hc=function(a){var b=this.a;1170>b.Ga&&(a&=-49);b.pa!=a&&(b.pa=a,a&16?(b.$a=4194303,b.Ka=3915776):(b.$a=262143,b.Ka=253952),Ab(b));Bb(this)};function Bb(a){a.c.Sa=a.c.Sa&-8|(a.a.Ea?a.a.pa&16?1:2:4)}g.ic=function(a){return this.a.C[1][a>>1&7]};g.Vc=function(a,b){this.a.C[1][b>>1&7]=a&65295};g.gc=function(a){return this.a.C[1][(a>>1&7)+8]}; +g.Tc=function(a,b){this.a.C[1][(b>>1&7)+8]=a&65295};g.hc=function(a){return this.a.R[1][a>>1&7]};g.Uc=function(a,b){b=b>>1&7;this.a.R[1][b]=a;this.a.C[1][b]&=65295};g.fc=function(a){return this.a.R[1][(a>>1&7)+8]};g.Sc=function(a,b){b=(b>>1&7)+8;this.a.R[1][b]=a;this.a.C[1][b]&=65295};g.Pb=function(a){return this.a.C[0][a>>1&7]};g.Dc=function(a,b){this.a.C[0][b>>1&7]=a&65295};g.Nb=function(a){return this.a.C[0][(a>>1&7)+8]};g.Bc=function(a,b){this.a.C[0][(b>>1&7)+8]=a&65295}; +g.Ob=function(a){return this.a.R[0][a>>1&7]};g.Cc=function(a,b){b=b>>1&7;this.a.R[0][b]=a;this.a.C[0][b]&=65295};g.Mb=function(a){return this.a.R[0][(a>>1&7)+8]};g.Ac=function(a,b){b=(b>>1&7)+8;this.a.R[0][b]=a;this.a.C[0][b]&=65295};g.oc=function(a){return this.a.C[3][a>>1&7]};g.ad=function(a,b){this.a.C[3][b>>1&7]=a&65295};g.mc=function(a){return this.a.C[3][(a>>1&7)+8]};g.Zc=function(a,b){this.a.C[3][(b>>1&7)+8]=a&65295};g.nc=function(a){return this.a.R[3][a>>1&7]}; +g.$c=function(a,b){b=b>>1&7;this.a.R[3][b]=a;this.a.C[3][b]&=65295};g.lc=function(a){return this.a.R[3][(a>>1&7)+8]};g.Yc=function(a,b){b=(b>>1&7)+8;this.a.R[3][b]=a;this.a.C[3][b]&=65295};g.wa=function(a){a&=7;return this.a.w&2048?this.a.ua[a]:this.a.f[a]};g.ya=function(a,b){b&=7;this.a.w&2048?this.a.ua[b]=a:this.a.f[b]=a};g.$b=function(){return this.a.w&49152?this.a.aa[0]:this.a.f[6]};g.Mc=function(a){this.a.w&49152?this.a.aa[0]=a:this.a.f[6]=a};g.cc=function(){return this.a.f[7]}; +g.Pc=function(a){this.a.f[7]=a};g.xa=function(a){a&=7;return this.a.w&2048?this.a.f[a]:this.a.ua[a]};g.za=function(a,b){b&=7;this.a.w&2048?this.a.f[b]=a:this.a.ua[b]=a};g.ac=function(){return 1==(this.a.w&49152)>>14?this.a.f[6]:this.a.aa[1]};g.Nc=function(a){1==(this.a.w&49152)>>14?this.a.f[6]=a:this.a.aa[1]=a};g.bc=function(){return 3==(this.a.w&49152)>>14?this.a.f[6]:this.a.aa[3]};g.Oc=function(a){3==(this.a.w&49152)>>14?this.a.f[6]=a:this.a.aa[3]=a};g.Lb=function(a){return this.a.vb[a-65504>>1]}; +g.zc=function(a,b){this.a.vb[b-65504>>1]=a};g.tb=function(a){return 65520==a?61183:0};g.Ab=function(){};g.kc=function(){return 1};g.Xc=function(){};g.Kb=function(){return this.a.F};g.yc=function(){this.a.F=0};g.Rb=function(){return this.a.ub};g.Fc=function(a,b){b&1||(a&=255);this.a.ub=a};g.Wb=function(a){return a?this.a.hb:0};g.Ic=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.hb=a;b.l|=2};g.jc=function(a){return a?this.a.qa&65280:0};g.Wc=function(a){this.a.qa=a|255}; +g.Zb=function(){return Za(this.a)};g.Lc=function(a){Cb(this.a,a&-1809|Za(this.a)&1808);this.a.l|=128};g.zb=function(){}; +var I={},H=(I[62592]=[null,null,G.prototype.ic,G.prototype.Vc,"SISDR",1145],I[62608]=[null,null,G.prototype.gc,G.prototype.Tc,"SDSDR",1145],I[62624]=[null,null,G.prototype.hc,G.prototype.Uc,"SISAR",1145],I[62640]=[null,null,G.prototype.fc,G.prototype.Sc,"SDSAR",1145],I[62656]=[null,null,G.prototype.Pb,G.prototype.Dc,"KISDR",1145],I[62672]=[null,null,G.prototype.Nb,G.prototype.Bc,"KDSDR",1145],I[62688]=[null,null,G.prototype.Ob,G.prototype.Cc,"KISAR",1145],I[62704]=[null,null,G.prototype.Mb,G.prototype.Ac, +"KDSAR",1145],I[62798]=[null,null,G.prototype.Vb,G.prototype.Hc,"MMR3",1145],I[65382]=[null,null,G.prototype.Qb,G.prototype.Ec,"LKS"],I[65400]=[null,null,G.prototype.Jb,G.prototype.xc,"CNSL"],I[65402]=[null,null,G.prototype.Sb,G.prototype.Gc,"MMR0",1145],I[65404]=[null,null,G.prototype.Tb,G.prototype.zb,"MMR1",1145],I[65406]=[null,null,G.prototype.Ub,G.prototype.zb,"MMR2",1145],I[65408]=[null,null,G.prototype.oc,G.prototype.ad,"UISDR",1145],I[65424]=[null,null,G.prototype.mc,G.prototype.Zc,"UDSDR", +1145],I[65440]=[null,null,G.prototype.nc,G.prototype.$c,"UISAR",1145],I[65456]=[null,null,G.prototype.lc,G.prototype.Yc,"UDSAR",1145],I[65472]=[null,null,G.prototype.wa,G.prototype.ya,"R0SET0"],I[65473]=[null,null,G.prototype.wa,G.prototype.ya,"R1SET0"],I[65474]=[null,null,G.prototype.wa,G.prototype.ya,"R2SET0"],I[65475]=[null,null,G.prototype.wa,G.prototype.ya,"R3SET0"],I[65476]=[null,null,G.prototype.wa,G.prototype.ya,"R4SET0"],I[65477]=[null,null,G.prototype.wa,G.prototype.ya,"R5SET0"],I[65478]= +[null,null,G.prototype.$b,G.prototype.Mc,"R6KERNEL"],I[65479]=[null,null,G.prototype.cc,G.prototype.Pc,"R7KERNEL"],I[65480]=[null,null,G.prototype.xa,G.prototype.za,"R0SET1",1145],I[65481]=[null,null,G.prototype.xa,G.prototype.za,"R1SET1",1145],I[65482]=[null,null,G.prototype.xa,G.prototype.za,"R2SET1",1145],I[65483]=[null,null,G.prototype.xa,G.prototype.za,"R3SET1",1145],I[65484]=[null,null,G.prototype.xa,G.prototype.za,"R4SET1",1145],I[65485]=[null,null,G.prototype.xa,G.prototype.za,"R5SET1",1145], +I[65486]=[null,null,G.prototype.ac,G.prototype.Nc,"R6SUPER",1145],I[65487]=[null,null,G.prototype.bc,G.prototype.Oc,"R6USER",1145],I[65504]=[null,null,G.prototype.Lb,G.prototype.zc,"CTRL",1170],I[65520]=[null,null,G.prototype.tb,G.prototype.Ab,"LSIZE",1170],I[65522]=[null,null,G.prototype.tb,G.prototype.Ab,"HSIZE",1170],I[65524]=[null,null,G.prototype.kc,G.prototype.Xc,"SYSID",1170],I[65526]=[null,null,G.prototype.Kb,G.prototype.yc,"CPUERR",1170],I[65528]=[null,null,G.prototype.Rb,G.prototype.Fc, +"MB",1170],I[65530]=[null,null,G.prototype.Wb,G.prototype.Ic,"PIR"],I[65532]=[null,null,G.prototype.jc,G.prototype.Wc,"SL"],I[65534]=[null,null,G.prototype.Zb,G.prototype.Lc,"PSW"],I);H[62594]=H[62592];H[62596]=H[62592];H[62598]=H[62592];H[62600]=H[62592];H[62602]=H[62592];H[62604]=H[62592];H[62606]=H[62592];H[62610]=H[62608];H[62612]=H[62608];H[62614]=H[62608];H[62616]=H[62608];H[62618]=H[62608];H[62620]=H[62608];H[62622]=H[62608];H[62626]=H[62624];H[62628]=H[62624];H[62630]=H[62624];H[62632]=H[62624]; H[62634]=H[62624];H[62636]=H[62624];H[62638]=H[62624];H[62642]=H[62640];H[62644]=H[62640];H[62646]=H[62640];H[62648]=H[62640];H[62650]=H[62640];H[62652]=H[62640];H[62654]=H[62640];H[62658]=H[62656];H[62660]=H[62656];H[62662]=H[62656];H[62664]=H[62656];H[62666]=H[62656];H[62668]=H[62656];H[62670]=H[62656];H[62674]=H[62672];H[62676]=H[62672];H[62678]=H[62672];H[62680]=H[62672];H[62682]=H[62672];H[62684]=H[62672];H[62686]=H[62672];H[62690]=H[62688];H[62692]=H[62688];H[62694]=H[62688];H[62696]=H[62688]; H[62698]=H[62688];H[62700]=H[62688];H[62702]=H[62688];H[62706]=H[62704];H[62708]=H[62704];H[62710]=H[62704];H[62712]=H[62704];H[62714]=H[62704];H[62716]=H[62704];H[62718]=H[62704];H[65410]=H[65408];H[65412]=H[65408];H[65414]=H[65408];H[65416]=H[65408];H[65418]=H[65408];H[65420]=H[65408];H[65422]=H[65408];H[65426]=H[65424];H[65428]=H[65424];H[65430]=H[65424];H[65432]=H[65424];H[65434]=H[65424];H[65436]=H[65424];H[65438]=H[65424];H[65442]=H[65440];H[65444]=H[65440];H[65446]=H[65440];H[65448]=H[65440]; H[65450]=H[65440];H[65452]=H[65440];H[65454]=H[65440];H[65458]=H[65456];H[65460]=H[65456];H[65462]=H[65456];H[65464]=H[65456];H[65466]=H[65456];H[65468]=H[65456];H[65470]=H[65456];H[65506]=H[65504];H[65508]=H[65504];H[65510]=H[65504];H[65512]=H[65504];H[65514]=H[65504];H[65516]=H[65504];H[65518]=H[65504];q(function(){for(var a=A(document,"pdp11","device"),b=0;b>1),this.a=new Int32Array(this.b,0,d>>2),Jb(this,Fb?Kb:Lb);else{this.a=Array(d>>2);for(a=0;a>1),this.a=new Int32Array(this.b,0,d>>2),Jb(this,Fb?Kb:Lb);else{this.a=Array(d>>2);for(a=0;a>2),b=0;b>8,c)},N:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ba:function(a,b){a&1&&vb(this.m,b);b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},ha:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.la=!0},H:function(a,b){return this.I(a,b)}, -S:function(a,b){return this.W(a,b)},da:function(a,b,c){this.v||this.xb(a,b,c)},ja:function(a,b,c){this.v||this.ra(a,b,c)},D:function(a){return this.c[a]},J:function(a){return this.c[a]},O:function(a,b){a&1&&vb(this.m,b);return this.g.getUint16(a,!0)},X:function(a,b){a&1&&vb(this.m,b);return this.o[a>>1]},ca:function(a,b){this.c[a]=b;this.la=!0},ga:function(a,b){this.c[a]=b;this.la=!0},ia:function(a,b,c){a&1&&vb(this.m,c);this.g.setUint16(a,b,!0);this.la=!0},sa:function(a,b,c){a&1&&vb(this.m,c);this.o[a>> -1]=b;this.la=!0}};function eb(a,b,c){a.G=b;a.h=a.j=0;c&&((a.h=c.h)&&Nb(a,Ob,!1),(a.j=c.j)&&Pb(a,Ob,!1))}function Pb(a,b,c){c&&a.j||(a.ib=!a.v&&b[1]||a.A,a.Va=!a.v&&b[3]||a.B);if(c||void 0===c)a.xb=b[1]||a.A,a.ra=b[3]||a.B}function Nb(a,b,c){c&&a.h||(a.cb=b[0]||a.w,a.T=b[2]||a.s);if(c||void 0===c)a.I=b[0]||a.w,a.W=b[2]||a.s}function Jb(a,b){b||(b=Qb);Nb(a,b,void 0);Pb(a,b,void 0)} -var Qb=[],Mb=[E.prototype.N,E.prototype.ha,E.prototype.ba,E.prototype.ta],Ob=[E.prototype.H,E.prototype.da,E.prototype.S,E.prototype.ja];if(Ta)var Lb=[E.prototype.D,E.prototype.ca,E.prototype.O,E.prototype.ia],Kb=[E.prototype.J,E.prototype.ga,E.prototype.X,E.prototype.sa]; -function Rb(a,b){u.call(this,"CPU",a,Rb);var c=a.multiplier||1;this.Pa=a.cycles||b;this.da=c;this.Ya=Math.round(this.Pa/1E4)/100;this.ga=this.Ya*this.da;this.i.U=!1;this.i.vb=!1;this.i.Ca=a.autoStart;this.i.Oa=!1;this.Ma=this.ia=0;this.Na=a.csStart;this.ra=a.csInterval;this.sa=a.csStop;this.H=[];this.rb=this.sc.bind(this);B(this)}w(Rb);var Sb=["power","reset"];g=Rb.prototype; -g.ea=function(a,b,c,d){this.w=a;this.m=b;this.G=d;for(b=0;ba.ba/a.ga&&(b=1),a.da=b,b=a.Ya*a.da,a.ga!=b)){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var c=a.v.setSpeed;c&&(c.textContent=b);a.P("target speed: "+b)}a.J+=a.W;a.W=0;a.O=sa();a.ca=0;Yb(a)}function wb(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function yb(a,b,c){0<=b&&ba.H[b][0]&&(c=a.Pa*a.da/1E3*c|0,a.H[b][0]=c+$b(a))}function $b(a,b){var c=a.ha-=a.a;a.a=0;b&&(a.ha=0);return c} -g.sc=function(){if(this.i.U){this.$a>=this.Pa&&Yb(this,!0);this.Aa=0;this.La=sa();if(this.ca){var a=this.La-this.ca;a>this.pb&&(this.O+=a,this.O>this.La&&(this.O=this.La))}try{do{for(var b,c=this.i.Oa?1:this.Qa,d=this.H.length-1;0<=d;d--){var e=this.H[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.wb(b)}catch(n){if("number"!=typeof n)throw n;}b=$b(this,!0);this.Aa+=b;this.W+=b;a=b;if(this.i.Oa){var f=!1;this.Ma=this.Ma+this.lb()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.ra,f=!0);0<=this.sa&&this.sa<=Zb(this)&& -(this.ra=this.sa=-1,Vb(this),Xa(this),f=!0);f&&this.P(Zb(this)+" cycles: checksum="+ja(this.Ma))}for(var a=b,k=this.H.length-1;0<=k;k--){var l=this.H[k];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.ta-=b;if(0>=this.ta){this.ta+=this.Qa;15<=++this.qb&&(this.w&&this.w.fa(),this.qb=0);break}}while(this.i.U)}catch(n){Xa(this);this.w&&this.w.stop(sa(),Zb(this));b=n.stack||n.message;this.i.error=!0;this.L(b);return}if(this.i.U){b=setTimeout;c=this.rb;this.ca=sa();d=this.pb;this.Aa&&(d=Math.round(d* -this.Aa/this.Qa));d-=this.ca-this.La;if(e=this.ca-this.O)this.ba=Math.round(this.W/(10*e))/100,864E5<=e&&(this.J=0,Xb(this));if(0>d||this.bad&&(this.O-=d),d=0;this.$a+=this.Aa;this.ca+=d;b(c,d)}}};function Wb(a){var b;a.i.error?(a.P(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.U)a.P(a.toString()+" busy");else{Xb(a);a.i.U=!0;a.i.vb=!0;if(b=a.v.run)b.textContent="Halt";a.w&&a.w.start(a.O,Zb(a));setTimeout(a.rb,0)}}g.wb=function(){return 0}; -function Xa(a){if(a.i.U){$b(a);a.J+=a.W;a.W=0;a.i.U=!1;var b=a.v.run;b&&(b.textContent="Run");a.w&&a.w.stop(sa(),Zb(a))}a.i.complete=void 0}function ac(a){this.Fa=+a.model||1170;this.nb=a.addrReset||0;Rb.call(this,a,6666667);this.decode=1120==this.Fa?bc.bind(this):cc.bind(this);dc(this);this.S=0;this.X=null;this.i.complete=this.i.Bb=!1}w(ac,Rb);g=ac.prototype;g.reset=function(){this.status("model "+this.Fa);this.i.U&&Xa(this);dc(this);Ub(this);this.i.error=!1;this.parent.reset.call(this)}; -function dc(a){a.j=65536;a.g=32768;a.h=65535;a.o=32768;a.u=15;a.f=[0,0,0,0,0,0,0,a.nb];a.ua=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.s=0;a.Ja=0;a.Fb=[4,2,0,1];a.C=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.R=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Hb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.ub=[0,0,0,0,0,0,0,0];a.tb=0;a.l=0;a.B=a.D=0;a.c=a.b=a.Xa=0;a.ja=-1;ec(a)}function ec(a){a.qa=255;a.F=0;a.gb=0;a.A=0;a.oa=0;a.fb=0;a.pa=0;a.Da=0;a.Ia=0;a.Za=262143;a.Ka=253952;a.l|=2;a.m&&Ab(a)}function Ab(a){a.Da?(a.N=65536,a.I=a.Eb,a.T=a.pc,a.Va=a.bd,hb(a.m,a.pa&16?22:18)):(a.N=0,a.I=a.Db,a.T=a.oc,a.Va=a.ad,hb(a.m,16))}g.lb=function(){return 0}; -g.save=function(){var a=new K(this);a.set(0,[]);a.set(1,[this.J,this.da]);a.set(2,rb(this.m));return a.data()};g.restore=function(a){var b=a[1];this.J=b[1];Xb(this,b[3]);a:{b=this.m;a=a[2];var c;for(c=0;c>14&3;c=a.u>>14&3;a.s!=c&&(a.aa[c]=a.f[6],a.f[6]=a.aa[a.s]);a.u=b;a.l|=2}function N(a,b){a.l&128||(a.o=a.h=b,a.g=0)}function O(a,b,c){a.l&128||(a.o=a.h=a.j=b,a.g=c||0)}function gc(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^b)&(d^b))}function P(a,b){a.l&128||(a.o=a.h=a.j=b,a.g=a.o^a.j>>1)}function hc(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^d)&(d^b))} -function F(a,b,c){if(!a.S){var d=!1;0>a.ja?a.ja=Za(a):a.s||(b=4,d=!0);a.A&57344||(a.oa=63222,a.fb=b);a.s=0;var e=a.T(b|a.N),f=a.T(b+2&65535|a.N);Cb(a,f&-12289|a.ja>>2&12288);d&&(a.F|=4,a.f[6]=4);ic(a,a.ja);ic(a,a.f[7]);M(a,e);a.l&=-113;a.ja=-1;if(26!=c)throw b;}}function jc(a){var b=kc(a),c=kc(a)&-1793;a.u&49152&&(c=c&-225|a.u&63712);M(a,b);Cb(a,c);a.l&=-17} -function lc(a,b,c){var d,e,f,k=0;d=b>>13;a.pa&a.Fb[a.s]||(d&=7);e=a.C[a.s][d];f=(a.R[a.s][d]<<6)+(b&8191)&a.Za;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.pa&32&&(f=a.Hb[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Ka&&4186112>f&&(a.F|=32,F(a,4,12))}switch(e&7){case 1:k=4096;case 2:e|=128;c&4&&(k=8192);break;case 4:k=4096;case 5:c&4&&(k=4096);case 6:e|=c&4?192: -128;break;default:k=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(k|=16384):(b&8128)>(e>>2&8128)&&(k|=16384));a.C[a.s][d]=e;if(4194170!==f||a.s)a.Ia=a.s,a.Ja=d;k&&(k&57344&&(0<=a.ja&&(k|=128),a.A&57344||(a.A=a.A|k|a.Ia<<5|a.Ja<<1),F(a,168,16)),a.A&61440||!(4191360>f||4194239>>a.m].ib(b&a.g,c&255,b)}function kc(a){var b=a.T(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b} -function ic(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.oa=a.oa<<8|246);!a.s&&c<=a.qa&&4c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=k);e=a.T(e);e|=k;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.f[c]+f&65535;7!==c&&(e|=k);a.a-=4;break;case 5:f=-2;e=a.f[c]-2&65535;7!==c&&(e|=k);e=a.T(e)|k;a.a-= -8;break;case 6:return e=fc(a),e=e+a.f[c]&65535|k,a.a-=6,e;case 7:return e=fc(a),e=e+a.f[c]&65535,e=a.T(e|a.N)|k,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!k||a.A&57344||(a.oa=a.oa<<8|f<<3&248|c);6==c&&!a.s&&d&4&&0>=f&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32?(a.F|=4,a.f[6]=4,F(a,4,24)):(a.F|=8,a.l|=64));return e}g.Ta=function(a,b){this.Da?(this.S++,mc(this,lc(this,a,5),b),this.S--):this.m.Ta(a,b)};g.Db=function(a,b,c){return nc(this,a,b,c)};g.Eb=function(a,b,c){return lc(this,nc(this,a,b,c),c)}; -g.oc=function(a){return pb(this.m,a)};g.pc=function(a){return pb(this.m,lc(this,a,2))};g.ad=function(a,b){qb(this.m,a,b&65535)};g.bd=function(a,b){qb(this.m,lc(this,a,4),b)};function oc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=nc(a,b,d,2),c&65536||61440!==(a.u&61440)&&(d&=65535),a.s=a.u>>12&3,c=a.T(d|c&a.N),a.s=a.u>>14&3):c=6!=d||(a.u>>2&12288)===(a.u&12288)?a.f[d]:a.aa[a.u>>12&3];return c} -function pc(a,b,c,d){a.A&57344||(a.oa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=nc(a,b,e,4),c&65536||(e&=65535),a.s=a.u>>12&3,e=lc(a,e|c&65536,4),a.s=a.u>>14&3,qb(a.m,e,d)):6!=e||(a.u>>2&12288)===(a.u&12288)?a.f[e]=d:a.aa[a.u>>12&3]=d}function qc(a,b){b>>=6;var c=a.D=b&7;(b=a.B=(b&56)>>3)?(c=a.I(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function Q(a,b){b>>=6;var c=a.D=b&7;return(b=a.B=(b&56)>>3)?pb(a.m,a.I(b,c,2)):a.f[c]}function rc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return nc(a,b,c,8)} -function sc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.I(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function tc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?pb(a.m,a.I(b,c,2)):a.f[c]}function R(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.Xa=a.I(b,e,7),mc(a,e,d.call(a,c,ob(a.m,e)))):a.f[e]=a.f[e]&65280|d.call(a,c,a.f[e])}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.I(b,e,6),qb(a.m,e,d.call(a,c,pb(a.m,e)))):a.f[e]=d.call(a,c,a.f[e])} -function uc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?mc(a,a.I(b,e,5),c):a.f[e]=c?d&1?c<<24>>24&65535:a.f[e]&-256|c&255:a.f[e]&-256;return c}function vc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?qb(a.m,a.I(b,d,4),c):a.f[d]=c&65535;return c}function T(a,b,c){c&&(M(a,a.f[7]+(b<<24>>23)),a.a-=2);a.a-=3} -g.wb=function(a){this.i.complete=!0;this.i.Bb=!1;this.i.vb=!1;this.ha=this.a=a;do{if(this.l&&(this.l&112&&(this.l&32?F(this,168,28):this.l&64?F(this,4,30):this.l&16&&F(this,12,32),this.l&=-113),this.l&7))if(this.l&2){this.l&=-3;var b=160,c=(this.gb&224)>>5;if(a=this.X&&this.X.va>c?this.X:null)b=a.vc,c=a.va;c>(this.u&224)>>5?(this.l&4&&(this.f[7]=this.f[7]+2&65535,this.l&=-5),F(this,b,26),c=!0):c=!1;if(c&&a)if(c=this.X,c==a)this.X=a.next;else for(;c;){b=c.next;if(b==a){c.next=b.next;break}c=b}}else this.l& -1&&this.l++;this.A&57344||(this.oa=0,this.fb=this.f[7]);this.l=this.l&7|this.u&16;this.decode(fc(this))}while(0>2),b=0;b>8,c)},N:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ba:function(a,b){a&1&&vb(this.m,b);b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},ha:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.la=!0},I:function(a,b){return this.J(a,b)}, +S:function(a,b){return this.W(a,b)},da:function(a,b,c){this.g||this.yb(a,b,c)},ja:function(a,b,c){this.g||this.ra(a,b,c)},D:function(a){return this.c[a]},K:function(a){return this.c[a]},O:function(a,b){a&1&&vb(this.m,b);return this.s.getUint16(a,!0)},X:function(a,b){a&1&&vb(this.m,b);return this.o[a>>1]},ca:function(a,b){this.c[a]=b;this.la=!0},ga:function(a,b){this.c[a]=b;this.la=!0},ia:function(a,b,c){a&1&&vb(this.m,c);this.s.setUint16(a,b,!0);this.la=!0},sa:function(a,b,c){a&1&&vb(this.m,c);this.o[a>> +1]=b;this.la=!0}};function eb(a,b,c){a.G=b;a.i=a.j=0;c&&((a.i=c.i)&&Nb(a,Ob,!1),(a.j=c.j)&&Pb(a,Ob,!1))}function Pb(a,b,c){c&&a.j||(a.jb=!a.g&&b[1]||a.A,a.Va=!a.g&&b[3]||a.B);if(c||void 0===c)a.yb=b[1]||a.A,a.ra=b[3]||a.B}function Nb(a,b,c){c&&a.i||(a.eb=b[0]||a.v,a.T=b[2]||a.u);if(c||void 0===c)a.J=b[0]||a.v,a.W=b[2]||a.u}function Jb(a,b){b||(b=Qb);Nb(a,b,void 0);Pb(a,b,void 0)} +var Qb=[],Mb=[E.prototype.N,E.prototype.ha,E.prototype.ba,E.prototype.ta],Ob=[E.prototype.I,E.prototype.da,E.prototype.S,E.prototype.ja];if(Ta)var Lb=[E.prototype.D,E.prototype.ca,E.prototype.O,E.prototype.ia],Kb=[E.prototype.K,E.prototype.ga,E.prototype.X,E.prototype.sa]; +function Rb(a,b){u.call(this,"CPU",a,Rb);var c=a.multiplier||1;this.Pa=a.cycles||b;this.da=c;this.Za=Math.round(this.Pa/1E4)/100;this.ga=this.Za*this.da;this.h.U=!1;this.h.wb=!1;this.h.Da=a.autoStart;this.h.Oa=!1;this.Ma=this.ia=0;this.Na=a.csStart;this.sa=a.csInterval;this.ta=a.csStop;this.I=[];this.sb=this.tc.bind(this);B(this)}w(Rb);var Sb=["power","reset"];g=Rb.prototype; +g.ea=function(a,b,c,d){this.v=a;this.m=b;this.G=d;for(b=0;ba.ba/a.ga&&(b=1),a.da=b,b=a.Za*a.da,a.ga!=b)){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var c=a.s.setSpeed;c&&(c.textContent=b);a.P("target speed: "+b)}a.K+=a.W;a.W=0;a.O=sa();a.ca=0;Yb(a)}function wb(a,b){var c=a.I.length;a.I.push([-1,b]);return c}function yb(a,b,c){0<=b&&ba.I[b][0]&&(c=a.Pa*a.da/1E3*c|0,a.I[b][0]=c+$b(a))}function $b(a,b){var c=a.ha-=a.a;a.a=0;b&&(a.ha=0);return c} +g.tc=function(){if(this.h.U){this.ab>=this.Pa&&Yb(this,!0);this.Ba=0;this.La=sa();if(this.ca){var a=this.La-this.ca;a>this.qb&&(this.O+=a,this.O>this.La&&(this.O=this.La))}try{do{for(var b,c=this.h.Oa?1:this.Qa,d=this.I.length-1;0<=d;d--){var e=this.I[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.xb(b)}catch(n){if("number"!=typeof n)throw n;}b=$b(this,!0);this.Ba+=b;this.W+=b;a=b;if(this.h.Oa){var f=!1;this.Ma=this.Ma+this.mb()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.sa,f=!0);0<=this.ta&&this.ta<=Zb(this)&& +(this.sa=this.ta=-1,Vb(this),Xa(this),f=!0);f&&this.P(Zb(this)+" cycles: checksum="+ja(this.Ma))}for(var a=b,k=this.I.length-1;0<=k;k--){var l=this.I[k];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.Aa-=b;if(0>=this.Aa){this.Aa+=this.Qa;15<=++this.rb&&(this.v&&this.v.fa(),this.rb=0);break}}while(this.h.U)}catch(n){Xa(this);this.v&&this.v.stop(sa(),Zb(this));b=n.stack||n.message;this.h.error=!0;this.H(b);return}if(this.h.U){b=setTimeout;c=this.sb;this.ca=sa();d=this.qb;this.Ba&&(d=Math.round(d* +this.Ba/this.Qa));d-=this.ca-this.La;if(e=this.ca-this.O)this.ba=Math.round(this.W/(10*e))/100,864E5<=e&&(this.K=0,Xb(this));if(0>d||this.bad&&(this.O-=d),d=0;this.ab+=this.Ba;this.ca+=d;b(c,d)}}};function Wb(a){var b;a.h.error?(a.P(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.U)a.P(a.toString()+" busy");else{Xb(a);a.h.U=!0;a.h.wb=!0;if(b=a.s.run)b.textContent="Halt";a.v&&a.v.start(a.O,Zb(a));setTimeout(a.sb,0)}}g.xb=function(){return 0}; +function Xa(a){if(a.h.U){$b(a);a.K+=a.W;a.W=0;a.h.U=!1;var b=a.s.run;b&&(b.textContent="Run");a.v&&a.v.stop(sa(),Zb(a))}a.h.complete=void 0}function ac(a){this.Ga=+a.model||1170;this.ob=a.addrReset||0;Rb.call(this,a,6666667);this.decode=1120==this.Ga?bc.bind(this):cc.bind(this);dc(this);this.S=0;this.X=null;this.h.complete=this.h.Cb=!1}w(ac,Rb);g=ac.prototype;g.reset=function(){this.status("model "+this.Ga);this.h.U&&Xa(this);dc(this);Ub(this);this.h.error=!1;this.parent.reset.call(this)}; +function dc(a){a.j=65536;a.g=32768;a.i=65535;a.o=32768;a.w=15;a.f=[0,0,0,0,0,0,0,a.ob];a.ua=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.u=0;a.Ja=0;a.Gb=[4,2,0,1];a.C=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.R=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.vb=[0,0,0,0,0,0,0,0];a.ub=0;a.l=0;a.B=a.D=0;a.c=a.b=a.Ya=0;a.ja=-1;ec(a)}function ec(a){a.qa=255;a.F=0;a.hb=0;a.A=0;a.oa=0;a.gb=0;a.pa=0;a.Ea=0;a.Ia=0;a.$a=262143;a.Ka=253952;a.l|=2;a.m&&Ab(a)}function Ab(a){a.Ea?(a.N=65536,a.J=a.Fb,a.T=a.qc,a.Va=a.cd,hb(a.m,a.pa&16?22:18)):(a.N=0,a.J=a.Eb,a.T=a.pc,a.Va=a.bd,hb(a.m,16))}g.mb=function(){return 0}; +g.save=function(){var a=new K(this);a.set(0,[]);a.set(1,[this.K,this.da]);a.set(2,rb(this.m));return a.data()};g.restore=function(a){var b=a[1];this.K=b[1];Xb(this,b[3]);a:{b=this.m;a=a[2];var c;for(c=0;c>14&3;c=a.w>>14&3;a.u!=c&&(a.aa[c]=a.f[6],a.f[6]=a.aa[a.u]);a.w=b;a.l|=2}function N(a,b){a.l&128||(a.o=a.i=b,a.g=0)}function O(a,b,c){a.l&128||(a.o=a.i=a.j=b,a.g=c||0)}function gc(a,b,c,d){a.l&128||(a.o=a.i=a.j=b,a.g=(c^b)&(d^b))}function P(a,b){a.l&128||(a.o=a.i=a.j=b,a.g=a.o^a.j>>1)}function hc(a,b,c,d){a.l&128||(a.o=a.i=a.j=b,a.g=(c^d)&(d^b))} +function F(a,b,c){if(!a.S){var d=!1;0>a.ja?a.ja=Za(a):a.u||(b=4,d=!0);a.A&57344||(a.oa=63222,a.gb=b);a.u=0;var e=a.T(b|a.N),f=a.T(b+2&65535|a.N);Cb(a,f&-12289|a.ja>>2&12288);d&&(a.F|=4,a.f[6]=4);ic(a,a.ja);ic(a,a.f[7]);M(a,e);a.l&=-113;a.ja=-1;if(26!=c)throw b;}}function jc(a){var b=kc(a),c=kc(a)&-1793;a.w&49152&&(c=c&-225|a.w&63712);M(a,b);Cb(a,c);a.l&=-17} +function lc(a,b,c){var d,e,f,k=0;d=b>>13;a.pa&a.Gb[a.u]||(d&=7);e=a.C[a.u][d];f=(a.R[a.u][d]<<6)+(b&8191)&a.$a;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.pa&32&&(f=a.Ib[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Ka&&4186112>f&&(a.F|=32,F(a,4,12))}switch(e&7){case 1:k=4096;case 2:e|=128;c&4&&(k=8192);break;case 4:k=4096;case 5:c&4&&(k=4096);case 6:e|=c&4?192: +128;break;default:k=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(k|=16384):(b&8128)>(e>>2&8128)&&(k|=16384));a.C[a.u][d]=e;if(4194170!==f||a.u)a.Ia=a.u,a.Ja=d;k&&(k&57344&&(0<=a.ja&&(k|=128),a.A&57344||(a.A=a.A|k|a.Ia<<5|a.Ja<<1),F(a,168,16)),a.A&61440||!(4191360>f||4194239>>a.m].jb(b&a.g,c&255,b)}function kc(a){var b=a.T(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b} +function ic(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.oa=a.oa<<8|246);!a.u&&c<=a.qa&&4c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=k);e=a.T(e);e|=k;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.f[c]+f&65535;7!==c&&(e|=k);a.a-=4;break;case 5:f=-2;e=a.f[c]-2&65535;7!==c&&(e|=k);e=a.T(e)|k;a.a-= +8;break;case 6:return e=fc(a),e=e+a.f[c]&65535|k,a.a-=6,e;case 7:return e=fc(a),e=e+a.f[c]&65535,e=a.T(e|a.N)|k,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!k||a.A&57344||(a.oa=a.oa<<8|f<<3&248|c);6==c&&!a.u&&d&4&&0>=f&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32?(a.F|=4,a.f[6]=4,F(a,4,24)):(a.F|=8,a.l|=64));return e}g.Ta=function(a,b){this.Ea?(this.S++,mc(this,lc(this,a,5),b),this.S--):this.m.Ta(a,b)};g.Eb=function(a,b,c){return nc(this,a,b,c)};g.Fb=function(a,b,c){return lc(this,nc(this,a,b,c),c)}; +g.pc=function(a){return pb(this.m,a)};g.qc=function(a){return pb(this.m,lc(this,a,2))};g.bd=function(a,b){qb(this.m,a,b&65535)};g.cd=function(a,b){qb(this.m,lc(this,a,4),b)};function oc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=nc(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.u=a.w>>12&3,c=a.T(d|c&a.N),a.u=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.f[d]:a.aa[a.w>>12&3];return c} +function pc(a,b,c,d){a.A&57344||(a.oa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=nc(a,b,e,4),c&65536||(e&=65535),a.u=a.w>>12&3,e=lc(a,e|c&65536,4),a.u=a.w>>14&3,qb(a.m,e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.f[e]=d:a.aa[a.w>>12&3]=d}function qc(a,b){b>>=6;var c=a.D=b&7;(b=a.B=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function Q(a,b){b>>=6;var c=a.D=b&7;return(b=a.B=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function rc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return nc(a,b,c,8)} +function sc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function tc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function R(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.Ya=a.J(b,e,7),mc(a,e,d.call(a,c,ob(a.m,e)))):a.f[e]=a.f[e]&65280|d.call(a,c,a.f[e])}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.J(b,e,6),qb(a.m,e,d.call(a,c,pb(a.m,e)))):a.f[e]=d.call(a,c,a.f[e])} +function uc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?mc(a,a.J(b,e,5),c):a.f[e]=c?d&1?c<<24>>24&65535:a.f[e]&-256|c&255:a.f[e]&-256;return c}function vc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?qb(a.m,a.J(b,d,4),c):a.f[d]=c&65535;return c}function T(a,b,c){c&&(M(a,a.f[7]+(b<<24>>23)),a.a-=2);a.a-=3} +g.xb=function(a){this.h.complete=!0;this.h.Cb=!1;this.h.wb=!1;this.ha=this.a=a;do{if(this.l&&(this.l&112&&(this.l&32?F(this,168,28):this.l&64?F(this,4,30):this.l&16&&F(this,12,32),this.l&=-113),this.l&7))if(this.l&2){this.l&=-3;var b=160,c=(this.hb&224)>>5;if(a=this.X&&this.X.va>c?this.X:null)b=a.wc,c=a.va;c>(this.w&224)>>5?(this.l&4&&(this.f[7]=this.f[7]+2&65535,this.l&=-5),F(this,b,26),c=!0):c=!1;if(c&&a)if(c=this.X,c==a)this.X=a.next;else for(;c;){b=c.next;if(b==a){c.next=b.next;break}c=b}}else this.l& +1&&this.l++;this.A&57344||(this.oa=0,this.gb=this.f[7]);this.l=this.l&7|this.w&16;this.decode(fc(this))}while(0>1|b<<16;P(this,a);return a&65535}function Bc(a,b){a=b&2048|b>>1|b<<8;P(this,a<<8);return a&255}function Cc(a,b){a=b&~a;N(this,a);return a}function Dc(a,b){a=b&~a;N(this,a<<8);return a}function Ec(a,b){a|=b;N(this,a);return a}function Fc(a,b){a|=b;N(this,a<<8);return a}function Gc(a,b){a=~b|65536;O(this,a);return a&65535}function Hc(a,b){a=~b|256;O(this,a<<8);return a&255} -function Ic(a,b){a=b-a;this.l&128||(this.o=this.h=a,this.g=b&(b^a));return a&65535}function Jc(a,b){a=b-a;var c=a<<8;b<<=8;this.l&128||(this.o=this.h=c,this.g=b&(b^c));return a&255}function Kc(a,b){a=b+a;this.l&128||(this.o=this.h=a,this.g=a&(b^a));return a&65535}function Lc(a,b){a=b+a;var c=a<<8;this.l&128||(this.o=this.h=c,this.g=c&(b<<8^c));return a&255}function Mc(a,b){a=-b;O(this,a,a&b&32768);return a&65535}function Nc(a,b){a=-b;O(this,a<<8,(a&b&128)<<8);return a&255} -function Oc(a,b){a=b<<1|this.j>>16&1;P(this,a);return a&65535}function Pc(a,b){a=b<<1|this.j>>16&1;P(this,a<<8);return a&255}function Qc(a,b){a=(this.j&65536|b)>>1|b<<16;P(this,a);return a&65535}function Rc(a,b){a=((this.j&65536)>>8|b)>>1|b<<8;P(this,a<<8);return a&255}function Sc(a,b){var c=b-a;hc(this,c,a,b);return c&65535}function Tc(a,b){var c=b-a;hc(this,c<<8,a<<8,b<<8);return c&255}function Uc(a,b){this.l&128||(this.o=this.h=b&65280,this.g=this.j=0);return(b<<8|b>>8)&65535} -function Vc(a,b){a^=b;N(this,a);return a&65535}function Wc(a){S(this,a,Q(this,a),wc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Xc(a){var b=tc(this,a);a=a>>6&7;var c=this.f[a];c&32768&&(c|=4294901760);this.j=this.g=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.g=32768)}this.f[a]=c&65535;this.o=this.h=c;this.a-=(this.c?6:7)+b} -function Yc(a){var b=tc(this,a);a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&=63;if(b&32){b=64-b;32>b-1;this.j=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.f[a|1]=d&65535;this.o=d>>16;this.h=d>>16|d;this.a-=(this.c?6:7)+b}function Zc(a){T(this,a,!L(this))}function $c(a){T(this,a,L(this))} +function Ic(a,b){a=b-a;this.l&128||(this.o=this.i=a,this.g=b&(b^a));return a&65535}function Jc(a,b){a=b-a;var c=a<<8;b<<=8;this.l&128||(this.o=this.i=c,this.g=b&(b^c));return a&255}function Kc(a,b){a=b+a;this.l&128||(this.o=this.i=a,this.g=a&(b^a));return a&65535}function Lc(a,b){a=b+a;var c=a<<8;this.l&128||(this.o=this.i=c,this.g=c&(b<<8^c));return a&255}function Mc(a,b){a=-b;O(this,a,a&b&32768);return a&65535}function Nc(a,b){a=-b;O(this,a<<8,(a&b&128)<<8);return a&255} +function Oc(a,b){a=b<<1|this.j>>16&1;P(this,a);return a&65535}function Pc(a,b){a=b<<1|this.j>>16&1;P(this,a<<8);return a&255}function Qc(a,b){a=(this.j&65536|b)>>1|b<<16;P(this,a);return a&65535}function Rc(a,b){a=((this.j&65536)>>8|b)>>1|b<<8;P(this,a<<8);return a&255}function Sc(a,b){var c=b-a;hc(this,c,a,b);return c&65535}function Tc(a,b){var c=b-a;hc(this,c<<8,a<<8,b<<8);return c&255}function Uc(a,b){this.l&128||(this.o=this.i=b&65280,this.g=this.j=0);return(b<<8|b>>8)&65535} +function Vc(a,b){a^=b;N(this,a);return a&65535}function Wc(a){S(this,a,Q(this,a),wc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Xc(a){var b=tc(this,a);a=a>>6&7;var c=this.f[a];c&32768&&(c|=4294901760);this.j=this.g=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.g=32768)}this.f[a]=c&65535;this.o=this.i=c;this.a-=(this.c?6:7)+b} +function Yc(a){var b=tc(this,a);a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&=63;if(b&32){b=64-b;32>b-1;this.j=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.f[a|1]=d&65535;this.o=d>>16;this.i=d>>16|d;this.a-=(this.c?6:7)+b}function Zc(a){T(this,a,!L(this))}function $c(a){T(this,a,L(this))} function ad(a){S(this,a,Q(this,a),Cc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function bd(a){R(this,a,qc(this,a),Dc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function cd(a){S(this,a,Q(this,a),Ec);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function dd(a){R(this,a,qc(this,a),Fc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} -function ed(a){N(this,Q(this,a)&tc(this,a));this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function fd(a){N(this,(qc(this,a)&sc(this,a))<<8);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function gd(a){T(this,a,this.h&65535?0:4)}function hd(a){T(this,a,!this.ma()==!(this.g&32768))}function id(a){T(this,a,!!(this.h&65535)&&!this.ma()==!(this.g&32768))}function jd(a){T(this,a,!L(this)&&!!(this.h&65535))} -function kd(a){T(this,a,(this.h&65535?0:4)||!this.ma()!=!(this.g&32768))}function ld(a){T(this,a,L(this)||(this.h&65535?0:4))}function md(a){T(this,a,!this.ma()!=!(this.g&32768))}function nd(a){T(this,a,this.ma())}function od(a){T(this,a,!!(this.h&65535))}function pd(a){T(this,a,!this.ma())}function qd(){F(this,12,1);this.a-=5}function rd(a){T(this,a,!0)}function sd(a){T(this,a,!(this.g&32768))}function td(a){T(this,a,this.g&32768?2:0)} -function U(a){a&1&&(this.j=0);a&2&&(this.g=0);a&4&&(this.h=1);a&8&&(this.o=0);this.a-=5}function ud(a){var b=Q(this,a);a=tc(this,a);hc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function vd(a){var b=qc(this,a)<<8;a=sc(this,a)<<8;hc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)} -function wd(a){var b=tc(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.f[a]=d&65535,this.f[a|1]=c-d*b&65535,this.h=d>>16|d,this.o=d>>16):(this.g=32768,this.h=d>>15|d,this.o=c>>16,-1===b&&65534===this.f[a]&&(this.f[a]=this.f[a|1]=1));this.a-=53}else this.h=this.o=0,this.g=32768,this.j=65536,this.a-=7}function xd(){F(this,24,2);this.a-=25}function yd(){this.u&49152?(this.F|=128,F(this,4,3)):Xa(this);this.a-=7} +function ed(a){N(this,Q(this,a)&tc(this,a));this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function fd(a){N(this,(qc(this,a)&sc(this,a))<<8);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function gd(a){T(this,a,this.i&65535?0:4)}function hd(a){T(this,a,!this.ma()==!(this.g&32768))}function id(a){T(this,a,!!(this.i&65535)&&!this.ma()==!(this.g&32768))}function jd(a){T(this,a,!L(this)&&!!(this.i&65535))} +function kd(a){T(this,a,(this.i&65535?0:4)||!this.ma()!=!(this.g&32768))}function ld(a){T(this,a,L(this)||(this.i&65535?0:4))}function md(a){T(this,a,!this.ma()!=!(this.g&32768))}function nd(a){T(this,a,this.ma())}function od(a){T(this,a,!!(this.i&65535))}function pd(a){T(this,a,!this.ma())}function qd(){F(this,12,1);this.a-=5}function rd(a){T(this,a,!0)}function sd(a){T(this,a,!(this.g&32768))}function td(a){T(this,a,this.g&32768?2:0)} +function U(a){a&1&&(this.j=0);a&2&&(this.g=0);a&4&&(this.i=1);a&8&&(this.o=0);this.a-=5}function ud(a){var b=Q(this,a);a=tc(this,a);hc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function vd(a){var b=qc(this,a)<<8;a=sc(this,a)<<8;hc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)} +function wd(a){var b=tc(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.f[a]=d&65535,this.f[a|1]=c-d*b&65535,this.i=d>>16|d,this.o=d>>16):(this.g=32768,this.i=d>>15|d,this.o=c>>16,-1===b&&65534===this.f[a]&&(this.f[a]=this.f[a|1]=1));this.a-=53}else this.i=this.o=0,this.g=32768,this.j=65536,this.a-=7}function xd(){F(this,24,2);this.a-=25}function yd(){this.w&49152?(this.F|=128,F(this,4,3)):Xa(this);this.a-=7} function zd(){F(this,16,4);this.a-=25}var Ad=[0,7,7,10,7,11,9,13];function V(a){var b=this.a;M(this,rc(this,a));this.a=b-Ad[this.c]}var Bd=[0,14,14,17,14,18,16,20];function Cd(a){var b=this.a,c=rc(this,a);a=a>>6&7;ic(this,this.f[a]);this.f[a]=this.f[7];M(this,c);this.a=b-Bd[this.c]}var Dd=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Ed(a){var b=Q(this,a),c=this.a;N(this,vc(this,a,b));this.a=c-Dd[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)} -function Fd(a){var b=qc(this,a);N(this,uc(this,a,b,1)<<8);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Gd=[7,13,13,17,14,18,17,21];function Hd(a){var b=tc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.l&128||(this.o=b>>16,this.h=this.o|b,this.g=0,this.j=-32768>b||32767>6;if(this.f[b]=this.f[b]-1&65535)M(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Nd(a){S(this,a,Q(this,a),Sc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} -function X(a){S(this,a,0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)}function Od(){F(this,28,5);this.a-=5}function Qd(){this.l&4||this.w.fa();this.l|=4;this.f[7]=this.f[7]+-2&65535;this.a-=3}function Rd(a){S(this,a,Q(this,a),Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){F(this,8,6)}function bc(a){Sd[a>>12].call(this,a)}function Td(a){Ud[a>>6&3].call(this,a)}function Vd(a){Wd[a>>6&3].call(this,a)}function Xd(a){Yd[a>>6&3].call(this,a)}function Zd(a){$d[a&15].call(this,a)} +function Fd(a){var b=qc(this,a);N(this,uc(this,a,b,1)<<8);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Gd=[7,13,13,17,14,18,17,21];function Hd(a){var b=tc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.l&128||(this.o=b>>16,this.i=this.o|b,this.g=0,this.j=-32768>b||32767>6;if(this.f[b]=this.f[b]-1&65535)M(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Nd(a){S(this,a,Q(this,a),Sc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} +function X(a){S(this,a,0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)}function Od(){F(this,28,5);this.a-=5}function Pd(){this.l&4||this.v.fa();this.l|=4;this.f[7]=this.f[7]+-2&65535;this.a-=3}function Qd(a){S(this,a,Q(this,a),Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){F(this,8,6)}function bc(a){Rd[a>>12].call(this,a)}function Td(a){Ud[a>>6&3].call(this,a)}function Vd(a){Wd[a>>6&3].call(this,a)}function Xd(a){Yd[a>>6&3].call(this,a)}function Zd(a){$d[a&15].call(this,a)} function ae(a){be[a&15].call(this,a)}function ce(a){de[a>>6&3].call(this,a)}function ee(a){fe[a>>6&3].call(this,a)}function ge(a){he[a>>6&3].call(this,a)} -var Sd=[function(a){ie[a>>8&15].call(this,a)},Ed,ud,ed,ad,cd,Wc,Y,function(a){je[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Nd,Y],ie=[function(a){ke[a>>4&15].call(this,a)},rd,od,gd,hd,md,id,kd,Cd,Cd,Td,Vd,Xd,Y,Y,Y],Ud=[function(a){O(this,vc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Gc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Ic);this.a-=this.c?9:3+(7==this.b?2:0)}],Wd=[function(a){S(this,a,0,Mc); +var Rd=[function(a){ie[a>>8&15].call(this,a)},Ed,ud,ed,ad,cd,Wc,Y,function(a){je[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Nd,Y],ie=[function(a){ke[a>>4&15].call(this,a)},rd,od,gd,hd,md,id,kd,Cd,Cd,Td,Vd,Xd,Y,Y,Y],Ud=[function(a){O(this,vc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Gc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Ic);this.a-=this.c?9:3+(7==this.b?2:0)}],Wd=[function(a){S(this,a,0,Mc); this.a-=this.c?11:6},function(a){S(this,a,L(this)?1:0,wc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,L(this)?1:0,Sc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=tc(this,a);O(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Yd=[function(a){S(this,a,0,Qc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Oc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Ac);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,yc);this.a-=this.c?9:3+(7==this.b?2:0)}],ke=[function(a){le[a& -15].call(this,a)},Y,Y,Y,V,V,V,V,Ld,Y,Zd,ae,X,X,X,X],le=[yd,Qd,Kd,qd,zd,Jd,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],$d=[Id,function(){this.j=0;this.a-=5},function(){this.g=0;this.a-=5},U,function(){this.h=1;this.a-=5},U,U,U,function(){this.o=0;this.a-=5},U,U,U,U,U,U,U],be=[Id,function(){this.j=65536;this.a-=5},function(){this.g=32768;this.a-=5},W,function(){this.h=0;this.a-=5},W,W,W,function(){this.o=32768;this.a-=5},W,W,W,W,W,W,W],je=[pd,nd,jd,ld,sd,td,Zc,$c,xd,Od,ce,ee,ge,Y,Y,Y],de=[function(a){O(this,uc(this,a,0)); +15].call(this,a)},Y,Y,Y,V,V,V,V,Ld,Y,Zd,ae,X,X,X,X],le=[yd,Pd,Kd,qd,zd,Jd,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],$d=[Id,function(){this.j=0;this.a-=5},function(){this.g=0;this.a-=5},U,function(){this.i=1;this.a-=5},U,U,U,function(){this.o=0;this.a-=5},U,U,U,U,U,U,U],be=[Id,function(){this.j=65536;this.a-=5},function(){this.g=32768;this.a-=5},W,function(){this.i=0;this.a-=5},W,W,W,function(){this.o=32768;this.a-=5},W,W,W,W,W,W,W],je=[pd,nd,jd,ld,sd,td,Zc,$c,xd,Od,ce,ee,ge,Y,Y,Y],de=[function(a){O(this,uc(this,a,0)); this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],fe=[function(a){R(this,a,0,Nc);this.a-=this.c?11:6},function(a){R(this,a,L(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,L(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=sc(this,a);O(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}],he= -[function(a){R(this,a,0,Rc);this.a-=this.c?9+(this.Xa&1):3+(7==this.b?2:0)},function(a){R(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Bc);this.a-=this.c?9+(this.Xa&1):3+(7==this.b?2:0)},function(a){R(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}];function cc(a){me[a>>12].call(this,a)} +[function(a){R(this,a,0,Rc);this.a-=this.c?9+(this.Ya&1):3+(7==this.b?2:0)},function(a){R(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Bc);this.a-=this.c?9+(this.Ya&1):3+(7==this.b?2:0)},function(a){R(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}];function cc(a){me[a>>12].call(this,a)} var me=[function(a){ne[a>>8&15].call(this,a)},Ed,ud,ed,ad,cd,Wc,function(a){oe[a>>8&15].call(this,a)},function(a){pe[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Nd,Y],ne=[function(a){qe[a>>4&15].call(this,a)},rd,od,gd,hd,md,id,kd,Cd,Cd,Td,Vd,Xd,function(a){re[a>>6&3].call(this,a)},Y,Y],re=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.T(a|this.N);M(this,this.f[5]);this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=oc(this,a,0);ic(this,a);N(this,a);this.a-=11},function(a){var b=kc(this),c=this.a; -pc(this,a,0,b);N(this,b);this.a=c-Gd[this.c]},function(a){N(this,vc(this,a,this.ma?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],qe=[function(a){se[a&15].call(this,a)},Y,Y,Y,V,V,V,V,Ld,function(a){a&8?(this.u&49152||(this.u=this.u&-2017|(a&7)<<5,this.l|=1),this.a-=5):F(this,8,6)},Zd,ae,X,X,X,X],se=[yd,Qd,Kd,qd,zd,Jd,function(){jc(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],oe=[Hd,Hd,wd,wd,Xc,Xc,Yc,Yc,Rd,Rd,Y,Y,Y,Y,Md,Md],pe=[pd,nd,jd,ld,sd,td,Zc,$c,xd,Od,ce,ee,ge,function(a){te[a>>6&3].call(this,a)},Y, +pc(this,a,0,b);N(this,b);this.a=c-Gd[this.c]},function(a){N(this,vc(this,a,this.ma?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],qe=[function(a){se[a&15].call(this,a)},Y,Y,Y,V,V,V,V,Ld,function(a){a&8?(this.w&49152||(this.w=this.w&-2017|(a&7)<<5,this.l|=1),this.a-=5):F(this,8,6)},Zd,ae,X,X,X,X],se=[yd,Pd,Kd,qd,zd,Jd,function(){jc(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],oe=[Hd,Hd,wd,wd,Xc,Xc,Yc,Yc,Qd,Qd,Y,Y,Y,Y,Md,Md],pe=[pd,nd,jd,ld,sd,td,Zc,$c,xd,Od,ce,ee,ge,function(a){te[a>>6&3].call(this,a)},Y, Y],te=[Y,function(a){a=oc(this,a,65536);ic(this,a);N(this,a);this.a-=11},function(a){var b=kc(this),c=this.a;pc(this,a,65536,b);N(this,b);this.a=c-Gd[this.c]},Y]; -function ue(a){u.call(this,"ROM",a,ue);this.Y=this.b=null;this.j=a.addr;this.c=a.size;this.h=a.alias;this.g=a.file;this.o=ka(this.g);if(this.g){a=this.g;var b=la(this.o);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;h(a,null,!0,function(a,b,f){f?c.L("Unable to load ROM resource (error "+f+": "+a+")"):(Pa(c.Ha,a,b),(a=ua(a,b))?(c.b=a.K,c.Y=a.Y):c.g=null,ve(c))})}}w(ue);ue.prototype.ea=function(a,b,c,d){this.m=b;this.a=c;this.G=d;ve(this)}; +function ue(a){u.call(this,"ROM",a,ue);this.Y=this.b=null;this.j=a.addr;this.c=a.size;this.i=a.alias;this.g=a.file;this.o=ka(this.g);if(this.g){a=this.g;var b=la(this.o);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;h(a,null,!0,function(a,b,f){f?c.H("Unable to load ROM resource (error "+f+": "+a+")"):(Pa(c.ra,a,b),(a=ua(a,b))?(c.b=a.M,c.Y=a.Y):c.g=null,ve(c))})}}w(ue);ue.prototype.ea=function(a,b,c,d){this.m=b;this.a=c;this.G=d;ve(this)}; ue.prototype.$=function(){this.Y&&(this.G&&this.G.a(this.id,this.j,this.c,this.Y),delete this.Y);return!0};ue.prototype.Z=function(){return!0}; -function ve(a){if(!Sa(a)){if(a.g){if(!a.b||!a.m)return;a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+ja(a.b.length,8,!0)+") does not match specified size ("+ja(a.c,8,!0)+")";a.i.error=!0;a.L(b)}else{b=a.j;if(kb(a.m,b,a.c,Ib)){var c;for(c=0;c=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=qa(b[0]);if(c!=this.Ga)return;b=qa(b[1]);if(this.s=Qa(b)){var d=this.s.exports;if(d){var e=d.connect;e&&e.call(this.s);if(this.A=d.receiveData){this.status(this.Ha+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.$=function(a,b){if(!b)if(this.mb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -g.Z=function(a){return a?this.save():!0};g.reset=function(){Be(this)};g.save=function(){var a=new K(this);a.set(0,[]);return a.data()};g.restore=function(){return Be(this)};function Be(a){a.D=0;a.b=0;a.c=128;a.h=[];return!0}g.eb=function(a){if("number"==typeof a)this.h.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.H||8,c=a-this.o%a,this.H&&(b=" ".slice(0,c)));this.B&&!this.o&&c&&(b=String.fromCharCode(this.B)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.o+=c}else if(null!=this.j){if(10==a||1024<=this.j.length)this.P(this.j), -this.j="";10!=a&&(this.j+=String.fromCharCode(a))}this.c&=-129;yb(this.a,this.J,1)}};var Ce={},Ae=(Ce[65392]=[null,null,Z.prototype.dc,Z.prototype.Qc,"RCSR"],Ce[65394]=[null,null,Z.prototype.cc,Z.prototype.Pc,"RBUF"],Ce[65396]=[null,null,Z.prototype.rc,Z.prototype.dd,"XCSR"],Ce[65398]=[null,null,Z.prototype.qc,Z.prototype.cd,"XBUF"],Ce);q(function(){for(var a=A(document,"pdp11","serial"),b=0;b\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bHe){if(Je(d,this.s)){this.j=new K(this,"1.30.1","failsafe");Je(this.j)&&(Oe(this,d),a=2,Pe(this.j));this.j.set("timestamp",ta());Qe(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ne(d)){var f=d.get("code"),k=d.get("data");f&&("ok"==f?Je(d,k):("error"== -f&&"no machine state"!=k?(this.L("Error: "+k),"unable to verify user"==k&&(za("user",""),this.c=null)):this.P(f+": "+k),Pe(d),Je(d)?(c=Ne(d),e=!0):c=!1))}e&&Me(this,c?d:null)}else 2==a&&d.clear()}else Me(this);delete this.s;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.S=!0;this.i.M=!0;var d=this.v.power;d&&(d.textContent="Shutdown");this.a&&(Re(this,this.a,b,c,a),this.a.Ca());this.H&&(Oe(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; -function Oe(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;h("http://www.pcjs.org/api/v1/report",d,!0)}} -function Se(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new K(a,"1.30.1"),k=new K(a,"1.30.1","validate"),l=ta();k.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&Xa(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.M=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;n=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=qa(b[0]);if(c!=this.Ha)return;b=qa(b[1]);if(this.u=Qa(b)){var d=this.u.exports;if(d){var e=d.connect;e&&e.call(this.u);if(this.A=d.receiveData){this.status(this.ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.$=function(a,b){if(!b)if(this.nb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; +g.Z=function(a){return a?this.save():!0};g.reset=function(){Be(this)};g.save=function(){var a=new K(this);a.set(0,[]);return a.data()};g.restore=function(){return Be(this)};function Be(a){a.D=0;a.b=0;a.c=128;a.i=[];return!0}g.fb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.I||8,c=a-this.o%a,this.I&&(b=" ".slice(0,c)));this.B&&!this.o&&c&&(b=String.fromCharCode(this.B)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.o+=c}else if(null!=this.j){if(10==a||1024<=this.j.length)this.P(this.j), +this.j="";10!=a&&(this.j+=String.fromCharCode(a))}this.c&=-129;yb(this.a,this.K,1)}};var Ce={},Ae=(Ce[65392]=[null,null,Z.prototype.ec,Z.prototype.Rc,"RCSR"],Ce[65394]=[null,null,Z.prototype.dc,Z.prototype.Qc,"RBUF"],Ce[65396]=[null,null,Z.prototype.sc,Z.prototype.ed,"XCSR"],Ce[65398]=[null,null,Z.prototype.rc,Z.prototype.dd,"XBUF"],Ce);q(function(){for(var a=A(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.s[b]=c,!0;case "loadTape":return this.s[b]=c,c.onclick=function(){var a=d.s.listTapes;a&&De(d, +a.options[a.selectedIndex].text,a.value)},!0;case "mountTape":if(this.o)return this.s[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;De(d,ka(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; +g.ea=function(a,b,c,d){this.v=a;this.m=b;this.a=c;this.G=d;if((this.b=Tb(this.v,"autoMount")||this.b)&&"string"==typeof this.b)try{this.b=eval("("+this.b+")")}catch(e){m("PC11 auto-mount error: "+e.message+" ("+this.b+")"),this.b=null}tb(b,this,Ee);Fe(this,"None","",!0);this.o&&Fe(this,"Local Tape","?");Fe(this,"Remote Tape","??");Ge(this)||B(this)};g.$=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};g.Z=function(a){return a?this.save():!0}; +g.reset=function(){this.c&=-2241;this.u=0};function Ge(a){a.i=0;if(a.b){var b=a.b.path,c;if(!(c=a.b.name))a:{if((c=a.s.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(d=la(c),e="json"==d||"gz"==d?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!h(e,null,!0,function(d,e,f){a.h.Wa=!1;var k=0>f&&a.v&&!a.v.h.L;f?a.H('Unable to load tape "'+b+'" (error '+f+": "+d+")",k):(Pa(a.ra,d,e),ua(d,e)&&(a.g=c));a.j&&(a.j=!1,--a.i||B(a));if((d=a.s.listTapes)&& +d.options){e=a.h.local?"?":a.g;for(f=0;f\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bMe){if(Oe(d,this.u)){this.j=new K(this,"1.30.1","failsafe");Oe(this.j)&&(Te(this,d),a=2,Ue(this.j));this.j.set("timestamp",ta());Ve(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Se(d)){var f=d.get("code"),k=d.get("data");f&&("ok"==f?Oe(d,k):("error"== +f&&"no machine state"!=k?(this.H("Error: "+k),"unable to verify user"==k&&(za("user",""),this.c=null)):this.P(f+": "+k),Ue(d),Oe(d)?(c=Se(d),e=!0):c=!1))}e&&Re(this,c?d:null)}else 2==a&&d.clear()}else Re(this);delete this.u;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.S=!0;this.h.L=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(We(this,this.a,b,c,a),this.a.Da());this.I&&(Te(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; +function Te(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;h("http://www.pcjs.org/api/v1/report",d,!0)}} +function Xe(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new K(a,"1.30.1"),k=new K(a,"1.30.1","validate"),l=ta();k.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&Xa(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.h.L=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;nf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");h(e,null,!0,function(f,k,l){if(l||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(k=k.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],k);Ze(a,b,c)}})}else c(a,null)} -function $e(a,b,c,d){function e(a){if(void 0===l){var b=k&&A(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--We||Ga(!0));n=!1}var k,l,n=!0;We++;Oa[a]={};try{if(k=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],C=document.createElement("style");C.type="text/css";C.styleSheet?C.styleSheet.cssText=r:C.appendChild(document.createTextNode(r));t.appendChild(C)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?Xe(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(k.outerHTML=n,--We||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(n,k),--We||Ga(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Xe(b,a,d,!0,e,r):Ye(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Pd){f(Pd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return $e(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map +g.V=function(a,b,c){var d=this;switch(b){case "power":return this.s[b]=c,c.onclick=function(){d.g||(d.h.L?Xe(d,!1,!0):Qe(d,d.Fa))},!0;case "reset":return this.s[b]=c,c.onclick=function(){if(d.h.L&&!d.g)if(d.b&&!d.v){var a=va("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Xe(d,a,!0);!a&&d.D?window&&window.location.reload():d.Fa(Me)}else d.reset(),d.a&&d.a.Da()},!0;case "save":if(ma())c.parentNode.removeChild(c);else return this.s[b]= +c,c.onclick=function(){var a=Ne(d,!0);if(a){var b=!!(d.b&&!d.v||d.D),c=Xe(d,b);b?Ye(d,a,c):d.H("Resume disabled, machine state not saved")}},!0}return!1}; +function Ne(a,b){var c=a.c;c||((c=ya("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Ze(a,c))||a.H("The user ID is invalid.")):b&&a.H("Browser local storage is not available"));return c} +function Ze(a,b){a.c=null;b=h(na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(za("user",b.data),a.c=b.data)}catch(d){m(d.message+" ("+c+")")}return a.c}function Pe(a){var b=null;a.c&&(b=na()+"/api/v1/user?req=load&user="+a.c+"&state="+$e(a,"1.30.1"));return b} +function Ye(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=$e(a,"1.30.1");d.data=c;b=h(na()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");h(e,null,!0,function(f,k,l){if(l||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(k=k.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],k);df(a,b,c)}})}else c(a,null)} +function ef(a,b,c,d){function e(a){if(void 0===l){var b=k&&A(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--af||Ga(!0));n=!1}var k,l,n=!0;af++;Oa[a]={};try{if(k=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=r:D.appendChild(document.createTextNode(r));t.appendChild(D)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?bf(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(k.outerHTML=n,--af||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(n,k),--af||Ga(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?bf(b,a,d,!0,e,r):cf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Sd){f(Sd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return ef(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map From 583faefbf2fc4c9600bc50ef931c239b093c0f72 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Tue, 18 Oct 2016 10:30:34 -0700 Subject: [PATCH 08/32] Assorted PC11 tape loading fixes --- modules/pdp11/lib/pc11.js | 149 +++++++------- versions/pdpjs/1.30.1/pdp11-dbg.js | 306 ++++++++++++++--------------- versions/pdpjs/1.30.1/pdp11.js | 166 ++++++++-------- 3 files changed, 316 insertions(+), 305 deletions(-) diff --git a/modules/pdp11/lib/pc11.js b/modules/pdp11/lib/pc11.js index d356ceec80..b7b7e51b39 100644 --- a/modules/pdp11/lib/pc11.js +++ b/modules/pdp11/lib/pc11.js @@ -54,18 +54,18 @@ function PC11(parms) * getMachineParm() service may have an override for us. */ this.configMount = parms['autoMount'] || null; + this.cAutoMount = 0; /* - * TODO: Technically, the PC11 should have a timer that "clocks" data from the abReader buffer into the + * TODO: Technically, the PC11 should have a timer that "clocks" data from the aTapeData buffer into the * PRB register at the appropriate rate (300 CPS for the high-speed version, 10 CPS for the low-speed version). */ this.prs = 0; // PRS register this.prb = 0; // PRB register - this.iReader = 0; // buffer index - this.abReader = []; // buffer for the PRB register - - this.flags.local = false; - this.sTapeName = this.sTapePath = this.sTapeFile = ""; + this.iTapeData = 0; // buffer index + this.aTapeData = []; // buffer for the PRB register + this.sLoadState = PC11.LOADSTATE.NONE; + this.sTapeName = this.sTapePath = ""; /* * Support for local tape images is currently limited to desktop browsers with FileReader support; @@ -77,6 +77,12 @@ function PC11(parms) Component.subclass(PC11); +PC11.LOADSTATE = { + NONE: "", + LOCAL: "?", + REMOTE: "??" +}; + /** * setBinding(sType, sBinding, control, sValue) * @@ -265,8 +271,6 @@ PC11.prototype.reset = function() { this.prs &= ~PDP11.PC11.PRS.CLEAR; this.prb = 0; - this.iReader = 0; - this.abReader = []; }; /** @@ -304,7 +308,7 @@ PC11.prototype.autoMount = function(fRemount) PC11.prototype.loadSelectedTape = function(sTapeName, sTapePath, file) { if (!sTapePath) { - this.unloadTape(); + this.unloadTape(false); return; } @@ -313,6 +317,7 @@ PC11.prototype.loadSelectedTape = function(sTapeName, sTapePath, file) return; } + /* * If the special path of "??" is selected, then we want to prompt the user for a URL. Oh, and * make sure we pass an empty string as the 2nd parameter to prompt(), so that IE won't display @@ -322,11 +327,15 @@ PC11.prototype.loadSelectedTape = function(sTapeName, sTapePath, file) * I should do, like dynamically updating "listTapes" to include new entries, and adding new entries * to the save/restore data. */ - if (sTapePath == "??") { + if (sTapePath == PC11.LOADSTATE.REMOTE) { sTapePath = window.prompt("Enter the URL of a remote tape image.", "") || ""; if (!sTapePath) return; sTapeName = str.getBaseName(sTapePath); if (DEBUG) this.println("Attempting to load " + sTapePath + " as \"" + sTapeName + "\""); + this.sLoadState = PC11.LOADSTATE.REMOTE; + } + else { + this.sLoadState = sTapePath; } this.loadTape(sTapeName, sTapePath, false, file); @@ -346,34 +355,30 @@ PC11.prototype.loadSelectedTape = function(sTapeName, sTapePath, file) */ PC11.prototype.loadTape = function(sTapeName, sTapePath, fAutoMount, file) { - if (sTapePath) { - if (this.sTapePath.toLowerCase() != sTapePath.toLowerCase()) { - - this.unloadTape(fAutoMount, true); + var nResult = -1; + if (this.sTapePath.toLowerCase() != sTapePath.toLowerCase()) { - if (this.flags.busy) { - this.notice("PC11 busy"); - return 0; - } + nResult++; + this.unloadTape(true); + if (this.flags.busy) { + this.notice("PC11 busy"); + } + else { // if (DEBUG) this.println("tape queued: " + sTapeName); - - this.flags.busy = true; if (fAutoMount) { - this.fAutoMount = true; this.cAutoMount++; if (this.messageEnabled()) this.printMessage("auto-loading tape: " + sTapeName); } - - this.flags.local = !!file; - if (!this.load(sTapeName, sTapePath, file)) { - return 0; + if (this.load(sTapeName, sTapePath, file)) { + nResult++; + } else { + this.flags.busy = true; } - return 1; } - if (DEBUG) this.println("tape loaded"); } - return -1; + if (DEBUG && nResult) this.println("tape loaded"); + return nResult; }; /** @@ -387,6 +392,7 @@ PC11.prototype.loadTape = function(sTapeName, sTapePath, fAutoMount, file) */ PC11.prototype.load = function(sTapeName, sTapePath, file) { + var pc11 = this; var sTapeURL = sTapePath; if (DEBUG) { @@ -394,14 +400,10 @@ PC11.prototype.load = function(sTapeName, sTapePath, file) this.printMessage(sMessage); } - var sTapeFile = str.getBaseName(sTapePath); - - var pc11 = this; - if (file) { var reader = new FileReader(); reader.onload = function() { - pc11.build(reader.result); + pc11.doneRead(sTapeName, sTapePath, reader.result); }; reader.readAsArrayBuffer(file); return true; @@ -427,39 +429,22 @@ PC11.prototype.load = function(sTapeName, sTapePath, file) } return !!web.getResource(sTapeURL, null, true, function(sURL, sResponse, nErrorCode) { - pc11.doneLoad(sURL, sTapeName, sTapePath, sResponse, nErrorCode); + pc11.doneLoad(sTapeName, sTapePath, sResponse, sURL, nErrorCode); }); }; /** - * build(buffer) - * - * Builds a disk image from an ArrayBuffer (eg, from a FileReader object), rather than from JSON-encoded data. - * - * @this {PC11} - * @param {?} buffer (we KNOW this is an ArrayBuffer, but we can't seem to convince the Closure Compiler) - */ -PC11.prototype.build = function(buffer) -{ - if (buffer) { - this.aTapeData = new Uint8Array(buffer, 0, buffer.byteLength); - } -}; - -/** - * doneLoad(sURL, sTapeName, sTapePath, sTapeData, nErrorCode) + * doneLoad(sTapeName, sTapePath, sTapeData, sURL, nErrorCode) * * @this {PC11} - * @param {string} sURL * @param {string} sTapeName * @param {string} sTapePath * @param {string} sTapeData + * @param {string} sURL * @param {number} nErrorCode (response from server if anything other than 200) */ -PC11.prototype.doneLoad = function(sURL, sTapeName, sTapePath, sTapeData, nErrorCode) +PC11.prototype.doneLoad = function(sTapeName, sTapePath, sTapeData, sURL, nErrorCode) { - this.flags.busy = false; - var fPrintOnly = (nErrorCode < 0 && this.cmp && !this.cmp.flags.powered); if (nErrorCode) { @@ -476,23 +461,42 @@ PC11.prototype.doneLoad = function(sURL, sTapeName, sTapePath, sTapeData, nError if (DEBUG && this.messageEnabled()) { this.printMessage('doneLoad("' + sTapePath + '")'); } - Component.addMachineResource(this.idMachine, sURL, sTapeData); - var resource = web.parseMemoryResource(sURL, sTapeData); if (resource) { this.sTapeName = sTapeName; this.sTapePath = sTapePath; + this.iTapeData = 0; this.aTapeData = resource.aBytes; if (DEBUG) this.println("tape loaded: " + sTapeName); } } - - if (this.fAutoMount) { - this.fAutoMount = false; - if (!--this.cAutoMount) this.setReady(); + this.flags.busy = false; + if (this.cAutoMount) { + this.cAutoMount--; + if (!this.cAutoMount) this.setReady(); } + this.displayTape(); +}; +/** + * doneRead(sTapeName, sTapePath, buffer) + * + * @this {PC11} + * @param {string} sTapeName + * @param {string} sTapePath + * @param {?} buffer (we KNOW this is an ArrayBuffer, but we can't seem to convince the Closure Compiler) + */ +PC11.prototype.doneRead = function(sTapeName, sTapePath, buffer) +{ + if (buffer) { + this.sTapeName = sTapeName; + this.sTapePath = sTapePath; + this.iTapeData = 0; + this.aTapeData = new Uint8Array(buffer, 0, buffer.byteLength); + this.sLoadState = PC11.LOADSTATE.LOCAL; + if (DEBUG) this.println("tape length: " + this.aTapeData.length); + } this.displayTape(); }; @@ -552,9 +556,8 @@ PC11.prototype.findTape = function(sPath) PC11.prototype.displayTape = function() { var controlTapes = this.bindings["listTapes"]; - if (controlTapes && controlTapes.options) { - var sTargetPath = (this.flags.local? "?" : this.sTapePath); + var sTargetPath = this.sLoadState || this.sTapePath; for (var i = 0; i < controlTapes.options.length; i++) { if (controlTapes.options[i].value == sTargetPath) { if (controlTapes.selectedIndex != i) { @@ -568,17 +571,25 @@ PC11.prototype.displayTape = function() }; /** - * unloadTape(fAutoUnload, fQuiet) + * unloadTape(fLoading) * * @this {PC11} - * @param {boolean} [fAutoUnload] is true if this unload is being forced as part of an automount and/or restored mount - * @param {boolean} [fQuiet] + * @param {boolean} [fLoading] */ -PC11.prototype.unloadTape = function(fAutoUnload, fQuiet) +PC11.prototype.unloadTape = function(fLoading) { - this.sTapeName = ""; - this.sTapePath = ""; - this.flags.local = false; + if (this.sTapePath || fLoading === false) { + this.sTapeName = ""; + this.sTapePath = ""; + /* + * Try to avoid any unnecessary hysteresis regarding the display if this unload is merely a prelude to another load. + */ + if (!fLoading) { + this.sLoadState = PC11.LOADSTATE.NONE; + this.displayTape(); + if (DEBUG) this.println("tape unloaded"); + } + } }; /** diff --git a/versions/pdpjs/1.30.1/pdp11-dbg.js b/versions/pdpjs/1.30.1/pdp11-dbg.js index 33b1fcc703..295f039a27 100644 --- a/versions/pdpjs/1.30.1/pdp11-dbg.js +++ b/versions/pdpjs/1.30.1/pdp11-dbg.js @@ -53,29 +53,29 @@ function nb(a,b){if(a.v.Ib)return a.v.Ia=!1,a.v.Ib=!1;if(a.v.error)return a.j(a. Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b>2;this.w=this.ua-1;this.D=this.H/this.ua|0;this.Ha=[];this.A=0;this.C=[];this.mc=[Ob,Pb,Qb,Rb];a=new I(this);Sb(a,this.i);this.W=Array(this.D);for(b=0;b>2;this.w=this.ua-1;this.B=this.H/this.ua|0;this.Ha=[];this.A=0;this.D=[];this.mc=[Ob,Pb,Qb,Rb];a=new I(this);Sb(a,this.i);this.W=Array(this.B);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.Ha[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.i&&D(this.i,64)&&C(this.i,e[4]+".readByte("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!0);this.i&&D(this.i,64)&&C(this.i,"warning: unconverted read access to byte @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c} function Pb(a,b,c){var d=!1,e=this.controller,f=e.Ha[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.Ha[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d?this.i&&D(this.i,64)&&C(this.i,f[4]+".writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!0,b),this.i&&D(this.i,64)&&C(this.i,"warning: unconverted write access to byte @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} function Qb(a,b){var c=-1,d=this.controller;(a=d.Ha[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));if(0<=c)return this.i&&D(this.i,64)&&C(this.i,a[4]+".readWord("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!1);this.i&&D(this.i,64)&&C(this.i,"warning: unconverted read access to word @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c} function Rb(a,b,c){var d=!1,e=this.controller;if(a=e.Ha[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d?this.i&&D(this.i,64)&&C(this.i,a[4]+".writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!1,b),this.i&&D(this.i,64)&&C(this.i,"warning: unconverted write access to word @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} -function Vb(a,b){if(b!=a.g){var c;a.g&&(c=(1<>>a.ia;0g&&(q=g);if(!e&&m&&m.size){if(m.type==d){if(f+g<=m.B)return m.vb+=m.B-f,m.B=f,!0;if(f>=m.B+m.vb){q=m.size-(f-p);q>g&&(q=g);m.vb=f-m.B+q;f=p+a.ua;g-=q;k++;continue}}return ac(1,f,g)}f=new I(a,f,q,a.ua,d,e);Sb(f,a.i,m);a.W[k++]=f;f=p+a.ua;g-=q}if(0>=g){c/=1024;var v;e="";v?10>>a.ia;0g&&(q=g);if(!e&&m&&m.size){if(m.type==d){if(f+g<=m.C)return m.vb+=m.C-f,m.C=f,!0;if(f>=m.C+m.vb){q=m.size-(f-p);q>g&&(q=g);m.vb=f-m.C+q;f=p+a.ua;g-=q;k++;continue}}return ac(1,f,g)}f=new I(a,f,q,a.ua,d,e);Sb(f,a.i,m);a.W[k++]=f;f=p+a.ua;g-=q}if(0>=g){c/=1024;var v;e="";v?10>>=a.ia;0>>=a.ia;0>>this.ia].Eb(a&this.w,a)};h.Bb=function(a){this.A++;a=this.W[(a&this.f)>>>this.ia].Mb(a&this.w,a);this.A--;return a};h.na=function(a){return this.W[(a&this.f)>>>this.ia].ta(a&this.w,a)}; h.pb=function(a){var b=a&this.w,c=(a&this.f)>>>this.ia;this.A++;a=this.W[c].Nb(b,a);this.A--;return a};h.Fb=function(a,b){this.W[(a&this.f)>>>this.ia].Hb(a&this.w,b&255,a)};h.hb=function(a,b){this.A++;this.W[(a&this.f)>>>this.ia].Sb(a&this.w,b&255,a);this.A--};h.Va=function(a,b){this.W[(a&this.f)>>>this.ia].wb(a&this.w,b&65535,a)};h.Gb=function(a,b){var c=a&this.w,d=(a&this.f)>>>this.ia;this.A++;this.W[d].Tb(c,b&65535,a);this.A--}; -function cc(a){for(var b=0,c=[],d=0;da.b.ab)){var g=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!g&&m&&(g=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!k&&p&&(k=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));dc(a,e,e,g,k,m,p,f[4])}}}function nc(a,b){a.C.push(b)} +function cc(a){for(var b=0,c=[],d=0;da.b.ab)){var g=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!g&&m&&(g=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!k&&p&&(k=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));dc(a,e,e,g,k,m,p,f[4])}}}function nc(a,b){a.D.push(b)} function oc(a,b){a.A||(a.i&&D(a.i,536870912)&&C(a.i,"memory fault on address "+J(a.i,b),!0,!0),a.b.ea(4,b))}function ac(a,b,c){n("Memory block error ("+a+": "+l(b)+","+l(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.g={data:0,Sd:0,Db:20,gd:0};this.f={Td:0,Rb:-1}}u(K);h=K.prototype; h.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.Rb=pc(c,function(){e.f.Ka|=128;e.f.Ka&64&&(qc(e.b,e.f.hd),rc(e.b,e.f.Rb,1E3/60))});this.f.hd=sc(64,6);mc(b,this,L);nc(b,this.reset.bind(this));H(this)};h.reset=function(){this.g.Db=this.g.Db&-120|20;this.f.Ka=0};h.Dc=function(){var a=this.f.Ka;this.f.Ka&=-129;return a};h.rd=function(a){this.f.Ka=a;a&64&&rc(this.b,this.f.Rb,1E3/60);this.f.Ka=a&-129};h.wc=function(a){return(a?this.g.gd:this.g.data)&65535}; -h.kd=function(a){this.g.data=a};h.Fc=function(){var a=this.b;return a.G&62337|a.wa<<5|a.xa<<1};h.td=function(a){var b=this.b;a&=62337;if(b.G!=a){b.G=a;b.wa=a>>5&3;b.xa=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.La!=c&&(b.La=c,tc(b))}uc(this)};h.Gc=function(){var a=this.b.Na;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Hc=function(){return this.b.tb};h.Ic=function(){return this.b.Oa}; +h.kd=function(a){this.g.data=a};h.Fc=function(){var a=this.b;return a.F&62337|a.wa<<5|a.xa<<1};h.td=function(a){var b=this.b;a&=62337;if(b.F!=a){b.F=a;b.wa=a>>5&3;b.xa=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.La!=c&&(b.La=c,tc(b))}uc(this)};h.Gc=function(){var a=this.b.Na;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Hc=function(){return this.b.tb};h.Ic=function(){return this.b.Oa}; h.ud=function(a){var b=this.b;1170>b.ab&&(a&=-49);b.Oa!=a&&(b.Oa=a,a&16?(b.Za=4194303,b.ya=3915776):(b.Za=262143,b.ya=253952),tc(b));uc(this)};function uc(a){a.g.Db=a.g.Db&-8|(a.b.La?a.b.Oa&16?1:2:4)}h.Wc=function(a){return this.b.P[1][a>>1&7]};h.Id=function(a,b){this.b.P[1][b>>1&7]=a&65295};h.Uc=function(a){return this.b.P[1][(a>>1&7)+8]};h.Gd=function(a,b){this.b.P[1][(b>>1&7)+8]=a&65295};h.Vc=function(a){return this.b.sa[1][a>>1&7]}; h.Hd=function(a,b){b=b>>1&7;this.b.sa[1][b]=a;this.b.P[1][b]&=65295};h.Tc=function(a){return this.b.sa[1][(a>>1&7)+8]};h.Fd=function(a,b){b=(b>>1&7)+8;this.b.sa[1][b]=a;this.b.P[1][b]&=65295};h.Cc=function(a){return this.b.P[0][a>>1&7]};h.qd=function(a,b){this.b.P[0][b>>1&7]=a&65295};h.Ac=function(a){return this.b.P[0][(a>>1&7)+8]};h.od=function(a,b){this.b.P[0][(b>>1&7)+8]=a&65295};h.Bc=function(a){return this.b.sa[0][a>>1&7]};h.pd=function(a,b){b=b>>1&7;this.b.sa[0][b]=a;this.b.P[0][b]&=65295}; h.zc=function(a){return this.b.sa[0][(a>>1&7)+8]};h.nd=function(a,b){b=(b>>1&7)+8;this.b.sa[0][b]=a;this.b.P[0][b]&=65295};h.bd=function(a){return this.b.P[3][a>>1&7]};h.Od=function(a,b){this.b.P[3][b>>1&7]=a&65295};h.$c=function(a){return this.b.P[3][(a>>1&7)+8]};h.Md=function(a,b){this.b.P[3][(b>>1&7)+8]=a&65295};h.ad=function(a){return this.b.sa[3][a>>1&7]};h.Nd=function(a,b){b=b>>1&7;this.b.sa[3][b]=a;this.b.P[3][b]&=65295};h.Zc=function(a){return this.b.sa[3][(a>>1&7)+8]}; h.Ld=function(a,b){b=(b>>1&7)+8;this.b.sa[3][b]=a;this.b.P[3][b]&=65295};h.fb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};h.kb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};h.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};h.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};h.Qc=function(){return this.b.u[7]};h.Cd=function(a){this.b.u[7]=a};h.gb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]}; h.lb=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};h.Oc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[1]};h.Ad=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[1]=a};h.Pc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[3]};h.Bd=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[3]=a};h.yc=function(a){return this.b.gc[a-65504>>1]};h.md=function(a,b){this.b.gc[b-65504>>1]=a};h.dc=function(a){return 65520==a?61183:0};h.jc=function(){}; -h.Yc=function(){return 1};h.Kd=function(){};h.xc=function(){return this.b.Z};h.ld=function(){this.b.Z=0};h.Ec=function(){return this.b.fc};h.sd=function(a,b){b&1||(a&=255);this.b.fc=a};h.Jc=function(a){return a?this.b.Pb:0};h.vd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Pb=a;b.F|=2};h.Xc=function(a){return a?this.b.Pa&65280:0};h.Jd=function(a){this.b.Pa=a|255};h.Mc=function(){return Lb(this.b)};h.yd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.F|=128}; +h.Yc=function(){return 1};h.Kd=function(){};h.xc=function(){return this.b.Z};h.ld=function(){this.b.Z=0};h.Ec=function(){return this.b.fc};h.sd=function(a,b){b&1||(a&=255);this.b.fc=a};h.Jc=function(a){return a?this.b.Pb:0};h.vd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Pb=a;b.G|=2};h.Xc=function(a){return a?this.b.Pa&65280:0};h.Jd=function(a){this.b.Pa=a|255};h.Mc=function(){return Lb(this.b)};h.yd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.G|=128}; h.ic=function(a,b){D(this)&&C(this,"writeIgnored("+na(b)+"): "+na(a),!0,!0)}; var M={},L=(M[62592]=[null,null,K.prototype.Wc,K.prototype.Id,"SISDR",1145],M[62608]=[null,null,K.prototype.Uc,K.prototype.Gd,"SDSDR",1145],M[62624]=[null,null,K.prototype.Vc,K.prototype.Hd,"SISAR",1145],M[62640]=[null,null,K.prototype.Tc,K.prototype.Fd,"SDSAR",1145],M[62656]=[null,null,K.prototype.Cc,K.prototype.qd,"KISDR",1145],M[62672]=[null,null,K.prototype.Ac,K.prototype.od,"KDSDR",1145],M[62688]=[null,null,K.prototype.Bc,K.prototype.pd,"KISAR",1145],M[62704]=[null,null,K.prototype.zc,K.prototype.nd, "KDSAR",1145],M[62798]=[null,null,K.prototype.Ic,K.prototype.ud,"MMR3",1145],M[65382]=[null,null,K.prototype.Dc,K.prototype.rd,"LKS"],M[65400]=[null,null,K.prototype.wc,K.prototype.kd,"CNSL"],M[65402]=[null,null,K.prototype.Fc,K.prototype.td,"MMR0",1145],M[65404]=[null,null,K.prototype.Gc,K.prototype.ic,"MMR1",1145],M[65406]=[null,null,K.prototype.Hc,K.prototype.ic,"MMR2",1145],M[65408]=[null,null,K.prototype.bd,K.prototype.Od,"UISDR",1145],M[65424]=[null,null,K.prototype.$c,K.prototype.Md,"UDSDR", @@ -87,182 +87,182 @@ L[62634]=L[62624];L[62636]=L[62624];L[62638]=L[62624];L[62642]=L[62640];L[62644] L[62698]=L[62688];L[62700]=L[62688];L[62702]=L[62688];L[62706]=L[62704];L[62708]=L[62704];L[62710]=L[62704];L[62712]=L[62704];L[62714]=L[62704];L[62716]=L[62704];L[62718]=L[62704];L[65410]=L[65408];L[65412]=L[65408];L[65414]=L[65408];L[65416]=L[65408];L[65418]=L[65408];L[65420]=L[65408];L[65422]=L[65408];L[65426]=L[65424];L[65428]=L[65424];L[65430]=L[65424];L[65432]=L[65424];L[65434]=L[65424];L[65436]=L[65424];L[65438]=L[65424];L[65442]=L[65440];L[65444]=L[65440];L[65446]=L[65440];L[65448]=L[65440]; L[65450]=L[65440];L[65452]=L[65440];L[65454]=L[65440];L[65458]=L[65456];L[65460]=L[65456];L[65462]=L[65456];L[65464]=L[65456];L[65466]=L[65456];L[65468]=L[65456];L[65470]=L[65456];L[65506]=L[65504];L[65508]=L[65504];L[65510]=L[65504];L[65512]=L[65504];L[65514]=L[65504];L[65516]=L[65504];L[65518]=L[65504];Ta(function(){for(var a=B(document,"pdp11","device"),b=0;b>1),this.b=new Int32Array(this.A,0,d>>2),Dc(this,zc?Ec:Fc);else{this.b=Array(d>>2);for(a=0;a>1),this.b=new Int32Array(this.A,0,d>>2),Dc(this,zc?Ec:Fc);else{this.b=Array(d>>2);for(a=0;a>2),b=0;b>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a,b){a&1&&oc(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},ra:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= -this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ja=!0},T:function(a,b){if(this.i&&null!=this.B){var c=this.i;Kc(c,this.B+a,1,c.M)&&c.da(!0)}return this.Mb(a,b)},ba:function(a,b){if(this.i&&null!=this.B){var c=this.i;Kc(c,this.B+a,2,c.M)&&c.da(!0)}return this.Nb(a,b)},pa:function(a,b,c){if(this.i&&null!=this.B){var d=this.i;Kc(d,this.B+a, -1,d.D)&&d.da(!0)}this.f?this.C(a,b,c):this.Sb(a,b,c)},xa:function(a,b,c){if(this.i&&null!=this.B){var d=this.i;Kc(d,this.B+a,2,d.D)&&d.da(!0)}this.f?this.C(a,b,c):this.Tb(a,b,c)},R:function(a){return this.D[a]},U:function(a,b){a=this.D[a];this.i&&D(this.i,128)&&C(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},aa:function(a,b){a&1&&oc(this.w,b);return this.G.getUint16(a,!0)},fa:function(a,b){a&1&&oc(this.w,b);a=this.J[a>>1];this.i&&D(this.i,128)&&C(this.i,"Memory.readWord("+ -J(this.i,b)+"): "+J(this.i,a),!0);return a},oa:function(a,b){this.D[a]=b;this.Ja=!0},Ra:function(a,b,c){this.D[a]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},wa:function(a,b,c){a&1&&oc(this.w,c);this.G.setUint16(a,b,!0);this.Ja=!0},ya:function(a,b,c){a&1&&oc(this.w,c);this.J[a>>1]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}}; -function Sb(a,b,c){a.i=b;a.g=a.I=0;c&&((a.g=c.g)&&Jc(a,Ic,!1),(a.I=c.I)&&Hc(a,Ic,!1))}function Lc(a,b){b?--a.I||(a.Hb=a.f?a.C:a.Sb,a.wb=a.f?a.H:a.Tb):--a.g||(a.Eb=a.Mb,a.ta=a.Nb)}function Hc(a,b,c){c&&a.I||(a.Hb=!a.f&&b[1]||a.C,a.wb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Sb=b[1]||a.C,a.Tb=b[3]||a.H}function Jc(a,b,c){c&&a.g||(a.Eb=b[0]||a.K,a.ta=b[2]||a.M);if(c||void 0===c)a.Mb=b[0]||a.K,a.Nb=b[2]||a.M}function Dc(a,b){b||(b=Mc);Jc(a,b,void 0);Hc(a,b,void 0)} +I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(sb)for(a=Array(this.size>>2),b=0;b>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a,b){a&1&&oc(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},ra:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= +this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ja=!0},T:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,1,c.M)&&c.da(!0)}return this.Mb(a,b)},ba:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,2,c.M)&&c.da(!0)}return this.Nb(a,b)},pa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a, +1,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Sb(a,b,c)},xa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a,2,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Tb(a,b,c)},R:function(a){return this.B[a]},U:function(a,b){a=this.B[a];this.i&&D(this.i,128)&&C(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},aa:function(a,b){a&1&&oc(this.w,b);return this.F.getUint16(a,!0)},fa:function(a,b){a&1&&oc(this.w,b);a=this.J[a>>1];this.i&&D(this.i,128)&&C(this.i,"Memory.readWord("+ +J(this.i,b)+"): "+J(this.i,a),!0);return a},oa:function(a,b){this.B[a]=b;this.Ja=!0},Ra:function(a,b,c){this.B[a]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},wa:function(a,b,c){a&1&&oc(this.w,c);this.F.setUint16(a,b,!0);this.Ja=!0},ya:function(a,b,c){a&1&&oc(this.w,c);this.J[a>>1]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}}; +function Sb(a,b,c){a.i=b;a.g=a.I=0;c&&((a.g=c.g)&&Jc(a,Ic,!1),(a.I=c.I)&&Hc(a,Ic,!1))}function Lc(a,b){b?--a.I||(a.Hb=a.f?a.D:a.Sb,a.wb=a.f?a.H:a.Tb):--a.g||(a.Eb=a.Mb,a.ta=a.Nb)}function Hc(a,b,c){c&&a.I||(a.Hb=!a.f&&b[1]||a.D,a.wb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Sb=b[1]||a.D,a.Tb=b[3]||a.H}function Jc(a,b,c){c&&a.g||(a.Eb=b[0]||a.K,a.ta=b[2]||a.M);if(c||void 0===c)a.Mb=b[0]||a.K,a.Nb=b[2]||a.M}function Dc(a,b){b||(b=Mc);Jc(a,b,void 0);Hc(a,b,void 0)} var Mc=[],Gc=[I.prototype.V,I.prototype.ra,I.prototype.ma,I.prototype.Wa],Ic=[I.prototype.T,I.prototype.pa,I.prototype.ba,I.prototype.xa];if(sb)var Fc=[I.prototype.R,I.prototype.oa,I.prototype.aa,I.prototype.wa],Ec=[I.prototype.U,I.prototype.Ra,I.prototype.fa,I.prototype.ya]; function Nc(a,b){r.call(this,"CPU",a,Nc,1);var c=a.multiplier||1;this.Ga=a.cycles||b;this.Ma=c;this.Ya=Math.round(this.Ga/1E4)/100;this.Ua=this.Ya*this.Ma;this.v.ca=!1;this.v.Qb=!1;this.v.mb=a.autoStart;this.v.$a=!1;this.qb=this.ma=0;this.rb=a.csStart;this.bb=a.csInterval;this.cb=a.csStop;this.K=[];this.bc=this.fd.bind(this);H(this)}u(Nc);var Oc=["power","reset"];h=Nc.prototype; -h.Ca=function(a,b,c,d){this.C=a;this.w=b;this.i=d;for(b=0;b=a.ma&&(a.ma+=a.bb,c=!0);0<=a.cb&&a.cb<=Uc(a)&&(a.bb=a.cb=-1,Rc(a),a.da(),c=!0);c&&a.j(Uc(a)+" cycles: checksum="+l(a.qb))}} -h.qa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.I[b]=c,!0;case "run":return this.I[b]=c,c.onclick=function(){var a;if(a=d.C)if(a=d.C,a.v.ha)a=!0;else{var b=null,c,k=kb(a.id);for(c=0;ca.V/a.Ua?b=1:d=!0;a.Ma=b;b=a.Ya*a.Ma;if(a.Ua!=b){a.Ua=b;b=a.Ua.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.C&&a.C.ub()}Wc(a,a.T);a.T=0;a.R=za();a.aa=0;Xc(a);return d}function pc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function rc(a,b,c){0<=b&&ba.K[b][0]&&(c=a.Ga*a.Ma/1E3*c|0,a.K[b][0]=c+Yc(a))} +function Qc(a){a.V=0;a.Cb=0;a.fa=a.T=a.ba=a.b=0;Rc(a);Vc(a,1)}function Vc(a,b,c){var d=!1;if(void 0!==b){.8>a.V/a.Ua?b=1:d=!0;a.Ma=b;b=a.Ya*a.Ma;if(a.Ua!=b){a.Ua=b;b=a.Ua.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.D&&a.D.ub()}Wc(a,a.T);a.T=0;a.R=za();a.aa=0;Xc(a);return d}function pc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function rc(a,b,c){0<=b&&ba.K[b][0]&&(c=a.Ga*a.Ma/1E3*c|0,a.K[b][0]=c+Yc(a))} function Zc(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function $c(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Yc(a,b){var c=a.ba-=a.b;a.b=0;b&&(a.ba=0);return c} -h.fd=function(){if(this.v.ca){this.nb>=this.Ga&&Xc(this,!0);this.ra=0;this.Fa=za();if(this.aa){var a=this.Fa-this.aa;a>this.Ab&&(this.R+=a,this.R>this.Fa&&(this.R=this.Fa))}try{do{var b=Zc(this,this.v.$a?1:this.Qa);try{this.jb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.ra+=b;this.T+=b;Tc(this,b);$c(this,b);this.oa-=b;if(0>=this.oa){this.oa+=this.Qa;15<=++this.Cb&&(this.C&&this.C.$(),this.Cb=0);break}}while(this.v.ca)}catch(e){this.da();this.C&&this.C.stop(za(),Uc(this));rb(this, +h.fd=function(){if(this.v.ca){this.nb>=this.Ga&&Xc(this,!0);this.ra=0;this.Fa=za();if(this.aa){var a=this.Fa-this.aa;a>this.Ab&&(this.R+=a,this.R>this.Fa&&(this.R=this.Fa))}try{do{var b=Zc(this,this.v.$a?1:this.Qa);try{this.jb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.ra+=b;this.T+=b;Tc(this,b);$c(this,b);this.oa-=b;if(0>=this.oa){this.oa+=this.Qa;15<=++this.Cb&&(this.D&&this.D.$(),this.Cb=0);break}}while(this.v.ca)}catch(e){this.da();this.D&&this.D.stop(za(),Uc(this));rb(this, e.stack||e.message);return}if(this.v.ca){a=setTimeout;b=this.bc;this.aa=za();var c=this.Ab;this.ra&&(c=Math.round(c*this.ra/this.Qa));var c=c-(this.aa-this.Fa),d=this.aa-this.R;d&&(this.V=Math.round(this.T/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.Vc&&(this.R-=c),c=0;this.nb+=this.ra;this.aa+=c;a(b,c)}}}; -h.ib=function(a){if(qb(this))return!1;if(this.v.ca)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.ca=!0;this.v.Qb=!0;var b=this.I.run;b&&(b.textContent="Halt");this.C&&(a&&this.C.ub(!0),this.C.start(this.R,Uc(this)));setTimeout(this.bc,0);return!0};h.jb=function(){return 0};h.da=function(a){if(this.v.ca){Yc(this);Wc(this,this.T);this.T=0;this.v.ca=!1;var b=this.I.run;b&&(b.textContent="Run");this.C&&this.C.stop(za(),Uc(this))}this.v.complete=a}; +h.ib=function(a){if(qb(this))return!1;if(this.v.ca)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.ca=!0;this.v.Qb=!0;var b=this.I.run;b&&(b.textContent="Halt");this.D&&(a&&this.D.ub(!0),this.D.start(this.R,Uc(this)));setTimeout(this.bc,0);return!0};h.jb=function(){return 0};h.da=function(a){if(this.v.ca){Yc(this);Wc(this,this.T);this.T=0;this.v.ca=!1;var b=this.I.run;b&&(b.textContent="Run");this.D&&this.D.stop(za(),Uc(this))}this.v.complete=a}; function ad(a){this.ab=+a.model||1170;this.xb=a.addrReset||0;Nc.call(this,a,6666667);this.decode=1120==this.ab?bd.bind(this):cd.bind(this);dd(this);this.A=0;this.U=null;this.v.complete=this.v.oc=!1}u(ad,Nc);h=ad.prototype;h.reset=function(){this.status("model "+this.ab);this.v.ca&&this.da();dd(this);Qc(this);this.v.error=!1;this.parent.reset.call(this)}; -function dd(a){a.N=65536;a.O=32768;a.X=65535;a.S=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.xb];a.Ea=[0,0,0,0,0,0];a.va=[0,0,0,0];a.D=0;a.xa=0;a.sc=[4,2,0,1];a.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.sa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.gc=[0,0,0,0,0,0,0,0];a.fc=0;a.F=0;a.H=a.J=0;a.g=a.f=a.Xa=0;a.pa=-1;ed(a)}function ed(a){a.Pa=255;a.Z=0;a.Pb=0;a.G=0;a.Na=0;a.tb=0;a.Oa=0;a.La=0;a.wa=0;a.Za=262143;a.ya=253952;a.F|=2;a.w&&tc(a)}function tc(a){a.La?(a.M=65536,a.Y=a.rc,a.ta=a.cd,a.wb=a.Pd,Vb(a.w,a.Oa&16?22:18)):(a.M=0,a.Y=a.qc,a.ta=a.ec,a.wb=a.kc,Vb(a.w,16))}h.Zb=function(){return 0}; +function dd(a){a.N=65536;a.O=32768;a.X=65535;a.S=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.xb];a.Ea=[0,0,0,0,0,0];a.va=[0,0,0,0];a.B=0;a.xa=0;a.sc=[4,2,0,1];a.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.sa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.gc=[0,0,0,0,0,0,0,0];a.fc=0;a.G=0;a.H=a.J=0;a.g=a.f=a.Xa=0;a.pa=-1;ed(a)}function ed(a){a.Pa=255;a.Z=0;a.Pb=0;a.F=0;a.Na=0;a.tb=0;a.Oa=0;a.La=0;a.wa=0;a.Za=262143;a.ya=253952;a.G|=2;a.w&&tc(a)}function tc(a){a.La?(a.M=65536,a.Y=a.rc,a.ta=a.cd,a.wb=a.Pd,Vb(a.w,a.Oa&16?22:18)):(a.M=0,a.Y=a.qc,a.ta=a.ec,a.wb=a.kc,Vb(a.w,16))}h.Zb=function(){return 0}; h.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.fa,this.Ma]);a.set(2,cc(this.w));return a.data()};h.restore=function(a){var b=a[1];this.fa=b[1];Vc(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c>14&3;c=a.L>>14&3;a.D!=c&&(a.va[c]=a.u[6],a.u[6]=a.va[a.D]);a.L=b;a.F|=2}function P(a,b){a.F&128||(a.S=a.X=b,a.O=0)}function Cd(a,b,c){a.F&128||(a.S=a.X=a.N=b,a.O=c||0)}function Dd(a,b,c,d){a.F&128||(a.S=a.X=a.N=b,a.O=(c^b)&(d^b))}function Ed(a,b){a.F&128||(a.S=a.X=a.N=b,a.O=a.S^a.N>>1)}function Fd(a,b,c,d){a.F&128||(a.S=a.X=a.N=b,a.O=(c^d)&(d^b))} -h.ea=function(a,b){if(!this.A){var c=!1;0>this.pa?this.pa=Lb(this):this.D||(a=4,c=!0);this.G&57344||(this.Na=63222,this.tb=a);this.D=0;var d=this.ta(a|this.M),e=this.ta(a+2&65535|this.M);vc(this,e&-12289|this.pa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Gd(this,this.pa);Gd(this,this.u[7]);O(this,d);this.F&=-113;this.pa=-1;if(26!=b)throw a;}};function Hd(a){var b=Id(a),c=Id(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);O(a,b);vc(a,c);a.F&=-17} -function Jd(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.D]||(d&=7);e=a.P[a.D][d];f=(a.sa[a.D][d]<<6)+(b&8191)&a.Za;if(ff){if(3932160<=f){f&=262143;var k=f>>13&31;31>k?a.Oa&32&&(f=a.uc[k]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? -192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.P[a.D][d]=e;if(4194170!==f||a.D)a.wa=a.D,a.xa=d;g&&(g&57344&&(0<=a.pa&&(g|=128),a.G&57344||(a.G=a.G|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.G&61440||!(4191360>f||4194239c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.ta(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.ta(e)|g; -a.b-=8;break;case 6:return e=Bd(a),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=Bd(a),e=e+a.u[c]&65535,e=a.ta(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.G&57344||(a.Na=a.Na<<8|f<<3&248|c);6==c&&!a.D&&d&4&&0>=f&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.F|=64));return e}h.Bb=function(a){if(!this.La)return this.w.Bb(a);this.A++;a=Kd(this,Jd(this,a,3));this.A--;return a}; +function gd(a){return a.O&32768?2:0}function Ad(a){return a.X&65535?0:4}h.Da=function(){return this.S&32768?8:0};function Bd(a){var b=a.ta(a.u[7]);a.u[7]=a.u[7]+2&65535;return b}function O(a,b){a.u[7]=b&65535}function sc(a,b){return{jd:a,eb:b,next:null}}function qc(a,b){if(b!=a.U){var c=a.U;if(!c||c.eb<=b.eb)b.next=c,a.U=b;else{do{var d=c.next;if(!d||d.eb<=b.eb){b.next=d;c.next=b;break}c=d}while(c)}}a.G|=2}function Lb(a){return a.L=a.L&63728|a.Da()|Ad(a)|gd(a)|fd(a)} +function vc(a,b){a.S=b<<12;a.X=~b&4;a.O=b<<14;a.N=b<<16;if((b^a.L)&2048)for(var c=a.Ea.length;0<=--c;){var d=a.u[c];a.u[c]=a.Ea[c];a.Ea[c]=d}a.B=b>>14&3;c=a.L>>14&3;a.B!=c&&(a.va[c]=a.u[6],a.u[6]=a.va[a.B]);a.L=b;a.G|=2}function P(a,b){a.G&128||(a.S=a.X=b,a.O=0)}function Cd(a,b,c){a.G&128||(a.S=a.X=a.N=b,a.O=c||0)}function Dd(a,b,c,d){a.G&128||(a.S=a.X=a.N=b,a.O=(c^b)&(d^b))}function Ed(a,b){a.G&128||(a.S=a.X=a.N=b,a.O=a.S^a.N>>1)}function Fd(a,b,c,d){a.G&128||(a.S=a.X=a.N=b,a.O=(c^d)&(d^b))} +h.ea=function(a,b){if(!this.A){var c=!1;0>this.pa?this.pa=Lb(this):this.B||(a=4,c=!0);this.F&57344||(this.Na=63222,this.tb=a);this.B=0;var d=this.ta(a|this.M),e=this.ta(a+2&65535|this.M);vc(this,e&-12289|this.pa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Gd(this,this.pa);Gd(this,this.u[7]);O(this,d);this.G&=-113;this.pa=-1;if(26!=b)throw a;}};function Hd(a){var b=Id(a),c=Id(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);O(a,b);vc(a,c);a.G&=-17} +function Jd(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.B]||(d&=7);e=a.P[a.B][d];f=(a.sa[a.B][d]<<6)+(b&8191)&a.Za;if(ff){if(3932160<=f){f&=262143;var k=f>>13&31;31>k?a.Oa&32&&(f=a.uc[k]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? +192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.P[a.B][d]=e;if(4194170!==f||a.B)a.wa=a.B,a.xa=d;g&&(g&57344&&(0<=a.pa&&(g|=128),a.F&57344||(a.F=a.F|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.F&61440||!(4191360>f||4194239c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.ta(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.ta(e)|g; +a.b-=8;break;case 6:return e=Bd(a),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=Bd(a),e=e+a.u[c]&65535,e=a.ta(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.F&57344||(a.Na=a.Na<<8|f<<3&248|c);6==c&&!a.B&&d&4&&0>=f&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.G|=64));return e}h.Bb=function(a){if(!this.La)return this.w.Bb(a);this.A++;a=Kd(this,Jd(this,a,3));this.A--;return a}; h.pb=function(a){if(!this.La)return this.w.pb(a);this.A++;a=this.ec(Jd(this,a,2));this.A--;return a};h.hb=function(a,b){this.La?(this.A++,Ld(this,Jd(this,a,5),b),this.A--):this.w.hb(a,b)};h.Gb=function(a,b){this.La?(this.A++,this.kc(Jd(this,a,4),b),this.A--):this.w.Gb(a,b)};h.qc=function(a,b,c){return Md(this,a,b,c)};h.rc=function(a,b,c){return Jd(this,Md(this,a,b,c),c)};h.ec=function(a){return this.w.na(a)};h.cd=function(a){return this.w.na(Jd(this,a,2))};h.kc=function(a,b){this.w.Va(a,b&65535)}; -h.Pd=function(a,b){this.w.Va(Jd(this,a,4),b)};function Nd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Md(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.D=a.L>>12&3,c=a.ta(d|c&a.M),a.D=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.va[a.L>>12&3];return c}function Od(a,b,c,d){a.G&57344||(a.Na=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Md(a,b,e,4),c&65536||(e&=65535),a.D=a.L>>12&3,e=Jd(a,e|c&65536,4),a.D=a.L>>14&3,a.w.Va(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.va[a.L>>12&3]=d} +h.Pd=function(a,b){this.w.Va(Jd(this,a,4),b)};function Nd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Md(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.B=a.L>>12&3,c=a.ta(d|c&a.M),a.B=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.va[a.L>>12&3];return c}function Od(a,b,c,d){a.F&57344||(a.Na=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Md(a,b,e,4),c&65536||(e&=65535),a.B=a.L>>12&3,e=Jd(a,e|c&65536,4),a.B=a.L>>14&3,a.w.Va(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.va[a.L>>12&3]=d} function Pd(a,b){b>>=6;var c=a.J=b&7;return(b=a.H=(b&56)>>3)?Kd(a,a.Y(b,c,3)):a.u[c]&255}function Qd(a,b){b>>=6;var c=a.J=b&7;return(b=a.H=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]}function Rd(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Md(a,b,c,8)}function Sd(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Kd(a,a.Y(b,c,3)):a.u[c]&255}function Td(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]} function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Xa=a.Y(b,e,7),Ld(a,e,d.call(a,c,Kd(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Y(b,e,6),a.w.Va(e,d.call(a,c,a.w.na(e)))):a.u[e]=d.call(a,c,a.u[e])}function Ud(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Ld(a,a.Y(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Vd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.Va(a.Y(b,d,4),c):a.u[d]=c&65535;return c} function S(a,b,c){c&&(O(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3} -h.jb=function(a){this.v.complete=!0;var b=this.v.oc=this.i&&Wd(this.i),c=a?this.v.Qb?0:1:-1;this.v.Qb=!1;this.ba=this.b=a;do{if(b){if(Xd(this.i,this.u[7],c)){this.da();break}c=1}if(this.F&&(this.F&112&&(this.F&32?this.ea(168,28):this.F&64?this.ea(4,30):this.F&16&&this.ea(12,32),this.F&=-113),this.F&7))if(this.F&2){this.F&=-3;var d=160,e=(this.Pb&224)>>5;if(a=this.U&&this.U.eb>e?this.U:null)d=a.jd,e=a.eb;e>(this.L&224)>>5?(this.F&4&&(this.u[7]=this.u[7]+2&65535,this.F&=-5),this.ea(d,26),e=!0):e=!1; -if(e&&a)if(e=this.U,e==a)this.U=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.F&1&&this.F++;this.G&57344||(this.Na=0,this.tb=this.u[7]);this.F=this.F&7|this.L&16;this.decode(Bd(this))}while(0>5;if(a=this.U&&this.U.eb>e?this.U:null)d=a.jd,e=a.eb;e>(this.L&224)>>5?(this.G&4&&(this.u[7]=this.u[7]+2&65535,this.G&=-5),this.ea(d,26),e=!0):e=!1; +if(e&&a)if(e=this.U,e==a)this.U=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.G&1&&this.G++;this.F&57344||(this.Na=0,this.tb=this.u[7]);this.G=this.G&7|this.L&16;this.decode(Bd(this))}while(0>1|b<<16;Ed(this,a);return a&65535}function ce(a,b){a=b&2048|b>>1|b<<8;Ed(this,a<<8);return a&255}function de(a,b){a=b&~a;P(this,a);return a}function ee(a,b){a=b&~a;P(this,a<<8);return a}function fe(a,b){a|=b;P(this,a);return a}function ge(a,b){a|=b;P(this,a<<8);return a} -function he(a,b){a=~b|65536;Cd(this,a);return a&65535}function ie(a,b){a=~b|256;Cd(this,a<<8);return a&255}function je(a,b){a=b-a;this.F&128||(this.S=this.X=a,this.O=b&(b^a));return a&65535}function ke(a,b){a=b-a;var c=a<<8;b<<=8;this.F&128||(this.S=this.X=c,this.O=b&(b^c));return a&255}function le(a,b){a=b+a;this.F&128||(this.S=this.X=a,this.O=a&(b^a));return a&65535}function me(a,b){a=b+a;var c=a<<8;this.F&128||(this.S=this.X=c,this.O=c&(b<<8^c));return a&255} +function he(a,b){a=~b|65536;Cd(this,a);return a&65535}function ie(a,b){a=~b|256;Cd(this,a<<8);return a&255}function je(a,b){a=b-a;this.G&128||(this.S=this.X=a,this.O=b&(b^a));return a&65535}function ke(a,b){a=b-a;var c=a<<8;b<<=8;this.G&128||(this.S=this.X=c,this.O=b&(b^c));return a&255}function le(a,b){a=b+a;this.G&128||(this.S=this.X=a,this.O=a&(b^a));return a&65535}function me(a,b){a=b+a;var c=a<<8;this.G&128||(this.S=this.X=c,this.O=c&(b<<8^c));return a&255} function ne(a,b){a=-b;Cd(this,a,a&b&32768);return a&65535}function oe(a,b){a=-b;Cd(this,a<<8,(a&b&128)<<8);return a&255}function pe(a,b){a=b<<1|this.N>>16&1;Ed(this,a);return a&65535}function qe(a,b){a=b<<1|this.N>>16&1;Ed(this,a<<8);return a&255}function re(a,b){a=(this.N&65536|b)>>1|b<<16;Ed(this,a);return a&65535}function se(a,b){a=((this.N&65536)>>8|b)>>1|b<<8;Ed(this,a<<8);return a&255}function te(a,b){var c=b-a;Fd(this,c,a,b);return c&65535} -function ue(a,b){var c=b-a;Fd(this,c<<8,a<<8,b<<8);return c&255}function ve(a,b){this.F&128||(this.S=this.X=b&65280,this.O=this.N=0);return(b<<8|b>>8)&65535}function we(a,b){a^=b;P(this,a);return a&65535}function xe(a){R(this,a,Qd(this,a),Yd);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} +function ue(a,b){var c=b-a;Fd(this,c<<8,a<<8,b<<8);return c&255}function ve(a,b){this.G&128||(this.S=this.X=b&65280,this.O=this.N=0);return(b<<8|b>>8)&65535}function we(a,b){a^=b;P(this,a);return a&65535}function xe(a){R(this,a,Qd(this,a),Yd);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} function ye(a){var b=Td(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.N=this.O=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.O=32768)}this.u[a]=c&65535;this.S=this.X=c;this.b-=(this.g?6:7)+b} function ze(a){var b=Td(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.N=this.O=0;b&=63;if(b&32){b=64-b;32>b-1;this.N=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.u[a|1]=d&65535;this.S=d>>16;this.X=d>>16|d;this.b-=(this.g?6:7)+b}function Ae(a){S(this,a,!fd(this))}function Be(a){S(this,a,fd(this))} function Ce(a){R(this,a,Qd(this,a),de);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function De(a){Q(this,a,Pd(this,a),ee);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ee(a){R(this,a,Qd(this,a),fe);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Fe(a){Q(this,a,Pd(this,a),ge);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} -function Ge(a){P(this,Qd(this,a)&Td(this,a));this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function He(a){P(this,(Pd(this,a)&Sd(this,a))<<8);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ie(a){S(this,a,Ad(this))}function Je(a){S(this,a,!this.Da()==!zd(this))}function Ke(a){S(this,a,!Ad(this)&&!this.Da()==!zd(this))}function Le(a){S(this,a,!fd(this)&&!Ad(this))}function Me(a){S(this,a,Ad(this)||!this.Da()!=!zd(this))} -function Ne(a){S(this,a,fd(this)||Ad(this))}function Oe(a){S(this,a,!this.Da()!=!zd(this))}function Pe(a){S(this,a,this.Da())}function Qe(a){S(this,a,!Ad(this))}function Re(a){S(this,a,!this.Da())}function Se(){this.ea(12,1);this.b-=5}function Te(a){S(this,a,!0)}function Ue(a){S(this,a,!zd(this))}function Ve(a){S(this,a,zd(this))}function T(a){a&1&&(this.N=0);a&2&&(this.O=0);a&4&&(this.X=1);a&8&&(this.S=0);this.b-=5} +function Ge(a){P(this,Qd(this,a)&Td(this,a));this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function He(a){P(this,(Pd(this,a)&Sd(this,a))<<8);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ie(a){S(this,a,Ad(this))}function Je(a){S(this,a,!this.Da()==!gd(this))}function Ke(a){S(this,a,!Ad(this)&&!this.Da()==!gd(this))}function Le(a){S(this,a,!fd(this)&&!Ad(this))}function Me(a){S(this,a,Ad(this)||!this.Da()!=!gd(this))} +function Ne(a){S(this,a,fd(this)||Ad(this))}function Oe(a){S(this,a,!this.Da()!=!gd(this))}function Pe(a){S(this,a,this.Da())}function Qe(a){S(this,a,!Ad(this))}function Re(a){S(this,a,!this.Da())}function Se(){this.ea(12,1);this.b-=5}function Te(a){S(this,a,!0)}function Ue(a){S(this,a,!gd(this))}function Ve(a){S(this,a,gd(this))}function T(a){a&1&&(this.N=0);a&2&&(this.O=0);a&4&&(this.X=1);a&8&&(this.S=0);this.b-=5} function We(a){var b=Qd(this,a);a=Td(this,a);Fd(this,b-a,a,b);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Xe(a){var b=Pd(this,a)<<8;a=Sd(this,a)<<8;Fd(this,b-a,a,b);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)} function Ye(a){var b=Td(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.N=this.O=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.X=d>>16|d,this.S=d>>16):(this.O=32768,this.X=d>>15|d,this.S=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.S=0,this.O=32768,this.N=65536,this.b-=7}function Ze(){this.ea(24,2);this.b-=25}function $e(){this.L&49152?(this.Z|=128,this.ea(4,3)):this.da();this.b-=7} function af(){this.ea(16,4);this.b-=25}var bf=[0,7,7,10,7,11,9,13];function cf(a){var b=this.b;O(this,Rd(this,a));this.b=b-bf[this.g]}var df=[0,14,14,17,14,18,16,20];function ef(a){var b=this.b,c=Rd(this,a);a=a>>6&7;Gd(this,this.u[a]);this.u[a]=this.u[7];O(this,c);this.b=b-df[this.g]}var ff=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function gf(a){var b=Qd(this,a),c=this.b;P(this,Vd(this,a,b));this.b=c-ff[(this.H?8:0)+this.g]+(7!=this.f||this.g?0:2)} -function hf(a){var b=Pd(this,a);P(this,Ud(this,a,b,1)<<8);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var jf=[7,13,13,17,14,18,17,21];function kf(a){var b=Td(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.F&128||(this.S=b>>16,this.X=this.S|b,this.O=0,this.N=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)O(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function qf(a){R(this,a,Qd(this,a),te);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} -function rf(a){R(this,a,0,ve);this.b-=this.g?9:3+(7==this.f?2:0)}function sf(){this.ea(28,5);this.b-=5}function tf(){this.F&4||this.C.$();this.F|=4;this.u[7]=this.u[7]+-2&65535;this.b-=3}function uf(a){R(this,a,Qd(this,a),we);this.b-=this.g?9:3+(7==this.f?2:0)}function V(a){var b;if(b=this.i)b=this.i,C(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function bd(a){vf[a>>12].call(this,a)}function wf(a){xf[a>>6&3].call(this,a)}function yf(a){zf[a>>6&3].call(this,a)} -function Af(a){Bf[a>>6&3].call(this,a)}function Cf(a){Df[a&15].call(this,a)}function Ef(a){Ff[a&15].call(this,a)}function Gf(a){Hf[a>>6&3].call(this,a)}function If(a){Jf[a>>6&3].call(this,a)}function cg(a){dg[a>>6&3].call(this,a)} -var vf=[function(a){eg[a>>8&15].call(this,a)},gf,We,Ge,Ce,Ee,xe,V,function(a){fg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,qf,V],eg=[function(a){gg[a>>4&15].call(this,a)},Te,Qe,Ie,Je,Oe,Ke,Me,ef,ef,wf,yf,Af,V,V,V],xf=[function(a){Cd(this,Vd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,he);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,le);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,je);this.b-=this.g?9:3+(7==this.f?2:0)}],zf=[function(a){R(this,a,0, +function hf(a){var b=Pd(this,a);P(this,Ud(this,a,b,1)<<8);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var jf=[7,13,13,17,14,18,17,21];function kf(a){var b=Td(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.G&128||(this.S=b>>16,this.X=this.S|b,this.O=0,this.N=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)O(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function qf(a){R(this,a,Qd(this,a),te);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} +function rf(a){R(this,a,0,ve);this.b-=this.g?9:3+(7==this.f?2:0)}function sf(){this.ea(28,5);this.b-=5}function tf(){this.G&4||this.D.$();this.G|=4;this.u[7]=this.u[7]+-2&65535;this.b-=3}function uf(a){R(this,a,Qd(this,a),we);this.b-=this.g?9:3+(7==this.f?2:0)}function V(a){var b;if(b=this.i)b=this.i,C(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function bd(a){vf[a>>12].call(this,a)}function wf(a){xf[a>>6&3].call(this,a)}function yf(a){zf[a>>6&3].call(this,a)} +function Af(a){Bf[a>>6&3].call(this,a)}function Cf(a){Df[a&15].call(this,a)}function Ef(a){Ff[a&15].call(this,a)}function Gf(a){Hf[a>>6&3].call(this,a)}function If(a){Jf[a>>6&3].call(this,a)}function Kf(a){Lf[a>>6&3].call(this,a)} +var vf=[function(a){Mf[a>>8&15].call(this,a)},gf,We,Ge,Ce,Ee,xe,V,function(a){fg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,qf,V],Mf=[function(a){gg[a>>4&15].call(this,a)},Te,Qe,Ie,Je,Oe,Ke,Me,ef,ef,wf,yf,Af,V,V,V],xf=[function(a){Cd(this,Vd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,he);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,le);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,je);this.b-=this.g?9:3+(7==this.f?2:0)}],zf=[function(a){R(this,a,0, ne);this.b-=this.g?11:6},function(a){R(this,a,fd(this)?1:0,Yd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,fd(this)?1:0,te);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Td(this,a);Cd(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Bf=[function(a){R(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,pe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,$d);this.b-=this.g?9:3+(7==this.f?2:0)}], -gg=[function(a){hg[a&15].call(this,a)},V,V,V,cf,cf,cf,cf,of,V,Cf,Ef,rf,rf,rf,rf],hg=[$e,tf,nf,Se,af,mf,V,V,V,V,V,V,V,V,V,V],Df=[lf,function(){this.N=0;this.b-=5},function(){this.O=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.S=0;this.b-=5},T,T,T,T,T,T,T],Ff=[lf,function(){this.N=65536;this.b-=5},function(){this.O=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.S=32768;this.b-=5},W,W,W,W,W,W,W],fg=[Re,Pe,Le,Ne,Ue,Ve,Ae,Be,Ze,sf,Gf,If,cg,V,V,V],Hf=[function(a){Cd(this, +gg=[function(a){hg[a&15].call(this,a)},V,V,V,cf,cf,cf,cf,of,V,Cf,Ef,rf,rf,rf,rf],hg=[$e,tf,nf,Se,af,mf,V,V,V,V,V,V,V,V,V,V],Df=[lf,function(){this.N=0;this.b-=5},function(){this.O=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.S=0;this.b-=5},T,T,T,T,T,T,T],Ff=[lf,function(){this.N=65536;this.b-=5},function(){this.O=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.S=32768;this.b-=5},W,W,W,W,W,W,W],fg=[Re,Pe,Le,Ne,Ue,Ve,Ae,Be,Ze,sf,Gf,If,Kf,V,V,V],Hf=[function(a){Cd(this, Ud(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,ke);this.b-=this.g?9:3+(7==this.f?2:0)}],Jf=[function(a){Q(this,a,0,oe);this.b-=this.g?11:6},function(a){Q(this,a,fd(this)?1:0,Zd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,fd(this)?1:0,ue);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Sd(this,a);Cd(this,a<<8);this.b-=this.g?4:3+(7== -this.f?2:0)}],dg=[function(a){Q(this,a,0,se);this.b-=this.g?9+(this.Xa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,qe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ce);this.b-=this.g?9+(this.Xa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,ae);this.b-=this.g?9:3+(7==this.f?2:0)}];function cd(a){ig[a>>12].call(this,a)} +this.f?2:0)}],Lf=[function(a){Q(this,a,0,se);this.b-=this.g?9+(this.Xa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,qe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ce);this.b-=this.g?9+(this.Xa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,ae);this.b-=this.g?9:3+(7==this.f?2:0)}];function cd(a){ig[a>>12].call(this,a)} var ig=[function(a){jg[a>>8&15].call(this,a)},gf,We,Ge,Ce,Ee,xe,function(a){kg[a>>8&15].call(this,a)},function(a){lg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,qf,V],jg=[function(a){mg[a>>4&15].call(this,a)},Te,Qe,Ie,Je,Oe,Ke,Me,ef,ef,wf,yf,Af,function(a){ng[a>>6&3].call(this,a)},V,V],ng=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.ta(a|this.M);O(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Nd(this,a,0);Gd(this,a);P(this,a);this.b-=11},function(a){var b=Id(this),c= -this.b;Od(this,a,0,b);P(this,b);this.b=c-jf[this.g]},function(a){P(this,Vd(this,a,this.Da?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],mg=[function(a){og[a&15].call(this,a)},V,V,V,cf,cf,cf,cf,of,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.F|=1),this.b-=5):V.call(this,a)},Cf,Ef,rf,rf,rf,rf],og=[$e,tf,nf,Se,af,mf,function(){Hd(this);this.b-=13},V,V,V,V,V,V,V,V,V],kg=[kf,kf,Ye,Ye,ye,ye,ze,ze,uf,uf,V,V,V,V,pf,pf],lg=[Re,Pe,Le,Ne,Ue,Ve,Ae,Be,Ze,sf,Gf,If,cg,function(a){pg[a>>6&3].call(this, +this.b;Od(this,a,0,b);P(this,b);this.b=c-jf[this.g]},function(a){P(this,Vd(this,a,this.Da?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],mg=[function(a){og[a&15].call(this,a)},V,V,V,cf,cf,cf,cf,of,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.G|=1),this.b-=5):V.call(this,a)},Cf,Ef,rf,rf,rf,rf],og=[$e,tf,nf,Se,af,mf,function(){Hd(this);this.b-=13},V,V,V,V,V,V,V,V,V],kg=[kf,kf,Ye,Ye,ye,ye,ze,ze,uf,uf,V,V,V,V,pf,pf],lg=[Re,Pe,Le,Ne,Ue,Ve,Ae,Be,Ze,sf,Gf,If,Kf,function(a){pg[a>>6&3].call(this, a)},V,V],pg=[V,function(a){a=Nd(this,a,65536);Gd(this,a);P(this,a);this.b-=11},function(a){var b=Id(this),c=this.b;Od(this,a,65536,b);P(this,b);this.b=c-jf[this.g]},V]; -function qg(a){r.call(this,"ROM",a,qg);this.ka=this.f=null;this.D=a.addr;this.g=a.size;this.A=a.alias;this.C=a.file;this.G=oa(this.C);if(this.C){a=this.C;var b=pa(this.G);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.C+"&format=bytes&decimal=true");var c=this;Ba(a,null,!0,function(a,b,f){f?c.ga("Unable to load ROM resource (error "+f+": "+a+")"):(jb(c.Ra,a,b),(a=Ca(a,b))?(c.f=a.ja,c.ka=a.ka):c.C=null,rg(c))})}}u(qg);qg.prototype.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;rg(this)}; -qg.prototype.Aa=function(){if(this.ka){if(this.i){var a=this.i,b=this.id,c=this.D,d=this.g,e=this.ka,f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var m=k.o,p=k.a;if(void 0!==m){var q=f,m=[m>>>0,g],v=ya(q,m,a.Vb);0>v&&q.splice(-(v+1),0,m)}p&&(k.a=p.replace(/''/g,'"'))}a.G.push({Ud:b,B:c,vc:d,ka:e,Ub:f})}delete this.ka}return!0};qg.prototype.za=function(){return!0}; -function rg(a){if(!pb(a)){if(a.C){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if(a.f.length!=a.g)rb(a,"ROM size ("+l(a.f.length,8,!0)+") does not match specified size ("+l(a.g,8,!0)+")");else{var b;b=a.D;if(Yb(a.w,b,a.g,Cc)){var c;for(c=0;c>>0,g],v=ya(q,m,a.Vb);0>v&&q.splice(-(v+1),0,m)}p&&(k.a=p.replace(/''/g,'"'))}a.F.push({Ud:b,C:c,vc:d,ka:e,Ub:f})}delete this.ka}return!0};qg.prototype.za=function(){return!0}; +function rg(a){if(!pb(a)){if(a.D){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if(a.f.length!=a.g)rb(a,"ROM size ("+l(a.f.length,8,!0)+") does not match specified size ("+l(a.g,8,!0)+")");else{var b;b=a.B;if(Yb(a.w,b,a.g,Cc)){var c;for(c=0;c=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=va(b[0]);if(c!=this.Wa)return;b=va(b[1]);if(this.J=lb(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.K=d.receiveData){this.status(this.Ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.Aa=function(a,b){if(!b)if(this.cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -h.za=function(a){return a?this.save():!0};h.reset=function(){xg(this)};h.save=function(){var a=new N(this);a.set(0,[]);return a.data()};h.restore=function(){return xg(this)};function xg(a){a.R=0;a.f=0;a.g=128;a.D=[];return!0}h.Ob=function(a){if("number"==typeof a)this.D.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.T||8,c=a-this.H%a,this.T&&(b=ua("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.A.value+=b;this.A.scrollTop=this.A.scrollHeight;this.H+=c}else if(null!=this.G){if(10==a||1024<=this.G.length)this.j(this.G), -this.G="";10!=a&&(this.G+=String.fromCharCode(a))}this.g&=-129;rc(this.b,this.V,1)}};var yg={},wg=(yg[65392]=[null,null,X.prototype.Sc,X.prototype.Ed,"RCSR"],yg[65394]=[null,null,X.prototype.Rc,X.prototype.Dd,"RBUF"],yg[65396]=[null,null,X.prototype.ed,X.prototype.Rd,"XCSR"],yg[65398]=[null,null,X.prototype.dd,X.prototype.Qd,"XBUF"],yg);Ta(function(){for(var a=B(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.I[b]=c,!0;case "loadTape":return this.I[b]=c,c.onclick=function(){var a=d.I.listTapes;a&&zg(d, -a.options[a.selectedIndex].text,a.value)},!0;case "mountTape":if(this.H)return this.I[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;zg(d,oa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; -h.Ca=function(a,b,c,d){this.C=a;this.w=b;this.b=c;this.i=d;if((this.f=Pc(this.C,"autoMount")||this.f)&&"string"==typeof this.f)try{this.f=eval("("+this.f+")")}catch(e){n("PC11 auto-mount error: "+e.message+" ("+this.f+")"),this.f=null}mc(b,this,Ag);Bg(this,"None","",!0);this.H&&Bg(this,"Local Tape","?");Bg(this,"Remote Tape","??");Cg(this)||H(this)};h.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.za=function(a){return a?this.save():!0}; -h.reset=function(){this.g&=-2241;this.J=0};function Cg(a){a.D=0;if(a.f){var b=a.f.path,c;if(!(c=a.f.name))a:{if((c=a.I.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(d=pa(c),e="json"==d||"gz"==d?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(e,null,!0,function(d,e,f){a.v.Ia=!1;var g=0>f&&a.C&&!a.C.v.ha;f?a.ga('Unable to load tape "'+b+'" (error '+f+": "+d+")",g):(jb(a.Ra,d,e),Ca(d,e)&&(a.A=c));a.G&&(a.G=!1,--a.D||H(a));if((d=a.I.listTapes)&& -d.options){e=a.v.local?"?":a.A;for(f=0;f=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Gg.prototype.$b=function(){return-1};Gg.prototype.ac=function(){}; -function Ig(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.U?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} -function Jg(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; +h.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;var e=this;this.aa=sc(48,4);this.U=pc(this.b,function(){e.f&128||!e.B.length||(e.R=e.B.shift(),e.f|=128,e.f&64&&qc(e.b,e.aa))});this.ba=sc(52,4);this.V=pc(this.b,function(){e.g|=128;e.g&64&&qc(e.b,e.ba)});mc(b,this,wg);H(this)}; +h.cc=function(){if(!this.J){var a=Pc(this.D,"connection");if(a){var b=a.split("->");if(2==b.length){var c=va(b[0]);if(c!=this.Wa)return;b=va(b[1]);if(this.J=lb(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.K=d.receiveData){this.status(this.Ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.Aa=function(a,b){if(!b)if(this.cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; +h.za=function(a){return a?this.save():!0};h.reset=function(){xg(this)};h.save=function(){var a=new N(this);a.set(0,[]);return a.data()};h.restore=function(){return xg(this)};function xg(a){a.R=0;a.f=0;a.g=128;a.B=[];return!0}h.Ob=function(a){if("number"==typeof a)this.B.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.T||8,c=a-this.H%a,this.T&&(b=ua("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.A.value+=b;this.A.scrollTop=this.A.scrollHeight;this.H+=c}else if(null!=this.F){if(10==a||1024<=this.F.length)this.j(this.F), +this.F="";10!=a&&(this.F+=String.fromCharCode(a))}this.g&=-129;rc(this.b,this.V,1)}};var yg={},wg=(yg[65392]=[null,null,X.prototype.Sc,X.prototype.Ed,"RCSR"],yg[65394]=[null,null,X.prototype.Rc,X.prototype.Dd,"RBUF"],yg[65396]=[null,null,X.prototype.ed,X.prototype.Rd,"XCSR"],yg[65398]=[null,null,X.prototype.dd,X.prototype.Qd,"XBUF"],yg);Ta(function(){for(var a=B(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.I[b]=c,!0;case "loadTape":return this.I[b]=c,c.onclick=function(){var a=d.I.listTapes;a&&Ag(d, +a.options[a.selectedIndex].text,a.value)},!0;case "mountTape":if(this.H)return this.I[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ag(d,oa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; +h.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;if((this.f=Pc(this.D,"autoMount")||this.f)&&"string"==typeof this.f)try{this.f=eval("("+this.f+")")}catch(e){n("PC11 auto-mount error: "+e.message+" ("+this.f+")"),this.f=null}mc(b,this,Bg);Cg(this,"None","",!0);this.H&&Cg(this,"Local Tape","?");Cg(this,"Remote Tape","??");Dg(this)||H(this)};h.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.za=function(a){return a?this.save():!0}; +h.reset=function(){this.g&=-2241;this.J=0};function Dg(a){a.A=0;if(a.f){var b=a.f.path,c;if(!(c=a.f.name))a:{if((c=a.I.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(d=pa(c),e="json"==d||"gz"==d?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(e,null,!0,function(d,e,f){var g=0>f&&a.D&&!a.D.v.ha;f?a.ga('Unable to load tape "'+b+'" (error '+f+": "+d+")",g):(jb(a.Ra,d,e),Ca(d,e)&&(a.B=c));a.v.Ia=!1;a.A&&(a.A--,a.A|| +H(a));Hg(a)})}function Cg(a,b,c,d){if((a=a.I.listTapes)&&a.options){for(var e=0;e=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Jg.prototype.$b=function(){return-1};Jg.prototype.ac=function(){}; +function Lg(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.U?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} +function Mg(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} -function Kg(a,b,c){var d;if(b){b=Lg(a,b);for(var e=0,f=!1,g=b,k=[],m=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Og(a,b){if(b)return Ng(a,b,a.aa[b]);var c=0;for(b in a.aa)Ng(a,b,a.aa[b]),c++;return 0>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Rg(a,b){if(b)return Qg(a,b,a.aa[b]);var c=0;for(b in a.aa)Qg(a,b,a.aa[b]),c++;return 0this.b.ab?Xg:[];Yg(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(Zg(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ia;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<this.b.ab?$g:[];ah(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(bh(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ia;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}h.ac=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; -h.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.tb).B));this.la&1073741824?this.wa.push(a):this.ra&&a==this.ra||(this.ra=a,this.la&-2147483648&&(this.da(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.oa=0,a.C.$()))}; -function Rg(a){var b;if(Wd(a)){if(!a.J||!a.J.length){a.J=Array(1E3);for(b=0;b>>d.ia],!1)}a.M=["br"];if(a.D)for(b=1;b>>d.ia],!0);a.D=["bw"];a.Xa=0} -h.Sa=function(a,b,c){var d=!0;c||ih(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.B)),d=!1;else{var f=this.w;f.W[e>>>f.ia].Sa(e&f.w,a==this.D)}}d&&(a.push(b),c?b.Ba=!0:(jh(this,a,a.length-1,"set"),Rg(this)));return d};function ih(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ia],b==a.D));k.Ba||Rg(a);break}}return f} -function kh(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.B-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= -dh(E);break;case 8:y="@"+dh(E);break;case 16:7>E?y="("+dh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+dh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+dh(E)+")";break;case 40:y="@-("+dh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+dh(E)+")";7==E&&(y=[y,J(x,F+w.B&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+dh(E)+")",7==E&&(y=[y,J(x,F+w.B&65535)])}x=y;if(!x||!x.length){k="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=dh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function ph(a){var b,c="";for(b=0;6>b;b++)c+=oh(a,b);c=c+"\n"+(oh(a,6)+oh(a,7)+oh(a,20));return c+=nh(a,"T")+nh(a,"N")+nh(a,"Z")+nh(a,"V")+nh(a,"C")}h.Vb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,k=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.C.$();a.j("updated registers:")}a.j(ph(a));c&&(a.K=Z(d.u[7]),gh(a,J(a,a.K.B)))}}function uh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1k[0].indexOf("+"))){var p=k[0]+":";k[2]&&(p+=" "+k[2]);a.j(p)}k[3]&&(g=k[3],f=null);f=mh(a,b,g,f);a.j(f);a.K=b;e-=b.B-m;c++}}} -function lh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.U&&(a.j("ended assemble at "+J(a,a.T.B)),a.K=a.T,a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ra=null;if(pb(a)&&0q||"z"ja.length&&(a.j("note: only "+ja.length+" available"),Y=ja.length);ca-=Y;0>ca&&(null==ja[ja.length-1].B?(Y=ca+Y,ca=0):ca+=ja.length);var jd=[];"call"==Pf&&(vb=1E5,jd=["CALL"]);for(void 0!==Of&&a.j(Y+" instructions earlier:");0=ja.length&&(ca=0);a.Ya=Y;Rf++;vb--}}Rf||(a.j("no "+Qf+"history available"),a.Ya=void 0)}else{var xb=Zg(a,ia);if(xb){var ec=0;Fa&&("l"==Fa.charAt(0)&&(Fa=Fa.substr(1)||Oh),ec=Mg(a,Fa)>>>0,65536>4||1;Qh--&&0hc?String.fromCharCode(hc):".";fc--}yb&&(yb+="\n");yb+=ia+" "+kd+(0==Ab?" "+Uf:"")}yb&&a.j(yb);a.Qa=xb}}}}break;case "e":if("else"==g[0])break;var bb,md,nd,od,pd=g[0],qd=g[1];"eb"==pd?(bb=1,md=255,nd=a.ob,od=a.Fb):"e"==pd||"ew"==pd?(bb=2,md=65535,nd=a.na,od=a.Va):qd=null;if(null==qd)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var ic=Zg(a,qd);if(ic)for(var jc=2;jc< -g.length;jc++){var Bb=Kg(a,g[jc]);if(void 0===Bb){a.j("unrecognized value: "+g[jc]);break}Bb&~md&&a.j("warning: "+l(Bb)+" exceeds "+bb+"-byte value");var Rh=nd.call(a,ic);a.j("changing "+J(a,ic.B)+" from "+J(a,Rh,bb)+" to "+J(a,Bb,bb));od.call(a,ic,Bb,bb)}}break;case "g":a:{var Vf=g[1],Sh=b;if(void 0!==Vf){var rd=Zg(a,Vf,!0);if(!rd)break a;ch(a,rd,Sh);a.Sa(a.f,rd,!0)}a.ib(!0,c)}break;case "h":a.v.ca?(c||a.j("halting"),a.da()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var sd; -var Cb=b.substr(2),Cb=va(Cb);Kg(a,Cb)?(c||a.j("true: "+Cb),sd=!0):(c||a.j("false: "+Cb),sd=!1);sd||(d=!1);break}f=!0;break;case "k":var Th=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var td=0,ud=Z(),Db=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Db.B));10>td;){for(var Ga=null,Uh=256;65536>Db.B>>>0;){ud.B=a.na(Db,2);if(null==Db.B||!Uh--)break;if(!(ud.B&1)){for(var Vh=a,kc=ud,Wf=null,Eb=kc.B,Xf=Eb,vd=1;6>=vd&&Eb;vd++){if(2< -vd){kc.B=Eb;var lc=mh(Vh,kc);if(0<=lc.indexOf("JSR")){var Yf=lc.indexOf(" ");if(Eb+(lc.indexOf(" ",Yf+1)-Yf-1)/2==Xf){Wf=lc;break}}}Eb-=2}kc.B=Xf;if(Ga=Wf)break}}if(!Ga||null==Ga)break;var Zf=null;if("ks"==Th){var $f=Ga.match(/[0-9A-F]+$/);$f&&(Zf=th(a,$f[0]))}Ga=ua(Ga,50)+" ;"+(Zf||"stack="+J(a,Db.B));a.j(Ga);td++}td||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){th(a,g[1],!0);break}f=!0;break;case "m":a:{var ka,la=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== -G)xa=1878917119,G=null;else if("on"==G)la=!0,G=null;else if("off"==G)la=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(ka in tb)if(G==ka){xa=tb[ka];la=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,la=!0;else if("off"==g[2]&&(a.la&=~xa,la=!1,1073741824==xa)){for(var wd=0;wdd&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}h.ac=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; +h.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.tb).C));this.la&1073741824?this.wa.push(a):this.ra&&a==this.ra||(this.ra=a,this.la&-2147483648&&(this.da(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.oa=0,a.D.$()))}; +function Ug(a){var b;if(Wd(a)){if(!a.J||!a.J.length){a.J=Array(1E3);for(b=0;b>>d.ia],!1)}a.M=["br"];if(a.B)for(b=1;b>>d.ia],!0);a.B=["bw"];a.Xa=0} +h.Sa=function(a,b,c){var d=!0;c||lh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.C)),d=!1;else{var f=this.w;f.W[e>>>f.ia].Sa(e&f.w,a==this.B)}}d&&(a.push(b),c?b.Ba=!0:(mh(this,a,a.length-1,"set"),Ug(this)));return d};function lh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ia],b==a.B));k.Ba||Ug(a);break}}return f} +function nh(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.C-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= +gh(E);break;case 8:y="@"+gh(E);break;case 16:7>E?y="("+gh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+gh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+gh(E)+")";break;case 40:y="@-("+gh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+gh(E)+")";7==E&&(y=[y,J(x,F+w.C&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+gh(E)+")",7==E&&(y=[y,J(x,F+w.C&65535)])}x=y;if(!x||!x.length){k="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=gh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function sh(a){var b,c="";for(b=0;6>b;b++)c+=rh(a,b);c=c+"\n"+(rh(a,6)+rh(a,7)+rh(a,20));return c+=qh(a,"T")+qh(a,"N")+qh(a,"Z")+qh(a,"V")+qh(a,"C")}h.Vb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,k=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.D.$();a.j("updated registers:")}a.j(sh(a));c&&(a.K=Z(d.u[7]),jh(a,J(a,a.K.C)))}}function xh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1k[0].indexOf("+"))){var p=k[0]+":";k[2]&&(p+=" "+k[2]);a.j(p)}k[3]&&(g=k[3],f=null);f=ph(a,b,g,f);a.j(f);a.K=b;e-=b.C-m;c++}}} +function oh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.U&&(a.j("ended assemble at "+J(a,a.T.C)),a.K=a.T,a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ra=null;if(pb(a)&&0q||"z"ja.length&&(a.j("note: only "+ja.length+" available"),Y=ja.length);ca-=Y;0>ca&&(null==ja[ja.length-1].C?(Y=ca+Y,ca=0):ca+=ja.length);var kd=[];"call"==Sf&&(vb=1E5,kd=["CALL"]);for(void 0!==Rf&&a.j(Y+" instructions earlier:");0=ja.length&&(ca=0);a.Ya=Y;Uf++;vb--}}Uf||(a.j("no "+Tf+"history available"),a.Ya=void 0)}else{var xb=bh(a,ia);if(xb){var ec=0;Fa&&("l"==Fa.charAt(0)&&(Fa=Fa.substr(1)||Rh),ec=Pg(a,Fa)>>>0,65536>4||1;Th--&&0hc?String.fromCharCode(hc):".";fc--}yb&&(yb+="\n");yb+=ia+" "+ld+(0==Ab?" "+Xf:"")}yb&&a.j(yb);a.Qa=xb}}}}break;case "e":if("else"==g[0])break;var bb,nd,od,pd,qd=g[0],rd=g[1];"eb"==qd?(bb=1,nd=255,od=a.ob,pd=a.Fb):"e"==qd||"ew"==qd?(bb=2,nd=65535,od=a.na,pd=a.Va):rd=null;if(null==rd)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var ic=bh(a,rd);if(ic)for(var jc=2;jc< +g.length;jc++){var Bb=Ng(a,g[jc]);if(void 0===Bb){a.j("unrecognized value: "+g[jc]);break}Bb&~nd&&a.j("warning: "+l(Bb)+" exceeds "+bb+"-byte value");var Uh=od.call(a,ic);a.j("changing "+J(a,ic.C)+" from "+J(a,Uh,bb)+" to "+J(a,Bb,bb));pd.call(a,ic,Bb,bb)}}break;case "g":a:{var Yf=g[1],Vh=b;if(void 0!==Yf){var sd=bh(a,Yf,!0);if(!sd)break a;fh(a,sd,Vh);a.Sa(a.f,sd,!0)}a.ib(!0,c)}break;case "h":a.v.ca?(c||a.j("halting"),a.da()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var td; +var Cb=b.substr(2),Cb=va(Cb);Ng(a,Cb)?(c||a.j("true: "+Cb),td=!0):(c||a.j("false: "+Cb),td=!1);td||(d=!1);break}f=!0;break;case "k":var Wh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var ud=0,vd=Z(),Db=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Db.C));10>ud;){for(var Ga=null,Xh=256;65536>Db.C>>>0;){vd.C=a.na(Db,2);if(null==Db.C||!Xh--)break;if(!(vd.C&1)){for(var Yh=a,kc=vd,Zf=null,Eb=kc.C,$f=Eb,wd=1;6>=wd&&Eb;wd++){if(2< +wd){kc.C=Eb;var lc=ph(Yh,kc);if(0<=lc.indexOf("JSR")){var ag=lc.indexOf(" ");if(Eb+(lc.indexOf(" ",ag+1)-ag-1)/2==$f){Zf=lc;break}}}Eb-=2}kc.C=$f;if(Ga=Zf)break}}if(!Ga||null==Ga)break;var bg=null;if("ks"==Wh){var cg=Ga.match(/[0-9A-F]+$/);cg&&(bg=wh(a,cg[0]))}Ga=ua(Ga,50)+" ;"+(bg||"stack="+J(a,Db.C));a.j(Ga);ud++}ud||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){wh(a,g[1],!0);break}f=!0;break;case "m":a:{var ka,la=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== +G)xa=1878917119,G=null;else if("on"==G)la=!0,G=null;else if("off"==G)la=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(ka in tb)if(G==ka){xa=tb[ka];la=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,la=!0;else if("off"==g[2]&&(a.la&=~xa,la=!1,1073741824==xa)){for(var xd=0;xd\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bzh){if(Bh(d,this.J)){this.D=new N(this,"1.30.1","failsafe");Bh(this.D)&&(Gh(this,d),a=2,Hh(this.D));this.D.set("timestamp",Aa());Ih(this.D);var e=this.f&&!this.G;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Fh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Bh(d,g):("error"== -f&&"no machine state"!=g?(this.ga("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Hh(d),Bh(d)?(c=Fh(d),e=!0):c=!1))}e&&Eh(this,c?d:null)}else 2==a&&d.clear()}else Eh(this);delete this.J;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ha=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(Jh(this,this.b,b,c,a),this.b.mb());this.T&&(Gh(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.C=0}; -function Gh(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} -function wh(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),k=Aa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.da(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ha=!1,!1===d&&(e=null)));for(var k=kb(a.id),m=0;m\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bCh){if(Eh(d,this.J)){this.B=new N(this,"1.30.1","failsafe");Eh(this.B)&&(Jh(this,d),a=2,Kh(this.B));this.B.set("timestamp",Aa());Lh(this.B);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ih(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Eh(d,g):("error"== +f&&"no machine state"!=g?(this.ga("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Kh(d),Eh(d)?(c=Ih(d),e=!0):c=!1))}e&&Hh(this,c?d:null)}else 2==a&&d.clear()}else Hh(this);delete this.J;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ha=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(Mh(this,this.b,b,c,a),this.b.mb());this.T&&(Jh(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.D=0}; +function Jh(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} +function zh(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),k=Aa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.da(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ha=!1,!1===d&&(e=null)));for(var k=kb(a.id),m=0;mf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=k[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);k[0]!=m&&(g=g.replace(k[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],g);ai(a,b,c)}})}else c(a,null)} -function bi(a,b,c,d){function e(a){if(void 0===k){var b=g&&B(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Nh||Va(!0));m=!1}var g,k,m=!0;Nh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,k){k?Zh(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=k.transformNode(m))?(g.outerHTML=m,--Nh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Nh||Va(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Zh(b,a,d,!0,e,p):$h(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return bi(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map +h.qa=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.D||(d.v.ha?zh(d,!1,!0):Gh(d,d.sb))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.v.ha&&!d.D)if(d.f&&!d.H){var a=Da("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");zh(d,a,!0);!a&&d.R?window&&window.location.reload():d.sb(Ch)}else d.reset(),d.b&&d.b.mb()},!0;case "save":if(qa())c.parentNode.removeChild(c);else return this.I[b]= +c,c.onclick=function(){var a=Dh(d,!0);if(a){var b=!!(d.f&&!d.H||d.R),c=zh(d,b);b?Nh(d,a,c):d.ga("Resume disabled, machine state not saved")}},!0}return!1}; +function Dh(a,b){var c=a.g;c||((c=Ja("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Oh(a,c))||a.ga("The user ID is invalid.")):b&&a.ga("Browser local storage is not available"));return c} +function Oh(a,b){a.g=null;b=Ba(ra()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ka("user",b.data),a.g=b.data)}catch(d){n(d.message+" ("+c+")")}return a.g}function Fh(a){var b=null;a.g&&(b=ra()+"/api/v1/user?req=load&user="+a.g+"&state="+Ph(a,"1.30.1"));return b} +function Nh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Ph(a,"1.30.1");d.data=c;b=Ba(ra()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=k[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);k[0]!=m&&(g=g.replace(k[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],g);di(a,b,c)}})}else c(a,null)} +function ei(a,b,c,d){function e(a){if(void 0===k){var b=g&&B(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Qh||Va(!0));m=!1}var g,k,m=!0;Qh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,k){k?bi(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=k.transformNode(m))?(g.outerHTML=m,--Qh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Qh||Va(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?bi(b,a,d,!0,e,p):ci(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return ei(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map diff --git a/versions/pdpjs/1.30.1/pdp11.js b/versions/pdpjs/1.30.1/pdp11.js index b5739031e9..5a3c81586e 100644 --- a/versions/pdpjs/1.30.1/pdp11.js +++ b/versions/pdpjs/1.30.1/pdp11.js @@ -40,26 +40,26 @@ d.M[f++]=e[c]>>8&255,d.M[f++]=e[c]>>16&255,d.M[f++]=e[c]>>24&255;else d.M=k;d.Y= function na(){return"http://"+(window?window.location.host:"www.pcjs.org")}function m(a){window&&window.alert(a)}function va(a){var b=!1;window&&(b=window.confirm(a));return b}var wa=null;function xa(){if(null==wa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}wa=a}return wa} function ya(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function za(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Aa(a){if(window){var b=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 p={init:[],show:[],exit:[]},Ba=!1,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 q(a){p.init.push(a)}function Fa(a){if(Da)try{for(var b=0;bb?this.Ha=this.id:(this.ra=this.id.substr(0,b),this.Ha=this.id.substr(b+1));this[a]=c;this.h={ready:!1,Wa:!1,gd:!1,L:!1,error:!1};this.Ra=null;this.h.error=!1;this.s={};this.G=null;v.push(this)}var Ia=void 0,Ja={}; +Ea(Aa("Opera")||Aa("iOS")?"onunload":"onbeforeunload",function(){Fa(p.exit)});function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.pb=b.comment;this.Hb=b;b=this.id.indexOf(".");0>b?this.Ha=this.id:(this.ra=this.id.substr(0,b),this.Ha=this.id.substr(b+1));this[a]=c;this.i={ready:!1,Wa:!1,gd:!1,L:!1,error:!1};this.Ra=null;this.i.error=!1;this.s={};this.G=null;v.push(this)}var Ia=void 0,Ja={}; if(window){Ia||(Ia=window.location.search.substr(1));for(var Ka,La=/\+/g,Ma=/([^&=]+)=?([^&]*)/g;Ka=Ma.exec(Ia);)Ja[decodeURIComponent(Ka[1].replace(La," "))]=decodeURIComponent(Ka[2].replace(La," "))}function Na(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} function w(a,b){b||(b=u);a.prototype=Na(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Oa=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Oa={},v=[];function Pa(a,b,c){Oa[a]&&b&&(Oa[a][b]=c)}function x(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>2;this.g=this.c-1;this.v=this.A/this.c|0;this.ka=[];this.S=0;this.o=[];this.Bb=[ab,bb,cb,db];a=new E(this);eb(a,this.G);this.b=Array(this.v);for(b=0;b>2;this.g=this.c-1;this.v=this.A/this.c|0;this.ka=[];this.S=0;this.o=[];this.Bb=[ab,bb,cb,db];a=new E(this);eb(a,this.G);this.b=Array(this.v);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.ka[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);return 0<=c?c:c=gb(d,b)}function bb(a,b,c){var d=!1,e=this.controller,f=e.ka[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.ka[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d||gb(e,c)} function cb(a,b){var c=-1,d=this.controller;(a=d.ka[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));return 0<=c?c:c=gb(d,b)}function db(a,b,c){var d=!1,e=this.controller;if(a=e.ka[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d||gb(e,c)}function hb(a,b){if(b!=a.j){var c;a.j&&(c=(1<>>a.m;0k&&(t=k);if(!e&&n&&n.size){if(n.type==d){if(f+k<=n.Ca)return n.Ua+=n.Ca-f,n.Ca=f,!0;if(f>=n.Ca+n.Ua){t=n.size-(f-r);t>k&&(t=k);n.Ua=f-n.Ca+t;f=r+a.c;k-=t;l++;continue}}return mb(1,f,k)}f=new E(a,f,t,a.c,d,e);eb(f,a.G,n);a.b[l++]=f;f=r+a.c;k-=t}if(0>=k){c/=1024;var D;e="";D?10>>=a.m;0>>=a.m;0>>a.m].eb(b&a.g,b)}function pb(a,b){return a.b[(b&a.i)>>>a.m].T(b&a.g,b)}$a.prototype.Ta=function(a,b){this.S++;this.b[(a&this.i)>>>this.m].yb(a&this.g,b&255,a);this.S--}; -function qb(a,b,c){a.b[(b&a.i)>>>a.m].Va(b&a.g,c&65535,b)}function rb(a){for(var b=0,c=[],d=0;d>>=a.m;0>>=a.m;0>>a.m].eb(b&a.g,b)}function pb(a,b){return a.b[(b&a.h)>>>a.m].T(b&a.g,b)}$a.prototype.Ta=function(a,b){this.S++;this.b[(a&this.h)>>>this.m].yb(a&this.g,b&255,a);this.S--}; +function qb(a,b,c){a.b[(b&a.h)>>>a.m].Va(b&a.g,c&65535,b)}function rb(a){for(var b=0,c=[],d=0;da.a.Ga)){var k=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,n=f[2]?f[2].bind(b):null,r=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!k&&n&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&r&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(r)));sb(a,e,e,k,l,n,r,f[4])}}}function ub(a,b){a.o.push(b)}function vb(a,b){a.S||F(a.a,4,b)} function mb(a,b,c){m("Memory block error ("+a+": "+ja(b)+","+ja(c)+")");return!1}function G(a){u.call(this,"Device",a,G);this.c={data:0,fd:0,Sa:20,uc:0};this.b={hd:0,ib:-1}}w(G);g=G.prototype;g.ea=function(a,b,c,d){this.m=b;this.a=c;this.G=d;var e=this;this.b.ib=wb(c,function(){e.b.na|=128;e.b.na&64&&(xb(e.a,e.b.vc),yb(e.a,e.b.ib,1E3/60))});this.b.vc=zb(64,6);tb(b,this,H);ub(b,this.reset.bind(this));B(this)};g.reset=function(){this.c.Sa=this.c.Sa&-120|20;this.b.na=0}; g.Qb=function(){var a=this.b.na;this.b.na&=-129;return a};g.Ec=function(a){this.b.na=a;a&64&&yb(this.a,this.b.ib,1E3/60);this.b.na=a&-129};g.Jb=function(a){return(a?this.c.uc:this.c.data)&65535};g.xc=function(a){this.c.data=a};g.Sb=function(){var a=this.a;return a.A&62337|a.Ia<<5|a.Ja<<1};g.Gc=function(a){var b=this.a;a&=62337;if(b.A!=a){b.A=a;b.Ia=a>>5&3;b.Ja=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ea!=c&&(b.Ea=c,Ab(b))}Bb(this)}; @@ -85,26 +85,26 @@ var Hb=0,Ib=2,lb=4,nb=["NONE","RAM","ROM","VID","H/W"],Gb=0; E.prototype={constructor:E,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Ta)for(a=Array(this.size>>2),b=0;b>8,c)},N:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ba:function(a,b){a&1&&vb(this.m,b);b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},ha:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.la=!0},I:function(a,b){return this.J(a,b)}, S:function(a,b){return this.W(a,b)},da:function(a,b,c){this.g||this.yb(a,b,c)},ja:function(a,b,c){this.g||this.ra(a,b,c)},D:function(a){return this.c[a]},K:function(a){return this.c[a]},O:function(a,b){a&1&&vb(this.m,b);return this.s.getUint16(a,!0)},X:function(a,b){a&1&&vb(this.m,b);return this.o[a>>1]},ca:function(a,b){this.c[a]=b;this.la=!0},ga:function(a,b){this.c[a]=b;this.la=!0},ia:function(a,b,c){a&1&&vb(this.m,c);this.s.setUint16(a,b,!0);this.la=!0},sa:function(a,b,c){a&1&&vb(this.m,c);this.o[a>> -1]=b;this.la=!0}};function eb(a,b,c){a.G=b;a.i=a.j=0;c&&((a.i=c.i)&&Nb(a,Ob,!1),(a.j=c.j)&&Pb(a,Ob,!1))}function Pb(a,b,c){c&&a.j||(a.jb=!a.g&&b[1]||a.A,a.Va=!a.g&&b[3]||a.B);if(c||void 0===c)a.yb=b[1]||a.A,a.ra=b[3]||a.B}function Nb(a,b,c){c&&a.i||(a.eb=b[0]||a.v,a.T=b[2]||a.u);if(c||void 0===c)a.J=b[0]||a.v,a.W=b[2]||a.u}function Jb(a,b){b||(b=Qb);Nb(a,b,void 0);Pb(a,b,void 0)} +1]=b;this.la=!0}};function eb(a,b,c){a.G=b;a.h=a.j=0;c&&((a.h=c.h)&&Nb(a,Ob,!1),(a.j=c.j)&&Pb(a,Ob,!1))}function Pb(a,b,c){c&&a.j||(a.jb=!a.g&&b[1]||a.A,a.Va=!a.g&&b[3]||a.B);if(c||void 0===c)a.yb=b[1]||a.A,a.ra=b[3]||a.B}function Nb(a,b,c){c&&a.h||(a.eb=b[0]||a.v,a.T=b[2]||a.u);if(c||void 0===c)a.J=b[0]||a.v,a.W=b[2]||a.u}function Jb(a,b){b||(b=Qb);Nb(a,b,void 0);Pb(a,b,void 0)} var Qb=[],Mb=[E.prototype.N,E.prototype.ha,E.prototype.ba,E.prototype.ta],Ob=[E.prototype.I,E.prototype.da,E.prototype.S,E.prototype.ja];if(Ta)var Lb=[E.prototype.D,E.prototype.ca,E.prototype.O,E.prototype.ia],Kb=[E.prototype.K,E.prototype.ga,E.prototype.X,E.prototype.sa]; -function Rb(a,b){u.call(this,"CPU",a,Rb);var c=a.multiplier||1;this.Pa=a.cycles||b;this.da=c;this.Za=Math.round(this.Pa/1E4)/100;this.ga=this.Za*this.da;this.h.U=!1;this.h.wb=!1;this.h.Da=a.autoStart;this.h.Oa=!1;this.Ma=this.ia=0;this.Na=a.csStart;this.sa=a.csInterval;this.ta=a.csStop;this.I=[];this.sb=this.tc.bind(this);B(this)}w(Rb);var Sb=["power","reset"];g=Rb.prototype; -g.ea=function(a,b,c,d){this.v=a;this.m=b;this.G=d;for(b=0;ba.ba/a.ga&&(b=1),a.da=b,b=a.Za*a.da,a.ga!=b)){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var c=a.s.setSpeed;c&&(c.textContent=b);a.P("target speed: "+b)}a.K+=a.W;a.W=0;a.O=sa();a.ca=0;Yb(a)}function wb(a,b){var c=a.I.length;a.I.push([-1,b]);return c}function yb(a,b,c){0<=b&&ba.I[b][0]&&(c=a.Pa*a.da/1E3*c|0,a.I[b][0]=c+$b(a))}function $b(a,b){var c=a.ha-=a.a;a.a=0;b&&(a.ha=0);return c} -g.tc=function(){if(this.h.U){this.ab>=this.Pa&&Yb(this,!0);this.Ba=0;this.La=sa();if(this.ca){var a=this.La-this.ca;a>this.qb&&(this.O+=a,this.O>this.La&&(this.O=this.La))}try{do{for(var b,c=this.h.Oa?1:this.Qa,d=this.I.length-1;0<=d;d--){var e=this.I[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.xb(b)}catch(n){if("number"!=typeof n)throw n;}b=$b(this,!0);this.Ba+=b;this.W+=b;a=b;if(this.h.Oa){var f=!1;this.Ma=this.Ma+this.mb()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.sa,f=!0);0<=this.ta&&this.ta<=Zb(this)&& -(this.sa=this.ta=-1,Vb(this),Xa(this),f=!0);f&&this.P(Zb(this)+" cycles: checksum="+ja(this.Ma))}for(var a=b,k=this.I.length-1;0<=k;k--){var l=this.I[k];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.Aa-=b;if(0>=this.Aa){this.Aa+=this.Qa;15<=++this.rb&&(this.v&&this.v.fa(),this.rb=0);break}}while(this.h.U)}catch(n){Xa(this);this.v&&this.v.stop(sa(),Zb(this));b=n.stack||n.message;this.h.error=!0;this.H(b);return}if(this.h.U){b=setTimeout;c=this.sb;this.ca=sa();d=this.qb;this.Ba&&(d=Math.round(d* -this.Ba/this.Qa));d-=this.ca-this.La;if(e=this.ca-this.O)this.ba=Math.round(this.W/(10*e))/100,864E5<=e&&(this.K=0,Xb(this));if(0>d||this.bad&&(this.O-=d),d=0;this.ab+=this.Ba;this.ca+=d;b(c,d)}}};function Wb(a){var b;a.h.error?(a.P(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.U)a.P(a.toString()+" busy");else{Xb(a);a.h.U=!0;a.h.wb=!0;if(b=a.s.run)b.textContent="Halt";a.v&&a.v.start(a.O,Zb(a));setTimeout(a.sb,0)}}g.xb=function(){return 0}; -function Xa(a){if(a.h.U){$b(a);a.K+=a.W;a.W=0;a.h.U=!1;var b=a.s.run;b&&(b.textContent="Run");a.v&&a.v.stop(sa(),Zb(a))}a.h.complete=void 0}function ac(a){this.Ga=+a.model||1170;this.ob=a.addrReset||0;Rb.call(this,a,6666667);this.decode=1120==this.Ga?bc.bind(this):cc.bind(this);dc(this);this.S=0;this.X=null;this.h.complete=this.h.Cb=!1}w(ac,Rb);g=ac.prototype;g.reset=function(){this.status("model "+this.Ga);this.h.U&&Xa(this);dc(this);Ub(this);this.h.error=!1;this.parent.reset.call(this)}; -function dc(a){a.j=65536;a.g=32768;a.i=65535;a.o=32768;a.w=15;a.f=[0,0,0,0,0,0,0,a.ob];a.ua=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.u=0;a.Ja=0;a.Gb=[4,2,0,1];a.C=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.R=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +g.tc=function(){if(this.i.U){this.ab>=this.Pa&&Yb(this,!0);this.Ba=0;this.La=sa();if(this.ca){var a=this.La-this.ca;a>this.qb&&(this.O+=a,this.O>this.La&&(this.O=this.La))}try{do{for(var b,c=this.i.Oa?1:this.Qa,d=this.I.length-1;0<=d;d--){var e=this.I[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.xb(b)}catch(n){if("number"!=typeof n)throw n;}b=$b(this,!0);this.Ba+=b;this.W+=b;a=b;if(this.i.Oa){var f=!1;this.Ma=this.Ma+this.mb()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.sa,f=!0);0<=this.ta&&this.ta<=Zb(this)&& +(this.sa=this.ta=-1,Vb(this),Xa(this),f=!0);f&&this.P(Zb(this)+" cycles: checksum="+ja(this.Ma))}for(var a=b,k=this.I.length-1;0<=k;k--){var l=this.I[k];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.Aa-=b;if(0>=this.Aa){this.Aa+=this.Qa;15<=++this.rb&&(this.v&&this.v.fa(),this.rb=0);break}}while(this.i.U)}catch(n){Xa(this);this.v&&this.v.stop(sa(),Zb(this));b=n.stack||n.message;this.i.error=!0;this.H(b);return}if(this.i.U){b=setTimeout;c=this.sb;this.ca=sa();d=this.qb;this.Ba&&(d=Math.round(d* +this.Ba/this.Qa));d-=this.ca-this.La;if(e=this.ca-this.O)this.ba=Math.round(this.W/(10*e))/100,864E5<=e&&(this.K=0,Xb(this));if(0>d||this.bad&&(this.O-=d),d=0;this.ab+=this.Ba;this.ca+=d;b(c,d)}}};function Wb(a){var b;a.i.error?(a.P(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.U)a.P(a.toString()+" busy");else{Xb(a);a.i.U=!0;a.i.wb=!0;if(b=a.s.run)b.textContent="Halt";a.v&&a.v.start(a.O,Zb(a));setTimeout(a.sb,0)}}g.xb=function(){return 0}; +function Xa(a){if(a.i.U){$b(a);a.K+=a.W;a.W=0;a.i.U=!1;var b=a.s.run;b&&(b.textContent="Run");a.v&&a.v.stop(sa(),Zb(a))}a.i.complete=void 0}function ac(a){this.Ga=+a.model||1170;this.ob=a.addrReset||0;Rb.call(this,a,6666667);this.decode=1120==this.Ga?bc.bind(this):cc.bind(this);dc(this);this.S=0;this.X=null;this.i.complete=this.i.Cb=!1}w(ac,Rb);g=ac.prototype;g.reset=function(){this.status("model "+this.Ga);this.i.U&&Xa(this);dc(this);Ub(this);this.i.error=!1;this.parent.reset.call(this)}; +function dc(a){a.j=65536;a.g=32768;a.h=65535;a.o=32768;a.w=15;a.f=[0,0,0,0,0,0,0,a.ob];a.ua=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.u=0;a.Ja=0;a.Gb=[4,2,0,1];a.C=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.R=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.vb=[0,0,0,0,0,0,0,0];a.ub=0;a.l=0;a.B=a.D=0;a.c=a.b=a.Ya=0;a.ja=-1;ec(a)}function ec(a){a.qa=255;a.F=0;a.hb=0;a.A=0;a.oa=0;a.gb=0;a.pa=0;a.Ea=0;a.Ia=0;a.$a=262143;a.Ka=253952;a.l|=2;a.m&&Ab(a)}function Ab(a){a.Ea?(a.N=65536,a.J=a.Fb,a.T=a.qc,a.Va=a.cd,hb(a.m,a.pa&16?22:18)):(a.N=0,a.J=a.Eb,a.T=a.pc,a.Va=a.bd,hb(a.m,16))}g.mb=function(){return 0}; g.save=function(){var a=new K(this);a.set(0,[]);a.set(1,[this.K,this.da]);a.set(2,rb(this.m));return a.data()};g.restore=function(a){var b=a[1];this.K=b[1];Xb(this,b[3]);a:{b=this.m;a=a[2];var c;for(c=0;c>14&3;c=a.w>>14&3;a.u!=c&&(a.aa[c]=a.f[6],a.f[6]=a.aa[a.u]);a.w=b;a.l|=2}function N(a,b){a.l&128||(a.o=a.i=b,a.g=0)}function O(a,b,c){a.l&128||(a.o=a.i=a.j=b,a.g=c||0)}function gc(a,b,c,d){a.l&128||(a.o=a.i=a.j=b,a.g=(c^b)&(d^b))}function P(a,b){a.l&128||(a.o=a.i=a.j=b,a.g=a.o^a.j>>1)}function hc(a,b,c,d){a.l&128||(a.o=a.i=a.j=b,a.g=(c^d)&(d^b))} +g.ma=function(){return this.o&32768?8:0};function fc(a){var b=a.T(a.f[7]);a.f[7]=a.f[7]+2&65535;return b}function M(a,b){a.f[7]=b&65535}function zb(a,b){return{wc:a,va:b,next:null}}function xb(a,b){if(b!=a.X){var c=a.X;if(!c||c.va<=b.va)b.next=c,a.X=b;else{do{var d=c.next;if(!d||d.va<=b.va){b.next=d;c.next=b;break}c=d}while(c)}}a.l|=2}function Za(a){return a.w=a.w&63728|a.ma()|(a.h&65535?0:4)|(a.g&32768?2:0)|L(a)} +function Cb(a,b){a.o=b<<12;a.h=~b&4;a.g=b<<14;a.j=b<<16;if((b^a.w)&2048)for(var c=a.ua.length;0<=--c;){var d=a.f[c];a.f[c]=a.ua[c];a.ua[c]=d}a.u=b>>14&3;c=a.w>>14&3;a.u!=c&&(a.aa[c]=a.f[6],a.f[6]=a.aa[a.u]);a.w=b;a.l|=2}function N(a,b){a.l&128||(a.o=a.h=b,a.g=0)}function O(a,b,c){a.l&128||(a.o=a.h=a.j=b,a.g=c||0)}function gc(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^b)&(d^b))}function P(a,b){a.l&128||(a.o=a.h=a.j=b,a.g=a.o^a.j>>1)}function hc(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^d)&(d^b))} function F(a,b,c){if(!a.S){var d=!1;0>a.ja?a.ja=Za(a):a.u||(b=4,d=!0);a.A&57344||(a.oa=63222,a.gb=b);a.u=0;var e=a.T(b|a.N),f=a.T(b+2&65535|a.N);Cb(a,f&-12289|a.ja>>2&12288);d&&(a.F|=4,a.f[6]=4);ic(a,a.ja);ic(a,a.f[7]);M(a,e);a.l&=-113;a.ja=-1;if(26!=c)throw b;}}function jc(a){var b=kc(a),c=kc(a)&-1793;a.w&49152&&(c=c&-225|a.w&63712);M(a,b);Cb(a,c);a.l&=-17} function lc(a,b,c){var d,e,f,k=0;d=b>>13;a.pa&a.Gb[a.u]||(d&=7);e=a.C[a.u][d];f=(a.R[a.u][d]<<6)+(b&8191)&a.$a;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.pa&32&&(f=a.Ib[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Ka&&4186112>f&&(a.F|=32,F(a,4,12))}switch(e&7){case 1:k=4096;case 2:e|=128;c&4&&(k=8192);break;case 4:k=4096;case 5:c&4&&(k=4096);case 6:e|=c&4?192: -128;break;default:k=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(k|=16384):(b&8128)>(e>>2&8128)&&(k|=16384));a.C[a.u][d]=e;if(4194170!==f||a.u)a.Ia=a.u,a.Ja=d;k&&(k&57344&&(0<=a.ja&&(k|=128),a.A&57344||(a.A=a.A|k|a.Ia<<5|a.Ja<<1),F(a,168,16)),a.A&61440||!(4191360>f||4194239>>a.m].jb(b&a.g,c&255,b)}function kc(a){var b=a.T(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b} +128;break;default:k=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(k|=16384):(b&8128)>(e>>2&8128)&&(k|=16384));a.C[a.u][d]=e;if(4194170!==f||a.u)a.Ia=a.u,a.Ja=d;k&&(k&57344&&(0<=a.ja&&(k|=128),a.A&57344||(a.A=a.A|k|a.Ia<<5|a.Ja<<1),F(a,168,16)),a.A&61440||!(4191360>f||4194239>>a.m].jb(b&a.g,c&255,b)}function kc(a){var b=a.T(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b} function ic(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.oa=a.oa<<8|246);!a.u&&c<=a.qa&&4c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=k);e=a.T(e);e|=k;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.f[c]+f&65535;7!==c&&(e|=k);a.a-=4;break;case 5:f=-2;e=a.f[c]-2&65535;7!==c&&(e|=k);e=a.T(e)|k;a.a-= 8;break;case 6:return e=fc(a),e=e+a.f[c]&65535|k,a.a-=6,e;case 7:return e=fc(a),e=e+a.f[c]&65535,e=a.T(e|a.N)|k,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!k||a.A&57344||(a.oa=a.oa<<8|f<<3&248|c);6==c&&!a.u&&d&4&&0>=f&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32?(a.F|=4,a.f[6]=4,F(a,4,24)):(a.F|=8,a.l|=64));return e}g.Ta=function(a,b){this.Ea?(this.S++,mc(this,lc(this,a,5),b),this.S--):this.m.Ta(a,b)};g.Eb=function(a,b,c){return nc(this,a,b,c)};g.Fb=function(a,b,c){return lc(this,nc(this,a,b,c),c)}; @@ -112,82 +112,82 @@ g.pc=function(a){return pb(this.m,a)};g.qc=function(a){return pb(this.m,lc(this, function pc(a,b,c,d){a.A&57344||(a.oa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=nc(a,b,e,4),c&65536||(e&=65535),a.u=a.w>>12&3,e=lc(a,e|c&65536,4),a.u=a.w>>14&3,qb(a.m,e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.f[e]=d:a.aa[a.w>>12&3]=d}function qc(a,b){b>>=6;var c=a.D=b&7;(b=a.B=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function Q(a,b){b>>=6;var c=a.D=b&7;return(b=a.B=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function rc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return nc(a,b,c,8)} function sc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function tc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function R(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.Ya=a.J(b,e,7),mc(a,e,d.call(a,c,ob(a.m,e)))):a.f[e]=a.f[e]&65280|d.call(a,c,a.f[e])}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.J(b,e,6),qb(a.m,e,d.call(a,c,pb(a.m,e)))):a.f[e]=d.call(a,c,a.f[e])} function uc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?mc(a,a.J(b,e,5),c):a.f[e]=c?d&1?c<<24>>24&65535:a.f[e]&-256|c&255:a.f[e]&-256;return c}function vc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?qb(a.m,a.J(b,d,4),c):a.f[d]=c&65535;return c}function T(a,b,c){c&&(M(a,a.f[7]+(b<<24>>23)),a.a-=2);a.a-=3} -g.xb=function(a){this.h.complete=!0;this.h.Cb=!1;this.h.wb=!1;this.ha=this.a=a;do{if(this.l&&(this.l&112&&(this.l&32?F(this,168,28):this.l&64?F(this,4,30):this.l&16&&F(this,12,32),this.l&=-113),this.l&7))if(this.l&2){this.l&=-3;var b=160,c=(this.hb&224)>>5;if(a=this.X&&this.X.va>c?this.X:null)b=a.wc,c=a.va;c>(this.w&224)>>5?(this.l&4&&(this.f[7]=this.f[7]+2&65535,this.l&=-5),F(this,b,26),c=!0):c=!1;if(c&&a)if(c=this.X,c==a)this.X=a.next;else for(;c;){b=c.next;if(b==a){c.next=b.next;break}c=b}}else this.l& -1&&this.l++;this.A&57344||(this.oa=0,this.gb=this.f[7]);this.l=this.l&7|this.w&16;this.decode(fc(this))}while(0>5;if(a=this.X&&this.X.va>c?this.X:null)b=a.wc,c=a.va;c>(this.w&224)>>5?(this.l&4&&(this.f[7]=this.f[7]+2&65535,this.l&=-5),F(this,b,26),c=!0):c=!1;if(c&&a)if(c=this.X,c==a)this.X=a.next;else for(;c;){b=c.next;if(b==a){c.next=b.next;break}c=b}}else this.l& +1&&this.l++;this.A&57344||(this.oa=0,this.gb=this.f[7]);this.l=this.l&7|this.w&16;this.decode(fc(this))}while(0>1|b<<16;P(this,a);return a&65535}function Bc(a,b){a=b&2048|b>>1|b<<8;P(this,a<<8);return a&255}function Cc(a,b){a=b&~a;N(this,a);return a}function Dc(a,b){a=b&~a;N(this,a<<8);return a}function Ec(a,b){a|=b;N(this,a);return a}function Fc(a,b){a|=b;N(this,a<<8);return a}function Gc(a,b){a=~b|65536;O(this,a);return a&65535}function Hc(a,b){a=~b|256;O(this,a<<8);return a&255} -function Ic(a,b){a=b-a;this.l&128||(this.o=this.i=a,this.g=b&(b^a));return a&65535}function Jc(a,b){a=b-a;var c=a<<8;b<<=8;this.l&128||(this.o=this.i=c,this.g=b&(b^c));return a&255}function Kc(a,b){a=b+a;this.l&128||(this.o=this.i=a,this.g=a&(b^a));return a&65535}function Lc(a,b){a=b+a;var c=a<<8;this.l&128||(this.o=this.i=c,this.g=c&(b<<8^c));return a&255}function Mc(a,b){a=-b;O(this,a,a&b&32768);return a&65535}function Nc(a,b){a=-b;O(this,a<<8,(a&b&128)<<8);return a&255} -function Oc(a,b){a=b<<1|this.j>>16&1;P(this,a);return a&65535}function Pc(a,b){a=b<<1|this.j>>16&1;P(this,a<<8);return a&255}function Qc(a,b){a=(this.j&65536|b)>>1|b<<16;P(this,a);return a&65535}function Rc(a,b){a=((this.j&65536)>>8|b)>>1|b<<8;P(this,a<<8);return a&255}function Sc(a,b){var c=b-a;hc(this,c,a,b);return c&65535}function Tc(a,b){var c=b-a;hc(this,c<<8,a<<8,b<<8);return c&255}function Uc(a,b){this.l&128||(this.o=this.i=b&65280,this.g=this.j=0);return(b<<8|b>>8)&65535} -function Vc(a,b){a^=b;N(this,a);return a&65535}function Wc(a){S(this,a,Q(this,a),wc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Xc(a){var b=tc(this,a);a=a>>6&7;var c=this.f[a];c&32768&&(c|=4294901760);this.j=this.g=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.g=32768)}this.f[a]=c&65535;this.o=this.i=c;this.a-=(this.c?6:7)+b} -function Yc(a){var b=tc(this,a);a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&=63;if(b&32){b=64-b;32>b-1;this.j=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.f[a|1]=d&65535;this.o=d>>16;this.i=d>>16|d;this.a-=(this.c?6:7)+b}function Zc(a){T(this,a,!L(this))}function $c(a){T(this,a,L(this))} +function Ic(a,b){a=b-a;this.l&128||(this.o=this.h=a,this.g=b&(b^a));return a&65535}function Jc(a,b){a=b-a;var c=a<<8;b<<=8;this.l&128||(this.o=this.h=c,this.g=b&(b^c));return a&255}function Kc(a,b){a=b+a;this.l&128||(this.o=this.h=a,this.g=a&(b^a));return a&65535}function Lc(a,b){a=b+a;var c=a<<8;this.l&128||(this.o=this.h=c,this.g=c&(b<<8^c));return a&255}function Mc(a,b){a=-b;O(this,a,a&b&32768);return a&65535}function Nc(a,b){a=-b;O(this,a<<8,(a&b&128)<<8);return a&255} +function Oc(a,b){a=b<<1|this.j>>16&1;P(this,a);return a&65535}function Pc(a,b){a=b<<1|this.j>>16&1;P(this,a<<8);return a&255}function Qc(a,b){a=(this.j&65536|b)>>1|b<<16;P(this,a);return a&65535}function Rc(a,b){a=((this.j&65536)>>8|b)>>1|b<<8;P(this,a<<8);return a&255}function Sc(a,b){var c=b-a;hc(this,c,a,b);return c&65535}function Tc(a,b){var c=b-a;hc(this,c<<8,a<<8,b<<8);return c&255}function Uc(a,b){this.l&128||(this.o=this.h=b&65280,this.g=this.j=0);return(b<<8|b>>8)&65535} +function Vc(a,b){a^=b;N(this,a);return a&65535}function Wc(a){S(this,a,Q(this,a),wc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Xc(a){var b=tc(this,a);a=a>>6&7;var c=this.f[a];c&32768&&(c|=4294901760);this.j=this.g=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.g=32768)}this.f[a]=c&65535;this.o=this.h=c;this.a-=(this.c?6:7)+b} +function Yc(a){var b=tc(this,a);a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&=63;if(b&32){b=64-b;32>b-1;this.j=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.f[a|1]=d&65535;this.o=d>>16;this.h=d>>16|d;this.a-=(this.c?6:7)+b}function Zc(a){T(this,a,!L(this))}function $c(a){T(this,a,L(this))} function ad(a){S(this,a,Q(this,a),Cc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function bd(a){R(this,a,qc(this,a),Dc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function cd(a){S(this,a,Q(this,a),Ec);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function dd(a){R(this,a,qc(this,a),Fc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} -function ed(a){N(this,Q(this,a)&tc(this,a));this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function fd(a){N(this,(qc(this,a)&sc(this,a))<<8);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function gd(a){T(this,a,this.i&65535?0:4)}function hd(a){T(this,a,!this.ma()==!(this.g&32768))}function id(a){T(this,a,!!(this.i&65535)&&!this.ma()==!(this.g&32768))}function jd(a){T(this,a,!L(this)&&!!(this.i&65535))} -function kd(a){T(this,a,(this.i&65535?0:4)||!this.ma()!=!(this.g&32768))}function ld(a){T(this,a,L(this)||(this.i&65535?0:4))}function md(a){T(this,a,!this.ma()!=!(this.g&32768))}function nd(a){T(this,a,this.ma())}function od(a){T(this,a,!!(this.i&65535))}function pd(a){T(this,a,!this.ma())}function qd(){F(this,12,1);this.a-=5}function rd(a){T(this,a,!0)}function sd(a){T(this,a,!(this.g&32768))}function td(a){T(this,a,this.g&32768?2:0)} -function U(a){a&1&&(this.j=0);a&2&&(this.g=0);a&4&&(this.i=1);a&8&&(this.o=0);this.a-=5}function ud(a){var b=Q(this,a);a=tc(this,a);hc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function vd(a){var b=qc(this,a)<<8;a=sc(this,a)<<8;hc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)} -function wd(a){var b=tc(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.f[a]=d&65535,this.f[a|1]=c-d*b&65535,this.i=d>>16|d,this.o=d>>16):(this.g=32768,this.i=d>>15|d,this.o=c>>16,-1===b&&65534===this.f[a]&&(this.f[a]=this.f[a|1]=1));this.a-=53}else this.i=this.o=0,this.g=32768,this.j=65536,this.a-=7}function xd(){F(this,24,2);this.a-=25}function yd(){this.w&49152?(this.F|=128,F(this,4,3)):Xa(this);this.a-=7} +function ed(a){N(this,Q(this,a)&tc(this,a));this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function fd(a){N(this,(qc(this,a)&sc(this,a))<<8);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function gd(a){T(this,a,this.h&65535?0:4)}function hd(a){T(this,a,!this.ma()==!(this.g&32768))}function id(a){T(this,a,!!(this.h&65535)&&!this.ma()==!(this.g&32768))}function jd(a){T(this,a,!L(this)&&!!(this.h&65535))} +function kd(a){T(this,a,(this.h&65535?0:4)||!this.ma()!=!(this.g&32768))}function ld(a){T(this,a,L(this)||(this.h&65535?0:4))}function md(a){T(this,a,!this.ma()!=!(this.g&32768))}function nd(a){T(this,a,this.ma())}function od(a){T(this,a,!!(this.h&65535))}function pd(a){T(this,a,!this.ma())}function qd(){F(this,12,1);this.a-=5}function rd(a){T(this,a,!0)}function sd(a){T(this,a,!(this.g&32768))}function td(a){T(this,a,this.g&32768?2:0)} +function U(a){a&1&&(this.j=0);a&2&&(this.g=0);a&4&&(this.h=1);a&8&&(this.o=0);this.a-=5}function ud(a){var b=Q(this,a);a=tc(this,a);hc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function vd(a){var b=qc(this,a)<<8;a=sc(this,a)<<8;hc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)} +function wd(a){var b=tc(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.f[a]=d&65535,this.f[a|1]=c-d*b&65535,this.h=d>>16|d,this.o=d>>16):(this.g=32768,this.h=d>>15|d,this.o=c>>16,-1===b&&65534===this.f[a]&&(this.f[a]=this.f[a|1]=1));this.a-=53}else this.h=this.o=0,this.g=32768,this.j=65536,this.a-=7}function xd(){F(this,24,2);this.a-=25}function yd(){this.w&49152?(this.F|=128,F(this,4,3)):Xa(this);this.a-=7} function zd(){F(this,16,4);this.a-=25}var Ad=[0,7,7,10,7,11,9,13];function V(a){var b=this.a;M(this,rc(this,a));this.a=b-Ad[this.c]}var Bd=[0,14,14,17,14,18,16,20];function Cd(a){var b=this.a,c=rc(this,a);a=a>>6&7;ic(this,this.f[a]);this.f[a]=this.f[7];M(this,c);this.a=b-Bd[this.c]}var Dd=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Ed(a){var b=Q(this,a),c=this.a;N(this,vc(this,a,b));this.a=c-Dd[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)} -function Fd(a){var b=qc(this,a);N(this,uc(this,a,b,1)<<8);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Gd=[7,13,13,17,14,18,17,21];function Hd(a){var b=tc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.l&128||(this.o=b>>16,this.i=this.o|b,this.g=0,this.j=-32768>b||32767>6;if(this.f[b]=this.f[b]-1&65535)M(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Nd(a){S(this,a,Q(this,a),Sc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} -function X(a){S(this,a,0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)}function Od(){F(this,28,5);this.a-=5}function Pd(){this.l&4||this.v.fa();this.l|=4;this.f[7]=this.f[7]+-2&65535;this.a-=3}function Qd(a){S(this,a,Q(this,a),Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){F(this,8,6)}function bc(a){Rd[a>>12].call(this,a)}function Td(a){Ud[a>>6&3].call(this,a)}function Vd(a){Wd[a>>6&3].call(this,a)}function Xd(a){Yd[a>>6&3].call(this,a)}function Zd(a){$d[a&15].call(this,a)} +function Fd(a){var b=qc(this,a);N(this,uc(this,a,b,1)<<8);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Gd=[7,13,13,17,14,18,17,21];function Hd(a){var b=tc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.l&128||(this.o=b>>16,this.h=this.o|b,this.g=0,this.j=-32768>b||32767>6;if(this.f[b]=this.f[b]-1&65535)M(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Nd(a){S(this,a,Q(this,a),Sc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} +function X(a){S(this,a,0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)}function Od(){F(this,28,5);this.a-=5}function Pd(){this.l&4||this.v.fa();this.l|=4;this.f[7]=this.f[7]+-2&65535;this.a-=3}function Qd(a){S(this,a,Q(this,a),Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){F(this,8,6)}function bc(a){Rd[a>>12].call(this,a)}function Sd(a){Td[a>>6&3].call(this,a)}function Ud(a){Wd[a>>6&3].call(this,a)}function Xd(a){Yd[a>>6&3].call(this,a)}function Zd(a){$d[a&15].call(this,a)} function ae(a){be[a&15].call(this,a)}function ce(a){de[a>>6&3].call(this,a)}function ee(a){fe[a>>6&3].call(this,a)}function ge(a){he[a>>6&3].call(this,a)} -var Rd=[function(a){ie[a>>8&15].call(this,a)},Ed,ud,ed,ad,cd,Wc,Y,function(a){je[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Nd,Y],ie=[function(a){ke[a>>4&15].call(this,a)},rd,od,gd,hd,md,id,kd,Cd,Cd,Td,Vd,Xd,Y,Y,Y],Ud=[function(a){O(this,vc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Gc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Ic);this.a-=this.c?9:3+(7==this.b?2:0)}],Wd=[function(a){S(this,a,0,Mc); +var Rd=[function(a){ie[a>>8&15].call(this,a)},Ed,ud,ed,ad,cd,Wc,Y,function(a){je[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Nd,Y],ie=[function(a){ke[a>>4&15].call(this,a)},rd,od,gd,hd,md,id,kd,Cd,Cd,Sd,Ud,Xd,Y,Y,Y],Td=[function(a){O(this,vc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Gc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Ic);this.a-=this.c?9:3+(7==this.b?2:0)}],Wd=[function(a){S(this,a,0,Mc); this.a-=this.c?11:6},function(a){S(this,a,L(this)?1:0,wc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,L(this)?1:0,Sc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=tc(this,a);O(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Yd=[function(a){S(this,a,0,Qc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Oc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Ac);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,yc);this.a-=this.c?9:3+(7==this.b?2:0)}],ke=[function(a){le[a& -15].call(this,a)},Y,Y,Y,V,V,V,V,Ld,Y,Zd,ae,X,X,X,X],le=[yd,Pd,Kd,qd,zd,Jd,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],$d=[Id,function(){this.j=0;this.a-=5},function(){this.g=0;this.a-=5},U,function(){this.i=1;this.a-=5},U,U,U,function(){this.o=0;this.a-=5},U,U,U,U,U,U,U],be=[Id,function(){this.j=65536;this.a-=5},function(){this.g=32768;this.a-=5},W,function(){this.i=0;this.a-=5},W,W,W,function(){this.o=32768;this.a-=5},W,W,W,W,W,W,W],je=[pd,nd,jd,ld,sd,td,Zc,$c,xd,Od,ce,ee,ge,Y,Y,Y],de=[function(a){O(this,uc(this,a,0)); +15].call(this,a)},Y,Y,Y,V,V,V,V,Ld,Y,Zd,ae,X,X,X,X],le=[yd,Pd,Kd,qd,zd,Jd,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],$d=[Id,function(){this.j=0;this.a-=5},function(){this.g=0;this.a-=5},U,function(){this.h=1;this.a-=5},U,U,U,function(){this.o=0;this.a-=5},U,U,U,U,U,U,U],be=[Id,function(){this.j=65536;this.a-=5},function(){this.g=32768;this.a-=5},W,function(){this.h=0;this.a-=5},W,W,W,function(){this.o=32768;this.a-=5},W,W,W,W,W,W,W],je=[pd,nd,jd,ld,sd,td,Zc,$c,xd,Od,ce,ee,ge,Y,Y,Y],de=[function(a){O(this,uc(this,a,0)); this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],fe=[function(a){R(this,a,0,Nc);this.a-=this.c?11:6},function(a){R(this,a,L(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,L(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=sc(this,a);O(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}],he= [function(a){R(this,a,0,Rc);this.a-=this.c?9+(this.Ya&1):3+(7==this.b?2:0)},function(a){R(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Bc);this.a-=this.c?9+(this.Ya&1):3+(7==this.b?2:0)},function(a){R(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}];function cc(a){me[a>>12].call(this,a)} -var me=[function(a){ne[a>>8&15].call(this,a)},Ed,ud,ed,ad,cd,Wc,function(a){oe[a>>8&15].call(this,a)},function(a){pe[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Nd,Y],ne=[function(a){qe[a>>4&15].call(this,a)},rd,od,gd,hd,md,id,kd,Cd,Cd,Td,Vd,Xd,function(a){re[a>>6&3].call(this,a)},Y,Y],re=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.T(a|this.N);M(this,this.f[5]);this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=oc(this,a,0);ic(this,a);N(this,a);this.a-=11},function(a){var b=kc(this),c=this.a; +var me=[function(a){ne[a>>8&15].call(this,a)},Ed,ud,ed,ad,cd,Wc,function(a){oe[a>>8&15].call(this,a)},function(a){pe[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Nd,Y],ne=[function(a){qe[a>>4&15].call(this,a)},rd,od,gd,hd,md,id,kd,Cd,Cd,Sd,Ud,Xd,function(a){re[a>>6&3].call(this,a)},Y,Y],re=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.T(a|this.N);M(this,this.f[5]);this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=oc(this,a,0);ic(this,a);N(this,a);this.a-=11},function(a){var b=kc(this),c=this.a; pc(this,a,0,b);N(this,b);this.a=c-Gd[this.c]},function(a){N(this,vc(this,a,this.ma?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],qe=[function(a){se[a&15].call(this,a)},Y,Y,Y,V,V,V,V,Ld,function(a){a&8?(this.w&49152||(this.w=this.w&-2017|(a&7)<<5,this.l|=1),this.a-=5):F(this,8,6)},Zd,ae,X,X,X,X],se=[yd,Pd,Kd,qd,zd,Jd,function(){jc(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],oe=[Hd,Hd,wd,wd,Xc,Xc,Yc,Yc,Qd,Qd,Y,Y,Y,Y,Md,Md],pe=[pd,nd,jd,ld,sd,td,Zc,$c,xd,Od,ce,ee,ge,function(a){te[a>>6&3].call(this,a)},Y, Y],te=[Y,function(a){a=oc(this,a,65536);ic(this,a);N(this,a);this.a-=11},function(a){var b=kc(this),c=this.a;pc(this,a,65536,b);N(this,b);this.a=c-Gd[this.c]},Y]; -function ue(a){u.call(this,"ROM",a,ue);this.Y=this.b=null;this.j=a.addr;this.c=a.size;this.i=a.alias;this.g=a.file;this.o=ka(this.g);if(this.g){a=this.g;var b=la(this.o);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;h(a,null,!0,function(a,b,f){f?c.H("Unable to load ROM resource (error "+f+": "+a+")"):(Pa(c.ra,a,b),(a=ua(a,b))?(c.b=a.M,c.Y=a.Y):c.g=null,ve(c))})}}w(ue);ue.prototype.ea=function(a,b,c,d){this.m=b;this.a=c;this.G=d;ve(this)}; +function ue(a){u.call(this,"ROM",a,ue);this.Y=this.b=null;this.j=a.addr;this.c=a.size;this.h=a.alias;this.g=a.file;this.o=ka(this.g);if(this.g){a=this.g;var b=la(this.o);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;h(a,null,!0,function(a,b,f){f?c.H("Unable to load ROM resource (error "+f+": "+a+")"):(Pa(c.ra,a,b),(a=ua(a,b))?(c.b=a.M,c.Y=a.Y):c.g=null,ve(c))})}}w(ue);ue.prototype.ea=function(a,b,c,d){this.m=b;this.a=c;this.G=d;ve(this)}; ue.prototype.$=function(){this.Y&&(this.G&&this.G.a(this.id,this.j,this.c,this.Y),delete this.Y);return!0};ue.prototype.Z=function(){return!0}; -function ve(a){if(!Sa(a)){if(a.g){if(!a.b||!a.m)return;a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+ja(a.b.length,8,!0)+") does not match specified size ("+ja(a.c,8,!0)+")";a.h.error=!0;a.H(b)}else{b=a.j;if(kb(a.m,b,a.c,Ib)){var c;for(c=0;c=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=qa(b[0]);if(c!=this.Ha)return;b=qa(b[1]);if(this.u=Qa(b)){var d=this.u.exports;if(d){var e=d.connect;e&&e.call(this.u);if(this.A=d.receiveData){this.status(this.ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.$=function(a,b){if(!b)if(this.nb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -g.Z=function(a){return a?this.save():!0};g.reset=function(){Be(this)};g.save=function(){var a=new K(this);a.set(0,[]);return a.data()};g.restore=function(){return Be(this)};function Be(a){a.D=0;a.b=0;a.c=128;a.i=[];return!0}g.fb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.I||8,c=a-this.o%a,this.I&&(b=" ".slice(0,c)));this.B&&!this.o&&c&&(b=String.fromCharCode(this.B)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.o+=c}else if(null!=this.j){if(10==a||1024<=this.j.length)this.P(this.j), this.j="";10!=a&&(this.j+=String.fromCharCode(a))}this.c&=-129;yb(this.a,this.K,1)}};var Ce={},Ae=(Ce[65392]=[null,null,Z.prototype.ec,Z.prototype.Rc,"RCSR"],Ce[65394]=[null,null,Z.prototype.dc,Z.prototype.Qc,"RBUF"],Ce[65396]=[null,null,Z.prototype.sc,Z.prototype.ed,"XCSR"],Ce[65398]=[null,null,Z.prototype.rc,Z.prototype.dd,"XBUF"],Ce);q(function(){for(var a=A(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.s[b]=c,!0;case "loadTape":return this.s[b]=c,c.onclick=function(){var a=d.s.listTapes;a&&De(d, -a.options[a.selectedIndex].text,a.value)},!0;case "mountTape":if(this.o)return this.s[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;De(d,ka(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; -g.ea=function(a,b,c,d){this.v=a;this.m=b;this.a=c;this.G=d;if((this.b=Tb(this.v,"autoMount")||this.b)&&"string"==typeof this.b)try{this.b=eval("("+this.b+")")}catch(e){m("PC11 auto-mount error: "+e.message+" ("+this.b+")"),this.b=null}tb(b,this,Ee);Fe(this,"None","",!0);this.o&&Fe(this,"Local Tape","?");Fe(this,"Remote Tape","??");Ge(this)||B(this)};g.$=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};g.Z=function(a){return a?this.save():!0}; -g.reset=function(){this.c&=-2241;this.u=0};function Ge(a){a.i=0;if(a.b){var b=a.b.path,c;if(!(c=a.b.name))a:{if((c=a.s.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(d=la(c),e="json"==d||"gz"==d?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!h(e,null,!0,function(d,e,f){a.h.Wa=!1;var k=0>f&&a.v&&!a.v.h.L;f?a.H('Unable to load tape "'+b+'" (error '+f+": "+d+")",k):(Pa(a.ra,d,e),ua(d,e)&&(a.g=c));a.j&&(a.j=!1,--a.i||B(a));if((d=a.s.listTapes)&& -d.options){e=a.h.local?"?":a.g;for(f=0;f\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bMe){if(Oe(d,this.u)){this.j=new K(this,"1.30.1","failsafe");Oe(this.j)&&(Te(this,d),a=2,Ue(this.j));this.j.set("timestamp",ta());Ve(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Se(d)){var f=d.get("code"),k=d.get("data");f&&("ok"==f?Oe(d,k):("error"== -f&&"no machine state"!=k?(this.H("Error: "+k),"unable to verify user"==k&&(za("user",""),this.c=null)):this.P(f+": "+k),Ue(d),Oe(d)?(c=Se(d),e=!0):c=!1))}e&&Re(this,c?d:null)}else 2==a&&d.clear()}else Re(this);delete this.u;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.S=!0;this.h.L=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(We(this,this.a,b,c,a),this.a.Da());this.I&&(Te(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; -function Te(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;h("http://www.pcjs.org/api/v1/report",d,!0)}} -function Xe(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new K(a,"1.30.1"),k=new K(a,"1.30.1","validate"),l=ta();k.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&Xa(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.h.L=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;n'+b+"");a.innerHTML=b}},!0;case "descTape":return this.s[b]=c,!0;case "loadTape":return this.s[b]=c,c.onclick=function(){var a=d.s.listTapes;a&&Ee(d, +a.options[a.selectedIndex].text,a.value)},!0;case "mountTape":if(this.o)return this.s[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ee(d,ka(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; +g.ea=function(a,b,c,d){this.v=a;this.m=b;this.a=c;this.G=d;if((this.b=Tb(this.v,"autoMount")||this.b)&&"string"==typeof this.b)try{this.b=eval("("+this.b+")")}catch(e){m("PC11 auto-mount error: "+e.message+" ("+this.b+")"),this.b=null}tb(b,this,Fe);Ge(this,"None","",!0);this.o&&Ge(this,"Local Tape","?");Ge(this,"Remote Tape","??");He(this)||B(this)};g.$=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};g.Z=function(a){return a?this.save():!0}; +g.reset=function(){this.c&=-2241;this.u=0};function He(a){a.g=0;if(a.b){var b=a.b.path,c;if(!(c=a.b.name))a:{if((c=a.s.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(d=la(c),e="json"==d||"gz"==d?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!h(e,null,!0,function(d,e,f){var k=0>f&&a.v&&!a.v.i.L;f?a.H('Unable to load tape "'+b+'" (error '+f+": "+d+")",k):(Pa(a.ra,d,e),ua(d,e)&&(a.h=c));a.i.Wa=!1;a.g&&(a.g--,a.g||B(a)); +Le(a)})}function Ge(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bPe){if(Re(d,this.u)){this.j=new K(this,"1.30.1","failsafe");Re(this.j)&&(We(this,d),a=2,Xe(this.j));this.j.set("timestamp",ta());Ye(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ve(d)){var f=d.get("code"),k=d.get("data");f&&("ok"==f?Re(d,k):("error"== +f&&"no machine state"!=k?(this.H("Error: "+k),"unable to verify user"==k&&(za("user",""),this.c=null)):this.P(f+": "+k),Xe(d),Re(d)?(c=Ve(d),e=!0):c=!1))}e&&Ue(this,c?d:null)}else 2==a&&d.clear()}else Ue(this);delete this.u;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.S=!0;this.i.L=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(Ze(this,this.a,b,c,a),this.a.Da());this.I&&(We(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; +function We(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;h("http://www.pcjs.org/api/v1/report",d,!0)}} +function $e(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new K(a,"1.30.1"),k=new K(a,"1.30.1","validate"),l=ta();k.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&Xa(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.L=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;nf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");h(e,null,!0,function(f,k,l){if(l||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(k=k.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],k);df(a,b,c)}})}else c(a,null)} -function ef(a,b,c,d){function e(a){if(void 0===l){var b=k&&A(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--af||Ga(!0));n=!1}var k,l,n=!0;af++;Oa[a]={};try{if(k=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=r:D.appendChild(document.createTextNode(r));t.appendChild(D)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?bf(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(k.outerHTML=n,--af||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(n,k),--af||Ga(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?bf(b,a,d,!0,e,r):cf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Sd){f(Sd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return ef(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map +g.V=function(a,b,c){var d=this;switch(b){case "power":return this.s[b]=c,c.onclick=function(){d.g||(d.i.L?$e(d,!1,!0):Te(d,d.Fa))},!0;case "reset":return this.s[b]=c,c.onclick=function(){if(d.i.L&&!d.g)if(d.b&&!d.v){var a=va("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");$e(d,a,!0);!a&&d.D?window&&window.location.reload():d.Fa(Pe)}else d.reset(),d.a&&d.a.Da()},!0;case "save":if(ma())c.parentNode.removeChild(c);else return this.s[b]= +c,c.onclick=function(){var a=Qe(d,!0);if(a){var b=!!(d.b&&!d.v||d.D),c=$e(d,b);b?af(d,a,c):d.H("Resume disabled, machine state not saved")}},!0}return!1}; +function Qe(a,b){var c=a.c;c||((c=ya("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=bf(a,c))||a.H("The user ID is invalid.")):b&&a.H("Browser local storage is not available"));return c} +function bf(a,b){a.c=null;b=h(na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(za("user",b.data),a.c=b.data)}catch(d){m(d.message+" ("+c+")")}return a.c}function Se(a){var b=null;a.c&&(b=na()+"/api/v1/user?req=load&user="+a.c+"&state="+cf(a,"1.30.1"));return b} +function af(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=cf(a,"1.30.1");d.data=c;b=h(na()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");h(e,null,!0,function(f,k,l){if(l||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(k=k.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],k);gf(a,b,c)}})}else c(a,null)} +function hf(a,b,c,d){function e(a){if(void 0===l){var b=k&&A(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--df||Ga(!0));n=!1}var k,l,n=!0;df++;Oa[a]={};try{if(k=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=r:D.appendChild(document.createTextNode(r));t.appendChild(D)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?ef(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(k.outerHTML=n,--df||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(n,k),--df||Ga(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?ef(b,a,d,!0,e,r):ff(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Vd){f(Vd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return hf(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map From 54bcbdbf5e0b4492f23f8c48fdf6eb6156980b26 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Tue, 18 Oct 2016 10:50:05 -0700 Subject: [PATCH 09/32] Created dedicated getOpcode() function, replaced getPCWord() --- modules/pdp11/lib/cpustate.js | 35 +-- versions/pdpjs/1.30.1/pdp11-dbg.js | 332 ++++++++++++++--------------- versions/pdpjs/1.30.1/pdp11.js | 200 ++++++++--------- 3 files changed, 286 insertions(+), 281 deletions(-) diff --git a/modules/pdp11/lib/cpustate.js b/modules/pdp11/lib/cpustate.js index a26e7a1b2c..8fb44dbf0f 100644 --- a/modules/pdp11/lib/cpustate.js +++ b/modules/pdp11/lib/cpustate.js @@ -560,22 +560,29 @@ CPUStatePDP11.prototype.getPC = function() CPUStatePDP11.prototype.getLastPC = function() { /* - * As long as we're always snapping the PC before every opcode, we might as well use it.... + * As long as we're always snapping the PC before every opcode, we might as well use it. */ return this.regMMR2; }; /** - * getPCWord() + * getOpcode() + * + * TODO: Determine whether we can speed this up by *always* snapping PC into a shadow MMR2 register + * and eliminating the ABORT test. * * @this {CPUStatePDP11} * @return {number} */ -CPUStatePDP11.prototype.getPCWord = function() +CPUStatePDP11.prototype.getOpcode = function() { - var data = this.readWord(this.regsGen[PDP11.REG.PC]); - this.advancePC(2); - return data; + var pc = this.regsGen[PDP11.REG.PC]; + if (!(this.regMMR0 & PDP11.MMR0.ABORT)) { + this.regMMR1 = 0; + this.regMMR2 = pc; + } + this.regsGen[PDP11.REG.PC] = (pc + 2) & 0xffff; + return this.readWord(pc); }; /** @@ -583,10 +590,13 @@ CPUStatePDP11.prototype.getPCWord = function() * * @this {CPUStatePDP11} * @param {number} off + * @return {number} (original PC) */ CPUStatePDP11.prototype.advancePC = function(off) { - this.regsGen[PDP11.REG.PC] = (this.regsGen[PDP11.REG.PC] + off) & 0xffff; + var pc = this.regsGen[PDP11.REG.PC]; + this.regsGen[PDP11.REG.PC] = (pc + off) & 0xffff; + return pc; }; /** @@ -1513,7 +1523,7 @@ CPUStatePDP11.prototype.getAddrByMode = function(mode, reg, accessFlags) * Mode 6: d(R) */ case 6: - virtualAddress = this.getPCWord(); + virtualAddress = this.readWord(this.advancePC(2)); virtualAddress = ((virtualAddress + this.regsGen[reg]) & 0xffff) | addrDSpace; this.nStepCycles -= (4 + 2); return virtualAddress; @@ -1522,7 +1532,7 @@ CPUStatePDP11.prototype.getAddrByMode = function(mode, reg, accessFlags) * Mode 7: @d(R) */ case 7: - virtualAddress = this.getPCWord(); + virtualAddress = this.readWord(this.advancePC(2)); virtualAddress = (virtualAddress + this.regsGen[reg]) & 0xffff; virtualAddress = this.readWord(virtualAddress | this.addrDSpace) | addrDSpace; this.nStepCycles -= (7 + 3); @@ -2089,18 +2099,13 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles) } } - if (!(this.regMMR0 & PDP11.MMR0.ABORT)) { - this.regMMR1 = 0; - this.regMMR2 = this.regsGen[7]; - } - /* * Snapshot the TF bit in opFlags, while clearing all other opFlags (except those in PRESERVE); * we'll check the TRAP_TF bit in opFlags when we come back around for another opcode. */ this.opFlags = (this.opFlags & PDP11.OPFLAG.PRESERVE) | (this.regPSW & PDP11.PSW.TF); - this.decode(this.getPCWord()); + this.decode(this.getOpcode()); } while (this.nStepCycles > 0); diff --git a/versions/pdpjs/1.30.1/pdp11-dbg.js b/versions/pdpjs/1.30.1/pdp11-dbg.js index 295f039a27..ddb8bfec64 100644 --- a/versions/pdpjs/1.30.1/pdp11-dbg.js +++ b/versions/pdpjs/1.30.1/pdp11-dbg.js @@ -45,15 +45,15 @@ function r(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.nam if(window){cb||(cb=window.location.search.substr(1));for(var eb,fb=/\+/g,gb=/([^&=]+)=?([^&]*)/g;eb=gb.exec(cb);)db[decodeURIComponent(eb[1].replace(fb," "))]=decodeURIComponent(eb[2].replace(fb," "))}function hb(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 u(a,b){b||(b=r);a.prototype=hb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var ib=window.PCjs.Machines||(window.PCjs.Machines={}),t=window.PCjs.Components||(window.PCjs.Components=[])}else ib={},t=[];function jb(a,b,c){ib[a]&&b&&(ib[a][b]=c)}function kb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>2;this.w=this.ua-1;this.B=this.H/this.ua|0;this.Ha=[];this.A=0;this.D=[];this.mc=[Ob,Pb,Qb,Rb];a=new I(this);Sb(a,this.i);this.W=Array(this.B);for(b=0;b>8,c+1),d=!0);d?this.i&&D(this.i,64)&&C(this.i,a[4]+".writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!1,b),this.i&&D(this.i,64)&&C(this.i,"warning: unconverted write access to word @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} function Vb(a,b){if(b!=a.g){var c;a.g&&(c=(1<>>a.ia;0g&&(q=g);if(!e&&m&&m.size){if(m.type==d){if(f+g<=m.C)return m.vb+=m.C-f,m.C=f,!0;if(f>=m.C+m.vb){q=m.size-(f-p);q>g&&(q=g);m.vb=f-m.C+q;f=p+a.ua;g-=q;k++;continue}}return ac(1,f,g)}f=new I(a,f,q,a.ua,d,e);Sb(f,a.i,m);a.W[k++]=f;f=p+a.ua;g-=q}if(0>=g){c/=1024;var v;e="";v?10>>=a.ia;0>>=a.ia;0>>this.ia].Eb(a&this.w,a)};h.Bb=function(a){this.A++;a=this.W[(a&this.f)>>>this.ia].Mb(a&this.w,a);this.A--;return a};h.na=function(a){return this.W[(a&this.f)>>>this.ia].ta(a&this.w,a)}; +10;a.status(e+"Kb "+bc[d]+" at "+na(b));return!0}return ac(2,b,c)}function Xb(a,b,c){var d=[];for(b>>>=a.ia;0>>=a.ia;0>>this.ia].Eb(a&this.w,a)};h.Bb=function(a){this.A++;a=this.W[(a&this.f)>>>this.ia].Mb(a&this.w,a);this.A--;return a};h.na=function(a){return this.W[(a&this.f)>>>this.ia].oa(a&this.w,a)}; h.pb=function(a){var b=a&this.w,c=(a&this.f)>>>this.ia;this.A++;a=this.W[c].Nb(b,a);this.A--;return a};h.Fb=function(a,b){this.W[(a&this.f)>>>this.ia].Hb(a&this.w,b&255,a)};h.hb=function(a,b){this.A++;this.W[(a&this.f)>>>this.ia].Sb(a&this.w,b&255,a);this.A--};h.Va=function(a,b){this.W[(a&this.f)>>>this.ia].wb(a&this.w,b&65535,a)};h.Gb=function(a,b){var c=a&this.w,d=(a&this.f)>>>this.ia;this.A++;this.W[d].Tb(c,b&65535,a);this.A--}; function cc(a){for(var b=0,c=[],d=0;da.b.ab)){var g=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!g&&m&&(g=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!k&&p&&(k=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));dc(a,e,e,g,k,m,p,f[4])}}}function nc(a,b){a.D.push(b)} +function ec(a,b,c){for(var d in c){var e=+d,f=c[d];if(!(f[5]&&f[5]>a.b.ab)){var g=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!g&&m&&(g=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!k&&p&&(k=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));dc(a,e,e,g,k,m,p,f[4])}}}function nc(a,b){a.D.push(b)} function oc(a,b){a.A||(a.i&&D(a.i,536870912)&&C(a.i,"memory fault on address "+J(a.i,b),!0,!0),a.b.ea(4,b))}function ac(a,b,c){n("Memory block error ("+a+": "+l(b)+","+l(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.g={data:0,Sd:0,Db:20,gd:0};this.f={Td:0,Rb:-1}}u(K);h=K.prototype; -h.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.Rb=pc(c,function(){e.f.Ka|=128;e.f.Ka&64&&(qc(e.b,e.f.hd),rc(e.b,e.f.Rb,1E3/60))});this.f.hd=sc(64,6);mc(b,this,L);nc(b,this.reset.bind(this));H(this)};h.reset=function(){this.g.Db=this.g.Db&-120|20;this.f.Ka=0};h.Dc=function(){var a=this.f.Ka;this.f.Ka&=-129;return a};h.rd=function(a){this.f.Ka=a;a&64&&rc(this.b,this.f.Rb,1E3/60);this.f.Ka=a&-129};h.wc=function(a){return(a?this.g.gd:this.g.data)&65535}; +h.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.Rb=pc(c,function(){e.f.Ka|=128;e.f.Ka&64&&(qc(e.b,e.f.hd),rc(e.b,e.f.Rb,1E3/60))});this.f.hd=sc(64,6);ec(b,this,L);nc(b,this.reset.bind(this));H(this)};h.reset=function(){this.g.Db=this.g.Db&-120|20;this.f.Ka=0};h.Dc=function(){var a=this.f.Ka;this.f.Ka&=-129;return a};h.rd=function(a){this.f.Ka=a;a&64&&rc(this.b,this.f.Rb,1E3/60);this.f.Ka=a&-129};h.wc=function(a){return(a?this.g.gd:this.g.data)&65535}; h.kd=function(a){this.g.data=a};h.Fc=function(){var a=this.b;return a.F&62337|a.wa<<5|a.xa<<1};h.td=function(a){var b=this.b;a&=62337;if(b.F!=a){b.F=a;b.wa=a>>5&3;b.xa=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.La!=c&&(b.La=c,tc(b))}uc(this)};h.Gc=function(){var a=this.b.Na;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Hc=function(){return this.b.tb};h.Ic=function(){return this.b.Oa}; -h.ud=function(a){var b=this.b;1170>b.ab&&(a&=-49);b.Oa!=a&&(b.Oa=a,a&16?(b.Za=4194303,b.ya=3915776):(b.Za=262143,b.ya=253952),tc(b));uc(this)};function uc(a){a.g.Db=a.g.Db&-8|(a.b.La?a.b.Oa&16?1:2:4)}h.Wc=function(a){return this.b.P[1][a>>1&7]};h.Id=function(a,b){this.b.P[1][b>>1&7]=a&65295};h.Uc=function(a){return this.b.P[1][(a>>1&7)+8]};h.Gd=function(a,b){this.b.P[1][(b>>1&7)+8]=a&65295};h.Vc=function(a){return this.b.sa[1][a>>1&7]}; -h.Hd=function(a,b){b=b>>1&7;this.b.sa[1][b]=a;this.b.P[1][b]&=65295};h.Tc=function(a){return this.b.sa[1][(a>>1&7)+8]};h.Fd=function(a,b){b=(b>>1&7)+8;this.b.sa[1][b]=a;this.b.P[1][b]&=65295};h.Cc=function(a){return this.b.P[0][a>>1&7]};h.qd=function(a,b){this.b.P[0][b>>1&7]=a&65295};h.Ac=function(a){return this.b.P[0][(a>>1&7)+8]};h.od=function(a,b){this.b.P[0][(b>>1&7)+8]=a&65295};h.Bc=function(a){return this.b.sa[0][a>>1&7]};h.pd=function(a,b){b=b>>1&7;this.b.sa[0][b]=a;this.b.P[0][b]&=65295}; -h.zc=function(a){return this.b.sa[0][(a>>1&7)+8]};h.nd=function(a,b){b=(b>>1&7)+8;this.b.sa[0][b]=a;this.b.P[0][b]&=65295};h.bd=function(a){return this.b.P[3][a>>1&7]};h.Od=function(a,b){this.b.P[3][b>>1&7]=a&65295};h.$c=function(a){return this.b.P[3][(a>>1&7)+8]};h.Md=function(a,b){this.b.P[3][(b>>1&7)+8]=a&65295};h.ad=function(a){return this.b.sa[3][a>>1&7]};h.Nd=function(a,b){b=b>>1&7;this.b.sa[3][b]=a;this.b.P[3][b]&=65295};h.Zc=function(a){return this.b.sa[3][(a>>1&7)+8]}; -h.Ld=function(a,b){b=(b>>1&7)+8;this.b.sa[3][b]=a;this.b.P[3][b]&=65295};h.fb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};h.kb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};h.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};h.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};h.Qc=function(){return this.b.u[7]};h.Cd=function(a){this.b.u[7]=a};h.gb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]}; +h.ud=function(a){var b=this.b;1170>b.ab&&(a&=-49);b.Oa!=a&&(b.Oa=a,a&16?(b.Za=4194303,b.ya=3915776):(b.Za=262143,b.ya=253952),tc(b));uc(this)};function uc(a){a.g.Db=a.g.Db&-8|(a.b.La?a.b.Oa&16?1:2:4)}h.Wc=function(a){return this.b.P[1][a>>1&7]};h.Id=function(a,b){this.b.P[1][b>>1&7]=a&65295};h.Uc=function(a){return this.b.P[1][(a>>1&7)+8]};h.Gd=function(a,b){this.b.P[1][(b>>1&7)+8]=a&65295};h.Vc=function(a){return this.b.ta[1][a>>1&7]}; +h.Hd=function(a,b){b=b>>1&7;this.b.ta[1][b]=a;this.b.P[1][b]&=65295};h.Tc=function(a){return this.b.ta[1][(a>>1&7)+8]};h.Fd=function(a,b){b=(b>>1&7)+8;this.b.ta[1][b]=a;this.b.P[1][b]&=65295};h.Cc=function(a){return this.b.P[0][a>>1&7]};h.qd=function(a,b){this.b.P[0][b>>1&7]=a&65295};h.Ac=function(a){return this.b.P[0][(a>>1&7)+8]};h.od=function(a,b){this.b.P[0][(b>>1&7)+8]=a&65295};h.Bc=function(a){return this.b.ta[0][a>>1&7]};h.pd=function(a,b){b=b>>1&7;this.b.ta[0][b]=a;this.b.P[0][b]&=65295}; +h.zc=function(a){return this.b.ta[0][(a>>1&7)+8]};h.nd=function(a,b){b=(b>>1&7)+8;this.b.ta[0][b]=a;this.b.P[0][b]&=65295};h.bd=function(a){return this.b.P[3][a>>1&7]};h.Od=function(a,b){this.b.P[3][b>>1&7]=a&65295};h.$c=function(a){return this.b.P[3][(a>>1&7)+8]};h.Md=function(a,b){this.b.P[3][(b>>1&7)+8]=a&65295};h.ad=function(a){return this.b.ta[3][a>>1&7]};h.Nd=function(a,b){b=b>>1&7;this.b.ta[3][b]=a;this.b.P[3][b]&=65295};h.Zc=function(a){return this.b.ta[3][(a>>1&7)+8]}; +h.Ld=function(a,b){b=(b>>1&7)+8;this.b.ta[3][b]=a;this.b.P[3][b]&=65295};h.fb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};h.kb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};h.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};h.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};h.Qc=function(){return this.b.u[7]};h.Cd=function(a){this.b.u[7]=a};h.gb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]}; h.lb=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};h.Oc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[1]};h.Ad=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[1]=a};h.Pc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[3]};h.Bd=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[3]=a};h.yc=function(a){return this.b.gc[a-65504>>1]};h.md=function(a,b){this.b.gc[b-65504>>1]=a};h.dc=function(a){return 65520==a?61183:0};h.jc=function(){}; h.Yc=function(){return 1};h.Kd=function(){};h.xc=function(){return this.b.Z};h.ld=function(){this.b.Z=0};h.Ec=function(){return this.b.fc};h.sd=function(a,b){b&1||(a&=255);this.b.fc=a};h.Jc=function(a){return a?this.b.Pb:0};h.vd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Pb=a;b.G|=2};h.Xc=function(a){return a?this.b.Pa&65280:0};h.Jd=function(a){this.b.Pa=a|255};h.Mc=function(){return Lb(this.b)};h.yd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.G|=128}; h.ic=function(a,b){D(this)&&C(this,"writeIgnored("+na(b)+"): "+na(a),!0,!0)}; @@ -90,179 +90,179 @@ if(sb){var yc=new ArrayBuffer(2);(new DataView(yc)).setUint16(0,256,!0);xc=256== function I(a,b,c,d,e,f){this.w=a;this.id=Ac+=2;this.b=null;this.C=b;this.vb=c;this.size=d||0;this.type=e||Bc;this.f=e==Cc;this.controller=null;Sb(this);this.Ja=this.pc=!1;if(d)if(f)this.controller=f,this.b=null,Dc(this,f.mc);else if(sb)this.A=new ArrayBuffer(d),this.F=new DataView(this.A,0,d),this.B=new Uint8Array(this.A,0,d),this.J=new Uint16Array(this.A,0,d>>1),this.b=new Int32Array(this.A,0,d>>2),Dc(this,zc?Ec:Fc);else{this.b=Array(d>>2);for(a=0;a>2),b=0;b>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a,b){a&1&&oc(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},ra:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= -this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ja=!0},T:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,1,c.M)&&c.da(!0)}return this.Mb(a,b)},ba:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,2,c.M)&&c.da(!0)}return this.Nb(a,b)},pa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a, +l(this.C),!0),this.i.da());return 255},D:function(a,b){this.i&&D(this.i,128)&&(C(this.i,"attempt to write "+l(b,4,!0)+" to invalid block %"+l(this.C),!0),this.i.da())},M:function(a,b){return this.Eb(a++,b++)|this.Eb(a,b)<<8},H:function(a,b,c){this.Hb(a++,b&255,c++);this.Hb(a,b>>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a,b){a&1&&oc(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},sa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= +this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ja=!0},T:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,1,c.M)&&c.da(!0)}return this.Mb(a,b)},ba:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,2,c.M)&&c.da(!0)}return this.Nb(a,b)},qa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a, 1,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Sb(a,b,c)},xa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a,2,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Tb(a,b,c)},R:function(a){return this.B[a]},U:function(a,b){a=this.B[a];this.i&&D(this.i,128)&&C(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},aa:function(a,b){a&1&&oc(this.w,b);return this.F.getUint16(a,!0)},fa:function(a,b){a&1&&oc(this.w,b);a=this.J[a>>1];this.i&&D(this.i,128)&&C(this.i,"Memory.readWord("+ -J(this.i,b)+"): "+J(this.i,a),!0);return a},oa:function(a,b){this.B[a]=b;this.Ja=!0},Ra:function(a,b,c){this.B[a]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},wa:function(a,b,c){a&1&&oc(this.w,c);this.F.setUint16(a,b,!0);this.Ja=!0},ya:function(a,b,c){a&1&&oc(this.w,c);this.J[a>>1]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}}; -function Sb(a,b,c){a.i=b;a.g=a.I=0;c&&((a.g=c.g)&&Jc(a,Ic,!1),(a.I=c.I)&&Hc(a,Ic,!1))}function Lc(a,b){b?--a.I||(a.Hb=a.f?a.D:a.Sb,a.wb=a.f?a.H:a.Tb):--a.g||(a.Eb=a.Mb,a.ta=a.Nb)}function Hc(a,b,c){c&&a.I||(a.Hb=!a.f&&b[1]||a.D,a.wb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Sb=b[1]||a.D,a.Tb=b[3]||a.H}function Jc(a,b,c){c&&a.g||(a.Eb=b[0]||a.K,a.ta=b[2]||a.M);if(c||void 0===c)a.Mb=b[0]||a.K,a.Nb=b[2]||a.M}function Dc(a,b){b||(b=Mc);Jc(a,b,void 0);Hc(a,b,void 0)} -var Mc=[],Gc=[I.prototype.V,I.prototype.ra,I.prototype.ma,I.prototype.Wa],Ic=[I.prototype.T,I.prototype.pa,I.prototype.ba,I.prototype.xa];if(sb)var Fc=[I.prototype.R,I.prototype.oa,I.prototype.aa,I.prototype.wa],Ec=[I.prototype.U,I.prototype.Ra,I.prototype.fa,I.prototype.ya]; +J(this.i,b)+"): "+J(this.i,a),!0);return a},pa:function(a,b){this.B[a]=b;this.Ja=!0},Ra:function(a,b,c){this.B[a]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},wa:function(a,b,c){a&1&&oc(this.w,c);this.F.setUint16(a,b,!0);this.Ja=!0},ya:function(a,b,c){a&1&&oc(this.w,c);this.J[a>>1]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}}; +function Sb(a,b,c){a.i=b;a.g=a.I=0;c&&((a.g=c.g)&&Jc(a,Ic,!1),(a.I=c.I)&&Hc(a,Ic,!1))}function Lc(a,b){b?--a.I||(a.Hb=a.f?a.D:a.Sb,a.wb=a.f?a.H:a.Tb):--a.g||(a.Eb=a.Mb,a.oa=a.Nb)}function Hc(a,b,c){c&&a.I||(a.Hb=!a.f&&b[1]||a.D,a.wb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Sb=b[1]||a.D,a.Tb=b[3]||a.H}function Jc(a,b,c){c&&a.g||(a.Eb=b[0]||a.K,a.oa=b[2]||a.M);if(c||void 0===c)a.Mb=b[0]||a.K,a.Nb=b[2]||a.M}function Dc(a,b){b||(b=Mc);Jc(a,b,void 0);Hc(a,b,void 0)} +var Mc=[],Gc=[I.prototype.V,I.prototype.sa,I.prototype.ma,I.prototype.Wa],Ic=[I.prototype.T,I.prototype.qa,I.prototype.ba,I.prototype.xa];if(sb)var Fc=[I.prototype.R,I.prototype.pa,I.prototype.aa,I.prototype.wa],Ec=[I.prototype.U,I.prototype.Ra,I.prototype.fa,I.prototype.ya]; function Nc(a,b){r.call(this,"CPU",a,Nc,1);var c=a.multiplier||1;this.Ga=a.cycles||b;this.Ma=c;this.Ya=Math.round(this.Ga/1E4)/100;this.Ua=this.Ya*this.Ma;this.v.ca=!1;this.v.Qb=!1;this.v.mb=a.autoStart;this.v.$a=!1;this.qb=this.ma=0;this.rb=a.csStart;this.bb=a.csInterval;this.cb=a.csStop;this.K=[];this.bc=this.fd.bind(this);H(this)}u(Nc);var Oc=["power","reset"];h=Nc.prototype; -h.Ca=function(a,b,c,d){this.D=a;this.w=b;this.i=d;for(b=0;b=a.ma&&(a.ma+=a.bb,c=!0);0<=a.cb&&a.cb<=Uc(a)&&(a.bb=a.cb=-1,Rc(a),a.da(),c=!0);c&&a.j(Uc(a)+" cycles: checksum="+l(a.qb))}} -h.qa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.I[b]=c,!0;case "run":return this.I[b]=c,c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.v.ha)a=!0;else{var b=null,c,k=kb(a.id);for(c=0;ca.V/a.Ua?b=1:d=!0;a.Ma=b;b=a.Ya*a.Ma;if(a.Ua!=b){a.Ua=b;b=a.Ua.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.D&&a.D.ub()}Wc(a,a.T);a.T=0;a.R=za();a.aa=0;Xc(a);return d}function pc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function rc(a,b,c){0<=b&&ba.K[b][0]&&(c=a.Ga*a.Ma/1E3*c|0,a.K[b][0]=c+Yc(a))} function Zc(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function $c(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Yc(a,b){var c=a.ba-=a.b;a.b=0;b&&(a.ba=0);return c} -h.fd=function(){if(this.v.ca){this.nb>=this.Ga&&Xc(this,!0);this.ra=0;this.Fa=za();if(this.aa){var a=this.Fa-this.aa;a>this.Ab&&(this.R+=a,this.R>this.Fa&&(this.R=this.Fa))}try{do{var b=Zc(this,this.v.$a?1:this.Qa);try{this.jb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.ra+=b;this.T+=b;Tc(this,b);$c(this,b);this.oa-=b;if(0>=this.oa){this.oa+=this.Qa;15<=++this.Cb&&(this.D&&this.D.$(),this.Cb=0);break}}while(this.v.ca)}catch(e){this.da();this.D&&this.D.stop(za(),Uc(this));rb(this, -e.stack||e.message);return}if(this.v.ca){a=setTimeout;b=this.bc;this.aa=za();var c=this.Ab;this.ra&&(c=Math.round(c*this.ra/this.Qa));var c=c-(this.aa-this.Fa),d=this.aa-this.R;d&&(this.V=Math.round(this.T/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.Vc&&(this.R-=c),c=0;this.nb+=this.ra;this.aa+=c;a(b,c)}}}; +h.fd=function(){if(this.v.ca){this.nb>=this.Ga&&Xc(this,!0);this.sa=0;this.Fa=za();if(this.aa){var a=this.Fa-this.aa;a>this.Ab&&(this.R+=a,this.R>this.Fa&&(this.R=this.Fa))}try{do{var b=Zc(this,this.v.$a?1:this.Qa);try{this.jb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.sa+=b;this.T+=b;Tc(this,b);$c(this,b);this.pa-=b;if(0>=this.pa){this.pa+=this.Qa;15<=++this.Cb&&(this.D&&this.D.$(),this.Cb=0);break}}while(this.v.ca)}catch(e){this.da();this.D&&this.D.stop(za(),Uc(this));rb(this, +e.stack||e.message);return}if(this.v.ca){a=setTimeout;b=this.bc;this.aa=za();var c=this.Ab;this.sa&&(c=Math.round(c*this.sa/this.Qa));var c=c-(this.aa-this.Fa),d=this.aa-this.R;d&&(this.V=Math.round(this.T/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.Vc&&(this.R-=c),c=0;this.nb+=this.sa;this.aa+=c;a(b,c)}}}; h.ib=function(a){if(qb(this))return!1;if(this.v.ca)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.ca=!0;this.v.Qb=!0;var b=this.I.run;b&&(b.textContent="Halt");this.D&&(a&&this.D.ub(!0),this.D.start(this.R,Uc(this)));setTimeout(this.bc,0);return!0};h.jb=function(){return 0};h.da=function(a){if(this.v.ca){Yc(this);Wc(this,this.T);this.T=0;this.v.ca=!1;var b=this.I.run;b&&(b.textContent="Run");this.D&&this.D.stop(za(),Uc(this))}this.v.complete=a}; function ad(a){this.ab=+a.model||1170;this.xb=a.addrReset||0;Nc.call(this,a,6666667);this.decode=1120==this.ab?bd.bind(this):cd.bind(this);dd(this);this.A=0;this.U=null;this.v.complete=this.v.oc=!1}u(ad,Nc);h=ad.prototype;h.reset=function(){this.status("model "+this.ab);this.v.ca&&this.da();dd(this);Qc(this);this.v.error=!1;this.parent.reset.call(this)}; -function dd(a){a.N=65536;a.O=32768;a.X=65535;a.S=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.xb];a.Ea=[0,0,0,0,0,0];a.va=[0,0,0,0];a.B=0;a.xa=0;a.sc=[4,2,0,1];a.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.sa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.gc=[0,0,0,0,0,0,0,0];a.fc=0;a.G=0;a.H=a.J=0;a.g=a.f=a.Xa=0;a.pa=-1;ed(a)}function ed(a){a.Pa=255;a.Z=0;a.Pb=0;a.F=0;a.Na=0;a.tb=0;a.Oa=0;a.La=0;a.wa=0;a.Za=262143;a.ya=253952;a.G|=2;a.w&&tc(a)}function tc(a){a.La?(a.M=65536,a.Y=a.rc,a.ta=a.cd,a.wb=a.Pd,Vb(a.w,a.Oa&16?22:18)):(a.M=0,a.Y=a.qc,a.ta=a.ec,a.wb=a.kc,Vb(a.w,16))}h.Zb=function(){return 0}; +function dd(a){a.N=65536;a.O=32768;a.X=65535;a.S=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.xb];a.Ea=[0,0,0,0,0,0];a.va=[0,0,0,0];a.B=0;a.xa=0;a.sc=[4,2,0,1];a.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.ta=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.gc=[0,0,0,0,0,0,0,0];a.fc=0;a.G=0;a.H=a.J=0;a.g=a.f=a.Xa=0;a.qa=-1;ed(a)}function ed(a){a.Pa=255;a.Z=0;a.Pb=0;a.F=0;a.Na=0;a.tb=0;a.Oa=0;a.La=0;a.wa=0;a.Za=262143;a.ya=253952;a.G|=2;a.w&&tc(a)}function tc(a){a.La?(a.M=65536,a.Y=a.rc,a.oa=a.cd,a.wb=a.Pd,Vb(a.w,a.Oa&16?22:18)):(a.M=0,a.Y=a.qc,a.oa=a.ec,a.wb=a.kc,Vb(a.w,16))}h.Zb=function(){return 0}; h.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.fa,this.Ma]);a.set(2,cc(this.w));return a.data()};h.restore=function(a){var b=a[1];this.fa=b[1];Vc(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c>14&3;c=a.L>>14&3;a.B!=c&&(a.va[c]=a.u[6],a.u[6]=a.va[a.B]);a.L=b;a.G|=2}function P(a,b){a.G&128||(a.S=a.X=b,a.O=0)}function Cd(a,b,c){a.G&128||(a.S=a.X=a.N=b,a.O=c||0)}function Dd(a,b,c,d){a.G&128||(a.S=a.X=a.N=b,a.O=(c^b)&(d^b))}function Ed(a,b){a.G&128||(a.S=a.X=a.N=b,a.O=a.S^a.N>>1)}function Fd(a,b,c,d){a.G&128||(a.S=a.X=a.N=b,a.O=(c^d)&(d^b))} -h.ea=function(a,b){if(!this.A){var c=!1;0>this.pa?this.pa=Lb(this):this.B||(a=4,c=!0);this.F&57344||(this.Na=63222,this.tb=a);this.B=0;var d=this.ta(a|this.M),e=this.ta(a+2&65535|this.M);vc(this,e&-12289|this.pa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Gd(this,this.pa);Gd(this,this.u[7]);O(this,d);this.G&=-113;this.pa=-1;if(26!=b)throw a;}};function Hd(a){var b=Id(a),c=Id(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);O(a,b);vc(a,c);a.G&=-17} -function Jd(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.B]||(d&=7);e=a.P[a.B][d];f=(a.sa[a.B][d]<<6)+(b&8191)&a.Za;if(ff){if(3932160<=f){f&=262143;var k=f>>13&31;31>k?a.Oa&32&&(f=a.uc[k]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? -192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.P[a.B][d]=e;if(4194170!==f||a.B)a.wa=a.B,a.xa=d;g&&(g&57344&&(0<=a.pa&&(g|=128),a.F&57344||(a.F=a.F|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.F&61440||!(4191360>f||4194239c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.ta(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.ta(e)|g; -a.b-=8;break;case 6:return e=Bd(a),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=Bd(a),e=e+a.u[c]&65535,e=a.ta(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.F&57344||(a.Na=a.Na<<8|f<<3&248|c);6==c&&!a.B&&d&4&&0>=f&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.G|=64));return e}h.Bb=function(a){if(!this.La)return this.w.Bb(a);this.A++;a=Kd(this,Jd(this,a,3));this.A--;return a}; -h.pb=function(a){if(!this.La)return this.w.pb(a);this.A++;a=this.ec(Jd(this,a,2));this.A--;return a};h.hb=function(a,b){this.La?(this.A++,Ld(this,Jd(this,a,5),b),this.A--):this.w.hb(a,b)};h.Gb=function(a,b){this.La?(this.A++,this.kc(Jd(this,a,4),b),this.A--):this.w.Gb(a,b)};h.qc=function(a,b,c){return Md(this,a,b,c)};h.rc=function(a,b,c){return Jd(this,Md(this,a,b,c),c)};h.ec=function(a){return this.w.na(a)};h.cd=function(a){return this.w.na(Jd(this,a,2))};h.kc=function(a,b){this.w.Va(a,b&65535)}; -h.Pd=function(a,b){this.w.Va(Jd(this,a,4),b)};function Nd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Md(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.B=a.L>>12&3,c=a.ta(d|c&a.M),a.B=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.va[a.L>>12&3];return c}function Od(a,b,c,d){a.F&57344||(a.Na=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Md(a,b,e,4),c&65536||(e&=65535),a.B=a.L>>12&3,e=Jd(a,e|c&65536,4),a.B=a.L>>14&3,a.w.Va(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.va[a.L>>12&3]=d} -function Pd(a,b){b>>=6;var c=a.J=b&7;return(b=a.H=(b&56)>>3)?Kd(a,a.Y(b,c,3)):a.u[c]&255}function Qd(a,b){b>>=6;var c=a.J=b&7;return(b=a.H=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]}function Rd(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Md(a,b,c,8)}function Sd(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Kd(a,a.Y(b,c,3)):a.u[c]&255}function Td(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]} -function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Xa=a.Y(b,e,7),Ld(a,e,d.call(a,c,Kd(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Y(b,e,6),a.w.Va(e,d.call(a,c,a.w.na(e)))):a.u[e]=d.call(a,c,a.u[e])}function Ud(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Ld(a,a.Y(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Vd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.Va(a.Y(b,d,4),c):a.u[d]=c&65535;return c} +function gd(a){return a.O&32768?2:0}function Ad(a){return a.X&65535?0:4}h.Da=function(){return this.S&32768?8:0};function Bd(a){var b=a.u[7];a.F&57344||(a.Na=0,a.tb=b);a.u[7]=b+2&65535;return a.oa(b)}function Cd(a,b){var c=a.u[7];a.u[7]=c+b&65535;return c}function O(a,b){a.u[7]=b&65535}function sc(a,b){return{jd:a,eb:b,next:null}}function qc(a,b){if(b!=a.U){var c=a.U;if(!c||c.eb<=b.eb)b.next=c,a.U=b;else{do{var d=c.next;if(!d||d.eb<=b.eb){b.next=d;c.next=b;break}c=d}while(c)}}a.G|=2} +function Lb(a){return a.L=a.L&63728|a.Da()|Ad(a)|gd(a)|fd(a)}function vc(a,b){a.S=b<<12;a.X=~b&4;a.O=b<<14;a.N=b<<16;if((b^a.L)&2048)for(var c=a.Ea.length;0<=--c;){var d=a.u[c];a.u[c]=a.Ea[c];a.Ea[c]=d}a.B=b>>14&3;c=a.L>>14&3;a.B!=c&&(a.va[c]=a.u[6],a.u[6]=a.va[a.B]);a.L=b;a.G|=2}function P(a,b){a.G&128||(a.S=a.X=b,a.O=0)}function Dd(a,b,c){a.G&128||(a.S=a.X=a.N=b,a.O=c||0)}function Ed(a,b,c,d){a.G&128||(a.S=a.X=a.N=b,a.O=(c^b)&(d^b))}function Fd(a,b){a.G&128||(a.S=a.X=a.N=b,a.O=a.S^a.N>>1)} +function Gd(a,b,c,d){a.G&128||(a.S=a.X=a.N=b,a.O=(c^d)&(d^b))}h.ea=function(a,b){if(!this.A){var c=!1;0>this.qa?this.qa=Lb(this):this.B||(a=4,c=!0);this.F&57344||(this.Na=63222,this.tb=a);this.B=0;var d=this.oa(a|this.M),e=this.oa(a+2&65535|this.M);vc(this,e&-12289|this.qa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Hd(this,this.qa);Hd(this,this.u[7]);O(this,d);this.G&=-113;this.qa=-1;if(26!=b)throw a;}};function Id(a){var b=Jd(a),c=Jd(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);O(a,b);vc(a,c);a.G&=-17} +function Kd(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.B]||(d&=7);e=a.P[a.B][d];f=(a.ta[a.B][d]<<6)+(b&8191)&a.Za;if(ff){if(3932160<=f){f&=262143;var k=f>>13&31;31>k?a.Oa&32&&(f=a.uc[k]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? +192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.P[a.B][d]=e;if(4194170!==f||a.B)a.wa=a.B,a.xa=d;g&&(g&57344&&(0<=a.qa&&(g|=128),a.F&57344||(a.F=a.F|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.F&61440||!(4191360>f||4194239c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.oa(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.oa(e)|g; +a.b-=8;break;case 6:return e=a.oa(Cd(a,2)),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=a.oa(Cd(a,2)),e=e+a.u[c]&65535,e=a.oa(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.F&57344||(a.Na=a.Na<<8|f<<3&248|c);6==c&&!a.B&&d&4&&0>=f&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.G|=64));return e}h.Bb=function(a){if(!this.La)return this.w.Bb(a);this.A++;a=Ld(this,Kd(this,a,3));this.A--;return a}; +h.pb=function(a){if(!this.La)return this.w.pb(a);this.A++;a=this.ec(Kd(this,a,2));this.A--;return a};h.hb=function(a,b){this.La?(this.A++,Md(this,Kd(this,a,5),b),this.A--):this.w.hb(a,b)};h.Gb=function(a,b){this.La?(this.A++,this.kc(Kd(this,a,4),b),this.A--):this.w.Gb(a,b)};h.qc=function(a,b,c){return Nd(this,a,b,c)};h.rc=function(a,b,c){return Kd(this,Nd(this,a,b,c),c)};h.ec=function(a){return this.w.na(a)};h.cd=function(a){return this.w.na(Kd(this,a,2))};h.kc=function(a,b){this.w.Va(a,b&65535)}; +h.Pd=function(a,b){this.w.Va(Kd(this,a,4),b)};function Od(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Nd(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.B=a.L>>12&3,c=a.oa(d|c&a.M),a.B=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.va[a.L>>12&3];return c}function Pd(a,b,c,d){a.F&57344||(a.Na=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Nd(a,b,e,4),c&65536||(e&=65535),a.B=a.L>>12&3,e=Kd(a,e|c&65536,4),a.B=a.L>>14&3,a.w.Va(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.va[a.L>>12&3]=d} +function Qd(a,b){b>>=6;var c=a.J=b&7;return(b=a.H=(b&56)>>3)?Ld(a,a.Y(b,c,3)):a.u[c]&255}function Rd(a,b){b>>=6;var c=a.J=b&7;return(b=a.H=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]}function Sd(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Nd(a,b,c,8)}function Td(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Ld(a,a.Y(b,c,3)):a.u[c]&255}function Ud(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]} +function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Xa=a.Y(b,e,7),Md(a,e,d.call(a,c,Ld(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Y(b,e,6),a.w.Va(e,d.call(a,c,a.w.na(e)))):a.u[e]=d.call(a,c,a.u[e])}function Vd(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Md(a,a.Y(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Wd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.Va(a.Y(b,d,4),c):a.u[d]=c&65535;return c} function S(a,b,c){c&&(O(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3} -h.jb=function(a){this.v.complete=!0;var b=this.v.oc=this.i&&Wd(this.i),c=a?this.v.Qb?0:1:-1;this.v.Qb=!1;this.ba=this.b=a;do{if(b){if(Xd(this.i,this.u[7],c)){this.da();break}c=1}if(this.G&&(this.G&112&&(this.G&32?this.ea(168,28):this.G&64?this.ea(4,30):this.G&16&&this.ea(12,32),this.G&=-113),this.G&7))if(this.G&2){this.G&=-3;var d=160,e=(this.Pb&224)>>5;if(a=this.U&&this.U.eb>e?this.U:null)d=a.jd,e=a.eb;e>(this.L&224)>>5?(this.G&4&&(this.u[7]=this.u[7]+2&65535,this.G&=-5),this.ea(d,26),e=!0):e=!1; -if(e&&a)if(e=this.U,e==a)this.U=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.G&1&&this.G++;this.F&57344||(this.Na=0,this.tb=this.u[7]);this.G=this.G&7|this.L&16;this.decode(Bd(this))}while(0>1|b<<16;Ed(this,a);return a&65535}function ce(a,b){a=b&2048|b>>1|b<<8;Ed(this,a<<8);return a&255}function de(a,b){a=b&~a;P(this,a);return a}function ee(a,b){a=b&~a;P(this,a<<8);return a}function fe(a,b){a|=b;P(this,a);return a}function ge(a,b){a|=b;P(this,a<<8);return a} -function he(a,b){a=~b|65536;Cd(this,a);return a&65535}function ie(a,b){a=~b|256;Cd(this,a<<8);return a&255}function je(a,b){a=b-a;this.G&128||(this.S=this.X=a,this.O=b&(b^a));return a&65535}function ke(a,b){a=b-a;var c=a<<8;b<<=8;this.G&128||(this.S=this.X=c,this.O=b&(b^c));return a&255}function le(a,b){a=b+a;this.G&128||(this.S=this.X=a,this.O=a&(b^a));return a&65535}function me(a,b){a=b+a;var c=a<<8;this.G&128||(this.S=this.X=c,this.O=c&(b<<8^c));return a&255} -function ne(a,b){a=-b;Cd(this,a,a&b&32768);return a&65535}function oe(a,b){a=-b;Cd(this,a<<8,(a&b&128)<<8);return a&255}function pe(a,b){a=b<<1|this.N>>16&1;Ed(this,a);return a&65535}function qe(a,b){a=b<<1|this.N>>16&1;Ed(this,a<<8);return a&255}function re(a,b){a=(this.N&65536|b)>>1|b<<16;Ed(this,a);return a&65535}function se(a,b){a=((this.N&65536)>>8|b)>>1|b<<8;Ed(this,a<<8);return a&255}function te(a,b){var c=b-a;Fd(this,c,a,b);return c&65535} -function ue(a,b){var c=b-a;Fd(this,c<<8,a<<8,b<<8);return c&255}function ve(a,b){this.G&128||(this.S=this.X=b&65280,this.O=this.N=0);return(b<<8|b>>8)&65535}function we(a,b){a^=b;P(this,a);return a&65535}function xe(a){R(this,a,Qd(this,a),Yd);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} -function ye(a){var b=Td(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.N=this.O=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.O=32768)}this.u[a]=c&65535;this.S=this.X=c;this.b-=(this.g?6:7)+b} -function ze(a){var b=Td(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.N=this.O=0;b&=63;if(b&32){b=64-b;32>b-1;this.N=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.u[a|1]=d&65535;this.S=d>>16;this.X=d>>16|d;this.b-=(this.g?6:7)+b}function Ae(a){S(this,a,!fd(this))}function Be(a){S(this,a,fd(this))} -function Ce(a){R(this,a,Qd(this,a),de);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function De(a){Q(this,a,Pd(this,a),ee);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ee(a){R(this,a,Qd(this,a),fe);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Fe(a){Q(this,a,Pd(this,a),ge);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} -function Ge(a){P(this,Qd(this,a)&Td(this,a));this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function He(a){P(this,(Pd(this,a)&Sd(this,a))<<8);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ie(a){S(this,a,Ad(this))}function Je(a){S(this,a,!this.Da()==!gd(this))}function Ke(a){S(this,a,!Ad(this)&&!this.Da()==!gd(this))}function Le(a){S(this,a,!fd(this)&&!Ad(this))}function Me(a){S(this,a,Ad(this)||!this.Da()!=!gd(this))} -function Ne(a){S(this,a,fd(this)||Ad(this))}function Oe(a){S(this,a,!this.Da()!=!gd(this))}function Pe(a){S(this,a,this.Da())}function Qe(a){S(this,a,!Ad(this))}function Re(a){S(this,a,!this.Da())}function Se(){this.ea(12,1);this.b-=5}function Te(a){S(this,a,!0)}function Ue(a){S(this,a,!gd(this))}function Ve(a){S(this,a,gd(this))}function T(a){a&1&&(this.N=0);a&2&&(this.O=0);a&4&&(this.X=1);a&8&&(this.S=0);this.b-=5} -function We(a){var b=Qd(this,a);a=Td(this,a);Fd(this,b-a,a,b);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Xe(a){var b=Pd(this,a)<<8;a=Sd(this,a)<<8;Fd(this,b-a,a,b);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)} -function Ye(a){var b=Td(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.N=this.O=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.X=d>>16|d,this.S=d>>16):(this.O=32768,this.X=d>>15|d,this.S=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.S=0,this.O=32768,this.N=65536,this.b-=7}function Ze(){this.ea(24,2);this.b-=25}function $e(){this.L&49152?(this.Z|=128,this.ea(4,3)):this.da();this.b-=7} -function af(){this.ea(16,4);this.b-=25}var bf=[0,7,7,10,7,11,9,13];function cf(a){var b=this.b;O(this,Rd(this,a));this.b=b-bf[this.g]}var df=[0,14,14,17,14,18,16,20];function ef(a){var b=this.b,c=Rd(this,a);a=a>>6&7;Gd(this,this.u[a]);this.u[a]=this.u[7];O(this,c);this.b=b-df[this.g]}var ff=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function gf(a){var b=Qd(this,a),c=this.b;P(this,Vd(this,a,b));this.b=c-ff[(this.H?8:0)+this.g]+(7!=this.f||this.g?0:2)} -function hf(a){var b=Pd(this,a);P(this,Ud(this,a,b,1)<<8);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var jf=[7,13,13,17,14,18,17,21];function kf(a){var b=Td(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.G&128||(this.S=b>>16,this.X=this.S|b,this.O=0,this.N=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)O(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function qf(a){R(this,a,Qd(this,a),te);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} -function rf(a){R(this,a,0,ve);this.b-=this.g?9:3+(7==this.f?2:0)}function sf(){this.ea(28,5);this.b-=5}function tf(){this.G&4||this.D.$();this.G|=4;this.u[7]=this.u[7]+-2&65535;this.b-=3}function uf(a){R(this,a,Qd(this,a),we);this.b-=this.g?9:3+(7==this.f?2:0)}function V(a){var b;if(b=this.i)b=this.i,C(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function bd(a){vf[a>>12].call(this,a)}function wf(a){xf[a>>6&3].call(this,a)}function yf(a){zf[a>>6&3].call(this,a)} -function Af(a){Bf[a>>6&3].call(this,a)}function Cf(a){Df[a&15].call(this,a)}function Ef(a){Ff[a&15].call(this,a)}function Gf(a){Hf[a>>6&3].call(this,a)}function If(a){Jf[a>>6&3].call(this,a)}function Kf(a){Lf[a>>6&3].call(this,a)} -var vf=[function(a){Mf[a>>8&15].call(this,a)},gf,We,Ge,Ce,Ee,xe,V,function(a){fg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,qf,V],Mf=[function(a){gg[a>>4&15].call(this,a)},Te,Qe,Ie,Je,Oe,Ke,Me,ef,ef,wf,yf,Af,V,V,V],xf=[function(a){Cd(this,Vd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,he);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,le);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,je);this.b-=this.g?9:3+(7==this.f?2:0)}],zf=[function(a){R(this,a,0, -ne);this.b-=this.g?11:6},function(a){R(this,a,fd(this)?1:0,Yd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,fd(this)?1:0,te);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Td(this,a);Cd(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Bf=[function(a){R(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,pe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,$d);this.b-=this.g?9:3+(7==this.f?2:0)}], -gg=[function(a){hg[a&15].call(this,a)},V,V,V,cf,cf,cf,cf,of,V,Cf,Ef,rf,rf,rf,rf],hg=[$e,tf,nf,Se,af,mf,V,V,V,V,V,V,V,V,V,V],Df=[lf,function(){this.N=0;this.b-=5},function(){this.O=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.S=0;this.b-=5},T,T,T,T,T,T,T],Ff=[lf,function(){this.N=65536;this.b-=5},function(){this.O=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.S=32768;this.b-=5},W,W,W,W,W,W,W],fg=[Re,Pe,Le,Ne,Ue,Ve,Ae,Be,Ze,sf,Gf,If,Kf,V,V,V],Hf=[function(a){Cd(this, -Ud(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,ke);this.b-=this.g?9:3+(7==this.f?2:0)}],Jf=[function(a){Q(this,a,0,oe);this.b-=this.g?11:6},function(a){Q(this,a,fd(this)?1:0,Zd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,fd(this)?1:0,ue);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Sd(this,a);Cd(this,a<<8);this.b-=this.g?4:3+(7== -this.f?2:0)}],Lf=[function(a){Q(this,a,0,se);this.b-=this.g?9+(this.Xa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,qe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ce);this.b-=this.g?9+(this.Xa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,ae);this.b-=this.g?9:3+(7==this.f?2:0)}];function cd(a){ig[a>>12].call(this,a)} -var ig=[function(a){jg[a>>8&15].call(this,a)},gf,We,Ge,Ce,Ee,xe,function(a){kg[a>>8&15].call(this,a)},function(a){lg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,qf,V],jg=[function(a){mg[a>>4&15].call(this,a)},Te,Qe,Ie,Je,Oe,Ke,Me,ef,ef,wf,yf,Af,function(a){ng[a>>6&3].call(this,a)},V,V],ng=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.ta(a|this.M);O(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Nd(this,a,0);Gd(this,a);P(this,a);this.b-=11},function(a){var b=Id(this),c= -this.b;Od(this,a,0,b);P(this,b);this.b=c-jf[this.g]},function(a){P(this,Vd(this,a,this.Da?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],mg=[function(a){og[a&15].call(this,a)},V,V,V,cf,cf,cf,cf,of,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.G|=1),this.b-=5):V.call(this,a)},Cf,Ef,rf,rf,rf,rf],og=[$e,tf,nf,Se,af,mf,function(){Hd(this);this.b-=13},V,V,V,V,V,V,V,V,V],kg=[kf,kf,Ye,Ye,ye,ye,ze,ze,uf,uf,V,V,V,V,pf,pf],lg=[Re,Pe,Le,Ne,Ue,Ve,Ae,Be,Ze,sf,Gf,If,Kf,function(a){pg[a>>6&3].call(this, -a)},V,V],pg=[V,function(a){a=Nd(this,a,65536);Gd(this,a);P(this,a);this.b-=11},function(a){var b=Id(this),c=this.b;Od(this,a,65536,b);P(this,b);this.b=c-jf[this.g]},V]; -function qg(a){r.call(this,"ROM",a,qg);this.ka=this.f=null;this.B=a.addr;this.g=a.size;this.A=a.alias;this.D=a.file;this.F=oa(this.D);if(this.D){a=this.D;var b=pa(this.F);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.D+"&format=bytes&decimal=true");var c=this;Ba(a,null,!0,function(a,b,f){f?c.ga("Unable to load ROM resource (error "+f+": "+a+")"):(jb(c.Ra,a,b),(a=Ca(a,b))?(c.f=a.ja,c.ka=a.ka):c.D=null,rg(c))})}}u(qg);qg.prototype.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;rg(this)}; -qg.prototype.Aa=function(){if(this.ka){if(this.i){var a=this.i,b=this.id,c=this.B,d=this.g,e=this.ka,f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var m=k.o,p=k.a;if(void 0!==m){var q=f,m=[m>>>0,g],v=ya(q,m,a.Vb);0>v&&q.splice(-(v+1),0,m)}p&&(k.a=p.replace(/''/g,'"'))}a.F.push({Ud:b,C:c,vc:d,ka:e,Ub:f})}delete this.ka}return!0};qg.prototype.za=function(){return!0}; -function rg(a){if(!pb(a)){if(a.D){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if(a.f.length!=a.g)rb(a,"ROM size ("+l(a.f.length,8,!0)+") does not match specified size ("+l(a.g,8,!0)+")");else{var b;b=a.B;if(Yb(a.w,b,a.g,Cc)){var c;for(c=0;c=b)a.preventDefault&&a.preventDefault(),64>5;if(a=this.U&&this.U.eb>e?this.U:null)d=a.jd,e=a.eb;e>(this.L&224)>>5?(this.G&4&&(Cd(this,2),this.G&=-5),this.ea(d,26),e=!0):e=!1;if(e&&a)if(e=this.U, +e==a)this.U=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.G&1&&this.G++;this.G=this.G&7|this.L&16;this.decode(Bd(this))}while(0>1|b<<16;Fd(this,a);return a&65535}function de(a,b){a=b&2048|b>>1|b<<8;Fd(this,a<<8);return a&255}function ee(a,b){a=b&~a;P(this,a);return a}function fe(a,b){a=b&~a;P(this,a<<8);return a}function ge(a,b){a|=b;P(this,a);return a}function he(a,b){a|=b;P(this,a<<8);return a}function ie(a,b){a=~b|65536;Dd(this,a);return a&65535} +function je(a,b){a=~b|256;Dd(this,a<<8);return a&255}function ke(a,b){a=b-a;this.G&128||(this.S=this.X=a,this.O=b&(b^a));return a&65535}function le(a,b){a=b-a;var c=a<<8;b<<=8;this.G&128||(this.S=this.X=c,this.O=b&(b^c));return a&255}function me(a,b){a=b+a;this.G&128||(this.S=this.X=a,this.O=a&(b^a));return a&65535}function ne(a,b){a=b+a;var c=a<<8;this.G&128||(this.S=this.X=c,this.O=c&(b<<8^c));return a&255}function oe(a,b){a=-b;Dd(this,a,a&b&32768);return a&65535} +function pe(a,b){a=-b;Dd(this,a<<8,(a&b&128)<<8);return a&255}function qe(a,b){a=b<<1|this.N>>16&1;Fd(this,a);return a&65535}function re(a,b){a=b<<1|this.N>>16&1;Fd(this,a<<8);return a&255}function se(a,b){a=(this.N&65536|b)>>1|b<<16;Fd(this,a);return a&65535}function te(a,b){a=((this.N&65536)>>8|b)>>1|b<<8;Fd(this,a<<8);return a&255}function ue(a,b){var c=b-a;Gd(this,c,a,b);return c&65535}function ve(a,b){var c=b-a;Gd(this,c<<8,a<<8,b<<8);return c&255} +function we(a,b){this.G&128||(this.S=this.X=b&65280,this.O=this.N=0);return(b<<8|b>>8)&65535}function xe(a,b){a^=b;P(this,a);return a&65535}function ye(a){R(this,a,Rd(this,a),Zd);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} +function ze(a){var b=Ud(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.N=this.O=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.O=32768)}this.u[a]=c&65535;this.S=this.X=c;this.b-=(this.g?6:7)+b} +function Ae(a){var b=Ud(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.N=this.O=0;b&=63;if(b&32){b=64-b;32>b-1;this.N=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.u[a|1]=d&65535;this.S=d>>16;this.X=d>>16|d;this.b-=(this.g?6:7)+b}function Be(a){S(this,a,!fd(this))}function Ce(a){S(this,a,fd(this))} +function De(a){R(this,a,Rd(this,a),ee);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ee(a){Q(this,a,Qd(this,a),fe);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Fe(a){R(this,a,Rd(this,a),ge);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ge(a){Q(this,a,Qd(this,a),he);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} +function He(a){P(this,Rd(this,a)&Ud(this,a));this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ie(a){P(this,(Qd(this,a)&Td(this,a))<<8);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Je(a){S(this,a,Ad(this))}function Ke(a){S(this,a,!this.Da()==!gd(this))}function Le(a){S(this,a,!Ad(this)&&!this.Da()==!gd(this))}function Me(a){S(this,a,!fd(this)&&!Ad(this))}function Ne(a){S(this,a,Ad(this)||!this.Da()!=!gd(this))} +function Oe(a){S(this,a,fd(this)||Ad(this))}function Pe(a){S(this,a,!this.Da()!=!gd(this))}function Qe(a){S(this,a,this.Da())}function Re(a){S(this,a,!Ad(this))}function Se(a){S(this,a,!this.Da())}function Te(){this.ea(12,1);this.b-=5}function Ue(a){S(this,a,!0)}function Ve(a){S(this,a,!gd(this))}function We(a){S(this,a,gd(this))}function T(a){a&1&&(this.N=0);a&2&&(this.O=0);a&4&&(this.X=1);a&8&&(this.S=0);this.b-=5} +function Xe(a){var b=Rd(this,a);a=Ud(this,a);Gd(this,b-a,a,b);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ye(a){var b=Qd(this,a)<<8;a=Td(this,a)<<8;Gd(this,b-a,a,b);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)} +function Ze(a){var b=Ud(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.N=this.O=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.X=d>>16|d,this.S=d>>16):(this.O=32768,this.X=d>>15|d,this.S=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.S=0,this.O=32768,this.N=65536,this.b-=7}function $e(){this.ea(24,2);this.b-=25}function af(){this.L&49152?(this.Z|=128,this.ea(4,3)):this.da();this.b-=7} +function bf(){this.ea(16,4);this.b-=25}var cf=[0,7,7,10,7,11,9,13];function df(a){var b=this.b;O(this,Sd(this,a));this.b=b-cf[this.g]}var ef=[0,14,14,17,14,18,16,20];function ff(a){var b=this.b,c=Sd(this,a);a=a>>6&7;Hd(this,this.u[a]);this.u[a]=this.u[7];O(this,c);this.b=b-ef[this.g]}var gf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function hf(a){var b=Rd(this,a),c=this.b;P(this,Wd(this,a,b));this.b=c-gf[(this.H?8:0)+this.g]+(7!=this.f||this.g?0:2)} +function jf(a){var b=Qd(this,a);P(this,Vd(this,a,b,1)<<8);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var kf=[7,13,13,17,14,18,17,21];function lf(a){var b=Ud(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.G&128||(this.S=b>>16,this.X=this.S|b,this.O=0,this.N=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)O(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function rf(a){R(this,a,Rd(this,a),ue);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} +function sf(a){R(this,a,0,we);this.b-=this.g?9:3+(7==this.f?2:0)}function tf(){this.ea(28,5);this.b-=5}function uf(){this.G&4||this.D.$();this.G|=4;Cd(this,-2);this.b-=3}function vf(a){R(this,a,Rd(this,a),xe);this.b-=this.g?9:3+(7==this.f?2:0)}function V(a){var b;if(b=this.i)b=this.i,C(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function bd(a){wf[a>>12].call(this,a)}function xf(a){yf[a>>6&3].call(this,a)}function zf(a){Af[a>>6&3].call(this,a)} +function Bf(a){Cf[a>>6&3].call(this,a)}function Df(a){Ef[a&15].call(this,a)}function Ff(a){Gf[a&15].call(this,a)}function Hf(a){If[a>>6&3].call(this,a)}function Jf(a){Kf[a>>6&3].call(this,a)}function Lf(a){Mf[a>>6&3].call(this,a)} +var wf=[function(a){fg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,ye,V,function(a){gg[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,rf,V],fg=[function(a){hg[a>>4&15].call(this,a)},Ue,Re,Je,Ke,Pe,Le,Ne,ff,ff,xf,zf,Bf,V,V,V],yf=[function(a){Dd(this,Wd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,ke);this.b-=this.g?9:3+(7==this.f?2:0)}],Af=[function(a){R(this,a,0, +oe);this.b-=this.g?11:6},function(a){R(this,a,fd(this)?1:0,Zd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,fd(this)?1:0,ue);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Ud(this,a);Dd(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Cf=[function(a){R(this,a,0,se);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,qe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ce);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ae);this.b-=this.g?9:3+(7==this.f?2:0)}], +hg=[function(a){ig[a&15].call(this,a)},V,V,V,df,df,df,df,pf,V,Df,Ff,sf,sf,sf,sf],ig=[af,uf,of,Te,bf,nf,V,V,V,V,V,V,V,V,V,V],Ef=[mf,function(){this.N=0;this.b-=5},function(){this.O=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.S=0;this.b-=5},T,T,T,T,T,T,T],Gf=[mf,function(){this.N=65536;this.b-=5},function(){this.O=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.S=32768;this.b-=5},W,W,W,W,W,W,W],gg=[Se,Qe,Me,Oe,Ve,We,Be,Ce,$e,tf,Hf,Jf,Lf,V,V,V],If=[function(a){Dd(this, +Vd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,je);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,ne);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,le);this.b-=this.g?9:3+(7==this.f?2:0)}],Kf=[function(a){Q(this,a,0,pe);this.b-=this.g?11:6},function(a){Q(this,a,fd(this)?1:0,$d);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,fd(this)?1:0,ve);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Td(this,a);Dd(this,a<<8);this.b-=this.g?4:3+(7== +this.f?2:0)}],Mf=[function(a){Q(this,a,0,te);this.b-=this.g?9+(this.Xa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,de);this.b-=this.g?9+(this.Xa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)}];function cd(a){jg[a>>12].call(this,a)} +var jg=[function(a){kg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,ye,function(a){lg[a>>8&15].call(this,a)},function(a){mg[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,rf,V],kg=[function(a){ng[a>>4&15].call(this,a)},Ue,Re,Je,Ke,Pe,Le,Ne,ff,ff,xf,zf,Bf,function(a){og[a>>6&3].call(this,a)},V,V],og=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.oa(a|this.M);O(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Od(this,a,0);Hd(this,a);P(this,a);this.b-=11},function(a){var b=Jd(this),c= +this.b;Pd(this,a,0,b);P(this,b);this.b=c-kf[this.g]},function(a){P(this,Wd(this,a,this.Da?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],ng=[function(a){pg[a&15].call(this,a)},V,V,V,df,df,df,df,pf,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.G|=1),this.b-=5):V.call(this,a)},Df,Ff,sf,sf,sf,sf],pg=[af,uf,of,Te,bf,nf,function(){Id(this);this.b-=13},V,V,V,V,V,V,V,V,V],lg=[lf,lf,Ze,Ze,ze,ze,Ae,Ae,vf,vf,V,V,V,V,qf,qf],mg=[Se,Qe,Me,Oe,Ve,We,Be,Ce,$e,tf,Hf,Jf,Lf,function(a){qg[a>>6&3].call(this, +a)},V,V],qg=[V,function(a){a=Od(this,a,65536);Hd(this,a);P(this,a);this.b-=11},function(a){var b=Jd(this),c=this.b;Pd(this,a,65536,b);P(this,b);this.b=c-kf[this.g]},V]; +function rg(a){r.call(this,"ROM",a,rg);this.ka=this.f=null;this.B=a.addr;this.g=a.size;this.A=a.alias;this.D=a.file;this.F=oa(this.D);if(this.D){a=this.D;var b=pa(this.F);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.D+"&format=bytes&decimal=true");var c=this;Ba(a,null,!0,function(a,b,f){f?c.ga("Unable to load ROM resource (error "+f+": "+a+")"):(jb(c.Ra,a,b),(a=Ca(a,b))?(c.f=a.ja,c.ka=a.ka):c.D=null,sg(c))})}}u(rg);rg.prototype.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;sg(this)}; +rg.prototype.Aa=function(){if(this.ka){if(this.i){var a=this.i,b=this.id,c=this.B,d=this.g,e=this.ka,f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var m=k.o,p=k.a;if(void 0!==m){var q=f,m=[m>>>0,g],v=ya(q,m,a.Vb);0>v&&q.splice(-(v+1),0,m)}p&&(k.a=p.replace(/''/g,'"'))}a.F.push({Ud:b,C:c,vc:d,ka:e,Ub:f})}delete this.ka}return!0};rg.prototype.za=function(){return!0}; +function sg(a){if(!pb(a)){if(a.D){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if(a.f.length!=a.g)rb(a,"ROM size ("+l(a.f.length,8,!0)+") does not match specified size ("+l(a.g,8,!0)+")");else{var b;b=a.B;if(Yb(a.w,b,a.g,Cc)){var c;for(c=0;c=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=va(b[0]);if(c!=this.Wa)return;b=va(b[1]);if(this.J=lb(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.K=d.receiveData){this.status(this.Ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.Aa=function(a,b){if(!b)if(this.cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -h.za=function(a){return a?this.save():!0};h.reset=function(){xg(this)};h.save=function(){var a=new N(this);a.set(0,[]);return a.data()};h.restore=function(){return xg(this)};function xg(a){a.R=0;a.f=0;a.g=128;a.B=[];return!0}h.Ob=function(a){if("number"==typeof a)this.B.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.T||8,c=a-this.H%a,this.T&&(b=ua("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.A.value+=b;this.A.scrollTop=this.A.scrollHeight;this.H+=c}else if(null!=this.F){if(10==a||1024<=this.F.length)this.j(this.F), -this.F="";10!=a&&(this.F+=String.fromCharCode(a))}this.g&=-129;rc(this.b,this.V,1)}};var yg={},wg=(yg[65392]=[null,null,X.prototype.Sc,X.prototype.Ed,"RCSR"],yg[65394]=[null,null,X.prototype.Rc,X.prototype.Dd,"RBUF"],yg[65396]=[null,null,X.prototype.ed,X.prototype.Rd,"XCSR"],yg[65398]=[null,null,X.prototype.dd,X.prototype.Qd,"XBUF"],yg);Ta(function(){for(var a=B(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.I[b]=c,!0;case "loadTape":return this.I[b]=c,c.onclick=function(){var a=d.I.listTapes;a&&Ag(d, -a.options[a.selectedIndex].text,a.value)},!0;case "mountTape":if(this.H)return this.I[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ag(d,oa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; -h.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;if((this.f=Pc(this.D,"autoMount")||this.f)&&"string"==typeof this.f)try{this.f=eval("("+this.f+")")}catch(e){n("PC11 auto-mount error: "+e.message+" ("+this.f+")"),this.f=null}mc(b,this,Bg);Cg(this,"None","",!0);this.H&&Cg(this,"Local Tape","?");Cg(this,"Remote Tape","??");Dg(this)||H(this)};h.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.za=function(a){return a?this.save():!0}; -h.reset=function(){this.g&=-2241;this.J=0};function Dg(a){a.A=0;if(a.f){var b=a.f.path,c;if(!(c=a.f.name))a:{if((c=a.I.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(d=pa(c),e="json"==d||"gz"==d?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(e,null,!0,function(d,e,f){var g=0>f&&a.D&&!a.D.v.ha;f?a.ga('Unable to load tape "'+b+'" (error '+f+": "+d+")",g):(jb(a.Ra,d,e),Ca(d,e)&&(a.B=c));a.v.Ia=!1;a.A&&(a.A--,a.A|| -H(a));Hg(a)})}function Cg(a,b,c,d){if((a=a.I.listTapes)&&a.options){for(var e=0;e=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Jg.prototype.$b=function(){return-1};Jg.prototype.ac=function(){}; -function Lg(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.U?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} -function Mg(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; +this.F="";10!=a&&(this.F+=String.fromCharCode(a))}this.g&=-129;rc(this.b,this.V,1)}};var zg={},xg=(zg[65392]=[null,null,X.prototype.Sc,X.prototype.Ed,"RCSR"],zg[65394]=[null,null,X.prototype.Rc,X.prototype.Dd,"RBUF"],zg[65396]=[null,null,X.prototype.ed,X.prototype.Rd,"XCSR"],zg[65398]=[null,null,X.prototype.dd,X.prototype.Qd,"XBUF"],zg);Ta(function(){for(var a=B(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.I[b]=c,!0;case "loadTape":return this.I[b]=c,c.onclick=function(){var a=d.I.listTapes;a&&Bg(d, +a.options[a.selectedIndex].text,a.value)},!0;case "mountTape":if(this.H)return this.I[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Bg(d,oa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; +h.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;if((this.f=Pc(this.D,"autoMount")||this.f)&&"string"==typeof this.f)try{this.f=eval("("+this.f+")")}catch(e){n("PC11 auto-mount error: "+e.message+" ("+this.f+")"),this.f=null}ec(b,this,Cg);Dg(this,"None","",!0);this.H&&Dg(this,"Local Tape","?");Dg(this,"Remote Tape","??");Eg(this)||H(this)};h.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.za=function(a){return a?this.save():!0}; +h.reset=function(){this.g&=-2241;this.J=0};function Eg(a){a.A=0;if(a.f){var b=a.f.path,c;if(!(c=a.f.name))a:{if((c=a.I.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(d=pa(c),e="json"==d||"gz"==d?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(e,null,!0,function(d,e,f){var g=0>f&&a.D&&!a.D.v.ha;f?a.ga('Unable to load tape "'+b+'" (error '+f+": "+d+")",g):(jb(a.Ra,d,e),Ca(d,e)&&(a.B=c));a.v.Ia=!1;a.A&&(a.A--,a.A|| +H(a));Ig(a)})}function Dg(a,b,c,d){if((a=a.I.listTapes)&&a.options){for(var e=0;e=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Kg.prototype.$b=function(){return-1};Kg.prototype.ac=function(){}; +function Mg(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.U?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} +function Ng(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} -function Ng(a,b,c){var d;if(b){b=Og(a,b);for(var e=0,f=!1,g=b,k=[],m=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Rg(a,b){if(b)return Qg(a,b,a.aa[b]);var c=0;for(b in a.aa)Qg(a,b,a.aa[b]),c++;return 0>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Sg(a,b){if(b)return Rg(a,b,a.aa[b]);var c=0;for(b in a.aa)Rg(a,b,a.aa[b]),c++;return 0this.b.ab?$g:[];ah(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(bh(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ia;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<this.b.ab?ah:[];bh(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(ch(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ia;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}h.ac=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; -h.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.tb).C));this.la&1073741824?this.wa.push(a):this.ra&&a==this.ra||(this.ra=a,this.la&-2147483648&&(this.da(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.oa=0,a.D.$()))}; -function Ug(a){var b;if(Wd(a)){if(!a.J||!a.J.length){a.J=Array(1E3);for(b=0;b>>d.ia],!1)}a.M=["br"];if(a.B)for(b=1;b>>d.ia],!0);a.B=["bw"];a.Xa=0} -h.Sa=function(a,b,c){var d=!0;c||lh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.C)),d=!1;else{var f=this.w;f.W[e>>>f.ia].Sa(e&f.w,a==this.B)}}d&&(a.push(b),c?b.Ba=!0:(mh(this,a,a.length-1,"set"),Ug(this)));return d};function lh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ia],b==a.B));k.Ba||Ug(a);break}}return f} -function nh(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.C-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= -gh(E);break;case 8:y="@"+gh(E);break;case 16:7>E?y="("+gh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+gh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+gh(E)+")";break;case 40:y="@-("+gh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+gh(E)+")";7==E&&(y=[y,J(x,F+w.C&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+gh(E)+")",7==E&&(y=[y,J(x,F+w.C&65535)])}x=y;if(!x||!x.length){k="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=gh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function sh(a){var b,c="";for(b=0;6>b;b++)c+=rh(a,b);c=c+"\n"+(rh(a,6)+rh(a,7)+rh(a,20));return c+=qh(a,"T")+qh(a,"N")+qh(a,"Z")+qh(a,"V")+qh(a,"C")}h.Vb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,k=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.D.$();a.j("updated registers:")}a.j(sh(a));c&&(a.K=Z(d.u[7]),jh(a,J(a,a.K.C)))}}function xh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1k[0].indexOf("+"))){var p=k[0]+":";k[2]&&(p+=" "+k[2]);a.j(p)}k[3]&&(g=k[3],f=null);f=ph(a,b,g,f);a.j(f);a.K=b;e-=b.C-m;c++}}} -function oh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.U&&(a.j("ended assemble at "+J(a,a.T.C)),a.K=a.T,a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ra=null;if(pb(a)&&0q||"z"ja.length&&(a.j("note: only "+ja.length+" available"),Y=ja.length);ca-=Y;0>ca&&(null==ja[ja.length-1].C?(Y=ca+Y,ca=0):ca+=ja.length);var kd=[];"call"==Sf&&(vb=1E5,kd=["CALL"]);for(void 0!==Rf&&a.j(Y+" instructions earlier:");0=ja.length&&(ca=0);a.Ya=Y;Uf++;vb--}}Uf||(a.j("no "+Tf+"history available"),a.Ya=void 0)}else{var xb=bh(a,ia);if(xb){var ec=0;Fa&&("l"==Fa.charAt(0)&&(Fa=Fa.substr(1)||Rh),ec=Pg(a,Fa)>>>0,65536>4||1;Th--&&0hc?String.fromCharCode(hc):".";fc--}yb&&(yb+="\n");yb+=ia+" "+ld+(0==Ab?" "+Xf:"")}yb&&a.j(yb);a.Qa=xb}}}}break;case "e":if("else"==g[0])break;var bb,nd,od,pd,qd=g[0],rd=g[1];"eb"==qd?(bb=1,nd=255,od=a.ob,pd=a.Fb):"e"==qd||"ew"==qd?(bb=2,nd=65535,od=a.na,pd=a.Va):rd=null;if(null==rd)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var ic=bh(a,rd);if(ic)for(var jc=2;jc< -g.length;jc++){var Bb=Ng(a,g[jc]);if(void 0===Bb){a.j("unrecognized value: "+g[jc]);break}Bb&~nd&&a.j("warning: "+l(Bb)+" exceeds "+bb+"-byte value");var Uh=od.call(a,ic);a.j("changing "+J(a,ic.C)+" from "+J(a,Uh,bb)+" to "+J(a,Bb,bb));pd.call(a,ic,Bb,bb)}}break;case "g":a:{var Yf=g[1],Vh=b;if(void 0!==Yf){var sd=bh(a,Yf,!0);if(!sd)break a;fh(a,sd,Vh);a.Sa(a.f,sd,!0)}a.ib(!0,c)}break;case "h":a.v.ca?(c||a.j("halting"),a.da()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var td; -var Cb=b.substr(2),Cb=va(Cb);Ng(a,Cb)?(c||a.j("true: "+Cb),td=!0):(c||a.j("false: "+Cb),td=!1);td||(d=!1);break}f=!0;break;case "k":var Wh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var ud=0,vd=Z(),Db=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Db.C));10>ud;){for(var Ga=null,Xh=256;65536>Db.C>>>0;){vd.C=a.na(Db,2);if(null==Db.C||!Xh--)break;if(!(vd.C&1)){for(var Yh=a,kc=vd,Zf=null,Eb=kc.C,$f=Eb,wd=1;6>=wd&&Eb;wd++){if(2< -wd){kc.C=Eb;var lc=ph(Yh,kc);if(0<=lc.indexOf("JSR")){var ag=lc.indexOf(" ");if(Eb+(lc.indexOf(" ",ag+1)-ag-1)/2==$f){Zf=lc;break}}}Eb-=2}kc.C=$f;if(Ga=Zf)break}}if(!Ga||null==Ga)break;var bg=null;if("ks"==Wh){var cg=Ga.match(/[0-9A-F]+$/);cg&&(bg=wh(a,cg[0]))}Ga=ua(Ga,50)+" ;"+(bg||"stack="+J(a,Db.C));a.j(Ga);ud++}ud||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){wh(a,g[1],!0);break}f=!0;break;case "m":a:{var ka,la=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== -G)xa=1878917119,G=null;else if("on"==G)la=!0,G=null;else if("off"==G)la=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(ka in tb)if(G==ka){xa=tb[ka];la=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,la=!0;else if("off"==g[2]&&(a.la&=~xa,la=!1,1073741824==xa)){for(var xd=0;xdd&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}h.ac=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; +h.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.tb).C));this.la&1073741824?this.wa.push(a):this.sa&&a==this.sa||(this.sa=a,this.la&-2147483648&&(this.da(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.pa=0,a.D.$()))}; +function Vg(a){var b;if(Xd(a)){if(!a.J||!a.J.length){a.J=Array(1E3);for(b=0;b>>d.ia],!1)}a.M=["br"];if(a.B)for(b=1;b>>d.ia],!0);a.B=["bw"];a.Xa=0} +h.Sa=function(a,b,c){var d=!0;c||mh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.C)),d=!1;else{var f=this.w;f.W[e>>>f.ia].Sa(e&f.w,a==this.B)}}d&&(a.push(b),c?b.Ba=!0:(nh(this,a,a.length-1,"set"),Vg(this)));return d};function mh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ia],b==a.B));k.Ba||Vg(a);break}}return f} +function oh(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.C-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= +hh(E);break;case 8:y="@"+hh(E);break;case 16:7>E?y="("+hh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+hh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+hh(E)+")";break;case 40:y="@-("+hh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+hh(E)+")";7==E&&(y=[y,J(x,F+w.C&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+hh(E)+")",7==E&&(y=[y,J(x,F+w.C&65535)])}x=y;if(!x||!x.length){k="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=hh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function th(a){var b,c="";for(b=0;6>b;b++)c+=sh(a,b);c=c+"\n"+(sh(a,6)+sh(a,7)+sh(a,20));return c+=rh(a,"T")+rh(a,"N")+rh(a,"Z")+rh(a,"V")+rh(a,"C")}h.Vb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,k=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.D.$();a.j("updated registers:")}a.j(th(a));c&&(a.K=Z(d.u[7]),kh(a,J(a,a.K.C)))}}function yh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1k[0].indexOf("+"))){var p=k[0]+":";k[2]&&(p+=" "+k[2]);a.j(p)}k[3]&&(g=k[3],f=null);f=qh(a,b,g,f);a.j(f);a.K=b;e-=b.C-m;c++}}} +function ph(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.U&&(a.j("ended assemble at "+J(a,a.T.C)),a.K=a.T,a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.sa=null;if(pb(a)&&0q||"z"ja.length&&(a.j("note: only "+ja.length+" available"),Y=ja.length);ca-=Y;0>ca&&(null==ja[ja.length-1].C?(Y=ca+Y,ca=0):ca+=ja.length);var kd=[];"call"==Sf&&(vb=1E5,kd=["CALL"]);for(void 0!==Rf&&a.j(Y+" instructions earlier:");0=ja.length&&(ca=0);a.Ya=Y;Uf++;vb--}}Uf||(a.j("no "+Tf+"history available"),a.Ya=void 0)}else{var xb=ch(a,ia);if(xb){var fc=0;Fa&&("l"==Fa.charAt(0)&&(Fa=Fa.substr(1)||Sh),fc=Qg(a,Fa)>>>0,65536>4||1;Uh--&&0ic?String.fromCharCode(ic):".";gc--}yb&&(yb+="\n");yb+=ia+" "+ld+(0==Ab?" "+Xf:"")}yb&&a.j(yb);a.Qa=xb}}}}break;case "e":if("else"==g[0])break;var bb,nd,od,pd,qd=g[0],rd=g[1];"eb"==qd?(bb=1,nd=255,od=a.ob,pd=a.Fb):"e"==qd||"ew"==qd?(bb=2,nd=65535,od=a.na,pd=a.Va):rd=null;if(null==rd)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var jc=ch(a,rd);if(jc)for(var kc=2;kc< +g.length;kc++){var Bb=Og(a,g[kc]);if(void 0===Bb){a.j("unrecognized value: "+g[kc]);break}Bb&~nd&&a.j("warning: "+l(Bb)+" exceeds "+bb+"-byte value");var Vh=od.call(a,jc);a.j("changing "+J(a,jc.C)+" from "+J(a,Vh,bb)+" to "+J(a,Bb,bb));pd.call(a,jc,Bb,bb)}}break;case "g":a:{var Yf=g[1],Wh=b;if(void 0!==Yf){var sd=ch(a,Yf,!0);if(!sd)break a;gh(a,sd,Wh);a.Sa(a.f,sd,!0)}a.ib(!0,c)}break;case "h":a.v.ca?(c||a.j("halting"),a.da()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var td; +var Cb=b.substr(2),Cb=va(Cb);Og(a,Cb)?(c||a.j("true: "+Cb),td=!0):(c||a.j("false: "+Cb),td=!1);td||(d=!1);break}f=!0;break;case "k":var Xh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var ud=0,vd=Z(),Db=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Db.C));10>ud;){for(var Ga=null,Yh=256;65536>Db.C>>>0;){vd.C=a.na(Db,2);if(null==Db.C||!Yh--)break;if(!(vd.C&1)){for(var Zh=a,lc=vd,Zf=null,Eb=lc.C,$f=Eb,wd=1;6>=wd&&Eb;wd++){if(2< +wd){lc.C=Eb;var mc=qh(Zh,lc);if(0<=mc.indexOf("JSR")){var ag=mc.indexOf(" ");if(Eb+(mc.indexOf(" ",ag+1)-ag-1)/2==$f){Zf=mc;break}}}Eb-=2}lc.C=$f;if(Ga=Zf)break}}if(!Ga||null==Ga)break;var bg=null;if("ks"==Xh){var cg=Ga.match(/[0-9A-F]+$/);cg&&(bg=xh(a,cg[0]))}Ga=ua(Ga,50)+" ;"+(bg||"stack="+J(a,Db.C));a.j(Ga);ud++}ud||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){xh(a,g[1],!0);break}f=!0;break;case "m":a:{var ka,la=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== +G)xa=1878917119,G=null;else if("on"==G)la=!0,G=null;else if("off"==G)la=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(ka in tb)if(G==ka){xa=tb[ka];la=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,la=!0;else if("off"==g[2]&&(a.la&=~xa,la=!1,1073741824==xa)){for(var xd=0;xd\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bCh){if(Eh(d,this.J)){this.B=new N(this,"1.30.1","failsafe");Eh(this.B)&&(Jh(this,d),a=2,Kh(this.B));this.B.set("timestamp",Aa());Lh(this.B);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ih(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Eh(d,g):("error"== -f&&"no machine state"!=g?(this.ga("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Kh(d),Eh(d)?(c=Ih(d),e=!0):c=!1))}e&&Hh(this,c?d:null)}else 2==a&&d.clear()}else Hh(this);delete this.J;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ha=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(Mh(this,this.b,b,c,a),this.b.mb());this.T&&(Jh(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.D=0}; -function Jh(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} -function zh(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),k=Aa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.da(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ha=!1,!1===d&&(e=null)));for(var k=kb(a.id),m=0;m\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bDh){if(Fh(d,this.J)){this.B=new N(this,"1.30.1","failsafe");Fh(this.B)&&(Kh(this,d),a=2,Lh(this.B));this.B.set("timestamp",Aa());Mh(this.B);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Jh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Fh(d,g):("error"== +f&&"no machine state"!=g?(this.ga("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Lh(d),Fh(d)?(c=Jh(d),e=!0):c=!1))}e&&Ih(this,c?d:null)}else 2==a&&d.clear()}else Ih(this);delete this.J;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ha=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(Nh(this,this.b,b,c,a),this.b.mb());this.T&&(Kh(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.D=0}; +function Kh(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} +function Ah(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),k=Aa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.da(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ha=!1,!1===d&&(e=null)));for(var k=kb(a.id),m=0;mf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=k[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);k[0]!=m&&(g=g.replace(k[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],g);di(a,b,c)}})}else c(a,null)} -function ei(a,b,c,d){function e(a){if(void 0===k){var b=g&&B(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Qh||Va(!0));m=!1}var g,k,m=!0;Qh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,k){k?bi(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=k.transformNode(m))?(g.outerHTML=m,--Qh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Qh||Va(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?bi(b,a,d,!0,e,p):ci(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return ei(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map +h.ra=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.D||(d.v.ha?Ah(d,!1,!0):Hh(d,d.sb))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.v.ha&&!d.D)if(d.f&&!d.H){var a=Da("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Ah(d,a,!0);!a&&d.R?window&&window.location.reload():d.sb(Dh)}else d.reset(),d.b&&d.b.mb()},!0;case "save":if(qa())c.parentNode.removeChild(c);else return this.I[b]= +c,c.onclick=function(){var a=Eh(d,!0);if(a){var b=!!(d.f&&!d.H||d.R),c=Ah(d,b);b?Oh(d,a,c):d.ga("Resume disabled, machine state not saved")}},!0}return!1}; +function Eh(a,b){var c=a.g;c||((c=Ja("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Ph(a,c))||a.ga("The user ID is invalid.")):b&&a.ga("Browser local storage is not available"));return c} +function Ph(a,b){a.g=null;b=Ba(ra()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ka("user",b.data),a.g=b.data)}catch(d){n(d.message+" ("+c+")")}return a.g}function Gh(a){var b=null;a.g&&(b=ra()+"/api/v1/user?req=load&user="+a.g+"&state="+Qh(a,"1.30.1"));return b} +function Oh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Qh(a,"1.30.1");d.data=c;b=Ba(ra()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=k[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);k[0]!=m&&(g=g.replace(k[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],g);ei(a,b,c)}})}else c(a,null)} +function fi(a,b,c,d){function e(a){if(void 0===k){var b=g&&B(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Rh||Va(!0));m=!1}var g,k,m=!0;Rh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,k){k?ci(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=k.transformNode(m))?(g.outerHTML=m,--Rh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Rh||Va(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?ci(b,a,d,!0,e,p):di(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return fi(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map diff --git a/versions/pdpjs/1.30.1/pdp11.js b/versions/pdpjs/1.30.1/pdp11.js index 5a3c81586e..02dc2ce3d2 100644 --- a/versions/pdpjs/1.30.1/pdp11.js +++ b/versions/pdpjs/1.30.1/pdp11.js @@ -53,20 +53,20 @@ Function.prototype.bind||(Function.prototype.bind=function(a){function b(){retur g.V=function(a,b,c,d){if(this.v&&this.v.V(a,b,c,d)||this.a&&this.a.V(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.s[b]=c,this.b++,!0;default:return"rled"==a?(this.s[b]=c,this.b++,!0):this.parent.V.call(this,a,b,c,d)}};g.ea=function(a,b,c,d){this.v=a;this.m=b;this.a=c;this.G=d};g.$=function(a,b){b||Va();return!0};g.Z=function(){return!0}; function Wa(a,b,c,d){if(a.s[b]){void 0===c&&(a.i.error=!0,a.H("Value for "+b+" is invalid"),Xa(a.a));var e=a.G&&a.G.b||8;c=!a.a.i.U||a.i.kb?8==e?ia(c,d):ja(c,d):"--------".substr(0,d||4);a.s[b].textContent!=c&&(a.s[b].textContent=c)}}function Ya(a,b,c,d){for(var e=0;e>2;this.g=this.c-1;this.v=this.A/this.c|0;this.ka=[];this.S=0;this.o=[];this.Bb=[ab,bb,cb,db];a=new E(this);eb(a,this.G);this.b=Array(this.v);for(b=0;b>2;this.g=this.c-1;this.v=this.A/this.c|0;this.ka=[];this.T=0;this.o=[];this.Bb=[ab,bb,cb,db];a=new E(this);eb(a,this.G);this.b=Array(this.v);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.ka[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);return 0<=c?c:c=gb(d,b)}function bb(a,b,c){var d=!1,e=this.controller,f=e.ka[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.ka[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d||gb(e,c)} function cb(a,b){var c=-1,d=this.controller;(a=d.ka[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));return 0<=c?c:c=gb(d,b)}function db(a,b,c){var d=!1,e=this.controller;if(a=e.ka[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d||gb(e,c)}function hb(a,b){if(b!=a.j){var c;a.j&&(c=(1<>>a.m;0k&&(t=k);if(!e&&n&&n.size){if(n.type==d){if(f+k<=n.Ca)return n.Ua+=n.Ca-f,n.Ca=f,!0;if(f>=n.Ca+n.Ua){t=n.size-(f-r);t>k&&(t=k);n.Ua=f-n.Ca+t;f=r+a.c;k-=t;l++;continue}}return mb(1,f,k)}f=new E(a,f,t,a.c,d,e);eb(f,a.G,n);a.b[l++]=f;f=r+a.c;k-=t}if(0>=k){c/=1024;var D;e="";D?10>>=a.m;0>>=a.m;0>>a.m].eb(b&a.g,b)}function pb(a,b){return a.b[(b&a.h)>>>a.m].T(b&a.g,b)}$a.prototype.Ta=function(a,b){this.S++;this.b[(a&this.h)>>>this.m].yb(a&this.g,b&255,a);this.S--}; +10;a.status(e+"Kb "+nb[d]+" at "+ia(b));return!0}return mb(2,b,c)}function jb(a,b,c){var d=[];for(b>>>=a.m;0>>=a.m;0>>a.m].eb(b&a.g,b)}function pb(a,b){return a.b[(b&a.h)>>>a.m].R(b&a.g,b)}$a.prototype.Ta=function(a,b){this.T++;this.b[(a&this.h)>>>this.m].yb(a&this.g,b&255,a);this.T--}; function qb(a,b,c){a.b[(b&a.h)>>>a.m].Va(b&a.g,c&65535,b)}function rb(a){for(var b=0,c=[],d=0;da.a.Ga)){var k=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,n=f[2]?f[2].bind(b):null,r=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!k&&n&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&r&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(r)));sb(a,e,e,k,l,n,r,f[4])}}}function ub(a,b){a.o.push(b)}function vb(a,b){a.S||F(a.a,4,b)} +function tb(a,b,c){for(var d in c){var e=+d,f=c[d];if(!(f[5]&&f[5]>a.a.Ga)){var k=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,n=f[2]?f[2].bind(b):null,r=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!k&&n&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&r&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(r)));sb(a,e,e,k,l,n,r,f[4])}}}function ub(a,b){a.o.push(b)}function vb(a,b){a.T||F(a.a,4,b)} function mb(a,b,c){m("Memory block error ("+a+": "+ja(b)+","+ja(c)+")");return!1}function G(a){u.call(this,"Device",a,G);this.c={data:0,fd:0,Sa:20,uc:0};this.b={hd:0,ib:-1}}w(G);g=G.prototype;g.ea=function(a,b,c,d){this.m=b;this.a=c;this.G=d;var e=this;this.b.ib=wb(c,function(){e.b.na|=128;e.b.na&64&&(xb(e.a,e.b.vc),yb(e.a,e.b.ib,1E3/60))});this.b.vc=zb(64,6);tb(b,this,H);ub(b,this.reset.bind(this));B(this)};g.reset=function(){this.c.Sa=this.c.Sa&-120|20;this.b.na=0}; g.Qb=function(){var a=this.b.na;this.b.na&=-129;return a};g.Ec=function(a){this.b.na=a;a&64&&yb(this.a,this.b.ib,1E3/60);this.b.na=a&-129};g.Jb=function(a){return(a?this.c.uc:this.c.data)&65535};g.xc=function(a){this.c.data=a};g.Sb=function(){var a=this.a;return a.A&62337|a.Ia<<5|a.Ja<<1};g.Gc=function(a){var b=this.a;a&=62337;if(b.A!=a){b.A=a;b.Ia=a>>5&3;b.Ja=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ea!=c&&(b.Ea=c,Ab(b))}Bb(this)}; g.Tb=function(){var a=this.a.oa;a&65280&&(a=(a<<8|a>>8)&65535);return a};g.Ub=function(){return this.a.gb};g.Vb=function(){return this.a.pa};g.Hc=function(a){var b=this.a;1170>b.Ga&&(a&=-49);b.pa!=a&&(b.pa=a,a&16?(b.$a=4194303,b.Ka=3915776):(b.$a=262143,b.Ka=253952),Ab(b));Bb(this)};function Bb(a){a.c.Sa=a.c.Sa&-8|(a.a.Ea?a.a.pa&16?1:2:4)}g.ic=function(a){return this.a.C[1][a>>1&7]};g.Vc=function(a,b){this.a.C[1][b>>1&7]=a&65295};g.gc=function(a){return this.a.C[1][(a>>1&7)+8]}; -g.Tc=function(a,b){this.a.C[1][(b>>1&7)+8]=a&65295};g.hc=function(a){return this.a.R[1][a>>1&7]};g.Uc=function(a,b){b=b>>1&7;this.a.R[1][b]=a;this.a.C[1][b]&=65295};g.fc=function(a){return this.a.R[1][(a>>1&7)+8]};g.Sc=function(a,b){b=(b>>1&7)+8;this.a.R[1][b]=a;this.a.C[1][b]&=65295};g.Pb=function(a){return this.a.C[0][a>>1&7]};g.Dc=function(a,b){this.a.C[0][b>>1&7]=a&65295};g.Nb=function(a){return this.a.C[0][(a>>1&7)+8]};g.Bc=function(a,b){this.a.C[0][(b>>1&7)+8]=a&65295}; -g.Ob=function(a){return this.a.R[0][a>>1&7]};g.Cc=function(a,b){b=b>>1&7;this.a.R[0][b]=a;this.a.C[0][b]&=65295};g.Mb=function(a){return this.a.R[0][(a>>1&7)+8]};g.Ac=function(a,b){b=(b>>1&7)+8;this.a.R[0][b]=a;this.a.C[0][b]&=65295};g.oc=function(a){return this.a.C[3][a>>1&7]};g.ad=function(a,b){this.a.C[3][b>>1&7]=a&65295};g.mc=function(a){return this.a.C[3][(a>>1&7)+8]};g.Zc=function(a,b){this.a.C[3][(b>>1&7)+8]=a&65295};g.nc=function(a){return this.a.R[3][a>>1&7]}; -g.$c=function(a,b){b=b>>1&7;this.a.R[3][b]=a;this.a.C[3][b]&=65295};g.lc=function(a){return this.a.R[3][(a>>1&7)+8]};g.Yc=function(a,b){b=(b>>1&7)+8;this.a.R[3][b]=a;this.a.C[3][b]&=65295};g.wa=function(a){a&=7;return this.a.w&2048?this.a.ua[a]:this.a.f[a]};g.ya=function(a,b){b&=7;this.a.w&2048?this.a.ua[b]=a:this.a.f[b]=a};g.$b=function(){return this.a.w&49152?this.a.aa[0]:this.a.f[6]};g.Mc=function(a){this.a.w&49152?this.a.aa[0]=a:this.a.f[6]=a};g.cc=function(){return this.a.f[7]}; +g.Tc=function(a,b){this.a.C[1][(b>>1&7)+8]=a&65295};g.hc=function(a){return this.a.S[1][a>>1&7]};g.Uc=function(a,b){b=b>>1&7;this.a.S[1][b]=a;this.a.C[1][b]&=65295};g.fc=function(a){return this.a.S[1][(a>>1&7)+8]};g.Sc=function(a,b){b=(b>>1&7)+8;this.a.S[1][b]=a;this.a.C[1][b]&=65295};g.Pb=function(a){return this.a.C[0][a>>1&7]};g.Dc=function(a,b){this.a.C[0][b>>1&7]=a&65295};g.Nb=function(a){return this.a.C[0][(a>>1&7)+8]};g.Bc=function(a,b){this.a.C[0][(b>>1&7)+8]=a&65295}; +g.Ob=function(a){return this.a.S[0][a>>1&7]};g.Cc=function(a,b){b=b>>1&7;this.a.S[0][b]=a;this.a.C[0][b]&=65295};g.Mb=function(a){return this.a.S[0][(a>>1&7)+8]};g.Ac=function(a,b){b=(b>>1&7)+8;this.a.S[0][b]=a;this.a.C[0][b]&=65295};g.oc=function(a){return this.a.C[3][a>>1&7]};g.ad=function(a,b){this.a.C[3][b>>1&7]=a&65295};g.mc=function(a){return this.a.C[3][(a>>1&7)+8]};g.Zc=function(a,b){this.a.C[3][(b>>1&7)+8]=a&65295};g.nc=function(a){return this.a.S[3][a>>1&7]}; +g.$c=function(a,b){b=b>>1&7;this.a.S[3][b]=a;this.a.C[3][b]&=65295};g.lc=function(a){return this.a.S[3][(a>>1&7)+8]};g.Yc=function(a,b){b=(b>>1&7)+8;this.a.S[3][b]=a;this.a.C[3][b]&=65295};g.wa=function(a){a&=7;return this.a.w&2048?this.a.ua[a]:this.a.f[a]};g.ya=function(a,b){b&=7;this.a.w&2048?this.a.ua[b]=a:this.a.f[b]=a};g.$b=function(){return this.a.w&49152?this.a.aa[0]:this.a.f[6]};g.Mc=function(a){this.a.w&49152?this.a.aa[0]=a:this.a.f[6]=a};g.cc=function(){return this.a.f[7]}; g.Pc=function(a){this.a.f[7]=a};g.xa=function(a){a&=7;return this.a.w&2048?this.a.f[a]:this.a.ua[a]};g.za=function(a,b){b&=7;this.a.w&2048?this.a.f[b]=a:this.a.ua[b]=a};g.ac=function(){return 1==(this.a.w&49152)>>14?this.a.f[6]:this.a.aa[1]};g.Nc=function(a){1==(this.a.w&49152)>>14?this.a.f[6]=a:this.a.aa[1]=a};g.bc=function(){return 3==(this.a.w&49152)>>14?this.a.f[6]:this.a.aa[3]};g.Oc=function(a){3==(this.a.w&49152)>>14?this.a.f[6]=a:this.a.aa[3]=a};g.Lb=function(a){return this.a.vb[a-65504>>1]}; g.zc=function(a,b){this.a.vb[b-65504>>1]=a};g.tb=function(a){return 65520==a?61183:0};g.Ab=function(){};g.kc=function(){return 1};g.Xc=function(){};g.Kb=function(){return this.a.F};g.yc=function(){this.a.F=0};g.Rb=function(){return this.a.ub};g.Fc=function(a,b){b&1||(a&=255);this.a.ub=a};g.Wb=function(a){return a?this.a.hb:0};g.Ic=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.hb=a;b.l|=2};g.jc=function(a){return a?this.a.qa&65280:0};g.Wc=function(a){this.a.qa=a|255}; g.Zb=function(){return Za(this.a)};g.Lc=function(a){Cb(this.a,a&-1809|Za(this.a)&1808);this.a.l|=128};g.zb=function(){}; @@ -84,9 +84,9 @@ function E(a,b,c,d,e,f){this.m=a;this.id=Gb+=2;this.a=null;this.Ca=b;this.Ua=c;t var Hb=0,Ib=2,lb=4,nb=["NONE","RAM","ROM","VID","H/W"],Gb=0; E.prototype={constructor:E,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Ta)for(a=Array(this.size>>2),b=0;b>8,c)},N:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ba:function(a,b){a&1&&vb(this.m,b);b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},ha:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.la=!0},I:function(a,b){return this.J(a,b)}, -S:function(a,b){return this.W(a,b)},da:function(a,b,c){this.g||this.yb(a,b,c)},ja:function(a,b,c){this.g||this.ra(a,b,c)},D:function(a){return this.c[a]},K:function(a){return this.c[a]},O:function(a,b){a&1&&vb(this.m,b);return this.s.getUint16(a,!0)},X:function(a,b){a&1&&vb(this.m,b);return this.o[a>>1]},ca:function(a,b){this.c[a]=b;this.la=!0},ga:function(a,b){this.c[a]=b;this.la=!0},ia:function(a,b,c){a&1&&vb(this.m,c);this.s.setUint16(a,b,!0);this.la=!0},sa:function(a,b,c){a&1&&vb(this.m,c);this.o[a>> -1]=b;this.la=!0}};function eb(a,b,c){a.G=b;a.h=a.j=0;c&&((a.h=c.h)&&Nb(a,Ob,!1),(a.j=c.j)&&Pb(a,Ob,!1))}function Pb(a,b,c){c&&a.j||(a.jb=!a.g&&b[1]||a.A,a.Va=!a.g&&b[3]||a.B);if(c||void 0===c)a.yb=b[1]||a.A,a.ra=b[3]||a.B}function Nb(a,b,c){c&&a.h||(a.eb=b[0]||a.v,a.T=b[2]||a.u);if(c||void 0===c)a.J=b[0]||a.v,a.W=b[2]||a.u}function Jb(a,b){b||(b=Qb);Nb(a,b,void 0);Pb(a,b,void 0)} -var Qb=[],Mb=[E.prototype.N,E.prototype.ha,E.prototype.ba,E.prototype.ta],Ob=[E.prototype.I,E.prototype.da,E.prototype.S,E.prototype.ja];if(Ta)var Lb=[E.prototype.D,E.prototype.ca,E.prototype.O,E.prototype.ia],Kb=[E.prototype.K,E.prototype.ga,E.prototype.X,E.prototype.sa]; +T:function(a,b){return this.W(a,b)},da:function(a,b,c){this.g||this.yb(a,b,c)},ja:function(a,b,c){this.g||this.ra(a,b,c)},D:function(a){return this.c[a]},K:function(a){return this.c[a]},O:function(a,b){a&1&&vb(this.m,b);return this.s.getUint16(a,!0)},X:function(a,b){a&1&&vb(this.m,b);return this.o[a>>1]},ca:function(a,b){this.c[a]=b;this.la=!0},ga:function(a,b){this.c[a]=b;this.la=!0},ia:function(a,b,c){a&1&&vb(this.m,c);this.s.setUint16(a,b,!0);this.la=!0},sa:function(a,b,c){a&1&&vb(this.m,c);this.o[a>> +1]=b;this.la=!0}};function eb(a,b,c){a.G=b;a.h=a.j=0;c&&((a.h=c.h)&&Nb(a,Ob,!1),(a.j=c.j)&&Pb(a,Ob,!1))}function Pb(a,b,c){c&&a.j||(a.jb=!a.g&&b[1]||a.A,a.Va=!a.g&&b[3]||a.B);if(c||void 0===c)a.yb=b[1]||a.A,a.ra=b[3]||a.B}function Nb(a,b,c){c&&a.h||(a.eb=b[0]||a.v,a.R=b[2]||a.u);if(c||void 0===c)a.J=b[0]||a.v,a.W=b[2]||a.u}function Jb(a,b){b||(b=Qb);Nb(a,b,void 0);Pb(a,b,void 0)} +var Qb=[],Mb=[E.prototype.N,E.prototype.ha,E.prototype.ba,E.prototype.ta],Ob=[E.prototype.I,E.prototype.da,E.prototype.T,E.prototype.ja];if(Ta)var Lb=[E.prototype.D,E.prototype.ca,E.prototype.O,E.prototype.ia],Kb=[E.prototype.K,E.prototype.ga,E.prototype.X,E.prototype.sa]; function Rb(a,b){u.call(this,"CPU",a,Rb);var c=a.multiplier||1;this.Pa=a.cycles||b;this.da=c;this.Za=Math.round(this.Pa/1E4)/100;this.ga=this.Za*this.da;this.i.U=!1;this.i.wb=!1;this.i.Da=a.autoStart;this.i.Oa=!1;this.Ma=this.ia=0;this.Na=a.csStart;this.sa=a.csInterval;this.ta=a.csStop;this.I=[];this.sb=this.tc.bind(this);B(this)}w(Rb);var Sb=["power","reset"];g=Rb.prototype; g.ea=function(a,b,c,d){this.v=a;this.m=b;this.G=d;for(b=0;ba.ba/a.ga&&(b=1),a.da=b,b=a.Za*a.da,a.ga!=b) g.tc=function(){if(this.i.U){this.ab>=this.Pa&&Yb(this,!0);this.Ba=0;this.La=sa();if(this.ca){var a=this.La-this.ca;a>this.qb&&(this.O+=a,this.O>this.La&&(this.O=this.La))}try{do{for(var b,c=this.i.Oa?1:this.Qa,d=this.I.length-1;0<=d;d--){var e=this.I[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.xb(b)}catch(n){if("number"!=typeof n)throw n;}b=$b(this,!0);this.Ba+=b;this.W+=b;a=b;if(this.i.Oa){var f=!1;this.Ma=this.Ma+this.mb()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.sa,f=!0);0<=this.ta&&this.ta<=Zb(this)&& (this.sa=this.ta=-1,Vb(this),Xa(this),f=!0);f&&this.P(Zb(this)+" cycles: checksum="+ja(this.Ma))}for(var a=b,k=this.I.length-1;0<=k;k--){var l=this.I[k];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.Aa-=b;if(0>=this.Aa){this.Aa+=this.Qa;15<=++this.rb&&(this.v&&this.v.fa(),this.rb=0);break}}while(this.i.U)}catch(n){Xa(this);this.v&&this.v.stop(sa(),Zb(this));b=n.stack||n.message;this.i.error=!0;this.H(b);return}if(this.i.U){b=setTimeout;c=this.sb;this.ca=sa();d=this.qb;this.Ba&&(d=Math.round(d* this.Ba/this.Qa));d-=this.ca-this.La;if(e=this.ca-this.O)this.ba=Math.round(this.W/(10*e))/100,864E5<=e&&(this.K=0,Xb(this));if(0>d||this.bad&&(this.O-=d),d=0;this.ab+=this.Ba;this.ca+=d;b(c,d)}}};function Wb(a){var b;a.i.error?(a.P(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.U)a.P(a.toString()+" busy");else{Xb(a);a.i.U=!0;a.i.wb=!0;if(b=a.s.run)b.textContent="Halt";a.v&&a.v.start(a.O,Zb(a));setTimeout(a.sb,0)}}g.xb=function(){return 0}; -function Xa(a){if(a.i.U){$b(a);a.K+=a.W;a.W=0;a.i.U=!1;var b=a.s.run;b&&(b.textContent="Run");a.v&&a.v.stop(sa(),Zb(a))}a.i.complete=void 0}function ac(a){this.Ga=+a.model||1170;this.ob=a.addrReset||0;Rb.call(this,a,6666667);this.decode=1120==this.Ga?bc.bind(this):cc.bind(this);dc(this);this.S=0;this.X=null;this.i.complete=this.i.Cb=!1}w(ac,Rb);g=ac.prototype;g.reset=function(){this.status("model "+this.Ga);this.i.U&&Xa(this);dc(this);Ub(this);this.i.error=!1;this.parent.reset.call(this)}; -function dc(a){a.j=65536;a.g=32768;a.h=65535;a.o=32768;a.w=15;a.f=[0,0,0,0,0,0,0,a.ob];a.ua=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.u=0;a.Ja=0;a.Gb=[4,2,0,1];a.C=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.R=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.vb=[0,0,0,0,0,0,0,0];a.ub=0;a.l=0;a.B=a.D=0;a.c=a.b=a.Ya=0;a.ja=-1;ec(a)}function ec(a){a.qa=255;a.F=0;a.hb=0;a.A=0;a.oa=0;a.gb=0;a.pa=0;a.Ea=0;a.Ia=0;a.$a=262143;a.Ka=253952;a.l|=2;a.m&&Ab(a)}function Ab(a){a.Ea?(a.N=65536,a.J=a.Fb,a.T=a.qc,a.Va=a.cd,hb(a.m,a.pa&16?22:18)):(a.N=0,a.J=a.Eb,a.T=a.pc,a.Va=a.bd,hb(a.m,16))}g.mb=function(){return 0}; +function Xa(a){if(a.i.U){$b(a);a.K+=a.W;a.W=0;a.i.U=!1;var b=a.s.run;b&&(b.textContent="Run");a.v&&a.v.stop(sa(),Zb(a))}a.i.complete=void 0}function ac(a){this.Ga=+a.model||1170;this.ob=a.addrReset||0;Rb.call(this,a,6666667);this.decode=1120==this.Ga?bc.bind(this):cc.bind(this);dc(this);this.T=0;this.X=null;this.i.complete=this.i.Cb=!1}w(ac,Rb);g=ac.prototype;g.reset=function(){this.status("model "+this.Ga);this.i.U&&Xa(this);dc(this);Ub(this);this.i.error=!1;this.parent.reset.call(this)}; +function dc(a){a.j=65536;a.g=32768;a.h=65535;a.o=32768;a.w=15;a.f=[0,0,0,0,0,0,0,a.ob];a.ua=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.u=0;a.Ja=0;a.Gb=[4,2,0,1];a.C=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.S=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.vb=[0,0,0,0,0,0,0,0];a.ub=0;a.l=0;a.B=a.D=0;a.c=a.b=a.Ya=0;a.ja=-1;ec(a)}function ec(a){a.qa=255;a.F=0;a.hb=0;a.A=0;a.oa=0;a.gb=0;a.pa=0;a.Ea=0;a.Ia=0;a.$a=262143;a.Ka=253952;a.l|=2;a.m&&Ab(a)}function Ab(a){a.Ea?(a.N=65536,a.J=a.Fb,a.R=a.qc,a.Va=a.cd,hb(a.m,a.pa&16?22:18)):(a.N=0,a.J=a.Eb,a.R=a.pc,a.Va=a.bd,hb(a.m,16))}g.mb=function(){return 0}; g.save=function(){var a=new K(this);a.set(0,[]);a.set(1,[this.K,this.da]);a.set(2,rb(this.m));return a.data()};g.restore=function(a){var b=a[1];this.K=b[1];Xb(this,b[3]);a:{b=this.m;a=a[2];var c;for(c=0;c>14&3;c=a.w>>14&3;a.u!=c&&(a.aa[c]=a.f[6],a.f[6]=a.aa[a.u]);a.w=b;a.l|=2}function N(a,b){a.l&128||(a.o=a.h=b,a.g=0)}function O(a,b,c){a.l&128||(a.o=a.h=a.j=b,a.g=c||0)}function gc(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^b)&(d^b))}function P(a,b){a.l&128||(a.o=a.h=a.j=b,a.g=a.o^a.j>>1)}function hc(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^d)&(d^b))} -function F(a,b,c){if(!a.S){var d=!1;0>a.ja?a.ja=Za(a):a.u||(b=4,d=!0);a.A&57344||(a.oa=63222,a.gb=b);a.u=0;var e=a.T(b|a.N),f=a.T(b+2&65535|a.N);Cb(a,f&-12289|a.ja>>2&12288);d&&(a.F|=4,a.f[6]=4);ic(a,a.ja);ic(a,a.f[7]);M(a,e);a.l&=-113;a.ja=-1;if(26!=c)throw b;}}function jc(a){var b=kc(a),c=kc(a)&-1793;a.w&49152&&(c=c&-225|a.w&63712);M(a,b);Cb(a,c);a.l&=-17} -function lc(a,b,c){var d,e,f,k=0;d=b>>13;a.pa&a.Gb[a.u]||(d&=7);e=a.C[a.u][d];f=(a.R[a.u][d]<<6)+(b&8191)&a.$a;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.pa&32&&(f=a.Ib[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Ka&&4186112>f&&(a.F|=32,F(a,4,12))}switch(e&7){case 1:k=4096;case 2:e|=128;c&4&&(k=8192);break;case 4:k=4096;case 5:c&4&&(k=4096);case 6:e|=c&4?192: -128;break;default:k=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(k|=16384):(b&8128)>(e>>2&8128)&&(k|=16384));a.C[a.u][d]=e;if(4194170!==f||a.u)a.Ia=a.u,a.Ja=d;k&&(k&57344&&(0<=a.ja&&(k|=128),a.A&57344||(a.A=a.A|k|a.Ia<<5|a.Ja<<1),F(a,168,16)),a.A&61440||!(4191360>f||4194239>>a.m].jb(b&a.g,c&255,b)}function kc(a){var b=a.T(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b} -function ic(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.oa=a.oa<<8|246);!a.u&&c<=a.qa&&4c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=k);e=a.T(e);e|=k;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.f[c]+f&65535;7!==c&&(e|=k);a.a-=4;break;case 5:f=-2;e=a.f[c]-2&65535;7!==c&&(e|=k);e=a.T(e)|k;a.a-= -8;break;case 6:return e=fc(a),e=e+a.f[c]&65535|k,a.a-=6,e;case 7:return e=fc(a),e=e+a.f[c]&65535,e=a.T(e|a.N)|k,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!k||a.A&57344||(a.oa=a.oa<<8|f<<3&248|c);6==c&&!a.u&&d&4&&0>=f&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32?(a.F|=4,a.f[6]=4,F(a,4,24)):(a.F|=8,a.l|=64));return e}g.Ta=function(a,b){this.Ea?(this.S++,mc(this,lc(this,a,5),b),this.S--):this.m.Ta(a,b)};g.Eb=function(a,b,c){return nc(this,a,b,c)};g.Fb=function(a,b,c){return lc(this,nc(this,a,b,c),c)}; -g.pc=function(a){return pb(this.m,a)};g.qc=function(a){return pb(this.m,lc(this,a,2))};g.bd=function(a,b){qb(this.m,a,b&65535)};g.cd=function(a,b){qb(this.m,lc(this,a,4),b)};function oc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=nc(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.u=a.w>>12&3,c=a.T(d|c&a.N),a.u=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.f[d]:a.aa[a.w>>12&3];return c} -function pc(a,b,c,d){a.A&57344||(a.oa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=nc(a,b,e,4),c&65536||(e&=65535),a.u=a.w>>12&3,e=lc(a,e|c&65536,4),a.u=a.w>>14&3,qb(a.m,e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.f[e]=d:a.aa[a.w>>12&3]=d}function qc(a,b){b>>=6;var c=a.D=b&7;(b=a.B=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function Q(a,b){b>>=6;var c=a.D=b&7;return(b=a.B=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function rc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return nc(a,b,c,8)} -function sc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function tc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function R(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.Ya=a.J(b,e,7),mc(a,e,d.call(a,c,ob(a.m,e)))):a.f[e]=a.f[e]&65280|d.call(a,c,a.f[e])}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.J(b,e,6),qb(a.m,e,d.call(a,c,pb(a.m,e)))):a.f[e]=d.call(a,c,a.f[e])} -function uc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?mc(a,a.J(b,e,5),c):a.f[e]=c?d&1?c<<24>>24&65535:a.f[e]&-256|c&255:a.f[e]&-256;return c}function vc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?qb(a.m,a.J(b,d,4),c):a.f[d]=c&65535;return c}function T(a,b,c){c&&(M(a,a.f[7]+(b<<24>>23)),a.a-=2);a.a-=3} -g.xb=function(a){this.i.complete=!0;this.i.Cb=!1;this.i.wb=!1;this.ha=this.a=a;do{if(this.l&&(this.l&112&&(this.l&32?F(this,168,28):this.l&64?F(this,4,30):this.l&16&&F(this,12,32),this.l&=-113),this.l&7))if(this.l&2){this.l&=-3;var b=160,c=(this.hb&224)>>5;if(a=this.X&&this.X.va>c?this.X:null)b=a.wc,c=a.va;c>(this.w&224)>>5?(this.l&4&&(this.f[7]=this.f[7]+2&65535,this.l&=-5),F(this,b,26),c=!0):c=!1;if(c&&a)if(c=this.X,c==a)this.X=a.next;else for(;c;){b=c.next;if(b==a){c.next=b.next;break}c=b}}else this.l& -1&&this.l++;this.A&57344||(this.oa=0,this.gb=this.f[7]);this.l=this.l&7|this.w&16;this.decode(fc(this))}while(0>1|b<<16;P(this,a);return a&65535}function Bc(a,b){a=b&2048|b>>1|b<<8;P(this,a<<8);return a&255}function Cc(a,b){a=b&~a;N(this,a);return a}function Dc(a,b){a=b&~a;N(this,a<<8);return a}function Ec(a,b){a|=b;N(this,a);return a}function Fc(a,b){a|=b;N(this,a<<8);return a}function Gc(a,b){a=~b|65536;O(this,a);return a&65535}function Hc(a,b){a=~b|256;O(this,a<<8);return a&255} -function Ic(a,b){a=b-a;this.l&128||(this.o=this.h=a,this.g=b&(b^a));return a&65535}function Jc(a,b){a=b-a;var c=a<<8;b<<=8;this.l&128||(this.o=this.h=c,this.g=b&(b^c));return a&255}function Kc(a,b){a=b+a;this.l&128||(this.o=this.h=a,this.g=a&(b^a));return a&65535}function Lc(a,b){a=b+a;var c=a<<8;this.l&128||(this.o=this.h=c,this.g=c&(b<<8^c));return a&255}function Mc(a,b){a=-b;O(this,a,a&b&32768);return a&65535}function Nc(a,b){a=-b;O(this,a<<8,(a&b&128)<<8);return a&255} -function Oc(a,b){a=b<<1|this.j>>16&1;P(this,a);return a&65535}function Pc(a,b){a=b<<1|this.j>>16&1;P(this,a<<8);return a&255}function Qc(a,b){a=(this.j&65536|b)>>1|b<<16;P(this,a);return a&65535}function Rc(a,b){a=((this.j&65536)>>8|b)>>1|b<<8;P(this,a<<8);return a&255}function Sc(a,b){var c=b-a;hc(this,c,a,b);return c&65535}function Tc(a,b){var c=b-a;hc(this,c<<8,a<<8,b<<8);return c&255}function Uc(a,b){this.l&128||(this.o=this.h=b&65280,this.g=this.j=0);return(b<<8|b>>8)&65535} -function Vc(a,b){a^=b;N(this,a);return a&65535}function Wc(a){S(this,a,Q(this,a),wc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Xc(a){var b=tc(this,a);a=a>>6&7;var c=this.f[a];c&32768&&(c|=4294901760);this.j=this.g=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.g=32768)}this.f[a]=c&65535;this.o=this.h=c;this.a-=(this.c?6:7)+b} -function Yc(a){var b=tc(this,a);a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&=63;if(b&32){b=64-b;32>b-1;this.j=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.f[a|1]=d&65535;this.o=d>>16;this.h=d>>16|d;this.a-=(this.c?6:7)+b}function Zc(a){T(this,a,!L(this))}function $c(a){T(this,a,L(this))} -function ad(a){S(this,a,Q(this,a),Cc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function bd(a){R(this,a,qc(this,a),Dc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function cd(a){S(this,a,Q(this,a),Ec);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function dd(a){R(this,a,qc(this,a),Fc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} -function ed(a){N(this,Q(this,a)&tc(this,a));this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function fd(a){N(this,(qc(this,a)&sc(this,a))<<8);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function gd(a){T(this,a,this.h&65535?0:4)}function hd(a){T(this,a,!this.ma()==!(this.g&32768))}function id(a){T(this,a,!!(this.h&65535)&&!this.ma()==!(this.g&32768))}function jd(a){T(this,a,!L(this)&&!!(this.h&65535))} -function kd(a){T(this,a,(this.h&65535?0:4)||!this.ma()!=!(this.g&32768))}function ld(a){T(this,a,L(this)||(this.h&65535?0:4))}function md(a){T(this,a,!this.ma()!=!(this.g&32768))}function nd(a){T(this,a,this.ma())}function od(a){T(this,a,!!(this.h&65535))}function pd(a){T(this,a,!this.ma())}function qd(){F(this,12,1);this.a-=5}function rd(a){T(this,a,!0)}function sd(a){T(this,a,!(this.g&32768))}function td(a){T(this,a,this.g&32768?2:0)} -function U(a){a&1&&(this.j=0);a&2&&(this.g=0);a&4&&(this.h=1);a&8&&(this.o=0);this.a-=5}function ud(a){var b=Q(this,a);a=tc(this,a);hc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function vd(a){var b=qc(this,a)<<8;a=sc(this,a)<<8;hc(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)} -function wd(a){var b=tc(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.f[a]=d&65535,this.f[a|1]=c-d*b&65535,this.h=d>>16|d,this.o=d>>16):(this.g=32768,this.h=d>>15|d,this.o=c>>16,-1===b&&65534===this.f[a]&&(this.f[a]=this.f[a|1]=1));this.a-=53}else this.h=this.o=0,this.g=32768,this.j=65536,this.a-=7}function xd(){F(this,24,2);this.a-=25}function yd(){this.w&49152?(this.F|=128,F(this,4,3)):Xa(this);this.a-=7} -function zd(){F(this,16,4);this.a-=25}var Ad=[0,7,7,10,7,11,9,13];function V(a){var b=this.a;M(this,rc(this,a));this.a=b-Ad[this.c]}var Bd=[0,14,14,17,14,18,16,20];function Cd(a){var b=this.a,c=rc(this,a);a=a>>6&7;ic(this,this.f[a]);this.f[a]=this.f[7];M(this,c);this.a=b-Bd[this.c]}var Dd=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Ed(a){var b=Q(this,a),c=this.a;N(this,vc(this,a,b));this.a=c-Dd[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)} -function Fd(a){var b=qc(this,a);N(this,uc(this,a,b,1)<<8);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Gd=[7,13,13,17,14,18,17,21];function Hd(a){var b=tc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.l&128||(this.o=b>>16,this.h=this.o|b,this.g=0,this.j=-32768>b||32767>6;if(this.f[b]=this.f[b]-1&65535)M(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Nd(a){S(this,a,Q(this,a),Sc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} -function X(a){S(this,a,0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)}function Od(){F(this,28,5);this.a-=5}function Pd(){this.l&4||this.v.fa();this.l|=4;this.f[7]=this.f[7]+-2&65535;this.a-=3}function Qd(a){S(this,a,Q(this,a),Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){F(this,8,6)}function bc(a){Rd[a>>12].call(this,a)}function Sd(a){Td[a>>6&3].call(this,a)}function Ud(a){Wd[a>>6&3].call(this,a)}function Xd(a){Yd[a>>6&3].call(this,a)}function Zd(a){$d[a&15].call(this,a)} -function ae(a){be[a&15].call(this,a)}function ce(a){de[a>>6&3].call(this,a)}function ee(a){fe[a>>6&3].call(this,a)}function ge(a){he[a>>6&3].call(this,a)} -var Rd=[function(a){ie[a>>8&15].call(this,a)},Ed,ud,ed,ad,cd,Wc,Y,function(a){je[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Nd,Y],ie=[function(a){ke[a>>4&15].call(this,a)},rd,od,gd,hd,md,id,kd,Cd,Cd,Sd,Ud,Xd,Y,Y,Y],Td=[function(a){O(this,vc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Gc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Ic);this.a-=this.c?9:3+(7==this.b?2:0)}],Wd=[function(a){S(this,a,0,Mc); -this.a-=this.c?11:6},function(a){S(this,a,L(this)?1:0,wc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,L(this)?1:0,Sc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=tc(this,a);O(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Yd=[function(a){S(this,a,0,Qc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Oc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Ac);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,yc);this.a-=this.c?9:3+(7==this.b?2:0)}],ke=[function(a){le[a& -15].call(this,a)},Y,Y,Y,V,V,V,V,Ld,Y,Zd,ae,X,X,X,X],le=[yd,Pd,Kd,qd,zd,Jd,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],$d=[Id,function(){this.j=0;this.a-=5},function(){this.g=0;this.a-=5},U,function(){this.h=1;this.a-=5},U,U,U,function(){this.o=0;this.a-=5},U,U,U,U,U,U,U],be=[Id,function(){this.j=65536;this.a-=5},function(){this.g=32768;this.a-=5},W,function(){this.h=0;this.a-=5},W,W,W,function(){this.o=32768;this.a-=5},W,W,W,W,W,W,W],je=[pd,nd,jd,ld,sd,td,Zc,$c,xd,Od,ce,ee,ge,Y,Y,Y],de=[function(a){O(this,uc(this,a,0)); -this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],fe=[function(a){R(this,a,0,Nc);this.a-=this.c?11:6},function(a){R(this,a,L(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,L(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=sc(this,a);O(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}],he= -[function(a){R(this,a,0,Rc);this.a-=this.c?9+(this.Ya&1):3+(7==this.b?2:0)},function(a){R(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Bc);this.a-=this.c?9+(this.Ya&1):3+(7==this.b?2:0)},function(a){R(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}];function cc(a){me[a>>12].call(this,a)} -var me=[function(a){ne[a>>8&15].call(this,a)},Ed,ud,ed,ad,cd,Wc,function(a){oe[a>>8&15].call(this,a)},function(a){pe[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Nd,Y],ne=[function(a){qe[a>>4&15].call(this,a)},rd,od,gd,hd,md,id,kd,Cd,Cd,Sd,Ud,Xd,function(a){re[a>>6&3].call(this,a)},Y,Y],re=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.T(a|this.N);M(this,this.f[5]);this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=oc(this,a,0);ic(this,a);N(this,a);this.a-=11},function(a){var b=kc(this),c=this.a; -pc(this,a,0,b);N(this,b);this.a=c-Gd[this.c]},function(a){N(this,vc(this,a,this.ma?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],qe=[function(a){se[a&15].call(this,a)},Y,Y,Y,V,V,V,V,Ld,function(a){a&8?(this.w&49152||(this.w=this.w&-2017|(a&7)<<5,this.l|=1),this.a-=5):F(this,8,6)},Zd,ae,X,X,X,X],se=[yd,Pd,Kd,qd,zd,Jd,function(){jc(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],oe=[Hd,Hd,wd,wd,Xc,Xc,Yc,Yc,Qd,Qd,Y,Y,Y,Y,Md,Md],pe=[pd,nd,jd,ld,sd,td,Zc,$c,xd,Od,ce,ee,ge,function(a){te[a>>6&3].call(this,a)},Y, -Y],te=[Y,function(a){a=oc(this,a,65536);ic(this,a);N(this,a);this.a-=11},function(a){var b=kc(this),c=this.a;pc(this,a,65536,b);N(this,b);this.a=c-Gd[this.c]},Y]; -function ue(a){u.call(this,"ROM",a,ue);this.Y=this.b=null;this.j=a.addr;this.c=a.size;this.h=a.alias;this.g=a.file;this.o=ka(this.g);if(this.g){a=this.g;var b=la(this.o);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;h(a,null,!0,function(a,b,f){f?c.H("Unable to load ROM resource (error "+f+": "+a+")"):(Pa(c.ra,a,b),(a=ua(a,b))?(c.b=a.M,c.Y=a.Y):c.g=null,ve(c))})}}w(ue);ue.prototype.ea=function(a,b,c,d){this.m=b;this.a=c;this.G=d;ve(this)}; -ue.prototype.$=function(){this.Y&&(this.G&&this.G.a(this.id,this.j,this.c,this.Y),delete this.Y);return!0};ue.prototype.Z=function(){return!0}; -function ve(a){if(!Sa(a)){if(a.g){if(!a.b||!a.m)return;a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+ja(a.b.length,8,!0)+") does not match specified size ("+ja(a.c,8,!0)+")";a.i.error=!0;a.H(b)}else{b=a.j;if(kb(a.m,b,a.c,Ib)){var c;for(c=0;c=b)a.preventDefault&&a.preventDefault(),64>14&3;c=a.w>>14&3;a.u!=c&&(a.aa[c]=a.f[6],a.f[6]=a.aa[a.u]);a.w=b;a.l|=2}function N(a,b){a.l&128||(a.o=a.h=b,a.g=0)}function O(a,b,c){a.l&128||(a.o=a.h=a.j=b,a.g=c||0)}function hc(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^b)&(d^b))}function P(a,b){a.l&128||(a.o=a.h=a.j=b,a.g=a.o^a.j>>1)}function ic(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^d)&(d^b))} +function F(a,b,c){if(!a.T){var d=!1;0>a.ja?a.ja=Za(a):a.u||(b=4,d=!0);a.A&57344||(a.oa=63222,a.gb=b);a.u=0;var e=a.R(b|a.N),f=a.R(b+2&65535|a.N);Cb(a,f&-12289|a.ja>>2&12288);d&&(a.F|=4,a.f[6]=4);jc(a,a.ja);jc(a,a.f[7]);M(a,e);a.l&=-113;a.ja=-1;if(26!=c)throw b;}}function kc(a){var b=lc(a),c=lc(a)&-1793;a.w&49152&&(c=c&-225|a.w&63712);M(a,b);Cb(a,c);a.l&=-17} +function mc(a,b,c){var d,e,f,k=0;d=b>>13;a.pa&a.Gb[a.u]||(d&=7);e=a.C[a.u][d];f=(a.S[a.u][d]<<6)+(b&8191)&a.$a;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.pa&32&&(f=a.Ib[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Ka&&4186112>f&&(a.F|=32,F(a,4,12))}switch(e&7){case 1:k=4096;case 2:e|=128;c&4&&(k=8192);break;case 4:k=4096;case 5:c&4&&(k=4096);case 6:e|=c&4?192: +128;break;default:k=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(k|=16384):(b&8128)>(e>>2&8128)&&(k|=16384));a.C[a.u][d]=e;if(4194170!==f||a.u)a.Ia=a.u,a.Ja=d;k&&(k&57344&&(0<=a.ja&&(k|=128),a.A&57344||(a.A=a.A|k|a.Ia<<5|a.Ja<<1),F(a,168,16)),a.A&61440||!(4191360>f||4194239>>a.m].jb(b&a.g,c&255,b)}function lc(a){var b=a.R(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b} +function jc(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.oa=a.oa<<8|246);!a.u&&c<=a.qa&&4c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=k);e=a.R(e);e|=k;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.f[c]+f&65535;7!==c&&(e|=k);a.a-=4;break;case 5:f=-2;e=a.f[c]-2&65535;7!==c&&(e|=k);e=a.R(e)|k;a.a-= +8;break;case 6:return e=a.R(gc(a,2)),e=e+a.f[c]&65535|k,a.a-=6,e;case 7:return e=a.R(gc(a,2)),e=e+a.f[c]&65535,e=a.R(e|a.N)|k,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!k||a.A&57344||(a.oa=a.oa<<8|f<<3&248|c);6==c&&!a.u&&d&4&&0>=f&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32?(a.F|=4,a.f[6]=4,F(a,4,24)):(a.F|=8,a.l|=64));return e}g.Ta=function(a,b){this.Ea?(this.T++,nc(this,mc(this,a,5),b),this.T--):this.m.Ta(a,b)};g.Eb=function(a,b,c){return oc(this,a,b,c)}; +g.Fb=function(a,b,c){return mc(this,oc(this,a,b,c),c)};g.pc=function(a){return pb(this.m,a)};g.qc=function(a){return pb(this.m,mc(this,a,2))};g.bd=function(a,b){qb(this.m,a,b&65535)};g.cd=function(a,b){qb(this.m,mc(this,a,4),b)};function pc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=oc(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.u=a.w>>12&3,c=a.R(d|c&a.N),a.u=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.f[d]:a.aa[a.w>>12&3];return c} +function qc(a,b,c,d){a.A&57344||(a.oa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=oc(a,b,e,4),c&65536||(e&=65535),a.u=a.w>>12&3,e=mc(a,e|c&65536,4),a.u=a.w>>14&3,qb(a.m,e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.f[e]=d:a.aa[a.w>>12&3]=d}function rc(a,b){b>>=6;var c=a.D=b&7;(b=a.B=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function Q(a,b){b>>=6;var c=a.D=b&7;return(b=a.B=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function sc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return oc(a,b,c,8)} +function tc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function uc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function R(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.Ya=a.J(b,e,7),nc(a,e,d.call(a,c,ob(a.m,e)))):a.f[e]=a.f[e]&65280|d.call(a,c,a.f[e])}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.J(b,e,6),qb(a.m,e,d.call(a,c,pb(a.m,e)))):a.f[e]=d.call(a,c,a.f[e])} +function vc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?nc(a,a.J(b,e,5),c):a.f[e]=c?d&1?c<<24>>24&65535:a.f[e]&-256|c&255:a.f[e]&-256;return c}function wc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?qb(a.m,a.J(b,d,4),c):a.f[d]=c&65535;return c}function T(a,b,c){c&&(M(a,a.f[7]+(b<<24>>23)),a.a-=2);a.a-=3} +g.xb=function(a){this.i.complete=!0;this.i.Cb=!1;this.i.wb=!1;this.ha=this.a=a;do{if(this.l&&(this.l&112&&(this.l&32?F(this,168,28):this.l&64?F(this,4,30):this.l&16&&F(this,12,32),this.l&=-113),this.l&7))if(this.l&2){this.l&=-3;var b=160,c=(this.hb&224)>>5;if(a=this.X&&this.X.va>c?this.X:null)b=a.wc,c=a.va;c>(this.w&224)>>5?(this.l&4&&(gc(this,2),this.l&=-5),F(this,b,26),c=!0):c=!1;if(c&&a)if(c=this.X,c==a)this.X=a.next;else for(;c;){b=c.next;if(b==a){c.next=b.next;break}c=b}}else this.l&1&&this.l++; +this.l=this.l&7|this.w&16;this.decode(fc(this))}while(0>1|b<<16;P(this,a);return a&65535}function Cc(a,b){a=b&2048|b>>1|b<<8;P(this,a<<8);return a&255}function Dc(a,b){a=b&~a;N(this,a);return a}function Ec(a,b){a=b&~a;N(this,a<<8);return a}function Fc(a,b){a|=b;N(this,a);return a}function Gc(a,b){a|=b;N(this,a<<8);return a}function Hc(a,b){a=~b|65536;O(this,a);return a&65535}function Ic(a,b){a=~b|256;O(this,a<<8);return a&255}function Jc(a,b){a=b-a;this.l&128||(this.o=this.h=a,this.g=b&(b^a));return a&65535} +function Kc(a,b){a=b-a;var c=a<<8;b<<=8;this.l&128||(this.o=this.h=c,this.g=b&(b^c));return a&255}function Lc(a,b){a=b+a;this.l&128||(this.o=this.h=a,this.g=a&(b^a));return a&65535}function Mc(a,b){a=b+a;var c=a<<8;this.l&128||(this.o=this.h=c,this.g=c&(b<<8^c));return a&255}function Nc(a,b){a=-b;O(this,a,a&b&32768);return a&65535}function Oc(a,b){a=-b;O(this,a<<8,(a&b&128)<<8);return a&255}function Pc(a,b){a=b<<1|this.j>>16&1;P(this,a);return a&65535} +function Qc(a,b){a=b<<1|this.j>>16&1;P(this,a<<8);return a&255}function Rc(a,b){a=(this.j&65536|b)>>1|b<<16;P(this,a);return a&65535}function Sc(a,b){a=((this.j&65536)>>8|b)>>1|b<<8;P(this,a<<8);return a&255}function Tc(a,b){var c=b-a;ic(this,c,a,b);return c&65535}function Uc(a,b){var c=b-a;ic(this,c<<8,a<<8,b<<8);return c&255}function Vc(a,b){this.l&128||(this.o=this.h=b&65280,this.g=this.j=0);return(b<<8|b>>8)&65535}function Wc(a,b){a^=b;N(this,a);return a&65535} +function Xc(a){S(this,a,Q(this,a),xc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Yc(a){var b=uc(this,a);a=a>>6&7;var c=this.f[a];c&32768&&(c|=4294901760);this.j=this.g=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.g=32768)}this.f[a]=c&65535;this.o=this.h=c;this.a-=(this.c?6:7)+b} +function Zc(a){var b=uc(this,a);a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&=63;if(b&32){b=64-b;32>b-1;this.j=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.f[a|1]=d&65535;this.o=d>>16;this.h=d>>16|d;this.a-=(this.c?6:7)+b}function $c(a){T(this,a,!L(this))}function ad(a){T(this,a,L(this))} +function bd(a){S(this,a,Q(this,a),Dc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function cd(a){R(this,a,rc(this,a),Ec);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function dd(a){S(this,a,Q(this,a),Fc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function ed(a){R(this,a,rc(this,a),Gc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} +function fd(a){N(this,Q(this,a)&uc(this,a));this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function gd(a){N(this,(rc(this,a)&tc(this,a))<<8);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function hd(a){T(this,a,this.h&65535?0:4)}function id(a){T(this,a,!this.ma()==!(this.g&32768))}function jd(a){T(this,a,!!(this.h&65535)&&!this.ma()==!(this.g&32768))}function kd(a){T(this,a,!L(this)&&!!(this.h&65535))} +function ld(a){T(this,a,(this.h&65535?0:4)||!this.ma()!=!(this.g&32768))}function md(a){T(this,a,L(this)||(this.h&65535?0:4))}function nd(a){T(this,a,!this.ma()!=!(this.g&32768))}function od(a){T(this,a,this.ma())}function pd(a){T(this,a,!!(this.h&65535))}function qd(a){T(this,a,!this.ma())}function rd(){F(this,12,1);this.a-=5}function sd(a){T(this,a,!0)}function td(a){T(this,a,!(this.g&32768))}function ud(a){T(this,a,this.g&32768?2:0)} +function U(a){a&1&&(this.j=0);a&2&&(this.g=0);a&4&&(this.h=1);a&8&&(this.o=0);this.a-=5}function vd(a){var b=Q(this,a);a=uc(this,a);ic(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function wd(a){var b=rc(this,a)<<8;a=tc(this,a)<<8;ic(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)} +function xd(a){var b=uc(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.f[a]=d&65535,this.f[a|1]=c-d*b&65535,this.h=d>>16|d,this.o=d>>16):(this.g=32768,this.h=d>>15|d,this.o=c>>16,-1===b&&65534===this.f[a]&&(this.f[a]=this.f[a|1]=1));this.a-=53}else this.h=this.o=0,this.g=32768,this.j=65536,this.a-=7}function yd(){F(this,24,2);this.a-=25}function zd(){this.w&49152?(this.F|=128,F(this,4,3)):Xa(this);this.a-=7} +function Ad(){F(this,16,4);this.a-=25}var Bd=[0,7,7,10,7,11,9,13];function V(a){var b=this.a;M(this,sc(this,a));this.a=b-Bd[this.c]}var Cd=[0,14,14,17,14,18,16,20];function Dd(a){var b=this.a,c=sc(this,a);a=a>>6&7;jc(this,this.f[a]);this.f[a]=this.f[7];M(this,c);this.a=b-Cd[this.c]}var Ed=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Fd(a){var b=Q(this,a),c=this.a;N(this,wc(this,a,b));this.a=c-Ed[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)} +function Gd(a){var b=rc(this,a);N(this,vc(this,a,b,1)<<8);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Hd=[7,13,13,17,14,18,17,21];function Id(a){var b=uc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.l&128||(this.o=b>>16,this.h=this.o|b,this.g=0,this.j=-32768>b||32767>6;if(this.f[b]=this.f[b]-1&65535)M(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Od(a){S(this,a,Q(this,a),Tc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} +function X(a){S(this,a,0,Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Pd(){F(this,28,5);this.a-=5}function Qd(){this.l&4||this.v.fa();this.l|=4;gc(this,-2);this.a-=3}function Rd(a){S(this,a,Q(this,a),Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){F(this,8,6)}function bc(a){Sd[a>>12].call(this,a)}function Td(a){Ud[a>>6&3].call(this,a)}function Wd(a){Xd[a>>6&3].call(this,a)}function Yd(a){Zd[a>>6&3].call(this,a)}function $d(a){ae[a&15].call(this,a)}function be(a){ce[a&15].call(this,a)} +function de(a){ee[a>>6&3].call(this,a)}function fe(a){ge[a>>6&3].call(this,a)}function he(a){ie[a>>6&3].call(this,a)} +var Sd=[function(a){je[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,Y,function(a){ke[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],je=[function(a){le[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Td,Wd,Yd,Y,Y,Y],Ud=[function(a){O(this,wc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],Xd=[function(a){S(this,a,0,Nc); +this.a-=this.c?11:6},function(a){S(this,a,L(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,L(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=uc(this,a);O(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Zd=[function(a){S(this,a,0,Rc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Bc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}],le=[function(a){me[a& +15].call(this,a)},Y,Y,Y,V,V,V,V,Md,Y,$d,be,X,X,X,X],me=[zd,Qd,Ld,rd,Ad,Kd,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],ae=[Jd,function(){this.j=0;this.a-=5},function(){this.g=0;this.a-=5},U,function(){this.h=1;this.a-=5},U,U,U,function(){this.o=0;this.a-=5},U,U,U,U,U,U,U],ce=[Jd,function(){this.j=65536;this.a-=5},function(){this.g=32768;this.a-=5},W,function(){this.h=0;this.a-=5},W,W,W,function(){this.o=32768;this.a-=5},W,W,W,W,W,W,W],ke=[qd,od,kd,md,td,ud,$c,ad,yd,Pd,de,fe,he,Y,Y,Y],ee=[function(a){O(this,vc(this,a,0)); +this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Ic);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Mc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)}],ge=[function(a){R(this,a,0,Oc);this.a-=this.c?11:6},function(a){R(this,a,L(this)?1:0,yc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,L(this)?1:0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=tc(this,a);O(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}],ie= +[function(a){R(this,a,0,Sc);this.a-=this.c?9+(this.Ya&1):3+(7==this.b?2:0)},function(a){R(this,a,0,Qc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Cc);this.a-=this.c?9+(this.Ya&1):3+(7==this.b?2:0)},function(a){R(this,a,0,Ac);this.a-=this.c?9:3+(7==this.b?2:0)}];function cc(a){ne[a>>12].call(this,a)} +var ne=[function(a){oe[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,function(a){pe[a>>8&15].call(this,a)},function(a){qe[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],oe=[function(a){re[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Td,Wd,Yd,function(a){se[a>>6&3].call(this,a)},Y,Y],se=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.R(a|this.N);M(this,this.f[5]);this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=pc(this,a,0);jc(this,a);N(this,a);this.a-=11},function(a){var b=lc(this),c=this.a; +qc(this,a,0,b);N(this,b);this.a=c-Hd[this.c]},function(a){N(this,wc(this,a,this.ma?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],re=[function(a){te[a&15].call(this,a)},Y,Y,Y,V,V,V,V,Md,function(a){a&8?(this.w&49152||(this.w=this.w&-2017|(a&7)<<5,this.l|=1),this.a-=5):F(this,8,6)},$d,be,X,X,X,X],te=[zd,Qd,Ld,rd,Ad,Kd,function(){kc(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],pe=[Id,Id,xd,xd,Yc,Yc,Zc,Zc,Rd,Rd,Y,Y,Y,Y,Nd,Nd],qe=[qd,od,kd,md,td,ud,$c,ad,yd,Pd,de,fe,he,function(a){ue[a>>6&3].call(this,a)},Y, +Y],ue=[Y,function(a){a=pc(this,a,65536);jc(this,a);N(this,a);this.a-=11},function(a){var b=lc(this),c=this.a;qc(this,a,65536,b);N(this,b);this.a=c-Hd[this.c]},Y]; +function ve(a){u.call(this,"ROM",a,ve);this.Y=this.b=null;this.j=a.addr;this.c=a.size;this.h=a.alias;this.g=a.file;this.o=ka(this.g);if(this.g){a=this.g;var b=la(this.o);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;h(a,null,!0,function(a,b,f){f?c.H("Unable to load ROM resource (error "+f+": "+a+")"):(Pa(c.ra,a,b),(a=ua(a,b))?(c.b=a.M,c.Y=a.Y):c.g=null,we(c))})}}w(ve);ve.prototype.ea=function(a,b,c,d){this.m=b;this.a=c;this.G=d;we(this)}; +ve.prototype.$=function(){this.Y&&(this.G&&this.G.a(this.id,this.j,this.c,this.Y),delete this.Y);return!0};ve.prototype.Z=function(){return!0}; +function we(a){if(!Sa(a)){if(a.g){if(!a.b||!a.m)return;a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+ja(a.b.length,8,!0)+") does not match specified size ("+ja(a.c,8,!0)+")";a.i.error=!0;a.H(b)}else{b=a.j;if(kb(a.m,b,a.c,Ib)){var c;for(c=0;c=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=qa(b[0]);if(c!=this.Ha)return;b=qa(b[1]);if(this.u=Qa(b)){var d=this.u.exports;if(d){var e=d.connect;e&&e.call(this.u);if(this.A=d.receiveData){this.status(this.ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.$=function(a,b){if(!b)if(this.nb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -g.Z=function(a){return a?this.save():!0};g.reset=function(){Be(this)};g.save=function(){var a=new K(this);a.set(0,[]);return a.data()};g.restore=function(){return Be(this)};function Be(a){a.D=0;a.b=0;a.c=128;a.h=[];return!0}g.fb=function(a){if("number"==typeof a)this.h.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.I||8,c=a-this.o%a,this.I&&(b=" ".slice(0,c)));this.B&&!this.o&&c&&(b=String.fromCharCode(this.B)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.o+=c}else if(null!=this.j){if(10==a||1024<=this.j.length)this.P(this.j), -this.j="";10!=a&&(this.j+=String.fromCharCode(a))}this.c&=-129;yb(this.a,this.K,1)}};var Ce={},Ae=(Ce[65392]=[null,null,Z.prototype.ec,Z.prototype.Rc,"RCSR"],Ce[65394]=[null,null,Z.prototype.dc,Z.prototype.Qc,"RBUF"],Ce[65396]=[null,null,Z.prototype.sc,Z.prototype.ed,"XCSR"],Ce[65398]=[null,null,Z.prototype.rc,Z.prototype.dd,"XBUF"],Ce);q(function(){for(var a=A(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.s[b]=c,!0;case "loadTape":return this.s[b]=c,c.onclick=function(){var a=d.s.listTapes;a&&Ee(d, -a.options[a.selectedIndex].text,a.value)},!0;case "mountTape":if(this.o)return this.s[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ee(d,ka(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; -g.ea=function(a,b,c,d){this.v=a;this.m=b;this.a=c;this.G=d;if((this.b=Tb(this.v,"autoMount")||this.b)&&"string"==typeof this.b)try{this.b=eval("("+this.b+")")}catch(e){m("PC11 auto-mount error: "+e.message+" ("+this.b+")"),this.b=null}tb(b,this,Fe);Ge(this,"None","",!0);this.o&&Ge(this,"Local Tape","?");Ge(this,"Remote Tape","??");He(this)||B(this)};g.$=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};g.Z=function(a){return a?this.save():!0}; -g.reset=function(){this.c&=-2241;this.u=0};function He(a){a.g=0;if(a.b){var b=a.b.path,c;if(!(c=a.b.name))a:{if((c=a.s.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(d=la(c),e="json"==d||"gz"==d?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!h(e,null,!0,function(d,e,f){var k=0>f&&a.v&&!a.v.i.L;f?a.H('Unable to load tape "'+b+'" (error '+f+": "+d+")",k):(Pa(a.ra,d,e),ua(d,e)&&(a.h=c));a.i.Wa=!1;a.g&&(a.g--,a.g||B(a)); -Le(a)})}function Ge(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bPe){if(Re(d,this.u)){this.j=new K(this,"1.30.1","failsafe");Re(this.j)&&(We(this,d),a=2,Xe(this.j));this.j.set("timestamp",ta());Ye(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ve(d)){var f=d.get("code"),k=d.get("data");f&&("ok"==f?Re(d,k):("error"== -f&&"no machine state"!=k?(this.H("Error: "+k),"unable to verify user"==k&&(za("user",""),this.c=null)):this.P(f+": "+k),Xe(d),Re(d)?(c=Ve(d),e=!0):c=!1))}e&&Ue(this,c?d:null)}else 2==a&&d.clear()}else Ue(this);delete this.u;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.S=!0;this.i.L=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(Ze(this,this.a,b,c,a),this.a.Da());this.I&&(We(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; -function We(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;h("http://www.pcjs.org/api/v1/report",d,!0)}} -function $e(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new K(a,"1.30.1"),k=new K(a,"1.30.1","validate"),l=ta();k.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&Xa(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.L=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;n'+b+"");a.innerHTML=b}},!0;case "descTape":return this.s[b]=c,!0;case "loadTape":return this.s[b]=c,c.onclick=function(){var a=d.s.listTapes;a&&Fe(d, +a.options[a.selectedIndex].text,a.value)},!0;case "mountTape":if(this.o)return this.s[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Fe(d,ka(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; +g.ea=function(a,b,c,d){this.v=a;this.m=b;this.a=c;this.G=d;if((this.b=Tb(this.v,"autoMount")||this.b)&&"string"==typeof this.b)try{this.b=eval("("+this.b+")")}catch(e){m("PC11 auto-mount error: "+e.message+" ("+this.b+")"),this.b=null}tb(b,this,Ge);He(this,"None","",!0);this.o&&He(this,"Local Tape","?");He(this,"Remote Tape","??");Ie(this)||B(this)};g.$=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};g.Z=function(a){return a?this.save():!0}; +g.reset=function(){this.c&=-2241;this.u=0};function Ie(a){a.g=0;if(a.b){var b=a.b.path,c;if(!(c=a.b.name))a:{if((c=a.s.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(d=la(c),e="json"==d||"gz"==d?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!h(e,null,!0,function(d,e,f){var k=0>f&&a.v&&!a.v.i.L;f?a.H('Unable to load tape "'+b+'" (error '+f+": "+d+")",k):(Pa(a.ra,d,e),ua(d,e)&&(a.h=c));a.i.Wa=!1;a.g&&(a.g--,a.g||B(a)); +Me(a)})}function He(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bQe){if(Se(d,this.u)){this.j=new K(this,"1.30.1","failsafe");Se(this.j)&&(Xe(this,d),a=2,Ye(this.j));this.j.set("timestamp",ta());Ze(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=We(d)){var f=d.get("code"),k=d.get("data");f&&("ok"==f?Se(d,k):("error"== +f&&"no machine state"!=k?(this.H("Error: "+k),"unable to verify user"==k&&(za("user",""),this.c=null)):this.P(f+": "+k),Ye(d),Se(d)?(c=We(d),e=!0):c=!1))}e&&Ve(this,c?d:null)}else 2==a&&d.clear()}else Ve(this);delete this.u;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.T=!0;this.i.L=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&($e(this,this.a,b,c,a),this.a.Da());this.I&&(Xe(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; +function Xe(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;h("http://www.pcjs.org/api/v1/report",d,!0)}} +function af(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new K(a,"1.30.1"),k=new K(a,"1.30.1","validate"),l=ta();k.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&Xa(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.L=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;nf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");h(e,null,!0,function(f,k,l){if(l||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(k=k.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],k);gf(a,b,c)}})}else c(a,null)} -function hf(a,b,c,d){function e(a){if(void 0===l){var b=k&&A(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--df||Ga(!0));n=!1}var k,l,n=!0;df++;Oa[a]={};try{if(k=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=r:D.appendChild(document.createTextNode(r));t.appendChild(D)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?ef(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(k.outerHTML=n,--df||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(n,k),--df||Ga(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?ef(b,a,d,!0,e,r):ff(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Vd){f(Vd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return hf(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map +g.V=function(a,b,c){var d=this;switch(b){case "power":return this.s[b]=c,c.onclick=function(){d.g||(d.i.L?af(d,!1,!0):Ue(d,d.Fa))},!0;case "reset":return this.s[b]=c,c.onclick=function(){if(d.i.L&&!d.g)if(d.b&&!d.v){var a=va("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");af(d,a,!0);!a&&d.D?window&&window.location.reload():d.Fa(Qe)}else d.reset(),d.a&&d.a.Da()},!0;case "save":if(ma())c.parentNode.removeChild(c);else return this.s[b]= +c,c.onclick=function(){var a=Re(d,!0);if(a){var b=!!(d.b&&!d.v||d.D),c=af(d,b);b?bf(d,a,c):d.H("Resume disabled, machine state not saved")}},!0}return!1}; +function Re(a,b){var c=a.c;c||((c=ya("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=cf(a,c))||a.H("The user ID is invalid.")):b&&a.H("Browser local storage is not available"));return c} +function cf(a,b){a.c=null;b=h(na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(za("user",b.data),a.c=b.data)}catch(d){m(d.message+" ("+c+")")}return a.c}function Te(a){var b=null;a.c&&(b=na()+"/api/v1/user?req=load&user="+a.c+"&state="+df(a,"1.30.1"));return b} +function bf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=df(a,"1.30.1");d.data=c;b=h(na()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");h(e,null,!0,function(f,k,l){if(l||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(k=k.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],k);hf(a,b,c)}})}else c(a,null)} +function jf(a,b,c,d){function e(a){if(void 0===l){var b=k&&A(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--ef||Ga(!0));n=!1}var k,l,n=!0;ef++;Oa[a]={};try{if(k=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=r:D.appendChild(document.createTextNode(r));t.appendChild(D)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?ff(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(k.outerHTML=n,--ef||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(n,k),--ef||Ga(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?ff(b,a,d,!0,e,r):gf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Vd){f(Vd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return jf(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map From f5f983bb189d80763d3d5d89f0bb6a0564aab327 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Tue, 18 Oct 2016 12:03:23 -0700 Subject: [PATCH 10/32] Updated PDP-11 READMEs --- apps/README.md | 9 +- apps/pdp11/README.md | 5 +- apps/pdp11/boot/README.md | 12 +- apps/pdp11/boot/bootstrap/README.md | 49 ++- apps/pdp11/boot/test/README.md | 478 ++++++++++++++++++++++++++- apps/pdp11/tapes/README.md | 17 +- disks/README.md | 3 +- modules/pdp11/lib/pc11.js | 15 +- modules/shared/templates/common.html | 2 +- modules/shared/templates/common.xsl | 2 +- 10 files changed, 549 insertions(+), 43 deletions(-) diff --git a/apps/README.md b/apps/README.md index 7ae99a6ca4..d59631c2d4 100644 --- a/apps/README.md +++ b/apps/README.md @@ -1,12 +1,13 @@ --- layout: page -title: Application Archives +title: Software Archives permalink: /apps/ --- -Application Archives ---- -Browse these PCjs Application Archives: +Software Archives +----------------- + +Browse these PCjs Software Archives: - [IBM PC](pcx86/) - [Challenger 1P](c1p/) diff --git a/apps/pdp11/README.md b/apps/pdp11/README.md index e03b2c1902..b380080213 100644 --- a/apps/pdp11/README.md +++ b/apps/pdp11/README.md @@ -7,4 +7,7 @@ permalink: /apps/pdp11/ PDP-11 Software --------------- -This is where we maintain selected PDP-11 software distributed on [Tape](tapes/). +We have archived the following selected PDP-11 software: + +- [Boot Code](boot/) +- [DEC PDP-11 Tapes](tapes/) diff --git a/apps/pdp11/boot/README.md b/apps/pdp11/boot/README.md index 53b327da34..5ab057babb 100644 --- a/apps/pdp11/boot/README.md +++ b/apps/pdp11/boot/README.md @@ -7,7 +7,12 @@ permalink: /apps/pdp11/boot/ PDP-11 Boot Code ---------------- -Boot code can be added to machines by including a `` component in the machine XML configuration file +The project contains the following PDP-11 boot code images: + +* [PDP-11 Boot Test](test/) +* [DEC PDP-11 Bootstrap Loader](bootstrap/) + +Boot code can be pre-loaded into any machine by including a `` component in the machine XML configuration file with the *file* attribute set to the filename of the image, along with optional *load* and *exec* addresses; eg: ```xml @@ -17,8 +22,3 @@ with the *file* attribute set to the filename of the image, along with optional If no *load* address is specified, the `` component relies on the "load" property of the JSON-encoded RAM image; otherwise, the starting RAM address is used. If no *exec* address is specified, the CPU will begin execution at its usual reset address. - -The project currently contains the following PDP-11 RAM images: - -* [PDP-11 Boot Test](test/) -* [PDP-11 Bootstrap Loader](bootstrap/) diff --git a/apps/pdp11/boot/bootstrap/README.md b/apps/pdp11/boot/bootstrap/README.md index 72d2349a7f..37a973db75 100644 --- a/apps/pdp11/boot/bootstrap/README.md +++ b/apps/pdp11/boot/bootstrap/README.md @@ -1,11 +1,11 @@ --- layout: page -title: PDP-11 Bootstrap Loader +title: DEC PDP-11 Bootstrap Loader permalink: /apps/pdp11/boot/bootstrap/ --- -PDP-11 Bootstrap Loader ------------------------ +DEC PDP-11 Bootstrap Loader +--------------------------- The blog post "[PDP-11 Paper Tape BASIC](http://www.avitech.com.au/ptb/ptb.html)" describes the *Bootstrap Loader*, a small program used to load the *Absolute Loader*, which in turn loads the *PDP-11 BASIC Paper Tape*. @@ -28,12 +28,13 @@ Here's what the *Bootstrap Loader* looks like: 037774 000765 037776 177550 -Using a [PDPjs](/modules/pdpjs/) machine such as the [PDP-11/20 Test Machine with Debugger](/devices/pdp11/machine/1120/test/debugger/), -the *Bootstrap Loader* is easily entered with a single Debugger "edit" command: +Using a [PDPjs](/modules/pdpjs/) machine with the built-in Debugger, such as the +[PDP-11/20 Test Machine with Debugger](/devices/pdp11/machine/1120/test/debugger/), the *Bootstrap Loader* +is easily entered with a single Debugger EDIT ("e") command: e 037744 016701 000026 012702 000352 005211 105711 100376 116162 000002 037400 005267 177756 000765 177550 -You can immediately disassemble the code using `u 037744 040000`: +You can immediately disassemble the code using the Debugger's UNASSEMBLE ("u") command `u 037744 040000`: 037744: 016701 000026 MOV 26(PC),R1 ; @037776 037750: 012702 000352 MOV #352,R2 @@ -45,12 +46,38 @@ You can immediately disassemble the code using `u 037744 040000`: 037774: 000765 BR 037750 037776: 177550 .WORD 177550 -I also pasted the disassembled code into a listing file, [BOOTSTRAP-16KB.LST](BOOTSTRAP-16KB.lst), and ran [FileDump](/modules/filedump) -to produce a [BOOTSTRAP-16KB.JSON](BOOTSTRAP-16KB.json) that can be pre-loaded into any machine: +To run the above code, set the PC to 037744 and start the machine: + + r pc=037744 + g + +Preloading DEC's Bootstrap Loader +--------------------------------- + +I pasted the disassembled code (above) into a listing file, [BOOTSTRAP-16KB.lst](BOOTSTRAP-16KB.lst), +and then ran [FileDump](/modules/filedump) to produce a [BOOTSTRAP-16KB.json](BOOTSTRAP-16KB.json) that can +be automatically pre-loaded into any machine: filedump --file=BOOTSTRAP-16KB.lst --format=octal --output=BOOTSTRAP-16KB.json -To run the *Bootstrap Loader*, set the PC to 037744 and start the machine: +For example, this [PDP-11/20 16Kb Machine](/devices/pdp11/machine/1120/bootstrap/debugger/machine.xml) preloads +the *Bootstrap Loader* using the `` component's optional *file* attribute: - r pc=037744 - g + + +I also edited [BOOTSTRAP-16KB.json](BOOTSTRAP-16KB.json) to include the following properties: + + "load": 0x3FE4, + "exec": 0x3FE4, + +so that the `` component knows exactly where to load and execute the file. However, the `` component can also +specify those value(s) itself, if needed: + + + +Finally, if you prefer octal *and* you're sure everyone will be using an ES6-capable browser, you can do this: + + + +All PCjs configuration files use hex and/or decimal exclusively, since those number formats have always been supported, +but as time goes by, the new octal and binary formats will be almost as universal. diff --git a/apps/pdp11/boot/test/README.md b/apps/pdp11/boot/test/README.md index 00da05dbeb..cbd4a89c72 100644 --- a/apps/pdp11/boot/test/README.md +++ b/apps/pdp11/boot/test/README.md @@ -9,7 +9,479 @@ redirect_from: PDP-11 Boot Test ---------------- -[TEST.MAC](TEST.mac) is based on [BOOT.MAC](http://skn.noip.me/pdp11/boot.mac) written by [Paul Nankervis](mailto:paulnank@hotmail.com)) +[TEST.mac](TEST.mac) is based on [boot.mac](http://skn.noip.me/pdp11/boot.mac) written by [Paul Nankervis](mailto:paulnank@hotmail.com). -[TEST.MAC](TEST.mac) was cross-assembled with [MACRO11](https://github.com/shattered/macro11) to produce [TEST.LST](TEST.lst), -which was then processed by [FileDump](/modules/filedump/) to produce [TEST.JSON](TEST.json). +[TEST.mac](TEST.mac) was cross-assembled with [MACRO11](https://github.com/shattered/macro11) to produce [TEST.lst](TEST.lst), +which was then processed by [FileDump](/modules/filedump/) to produce [TEST.json](TEST.json). + +The source code is shown below. + + ; BOOT LOADER CODE + ; + ; REBASE HIGHER LINK/BOT:140000 + ; WANT PERFORMANCE COUNTER - CLOCK TICKS TO DO SOMETHING? + + PSW = 177776 + DL11XCSR = 177564 + DL11VEC = 64 + + KW11LKS = 177546 + KW11VEC = 100 + + .ASECT + .=140000 + START: RESET ; 140000 + CLR @#PSW + MOV #START,SP + CLR @#DL11XCSR ; CLEAR THE XCSR + MOV #BANNER,R0 + JSR PC,PRINT + MOV #CLKAST,@#KW11VEC + MOV #340,@#KW11VEC+2 + BIS #100,@#KW11LKS ; SET CLOCK TICKING + + MOV #PROMPT,R0 + JSR PC,PRINT + SUB #256,SP + MOV SP,R0 + JSR PC,INPUT + CLR R0 + 1$: WAIT + INC R0 + TST LGHTON + BEQ 1$ + MOV #054000,-(SP) ; SUPER PRIORITY 0 ALT REG + MOV LGHTON,-(SP) ; CALL SUPER LOOP START + RTI + + LGHTON: .WORD 0 + CLKTIC: .WORD 0 + + CLKAST: ; 140124 + INC CLKTIC + RTI + + ONECHR: + TSTB @#DL11XCSR ; 140132 + BPL ONECHR + MOVB R0,@#177566 + RTS PC + + PRTPTR: .WORD 0 ; 140146 + + PRINT: ; 140150 + BITB #100,@#DL11XCSR + BNE PRINT + MOV R0,PRTPTR + MOV #PRTAST,@#DL11VEC + MOV #200,@#DL11VEC+2 + BISB #100,@#DL11XCSR + RTS PC + + PRTAST: ; 140210 + TSTB @PRTPTR + BEQ 2$ + MOVB @PRTPTR,@#177566 + INC PRTPTR + RTI + 2$: CLRB @#177564 + RTI + + BUFFER: .WORD 0 ; INPUT BUFFER POINTER + LENGTH: .WORD 0 ; INPUT BUFFER LENGTH + + INPUT: + MOV R0,BUFFER ; 140244 + CLR LENGTH + MOV #INPAST,@#60 + MOV #200,@#62 + BISB #100,@#177560 + RTS PC + + INPAST: ; 140300 + MOV R0,-(SP) + MOVB @#177562,R0 + CMPB R0,#15 + BEQ 7$ ; CARRIAGE RETURN + CMPB R0,#127. + BEQ 2$ ; + CMPB R0,#10 + BNE 4$ ; BACK SPACE + 2$: TST LENGTH ; DATA IN BUFFER? + BEQ 3$ + DEC LENGTH ; LENGTH + MOV #DEL,R0 + JSR PC,PRINT + 3$: BR 9$ + 4$: CMPB R0,#40 + BLT 9$ ; BELOW SPACE + CMPB R0,#177 + BGE 9$ ; SKIP STUFF TOO BIG + JSR PC,ONECHR ; ECHO CHAR + CMPB R0,#172 + BGT 5$ ; ABOVE Z + CMPB R0,#141 + BLT 5$ ; BELOW A + BICB #40,R0 ; CONVERT TO UPPER CASE + 5$: CMP LENGTH,#254 + BGE 9$ + MOVB R0,-(SP) + MOV BUFFER,R0 + ADD LENGTH,R0 + MOVB (SP)+,(R0) + INC LENGTH + BR 9$ + + 7$: MOV BUFFER,R0 + ADD LENGTH,R0 + CLRB (R0) + MOV #CMD,@#240 ; CALL CMD AT PRIORITY 2 + MOV #100,@#242 + MOV #2000,@#177772 + 9$: MOV (SP)+,R0 + RTI + + CMD: ; 140506 + CLR @#177772 ; NO MORE PIR CALLS + MOV R0,-(SP) + MOV R1,-(SP) + MOV R2,-(SP) + MOV R3,-(SP) + MOV R4,-(SP) + MOV #EOL,R0 + JSR PC,PRINT + 1$: BITB #100,@#177564 + BNE 1$ + CLR R4 + MOV #CMDLST,R3 ; CMD LIST + 3$: MOVB (R3)+,R0 + BEQ 13$ + MOV BUFFER,R2 ; USER CMD + 4$: MOVB (R2)+,R1 + BEQ 15$ ; NULL COMMAND? + CMPB R1,#40 + BEQ 4$ ; SKIP SPACE + 5$: CMPB R0,R1 + BNE 7$ + MOVB (R3)+,R0 + BEQ 9$ + MOVB (R2)+,R1 + BEQ 9$ + CMPB R1,#40 + BNE 5$ + BR 9$ + 7$: MOVB (R3)+,R0 + BNE 7$ + INC R4 + BR 3$ + 9$: ASL R4 + JSR PC,@CMDTBL(R4) ; EXECUTE + BR 15$ + + 13$: MOV #UNKMSG,R0 + JSR PC,PRINT + + 15$: CLR LENGTH + MOV #PROMPT,R0 + JSR PC,PRINT + MOV (SP)+,R4 + MOV (SP)+,R3 + MOV (SP)+,R2 + MOV (SP)+,R1 + MOV (SP)+,R0 + RTI + + + CMDTBL: .WORD BOOT,HALT,TEST,LIGHTS,HELP + HLPMSG: .ASCIZ 'COMMANDS ARE BOOT, HALT, LIGHTS, TEST AND HELP'<15><12>'BOOT DEVICES ARE RK? RL? OR RP?'<15><12> + EOL: .BYTE 15,12,0 + DEL: .BYTE 10,40,10,0 + CMDLST: .ASCIZ 'BOOT' + .ASCIZ 'HALT' + .ASCIZ 'TEST' + .ASCIZ 'LIGHTS' + .ASCIZ 'HELP' + .BYTE 0 + UNKMSG: .ASCIZ 'UNKNOWN COMMAND'<12><15> + BANNER: .ASCIZ 'PAUL NANKERVIS - PAULNANK@HOTMAIL.COM'<12><15><12><15> + PROMPT: .ASCIZ 'BOOT> ' + BADBOO: .ASCIZ 'UNKNOWN BOOT DEVICE'<12><15> + PERMSG: .ASCIZ ' CLOCK TICKS'<12><15> + + .EVEN + + HELP: ; 141244 + MOV #HLPMSG,R0 + JSR PC,PRINT + RTS PC + + HALT: ; 141260 + HALT + MOV #EOL,R0 + JSR PC,PRINT + RTS PC + + TEST: ; 141272 + CLR CLKTIC + + MOV #15000,R5 + 10$: MOV R5,@#177570 ; DISPLAY + MOV R5,R4 + ASR R4 + 15$: CLR R0 + MOV R5,R1 + DIV R4,R0 + MOV R0,R2 + MUL R4,R2 + ADD R3,R1 + CMP R1,R5 + BEQ 20$ + HALT + 20$: SOB R4,15$ + SOB R5,10$ + + MOV #PERMSG+5,R0 + MOV CLKTIC,R3 + + 25$: CLR R2 ; 141350 + DIV #10,R2 + ADD #'0,R3 + MOVB R3,-(R0) + MOV R2,R3 + BNE 25$ + + JSR PC,PRINT + RTS PC + + + MMR0=177572 + MMR1=177574 + MMR2=177576 + MMR3=172516 + + LIGHTS: ; 141376 + MOV #77406,R3 ; DEFAULT PDR + CLR R2 + CLR R1 + MOV #8.,R0 + 1$: MOV R3,172300(R1) ; KERNEL I PDR + MOV R2,172340(R1) ; KERNEL I PAR + MOV R3,172320(R1) ; KERNEL D PDR + MOV R2,172360(R1) ; KERNEL D PAR + MOV R3,172200(R1) ; SUPER I PDR + MOV R2,172240(R1) ; SUPER I PAR + MOV R3,172220(R1) ; SUPER D PDR + MOV R2,172260(R1) ; SUPER D PAR + MOV R3,177600(R1) ; USER I PDR + MOV R2,177640(R1) ; USER I PAR + MOV R3,177620(R1) ; USER D PDR + MOV R3,177660(R1) ; USER D PAR + ADD #200,R2 + ADD #2,R1 + SOB R0,1$ + BIS #176000,@#172376 ; KERNEL D POINTS TO I/O SPACE + BIS #176000,@#172276 ; SUPER D POINTS TO I/O SPACE + BIS #176000,@#177676 ; USER D POINTS TO I/O SPACE + MOV #77,@#MMR3 ; 77 FOR 22 BIT + MOV #1,@#MMR0 + + MOV #1700,@#172244 ; BASE SUPER I (PAR 2) #40000 AT #170000 + MOV #1700,@#172264 ; BASE SUPER D (PAR 2) #40000 AT #170000 + MOV #010000,@#177776 ; SET PM TO SUPER + + MOV #40200,R3 ; SUPER CODE ADDRESS + MOV #SUPERS,R2 ; ADDRESS SUPER CODE + 10$: MOV (R2)+,-(SP) + MTPI (R3)+ + CMP R2,#SUPERE + BLO 10$ + + MOV #40200,LGHTON ; CHANGE IDLE TASK + RTS PC + + ; + ; TO BE COPIED TO SUPER #40200 AT PHYSICAL #170000 + ; #40000 TO #40200 FOR WAIT & JMP INSTRUCTIONS + ; + SUPERS: ; 141616 + MOV #37,R0 ; LOAD PATTERN + MOV #174000,R1 + BIT #1,@#177570 + BEQ 10$ + MOV #7417,R0 + MOV R0,R1 + COM R1 + BIT #2,@#177570 + BEQ 10$ + MOV #36163,R0 + MOV #37000,R1 + 10$: MOV R1,R2 + SUB #2,R2 + BIC #1,R2 ; WAIT ADDRESS + MOV R2,R3 + BIC #177701,R3 ; ADDRESS OFFSET + MOV #0000001,40000(R3) ; WRITE WAIT + ADD #2,R3 + MOV #0000113,40000(R3) ; WRITE JMP (R3) + + MOV R2,R4 + ASH #-6,R4 + BIC #177600,R4 + MOV #1700,R5 + SUB R4,R5 ; PAR ADDRESS BASE FOR WAIT + MOV R2,R4 + ASH #-12.,R4 + BIC #177761,R4 ; PAR SELECT OFFSET + MOV R5,172240(R4) ; SUPER I SPACE + + MOV R1,R3 + ASH #-12.,R3 + BIC #177761,R3 ; PAR SELECT OFFSET + CMP R3,R4 ; SAME PAR + BEQ 30$ + MOV R1,R4 + ASH #-6,R4 + BIC #177600,R4 + MOV #1700,R5 + SUB R4,R5 ; PAR ADDRESS BASE FOR JMP + MOV R5,172240(R3) ; SUPER I SPACE + 30$: + MOV #3,R4 + ADD @#177570,R4 + MOV #2,R3 + ADD PC,R3 + 40$: JMP (R2) + SOB R4,40$ + MOV R0,R2 + ROR R2 ; ROTATE PATTERN + ROL R1 + ROR R0 + BR 10$ + SUPERE: + + BOOT: ; 142062 + CLR R3 ; UNIT + 1$: MOVB (R2)+,R1 + BEQ BOOTRK ; DEFAULT DEVICE IS RK0 + CMPB R1,#40 + BEQ 1$ + CMPB R1,#'R + BEQ 5$ + + MOV #BADBOO,R0 + JSR PC,PRINT + RTS PC + + 5$: MOVB (R2)+,R1 ; HOPEFULLY K, L OR P + 7$: MOVB (R2)+,R0 ; DIGIT + BEQ 9$ + CMPB R0,#40 + BEQ 9$ + CMPB R0,#'7 + BGT 11$ + SUB #'0,R0 + BLT 11$ + ASL R3 + ASL R3 + ASL R3 + BIS R0,R3 ; PUT DIGIT INTO UNIT + BR 7$ + 9$: CLR R2 + MOV #137,(R2)+ + MOV #START,(R2)+ + MOV #START,(R2)+ + CLR (R2)+ + CMPB R1,#'K + BEQ BOOTRK + CMPB R1,#'L + BEQ BOOTRL + CMPB R1,#'P + BEQ BOOTRP + + 11$: MOV #UNKMSG,R0 + JSR PC,PRINT + RTS PC + + RLCS=174400 + BOOTRL: ; 142234 + RESET + SWAB R3 ; UNIT NUMBER + MOV #RLCS,R1 ; CSR + MOV #13,4(R1) ; CLR ERR + BIS #4,R3 ; UNIT+GSTAT + MOV R3,(R1) ; ISSUE CMD + TSTB (R1) ; WAIT + BPL .-2 + CLRB R3 + BIS #10,R3 ; UNIT+RDHDR + MOV R3,(R1) ; ISSUE CMD + TSTB (R1) ; WAIT + BPL .-2 + MOV 6(R1),R2 ; GET HDR + BIC #77,R2 ; CLR SECTOR + INC R2 ; MAGIC BIT + MOV R2,4(R1) ; SEEK TO 0 + CLRB R3 + BIS #6,R3 ; UNIT+SEEK + MOV R3,(R1) ; ISSUE CMD + TSTB (R1) ; WAIT + BPL .-2 + CLR 2(R1) ; CLR BA + CLR 4(R1) ; CLR DA + MOV #-512.,6(R1) ; SET WC + CLRB R3 + BIS #14,R3 ; UNIT+READ + MOV R3,(R1) ; ISSUE CMD + TSTB (R1) ; WAIT + BPL .-2 + BIC #377,(R1) + CLR R2 + CLR R3 + CLR R4 + CLR R5 + CLR PC + + RKDA=177412 + READGO=5 + BOOTRK: + RESET ; 142402 + SWAB R3 ; UNIT NUMBER + ASL R3 + ASL R3 + ASL R3 + ASL R3 + ASL R3 + MOV #RKDA,R1 ; CSR + MOV R3,(R1) ; LOAD DA + CLR -(R1) ; CLEAR BA + MOV #-256.*2,-(R1) ; LOAD WC + MOV #READGO,-(R1) ; READ & GO + CLR R2 + CLR R3 + CLR R4 + CLR R5 + TSTB (R1) + BPL .-2 + CLRB (R1) + CLR PC + + RPCSR=0176700 + BOOTRP: ; 142460 + RESET + MOV #RPCSR, R1 + MOV #0000040, 10(R1) ; RESET + MOV R3, 10(R1) ; SET UNIT + MOV #0000021, (R1) ; PACK ACK + MOV #0010000, 32(R1) ; 16B MODE + MOV #-512., 2(R1) ; SET WC + CLR 4(R1) ; CLR BA + CLR 6(R1) ; CLR DA + CLR 34(R1) ; CLR CYL + MOV #0000071, (R1) ; READ + TSTB (R1) ; WAIT + BPL .-2 + CLRB (R1) + MOV R3,R0 + CLR PC + + .END START diff --git a/apps/pdp11/tapes/README.md b/apps/pdp11/tapes/README.md index ed552e3738..8bfb3b0be6 100644 --- a/apps/pdp11/tapes/README.md +++ b/apps/pdp11/tapes/README.md @@ -1,21 +1,21 @@ --- layout: page -title: PDP-11 Software Tapes +title: DEC PDP-11 Tapes permalink: /apps/pdp11/tapes/ --- -PDP-11 Software Tapes ---------------------- +DEC PDP-11 Tapes +---------------- -Supported PDP-11 software includes: +We have archived the following DEC PDP-11 Tapes: - [Absolute Loader](DEC-11-L2PC-PO.json) - [BASIC (Single User)](DEC-11-AJPB-PB.json) -To make it easy for PDPjs machines to load these tapes, we provide the following High-Speed -Paper Tape Reader (PC11) configuration files: +To make it easy for PDPjs machines to load these tapes, we created the following High-Speed +Paper Tape Reader (PC11) configurations: -- [tapedemo.xml](tapedemo.xml) +- [demo.xml](demo.xml) These configuration files create UI controls that allow you to choose from a set of tapes that are automatically sent to the machine's PC11 device. @@ -23,5 +23,4 @@ to the machine's PC11 device. Third-Party Resources --------------------- -- "[Analysis of the PDP-11 bootstrap loader code](http://decuser.blogspot.com/2015/12/analysis-of-pdp-11-bootloader-code.html)" -- "[PDP-11 Paper Tape BASIC](http://www.avitech.com.au/ptb/ptb.html)" and follow-up article "[PDP-11 BASIC, booting the hard way](http://decuser.blogspot.com/2015/12/pdp-11-basic-booting-hard-way.html)" +- [PDP-11 Paper Tape BASIC](http://www.avitech.com.au/ptb/ptb.html) diff --git a/disks/README.md b/disks/README.md index fa1d099894..69f1cb45c4 100644 --- a/disks/README.md +++ b/disks/README.md @@ -7,7 +7,8 @@ permalink: /disks/ --- Disk Libraries ---- +-------------- + Browse these PCjs Disk Libraries: - [IBM PC](pcx86/) diff --git a/modules/pdp11/lib/pc11.js b/modules/pdp11/lib/pc11.js index b7b7e51b39..0fb6fb5069 100644 --- a/modules/pdp11/lib/pc11.js +++ b/modules/pdp11/lib/pc11.js @@ -77,6 +77,9 @@ function PC11(parms) Component.subclass(PC11); +/* + * There's nothing super special about these values, except that NONE should be falsey and the others should not. + */ PC11.LOADSTATE = { NONE: "", LOCAL: "?", @@ -222,9 +225,9 @@ PC11.prototype.initBus = function(cmp, bus, cpu, dbg) bus.addIOTable(this, PC11.UNIBUS_IOTABLE); - this.addTape("None", "", true); - if (this.fLocalTapes) this.addTape("Local Tape", "?"); - this.addTape("Remote Tape", "??"); + this.addTape("None", PC11.LOADSTATE.NONE, true); + if (this.fLocalTapes) this.addTape("Local Tape", PC11.LOADSTATE.LOCAL); + this.addTape("Remote Tape", PC11.LOADSTATE.REMOTE); if (!this.autoMount()) this.setReady(); }; @@ -312,15 +315,15 @@ PC11.prototype.loadSelectedTape = function(sTapeName, sTapePath, file) return; } - if (sTapePath == "?") { + if (sTapePath == PC11.LOADSTATE.LOCAL) { this.notice('Use "Choose File" and "Mount" to select and load a local tape.'); return; } /* - * If the special path of "??" is selected, then we want to prompt the user for a URL. Oh, and - * make sure we pass an empty string as the 2nd parameter to prompt(), so that IE won't display + * If the special PC11.LOADSTATE.REMOTE path is selected, then we want to prompt the user for a URL. + * Oh, and make sure we pass an empty string as the 2nd parameter to prompt(), so that IE won't display * "undefined" -- because after all, undefined and "undefined" are EXACTLY the same thing, right? * * TODO: This is literally all I've done to support remote tape images. There's probably more diff --git a/modules/shared/templates/common.html b/modules/shared/templates/common.html index 785395c372..a8d2bb73b2 100644 --- a/modules/shared/templates/common.html +++ b/modules/shared/templates/common.html @@ -31,7 +31,7 @@
  • PCjs
  • -
  • Demos
  • +
  • Apps
  • Devices
  • Disks
  • Docs
  • diff --git a/modules/shared/templates/common.xsl b/modules/shared/templates/common.xsl index 517c6b7867..f6eafb84ce 100644 --- a/modules/shared/templates/common.xsl +++ b/modules/shared/templates/common.xsl @@ -33,7 +33,7 @@
    • PCjs
    • -
    • Demos
    • +
    • Apps
    • Devices
    • Disks
    • Docs
    • From 1874b0f8d2f68b8f9ee3b7070524f8c9a23ba98a Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Tue, 18 Oct 2016 15:44:26 -0700 Subject: [PATCH 11/32] PDP-11/20 test machine can load BASIC from paper tape, but still has some trouble running it --- devices/pdp11/README.md | 8 +- devices/pdp11/dl11/README.md | 10 + devices/pdp11/pc11/README.md | 10 + modules/pdp11/lib/cpuops.js | 21 +- modules/pdp11/lib/debugger.js | 8 +- modules/pdp11/lib/defines.js | 10 +- modules/pdp11/lib/pc11.js | 61 +++++- modules/pdp11/lib/serialport.js | 4 - versions/c1pjs/1.30.1/common.xsl | 2 +- versions/pc8080/1.30.1/common.xsl | 2 +- versions/pcx86/1.30.1/common.xsl | 2 +- versions/pdpjs/1.30.1/common.xsl | 2 +- versions/pdpjs/1.30.1/pdp11-dbg.js | 328 +++++++++++++++-------------- versions/pdpjs/1.30.1/pdp11.js | 189 ++++++++--------- 14 files changed, 383 insertions(+), 274 deletions(-) create mode 100644 devices/pdp11/dl11/README.md create mode 100644 devices/pdp11/pc11/README.md diff --git a/devices/pdp11/README.md b/devices/pdp11/README.md index 8e050c3494..ebfdca74bd 100644 --- a/devices/pdp11/README.md +++ b/devices/pdp11/README.md @@ -7,11 +7,15 @@ permalink: /devices/pdp11/ PDP-11 Device Configurations ---------------------------- -[PDP-11 Machines](/devices/pdp11/machine/) powered by [PDPjs](/modules/pdp11/) rely on a variety of devices and resources, including: +[PDP-11 Machines](/devices/pdp11/machine/) powered by [PDPjs](/modules/pdp11/) rely on a variety of devices, including: + +- [Serial Interface for Display Terminals (DL11)](dl11/) +- [High-Speed Paper Tape Reader/Punch (PC11)](pc11/) + +Machines are built from a variety of device configuration files, including: * [Machines](machine/) * [Panels](panel/) -* [ROM Images](rom/) Our collection of sample machines includes a [PDP-11/70 with Front Panel](/devices/pdp11/machine/1170/panel/) and [PDP-11/70 with VT100 Terminal](/devices/pdp11/machine/1170/vt100/). diff --git a/devices/pdp11/dl11/README.md b/devices/pdp11/dl11/README.md new file mode 100644 index 0000000000..1d0e0a92b6 --- /dev/null +++ b/devices/pdp11/dl11/README.md @@ -0,0 +1,10 @@ +--- +layout: page +title: DL11 Serial Interface for Display Terminals +permalink: /devices/pdp11/dl11/ +--- + +DL11 Serial Interface for Display Terminals +------------------------------------------- + +PDPjs implements the DL11 component in [serialport.js](/modules/pdp11/lib/serialport.js). diff --git a/devices/pdp11/pc11/README.md b/devices/pdp11/pc11/README.md new file mode 100644 index 0000000000..9842a1e896 --- /dev/null +++ b/devices/pdp11/pc11/README.md @@ -0,0 +1,10 @@ +--- +layout: page +title: PC11 High-Speed Paper Tape Reader/Punch +permalink: /devices/pdp11/pc11/ +--- + +PC11 High-Speed Paper Tape Reader/Punch +--------------------------------------- + +PDPjs implements the PC11 component in [pc11.js](/modules/pdp11/lib/pc11.js). diff --git a/modules/pdp11/lib/cpuops.js b/modules/pdp11/lib/cpuops.js index c2c7398620..14cfb8f48d 100644 --- a/modules/pdp11/lib/cpuops.js +++ b/modules/pdp11/lib/cpuops.js @@ -52,7 +52,7 @@ if (NODE) { * * For example, opADD() passes the helper function fnADD() to the appropriate update method. This * allows the update method to perform the entire read/modify/write operation, because the modify - * step is performed internally via the fnXXX() helper function. + * step is performed internally, via the fnXXX() helper function. */ /** @@ -1117,7 +1117,24 @@ PDP11.opHALT = function(opCode) this.regErr |= PDP11.CPUERR.BADHALT; this.trap(PDP11.TRAP.BUS_ERROR, PDP11.REASON.HALT); } else { - this.stopCPU(); + if (!this.dbg) { + /* + * This will leave the PC exactly where it's supposed to be: at the address of the HALT + 2. + */ + this.stopCPU(); + } else { + /* + * When the Debugger is present, this call will rewind PC by 2 so that the HALT instruction is + * displayed, making it clear why the processor stopped; the user could also use the "dh" command + * to dump the Debugger's instruction history buffer to see why it stopped, assuming the history + * buffer is enabled, but that's more work. + * + * Because rewinding is not normal CPU behavior, attempting to Run again (or use the Debugger's + * "g" command) will cause an immediate HALT again; the work-around is simple: either set the PC to + * a new address (eg, "r pc=pc+2") or single-step the HALT instruction ("t"). + */ + this.dbg.stopInstruction(); + } } this.nStepCycles -= 7; }; diff --git a/modules/pdp11/lib/debugger.js b/modules/pdp11/lib/debugger.js index 7c0499d185..3929605c6a 100644 --- a/modules/pdp11/lib/debugger.js +++ b/modules/pdp11/lib/debugger.js @@ -997,10 +997,16 @@ if (DEBUGGER) { var sComment = "history"; var nSequence = nPrev--; + + /* + * TODO: Need to some UI to control whether cycle counts are displayed as part of the history. + * It's currently disabled in checkInstruction(), so it's disable here, too. + * if (DEBUG && dbgAddr.cycleCount != null) { sComment = "cycles"; nSequence = dbgAddr.cycleCount; } + */ var sInstruction = this.getInstruction(dbgAddrNew, sComment, nSequence); @@ -1623,7 +1629,7 @@ if (DEBUGGER) { if (opCode != null) { var dbgAddr = this.aOpcodeHistory[this.iOpcodeHistory]; this.setAddr(dbgAddr, cpu.getPC()); - if (DEBUG) dbgAddr.cycleCount = cpu.getCycles(); + // if (DEBUG) dbgAddr.cycleCount = cpu.getCycles(); if (++this.iOpcodeHistory == this.aOpcodeHistory.length) this.iOpcodeHistory = 0; } } diff --git a/modules/pdp11/lib/defines.js b/modules/pdp11/lib/defines.js index 7446f09b7d..565913861f 100644 --- a/modules/pdp11/lib/defines.js +++ b/modules/pdp11/lib/defines.js @@ -425,8 +425,10 @@ var PDP11 = { LKS: 0o177546, // KW11-L Clock Status - PRS: 0o177550, // PC11/PR11 Reader Status Register - PRB: 0o177552, // PC11/PR11 Reader Buffer Register + PRS: 0o177550, // PC11 (and PR11) Reader Status Register + PRB: 0o177552, // PC11 (and PR11) Reader Buffer Register + PPS: 0o177554, // PC11 Punch Status Register + PPB: 0o177556, // PC11 Punch Buffer Register RCSR: 0o177560, // Display Terminal: Receiver Status Register RBUF: 0o177562, // Display Terminal: Receiver Data Buffer Register @@ -511,6 +513,9 @@ var PDP11 = { PSW: 0o177776 // 777776 17777776 0x3FFFFE Processor Status Word }, PC11: { // High Speed Reader & Punch (PR11 is a Reader-only unit) + PRI: 4, // NOTE: reader has precedence over punch + RVEC: 0o70, // reader vector + PVEC: 0o74, // punch vector PRS: { RE: 0x0001, // Reader Enable (W/O) RIE: 0x0040, // Reader Interrupt Enable (allows the DONE and ERROR bits to trigger an interrupt) @@ -518,6 +523,7 @@ var PDP11 = { BUSY: 0x0800, // Busy (R/O) ERROR: 0x8000, // Error (R/O) CLEAR: 0x08C0, // bits cleared on INIT + RMASK: 0xFFFE, // bits readable (TODO: All I know for sure is that bit 0 is NOT readable; see PC11.readPRS()) WMASK: 0x0041 // bits writable }, PRB: { diff --git a/modules/pdp11/lib/pc11.js b/modules/pdp11/lib/pc11.js index 0fb6fb5069..7f4fd1b0a0 100644 --- a/modules/pdp11/lib/pc11.js +++ b/modules/pdp11/lib/pc11.js @@ -206,6 +206,8 @@ PC11.prototype.initBus = function(cmp, bus, cpu, dbg) this.cpu = cpu; this.dbg = dbg; + var pc11 = this; + this.configMount = this.cmp.getMachineParm('autoMount') || this.configMount; if (this.configMount) { @@ -223,6 +225,12 @@ PC11.prototype.initBus = function(cmp, bus, cpu, dbg) } } + this.triggerReaderInterrupt = this.cpu.addTrigger(PDP11.PC11.RVEC, PDP11.PC11.PRI); + + this.timerReaderAdvance = this.cpu.addTimer(function readyReader() { + pc11.advanceReader(); + }); + bus.addIOTable(this, PC11.UNIBUS_IOTABLE); this.addTape("None", PC11.LOADSTATE.NONE, true); @@ -623,16 +631,57 @@ PC11.prototype.restore = function(data) return true; }; +/** + * advanceReader() + * + * If the reader is enabled (RE is set) and there is no exceptional condition (ie, ERROR is set), + * and if the buffer register is empty (DONE is clear), then if we have more data in our internal buffer, + * store it in the buffer register, and optionally trigger an interrupt if device interrupts are enabled. + * + * @this {PC11} + */ +PC11.prototype.advanceReader = function() +{ + if ((this.prs & (PDP11.PC11.PRS.RE | PDP11.PC11.PRS.ERROR)) == PDP11.PC11.PRS.RE) { + if (!(this.prs & PDP11.PC11.PRS.DONE)) { + if (this.iTapeData < this.aTapeData.length) { + this.prb = this.aTapeData[this.iTapeData++]; + this.prs |= PDP11.PC11.PRS.DONE; + this.prs &= ~PDP11.PC11.PRS.BUSY; + if (this.prs & PDP11.PC11.PRS.RIE) { + this.cpu.setTrigger(this.triggerReaderInterrupt); + } + /* + * The PC11, by virtue of its "high speed", is supposed to deliver characters at 300 CPS, + * so for now, that's what we're going to deliver (ie, 1000ms / 300). + * + * TODO: Review this code. If we don't set the fReset parameter to true, the timer will eventually + * fire while the "Absolute Loader" tape is still reading bytes from, say, the "BASIC (Single User)" + * tape, causing an EXTRA advance to occur and causing a byte to be skipped. Passing true ensures + * that the timer cannot fire for AT LEAST 3ms after each advance. But again, I need to understand + * the reader's actual behavior. + */ + this.cpu.setTimer(this.timerReaderAdvance, 1000/300, true); + } + } + } +}; + /** * readPRS(addr) * + * NOTE: We use the PRS RMASK to honor the "write-only" behavior of bit 0, the reader enable bit (RE), because + * DEC's tiny Bootstrap Loader (/apps/pdp11/boot/bootstrap/BOOTSTRAP-16KB.lst) repeatedly enables the reader using + * the INC instruction, which causes the PRS to be read, incremented, and written, so if bit 0 isn't always read + * as zero, the INC instruction would clear RE instead of setting it. + * * @this {PC11} * @param {number} addr (eg, PDP11.UNIBUS.PRS or 177550) * @return {number} */ PC11.prototype.readPRS = function(addr) { - return this.prs; + return this.prs & PDP11.PC11.PRS.RMASK; // RMASK honors the "write-only" nature of the RE bit by returning zero on reads }; /** @@ -648,14 +697,16 @@ PC11.prototype.writePRS = function(data, addr) if (this.prs & PDP11.PC11.PRS.ERROR) { data &= ~PDP11.PC11.PRS.RE; // if (this.prs & PDP11.PC11.PRS.RIE) { - // TODO: Generate an interrupt + // TODO: Generate an interrupt (error condition) // } } else { this.prs &= ~PDP11.PC11.PRS.DONE; this.prs |= PDP11.PC11.PRS.BUSY; + this.prb = 0; } } this.prs = (this.prs & ~PDP11.PC11.PRS.WMASK) | (data & PDP11.PC11.PRS.WMASK); + this.advanceReader(); }; /** @@ -667,6 +718,12 @@ PC11.prototype.writePRS = function(data, addr) */ PC11.prototype.readPRB = function(addr) { + /* + * I'm guessing that the DONE and BUSY bits always remain more-or-less inverses of each other. They definitely + * start out that way when writePRS() sets the reader enable (RE) bit, and so that's how we treat them elsewhere, too. + */ + this.prs &= ~PDP11.PC11.PRS.DONE; + this.prs |= PDP11.PC11.PRS.BUSY; return this.prb; }; diff --git a/modules/pdp11/lib/serialport.js b/modules/pdp11/lib/serialport.js index d92c7e882b..0af5b56535 100644 --- a/modules/pdp11/lib/serialport.js +++ b/modules/pdp11/lib/serialport.js @@ -475,10 +475,6 @@ SerialPortPDP11.prototype.receiveData = function(data) return true; // for now, return true regardless, since we're buffering everything anyway }; -SerialPortPDP11.prototype.advanceRBUF = function() -{ -}; - /** * transmitByte(b) * diff --git a/versions/c1pjs/1.30.1/common.xsl b/versions/c1pjs/1.30.1/common.xsl index dfdcbfbd41..addc25474a 100644 --- a/versions/c1pjs/1.30.1/common.xsl +++ b/versions/c1pjs/1.30.1/common.xsl @@ -31,7 +31,7 @@
      • PCjs
      • -
      • Demos
      • +
      • Apps
      • Devices
      • Disks
      • Docs
      • diff --git a/versions/pc8080/1.30.1/common.xsl b/versions/pc8080/1.30.1/common.xsl index 1ac3126349..3c763b3058 100644 --- a/versions/pc8080/1.30.1/common.xsl +++ b/versions/pc8080/1.30.1/common.xsl @@ -31,7 +31,7 @@
        • PCjs
        • -
        • Demos
        • +
        • Apps
        • Devices
        • Disks
        • Docs
        • diff --git a/versions/pcx86/1.30.1/common.xsl b/versions/pcx86/1.30.1/common.xsl index cc6665530f..6a76614ea6 100644 --- a/versions/pcx86/1.30.1/common.xsl +++ b/versions/pcx86/1.30.1/common.xsl @@ -31,7 +31,7 @@
          • PCjs
          • -
          • Demos
          • +
          • Apps
          • Devices
          • Disks
          • Docs
          • diff --git a/versions/pdpjs/1.30.1/common.xsl b/versions/pdpjs/1.30.1/common.xsl index ecd6320d2d..64bb6049cc 100644 --- a/versions/pdpjs/1.30.1/common.xsl +++ b/versions/pdpjs/1.30.1/common.xsl @@ -31,7 +31,7 @@
            • PCjs
            • -
            • Demos
            • +
            • Apps
            • Devices
            • Disks
            • Docs
            • diff --git a/versions/pdpjs/1.30.1/pdp11-dbg.js b/versions/pdpjs/1.30.1/pdp11-dbg.js index ddb8bfec64..500b57c44a 100644 --- a/versions/pdpjs/1.30.1/pdp11-dbg.js +++ b/versions/pdpjs/1.30.1/pdp11-dbg.js @@ -35,45 +35,45 @@ function ua(a,b){return(a+" ").slice(0,b) function ya(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a>1,k;k=c(b,a[g]);0a?"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 Ba(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(k.onreadystatechange=function(){4===k.readyState&&(f=k.responseText,200==k.status||!k.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=k.status||-1),d&&d(a,f,e))});if(b&&"object"== typeof b){var m="",p;for(p in b)b.hasOwnProperty(p)&&(m&&(m+="&"),m+=p+"="+encodeURIComponent(b[p]));m=m.replace(/%20/g,"+");k.open("POST",a,!!c);k.setRequestHeader("Content-type","application/x-www-form-urlencoded");k.send(m)}else k.open("GET",a,!!c),"bytes"==b&&k.overrideMimeType("text/plain; charset=x-user-defined"),k.send();c||(f=k.responseText,200!=k.status&&(e=k.status||-1),d&&d(a,f,e),g=[f,e]);return g} -function Ca(a,b){var c,d={ja:null,ka:null,Lb:null,Kb:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Lb=g.load;d.Kb=g.exec;if(e=g.bytes)d.ja=e;else if(e=g.words)for(d.ja=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.ja=Array(4*e.length),f=c=0;c>8&255,d.ja[f++]=e[c]>>16&255,d.ja[f++]=e[c]>>24&255;else d.ja=g;d.ka=g.symbols;d.ja.length?1==d.ja.length&&(n(d.ja[0]),d=null):(n("Empty resource: "+a),d=null)}catch(k){n("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;cb.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Lb=g.load;d.Kb=g.exec;if(e=g.bytes)d.ia=e;else if(e=g.words)for(d.ia=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.ia=Array(4*e.length),f=c=0;c>8&255,d.ia[f++]=e[c]>>16&255,d.ia[f++]=e[c]>>24&255;else d.ia=g;d.ka=g.symbols;d.ia.length?1==d.ia.length&&(n(d.ia[0]),d=null):(n("Empty resource: "+a),d=null)}catch(k){n("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;cb?this.Wa=this.id:(this.Ra=this.id.substr(0,b),this.Wa=this.id.substr(b+1));this[a]=c;this.v={ready:!1,Ia:!1,Ib:!1,ha:!1,error:!1};this.zb=null;this.v.error=!1;this.I={};this.i=null;this.la=d||0;t.push(this)}var cb=void 0,db={}; +function r(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Yb=b.comment;this.tc=b;b=this.id.indexOf(".");0>b?this.Wa=this.id:(this.Ra=this.id.substr(0,b),this.Wa=this.id.substr(b+1));this[a]=c;this.v={ready:!1,Ia:!1,Ib:!1,ha:!1,error:!1};this.zb=null;this.v.error=!1;this.J={};this.i=null;this.la=d||0;t.push(this)}var cb=void 0,db={}; if(window){cb||(cb=window.location.search.substr(1));for(var eb,fb=/\+/g,gb=/([^&=]+)=?([^&]*)/g;eb=gb.exec(cb);)db[decodeURIComponent(eb[1].replace(fb," "))]=decodeURIComponent(eb[2].replace(fb," "))}function hb(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 u(a,b){b||(b=r);a.prototype=hb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var ib=window.PCjs.Machines||(window.PCjs.Machines={}),t=window.PCjs.Components||(window.PCjs.Components=[])}else ib={},t=[];function jb(a,b,c){ib[a]&&b&&(ib[a][b]=c)}function kb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>2;this.w=this.ua-1;this.B=this.H/this.ua|0;this.Ha=[];this.A=0;this.D=[];this.mc=[Ob,Pb,Qb,Rb];a=new I(this);Sb(a,this.i);this.W=Array(this.B);for(b=0;b>2;this.w=this.ua-1;this.B=this.H/this.ua|0;this.Ha=[];this.A=0;this.D=[];this.mc=[Ob,Pb,Qb,Rb];a=new I(this);Sb(a,this.i);this.W=Array(this.B);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.Ha[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.i&&D(this.i,64)&&C(this.i,e[4]+".readByte("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!0);this.i&&D(this.i,64)&&C(this.i,"warning: unconverted read access to byte @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c} function Pb(a,b,c){var d=!1,e=this.controller,f=e.Ha[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.Ha[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d?this.i&&D(this.i,64)&&C(this.i,f[4]+".writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!0,b),this.i&&D(this.i,64)&&C(this.i,"warning: unconverted write access to byte @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} function Qb(a,b){var c=-1,d=this.controller;(a=d.Ha[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));if(0<=c)return this.i&&D(this.i,64)&&C(this.i,a[4]+".readWord("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!1);this.i&&D(this.i,64)&&C(this.i,"warning: unconverted read access to word @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c} function Rb(a,b,c){var d=!1,e=this.controller;if(a=e.Ha[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d?this.i&&D(this.i,64)&&C(this.i,a[4]+".writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!1,b),this.i&&D(this.i,64)&&C(this.i,"warning: unconverted write access to word @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} function Vb(a,b){if(b!=a.g){var c;a.g&&(c=(1<>>a.ia;0g&&(q=g);if(!e&&m&&m.size){if(m.type==d){if(f+g<=m.C)return m.vb+=m.C-f,m.C=f,!0;if(f>=m.C+m.vb){q=m.size-(f-p);q>g&&(q=g);m.vb=f-m.C+q;f=p+a.ua;g-=q;k++;continue}}return ac(1,f,g)}f=new I(a,f,q,a.ua,d,e);Sb(f,a.i,m);a.W[k++]=f;f=p+a.ua;g-=q}if(0>=g){c/=1024;var v;e="";v?10>>=a.ia;0>>=a.ia;0>>this.ia].Eb(a&this.w,a)};h.Bb=function(a){this.A++;a=this.W[(a&this.f)>>>this.ia].Mb(a&this.w,a);this.A--;return a};h.na=function(a){return this.W[(a&this.f)>>>this.ia].oa(a&this.w,a)}; -h.pb=function(a){var b=a&this.w,c=(a&this.f)>>>this.ia;this.A++;a=this.W[c].Nb(b,a);this.A--;return a};h.Fb=function(a,b){this.W[(a&this.f)>>>this.ia].Hb(a&this.w,b&255,a)};h.hb=function(a,b){this.A++;this.W[(a&this.f)>>>this.ia].Sb(a&this.w,b&255,a);this.A--};h.Va=function(a,b){this.W[(a&this.f)>>>this.ia].wb(a&this.w,b&65535,a)};h.Gb=function(a,b){var c=a&this.w,d=(a&this.f)>>>this.ia;this.A++;this.W[d].Tb(c,b&65535,a);this.A--}; +function Yb(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.ja;0g&&(q=g);if(!e&&m&&m.size){if(m.type==d){if(f+g<=m.C)return m.vb+=m.C-f,m.C=f,!0;if(f>=m.C+m.vb){q=m.size-(f-p);q>g&&(q=g);m.vb=f-m.C+q;f=p+a.ua;g-=q;k++;continue}}return ac(1,f,g)}f=new I(a,f,q,a.ua,d,e);Sb(f,a.i,m);a.W[k++]=f;f=p+a.ua;g-=q}if(0>=g){c/=1024;var v;e="";v?10>>=a.ja;0>>=a.ja;0>>this.ja].Eb(a&this.w,a)};h.Bb=function(a){this.A++;a=this.W[(a&this.f)>>>this.ja].Mb(a&this.w,a);this.A--;return a};h.na=function(a){return this.W[(a&this.f)>>>this.ja].oa(a&this.w,a)}; +h.pb=function(a){var b=a&this.w,c=(a&this.f)>>>this.ja;this.A++;a=this.W[c].Nb(b,a);this.A--;return a};h.Fb=function(a,b){this.W[(a&this.f)>>>this.ja].Hb(a&this.w,b&255,a)};h.hb=function(a,b){this.A++;this.W[(a&this.f)>>>this.ja].Sb(a&this.w,b&255,a);this.A--};h.Va=function(a,b){this.W[(a&this.f)>>>this.ja].wb(a&this.w,b&65535,a)};h.Gb=function(a,b){var c=a&this.w,d=(a&this.f)>>>this.ja;this.A++;this.W[d].Tb(c,b&65535,a);this.A--}; function cc(a){for(var b=0,c=[],d=0;da.b.ab)){var g=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!g&&m&&(g=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!k&&p&&(k=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));dc(a,e,e,g,k,m,p,f[4])}}}function nc(a,b){a.D.push(b)} -function oc(a,b){a.A||(a.i&&D(a.i,536870912)&&C(a.i,"memory fault on address "+J(a.i,b),!0,!0),a.b.ea(4,b))}function ac(a,b,c){n("Memory block error ("+a+": "+l(b)+","+l(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.g={data:0,Sd:0,Db:20,gd:0};this.f={Td:0,Rb:-1}}u(K);h=K.prototype; -h.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.Rb=pc(c,function(){e.f.Ka|=128;e.f.Ka&64&&(qc(e.b,e.f.hd),rc(e.b,e.f.Rb,1E3/60))});this.f.hd=sc(64,6);ec(b,this,L);nc(b,this.reset.bind(this));H(this)};h.reset=function(){this.g.Db=this.g.Db&-120|20;this.f.Ka=0};h.Dc=function(){var a=this.f.Ka;this.f.Ka&=-129;return a};h.rd=function(a){this.f.Ka=a;a&64&&rc(this.b,this.f.Rb,1E3/60);this.f.Ka=a&-129};h.wc=function(a){return(a?this.g.gd:this.g.data)&65535}; +function ec(a,b,c){for(var d in c){var e=+d,f=c[d];if(!(f[5]&&f[5]>a.b.ab)){var g=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!g&&m&&(g=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!k&&p&&(k=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));dc(a,e,e,g,k,m,p,f[4])}}}function fc(a,b){a.D.push(b)} +function gc(a,b){a.A||(a.i&&D(a.i,536870912)&&C(a.i,"memory fault on address "+J(a.i,b),!0,!0),a.b.ea(4,b))}function ac(a,b,c){n("Memory block error ("+a+": "+l(b)+","+l(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.g={data:0,Sd:0,Db:20,gd:0};this.f={Td:0,Rb:-1}}u(K);h=K.prototype; +h.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.Rb=hc(c,function(){e.f.Ka|=128;e.f.Ka&64&&(qc(e.b,e.f.hd),rc(e.b,e.f.Rb,1E3/60))});this.f.hd=sc(64,6);ec(b,this,L);fc(b,this.reset.bind(this));H(this)};h.reset=function(){this.g.Db=this.g.Db&-120|20;this.f.Ka=0};h.Dc=function(){var a=this.f.Ka;this.f.Ka&=-129;return a};h.rd=function(a){this.f.Ka=a;a&64&&rc(this.b,this.f.Rb,1E3/60);this.f.Ka=a&-129};h.wc=function(a){return(a?this.g.gd:this.g.data)&65535}; h.kd=function(a){this.g.data=a};h.Fc=function(){var a=this.b;return a.F&62337|a.wa<<5|a.xa<<1};h.td=function(a){var b=this.b;a&=62337;if(b.F!=a){b.F=a;b.wa=a>>5&3;b.xa=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.La!=c&&(b.La=c,tc(b))}uc(this)};h.Gc=function(){var a=this.b.Na;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Hc=function(){return this.b.tb};h.Ic=function(){return this.b.Oa}; -h.ud=function(a){var b=this.b;1170>b.ab&&(a&=-49);b.Oa!=a&&(b.Oa=a,a&16?(b.Za=4194303,b.ya=3915776):(b.Za=262143,b.ya=253952),tc(b));uc(this)};function uc(a){a.g.Db=a.g.Db&-8|(a.b.La?a.b.Oa&16?1:2:4)}h.Wc=function(a){return this.b.P[1][a>>1&7]};h.Id=function(a,b){this.b.P[1][b>>1&7]=a&65295};h.Uc=function(a){return this.b.P[1][(a>>1&7)+8]};h.Gd=function(a,b){this.b.P[1][(b>>1&7)+8]=a&65295};h.Vc=function(a){return this.b.ta[1][a>>1&7]}; -h.Hd=function(a,b){b=b>>1&7;this.b.ta[1][b]=a;this.b.P[1][b]&=65295};h.Tc=function(a){return this.b.ta[1][(a>>1&7)+8]};h.Fd=function(a,b){b=(b>>1&7)+8;this.b.ta[1][b]=a;this.b.P[1][b]&=65295};h.Cc=function(a){return this.b.P[0][a>>1&7]};h.qd=function(a,b){this.b.P[0][b>>1&7]=a&65295};h.Ac=function(a){return this.b.P[0][(a>>1&7)+8]};h.od=function(a,b){this.b.P[0][(b>>1&7)+8]=a&65295};h.Bc=function(a){return this.b.ta[0][a>>1&7]};h.pd=function(a,b){b=b>>1&7;this.b.ta[0][b]=a;this.b.P[0][b]&=65295}; -h.zc=function(a){return this.b.ta[0][(a>>1&7)+8]};h.nd=function(a,b){b=(b>>1&7)+8;this.b.ta[0][b]=a;this.b.P[0][b]&=65295};h.bd=function(a){return this.b.P[3][a>>1&7]};h.Od=function(a,b){this.b.P[3][b>>1&7]=a&65295};h.$c=function(a){return this.b.P[3][(a>>1&7)+8]};h.Md=function(a,b){this.b.P[3][(b>>1&7)+8]=a&65295};h.ad=function(a){return this.b.ta[3][a>>1&7]};h.Nd=function(a,b){b=b>>1&7;this.b.ta[3][b]=a;this.b.P[3][b]&=65295};h.Zc=function(a){return this.b.ta[3][(a>>1&7)+8]}; -h.Ld=function(a,b){b=(b>>1&7)+8;this.b.ta[3][b]=a;this.b.P[3][b]&=65295};h.fb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};h.kb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};h.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};h.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};h.Qc=function(){return this.b.u[7]};h.Cd=function(a){this.b.u[7]=a};h.gb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]}; +h.ud=function(a){var b=this.b;1170>b.ab&&(a&=-49);b.Oa!=a&&(b.Oa=a,a&16?(b.Za=4194303,b.ya=3915776):(b.Za=262143,b.ya=253952),tc(b));uc(this)};function uc(a){a.g.Db=a.g.Db&-8|(a.b.La?a.b.Oa&16?1:2:4)}h.Wc=function(a){return this.b.S[1][a>>1&7]};h.Id=function(a,b){this.b.S[1][b>>1&7]=a&65295};h.Uc=function(a){return this.b.S[1][(a>>1&7)+8]};h.Gd=function(a,b){this.b.S[1][(b>>1&7)+8]=a&65295};h.Vc=function(a){return this.b.ta[1][a>>1&7]}; +h.Hd=function(a,b){b=b>>1&7;this.b.ta[1][b]=a;this.b.S[1][b]&=65295};h.Tc=function(a){return this.b.ta[1][(a>>1&7)+8]};h.Fd=function(a,b){b=(b>>1&7)+8;this.b.ta[1][b]=a;this.b.S[1][b]&=65295};h.Cc=function(a){return this.b.S[0][a>>1&7]};h.qd=function(a,b){this.b.S[0][b>>1&7]=a&65295};h.Ac=function(a){return this.b.S[0][(a>>1&7)+8]};h.od=function(a,b){this.b.S[0][(b>>1&7)+8]=a&65295};h.Bc=function(a){return this.b.ta[0][a>>1&7]};h.pd=function(a,b){b=b>>1&7;this.b.ta[0][b]=a;this.b.S[0][b]&=65295}; +h.zc=function(a){return this.b.ta[0][(a>>1&7)+8]};h.nd=function(a,b){b=(b>>1&7)+8;this.b.ta[0][b]=a;this.b.S[0][b]&=65295};h.bd=function(a){return this.b.S[3][a>>1&7]};h.Od=function(a,b){this.b.S[3][b>>1&7]=a&65295};h.$c=function(a){return this.b.S[3][(a>>1&7)+8]};h.Md=function(a,b){this.b.S[3][(b>>1&7)+8]=a&65295};h.ad=function(a){return this.b.ta[3][a>>1&7]};h.Nd=function(a,b){b=b>>1&7;this.b.ta[3][b]=a;this.b.S[3][b]&=65295};h.Zc=function(a){return this.b.ta[3][(a>>1&7)+8]}; +h.Ld=function(a,b){b=(b>>1&7)+8;this.b.ta[3][b]=a;this.b.S[3][b]&=65295};h.fb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};h.kb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};h.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};h.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};h.Qc=function(){return this.b.u[7]};h.Cd=function(a){this.b.u[7]=a};h.gb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]}; h.lb=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};h.Oc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[1]};h.Ad=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[1]=a};h.Pc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[3]};h.Bd=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[3]=a};h.yc=function(a){return this.b.gc[a-65504>>1]};h.md=function(a,b){this.b.gc[b-65504>>1]=a};h.dc=function(a){return 65520==a?61183:0};h.jc=function(){}; h.Yc=function(){return 1};h.Kd=function(){};h.xc=function(){return this.b.Z};h.ld=function(){this.b.Z=0};h.Ec=function(){return this.b.fc};h.sd=function(a,b){b&1||(a&=255);this.b.fc=a};h.Jc=function(a){return a?this.b.Pb:0};h.vd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Pb=a;b.G|=2};h.Xc=function(a){return a?this.b.Pa&65280:0};h.Jd=function(a){this.b.Pa=a|255};h.Mc=function(){return Lb(this.b)};h.yd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.G|=128}; h.ic=function(a,b){D(this)&&C(this,"writeIgnored("+na(b)+"): "+na(a),!0,!0)}; @@ -87,182 +87,184 @@ L[62634]=L[62624];L[62636]=L[62624];L[62638]=L[62624];L[62642]=L[62640];L[62644] L[62698]=L[62688];L[62700]=L[62688];L[62702]=L[62688];L[62706]=L[62704];L[62708]=L[62704];L[62710]=L[62704];L[62712]=L[62704];L[62714]=L[62704];L[62716]=L[62704];L[62718]=L[62704];L[65410]=L[65408];L[65412]=L[65408];L[65414]=L[65408];L[65416]=L[65408];L[65418]=L[65408];L[65420]=L[65408];L[65422]=L[65408];L[65426]=L[65424];L[65428]=L[65424];L[65430]=L[65424];L[65432]=L[65424];L[65434]=L[65424];L[65436]=L[65424];L[65438]=L[65424];L[65442]=L[65440];L[65444]=L[65440];L[65446]=L[65440];L[65448]=L[65440]; L[65450]=L[65440];L[65452]=L[65440];L[65454]=L[65440];L[65458]=L[65456];L[65460]=L[65456];L[65462]=L[65456];L[65464]=L[65456];L[65466]=L[65456];L[65468]=L[65456];L[65470]=L[65456];L[65506]=L[65504];L[65508]=L[65504];L[65510]=L[65504];L[65512]=L[65504];L[65514]=L[65504];L[65516]=L[65504];L[65518]=L[65504];Ta(function(){for(var a=B(document,"pdp11","device"),b=0;b>1),this.b=new Int32Array(this.A,0,d>>2),Dc(this,zc?Ec:Fc);else{this.b=Array(d>>2);for(a=0;a>1),this.b=new Int32Array(this.A,0,d>>2),Dc(this,zc?Ec:Fc);else{this.b=Array(d>>2);for(a=0;a>2),b=0;b>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a,b){a&1&&oc(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},sa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= -this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ja=!0},T:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,1,c.M)&&c.da(!0)}return this.Mb(a,b)},ba:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,2,c.M)&&c.da(!0)}return this.Nb(a,b)},qa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a, -1,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Sb(a,b,c)},xa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a,2,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Tb(a,b,c)},R:function(a){return this.B[a]},U:function(a,b){a=this.B[a];this.i&&D(this.i,128)&&C(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},aa:function(a,b){a&1&&oc(this.w,b);return this.F.getUint16(a,!0)},fa:function(a,b){a&1&&oc(this.w,b);a=this.J[a>>1];this.i&&D(this.i,128)&&C(this.i,"Memory.readWord("+ -J(this.i,b)+"): "+J(this.i,a),!0);return a},pa:function(a,b){this.B[a]=b;this.Ja=!0},Ra:function(a,b,c){this.B[a]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},wa:function(a,b,c){a&1&&oc(this.w,c);this.F.setUint16(a,b,!0);this.Ja=!0},ya:function(a,b,c){a&1&&oc(this.w,c);this.J[a>>1]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}}; -function Sb(a,b,c){a.i=b;a.g=a.I=0;c&&((a.g=c.g)&&Jc(a,Ic,!1),(a.I=c.I)&&Hc(a,Ic,!1))}function Lc(a,b){b?--a.I||(a.Hb=a.f?a.D:a.Sb,a.wb=a.f?a.H:a.Tb):--a.g||(a.Eb=a.Mb,a.oa=a.Nb)}function Hc(a,b,c){c&&a.I||(a.Hb=!a.f&&b[1]||a.D,a.wb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Sb=b[1]||a.D,a.Tb=b[3]||a.H}function Jc(a,b,c){c&&a.g||(a.Eb=b[0]||a.K,a.oa=b[2]||a.M);if(c||void 0===c)a.Mb=b[0]||a.K,a.Nb=b[2]||a.M}function Dc(a,b){b||(b=Mc);Jc(a,b,void 0);Hc(a,b,void 0)} -var Mc=[],Gc=[I.prototype.V,I.prototype.sa,I.prototype.ma,I.prototype.Wa],Ic=[I.prototype.T,I.prototype.qa,I.prototype.ba,I.prototype.xa];if(sb)var Fc=[I.prototype.R,I.prototype.pa,I.prototype.aa,I.prototype.wa],Ec=[I.prototype.U,I.prototype.Ra,I.prototype.fa,I.prototype.ya]; +I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(sb)for(a=Array(this.size>>2),b=0;b>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a,b){a&1&&gc(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},sa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= +this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ja=!0},O:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,1,c.M)&&c.da(!0)}return this.Mb(a,b)},ba:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,2,c.M)&&c.da(!0)}return this.Nb(a,b)},qa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a, +1,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Sb(a,b,c)},xa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a,2,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Tb(a,b,c)},N:function(a){return this.B[a]},U:function(a,b){a=this.B[a];this.i&&D(this.i,128)&&C(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},aa:function(a,b){a&1&&gc(this.w,b);return this.F.getUint16(a,!0)},fa:function(a,b){a&1&&gc(this.w,b);a=this.I[a>>1];this.i&&D(this.i,128)&&C(this.i,"Memory.readWord("+ +J(this.i,b)+"): "+J(this.i,a),!0);return a},pa:function(a,b){this.B[a]=b;this.Ja=!0},Ra:function(a,b,c){this.B[a]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},wa:function(a,b,c){a&1&&gc(this.w,c);this.F.setUint16(a,b,!0);this.Ja=!0},ya:function(a,b,c){a&1&&gc(this.w,c);this.I[a>>1]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}}; +function Sb(a,b,c){a.i=b;a.g=a.J=0;c&&((a.g=c.g)&&Jc(a,Ic,!1),(a.J=c.J)&&Hc(a,Ic,!1))}function Lc(a,b){b?--a.J||(a.Hb=a.f?a.D:a.Sb,a.wb=a.f?a.H:a.Tb):--a.g||(a.Eb=a.Mb,a.oa=a.Nb)}function Hc(a,b,c){c&&a.J||(a.Hb=!a.f&&b[1]||a.D,a.wb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Sb=b[1]||a.D,a.Tb=b[3]||a.H}function Jc(a,b,c){c&&a.g||(a.Eb=b[0]||a.K,a.oa=b[2]||a.M);if(c||void 0===c)a.Mb=b[0]||a.K,a.Nb=b[2]||a.M}function Dc(a,b){b||(b=Mc);Jc(a,b,void 0);Hc(a,b,void 0)} +var Mc=[],Gc=[I.prototype.V,I.prototype.sa,I.prototype.ma,I.prototype.Wa],Ic=[I.prototype.O,I.prototype.qa,I.prototype.ba,I.prototype.xa];if(sb)var Fc=[I.prototype.N,I.prototype.pa,I.prototype.aa,I.prototype.wa],Ec=[I.prototype.U,I.prototype.Ra,I.prototype.fa,I.prototype.ya]; function Nc(a,b){r.call(this,"CPU",a,Nc,1);var c=a.multiplier||1;this.Ga=a.cycles||b;this.Ma=c;this.Ya=Math.round(this.Ga/1E4)/100;this.Ua=this.Ya*this.Ma;this.v.ca=!1;this.v.Qb=!1;this.v.mb=a.autoStart;this.v.$a=!1;this.qb=this.ma=0;this.rb=a.csStart;this.bb=a.csInterval;this.cb=a.csStop;this.K=[];this.bc=this.fd.bind(this);H(this)}u(Nc);var Oc=["power","reset"];h=Nc.prototype; -h.Ca=function(a,b,c,d){this.D=a;this.w=b;this.i=d;for(b=0;b=a.ma&&(a.ma+=a.bb,c=!0);0<=a.cb&&a.cb<=Uc(a)&&(a.bb=a.cb=-1,Rc(a),a.da(),c=!0);c&&a.j(Uc(a)+" cycles: checksum="+l(a.qb))}} -h.ra=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.I[b]=c,!0;case "run":return this.I[b]=c,c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.v.ha)a=!0;else{var b=null,c,k=kb(a.id);for(c=0;ca.V/a.Ua?b=1:d=!0;a.Ma=b;b=a.Ya*a.Ma;if(a.Ua!=b){a.Ua=b;b=a.Ua.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.D&&a.D.ub()}Wc(a,a.T);a.T=0;a.R=za();a.aa=0;Xc(a);return d}function pc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function rc(a,b,c){0<=b&&ba.K[b][0]&&(c=a.Ga*a.Ma/1E3*c|0,a.K[b][0]=c+Yc(a))} +h.ra=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.v.ha)a=!0;else{var b=null,c,k=kb(a.id);for(c=0;ca.V/a.Ua?b=1:d=!0;a.Ma=b;b=a.Ya*a.Ma;if(a.Ua!=b){a.Ua=b;b=a.Ua.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.D&&a.D.ub()}Wc(a,a.O);a.O=0;a.N=za();a.aa=0;Xc(a);return d}function hc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function rc(a,b,c,d){0<=b&&ba.K[b][0])&&(c=a.Ga*a.Ma/1E3*c|0,a.K[b][0]=c+Yc(a))} function Zc(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function $c(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Yc(a,b){var c=a.ba-=a.b;a.b=0;b&&(a.ba=0);return c} -h.fd=function(){if(this.v.ca){this.nb>=this.Ga&&Xc(this,!0);this.sa=0;this.Fa=za();if(this.aa){var a=this.Fa-this.aa;a>this.Ab&&(this.R+=a,this.R>this.Fa&&(this.R=this.Fa))}try{do{var b=Zc(this,this.v.$a?1:this.Qa);try{this.jb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.sa+=b;this.T+=b;Tc(this,b);$c(this,b);this.pa-=b;if(0>=this.pa){this.pa+=this.Qa;15<=++this.Cb&&(this.D&&this.D.$(),this.Cb=0);break}}while(this.v.ca)}catch(e){this.da();this.D&&this.D.stop(za(),Uc(this));rb(this, -e.stack||e.message);return}if(this.v.ca){a=setTimeout;b=this.bc;this.aa=za();var c=this.Ab;this.sa&&(c=Math.round(c*this.sa/this.Qa));var c=c-(this.aa-this.Fa),d=this.aa-this.R;d&&(this.V=Math.round(this.T/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.Vc&&(this.R-=c),c=0;this.nb+=this.sa;this.aa+=c;a(b,c)}}}; -h.ib=function(a){if(qb(this))return!1;if(this.v.ca)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.ca=!0;this.v.Qb=!0;var b=this.I.run;b&&(b.textContent="Halt");this.D&&(a&&this.D.ub(!0),this.D.start(this.R,Uc(this)));setTimeout(this.bc,0);return!0};h.jb=function(){return 0};h.da=function(a){if(this.v.ca){Yc(this);Wc(this,this.T);this.T=0;this.v.ca=!1;var b=this.I.run;b&&(b.textContent="Run");this.D&&this.D.stop(za(),Uc(this))}this.v.complete=a}; +h.fd=function(){if(this.v.ca){this.nb>=this.Ga&&Xc(this,!0);this.sa=0;this.Fa=za();if(this.aa){var a=this.Fa-this.aa;a>this.Ab&&(this.N+=a,this.N>this.Fa&&(this.N=this.Fa))}try{do{var b=Zc(this,this.v.$a?1:this.Qa);try{this.jb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.sa+=b;this.O+=b;Tc(this,b);$c(this,b);this.pa-=b;if(0>=this.pa){this.pa+=this.Qa;15<=++this.Cb&&(this.D&&this.D.$(),this.Cb=0);break}}while(this.v.ca)}catch(e){this.da();this.D&&this.D.stop(za(),Uc(this));rb(this, +e.stack||e.message);return}if(this.v.ca){a=setTimeout;b=this.bc;this.aa=za();var c=this.Ab;this.sa&&(c=Math.round(c*this.sa/this.Qa));var c=c-(this.aa-this.Fa),d=this.aa-this.N;d&&(this.V=Math.round(this.O/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.Vc&&(this.N-=c),c=0;this.nb+=this.sa;this.aa+=c;a(b,c)}}}; +h.ib=function(a){if(qb(this))return!1;if(this.v.ca)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.ca=!0;this.v.Qb=!0;var b=this.J.run;b&&(b.textContent="Halt");this.D&&(a&&this.D.ub(!0),this.D.start(this.N,Uc(this)));setTimeout(this.bc,0);return!0};h.jb=function(){return 0};h.da=function(a){if(this.v.ca){Yc(this);Wc(this,this.O);this.O=0;this.v.ca=!1;var b=this.J.run;b&&(b.textContent="Run");this.D&&this.D.stop(za(),Uc(this))}this.v.complete=a}; function ad(a){this.ab=+a.model||1170;this.xb=a.addrReset||0;Nc.call(this,a,6666667);this.decode=1120==this.ab?bd.bind(this):cd.bind(this);dd(this);this.A=0;this.U=null;this.v.complete=this.v.oc=!1}u(ad,Nc);h=ad.prototype;h.reset=function(){this.status("model "+this.ab);this.v.ca&&this.da();dd(this);Qc(this);this.v.error=!1;this.parent.reset.call(this)}; -function dd(a){a.N=65536;a.O=32768;a.X=65535;a.S=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.xb];a.Ea=[0,0,0,0,0,0];a.va=[0,0,0,0];a.B=0;a.xa=0;a.sc=[4,2,0,1];a.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.ta=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.gc=[0,0,0,0,0,0,0,0];a.fc=0;a.G=0;a.H=a.J=0;a.g=a.f=a.Xa=0;a.qa=-1;ed(a)}function ed(a){a.Pa=255;a.Z=0;a.Pb=0;a.F=0;a.Na=0;a.tb=0;a.Oa=0;a.La=0;a.wa=0;a.Za=262143;a.ya=253952;a.G|=2;a.w&&tc(a)}function tc(a){a.La?(a.M=65536,a.Y=a.rc,a.oa=a.cd,a.wb=a.Pd,Vb(a.w,a.Oa&16?22:18)):(a.M=0,a.Y=a.qc,a.oa=a.ec,a.wb=a.kc,Vb(a.w,16))}h.Zb=function(){return 0}; -h.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.fa,this.Ma]);a.set(2,cc(this.w));return a.data()};h.restore=function(a){var b=a[1];this.fa=b[1];Vc(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c>14&3;c=a.L>>14&3;a.B!=c&&(a.va[c]=a.u[6],a.u[6]=a.va[a.B]);a.L=b;a.G|=2}function P(a,b){a.G&128||(a.S=a.X=b,a.O=0)}function Dd(a,b,c){a.G&128||(a.S=a.X=a.N=b,a.O=c||0)}function Ed(a,b,c,d){a.G&128||(a.S=a.X=a.N=b,a.O=(c^b)&(d^b))}function Fd(a,b){a.G&128||(a.S=a.X=a.N=b,a.O=a.S^a.N>>1)} -function Gd(a,b,c,d){a.G&128||(a.S=a.X=a.N=b,a.O=(c^d)&(d^b))}h.ea=function(a,b){if(!this.A){var c=!1;0>this.qa?this.qa=Lb(this):this.B||(a=4,c=!0);this.F&57344||(this.Na=63222,this.tb=a);this.B=0;var d=this.oa(a|this.M),e=this.oa(a+2&65535|this.M);vc(this,e&-12289|this.qa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Hd(this,this.qa);Hd(this,this.u[7]);O(this,d);this.G&=-113;this.qa=-1;if(26!=b)throw a;}};function Id(a){var b=Jd(a),c=Jd(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);O(a,b);vc(a,c);a.G&=-17} -function Kd(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.B]||(d&=7);e=a.P[a.B][d];f=(a.ta[a.B][d]<<6)+(b&8191)&a.Za;if(ff){if(3932160<=f){f&=262143;var k=f>>13&31;31>k?a.Oa&32&&(f=a.uc[k]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? -192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.P[a.B][d]=e;if(4194170!==f||a.B)a.wa=a.B,a.xa=d;g&&(g&57344&&(0<=a.qa&&(g|=128),a.F&57344||(a.F=a.F|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.F&61440||!(4191360>f||4194239>14&3;c=a.L>>14&3;a.B!=c&&(a.va[c]=a.u[6],a.u[6]=a.va[a.B]);a.L=b;a.G|=2}function P(a,b){a.G&128||(a.T=a.X=b,a.R=0)}function Dd(a,b,c){a.G&128||(a.T=a.X=a.P=b,a.R=c||0)}function Ed(a,b,c,d){a.G&128||(a.T=a.X=a.P=b,a.R=(c^b)&(d^b))}function Fd(a,b){a.G&128||(a.T=a.X=a.P=b,a.R=a.T^a.P>>1)} +function Gd(a,b,c,d){a.G&128||(a.T=a.X=a.P=b,a.R=(c^d)&(d^b))}h.ea=function(a,b){if(!this.A){var c=!1;0>this.qa?this.qa=Lb(this):this.B||(a=4,c=!0);this.F&57344||(this.Na=63222,this.tb=a);this.B=0;var d=this.oa(a|this.M),e=this.oa(a+2&65535|this.M);vc(this,e&-12289|this.qa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Hd(this,this.qa);Hd(this,this.u[7]);O(this,d);this.G&=-113;this.qa=-1;if(26!=b)throw a;}};function Id(a){var b=Jd(a),c=Jd(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);O(a,b);vc(a,c);a.G&=-17} +function Kd(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.B]||(d&=7);e=a.S[a.B][d];f=(a.ta[a.B][d]<<6)+(b&8191)&a.Za;if(ff){if(3932160<=f){f&=262143;var k=f>>13&31;31>k?a.Oa&32&&(f=a.uc[k]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? +192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.S[a.B][d]=e;if(4194170!==f||a.B)a.wa=a.B,a.xa=d;g&&(g&57344&&(0<=a.qa&&(g|=128),a.F&57344||(a.F=a.F|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.F&61440||!(4191360>f||4194239c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.oa(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.oa(e)|g; a.b-=8;break;case 6:return e=a.oa(Cd(a,2)),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=a.oa(Cd(a,2)),e=e+a.u[c]&65535,e=a.oa(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.F&57344||(a.Na=a.Na<<8|f<<3&248|c);6==c&&!a.B&&d&4&&0>=f&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.G|=64));return e}h.Bb=function(a){if(!this.La)return this.w.Bb(a);this.A++;a=Ld(this,Kd(this,a,3));this.A--;return a}; h.pb=function(a){if(!this.La)return this.w.pb(a);this.A++;a=this.ec(Kd(this,a,2));this.A--;return a};h.hb=function(a,b){this.La?(this.A++,Md(this,Kd(this,a,5),b),this.A--):this.w.hb(a,b)};h.Gb=function(a,b){this.La?(this.A++,this.kc(Kd(this,a,4),b),this.A--):this.w.Gb(a,b)};h.qc=function(a,b,c){return Nd(this,a,b,c)};h.rc=function(a,b,c){return Kd(this,Nd(this,a,b,c),c)};h.ec=function(a){return this.w.na(a)};h.cd=function(a){return this.w.na(Kd(this,a,2))};h.kc=function(a,b){this.w.Va(a,b&65535)}; h.Pd=function(a,b){this.w.Va(Kd(this,a,4),b)};function Od(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Nd(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.B=a.L>>12&3,c=a.oa(d|c&a.M),a.B=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.va[a.L>>12&3];return c}function Pd(a,b,c,d){a.F&57344||(a.Na=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Nd(a,b,e,4),c&65536||(e&=65535),a.B=a.L>>12&3,e=Kd(a,e|c&65536,4),a.B=a.L>>14&3,a.w.Va(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.va[a.L>>12&3]=d} -function Qd(a,b){b>>=6;var c=a.J=b&7;return(b=a.H=(b&56)>>3)?Ld(a,a.Y(b,c,3)):a.u[c]&255}function Rd(a,b){b>>=6;var c=a.J=b&7;return(b=a.H=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]}function Sd(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Nd(a,b,c,8)}function Td(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Ld(a,a.Y(b,c,3)):a.u[c]&255}function Ud(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]} +function Qd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?Ld(a,a.Y(b,c,3)):a.u[c]&255}function Rd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]}function Sd(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Nd(a,b,c,8)}function Td(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Ld(a,a.Y(b,c,3)):a.u[c]&255}function Ud(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]} function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Xa=a.Y(b,e,7),Md(a,e,d.call(a,c,Ld(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Y(b,e,6),a.w.Va(e,d.call(a,c,a.w.na(e)))):a.u[e]=d.call(a,c,a.u[e])}function Vd(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Md(a,a.Y(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Wd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.Va(a.Y(b,d,4),c):a.u[d]=c&65535;return c} function S(a,b,c){c&&(O(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3} h.jb=function(a){this.v.complete=!0;var b=this.v.oc=this.i&&Xd(this.i),c=a?this.v.Qb?0:1:-1;this.v.Qb=!1;this.ba=this.b=a;do{if(b){if(Yd(this.i,this.u[7],c)){this.da();break}c=1}if(this.G&&(this.G&112&&(this.G&32?this.ea(168,28):this.G&64?this.ea(4,30):this.G&16&&this.ea(12,32),this.G&=-113),this.G&7))if(this.G&2){this.G&=-3;var d=160,e=(this.Pb&224)>>5;if(a=this.U&&this.U.eb>e?this.U:null)d=a.jd,e=a.eb;e>(this.L&224)>>5?(this.G&4&&(Cd(this,2),this.G&=-5),this.ea(d,26),e=!0):e=!1;if(e&&a)if(e=this.U, -e==a)this.U=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.G&1&&this.G++;this.G=this.G&7|this.L&16;this.decode(Bd(this))}while(0>1|b<<16;Fd(this,a);return a&65535}function de(a,b){a=b&2048|b>>1|b<<8;Fd(this,a<<8);return a&255}function ee(a,b){a=b&~a;P(this,a);return a}function fe(a,b){a=b&~a;P(this,a<<8);return a}function ge(a,b){a|=b;P(this,a);return a}function he(a,b){a|=b;P(this,a<<8);return a}function ie(a,b){a=~b|65536;Dd(this,a);return a&65535} -function je(a,b){a=~b|256;Dd(this,a<<8);return a&255}function ke(a,b){a=b-a;this.G&128||(this.S=this.X=a,this.O=b&(b^a));return a&65535}function le(a,b){a=b-a;var c=a<<8;b<<=8;this.G&128||(this.S=this.X=c,this.O=b&(b^c));return a&255}function me(a,b){a=b+a;this.G&128||(this.S=this.X=a,this.O=a&(b^a));return a&65535}function ne(a,b){a=b+a;var c=a<<8;this.G&128||(this.S=this.X=c,this.O=c&(b<<8^c));return a&255}function oe(a,b){a=-b;Dd(this,a,a&b&32768);return a&65535} -function pe(a,b){a=-b;Dd(this,a<<8,(a&b&128)<<8);return a&255}function qe(a,b){a=b<<1|this.N>>16&1;Fd(this,a);return a&65535}function re(a,b){a=b<<1|this.N>>16&1;Fd(this,a<<8);return a&255}function se(a,b){a=(this.N&65536|b)>>1|b<<16;Fd(this,a);return a&65535}function te(a,b){a=((this.N&65536)>>8|b)>>1|b<<8;Fd(this,a<<8);return a&255}function ue(a,b){var c=b-a;Gd(this,c,a,b);return c&65535}function ve(a,b){var c=b-a;Gd(this,c<<8,a<<8,b<<8);return c&255} -function we(a,b){this.G&128||(this.S=this.X=b&65280,this.O=this.N=0);return(b<<8|b>>8)&65535}function xe(a,b){a^=b;P(this,a);return a&65535}function ye(a){R(this,a,Rd(this,a),Zd);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} -function ze(a){var b=Ud(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.N=this.O=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.O=32768)}this.u[a]=c&65535;this.S=this.X=c;this.b-=(this.g?6:7)+b} -function Ae(a){var b=Ud(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.N=this.O=0;b&=63;if(b&32){b=64-b;32>b-1;this.N=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.u[a|1]=d&65535;this.S=d>>16;this.X=d>>16|d;this.b-=(this.g?6:7)+b}function Be(a){S(this,a,!fd(this))}function Ce(a){S(this,a,fd(this))} -function De(a){R(this,a,Rd(this,a),ee);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ee(a){Q(this,a,Qd(this,a),fe);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Fe(a){R(this,a,Rd(this,a),ge);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ge(a){Q(this,a,Qd(this,a),he);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} -function He(a){P(this,Rd(this,a)&Ud(this,a));this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ie(a){P(this,(Qd(this,a)&Td(this,a))<<8);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Je(a){S(this,a,Ad(this))}function Ke(a){S(this,a,!this.Da()==!gd(this))}function Le(a){S(this,a,!Ad(this)&&!this.Da()==!gd(this))}function Me(a){S(this,a,!fd(this)&&!Ad(this))}function Ne(a){S(this,a,Ad(this)||!this.Da()!=!gd(this))} -function Oe(a){S(this,a,fd(this)||Ad(this))}function Pe(a){S(this,a,!this.Da()!=!gd(this))}function Qe(a){S(this,a,this.Da())}function Re(a){S(this,a,!Ad(this))}function Se(a){S(this,a,!this.Da())}function Te(){this.ea(12,1);this.b-=5}function Ue(a){S(this,a,!0)}function Ve(a){S(this,a,!gd(this))}function We(a){S(this,a,gd(this))}function T(a){a&1&&(this.N=0);a&2&&(this.O=0);a&4&&(this.X=1);a&8&&(this.S=0);this.b-=5} -function Xe(a){var b=Rd(this,a);a=Ud(this,a);Gd(this,b-a,a,b);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ye(a){var b=Qd(this,a)<<8;a=Td(this,a)<<8;Gd(this,b-a,a,b);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)} -function Ze(a){var b=Ud(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.N=this.O=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.X=d>>16|d,this.S=d>>16):(this.O=32768,this.X=d>>15|d,this.S=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.S=0,this.O=32768,this.N=65536,this.b-=7}function $e(){this.ea(24,2);this.b-=25}function af(){this.L&49152?(this.Z|=128,this.ea(4,3)):this.da();this.b-=7} -function bf(){this.ea(16,4);this.b-=25}var cf=[0,7,7,10,7,11,9,13];function df(a){var b=this.b;O(this,Sd(this,a));this.b=b-cf[this.g]}var ef=[0,14,14,17,14,18,16,20];function ff(a){var b=this.b,c=Sd(this,a);a=a>>6&7;Hd(this,this.u[a]);this.u[a]=this.u[7];O(this,c);this.b=b-ef[this.g]}var gf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function hf(a){var b=Rd(this,a),c=this.b;P(this,Wd(this,a,b));this.b=c-gf[(this.H?8:0)+this.g]+(7!=this.f||this.g?0:2)} -function jf(a){var b=Qd(this,a);P(this,Vd(this,a,b,1)<<8);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var kf=[7,13,13,17,14,18,17,21];function lf(a){var b=Ud(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.G&128||(this.S=b>>16,this.X=this.S|b,this.O=0,this.N=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)O(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function rf(a){R(this,a,Rd(this,a),ue);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} -function sf(a){R(this,a,0,we);this.b-=this.g?9:3+(7==this.f?2:0)}function tf(){this.ea(28,5);this.b-=5}function uf(){this.G&4||this.D.$();this.G|=4;Cd(this,-2);this.b-=3}function vf(a){R(this,a,Rd(this,a),xe);this.b-=this.g?9:3+(7==this.f?2:0)}function V(a){var b;if(b=this.i)b=this.i,C(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function bd(a){wf[a>>12].call(this,a)}function xf(a){yf[a>>6&3].call(this,a)}function zf(a){Af[a>>6&3].call(this,a)} -function Bf(a){Cf[a>>6&3].call(this,a)}function Df(a){Ef[a&15].call(this,a)}function Ff(a){Gf[a&15].call(this,a)}function Hf(a){If[a>>6&3].call(this,a)}function Jf(a){Kf[a>>6&3].call(this,a)}function Lf(a){Mf[a>>6&3].call(this,a)} -var wf=[function(a){fg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,ye,V,function(a){gg[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,rf,V],fg=[function(a){hg[a>>4&15].call(this,a)},Ue,Re,Je,Ke,Pe,Le,Ne,ff,ff,xf,zf,Bf,V,V,V],yf=[function(a){Dd(this,Wd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,ke);this.b-=this.g?9:3+(7==this.f?2:0)}],Af=[function(a){R(this,a,0, +function je(a,b){a=~b|256;Dd(this,a<<8);return a&255}function ke(a,b){a=b-a;this.G&128||(this.T=this.X=a,this.R=b&(b^a));return a&65535}function le(a,b){a=b-a;var c=a<<8;b<<=8;this.G&128||(this.T=this.X=c,this.R=b&(b^c));return a&255}function me(a,b){a=b+a;this.G&128||(this.T=this.X=a,this.R=a&(b^a));return a&65535}function ne(a,b){a=b+a;var c=a<<8;this.G&128||(this.T=this.X=c,this.R=c&(b<<8^c));return a&255}function oe(a,b){a=-b;Dd(this,a,a&b&32768);return a&65535} +function pe(a,b){a=-b;Dd(this,a<<8,(a&b&128)<<8);return a&255}function qe(a,b){a=b<<1|this.P>>16&1;Fd(this,a);return a&65535}function re(a,b){a=b<<1|this.P>>16&1;Fd(this,a<<8);return a&255}function se(a,b){a=(this.P&65536|b)>>1|b<<16;Fd(this,a);return a&65535}function te(a,b){a=((this.P&65536)>>8|b)>>1|b<<8;Fd(this,a<<8);return a&255}function ue(a,b){var c=b-a;Gd(this,c,a,b);return c&65535}function ve(a,b){var c=b-a;Gd(this,c<<8,a<<8,b<<8);return c&255} +function we(a,b){this.G&128||(this.T=this.X=b&65280,this.R=this.P=0);return(b<<8|b>>8)&65535}function xe(a,b){a^=b;P(this,a);return a&65535}function ye(a){R(this,a,Rd(this,a),Zd);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} +function ze(a){var b=Ud(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.P=this.R=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.R=32768)}this.u[a]=c&65535;this.T=this.X=c;this.b-=(this.g?6:7)+b} +function Ae(a){var b=Ud(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.P=this.R=0;b&=63;if(b&32){b=64-b;32>b-1;this.P=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.u[a|1]=d&65535;this.T=d>>16;this.X=d>>16|d;this.b-=(this.g?6:7)+b}function Be(a){S(this,a,!fd(this))}function Ce(a){S(this,a,fd(this))} +function De(a){R(this,a,Rd(this,a),ee);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ee(a){Q(this,a,Qd(this,a),fe);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Fe(a){R(this,a,Rd(this,a),ge);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ge(a){Q(this,a,Qd(this,a),he);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} +function He(a){P(this,Rd(this,a)&Ud(this,a));this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ie(a){P(this,(Qd(this,a)&Td(this,a))<<8);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Je(a){S(this,a,hd(this))}function Ke(a){S(this,a,!this.Da()==!gd(this))}function Le(a){S(this,a,!hd(this)&&!this.Da()==!gd(this))}function Me(a){S(this,a,!fd(this)&&!hd(this))}function Ne(a){S(this,a,hd(this)||!this.Da()!=!gd(this))} +function Oe(a){S(this,a,fd(this)||hd(this))}function Pe(a){S(this,a,!this.Da()!=!gd(this))}function Qe(a){S(this,a,this.Da())}function Re(a){S(this,a,!hd(this))}function Se(a){S(this,a,!this.Da())}function Te(){this.ea(12,1);this.b-=5}function Ue(a){S(this,a,!0)}function Ve(a){S(this,a,!gd(this))}function We(a){S(this,a,gd(this))}function T(a){a&1&&(this.P=0);a&2&&(this.R=0);a&4&&(this.X=1);a&8&&(this.T=0);this.b-=5} +function Xe(a){var b=Rd(this,a);a=Ud(this,a);Gd(this,b-a,a,b);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ye(a){var b=Qd(this,a)<<8;a=Td(this,a)<<8;Gd(this,b-a,a,b);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)} +function Ze(a){var b=Ud(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.P=this.R=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.X=d>>16|d,this.T=d>>16):(this.R=32768,this.X=d>>15|d,this.T=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.T=0,this.R=32768,this.P=65536,this.b-=7}function $e(){this.ea(24,2);this.b-=25} +function af(){this.L&49152?(this.Z|=128,this.ea(4,3)):this.i?$b(this.i):this.da();this.b-=7}function bf(){this.ea(16,4);this.b-=25}var cf=[0,7,7,10,7,11,9,13];function df(a){var b=this.b;O(this,Sd(this,a));this.b=b-cf[this.g]}var ef=[0,14,14,17,14,18,16,20];function ff(a){var b=this.b,c=Sd(this,a);a=a>>6&7;Hd(this,this.u[a]);this.u[a]=this.u[7];O(this,c);this.b=b-ef[this.g]}var gf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17]; +function hf(a){var b=Rd(this,a),c=this.b;P(this,Wd(this,a,b));this.b=c-gf[(this.H?8:0)+this.g]+(7!=this.f||this.g?0:2)}function jf(a){var b=Qd(this,a);P(this,Vd(this,a,b,1)<<8);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var kf=[7,13,13,17,14,18,17,21]; +function lf(a){var b=Ud(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.G&128||(this.T=b>>16,this.X=this.T|b,this.R=0,this.P=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)O(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function rf(a){R(this,a,Rd(this,a),ue);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function sf(a){R(this,a,0,we);this.b-=this.g?9:3+(7==this.f?2:0)}function tf(){this.ea(28,5);this.b-=5}function uf(){this.G&4||this.D.$();this.G|=4;Cd(this,-2);this.b-=3} +function vf(a){R(this,a,Rd(this,a),xe);this.b-=this.g?9:3+(7==this.f?2:0)}function V(a){var b;if(b=this.i)b=this.i,C(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function bd(a){wf[a>>12].call(this,a)}function xf(a){yf[a>>6&3].call(this,a)}function zf(a){Af[a>>6&3].call(this,a)}function Bf(a){Cf[a>>6&3].call(this,a)}function Df(a){Ef[a&15].call(this,a)}function Ff(a){Gf[a&15].call(this,a)}function Hf(a){If[a>>6&3].call(this,a)}function Jf(a){Kf[a>>6&3].call(this,a)} +function Lf(a){Mf[a>>6&3].call(this,a)} +var wf=[function(a){Nf[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,ye,V,function(a){gg[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,rf,V],Nf=[function(a){hg[a>>4&15].call(this,a)},Ue,Re,Je,Ke,Pe,Le,Ne,ff,ff,xf,zf,Bf,V,V,V],yf=[function(a){Dd(this,Wd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,ke);this.b-=this.g?9:3+(7==this.f?2:0)}],Af=[function(a){R(this,a,0, oe);this.b-=this.g?11:6},function(a){R(this,a,fd(this)?1:0,Zd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,fd(this)?1:0,ue);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Ud(this,a);Dd(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Cf=[function(a){R(this,a,0,se);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,qe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ce);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ae);this.b-=this.g?9:3+(7==this.f?2:0)}], -hg=[function(a){ig[a&15].call(this,a)},V,V,V,df,df,df,df,pf,V,Df,Ff,sf,sf,sf,sf],ig=[af,uf,of,Te,bf,nf,V,V,V,V,V,V,V,V,V,V],Ef=[mf,function(){this.N=0;this.b-=5},function(){this.O=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.S=0;this.b-=5},T,T,T,T,T,T,T],Gf=[mf,function(){this.N=65536;this.b-=5},function(){this.O=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.S=32768;this.b-=5},W,W,W,W,W,W,W],gg=[Se,Qe,Me,Oe,Ve,We,Be,Ce,$e,tf,Hf,Jf,Lf,V,V,V],If=[function(a){Dd(this, +hg=[function(a){ig[a&15].call(this,a)},V,V,V,df,df,df,df,pf,V,Df,Ff,sf,sf,sf,sf],ig=[af,uf,of,Te,bf,nf,V,V,V,V,V,V,V,V,V,V],Ef=[mf,function(){this.P=0;this.b-=5},function(){this.R=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.T=0;this.b-=5},T,T,T,T,T,T,T],Gf=[mf,function(){this.P=65536;this.b-=5},function(){this.R=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.T=32768;this.b-=5},W,W,W,W,W,W,W],gg=[Se,Qe,Me,Oe,Ve,We,Be,Ce,$e,tf,Hf,Jf,Lf,V,V,V],If=[function(a){Dd(this, Vd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,je);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,ne);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,le);this.b-=this.g?9:3+(7==this.f?2:0)}],Kf=[function(a){Q(this,a,0,pe);this.b-=this.g?11:6},function(a){Q(this,a,fd(this)?1:0,$d);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,fd(this)?1:0,ve);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Td(this,a);Dd(this,a<<8);this.b-=this.g?4:3+(7== this.f?2:0)}],Mf=[function(a){Q(this,a,0,te);this.b-=this.g?9+(this.Xa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,de);this.b-=this.g?9+(this.Xa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)}];function cd(a){jg[a>>12].call(this,a)} var jg=[function(a){kg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,ye,function(a){lg[a>>8&15].call(this,a)},function(a){mg[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,rf,V],kg=[function(a){ng[a>>4&15].call(this,a)},Ue,Re,Je,Ke,Pe,Le,Ne,ff,ff,xf,zf,Bf,function(a){og[a>>6&3].call(this,a)},V,V],og=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.oa(a|this.M);O(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Od(this,a,0);Hd(this,a);P(this,a);this.b-=11},function(a){var b=Jd(this),c= this.b;Pd(this,a,0,b);P(this,b);this.b=c-kf[this.g]},function(a){P(this,Wd(this,a,this.Da?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],ng=[function(a){pg[a&15].call(this,a)},V,V,V,df,df,df,df,pf,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.G|=1),this.b-=5):V.call(this,a)},Df,Ff,sf,sf,sf,sf],pg=[af,uf,of,Te,bf,nf,function(){Id(this);this.b-=13},V,V,V,V,V,V,V,V,V],lg=[lf,lf,Ze,Ze,ze,ze,Ae,Ae,vf,vf,V,V,V,V,qf,qf],mg=[Se,Qe,Me,Oe,Ve,We,Be,Ce,$e,tf,Hf,Jf,Lf,function(a){qg[a>>6&3].call(this, a)},V,V],qg=[V,function(a){a=Od(this,a,65536);Hd(this,a);P(this,a);this.b-=11},function(a){var b=Jd(this),c=this.b;Pd(this,a,65536,b);P(this,b);this.b=c-kf[this.g]},V]; -function rg(a){r.call(this,"ROM",a,rg);this.ka=this.f=null;this.B=a.addr;this.g=a.size;this.A=a.alias;this.D=a.file;this.F=oa(this.D);if(this.D){a=this.D;var b=pa(this.F);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.D+"&format=bytes&decimal=true");var c=this;Ba(a,null,!0,function(a,b,f){f?c.ga("Unable to load ROM resource (error "+f+": "+a+")"):(jb(c.Ra,a,b),(a=Ca(a,b))?(c.f=a.ja,c.ka=a.ka):c.D=null,sg(c))})}}u(rg);rg.prototype.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;sg(this)}; +function rg(a){r.call(this,"ROM",a,rg);this.ka=this.f=null;this.B=a.addr;this.g=a.size;this.A=a.alias;this.D=a.file;this.F=oa(this.D);if(this.D){a=this.D;var b=pa(this.F);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.D+"&format=bytes&decimal=true");var c=this;Ba(a,null,!0,function(a,b,f){f?c.ga("Unable to load ROM resource (error "+f+": "+a+")"):(jb(c.Ra,a,b),(a=Ca(a,b))?(c.f=a.ia,c.ka=a.ka):c.D=null,sg(c))})}}u(rg);rg.prototype.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;sg(this)}; rg.prototype.Aa=function(){if(this.ka){if(this.i){var a=this.i,b=this.id,c=this.B,d=this.g,e=this.ka,f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var m=k.o,p=k.a;if(void 0!==m){var q=f,m=[m>>>0,g],v=ya(q,m,a.Vb);0>v&&q.splice(-(v+1),0,m)}p&&(k.a=p.replace(/''/g,'"'))}a.F.push({Ud:b,C:c,vc:d,ka:e,Ub:f})}delete this.ka}return!0};rg.prototype.za=function(){return!0}; function sg(a){if(!pb(a)){if(a.D){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if(a.f.length!=a.g)rb(a,"ROM size ("+l(a.f.length,8,!0)+") does not match specified size ("+l(a.g,8,!0)+")");else{var b;b=a.B;if(Yb(a.w,b,a.g,Cc)){var c;for(c=0;c=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=va(b[0]);if(c!=this.Wa)return;b=va(b[1]);if(this.J=lb(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.K=d.receiveData){this.status(this.Ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.Aa=function(a,b){if(!b)if(this.cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -h.za=function(a){return a?this.save():!0};h.reset=function(){yg(this)};h.save=function(){var a=new N(this);a.set(0,[]);return a.data()};h.restore=function(){return yg(this)};function yg(a){a.R=0;a.f=0;a.g=128;a.B=[];return!0}h.Ob=function(a){if("number"==typeof a)this.B.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.T||8,c=a-this.H%a,this.T&&(b=ua("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.A.value+=b;this.A.scrollTop=this.A.scrollHeight;this.H+=c}else if(null!=this.F){if(10==a||1024<=this.F.length)this.j(this.F), +function X(a){this.A=this.F=null;this.O=a.tabSize;this.M=a.charBOL;this.H=0;r.call(this,"SerialPort",a,X,8388608);var b=a.binding;if("console"==b)this.F="";else{var c;a=wg;b&&(void 0===c&&(c="Panel"),(c=mb(c,this.id))&&(b=c.J[b])&&this.ra(null,a,b))}this.I=this.K=null;this.exports={connect:this.cc,receiveData:this.Ob}}u(X);var wg="buffer";h=X.prototype; +h.ra=function(a,b,c){var d=this;switch(b){case wg:return this.J[b]=this.A=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=va(b[0]);if(c!=this.Wa)return;b=va(b[1]);if(this.I=lb(b)){var d=this.I.exports;if(d){var e=d.connect;e&&e.call(this.I);if(this.K=d.receiveData){this.status(this.Ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.Aa=function(a,b){if(!b)if(this.cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; +h.za=function(a){return a?this.save():!0};h.reset=function(){yg(this)};h.save=function(){var a=new N(this);a.set(0,[]);return a.data()};h.restore=function(){return yg(this)};function yg(a){a.N=0;a.f=0;a.g=128;a.B=[];return!0}h.Ob=function(a){if("number"==typeof a)this.B.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.O||8,c=a-this.H%a,this.O&&(b=ua("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.A.value+=b;this.A.scrollTop=this.A.scrollHeight;this.H+=c}else if(null!=this.F){if(10==a||1024<=this.F.length)this.j(this.F), this.F="";10!=a&&(this.F+=String.fromCharCode(a))}this.g&=-129;rc(this.b,this.V,1)}};var zg={},xg=(zg[65392]=[null,null,X.prototype.Sc,X.prototype.Ed,"RCSR"],zg[65394]=[null,null,X.prototype.Rc,X.prototype.Dd,"RBUF"],zg[65396]=[null,null,X.prototype.ed,X.prototype.Rd,"XCSR"],zg[65398]=[null,null,X.prototype.dd,X.prototype.Qd,"XBUF"],zg);Ta(function(){for(var a=B(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.I[b]=c,!0;case "loadTape":return this.I[b]=c,c.onclick=function(){var a=d.I.listTapes;a&&Bg(d, -a.options[a.selectedIndex].text,a.value)},!0;case "mountTape":if(this.H)return this.I[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Bg(d,oa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; -h.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;if((this.f=Pc(this.D,"autoMount")||this.f)&&"string"==typeof this.f)try{this.f=eval("("+this.f+")")}catch(e){n("PC11 auto-mount error: "+e.message+" ("+this.f+")"),this.f=null}ec(b,this,Cg);Dg(this,"None","",!0);this.H&&Dg(this,"Local Tape","?");Dg(this,"Remote Tape","??");Eg(this)||H(this)};h.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.za=function(a){return a?this.save():!0}; -h.reset=function(){this.g&=-2241;this.J=0};function Eg(a){a.A=0;if(a.f){var b=a.f.path,c;if(!(c=a.f.name))a:{if((c=a.I.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(d=pa(c),e="json"==d||"gz"==d?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(e,null,!0,function(d,e,f){var g=0>f&&a.D&&!a.D.v.ha;f?a.ga('Unable to load tape "'+b+'" (error '+f+": "+d+")",g):(jb(a.Ra,d,e),Ca(d,e)&&(a.B=c));a.v.Ia=!1;a.A&&(a.A--,a.A|| -H(a));Ig(a)})}function Dg(a,b,c,d){if((a=a.I.listTapes)&&a.options){for(var e=0;e=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Kg.prototype.$b=function(){return-1};Kg.prototype.ac=function(){}; -function Mg(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.U?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} -function Ng(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; +function wc(a){r.call(this,"PC11",a,wc);this.g=a.autoMount||null;this.I=this.K=this.f=this.A=0;this.H=[];this.F=Ag;this.B="";this.M=!La("Mobi")&&window&&"FileReader"in window}u(wc);var Ag="";h=wc.prototype; +h.ra=function(a,b,c){var d=this;switch(b){case "listTapes":return this.J[b]=c,c.onchange=function(){var a=d.J.descTape,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){n("PC11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b=''+b+"");a.innerHTML=b}},!0;case "descTape":return this.J[b]=c,!0;case "loadTape":return this.J[b]=c,c.onclick=function(){var a=d.J.listTapes;a&&Bg(d, +a.options[a.selectedIndex].text,a.value)},!0;case "mountTape":if(this.M)return this.J[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Bg(d,oa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; +h.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;var e=this;if((this.g=Pc(this.D,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){n("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.O=sc(56,4);this.N=hc(this.b,function(){Cg(e)});ec(b,this,Dg);Eg(this,"None",Ag,!0);this.M&&Eg(this,"Local Tape","?");Eg(this,"Remote Tape","??");Fg(this)||H(this)}; +h.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.za=function(a){return a?this.save():!0};h.reset=function(){this.f&=-2241;this.K=0};function Fg(a){a.A=0;if(a.g){var b=a.g.path,c;if(!(c=a.g.name))a:{if((c=a.J.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(d=pa(c),e="json"==d||"gz"==d?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(e,null,!0,function(d,e,f){var g=0>f&&a.D&&!a.D.v.ha;if(f)a.ga('Unable to load tape "'+b+'" (error '+f+": "+d+")",g);else if(jb(a.Ra,d,e),d=Ca(d,e))a.B=c,a.I=0,a.H= +d.ia;a.v.Ia=!1;a.A&&(a.A--,a.A||H(a));Jg(a)})}function Eg(a,b,c,d){if((a=a.J.listTapes)&&a.options){for(var e=0;e=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Lg.prototype.$b=function(){return-1};Lg.prototype.ac=function(){}; +function Ng(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.U?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} +function Og(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} -function Og(a,b,c){var d;if(b){b=Pg(a,b);for(var e=0,f=!1,g=b,k=[],m=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Sg(a,b){if(b)return Rg(a,b,a.aa[b]);var c=0;for(b in a.aa)Rg(a,b,a.aa[b]),c++;return 0>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Tg(a,b){if(b)return Sg(a,b,a.aa[b]);var c=0;for(b in a.aa)Sg(a,b,a.aa[b]),c++;return 0this.b.ab?ah:[];bh(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(ch(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ia;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<this.b.ab?bh:[];ch(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(dh(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ja;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}h.ac=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; +h.ra=function(a,b,c){var d=this;switch(b){case "debugInput":return this.pa=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Sc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.Ad&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}h.ac=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; h.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.tb).C));this.la&1073741824?this.wa.push(a):this.sa&&a==this.sa||(this.sa=a,this.la&-2147483648&&(this.da(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.pa=0,a.D.$()))}; -function Vg(a){var b;if(Xd(a)){if(!a.J||!a.J.length){a.J=Array(1E3);for(b=0;b>>d.ia],!1)}a.M=["br"];if(a.B)for(b=1;b>>d.ia],!0);a.B=["bw"];a.Xa=0} -h.Sa=function(a,b,c){var d=!0;c||mh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.C)),d=!1;else{var f=this.w;f.W[e>>>f.ia].Sa(e&f.w,a==this.B)}}d&&(a.push(b),c?b.Ba=!0:(nh(this,a,a.length-1,"set"),Vg(this)));return d};function mh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ia],b==a.B));k.Ba||Vg(a);break}}return f} -function oh(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.C-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= -hh(E);break;case 8:y="@"+hh(E);break;case 16:7>E?y="("+hh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+hh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+hh(E)+")";break;case 40:y="@-("+hh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+hh(E)+")";7==E&&(y=[y,J(x,F+w.C&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+hh(E)+")",7==E&&(y=[y,J(x,F+w.C&65535)])}x=y;if(!x||!x.length){k="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=hh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function th(a){var b,c="";for(b=0;6>b;b++)c+=sh(a,b);c=c+"\n"+(sh(a,6)+sh(a,7)+sh(a,20));return c+=rh(a,"T")+rh(a,"N")+rh(a,"Z")+rh(a,"V")+rh(a,"C")}h.Vb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,k=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.D.$();a.j("updated registers:")}a.j(th(a));c&&(a.K=Z(d.u[7]),kh(a,J(a,a.K.C)))}}function yh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1k[0].indexOf("+"))){var p=k[0]+":";k[2]&&(p+=" "+k[2]);a.j(p)}k[3]&&(g=k[3],f=null);f=qh(a,b,g,f);a.j(f);a.K=b;e-=b.C-m;c++}}} -function ph(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.U&&(a.j("ended assemble at "+J(a,a.T.C)),a.K=a.T,a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.sa=null;if(pb(a)&&0q||"z"ja.length&&(a.j("note: only "+ja.length+" available"),Y=ja.length);ca-=Y;0>ca&&(null==ja[ja.length-1].C?(Y=ca+Y,ca=0):ca+=ja.length);var kd=[];"call"==Sf&&(vb=1E5,kd=["CALL"]);for(void 0!==Rf&&a.j(Y+" instructions earlier:");0=ja.length&&(ca=0);a.Ya=Y;Uf++;vb--}}Uf||(a.j("no "+Tf+"history available"),a.Ya=void 0)}else{var xb=ch(a,ia);if(xb){var fc=0;Fa&&("l"==Fa.charAt(0)&&(Fa=Fa.substr(1)||Sh),fc=Qg(a,Fa)>>>0,65536>4||1;Uh--&&0ic?String.fromCharCode(ic):".";gc--}yb&&(yb+="\n");yb+=ia+" "+ld+(0==Ab?" "+Xf:"")}yb&&a.j(yb);a.Qa=xb}}}}break;case "e":if("else"==g[0])break;var bb,nd,od,pd,qd=g[0],rd=g[1];"eb"==qd?(bb=1,nd=255,od=a.ob,pd=a.Fb):"e"==qd||"ew"==qd?(bb=2,nd=65535,od=a.na,pd=a.Va):rd=null;if(null==rd)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var jc=ch(a,rd);if(jc)for(var kc=2;kc< -g.length;kc++){var Bb=Og(a,g[kc]);if(void 0===Bb){a.j("unrecognized value: "+g[kc]);break}Bb&~nd&&a.j("warning: "+l(Bb)+" exceeds "+bb+"-byte value");var Vh=od.call(a,jc);a.j("changing "+J(a,jc.C)+" from "+J(a,Vh,bb)+" to "+J(a,Bb,bb));pd.call(a,jc,Bb,bb)}}break;case "g":a:{var Yf=g[1],Wh=b;if(void 0!==Yf){var sd=ch(a,Yf,!0);if(!sd)break a;gh(a,sd,Wh);a.Sa(a.f,sd,!0)}a.ib(!0,c)}break;case "h":a.v.ca?(c||a.j("halting"),a.da()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var td; -var Cb=b.substr(2),Cb=va(Cb);Og(a,Cb)?(c||a.j("true: "+Cb),td=!0):(c||a.j("false: "+Cb),td=!1);td||(d=!1);break}f=!0;break;case "k":var Xh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var ud=0,vd=Z(),Db=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Db.C));10>ud;){for(var Ga=null,Yh=256;65536>Db.C>>>0;){vd.C=a.na(Db,2);if(null==Db.C||!Yh--)break;if(!(vd.C&1)){for(var Zh=a,lc=vd,Zf=null,Eb=lc.C,$f=Eb,wd=1;6>=wd&&Eb;wd++){if(2< -wd){lc.C=Eb;var mc=qh(Zh,lc);if(0<=mc.indexOf("JSR")){var ag=mc.indexOf(" ");if(Eb+(mc.indexOf(" ",ag+1)-ag-1)/2==$f){Zf=mc;break}}}Eb-=2}lc.C=$f;if(Ga=Zf)break}}if(!Ga||null==Ga)break;var bg=null;if("ks"==Xh){var cg=Ga.match(/[0-9A-F]+$/);cg&&(bg=xh(a,cg[0]))}Ga=ua(Ga,50)+" ;"+(bg||"stack="+J(a,Db.C));a.j(Ga);ud++}ud||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){xh(a,g[1],!0);break}f=!0;break;case "m":a:{var ka,la=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== -G)xa=1878917119,G=null;else if("on"==G)la=!0,G=null;else if("off"==G)la=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(ka in tb)if(G==ka){xa=tb[ka];la=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,la=!0;else if("off"==g[2]&&(a.la&=~xa,la=!1,1073741824==xa)){for(var xd=0;xd>>d.ja],!1)}a.M=["br"];if(a.B)for(b=1;b>>d.ja],!0);a.B=["bw"];a.Xa=0} +h.Sa=function(a,b,c){var d=!0;c||nh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.C)),d=!1;else{var f=this.w;f.W[e>>>f.ja].Sa(e&f.w,a==this.B)}}d&&(a.push(b),c?b.Ba=!0:(oh(this,a,a.length-1,"set"),Wg(this)));return d};function nh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ja],b==a.B));k.Ba||Wg(a);break}}return f} +function ph(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.C-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= +ih(E);break;case 8:y="@"+ih(E);break;case 16:7>E?y="("+ih(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+ih(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+ih(E)+")";break;case 40:y="@-("+ih(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+ih(E)+")";7==E&&(y=[y,J(x,F+w.C&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+ih(E)+")",7==E&&(y=[y,J(x,F+w.C&65535)])}x=y;if(!x||!x.length){k="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=ih(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function uh(a){var b,c="";for(b=0;6>b;b++)c+=th(a,b);c=c+"\n"+(th(a,6)+th(a,7)+th(a,20));return c+=sh(a,"T")+sh(a,"N")+sh(a,"Z")+sh(a,"V")+sh(a,"C")}h.Vb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,k=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.D.$();a.j("updated registers:")}a.j(uh(a));c&&(a.K=Z(d.u[7]),lh(a,J(a,a.K.C)))}}function zh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1k[0].indexOf("+"))){var p=k[0]+":";k[2]&&(p+=" "+k[2]);a.j(p)}k[3]&&(g=k[3],f=null);f=rh(a,b,g,f);a.j(f);a.K=b;e-=b.C-m;c++}}} +function qh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.U&&(a.j("ended assemble at "+J(a,a.O.C)),a.K=a.O,a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.sa=null;if(pb(a)&&0q||"z"ja.length&&(a.j("note: only "+ja.length+" available"),Y=ja.length);ca-=Y;0>ca&&(null==ja[ja.length-1].C?(Y=ca+Y,ca=0):ca+=ja.length);var md=[];"call"==Tf&&(vb=1E5,md=["CALL"]);for(void 0!==Sf&&a.j(Y+" instructions earlier:");0=ja.length&&(ca=0);a.Ya=Y;Vf++;vb--}}Vf||(a.j("no "+Uf+"history available"),a.Ya=void 0)}else{var xb=dh(a,ia);if(xb){var ic=0;Ga&&("l"==Ga.charAt(0)&&(Ga=Ga.substr(1)||Th),ic=Rg(a,Ga)>>>0,65536>4||1;Vh--&&0lc?String.fromCharCode(lc):".";jc--}yb&&(yb+="\n");yb+=ia+" "+nd+(0==Ab?" "+Yf:"")}yb&&a.j(yb);a.Qa=xb}}}}break;case "e":if("else"==g[0])break;var bb,pd,qd,rd,sd=g[0],td=g[1];"eb"==sd?(bb=1,pd=255,qd=a.ob,rd=a.Fb):"e"==sd||"ew"==sd?(bb=2,pd=65535,qd=a.na,rd=a.Va):td=null;if(null==td)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var mc=dh(a,td);if(mc)for(var nc=2;nc< +g.length;nc++){var Bb=Pg(a,g[nc]);if(void 0===Bb){a.j("unrecognized value: "+g[nc]);break}Bb&~pd&&a.j("warning: "+l(Bb)+" exceeds "+bb+"-byte value");var Wh=qd.call(a,mc);a.j("changing "+J(a,mc.C)+" from "+J(a,Wh,bb)+" to "+J(a,Bb,bb));rd.call(a,mc,Bb,bb)}}break;case "g":a:{var Zf=g[1],Xh=b;if(void 0!==Zf){var ud=dh(a,Zf,!0);if(!ud)break a;hh(a,ud,Xh);a.Sa(a.f,ud,!0)}a.ib(!0,c)}break;case "h":a.v.ca?(c||a.j("halting"),a.da()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var vd; +var Cb=b.substr(2),Cb=va(Cb);Pg(a,Cb)?(c||a.j("true: "+Cb),vd=!0):(c||a.j("false: "+Cb),vd=!1);vd||(d=!1);break}f=!0;break;case "k":var Yh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var wd=0,xd=Z(),Db=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Db.C));10>wd;){for(var Ha=null,Zh=256;65536>Db.C>>>0;){xd.C=a.na(Db,2);if(null==Db.C||!Zh--)break;if(!(xd.C&1)){for(var $h=a,oc=xd,$f=null,Eb=oc.C,ag=Eb,yd=1;6>=yd&&Eb;yd++){if(2< +yd){oc.C=Eb;var pc=rh($h,oc);if(0<=pc.indexOf("JSR")){var bg=pc.indexOf(" ");if(Eb+(pc.indexOf(" ",bg+1)-bg-1)/2==ag){$f=pc;break}}}Eb-=2}oc.C=ag;if(Ha=$f)break}}if(!Ha||null==Ha)break;var cg=null;if("ks"==Yh){var dg=Ha.match(/[0-9A-F]+$/);dg&&(cg=yh(a,dg[0]))}Ha=ua(Ha,50)+" ;"+(cg||"stack="+J(a,Db.C));a.j(Ha);wd++}wd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){yh(a,g[1],!0);break}f=!0;break;case "m":a:{var ka,la=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== +G)xa=1878917119,G=null;else if("on"==G)la=!0,G=null;else if("off"==G)la=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(ka in tb)if(G==ka){xa=tb[ka];la=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,la=!0;else if("off"==g[2]&&(a.la&=~xa,la=!1,1073741824==xa)){for(var zd=0;zd\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bDh){if(Fh(d,this.J)){this.B=new N(this,"1.30.1","failsafe");Fh(this.B)&&(Kh(this,d),a=2,Lh(this.B));this.B.set("timestamp",Aa());Mh(this.B);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Jh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Fh(d,g):("error"== -f&&"no machine state"!=g?(this.ga("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Lh(d),Fh(d)?(c=Jh(d),e=!0):c=!1))}e&&Ih(this,c?d:null)}else 2==a&&d.clear()}else Ih(this);delete this.J;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ha=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(Nh(this,this.b,b,c,a),this.b.mb());this.T&&(Kh(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.D=0}; -function Kh(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} -function Ah(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),k=Aa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.da(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ha=!1,!1===d&&(e=null)));for(var k=kb(a.id),m=0;m\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bEh){if(Gh(d,this.I)){this.B=new N(this,"1.30.1","failsafe");Gh(this.B)&&(Lh(this,d),a=2,Mh(this.B));this.B.set("timestamp",Aa());Nh(this.B);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Kh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Gh(d,g):("error"== +f&&"no machine state"!=g?(this.ga("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Mh(d),Gh(d)?(c=Kh(d),e=!0):c=!1))}e&&Jh(this,c?d:null)}else 2==a&&d.clear()}else Jh(this);delete this.I;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ha=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.b&&(Oh(this,this.b,b,c,a),this.b.mb());this.O&&(Lh(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.D=0}; +function Lh(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} +function Bh(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),k=Aa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.da(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ha=!1,!1===d&&(e=null)));for(var k=kb(a.id),m=0;mf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=k[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);k[0]!=m&&(g=g.replace(k[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],g);ei(a,b,c)}})}else c(a,null)} -function fi(a,b,c,d){function e(a){if(void 0===k){var b=g&&B(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Rh||Va(!0));m=!1}var g,k,m=!0;Rh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,k){k?ci(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=k.transformNode(m))?(g.outerHTML=m,--Rh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Rh||Va(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?ci(b,a,d,!0,e,p):di(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return fi(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map +h.ra=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.D||(d.v.ha?Bh(d,!1,!0):Ih(d,d.sb))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.v.ha&&!d.D)if(d.f&&!d.H){var a=Da("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Bh(d,a,!0);!a&&d.N?window&&window.location.reload():d.sb(Eh)}else d.reset(),d.b&&d.b.mb()},!0;case "save":if(qa())c.parentNode.removeChild(c);else return this.J[b]= +c,c.onclick=function(){var a=Fh(d,!0);if(a){var b=!!(d.f&&!d.H||d.N),c=Bh(d,b);b?Ph(d,a,c):d.ga("Resume disabled, machine state not saved")}},!0}return!1}; +function Fh(a,b){var c=a.g;c||((c=Ja("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Qh(a,c))||a.ga("The user ID is invalid.")):b&&a.ga("Browser local storage is not available"));return c} +function Qh(a,b){a.g=null;b=Ba(ra()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ka("user",b.data),a.g=b.data)}catch(d){n(d.message+" ("+c+")")}return a.g}function Hh(a){var b=null;a.g&&(b=ra()+"/api/v1/user?req=load&user="+a.g+"&state="+Rh(a,"1.30.1"));return b} +function Ph(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Rh(a,"1.30.1");d.data=c;b=Ba(ra()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=k[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);k[0]!=m&&(g=g.replace(k[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],g);fi(a,b,c)}})}else c(a,null)} +function gi(a,b,c,d){function e(a){if(void 0===k){var b=g&&B(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Sh||Va(!0));m=!1}var g,k,m=!0;Sh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,k){k?di(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=k.transformNode(m))?(g.outerHTML=m,--Sh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Sh||Va(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?di(b,a,d,!0,e,p):ei(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return gi(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map diff --git a/versions/pdpjs/1.30.1/pdp11.js b/versions/pdpjs/1.30.1/pdp11.js index 02dc2ce3d2..3f0a259e4d 100644 --- a/versions/pdpjs/1.30.1/pdp11.js +++ b/versions/pdpjs/1.30.1/pdp11.js @@ -35,40 +35,40 @@ function qa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")} function ta(){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 h(a,b,c,d){var e=0,f=null,k=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),k;var l=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(l.onreadystatechange=function(){4===l.readyState&&(f=l.responseText,200==l.status||!l.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=l.status||-1),d&&d(a,f,e))});if(b&&"object"== typeof b){var n="",r;for(r in b)b.hasOwnProperty(r)&&(n&&(n+="&"),n+=r+"="+encodeURIComponent(b[r]));n=n.replace(/%20/g,"+");l.open("POST",a,!!c);l.setRequestHeader("Content-type","application/x-www-form-urlencoded");l.send(n)}else l.open("GET",a,!!c),"bytes"==b&&l.overrideMimeType("text/plain; charset=x-user-defined"),l.send();c||(f=l.responseText,200!=l.status&&(e=l.status||-1),d&&d(a,f,e),k=[f,e]);return k} -function ua(a,b){var c,d={M:null,Y:null,cb:null,bb:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,k;if("<"==b.substr(0,1))throw Error(b);k=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.cb=k.load;d.bb=k.exec;if(e=k.bytes)d.M=e;else if(e=k.words)for(d.M=Array(2*e.length),f=c=0;c>8&255;else if(e=k.data)for(d.M=Array(4*e.length),f=c=0;c>8&255,d.M[f++]=e[c]>>16&255,d.M[f++]=e[c]>>24&255;else d.M=k;d.Y=k.symbols;d.M.length?1==d.M.length&&(m(d.M[0]),d=null):(m("Empty resource: "+a),d=null)}catch(l){m("Resource data error ("+a+"): "+l.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;cb.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.cb=k.load;d.bb=k.exec;if(e=k.bytes)d.L=e;else if(e=k.words)for(d.L=Array(2*e.length),f=c=0;c>8&255;else if(e=k.data)for(d.L=Array(4*e.length),f=c=0;c>8&255,d.L[f++]=e[c]>>16&255,d.L[f++]=e[c]>>24&255;else d.L=k;d.Y=k.symbols;d.L.length?1==d.L.length&&(m(d.L[0]),d=null):(m("Empty resource: "+a),d=null)}catch(l){m("Resource data error ("+a+"): "+l.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;cb?this.Ha=this.id:(this.ra=this.id.substr(0,b),this.Ha=this.id.substr(b+1));this[a]=c;this.i={ready:!1,Wa:!1,gd:!1,L:!1,error:!1};this.Ra=null;this.i.error=!1;this.s={};this.G=null;v.push(this)}var Ia=void 0,Ja={}; +Ea(Aa("Opera")||Aa("iOS")?"onunload":"onbeforeunload",function(){Fa(p.exit)});function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.pb=b.comment;this.Hb=b;b=this.id.indexOf(".");0>b?this.Ha=this.id:(this.ra=this.id.substr(0,b),this.Ha=this.id.substr(b+1));this[a]=c;this.i={ready:!1,Wa:!1,gd:!1,M:!1,error:!1};this.Ra=null;this.i.error=!1;this.s={};this.F=null;v.push(this)}var Ia=void 0,Ja={}; if(window){Ia||(Ia=window.location.search.substr(1));for(var Ka,La=/\+/g,Ma=/([^&=]+)=?([^&]*)/g;Ka=Ma.exec(Ia);)Ja[decodeURIComponent(Ka[1].replace(La," "))]=decodeURIComponent(Ka[2].replace(La," "))}function Na(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} function w(a,b){b||(b=u);a.prototype=Na(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Oa=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Oa={},v=[];function Pa(a,b,c){Oa[a]&&b&&(Oa[a][b]=c)}function x(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>2;this.g=this.c-1;this.v=this.A/this.c|0;this.ka=[];this.T=0;this.o=[];this.Bb=[ab,bb,cb,db];a=new E(this);eb(a,this.G);this.b=Array(this.v);for(b=0;b>2;this.g=this.c-1;this.v=this.A/this.c|0;this.ka=[];this.T=0;this.o=[];this.Bb=[ab,bb,cb,db];a=new E(this);eb(a,this.F);this.b=Array(this.v);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.ka[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);return 0<=c?c:c=gb(d,b)}function bb(a,b,c){var d=!1,e=this.controller,f=e.ka[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.ka[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d||gb(e,c)} -function cb(a,b){var c=-1,d=this.controller;(a=d.ka[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));return 0<=c?c:c=gb(d,b)}function db(a,b,c){var d=!1,e=this.controller;if(a=e.ka[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d||gb(e,c)}function hb(a,b){if(b!=a.j){var c;a.j&&(c=(1<>8,c+1),d=!0);d||gb(e,c)}function hb(a,b){if(b!=a.j){var c;a.j&&(c=(1<>>a.m;0k&&(t=k);if(!e&&n&&n.size){if(n.type==d){if(f+k<=n.Ca)return n.Ua+=n.Ca-f,n.Ca=f,!0;if(f>=n.Ca+n.Ua){t=n.size-(f-r);t>k&&(t=k);n.Ua=f-n.Ca+t;f=r+a.c;k-=t;l++;continue}}return mb(1,f,k)}f=new E(a,f,t,a.c,d,e);eb(f,a.G,n);a.b[l++]=f;f=r+a.c;k-=t}if(0>=k){c/=1024;var D;e="";D?10>>a.m;0k&&(t=k);if(!e&&n&&n.size){if(n.type==d){if(f+k<=n.Ca)return n.Ua+=n.Ca-f,n.Ca=f,!0;if(f>=n.Ca+n.Ua){t=n.size-(f-r);t>k&&(t=k);n.Ua=f-n.Ca+t;f=r+a.c;k-=t;l++;continue}}return mb(1,f,k)}f=new E(a,f,t,a.c,d,e);eb(f,a.F,n);a.b[l++]=f;f=r+a.c;k-=t}if(0>=k){c/=1024;var D;e="";D?10>>=a.m;0>>=a.m;0>>a.m].eb(b&a.g,b)}function pb(a,b){return a.b[(b&a.h)>>>a.m].R(b&a.g,b)}$a.prototype.Ta=function(a,b){this.T++;this.b[(a&this.h)>>>this.m].yb(a&this.g,b&255,a);this.T--}; function qb(a,b,c){a.b[(b&a.h)>>>a.m].Va(b&a.g,c&65535,b)}function rb(a){for(var b=0,c=[],d=0;da.a.Ga)){var k=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,n=f[2]?f[2].bind(b):null,r=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!k&&n&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&r&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(r)));sb(a,e,e,k,l,n,r,f[4])}}}function ub(a,b){a.o.push(b)}function vb(a,b){a.T||F(a.a,4,b)} -function mb(a,b,c){m("Memory block error ("+a+": "+ja(b)+","+ja(c)+")");return!1}function G(a){u.call(this,"Device",a,G);this.c={data:0,fd:0,Sa:20,uc:0};this.b={hd:0,ib:-1}}w(G);g=G.prototype;g.ea=function(a,b,c,d){this.m=b;this.a=c;this.G=d;var e=this;this.b.ib=wb(c,function(){e.b.na|=128;e.b.na&64&&(xb(e.a,e.b.vc),yb(e.a,e.b.ib,1E3/60))});this.b.vc=zb(64,6);tb(b,this,H);ub(b,this.reset.bind(this));B(this)};g.reset=function(){this.c.Sa=this.c.Sa&-120|20;this.b.na=0}; +function mb(a,b,c){m("Memory block error ("+a+": "+ja(b)+","+ja(c)+")");return!1}function G(a){u.call(this,"Device",a,G);this.c={data:0,fd:0,Sa:20,uc:0};this.b={hd:0,ib:-1}}w(G);g=G.prototype;g.ea=function(a,b,c,d){this.m=b;this.a=c;this.F=d;var e=this;this.b.ib=wb(c,function(){e.b.na|=128;e.b.na&64&&(xb(e.a,e.b.vc),yb(e.a,e.b.ib,1E3/60))});this.b.vc=zb(64,6);tb(b,this,H);ub(b,this.reset.bind(this));B(this)};g.reset=function(){this.c.Sa=this.c.Sa&-120|20;this.b.na=0}; g.Qb=function(){var a=this.b.na;this.b.na&=-129;return a};g.Ec=function(a){this.b.na=a;a&64&&yb(this.a,this.b.ib,1E3/60);this.b.na=a&-129};g.Jb=function(a){return(a?this.c.uc:this.c.data)&65535};g.xc=function(a){this.c.data=a};g.Sb=function(){var a=this.a;return a.A&62337|a.Ia<<5|a.Ja<<1};g.Gc=function(a){var b=this.a;a&=62337;if(b.A!=a){b.A=a;b.Ia=a>>5&3;b.Ja=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ea!=c&&(b.Ea=c,Ab(b))}Bb(this)}; -g.Tb=function(){var a=this.a.oa;a&65280&&(a=(a<<8|a>>8)&65535);return a};g.Ub=function(){return this.a.gb};g.Vb=function(){return this.a.pa};g.Hc=function(a){var b=this.a;1170>b.Ga&&(a&=-49);b.pa!=a&&(b.pa=a,a&16?(b.$a=4194303,b.Ka=3915776):(b.$a=262143,b.Ka=253952),Ab(b));Bb(this)};function Bb(a){a.c.Sa=a.c.Sa&-8|(a.a.Ea?a.a.pa&16?1:2:4)}g.ic=function(a){return this.a.C[1][a>>1&7]};g.Vc=function(a,b){this.a.C[1][b>>1&7]=a&65295};g.gc=function(a){return this.a.C[1][(a>>1&7)+8]}; -g.Tc=function(a,b){this.a.C[1][(b>>1&7)+8]=a&65295};g.hc=function(a){return this.a.S[1][a>>1&7]};g.Uc=function(a,b){b=b>>1&7;this.a.S[1][b]=a;this.a.C[1][b]&=65295};g.fc=function(a){return this.a.S[1][(a>>1&7)+8]};g.Sc=function(a,b){b=(b>>1&7)+8;this.a.S[1][b]=a;this.a.C[1][b]&=65295};g.Pb=function(a){return this.a.C[0][a>>1&7]};g.Dc=function(a,b){this.a.C[0][b>>1&7]=a&65295};g.Nb=function(a){return this.a.C[0][(a>>1&7)+8]};g.Bc=function(a,b){this.a.C[0][(b>>1&7)+8]=a&65295}; -g.Ob=function(a){return this.a.S[0][a>>1&7]};g.Cc=function(a,b){b=b>>1&7;this.a.S[0][b]=a;this.a.C[0][b]&=65295};g.Mb=function(a){return this.a.S[0][(a>>1&7)+8]};g.Ac=function(a,b){b=(b>>1&7)+8;this.a.S[0][b]=a;this.a.C[0][b]&=65295};g.oc=function(a){return this.a.C[3][a>>1&7]};g.ad=function(a,b){this.a.C[3][b>>1&7]=a&65295};g.mc=function(a){return this.a.C[3][(a>>1&7)+8]};g.Zc=function(a,b){this.a.C[3][(b>>1&7)+8]=a&65295};g.nc=function(a){return this.a.S[3][a>>1&7]}; -g.$c=function(a,b){b=b>>1&7;this.a.S[3][b]=a;this.a.C[3][b]&=65295};g.lc=function(a){return this.a.S[3][(a>>1&7)+8]};g.Yc=function(a,b){b=(b>>1&7)+8;this.a.S[3][b]=a;this.a.C[3][b]&=65295};g.wa=function(a){a&=7;return this.a.w&2048?this.a.ua[a]:this.a.f[a]};g.ya=function(a,b){b&=7;this.a.w&2048?this.a.ua[b]=a:this.a.f[b]=a};g.$b=function(){return this.a.w&49152?this.a.aa[0]:this.a.f[6]};g.Mc=function(a){this.a.w&49152?this.a.aa[0]=a:this.a.f[6]=a};g.cc=function(){return this.a.f[7]}; +g.Tb=function(){var a=this.a.oa;a&65280&&(a=(a<<8|a>>8)&65535);return a};g.Ub=function(){return this.a.gb};g.Vb=function(){return this.a.pa};g.Hc=function(a){var b=this.a;1170>b.Ga&&(a&=-49);b.pa!=a&&(b.pa=a,a&16?(b.$a=4194303,b.Ka=3915776):(b.$a=262143,b.Ka=253952),Ab(b));Bb(this)};function Bb(a){a.c.Sa=a.c.Sa&-8|(a.a.Ea?a.a.pa&16?1:2:4)}g.ic=function(a){return this.a.D[1][a>>1&7]};g.Vc=function(a,b){this.a.D[1][b>>1&7]=a&65295};g.gc=function(a){return this.a.D[1][(a>>1&7)+8]}; +g.Tc=function(a,b){this.a.D[1][(b>>1&7)+8]=a&65295};g.hc=function(a){return this.a.S[1][a>>1&7]};g.Uc=function(a,b){b=b>>1&7;this.a.S[1][b]=a;this.a.D[1][b]&=65295};g.fc=function(a){return this.a.S[1][(a>>1&7)+8]};g.Sc=function(a,b){b=(b>>1&7)+8;this.a.S[1][b]=a;this.a.D[1][b]&=65295};g.Pb=function(a){return this.a.D[0][a>>1&7]};g.Dc=function(a,b){this.a.D[0][b>>1&7]=a&65295};g.Nb=function(a){return this.a.D[0][(a>>1&7)+8]};g.Bc=function(a,b){this.a.D[0][(b>>1&7)+8]=a&65295}; +g.Ob=function(a){return this.a.S[0][a>>1&7]};g.Cc=function(a,b){b=b>>1&7;this.a.S[0][b]=a;this.a.D[0][b]&=65295};g.Mb=function(a){return this.a.S[0][(a>>1&7)+8]};g.Ac=function(a,b){b=(b>>1&7)+8;this.a.S[0][b]=a;this.a.D[0][b]&=65295};g.oc=function(a){return this.a.D[3][a>>1&7]};g.ad=function(a,b){this.a.D[3][b>>1&7]=a&65295};g.mc=function(a){return this.a.D[3][(a>>1&7)+8]};g.Zc=function(a,b){this.a.D[3][(b>>1&7)+8]=a&65295};g.nc=function(a){return this.a.S[3][a>>1&7]}; +g.$c=function(a,b){b=b>>1&7;this.a.S[3][b]=a;this.a.D[3][b]&=65295};g.lc=function(a){return this.a.S[3][(a>>1&7)+8]};g.Yc=function(a,b){b=(b>>1&7)+8;this.a.S[3][b]=a;this.a.D[3][b]&=65295};g.wa=function(a){a&=7;return this.a.w&2048?this.a.ua[a]:this.a.f[a]};g.ya=function(a,b){b&=7;this.a.w&2048?this.a.ua[b]=a:this.a.f[b]=a};g.$b=function(){return this.a.w&49152?this.a.aa[0]:this.a.f[6]};g.Mc=function(a){this.a.w&49152?this.a.aa[0]=a:this.a.f[6]=a};g.cc=function(){return this.a.f[7]}; g.Pc=function(a){this.a.f[7]=a};g.xa=function(a){a&=7;return this.a.w&2048?this.a.f[a]:this.a.ua[a]};g.za=function(a,b){b&=7;this.a.w&2048?this.a.f[b]=a:this.a.ua[b]=a};g.ac=function(){return 1==(this.a.w&49152)>>14?this.a.f[6]:this.a.aa[1]};g.Nc=function(a){1==(this.a.w&49152)>>14?this.a.f[6]=a:this.a.aa[1]=a};g.bc=function(){return 3==(this.a.w&49152)>>14?this.a.f[6]:this.a.aa[3]};g.Oc=function(a){3==(this.a.w&49152)>>14?this.a.f[6]=a:this.a.aa[3]=a};g.Lb=function(a){return this.a.vb[a-65504>>1]}; -g.zc=function(a,b){this.a.vb[b-65504>>1]=a};g.tb=function(a){return 65520==a?61183:0};g.Ab=function(){};g.kc=function(){return 1};g.Xc=function(){};g.Kb=function(){return this.a.F};g.yc=function(){this.a.F=0};g.Rb=function(){return this.a.ub};g.Fc=function(a,b){b&1||(a&=255);this.a.ub=a};g.Wb=function(a){return a?this.a.hb:0};g.Ic=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.hb=a;b.l|=2};g.jc=function(a){return a?this.a.qa&65280:0};g.Wc=function(a){this.a.qa=a|255}; +g.zc=function(a,b){this.a.vb[b-65504>>1]=a};g.tb=function(a){return 65520==a?61183:0};g.Ab=function(){};g.kc=function(){return 1};g.Xc=function(){};g.Kb=function(){return this.a.G};g.yc=function(){this.a.G=0};g.Rb=function(){return this.a.ub};g.Fc=function(a,b){b&1||(a&=255);this.a.ub=a};g.Wb=function(a){return a?this.a.hb:0};g.Ic=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.hb=a;b.l|=2};g.jc=function(a){return a?this.a.qa&65280:0};g.Wc=function(a){this.a.qa=a|255}; g.Zb=function(){return Za(this.a)};g.Lc=function(a){Cb(this.a,a&-1809|Za(this.a)&1808);this.a.l|=128};g.zb=function(){}; var I={},H=(I[62592]=[null,null,G.prototype.ic,G.prototype.Vc,"SISDR",1145],I[62608]=[null,null,G.prototype.gc,G.prototype.Tc,"SDSDR",1145],I[62624]=[null,null,G.prototype.hc,G.prototype.Uc,"SISAR",1145],I[62640]=[null,null,G.prototype.fc,G.prototype.Sc,"SDSAR",1145],I[62656]=[null,null,G.prototype.Pb,G.prototype.Dc,"KISDR",1145],I[62672]=[null,null,G.prototype.Nb,G.prototype.Bc,"KDSDR",1145],I[62688]=[null,null,G.prototype.Ob,G.prototype.Cc,"KISAR",1145],I[62704]=[null,null,G.prototype.Mb,G.prototype.Ac, "KDSAR",1145],I[62798]=[null,null,G.prototype.Vb,G.prototype.Hc,"MMR3",1145],I[65382]=[null,null,G.prototype.Qb,G.prototype.Ec,"LKS"],I[65400]=[null,null,G.prototype.Jb,G.prototype.xc,"CNSL"],I[65402]=[null,null,G.prototype.Sb,G.prototype.Gc,"MMR0",1145],I[65404]=[null,null,G.prototype.Tb,G.prototype.zb,"MMR1",1145],I[65406]=[null,null,G.prototype.Ub,G.prototype.zb,"MMR2",1145],I[65408]=[null,null,G.prototype.oc,G.prototype.ad,"UISDR",1145],I[65424]=[null,null,G.prototype.mc,G.prototype.Zc,"UDSDR", @@ -83,33 +83,33 @@ if(Ta){var Eb=new ArrayBuffer(2);(new DataView(Eb)).setUint16(0,256,!0);Db=256== function E(a,b,c,d,e,f){this.m=a;this.id=Gb+=2;this.a=null;this.Ca=b;this.Ua=c;this.size=d||0;this.type=e||Hb;this.g=e==Ib;this.controller=null;eb(this);this.la=this.Db=!1;if(d)if(f)this.controller=f,this.a=null,Jb(this,f.Bb);else if(Ta)this.b=new ArrayBuffer(d),this.s=new DataView(this.b,0,d),this.c=new Uint8Array(this.b,0,d),this.o=new Uint16Array(this.b,0,d>>1),this.a=new Int32Array(this.b,0,d>>2),Jb(this,Fb?Kb:Lb);else{this.a=Array(d>>2);for(a=0;a>2),b=0;b>8,c)},N:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ba:function(a,b){a&1&&vb(this.m,b);b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},ha:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.la=!0},I:function(a,b){return this.J(a,b)}, -T:function(a,b){return this.W(a,b)},da:function(a,b,c){this.g||this.yb(a,b,c)},ja:function(a,b,c){this.g||this.ra(a,b,c)},D:function(a){return this.c[a]},K:function(a){return this.c[a]},O:function(a,b){a&1&&vb(this.m,b);return this.s.getUint16(a,!0)},X:function(a,b){a&1&&vb(this.m,b);return this.o[a>>1]},ca:function(a,b){this.c[a]=b;this.la=!0},ga:function(a,b){this.c[a]=b;this.la=!0},ia:function(a,b,c){a&1&&vb(this.m,c);this.s.setUint16(a,b,!0);this.la=!0},sa:function(a,b,c){a&1&&vb(this.m,c);this.o[a>> -1]=b;this.la=!0}};function eb(a,b,c){a.G=b;a.h=a.j=0;c&&((a.h=c.h)&&Nb(a,Ob,!1),(a.j=c.j)&&Pb(a,Ob,!1))}function Pb(a,b,c){c&&a.j||(a.jb=!a.g&&b[1]||a.A,a.Va=!a.g&&b[3]||a.B);if(c||void 0===c)a.yb=b[1]||a.A,a.ra=b[3]||a.B}function Nb(a,b,c){c&&a.h||(a.eb=b[0]||a.v,a.R=b[2]||a.u);if(c||void 0===c)a.J=b[0]||a.v,a.W=b[2]||a.u}function Jb(a,b){b||(b=Qb);Nb(a,b,void 0);Pb(a,b,void 0)} -var Qb=[],Mb=[E.prototype.N,E.prototype.ha,E.prototype.ba,E.prototype.ta],Ob=[E.prototype.I,E.prototype.da,E.prototype.T,E.prototype.ja];if(Ta)var Lb=[E.prototype.D,E.prototype.ca,E.prototype.O,E.prototype.ia],Kb=[E.prototype.K,E.prototype.ga,E.prototype.X,E.prototype.sa]; -function Rb(a,b){u.call(this,"CPU",a,Rb);var c=a.multiplier||1;this.Pa=a.cycles||b;this.da=c;this.Za=Math.round(this.Pa/1E4)/100;this.ga=this.Za*this.da;this.i.U=!1;this.i.wb=!1;this.i.Da=a.autoStart;this.i.Oa=!1;this.Ma=this.ia=0;this.Na=a.csStart;this.sa=a.csInterval;this.ta=a.csStop;this.I=[];this.sb=this.tc.bind(this);B(this)}w(Rb);var Sb=["power","reset"];g=Rb.prototype; -g.ea=function(a,b,c,d){this.v=a;this.m=b;this.G=d;for(b=0;b>8,c)},N:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ba:function(a,b){a&1&&vb(this.m,b);b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},ha:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.la=!0},H:function(a,b){return this.J(a,b)}, +T:function(a,b){return this.W(a,b)},da:function(a,b,c){this.g||this.yb(a,b,c)},ja:function(a,b,c){this.g||this.ra(a,b,c)},C:function(a){return this.c[a]},K:function(a){return this.c[a]},O:function(a,b){a&1&&vb(this.m,b);return this.s.getUint16(a,!0)},X:function(a,b){a&1&&vb(this.m,b);return this.o[a>>1]},ca:function(a,b){this.c[a]=b;this.la=!0},ga:function(a,b){this.c[a]=b;this.la=!0},ia:function(a,b,c){a&1&&vb(this.m,c);this.s.setUint16(a,b,!0);this.la=!0},sa:function(a,b,c){a&1&&vb(this.m,c);this.o[a>> +1]=b;this.la=!0}};function eb(a,b,c){a.F=b;a.h=a.j=0;c&&((a.h=c.h)&&Nb(a,Ob,!1),(a.j=c.j)&&Pb(a,Ob,!1))}function Pb(a,b,c){c&&a.j||(a.jb=!a.g&&b[1]||a.A,a.Va=!a.g&&b[3]||a.B);if(c||void 0===c)a.yb=b[1]||a.A,a.ra=b[3]||a.B}function Nb(a,b,c){c&&a.h||(a.eb=b[0]||a.v,a.R=b[2]||a.u);if(c||void 0===c)a.J=b[0]||a.v,a.W=b[2]||a.u}function Jb(a,b){b||(b=Qb);Nb(a,b,void 0);Pb(a,b,void 0)} +var Qb=[],Mb=[E.prototype.N,E.prototype.ha,E.prototype.ba,E.prototype.ta],Ob=[E.prototype.H,E.prototype.da,E.prototype.T,E.prototype.ja];if(Ta)var Lb=[E.prototype.C,E.prototype.ca,E.prototype.O,E.prototype.ia],Kb=[E.prototype.K,E.prototype.ga,E.prototype.X,E.prototype.sa]; +function Rb(a,b){u.call(this,"CPU",a,Rb);var c=a.multiplier||1;this.Pa=a.cycles||b;this.da=c;this.Za=Math.round(this.Pa/1E4)/100;this.ga=this.Za*this.da;this.i.U=!1;this.i.wb=!1;this.i.Da=a.autoStart;this.i.Oa=!1;this.Ma=this.ia=0;this.Na=a.csStart;this.sa=a.csInterval;this.ta=a.csStop;this.H=[];this.sb=this.tc.bind(this);B(this)}w(Rb);var Sb=["power","reset"];g=Rb.prototype; +g.ea=function(a,b,c,d){this.v=a;this.m=b;this.F=d;for(b=0;ba.ba/a.ga&&(b=1),a.da=b,b=a.Za*a.da,a.ga!=b)){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var c=a.s.setSpeed;c&&(c.textContent=b);a.P("target speed: "+b)}a.K+=a.W;a.W=0;a.O=sa();a.ca=0;Yb(a)}function wb(a,b){var c=a.I.length;a.I.push([-1,b]);return c}function yb(a,b,c){0<=b&&ba.I[b][0]&&(c=a.Pa*a.da/1E3*c|0,a.I[b][0]=c+$b(a))}function $b(a,b){var c=a.ha-=a.a;a.a=0;b&&(a.ha=0);return c} -g.tc=function(){if(this.i.U){this.ab>=this.Pa&&Yb(this,!0);this.Ba=0;this.La=sa();if(this.ca){var a=this.La-this.ca;a>this.qb&&(this.O+=a,this.O>this.La&&(this.O=this.La))}try{do{for(var b,c=this.i.Oa?1:this.Qa,d=this.I.length-1;0<=d;d--){var e=this.I[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.xb(b)}catch(n){if("number"!=typeof n)throw n;}b=$b(this,!0);this.Ba+=b;this.W+=b;a=b;if(this.i.Oa){var f=!1;this.Ma=this.Ma+this.mb()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.sa,f=!0);0<=this.ta&&this.ta<=Zb(this)&& -(this.sa=this.ta=-1,Vb(this),Xa(this),f=!0);f&&this.P(Zb(this)+" cycles: checksum="+ja(this.Ma))}for(var a=b,k=this.I.length-1;0<=k;k--){var l=this.I[k];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.Aa-=b;if(0>=this.Aa){this.Aa+=this.Qa;15<=++this.rb&&(this.v&&this.v.fa(),this.rb=0);break}}while(this.i.U)}catch(n){Xa(this);this.v&&this.v.stop(sa(),Zb(this));b=n.stack||n.message;this.i.error=!0;this.H(b);return}if(this.i.U){b=setTimeout;c=this.sb;this.ca=sa();d=this.qb;this.Ba&&(d=Math.round(d* +function Xb(a,b){if(void 0!==b&&(.8>a.ba/a.ga&&(b=1),a.da=b,b=a.Za*a.da,a.ga!=b)){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var c=a.s.setSpeed;c&&(c.textContent=b);a.P("target speed: "+b)}a.K+=a.W;a.W=0;a.O=sa();a.ca=0;Yb(a)}function wb(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function yb(a,b,c,d){0<=b&&ba.H[b][0])&&(c=a.Pa*a.da/1E3*c|0,a.H[b][0]=c+$b(a))}function $b(a,b){var c=a.ha-=a.a;a.a=0;b&&(a.ha=0);return c} +g.tc=function(){if(this.i.U){this.ab>=this.Pa&&Yb(this,!0);this.Ba=0;this.La=sa();if(this.ca){var a=this.La-this.ca;a>this.qb&&(this.O+=a,this.O>this.La&&(this.O=this.La))}try{do{for(var b,c=this.i.Oa?1:this.Qa,d=this.H.length-1;0<=d;d--){var e=this.H[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.xb(b)}catch(n){if("number"!=typeof n)throw n;}b=$b(this,!0);this.Ba+=b;this.W+=b;a=b;if(this.i.Oa){var f=!1;this.Ma=this.Ma+this.mb()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.sa,f=!0);0<=this.ta&&this.ta<=Zb(this)&& +(this.sa=this.ta=-1,Vb(this),Xa(this),f=!0);f&&this.P(Zb(this)+" cycles: checksum="+ja(this.Ma))}for(var a=b,k=this.H.length-1;0<=k;k--){var l=this.H[k];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.Aa-=b;if(0>=this.Aa){this.Aa+=this.Qa;15<=++this.rb&&(this.v&&this.v.fa(),this.rb=0);break}}while(this.i.U)}catch(n){Xa(this);this.v&&this.v.stop(sa(),Zb(this));b=n.stack||n.message;this.i.error=!0;this.I(b);return}if(this.i.U){b=setTimeout;c=this.sb;this.ca=sa();d=this.qb;this.Ba&&(d=Math.round(d* this.Ba/this.Qa));d-=this.ca-this.La;if(e=this.ca-this.O)this.ba=Math.round(this.W/(10*e))/100,864E5<=e&&(this.K=0,Xb(this));if(0>d||this.bad&&(this.O-=d),d=0;this.ab+=this.Ba;this.ca+=d;b(c,d)}}};function Wb(a){var b;a.i.error?(a.P(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.U)a.P(a.toString()+" busy");else{Xb(a);a.i.U=!0;a.i.wb=!0;if(b=a.s.run)b.textContent="Halt";a.v&&a.v.start(a.O,Zb(a));setTimeout(a.sb,0)}}g.xb=function(){return 0}; function Xa(a){if(a.i.U){$b(a);a.K+=a.W;a.W=0;a.i.U=!1;var b=a.s.run;b&&(b.textContent="Run");a.v&&a.v.stop(sa(),Zb(a))}a.i.complete=void 0}function ac(a){this.Ga=+a.model||1170;this.ob=a.addrReset||0;Rb.call(this,a,6666667);this.decode=1120==this.Ga?bc.bind(this):cc.bind(this);dc(this);this.T=0;this.X=null;this.i.complete=this.i.Cb=!1}w(ac,Rb);g=ac.prototype;g.reset=function(){this.status("model "+this.Ga);this.i.U&&Xa(this);dc(this);Ub(this);this.i.error=!1;this.parent.reset.call(this)}; -function dc(a){a.j=65536;a.g=32768;a.h=65535;a.o=32768;a.w=15;a.f=[0,0,0,0,0,0,0,a.ob];a.ua=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.u=0;a.Ja=0;a.Gb=[4,2,0,1];a.C=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.S=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.vb=[0,0,0,0,0,0,0,0];a.ub=0;a.l=0;a.B=a.D=0;a.c=a.b=a.Ya=0;a.ja=-1;ec(a)}function ec(a){a.qa=255;a.F=0;a.hb=0;a.A=0;a.oa=0;a.gb=0;a.pa=0;a.Ea=0;a.Ia=0;a.$a=262143;a.Ka=253952;a.l|=2;a.m&&Ab(a)}function Ab(a){a.Ea?(a.N=65536,a.J=a.Fb,a.R=a.qc,a.Va=a.cd,hb(a.m,a.pa&16?22:18)):(a.N=0,a.J=a.Eb,a.R=a.pc,a.Va=a.bd,hb(a.m,16))}g.mb=function(){return 0}; +function dc(a){a.j=65536;a.g=32768;a.h=65535;a.o=32768;a.w=15;a.f=[0,0,0,0,0,0,0,a.ob];a.ua=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.u=0;a.Ja=0;a.Gb=[4,2,0,1];a.D=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.S=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.vb=[0,0,0,0,0,0,0,0];a.ub=0;a.l=0;a.B=a.C=0;a.c=a.b=a.Ya=0;a.ja=-1;ec(a)}function ec(a){a.qa=255;a.G=0;a.hb=0;a.A=0;a.oa=0;a.gb=0;a.pa=0;a.Ea=0;a.Ia=0;a.$a=262143;a.Ka=253952;a.l|=2;a.m&&Ab(a)}function Ab(a){a.Ea?(a.N=65536,a.J=a.Fb,a.R=a.qc,a.Va=a.cd,hb(a.m,a.pa&16?22:18)):(a.N=0,a.J=a.Eb,a.R=a.pc,a.Va=a.bd,hb(a.m,16))}g.mb=function(){return 0}; g.save=function(){var a=new K(this);a.set(0,[]);a.set(1,[this.K,this.da]);a.set(2,rb(this.m));return a.data()};g.restore=function(a){var b=a[1];this.K=b[1];Xb(this,b[3]);a:{b=this.m;a=a[2];var c;for(c=0;c>14&3;c=a.w>>14&3;a.u!=c&&(a.aa[c]=a.f[6],a.f[6]=a.aa[a.u]);a.w=b;a.l|=2}function N(a,b){a.l&128||(a.o=a.h=b,a.g=0)}function O(a,b,c){a.l&128||(a.o=a.h=a.j=b,a.g=c||0)}function hc(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^b)&(d^b))}function P(a,b){a.l&128||(a.o=a.h=a.j=b,a.g=a.o^a.j>>1)}function ic(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^d)&(d^b))} -function F(a,b,c){if(!a.T){var d=!1;0>a.ja?a.ja=Za(a):a.u||(b=4,d=!0);a.A&57344||(a.oa=63222,a.gb=b);a.u=0;var e=a.R(b|a.N),f=a.R(b+2&65535|a.N);Cb(a,f&-12289|a.ja>>2&12288);d&&(a.F|=4,a.f[6]=4);jc(a,a.ja);jc(a,a.f[7]);M(a,e);a.l&=-113;a.ja=-1;if(26!=c)throw b;}}function kc(a){var b=lc(a),c=lc(a)&-1793;a.w&49152&&(c=c&-225|a.w&63712);M(a,b);Cb(a,c);a.l&=-17} -function mc(a,b,c){var d,e,f,k=0;d=b>>13;a.pa&a.Gb[a.u]||(d&=7);e=a.C[a.u][d];f=(a.S[a.u][d]<<6)+(b&8191)&a.$a;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.pa&32&&(f=a.Ib[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Ka&&4186112>f&&(a.F|=32,F(a,4,12))}switch(e&7){case 1:k=4096;case 2:e|=128;c&4&&(k=8192);break;case 4:k=4096;case 5:c&4&&(k=4096);case 6:e|=c&4?192: -128;break;default:k=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(k|=16384):(b&8128)>(e>>2&8128)&&(k|=16384));a.C[a.u][d]=e;if(4194170!==f||a.u)a.Ia=a.u,a.Ja=d;k&&(k&57344&&(0<=a.ja&&(k|=128),a.A&57344||(a.A=a.A|k|a.Ia<<5|a.Ja<<1),F(a,168,16)),a.A&61440||!(4191360>f||4194239>>a.m].jb(b&a.g,c&255,b)}function lc(a){var b=a.R(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b} -function jc(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.oa=a.oa<<8|246);!a.u&&c<=a.qa&&4c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=k);e=a.R(e);e|=k;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.f[c]+f&65535;7!==c&&(e|=k);a.a-=4;break;case 5:f=-2;e=a.f[c]-2&65535;7!==c&&(e|=k);e=a.R(e)|k;a.a-= -8;break;case 6:return e=a.R(gc(a,2)),e=e+a.f[c]&65535|k,a.a-=6,e;case 7:return e=a.R(gc(a,2)),e=e+a.f[c]&65535,e=a.R(e|a.N)|k,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!k||a.A&57344||(a.oa=a.oa<<8|f<<3&248|c);6==c&&!a.u&&d&4&&0>=f&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32?(a.F|=4,a.f[6]=4,F(a,4,24)):(a.F|=8,a.l|=64));return e}g.Ta=function(a,b){this.Ea?(this.T++,nc(this,mc(this,a,5),b),this.T--):this.m.Ta(a,b)};g.Eb=function(a,b,c){return oc(this,a,b,c)}; +function F(a,b,c){if(!a.T){var d=!1;0>a.ja?a.ja=Za(a):a.u||(b=4,d=!0);a.A&57344||(a.oa=63222,a.gb=b);a.u=0;var e=a.R(b|a.N),f=a.R(b+2&65535|a.N);Cb(a,f&-12289|a.ja>>2&12288);d&&(a.G|=4,a.f[6]=4);jc(a,a.ja);jc(a,a.f[7]);M(a,e);a.l&=-113;a.ja=-1;if(26!=c)throw b;}}function kc(a){var b=lc(a),c=lc(a)&-1793;a.w&49152&&(c=c&-225|a.w&63712);M(a,b);Cb(a,c);a.l&=-17} +function mc(a,b,c){var d,e,f,k=0;d=b>>13;a.pa&a.Gb[a.u]||(d&=7);e=a.D[a.u][d];f=(a.S[a.u][d]<<6)+(b&8191)&a.$a;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.pa&32&&(f=a.Ib[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Ka&&4186112>f&&(a.G|=32,F(a,4,12))}switch(e&7){case 1:k=4096;case 2:e|=128;c&4&&(k=8192);break;case 4:k=4096;case 5:c&4&&(k=4096);case 6:e|=c&4?192: +128;break;default:k=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(k|=16384):(b&8128)>(e>>2&8128)&&(k|=16384));a.D[a.u][d]=e;if(4194170!==f||a.u)a.Ia=a.u,a.Ja=d;k&&(k&57344&&(0<=a.ja&&(k|=128),a.A&57344||(a.A=a.A|k|a.Ia<<5|a.Ja<<1),F(a,168,16)),a.A&61440||!(4191360>f||4194239>>a.m].jb(b&a.g,c&255,b)}function lc(a){var b=a.R(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b} +function jc(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.oa=a.oa<<8|246);!a.u&&c<=a.qa&&4c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=k);e=a.R(e);e|=k;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.f[c]+f&65535;7!==c&&(e|=k);a.a-=4;break;case 5:f=-2;e=a.f[c]-2&65535;7!==c&&(e|=k);e=a.R(e)|k;a.a-= +8;break;case 6:return e=a.R(gc(a,2)),e=e+a.f[c]&65535|k,a.a-=6,e;case 7:return e=a.R(gc(a,2)),e=e+a.f[c]&65535,e=a.R(e|a.N)|k,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!k||a.A&57344||(a.oa=a.oa<<8|f<<3&248|c);6==c&&!a.u&&d&4&&0>=f&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32?(a.G|=4,a.f[6]=4,F(a,4,24)):(a.G|=8,a.l|=64));return e}g.Ta=function(a,b){this.Ea?(this.T++,nc(this,mc(this,a,5),b),this.T--):this.m.Ta(a,b)};g.Eb=function(a,b,c){return oc(this,a,b,c)}; g.Fb=function(a,b,c){return mc(this,oc(this,a,b,c),c)};g.pc=function(a){return pb(this.m,a)};g.qc=function(a){return pb(this.m,mc(this,a,2))};g.bd=function(a,b){qb(this.m,a,b&65535)};g.cd=function(a,b){qb(this.m,mc(this,a,4),b)};function pc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=oc(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.u=a.w>>12&3,c=a.R(d|c&a.N),a.u=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.f[d]:a.aa[a.w>>12&3];return c} -function qc(a,b,c,d){a.A&57344||(a.oa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=oc(a,b,e,4),c&65536||(e&=65535),a.u=a.w>>12&3,e=mc(a,e|c&65536,4),a.u=a.w>>14&3,qb(a.m,e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.f[e]=d:a.aa[a.w>>12&3]=d}function rc(a,b){b>>=6;var c=a.D=b&7;(b=a.B=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function Q(a,b){b>>=6;var c=a.D=b&7;return(b=a.B=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function sc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return oc(a,b,c,8)} +function qc(a,b,c,d){a.A&57344||(a.oa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=oc(a,b,e,4),c&65536||(e&=65535),a.u=a.w>>12&3,e=mc(a,e|c&65536,4),a.u=a.w>>14&3,qb(a.m,e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.f[e]=d:a.aa[a.w>>12&3]=d}function rc(a,b){b>>=6;var c=a.C=b&7;(b=a.B=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function Q(a,b){b>>=6;var c=a.C=b&7;return(b=a.B=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function sc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return oc(a,b,c,8)} function tc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function uc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function R(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.Ya=a.J(b,e,7),nc(a,e,d.call(a,c,ob(a.m,e)))):a.f[e]=a.f[e]&65280|d.call(a,c,a.f[e])}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.J(b,e,6),qb(a.m,e,d.call(a,c,pb(a.m,e)))):a.f[e]=d.call(a,c,a.f[e])} function vc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?nc(a,a.J(b,e,5),c):a.f[e]=c?d&1?c<<24>>24&65535:a.f[e]&-256|c&255:a.f[e]&-256;return c}function wc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?qb(a.m,a.J(b,d,4),c):a.f[d]=c&65535;return c}function T(a,b,c){c&&(M(a,a.f[7]+(b<<24>>23)),a.a-=2);a.a-=3} g.xb=function(a){this.i.complete=!0;this.i.Cb=!1;this.i.wb=!1;this.ha=this.a=a;do{if(this.l&&(this.l&112&&(this.l&32?F(this,168,28):this.l&64?F(this,4,30):this.l&16&&F(this,12,32),this.l&=-113),this.l&7))if(this.l&2){this.l&=-3;var b=160,c=(this.hb&224)>>5;if(a=this.X&&this.X.va>c?this.X:null)b=a.wc,c=a.va;c>(this.w&224)>>5?(this.l&4&&(gc(this,2),this.l&=-5),F(this,b,26),c=!0):c=!1;if(c&&a)if(c=this.X,c==a)this.X=a.next;else for(;c;){b=c.next;if(b==a){c.next=b.next;break}c=b}}else this.l&1&&this.l++; @@ -117,77 +117,78 @@ this.l=this.l&7|this.w&16;this.decode(fc(this))}while(0>1|b<<16;P(this,a);return a&65535}function Cc(a,b){a=b&2048|b>>1|b<<8;P(this,a<<8);return a&255}function Dc(a,b){a=b&~a;N(this,a);return a}function Ec(a,b){a=b&~a;N(this,a<<8);return a}function Fc(a,b){a|=b;N(this,a);return a}function Gc(a,b){a|=b;N(this,a<<8);return a}function Hc(a,b){a=~b|65536;O(this,a);return a&65535}function Ic(a,b){a=~b|256;O(this,a<<8);return a&255}function Jc(a,b){a=b-a;this.l&128||(this.o=this.h=a,this.g=b&(b^a));return a&65535} function Kc(a,b){a=b-a;var c=a<<8;b<<=8;this.l&128||(this.o=this.h=c,this.g=b&(b^c));return a&255}function Lc(a,b){a=b+a;this.l&128||(this.o=this.h=a,this.g=a&(b^a));return a&65535}function Mc(a,b){a=b+a;var c=a<<8;this.l&128||(this.o=this.h=c,this.g=c&(b<<8^c));return a&255}function Nc(a,b){a=-b;O(this,a,a&b&32768);return a&65535}function Oc(a,b){a=-b;O(this,a<<8,(a&b&128)<<8);return a&255}function Pc(a,b){a=b<<1|this.j>>16&1;P(this,a);return a&65535} function Qc(a,b){a=b<<1|this.j>>16&1;P(this,a<<8);return a&255}function Rc(a,b){a=(this.j&65536|b)>>1|b<<16;P(this,a);return a&65535}function Sc(a,b){a=((this.j&65536)>>8|b)>>1|b<<8;P(this,a<<8);return a&255}function Tc(a,b){var c=b-a;ic(this,c,a,b);return c&65535}function Uc(a,b){var c=b-a;ic(this,c<<8,a<<8,b<<8);return c&255}function Vc(a,b){this.l&128||(this.o=this.h=b&65280,this.g=this.j=0);return(b<<8|b>>8)&65535}function Wc(a,b){a^=b;N(this,a);return a&65535} -function Xc(a){S(this,a,Q(this,a),xc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Yc(a){var b=uc(this,a);a=a>>6&7;var c=this.f[a];c&32768&&(c|=4294901760);this.j=this.g=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.g=32768)}this.f[a]=c&65535;this.o=this.h=c;this.a-=(this.c?6:7)+b} +function Xc(a){S(this,a,Q(this,a),xc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Yc(a){var b=uc(this,a);a=a>>6&7;var c=this.f[a];c&32768&&(c|=4294901760);this.j=this.g=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.g=32768)}this.f[a]=c&65535;this.o=this.h=c;this.a-=(this.c?6:7)+b} function Zc(a){var b=uc(this,a);a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&=63;if(b&32){b=64-b;32>b-1;this.j=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.f[a|1]=d&65535;this.o=d>>16;this.h=d>>16|d;this.a-=(this.c?6:7)+b}function $c(a){T(this,a,!L(this))}function ad(a){T(this,a,L(this))} -function bd(a){S(this,a,Q(this,a),Dc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function cd(a){R(this,a,rc(this,a),Ec);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function dd(a){S(this,a,Q(this,a),Fc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function ed(a){R(this,a,rc(this,a),Gc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} -function fd(a){N(this,Q(this,a)&uc(this,a));this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function gd(a){N(this,(rc(this,a)&tc(this,a))<<8);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function hd(a){T(this,a,this.h&65535?0:4)}function id(a){T(this,a,!this.ma()==!(this.g&32768))}function jd(a){T(this,a,!!(this.h&65535)&&!this.ma()==!(this.g&32768))}function kd(a){T(this,a,!L(this)&&!!(this.h&65535))} +function bd(a){S(this,a,Q(this,a),Dc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function cd(a){R(this,a,rc(this,a),Ec);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function dd(a){S(this,a,Q(this,a),Fc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function ed(a){R(this,a,rc(this,a),Gc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} +function fd(a){N(this,Q(this,a)&uc(this,a));this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function gd(a){N(this,(rc(this,a)&tc(this,a))<<8);this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function hd(a){T(this,a,this.h&65535?0:4)}function id(a){T(this,a,!this.ma()==!(this.g&32768))}function jd(a){T(this,a,!!(this.h&65535)&&!this.ma()==!(this.g&32768))}function kd(a){T(this,a,!L(this)&&!!(this.h&65535))} function ld(a){T(this,a,(this.h&65535?0:4)||!this.ma()!=!(this.g&32768))}function md(a){T(this,a,L(this)||(this.h&65535?0:4))}function nd(a){T(this,a,!this.ma()!=!(this.g&32768))}function od(a){T(this,a,this.ma())}function pd(a){T(this,a,!!(this.h&65535))}function qd(a){T(this,a,!this.ma())}function rd(){F(this,12,1);this.a-=5}function sd(a){T(this,a,!0)}function td(a){T(this,a,!(this.g&32768))}function ud(a){T(this,a,this.g&32768?2:0)} -function U(a){a&1&&(this.j=0);a&2&&(this.g=0);a&4&&(this.h=1);a&8&&(this.o=0);this.a-=5}function vd(a){var b=Q(this,a);a=uc(this,a);ic(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function wd(a){var b=rc(this,a)<<8;a=tc(this,a)<<8;ic(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)} -function xd(a){var b=uc(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.f[a]=d&65535,this.f[a|1]=c-d*b&65535,this.h=d>>16|d,this.o=d>>16):(this.g=32768,this.h=d>>15|d,this.o=c>>16,-1===b&&65534===this.f[a]&&(this.f[a]=this.f[a|1]=1));this.a-=53}else this.h=this.o=0,this.g=32768,this.j=65536,this.a-=7}function yd(){F(this,24,2);this.a-=25}function zd(){this.w&49152?(this.F|=128,F(this,4,3)):Xa(this);this.a-=7} -function Ad(){F(this,16,4);this.a-=25}var Bd=[0,7,7,10,7,11,9,13];function V(a){var b=this.a;M(this,sc(this,a));this.a=b-Bd[this.c]}var Cd=[0,14,14,17,14,18,16,20];function Dd(a){var b=this.a,c=sc(this,a);a=a>>6&7;jc(this,this.f[a]);this.f[a]=this.f[7];M(this,c);this.a=b-Cd[this.c]}var Ed=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Fd(a){var b=Q(this,a),c=this.a;N(this,wc(this,a,b));this.a=c-Ed[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)} -function Gd(a){var b=rc(this,a);N(this,vc(this,a,b,1)<<8);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Hd=[7,13,13,17,14,18,17,21];function Id(a){var b=uc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.l&128||(this.o=b>>16,this.h=this.o|b,this.g=0,this.j=-32768>b||32767>6;if(this.f[b]=this.f[b]-1&65535)M(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Od(a){S(this,a,Q(this,a),Tc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} -function X(a){S(this,a,0,Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Pd(){F(this,28,5);this.a-=5}function Qd(){this.l&4||this.v.fa();this.l|=4;gc(this,-2);this.a-=3}function Rd(a){S(this,a,Q(this,a),Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){F(this,8,6)}function bc(a){Sd[a>>12].call(this,a)}function Td(a){Ud[a>>6&3].call(this,a)}function Wd(a){Xd[a>>6&3].call(this,a)}function Yd(a){Zd[a>>6&3].call(this,a)}function $d(a){ae[a&15].call(this,a)}function be(a){ce[a&15].call(this,a)} -function de(a){ee[a>>6&3].call(this,a)}function fe(a){ge[a>>6&3].call(this,a)}function he(a){ie[a>>6&3].call(this,a)} -var Sd=[function(a){je[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,Y,function(a){ke[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],je=[function(a){le[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Td,Wd,Yd,Y,Y,Y],Ud=[function(a){O(this,wc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],Xd=[function(a){S(this,a,0,Nc); +function U(a){a&1&&(this.j=0);a&2&&(this.g=0);a&4&&(this.h=1);a&8&&(this.o=0);this.a-=5}function vd(a){var b=Q(this,a);a=uc(this,a);ic(this,b-a,a,b);this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function wd(a){var b=rc(this,a)<<8;a=tc(this,a)<<8;ic(this,b-a,a,b);this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)} +function xd(a){var b=uc(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.f[a]=d&65535,this.f[a|1]=c-d*b&65535,this.h=d>>16|d,this.o=d>>16):(this.g=32768,this.h=d>>15|d,this.o=c>>16,-1===b&&65534===this.f[a]&&(this.f[a]=this.f[a|1]=1));this.a-=53}else this.h=this.o=0,this.g=32768,this.j=65536,this.a-=7}function yd(){F(this,24,2);this.a-=25} +function zd(){this.w&49152?(this.G|=128,F(this,4,3)):this.F?this.F.c():Xa(this);this.a-=7}function Ad(){F(this,16,4);this.a-=25}var Bd=[0,7,7,10,7,11,9,13];function V(a){var b=this.a;M(this,sc(this,a));this.a=b-Bd[this.c]}var Cd=[0,14,14,17,14,18,16,20];function Dd(a){var b=this.a,c=sc(this,a);a=a>>6&7;jc(this,this.f[a]);this.f[a]=this.f[7];M(this,c);this.a=b-Cd[this.c]}var Ed=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17]; +function Fd(a){var b=Q(this,a),c=this.a;N(this,wc(this,a,b));this.a=c-Ed[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)}function Gd(a){var b=rc(this,a);N(this,vc(this,a,b,1)<<8);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Hd=[7,13,13,17,14,18,17,21]; +function Id(a){var b=uc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.l&128||(this.o=b>>16,this.h=this.o|b,this.g=0,this.j=-32768>b||32767>6;if(this.f[b]=this.f[b]-1&65535)M(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Od(a){S(this,a,Q(this,a),Tc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function X(a){S(this,a,0,Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Pd(){F(this,28,5);this.a-=5}function Qd(){this.l&4||this.v.fa();this.l|=4;gc(this,-2);this.a-=3} +function Rd(a){S(this,a,Q(this,a),Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){F(this,8,6)}function bc(a){Sd[a>>12].call(this,a)}function Td(a){Ud[a>>6&3].call(this,a)}function Vd(a){Xd[a>>6&3].call(this,a)}function Yd(a){Zd[a>>6&3].call(this,a)}function $d(a){ae[a&15].call(this,a)}function be(a){ce[a&15].call(this,a)}function de(a){ee[a>>6&3].call(this,a)}function fe(a){ge[a>>6&3].call(this,a)}function he(a){ie[a>>6&3].call(this,a)} +var Sd=[function(a){je[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,Y,function(a){ke[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],je=[function(a){le[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Td,Vd,Yd,Y,Y,Y],Ud=[function(a){O(this,wc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],Xd=[function(a){S(this,a,0,Nc); this.a-=this.c?11:6},function(a){S(this,a,L(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,L(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=uc(this,a);O(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Zd=[function(a){S(this,a,0,Rc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Bc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}],le=[function(a){me[a& 15].call(this,a)},Y,Y,Y,V,V,V,V,Md,Y,$d,be,X,X,X,X],me=[zd,Qd,Ld,rd,Ad,Kd,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],ae=[Jd,function(){this.j=0;this.a-=5},function(){this.g=0;this.a-=5},U,function(){this.h=1;this.a-=5},U,U,U,function(){this.o=0;this.a-=5},U,U,U,U,U,U,U],ce=[Jd,function(){this.j=65536;this.a-=5},function(){this.g=32768;this.a-=5},W,function(){this.h=0;this.a-=5},W,W,W,function(){this.o=32768;this.a-=5},W,W,W,W,W,W,W],ke=[qd,od,kd,md,td,ud,$c,ad,yd,Pd,de,fe,he,Y,Y,Y],ee=[function(a){O(this,vc(this,a,0)); this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Ic);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Mc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)}],ge=[function(a){R(this,a,0,Oc);this.a-=this.c?11:6},function(a){R(this,a,L(this)?1:0,yc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,L(this)?1:0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=tc(this,a);O(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}],ie= [function(a){R(this,a,0,Sc);this.a-=this.c?9+(this.Ya&1):3+(7==this.b?2:0)},function(a){R(this,a,0,Qc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Cc);this.a-=this.c?9+(this.Ya&1):3+(7==this.b?2:0)},function(a){R(this,a,0,Ac);this.a-=this.c?9:3+(7==this.b?2:0)}];function cc(a){ne[a>>12].call(this,a)} -var ne=[function(a){oe[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,function(a){pe[a>>8&15].call(this,a)},function(a){qe[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],oe=[function(a){re[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Td,Wd,Yd,function(a){se[a>>6&3].call(this,a)},Y,Y],se=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.R(a|this.N);M(this,this.f[5]);this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=pc(this,a,0);jc(this,a);N(this,a);this.a-=11},function(a){var b=lc(this),c=this.a; +var ne=[function(a){oe[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,function(a){pe[a>>8&15].call(this,a)},function(a){qe[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],oe=[function(a){re[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Td,Vd,Yd,function(a){se[a>>6&3].call(this,a)},Y,Y],se=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.R(a|this.N);M(this,this.f[5]);this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=pc(this,a,0);jc(this,a);N(this,a);this.a-=11},function(a){var b=lc(this),c=this.a; qc(this,a,0,b);N(this,b);this.a=c-Hd[this.c]},function(a){N(this,wc(this,a,this.ma?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],re=[function(a){te[a&15].call(this,a)},Y,Y,Y,V,V,V,V,Md,function(a){a&8?(this.w&49152||(this.w=this.w&-2017|(a&7)<<5,this.l|=1),this.a-=5):F(this,8,6)},$d,be,X,X,X,X],te=[zd,Qd,Ld,rd,Ad,Kd,function(){kc(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],pe=[Id,Id,xd,xd,Yc,Yc,Zc,Zc,Rd,Rd,Y,Y,Y,Y,Nd,Nd],qe=[qd,od,kd,md,td,ud,$c,ad,yd,Pd,de,fe,he,function(a){ue[a>>6&3].call(this,a)},Y, Y],ue=[Y,function(a){a=pc(this,a,65536);jc(this,a);N(this,a);this.a-=11},function(a){var b=lc(this),c=this.a;qc(this,a,65536,b);N(this,b);this.a=c-Hd[this.c]},Y]; -function ve(a){u.call(this,"ROM",a,ve);this.Y=this.b=null;this.j=a.addr;this.c=a.size;this.h=a.alias;this.g=a.file;this.o=ka(this.g);if(this.g){a=this.g;var b=la(this.o);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;h(a,null,!0,function(a,b,f){f?c.H("Unable to load ROM resource (error "+f+": "+a+")"):(Pa(c.ra,a,b),(a=ua(a,b))?(c.b=a.M,c.Y=a.Y):c.g=null,we(c))})}}w(ve);ve.prototype.ea=function(a,b,c,d){this.m=b;this.a=c;this.G=d;we(this)}; -ve.prototype.$=function(){this.Y&&(this.G&&this.G.a(this.id,this.j,this.c,this.Y),delete this.Y);return!0};ve.prototype.Z=function(){return!0}; -function we(a){if(!Sa(a)){if(a.g){if(!a.b||!a.m)return;a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+ja(a.b.length,8,!0)+") does not match specified size ("+ja(a.c,8,!0)+")";a.i.error=!0;a.H(b)}else{b=a.j;if(kb(a.m,b,a.c,Ib)){var c;for(c=0;c=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=qa(b[0]);if(c!=this.Ha)return;b=qa(b[1]);if(this.u=Qa(b)){var d=this.u.exports;if(d){var e=d.connect;e&&e.call(this.u);if(this.A=d.receiveData){this.status(this.ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.$=function(a,b){if(!b)if(this.nb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -g.Z=function(a){return a?this.save():!0};g.reset=function(){Ce(this)};g.save=function(){var a=new K(this);a.set(0,[]);return a.data()};g.restore=function(){return Ce(this)};function Ce(a){a.D=0;a.b=0;a.c=128;a.h=[];return!0}g.fb=function(a){if("number"==typeof a)this.h.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.I||8,c=a-this.o%a,this.I&&(b=" ".slice(0,c)));this.B&&!this.o&&c&&(b=String.fromCharCode(this.B)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.o+=c}else if(null!=this.j){if(10==a||1024<=this.j.length)this.P(this.j), +g.Z=function(a){return a?this.save():!0};g.reset=function(){Ce(this)};g.save=function(){var a=new K(this);a.set(0,[]);return a.data()};g.restore=function(){return Ce(this)};function Ce(a){a.C=0;a.b=0;a.c=128;a.h=[];return!0}g.fb=function(a){if("number"==typeof a)this.h.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.H||8,c=a-this.o%a,this.H&&(b=" ".slice(0,c)));this.B&&!this.o&&c&&(b=String.fromCharCode(this.B)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.o+=c}else if(null!=this.j){if(10==a||1024<=this.j.length)this.P(this.j), this.j="";10!=a&&(this.j+=String.fromCharCode(a))}this.c&=-129;yb(this.a,this.K,1)}};var De={},Be=(De[65392]=[null,null,Z.prototype.ec,Z.prototype.Rc,"RCSR"],De[65394]=[null,null,Z.prototype.dc,Z.prototype.Qc,"RBUF"],De[65396]=[null,null,Z.prototype.sc,Z.prototype.ed,"XCSR"],De[65398]=[null,null,Z.prototype.rc,Z.prototype.dd,"XBUF"],De);q(function(){for(var a=A(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.s[b]=c,!0;case "loadTape":return this.s[b]=c,c.onclick=function(){var a=d.s.listTapes;a&&Fe(d, -a.options[a.selectedIndex].text,a.value)},!0;case "mountTape":if(this.o)return this.s[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Fe(d,ka(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; -g.ea=function(a,b,c,d){this.v=a;this.m=b;this.a=c;this.G=d;if((this.b=Tb(this.v,"autoMount")||this.b)&&"string"==typeof this.b)try{this.b=eval("("+this.b+")")}catch(e){m("PC11 auto-mount error: "+e.message+" ("+this.b+")"),this.b=null}tb(b,this,Ge);He(this,"None","",!0);this.o&&He(this,"Local Tape","?");He(this,"Remote Tape","??");Ie(this)||B(this)};g.$=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};g.Z=function(a){return a?this.save():!0}; -g.reset=function(){this.c&=-2241;this.u=0};function Ie(a){a.g=0;if(a.b){var b=a.b.path,c;if(!(c=a.b.name))a:{if((c=a.s.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(d=la(c),e="json"==d||"gz"==d?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!h(e,null,!0,function(d,e,f){var k=0>f&&a.v&&!a.v.i.L;f?a.H('Unable to load tape "'+b+'" (error '+f+": "+d+")",k):(Pa(a.ra,d,e),ua(d,e)&&(a.h=c));a.i.Wa=!1;a.g&&(a.g--,a.g||B(a)); -Me(a)})}function He(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bQe){if(Se(d,this.u)){this.j=new K(this,"1.30.1","failsafe");Se(this.j)&&(Xe(this,d),a=2,Ye(this.j));this.j.set("timestamp",ta());Ze(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=We(d)){var f=d.get("code"),k=d.get("data");f&&("ok"==f?Se(d,k):("error"== -f&&"no machine state"!=k?(this.H("Error: "+k),"unable to verify user"==k&&(za("user",""),this.c=null)):this.P(f+": "+k),Ye(d),Se(d)?(c=We(d),e=!0):c=!1))}e&&Ve(this,c?d:null)}else 2==a&&d.clear()}else Ve(this);delete this.u;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.T=!0;this.i.L=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&($e(this,this.a,b,c,a),this.a.Da());this.I&&(Xe(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; -function Xe(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;h("http://www.pcjs.org/api/v1/report",d,!0)}} -function af(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new K(a,"1.30.1"),k=new K(a,"1.30.1","validate"),l=ta();k.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&Xa(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.L=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;nc.indexOf("/api/v1/dump")&&(d=la(c),e="json"==d||"gz"==d?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!h(e,null,!0,function(d,e,f){var k=0>f&&a.v&&!a.v.i.M;if(f)a.I('Unable to load tape "'+b+'" (error '+f+": "+d+")",k);else if(Pa(a.ra,d,e),d=ua(d,e))a.h=c,a.u=0,a.o=d.L; +a.i.Wa=!1;a.g&&(a.g--,a.g||B(a));Ne(a)})}function Ie(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bRe){if(Te(d,this.u)){this.j=new K(this,"1.30.1","failsafe");Te(this.j)&&(Ye(this,d),a=2,Ze(this.j));this.j.set("timestamp",ta());$e(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Xe(d)){var f=d.get("code"),k=d.get("data");f&&("ok"==f?Te(d,k):("error"== +f&&"no machine state"!=k?(this.I("Error: "+k),"unable to verify user"==k&&(za("user",""),this.c=null)):this.P(f+": "+k),Ze(d),Te(d)?(c=Xe(d),e=!0):c=!1))}e&&We(this,c?d:null)}else 2==a&&d.clear()}else We(this);delete this.u;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.T=!0;this.i.M=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(af(this,this.a,b,c,a),this.a.Da());this.H&&(Ye(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; +function Ye(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;h("http://www.pcjs.org/api/v1/report",d,!0)}} +function bf(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new K(a,"1.30.1"),k=new K(a,"1.30.1","validate"),l=ta();k.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&Xa(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.M=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;nf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");h(e,null,!0,function(f,k,l){if(l||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(k=k.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],k);hf(a,b,c)}})}else c(a,null)} -function jf(a,b,c,d){function e(a){if(void 0===l){var b=k&&A(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--ef||Ga(!0));n=!1}var k,l,n=!0;ef++;Oa[a]={};try{if(k=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=r:D.appendChild(document.createTextNode(r));t.appendChild(D)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?ff(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(k.outerHTML=n,--ef||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(n,k),--ef||Ga(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?ff(b,a,d,!0,e,r):gf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Vd){f(Vd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return jf(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map +g.V=function(a,b,c){var d=this;switch(b){case "power":return this.s[b]=c,c.onclick=function(){d.g||(d.i.M?bf(d,!1,!0):Ve(d,d.Fa))},!0;case "reset":return this.s[b]=c,c.onclick=function(){if(d.i.M&&!d.g)if(d.b&&!d.v){var a=va("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");bf(d,a,!0);!a&&d.C?window&&window.location.reload():d.Fa(Re)}else d.reset(),d.a&&d.a.Da()},!0;case "save":if(ma())c.parentNode.removeChild(c);else return this.s[b]= +c,c.onclick=function(){var a=Se(d,!0);if(a){var b=!!(d.b&&!d.v||d.C),c=bf(d,b);b?cf(d,a,c):d.I("Resume disabled, machine state not saved")}},!0}return!1}; +function Se(a,b){var c=a.c;c||((c=ya("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=df(a,c))||a.I("The user ID is invalid.")):b&&a.I("Browser local storage is not available"));return c} +function df(a,b){a.c=null;b=h(na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(za("user",b.data),a.c=b.data)}catch(d){m(d.message+" ("+c+")")}return a.c}function Ue(a){var b=null;a.c&&(b=na()+"/api/v1/user?req=load&user="+a.c+"&state="+ef(a,"1.30.1"));return b} +function cf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ef(a,"1.30.1");d.data=c;b=h(na()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");h(e,null,!0,function(f,k,l){if(l||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(k=k.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],k);jf(a,b,c)}})}else c(a,null)} +function kf(a,b,c,d){function e(a){if(void 0===l){var b=k&&A(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--ff||Ga(!0));n=!1}var k,l,n=!0;ff++;Oa[a]={};try{if(k=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=r:D.appendChild(document.createTextNode(r));t.appendChild(D)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?gf(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(k.outerHTML=n,--ff||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(n,k),--ff||Ga(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?gf(b,a,d,!0,e,r):hf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Wd){f(Wd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return kf(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map From cff9a15d27e18ddddfb66e7c1e9d78ab700e5a31 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Tue, 18 Oct 2016 16:53:20 -0700 Subject: [PATCH 12/32] Code in place for parsing tape data when "load" (as opposed to "attach") is requested --- apps/pdp11/tapes/demo.xml | 1 + modules/pdp11/lib/pc11.js | 144 +++++++++++------ versions/pdpjs/1.30.1/pdp11-dbg.js | 248 ++++++++++++++--------------- versions/pdpjs/1.30.1/pdp11.js | 82 +++++----- 4 files changed, 258 insertions(+), 217 deletions(-) diff --git a/apps/pdp11/tapes/demo.xml b/apps/pdp11/tapes/demo.xml index 9e54a95d84..626585617d 100644 --- a/apps/pdp11/tapes/demo.xml +++ b/apps/pdp11/tapes/demo.xml @@ -6,6 +6,7 @@ + Attach Load diff --git a/modules/pdp11/lib/pc11.js b/modules/pdp11/lib/pc11.js index 7f4fd1b0a0..2d387948af 100644 --- a/modules/pdp11/lib/pc11.js +++ b/modules/pdp11/lib/pc11.js @@ -56,15 +56,12 @@ function PC11(parms) this.configMount = parms['autoMount'] || null; this.cAutoMount = 0; - /* - * TODO: Technically, the PC11 should have a timer that "clocks" data from the aTapeData buffer into the - * PRB register at the appropriate rate (300 CPS for the high-speed version, 10 CPS for the low-speed version). - */ this.prs = 0; // PRS register this.prb = 0; // PRB register this.iTapeData = 0; // buffer index this.aTapeData = []; // buffer for the PRB register - this.sLoadState = PC11.LOADSTATE.NONE; + this.sTapeSource = PC11.SOURCE.NONE; + this.nTapeTarget = PC11.TARGET.NONE; this.sTapeName = this.sTapePath = ""; /* @@ -80,12 +77,18 @@ Component.subclass(PC11); /* * There's nothing super special about these values, except that NONE should be falsey and the others should not. */ -PC11.LOADSTATE = { +PC11.SOURCE = { NONE: "", LOCAL: "?", REMOTE: "??" }; +PC11.TARGET = { + NONE: 0, + READER: 1, + MEMORY: 2 +}; + /** * setBinding(sType, sBinding, control, sValue) * @@ -99,12 +102,12 @@ PC11.LOADSTATE = { PC11.prototype.setBinding = function(sType, sBinding, control, sValue) { var pc11 = this; + var nTapeTarget = PC11.TARGET.NONE; switch (sBinding) { case "listTapes": this.bindings[sBinding] = control; - control.onchange = function onChangeListTapes(event) { var controlDesc = pc11.bindings["descTape"]; var controlOption = control.options[control.selectedIndex]; @@ -131,15 +134,24 @@ PC11.prototype.setBinding = function(sType, sBinding, control, sValue) this.bindings[sBinding] = control; return true; + /* + * "loadTape" operation must do pretty much everything that the "attachTape" does, but whereas the attach + * operation records the bytes in aTapeData, the load operation stuffs them directly into the machine's memory; + * the former sets nTapeTarget to TARGET.READER, while the latter sets it to TARGET.MEMORY. + */ case "loadTape": - this.bindings[sBinding] = control; + nTapeTarget = PC11.TARGET.MEMORY; + /* falls through */ + case "attachTape": + if (!nTapeTarget) nTapeTarget = PC11.TARGET.READER; + this.bindings[sBinding] = control; control.onclick = function onClickLoadTape(event) { var controlTapes = pc11.bindings["listTapes"]; if (controlTapes) { var sTapeName = controlTapes.options[controlTapes.selectedIndex].text; var sTapePath = controlTapes.value; - pc11.loadSelectedTape(sTapeName, sTapePath); + pc11.loadSelectedTape(sTapeName, sTapePath, nTapeTarget); } }; return true; @@ -175,7 +187,10 @@ PC11.prototype.setBinding = function(sType, sBinding, control, sValue) if (file) { var sTapePath = file.name; var sTapeName = str.getBaseName(sTapePath, true); - pc11.loadSelectedTape(sTapeName, sTapePath, file); + /* + * TODO: Provide a way to mount tapes into MEMORY as well as READER. + */ + pc11.loadSelectedTape(sTapeName, sTapePath, PC11.TARGET.READER, file); } /* * Prevent reloading of web page after form submission @@ -233,9 +248,9 @@ PC11.prototype.initBus = function(cmp, bus, cpu, dbg) bus.addIOTable(this, PC11.UNIBUS_IOTABLE); - this.addTape("None", PC11.LOADSTATE.NONE, true); - if (this.fLocalTapes) this.addTape("Local Tape", PC11.LOADSTATE.LOCAL); - this.addTape("Remote Tape", PC11.LOADSTATE.REMOTE); + this.addTape("None", PC11.SOURCE.NONE, true); + if (this.fLocalTapes) this.addTape("Local Tape", PC11.SOURCE.LOCAL); + this.addTape("Remote Tape", PC11.SOURCE.REMOTE); if (!this.autoMount()) this.setReady(); }; @@ -298,7 +313,10 @@ PC11.prototype.autoMount = function(fRemount) var sTapePath = this.configMount['path']; var sTapeName = this.configMount['name'] || this.findTape(sTapePath); if (sTapePath && sTapeName) { - if (!this.loadTape(sTapeName, sTapePath, true) && fRemount) { + /* + * TODO: Provide a way to autoMount tapes into MEMORY as well as READER. + */ + if (!this.loadTape(sTapeName, sTapePath, PC11.TARGET.READER, true) && fRemount) { this.setReady(false); } } else { @@ -309,28 +327,28 @@ PC11.prototype.autoMount = function(fRemount) }; /** - * loadSelectedTape(sTapeName, sTapePath, file) + * loadSelectedTape(sTapeName, sTapePath, nTapeTarget, file) * * @this {PC11} * @param {string} sTapeName * @param {string} sTapePath + * @param {number} nTapeTarget * @param {File} [file] is set if there's an associated File object */ -PC11.prototype.loadSelectedTape = function(sTapeName, sTapePath, file) +PC11.prototype.loadSelectedTape = function(sTapeName, sTapePath, nTapeTarget, file) { if (!sTapePath) { this.unloadTape(false); return; } - if (sTapePath == PC11.LOADSTATE.LOCAL) { + if (sTapePath == PC11.SOURCE.LOCAL) { this.notice('Use "Choose File" and "Mount" to select and load a local tape.'); return; } - /* - * If the special PC11.LOADSTATE.REMOTE path is selected, then we want to prompt the user for a URL. + * If the special PC11.SOURCE.REMOTE path is selected, then we want to prompt the user for a URL. * Oh, and make sure we pass an empty string as the 2nd parameter to prompt(), so that IE won't display * "undefined" -- because after all, undefined and "undefined" are EXACTLY the same thing, right? * @@ -338,36 +356,37 @@ PC11.prototype.loadSelectedTape = function(sTapeName, sTapePath, file) * I should do, like dynamically updating "listTapes" to include new entries, and adding new entries * to the save/restore data. */ - if (sTapePath == PC11.LOADSTATE.REMOTE) { + if (sTapePath == PC11.SOURCE.REMOTE) { sTapePath = window.prompt("Enter the URL of a remote tape image.", "") || ""; if (!sTapePath) return; sTapeName = str.getBaseName(sTapePath); if (DEBUG) this.println("Attempting to load " + sTapePath + " as \"" + sTapeName + "\""); - this.sLoadState = PC11.LOADSTATE.REMOTE; + this.sTapeSource = PC11.SOURCE.REMOTE; } else { - this.sLoadState = sTapePath; + this.sTapeSource = sTapePath; } - this.loadTape(sTapeName, sTapePath, false, file); + this.loadTape(sTapeName, sTapePath, nTapeTarget, false, file); }; /** - * loadTape(sTapeName, sTapePath, fAutoMount, file) + * loadTape(sTapeName, sTapePath, nTapeTarget, fAutoMount, file) * * NOTE: If sTapePath is already loaded, nothing needs to be done. * * @this {PC11} * @param {string} sTapeName * @param {string} sTapePath + * @param {number} nTapeTarget * @param {boolean} [fAutoMount] * @param {File} [file] is set if there's an associated File object * @return {number} 1 if tape loaded, 0 if queued up (or busy), -1 if already loaded */ -PC11.prototype.loadTape = function(sTapeName, sTapePath, fAutoMount, file) +PC11.prototype.loadTape = function(sTapeName, sTapePath, nTapeTarget, fAutoMount, file) { var nResult = -1; - if (this.sTapePath.toLowerCase() != sTapePath.toLowerCase()) { + if (this.sTapePath.toLowerCase() != sTapePath.toLowerCase() || this.nTapeTarget != nTapeTarget) { nResult++; this.unloadTape(true); @@ -381,27 +400,28 @@ PC11.prototype.loadTape = function(sTapeName, sTapePath, fAutoMount, file) this.cAutoMount++; if (this.messageEnabled()) this.printMessage("auto-loading tape: " + sTapeName); } - if (this.load(sTapeName, sTapePath, file)) { + if (this.load(sTapeName, sTapePath, nTapeTarget, file)) { nResult++; } else { this.flags.busy = true; } } } - if (DEBUG && nResult) this.println("tape loaded"); + if (DEBUG && nResult) this.println(this.nTapeTarget == PC11.TARGET.READER? "tape attached" : "tape loaded"); return nResult; }; /** - * load(sTapeName, sTapePath, file) + * load(sTapeName, sTapePath, nTapeTarget, file) * * @this {PC11} * @param {string} sTapeName * @param {string} sTapePath + * @param {number} nTapeTarget * @param {File} [file] is set if there's an associated File object * @return {boolean} true if load completed (successfully or not), false if queued */ -PC11.prototype.load = function(sTapeName, sTapePath, file) +PC11.prototype.load = function(sTapeName, sTapePath, nTapeTarget, file) { var pc11 = this; var sTapeURL = sTapePath; @@ -414,7 +434,7 @@ PC11.prototype.load = function(sTapeName, sTapePath, file) if (file) { var reader = new FileReader(); reader.onload = function() { - pc11.doneRead(sTapeName, sTapePath, reader.result); + pc11.doneRead(sTapeName, sTapePath, nTapeTarget, reader.result); }; reader.readAsArrayBuffer(file); return true; @@ -440,21 +460,22 @@ PC11.prototype.load = function(sTapeName, sTapePath, file) } return !!web.getResource(sTapeURL, null, true, function(sURL, sResponse, nErrorCode) { - pc11.doneLoad(sTapeName, sTapePath, sResponse, sURL, nErrorCode); + pc11.doneLoad(sTapeName, sTapePath, nTapeTarget, sResponse, sURL, nErrorCode); }); }; /** - * doneLoad(sTapeName, sTapePath, sTapeData, sURL, nErrorCode) + * doneLoad(sTapeName, sTapePath, sTapeData, nTapeTarget, sURL, nErrorCode) * * @this {PC11} * @param {string} sTapeName * @param {string} sTapePath * @param {string} sTapeData + * @param {number} nTapeTarget * @param {string} sURL * @param {number} nErrorCode (response from server if anything other than 200) */ -PC11.prototype.doneLoad = function(sTapeName, sTapePath, sTapeData, sURL, nErrorCode) +PC11.prototype.doneLoad = function(sTapeName, sTapePath, nTapeTarget, sTapeData, sURL, nErrorCode) { var fPrintOnly = (nErrorCode < 0 && this.cmp && !this.cmp.flags.powered); @@ -475,11 +496,7 @@ PC11.prototype.doneLoad = function(sTapeName, sTapePath, sTapeData, sURL, nError Component.addMachineResource(this.idMachine, sURL, sTapeData); var resource = web.parseMemoryResource(sURL, sTapeData); if (resource) { - this.sTapeName = sTapeName; - this.sTapePath = sTapePath; - this.iTapeData = 0; - this.aTapeData = resource.aBytes; - if (DEBUG) this.println("tape loaded: " + sTapeName); + this.parseTape(sTapeName, sTapePath, nTapeTarget, resource.aBytes); } } this.flags.busy = false; @@ -491,22 +508,20 @@ PC11.prototype.doneLoad = function(sTapeName, sTapePath, sTapeData, sURL, nError }; /** - * doneRead(sTapeName, sTapePath, buffer) + * doneRead(sTapeName, sTapePath, nTapeTarget, buffer) * * @this {PC11} * @param {string} sTapeName * @param {string} sTapePath + * @param {number} nTapeTarget * @param {?} buffer (we KNOW this is an ArrayBuffer, but we can't seem to convince the Closure Compiler) */ -PC11.prototype.doneRead = function(sTapeName, sTapePath, buffer) +PC11.prototype.doneRead = function(sTapeName, sTapePath, nTapeTarget, buffer) { if (buffer) { - this.sTapeName = sTapeName; - this.sTapePath = sTapePath; - this.iTapeData = 0; - this.aTapeData = new Uint8Array(buffer, 0, buffer.byteLength); - this.sLoadState = PC11.LOADSTATE.LOCAL; - if (DEBUG) this.println("tape length: " + this.aTapeData.length); + var aBytes = new Uint8Array(buffer, 0, buffer.byteLength); + this.parseTape(sTapeName, sTapePath, nTapeTarget, aBytes); + this.sTapeSource = PC11.SOURCE.LOCAL; } this.displayTape(); }; @@ -568,7 +583,7 @@ PC11.prototype.displayTape = function() { var controlTapes = this.bindings["listTapes"]; if (controlTapes && controlTapes.options) { - var sTargetPath = this.sLoadState || this.sTapePath; + var sTargetPath = this.sTapeSource || this.sTapePath; for (var i = 0; i < controlTapes.options.length; i++) { if (controlTapes.options[i].value == sTargetPath) { if (controlTapes.selectedIndex != i) { @@ -581,6 +596,29 @@ PC11.prototype.displayTape = function() } }; +/** + * parseTape(sTapeName, sTapePath, nTapeTarget, aBytes) + * + * @this {PC11} + * @param {string} sTapeName + * @param {string} sTapePath + * @param {number} nTapeTarget + * @param {Array|Uint8Array} aBytes + */ +PC11.prototype.parseTape = function(sTapeName, sTapePath, nTapeTarget, aBytes) +{ + this.sTapeName = sTapeName; + this.sTapePath = sTapePath; + this.nTapeTarget = nTapeTarget; + if (nTapeTarget == PC11.TARGET.MEMORY) { + if (DEBUG) this.println("tape loaded: " + sTapeName); + return; + } + this.iTapeData = 0; + this.aTapeData = aBytes; + if (DEBUG) this.println("tape attached: " + sTapeName); +}; + /** * unloadTape(fLoading) * @@ -593,12 +631,13 @@ PC11.prototype.unloadTape = function(fLoading) this.sTapeName = ""; this.sTapePath = ""; /* - * Try to avoid any unnecessary hysteresis regarding the display if this unload is merely a prelude to another load. + * Avoid any unnecessary hysteresis regarding the display if this unload is merely a prelude to another load. */ if (!fLoading) { - this.sLoadState = PC11.LOADSTATE.NONE; + this.sTapeSource = PC11.SOURCE.NONE; this.displayTape(); - if (DEBUG) this.println("tape unloaded"); + if (DEBUG && this.nTapeTarget) this.println(this.nTapeTarget == PC11.TARGET.READER? "tape detached" : "tape unloaded"); + this.nTapeTarget = PC11.TARGET.NONE; } } }; @@ -653,7 +692,8 @@ PC11.prototype.advanceReader = function() } /* * The PC11, by virtue of its "high speed", is supposed to deliver characters at 300 CPS, - * so for now, that's what we're going to deliver (ie, 1000ms / 300). + * so for now, that's what we're going to deliver (ie, 1000ms / 300). The original "low speed" + * version of the reader ran at 10 CPS. * * TODO: Review this code. If we don't set the fReset parameter to true, the timer will eventually * fire while the "Absolute Loader" tape is still reading bytes from, say, the "BASIC (Single User)" diff --git a/versions/pdpjs/1.30.1/pdp11-dbg.js b/versions/pdpjs/1.30.1/pdp11-dbg.js index 500b57c44a..1683516043 100644 --- a/versions/pdpjs/1.30.1/pdp11-dbg.js +++ b/versions/pdpjs/1.30.1/pdp11-dbg.js @@ -70,10 +70,10 @@ function ec(a,b,c){for(var d in c){var e=+d,f=c[d];if(!(f[5]&&f[5]>a.b.ab)){var function gc(a,b){a.A||(a.i&&D(a.i,536870912)&&C(a.i,"memory fault on address "+J(a.i,b),!0,!0),a.b.ea(4,b))}function ac(a,b,c){n("Memory block error ("+a+": "+l(b)+","+l(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.g={data:0,Sd:0,Db:20,gd:0};this.f={Td:0,Rb:-1}}u(K);h=K.prototype; h.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.Rb=hc(c,function(){e.f.Ka|=128;e.f.Ka&64&&(qc(e.b,e.f.hd),rc(e.b,e.f.Rb,1E3/60))});this.f.hd=sc(64,6);ec(b,this,L);fc(b,this.reset.bind(this));H(this)};h.reset=function(){this.g.Db=this.g.Db&-120|20;this.f.Ka=0};h.Dc=function(){var a=this.f.Ka;this.f.Ka&=-129;return a};h.rd=function(a){this.f.Ka=a;a&64&&rc(this.b,this.f.Rb,1E3/60);this.f.Ka=a&-129};h.wc=function(a){return(a?this.g.gd:this.g.data)&65535}; h.kd=function(a){this.g.data=a};h.Fc=function(){var a=this.b;return a.F&62337|a.wa<<5|a.xa<<1};h.td=function(a){var b=this.b;a&=62337;if(b.F!=a){b.F=a;b.wa=a>>5&3;b.xa=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.La!=c&&(b.La=c,tc(b))}uc(this)};h.Gc=function(){var a=this.b.Na;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Hc=function(){return this.b.tb};h.Ic=function(){return this.b.Oa}; -h.ud=function(a){var b=this.b;1170>b.ab&&(a&=-49);b.Oa!=a&&(b.Oa=a,a&16?(b.Za=4194303,b.ya=3915776):(b.Za=262143,b.ya=253952),tc(b));uc(this)};function uc(a){a.g.Db=a.g.Db&-8|(a.b.La?a.b.Oa&16?1:2:4)}h.Wc=function(a){return this.b.S[1][a>>1&7]};h.Id=function(a,b){this.b.S[1][b>>1&7]=a&65295};h.Uc=function(a){return this.b.S[1][(a>>1&7)+8]};h.Gd=function(a,b){this.b.S[1][(b>>1&7)+8]=a&65295};h.Vc=function(a){return this.b.ta[1][a>>1&7]}; -h.Hd=function(a,b){b=b>>1&7;this.b.ta[1][b]=a;this.b.S[1][b]&=65295};h.Tc=function(a){return this.b.ta[1][(a>>1&7)+8]};h.Fd=function(a,b){b=(b>>1&7)+8;this.b.ta[1][b]=a;this.b.S[1][b]&=65295};h.Cc=function(a){return this.b.S[0][a>>1&7]};h.qd=function(a,b){this.b.S[0][b>>1&7]=a&65295};h.Ac=function(a){return this.b.S[0][(a>>1&7)+8]};h.od=function(a,b){this.b.S[0][(b>>1&7)+8]=a&65295};h.Bc=function(a){return this.b.ta[0][a>>1&7]};h.pd=function(a,b){b=b>>1&7;this.b.ta[0][b]=a;this.b.S[0][b]&=65295}; -h.zc=function(a){return this.b.ta[0][(a>>1&7)+8]};h.nd=function(a,b){b=(b>>1&7)+8;this.b.ta[0][b]=a;this.b.S[0][b]&=65295};h.bd=function(a){return this.b.S[3][a>>1&7]};h.Od=function(a,b){this.b.S[3][b>>1&7]=a&65295};h.$c=function(a){return this.b.S[3][(a>>1&7)+8]};h.Md=function(a,b){this.b.S[3][(b>>1&7)+8]=a&65295};h.ad=function(a){return this.b.ta[3][a>>1&7]};h.Nd=function(a,b){b=b>>1&7;this.b.ta[3][b]=a;this.b.S[3][b]&=65295};h.Zc=function(a){return this.b.ta[3][(a>>1&7)+8]}; -h.Ld=function(a,b){b=(b>>1&7)+8;this.b.ta[3][b]=a;this.b.S[3][b]&=65295};h.fb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};h.kb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};h.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};h.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};h.Qc=function(){return this.b.u[7]};h.Cd=function(a){this.b.u[7]=a};h.gb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]}; +h.ud=function(a){var b=this.b;1170>b.ab&&(a&=-49);b.Oa!=a&&(b.Oa=a,a&16?(b.Za=4194303,b.ya=3915776):(b.Za=262143,b.ya=253952),tc(b));uc(this)};function uc(a){a.g.Db=a.g.Db&-8|(a.b.La?a.b.Oa&16?1:2:4)}h.Wc=function(a){return this.b.T[1][a>>1&7]};h.Id=function(a,b){this.b.T[1][b>>1&7]=a&65295};h.Uc=function(a){return this.b.T[1][(a>>1&7)+8]};h.Gd=function(a,b){this.b.T[1][(b>>1&7)+8]=a&65295};h.Vc=function(a){return this.b.ta[1][a>>1&7]}; +h.Hd=function(a,b){b=b>>1&7;this.b.ta[1][b]=a;this.b.T[1][b]&=65295};h.Tc=function(a){return this.b.ta[1][(a>>1&7)+8]};h.Fd=function(a,b){b=(b>>1&7)+8;this.b.ta[1][b]=a;this.b.T[1][b]&=65295};h.Cc=function(a){return this.b.T[0][a>>1&7]};h.qd=function(a,b){this.b.T[0][b>>1&7]=a&65295};h.Ac=function(a){return this.b.T[0][(a>>1&7)+8]};h.od=function(a,b){this.b.T[0][(b>>1&7)+8]=a&65295};h.Bc=function(a){return this.b.ta[0][a>>1&7]};h.pd=function(a,b){b=b>>1&7;this.b.ta[0][b]=a;this.b.T[0][b]&=65295}; +h.zc=function(a){return this.b.ta[0][(a>>1&7)+8]};h.nd=function(a,b){b=(b>>1&7)+8;this.b.ta[0][b]=a;this.b.T[0][b]&=65295};h.bd=function(a){return this.b.T[3][a>>1&7]};h.Od=function(a,b){this.b.T[3][b>>1&7]=a&65295};h.$c=function(a){return this.b.T[3][(a>>1&7)+8]};h.Md=function(a,b){this.b.T[3][(b>>1&7)+8]=a&65295};h.ad=function(a){return this.b.ta[3][a>>1&7]};h.Nd=function(a,b){b=b>>1&7;this.b.ta[3][b]=a;this.b.T[3][b]&=65295};h.Zc=function(a){return this.b.ta[3][(a>>1&7)+8]}; +h.Ld=function(a,b){b=(b>>1&7)+8;this.b.ta[3][b]=a;this.b.T[3][b]&=65295};h.fb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};h.kb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};h.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};h.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};h.Qc=function(){return this.b.u[7]};h.Cd=function(a){this.b.u[7]=a};h.gb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]}; h.lb=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};h.Oc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[1]};h.Ad=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[1]=a};h.Pc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[3]};h.Bd=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[3]=a};h.yc=function(a){return this.b.gc[a-65504>>1]};h.md=function(a,b){this.b.gc[b-65504>>1]=a};h.dc=function(a){return 65520==a?61183:0};h.jc=function(){}; h.Yc=function(){return 1};h.Kd=function(){};h.xc=function(){return this.b.Z};h.ld=function(){this.b.Z=0};h.Ec=function(){return this.b.fc};h.sd=function(a,b){b&1||(a&=255);this.b.fc=a};h.Jc=function(a){return a?this.b.Pb:0};h.vd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Pb=a;b.G|=2};h.Xc=function(a){return a?this.b.Pa&65280:0};h.Jd=function(a){this.b.Pa=a|255};h.Mc=function(){return Lb(this.b)};h.yd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.G|=128}; h.ic=function(a,b){D(this)&&C(this,"writeIgnored("+na(b)+"): "+na(a),!0,!0)}; @@ -92,10 +92,10 @@ var Bc=0,Cc=2,Zb=4,bc=["NONE","RAM","ROM","VID","H/W"],Ac=0; I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(sb)for(a=Array(this.size>>2),b=0;b>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a,b){a&1&&gc(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},sa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ja=!0},O:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,1,c.M)&&c.da(!0)}return this.Mb(a,b)},ba:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,2,c.M)&&c.da(!0)}return this.Nb(a,b)},qa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a, -1,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Sb(a,b,c)},xa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a,2,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Tb(a,b,c)},N:function(a){return this.B[a]},U:function(a,b){a=this.B[a];this.i&&D(this.i,128)&&C(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},aa:function(a,b){a&1&&gc(this.w,b);return this.F.getUint16(a,!0)},fa:function(a,b){a&1&&gc(this.w,b);a=this.I[a>>1];this.i&&D(this.i,128)&&C(this.i,"Memory.readWord("+ +1,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Sb(a,b,c)},xa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a,2,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Tb(a,b,c)},N:function(a){return this.B[a]},P:function(a,b){a=this.B[a];this.i&&D(this.i,128)&&C(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},aa:function(a,b){a&1&&gc(this.w,b);return this.F.getUint16(a,!0)},fa:function(a,b){a&1&&gc(this.w,b);a=this.I[a>>1];this.i&&D(this.i,128)&&C(this.i,"Memory.readWord("+ J(this.i,b)+"): "+J(this.i,a),!0);return a},pa:function(a,b){this.B[a]=b;this.Ja=!0},Ra:function(a,b,c){this.B[a]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},wa:function(a,b,c){a&1&&gc(this.w,c);this.F.setUint16(a,b,!0);this.Ja=!0},ya:function(a,b,c){a&1&&gc(this.w,c);this.I[a>>1]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}}; function Sb(a,b,c){a.i=b;a.g=a.J=0;c&&((a.g=c.g)&&Jc(a,Ic,!1),(a.J=c.J)&&Hc(a,Ic,!1))}function Lc(a,b){b?--a.J||(a.Hb=a.f?a.D:a.Sb,a.wb=a.f?a.H:a.Tb):--a.g||(a.Eb=a.Mb,a.oa=a.Nb)}function Hc(a,b,c){c&&a.J||(a.Hb=!a.f&&b[1]||a.D,a.wb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Sb=b[1]||a.D,a.Tb=b[3]||a.H}function Jc(a,b,c){c&&a.g||(a.Eb=b[0]||a.K,a.oa=b[2]||a.M);if(c||void 0===c)a.Mb=b[0]||a.K,a.Nb=b[2]||a.M}function Dc(a,b){b||(b=Mc);Jc(a,b,void 0);Hc(a,b,void 0)} -var Mc=[],Gc=[I.prototype.V,I.prototype.sa,I.prototype.ma,I.prototype.Wa],Ic=[I.prototype.O,I.prototype.qa,I.prototype.ba,I.prototype.xa];if(sb)var Fc=[I.prototype.N,I.prototype.pa,I.prototype.aa,I.prototype.wa],Ec=[I.prototype.U,I.prototype.Ra,I.prototype.fa,I.prototype.ya]; +var Mc=[],Gc=[I.prototype.V,I.prototype.sa,I.prototype.ma,I.prototype.Wa],Ic=[I.prototype.O,I.prototype.qa,I.prototype.ba,I.prototype.xa];if(sb)var Fc=[I.prototype.N,I.prototype.pa,I.prototype.aa,I.prototype.wa],Ec=[I.prototype.P,I.prototype.Ra,I.prototype.fa,I.prototype.ya]; function Nc(a,b){r.call(this,"CPU",a,Nc,1);var c=a.multiplier||1;this.Ga=a.cycles||b;this.Ma=c;this.Ya=Math.round(this.Ga/1E4)/100;this.Ua=this.Ya*this.Ma;this.v.ca=!1;this.v.Qb=!1;this.v.mb=a.autoStart;this.v.$a=!1;this.qb=this.ma=0;this.rb=a.csStart;this.bb=a.csInterval;this.cb=a.csStop;this.K=[];this.bc=this.fd.bind(this);H(this)}u(Nc);var Oc=["power","reset"];h=Nc.prototype; h.Ca=function(a,b,c,d){this.D=a;this.w=b;this.i=d;for(b=0;bd[0]||b>d[0]&&( h.fd=function(){if(this.v.ca){this.nb>=this.Ga&&Xc(this,!0);this.sa=0;this.Fa=za();if(this.aa){var a=this.Fa-this.aa;a>this.Ab&&(this.N+=a,this.N>this.Fa&&(this.N=this.Fa))}try{do{var b=Zc(this,this.v.$a?1:this.Qa);try{this.jb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.sa+=b;this.O+=b;Tc(this,b);$c(this,b);this.pa-=b;if(0>=this.pa){this.pa+=this.Qa;15<=++this.Cb&&(this.D&&this.D.$(),this.Cb=0);break}}while(this.v.ca)}catch(e){this.da();this.D&&this.D.stop(za(),Uc(this));rb(this, e.stack||e.message);return}if(this.v.ca){a=setTimeout;b=this.bc;this.aa=za();var c=this.Ab;this.sa&&(c=Math.round(c*this.sa/this.Qa));var c=c-(this.aa-this.Fa),d=this.aa-this.N;d&&(this.V=Math.round(this.O/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.Vc&&(this.N-=c),c=0;this.nb+=this.sa;this.aa+=c;a(b,c)}}}; h.ib=function(a){if(qb(this))return!1;if(this.v.ca)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.ca=!0;this.v.Qb=!0;var b=this.J.run;b&&(b.textContent="Halt");this.D&&(a&&this.D.ub(!0),this.D.start(this.N,Uc(this)));setTimeout(this.bc,0);return!0};h.jb=function(){return 0};h.da=function(a){if(this.v.ca){Yc(this);Wc(this,this.O);this.O=0;this.v.ca=!1;var b=this.J.run;b&&(b.textContent="Run");this.D&&this.D.stop(za(),Uc(this))}this.v.complete=a}; -function ad(a){this.ab=+a.model||1170;this.xb=a.addrReset||0;Nc.call(this,a,6666667);this.decode=1120==this.ab?bd.bind(this):cd.bind(this);dd(this);this.A=0;this.U=null;this.v.complete=this.v.oc=!1}u(ad,Nc);h=ad.prototype;h.reset=function(){this.status("model "+this.ab);this.v.ca&&this.da();dd(this);Qc(this);this.v.error=!1;this.parent.reset.call(this)}; -function dd(a){a.P=65536;a.R=32768;a.X=65535;a.T=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.xb];a.Ea=[0,0,0,0,0,0];a.va=[0,0,0,0];a.B=0;a.xa=0;a.sc=[4,2,0,1];a.S=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.ta=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +function ad(a){this.ab=+a.model||1170;this.xb=a.addrReset||0;Nc.call(this,a,6666667);this.decode=1120==this.ab?bd.bind(this):cd.bind(this);dd(this);this.A=0;this.P=null;this.v.complete=this.v.oc=!1}u(ad,Nc);h=ad.prototype;h.reset=function(){this.status("model "+this.ab);this.v.ca&&this.da();dd(this);Qc(this);this.v.error=!1;this.parent.reset.call(this)}; +function dd(a){a.R=65536;a.S=32768;a.X=65535;a.U=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.xb];a.Ea=[0,0,0,0,0,0];a.va=[0,0,0,0];a.B=0;a.xa=0;a.sc=[4,2,0,1];a.T=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.ta=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.gc=[0,0,0,0,0,0,0,0];a.fc=0;a.G=0;a.H=a.I=0;a.g=a.f=a.Xa=0;a.qa=-1;ed(a)}function ed(a){a.Pa=255;a.Z=0;a.Pb=0;a.F=0;a.Na=0;a.tb=0;a.Oa=0;a.La=0;a.wa=0;a.Za=262143;a.ya=253952;a.G|=2;a.w&&tc(a)}function tc(a){a.La?(a.M=65536,a.Y=a.rc,a.oa=a.cd,a.wb=a.Pd,Vb(a.w,a.Oa&16?22:18)):(a.M=0,a.Y=a.qc,a.oa=a.ec,a.wb=a.kc,Vb(a.w,16))}h.Zb=function(){return 0}; -h.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.fa,this.Ma]);a.set(2,cc(this.w));return a.data()};h.restore=function(a){var b=a[1];this.fa=b[1];Vc(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c>14&3;c=a.L>>14&3;a.B!=c&&(a.va[c]=a.u[6],a.u[6]=a.va[a.B]);a.L=b;a.G|=2}function P(a,b){a.G&128||(a.T=a.X=b,a.R=0)}function Dd(a,b,c){a.G&128||(a.T=a.X=a.P=b,a.R=c||0)}function Ed(a,b,c,d){a.G&128||(a.T=a.X=a.P=b,a.R=(c^b)&(d^b))}function Fd(a,b){a.G&128||(a.T=a.X=a.P=b,a.R=a.T^a.P>>1)} -function Gd(a,b,c,d){a.G&128||(a.T=a.X=a.P=b,a.R=(c^d)&(d^b))}h.ea=function(a,b){if(!this.A){var c=!1;0>this.qa?this.qa=Lb(this):this.B||(a=4,c=!0);this.F&57344||(this.Na=63222,this.tb=a);this.B=0;var d=this.oa(a|this.M),e=this.oa(a+2&65535|this.M);vc(this,e&-12289|this.qa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Hd(this,this.qa);Hd(this,this.u[7]);O(this,d);this.G&=-113;this.qa=-1;if(26!=b)throw a;}};function Id(a){var b=Jd(a),c=Jd(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);O(a,b);vc(a,c);a.G&=-17} -function Kd(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.B]||(d&=7);e=a.S[a.B][d];f=(a.ta[a.B][d]<<6)+(b&8191)&a.Za;if(ff){if(3932160<=f){f&=262143;var k=f>>13&31;31>k?a.Oa&32&&(f=a.uc[k]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? -192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.S[a.B][d]=e;if(4194170!==f||a.B)a.wa=a.B,a.xa=d;g&&(g&57344&&(0<=a.qa&&(g|=128),a.F&57344||(a.F=a.F|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.F&61440||!(4191360>f||4194239>14&3;c=a.L>>14&3;a.B!=c&&(a.va[c]=a.u[6],a.u[6]=a.va[a.B]);a.L=b;a.G|=2}function P(a,b){a.G&128||(a.U=a.X=b,a.S=0)}function Dd(a,b,c){a.G&128||(a.U=a.X=a.R=b,a.S=c||0)}function Ed(a,b,c,d){a.G&128||(a.U=a.X=a.R=b,a.S=(c^b)&(d^b))}function Fd(a,b){a.G&128||(a.U=a.X=a.R=b,a.S=a.U^a.R>>1)} +function Gd(a,b,c,d){a.G&128||(a.U=a.X=a.R=b,a.S=(c^d)&(d^b))}h.ea=function(a,b){if(!this.A){var c=!1;0>this.qa?this.qa=Lb(this):this.B||(a=4,c=!0);this.F&57344||(this.Na=63222,this.tb=a);this.B=0;var d=this.oa(a|this.M),e=this.oa(a+2&65535|this.M);vc(this,e&-12289|this.qa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Hd(this,this.qa);Hd(this,this.u[7]);O(this,d);this.G&=-113;this.qa=-1;if(26!=b)throw a;}};function Id(a){var b=Jd(a),c=Jd(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);O(a,b);vc(a,c);a.G&=-17} +function Kd(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.B]||(d&=7);e=a.T[a.B][d];f=(a.ta[a.B][d]<<6)+(b&8191)&a.Za;if(ff){if(3932160<=f){f&=262143;var k=f>>13&31;31>k?a.Oa&32&&(f=a.uc[k]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? +192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.T[a.B][d]=e;if(4194170!==f||a.B)a.wa=a.B,a.xa=d;g&&(g&57344&&(0<=a.qa&&(g|=128),a.F&57344||(a.F=a.F|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.F&61440||!(4191360>f||4194239c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.oa(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.oa(e)|g; -a.b-=8;break;case 6:return e=a.oa(Cd(a,2)),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=a.oa(Cd(a,2)),e=e+a.u[c]&65535,e=a.oa(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.F&57344||(a.Na=a.Na<<8|f<<3&248|c);6==c&&!a.B&&d&4&&0>=f&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.G|=64));return e}h.Bb=function(a){if(!this.La)return this.w.Bb(a);this.A++;a=Ld(this,Kd(this,a,3));this.A--;return a}; +a.b-=8;break;case 6:return e=a.oa(jd(a,2)),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=a.oa(jd(a,2)),e=e+a.u[c]&65535,e=a.oa(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.F&57344||(a.Na=a.Na<<8|f<<3&248|c);6==c&&!a.B&&d&4&&0>=f&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.G|=64));return e}h.Bb=function(a){if(!this.La)return this.w.Bb(a);this.A++;a=Ld(this,Kd(this,a,3));this.A--;return a}; h.pb=function(a){if(!this.La)return this.w.pb(a);this.A++;a=this.ec(Kd(this,a,2));this.A--;return a};h.hb=function(a,b){this.La?(this.A++,Md(this,Kd(this,a,5),b),this.A--):this.w.hb(a,b)};h.Gb=function(a,b){this.La?(this.A++,this.kc(Kd(this,a,4),b),this.A--):this.w.Gb(a,b)};h.qc=function(a,b,c){return Nd(this,a,b,c)};h.rc=function(a,b,c){return Kd(this,Nd(this,a,b,c),c)};h.ec=function(a){return this.w.na(a)};h.cd=function(a){return this.w.na(Kd(this,a,2))};h.kc=function(a,b){this.w.Va(a,b&65535)}; h.Pd=function(a,b){this.w.Va(Kd(this,a,4),b)};function Od(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Nd(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.B=a.L>>12&3,c=a.oa(d|c&a.M),a.B=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.va[a.L>>12&3];return c}function Pd(a,b,c,d){a.F&57344||(a.Na=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Nd(a,b,e,4),c&65536||(e&=65535),a.B=a.L>>12&3,e=Kd(a,e|c&65536,4),a.B=a.L>>14&3,a.w.Va(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.va[a.L>>12&3]=d} function Qd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?Ld(a,a.Y(b,c,3)):a.u[c]&255}function Rd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]}function Sd(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Nd(a,b,c,8)}function Td(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Ld(a,a.Y(b,c,3)):a.u[c]&255}function Ud(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]} function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Xa=a.Y(b,e,7),Md(a,e,d.call(a,c,Ld(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Y(b,e,6),a.w.Va(e,d.call(a,c,a.w.na(e)))):a.u[e]=d.call(a,c,a.u[e])}function Vd(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Md(a,a.Y(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Wd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.Va(a.Y(b,d,4),c):a.u[d]=c&65535;return c} function S(a,b,c){c&&(O(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3} -h.jb=function(a){this.v.complete=!0;var b=this.v.oc=this.i&&Xd(this.i),c=a?this.v.Qb?0:1:-1;this.v.Qb=!1;this.ba=this.b=a;do{if(b){if(Yd(this.i,this.u[7],c)){this.da();break}c=1}if(this.G&&(this.G&112&&(this.G&32?this.ea(168,28):this.G&64?this.ea(4,30):this.G&16&&this.ea(12,32),this.G&=-113),this.G&7))if(this.G&2){this.G&=-3;var d=160,e=(this.Pb&224)>>5;if(a=this.U&&this.U.eb>e?this.U:null)d=a.jd,e=a.eb;e>(this.L&224)>>5?(this.G&4&&(Cd(this,2),this.G&=-5),this.ea(d,26),e=!0):e=!1;if(e&&a)if(e=this.U, -e==a)this.U=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.G&1&&this.G++;this.G=this.G&7|this.L&16;this.decode(id(this))}while(0>5;if(a=this.P&&this.P.eb>e?this.P:null)d=a.jd,e=a.eb;e>(this.L&224)>>5?(this.G&4&&(jd(this,2),this.G&=-5),this.ea(d,26),e=!0):e=!1;if(e&&a)if(e=this.P, +e==a)this.P=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.G&1&&this.G++;this.G=this.G&7|this.L&16;this.decode(id(this))}while(0>1|b<<16;Fd(this,a);return a&65535}function de(a,b){a=b&2048|b>>1|b<<8;Fd(this,a<<8);return a&255}function ee(a,b){a=b&~a;P(this,a);return a}function fe(a,b){a=b&~a;P(this,a<<8);return a}function ge(a,b){a|=b;P(this,a);return a}function he(a,b){a|=b;P(this,a<<8);return a}function ie(a,b){a=~b|65536;Dd(this,a);return a&65535} -function je(a,b){a=~b|256;Dd(this,a<<8);return a&255}function ke(a,b){a=b-a;this.G&128||(this.T=this.X=a,this.R=b&(b^a));return a&65535}function le(a,b){a=b-a;var c=a<<8;b<<=8;this.G&128||(this.T=this.X=c,this.R=b&(b^c));return a&255}function me(a,b){a=b+a;this.G&128||(this.T=this.X=a,this.R=a&(b^a));return a&65535}function ne(a,b){a=b+a;var c=a<<8;this.G&128||(this.T=this.X=c,this.R=c&(b<<8^c));return a&255}function oe(a,b){a=-b;Dd(this,a,a&b&32768);return a&65535} -function pe(a,b){a=-b;Dd(this,a<<8,(a&b&128)<<8);return a&255}function qe(a,b){a=b<<1|this.P>>16&1;Fd(this,a);return a&65535}function re(a,b){a=b<<1|this.P>>16&1;Fd(this,a<<8);return a&255}function se(a,b){a=(this.P&65536|b)>>1|b<<16;Fd(this,a);return a&65535}function te(a,b){a=((this.P&65536)>>8|b)>>1|b<<8;Fd(this,a<<8);return a&255}function ue(a,b){var c=b-a;Gd(this,c,a,b);return c&65535}function ve(a,b){var c=b-a;Gd(this,c<<8,a<<8,b<<8);return c&255} -function we(a,b){this.G&128||(this.T=this.X=b&65280,this.R=this.P=0);return(b<<8|b>>8)&65535}function xe(a,b){a^=b;P(this,a);return a&65535}function ye(a){R(this,a,Rd(this,a),Zd);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} -function ze(a){var b=Ud(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.P=this.R=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.R=32768)}this.u[a]=c&65535;this.T=this.X=c;this.b-=(this.g?6:7)+b} -function Ae(a){var b=Ud(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.P=this.R=0;b&=63;if(b&32){b=64-b;32>b-1;this.P=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.u[a|1]=d&65535;this.T=d>>16;this.X=d>>16|d;this.b-=(this.g?6:7)+b}function Be(a){S(this,a,!fd(this))}function Ce(a){S(this,a,fd(this))} +function je(a,b){a=~b|256;Dd(this,a<<8);return a&255}function ke(a,b){a=b-a;this.G&128||(this.U=this.X=a,this.S=b&(b^a));return a&65535}function le(a,b){a=b-a;var c=a<<8;b<<=8;this.G&128||(this.U=this.X=c,this.S=b&(b^c));return a&255}function me(a,b){a=b+a;this.G&128||(this.U=this.X=a,this.S=a&(b^a));return a&65535}function ne(a,b){a=b+a;var c=a<<8;this.G&128||(this.U=this.X=c,this.S=c&(b<<8^c));return a&255}function oe(a,b){a=-b;Dd(this,a,a&b&32768);return a&65535} +function pe(a,b){a=-b;Dd(this,a<<8,(a&b&128)<<8);return a&255}function qe(a,b){a=b<<1|this.R>>16&1;Fd(this,a);return a&65535}function re(a,b){a=b<<1|this.R>>16&1;Fd(this,a<<8);return a&255}function se(a,b){a=(this.R&65536|b)>>1|b<<16;Fd(this,a);return a&65535}function te(a,b){a=((this.R&65536)>>8|b)>>1|b<<8;Fd(this,a<<8);return a&255}function ue(a,b){var c=b-a;Gd(this,c,a,b);return c&65535}function ve(a,b){var c=b-a;Gd(this,c<<8,a<<8,b<<8);return c&255} +function we(a,b){this.G&128||(this.U=this.X=b&65280,this.S=this.R=0);return(b<<8|b>>8)&65535}function xe(a,b){a^=b;P(this,a);return a&65535}function ye(a){R(this,a,Rd(this,a),Zd);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} +function ze(a){var b=Ud(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.R=this.S=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.S=32768)}this.u[a]=c&65535;this.U=this.X=c;this.b-=(this.g?6:7)+b} +function Ae(a){var b=Ud(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.R=this.S=0;b&=63;if(b&32){b=64-b;32>b-1;this.R=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.u[a|1]=d&65535;this.U=d>>16;this.X=d>>16|d;this.b-=(this.g?6:7)+b}function Be(a){S(this,a,!fd(this))}function Ce(a){S(this,a,fd(this))} function De(a){R(this,a,Rd(this,a),ee);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ee(a){Q(this,a,Qd(this,a),fe);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Fe(a){R(this,a,Rd(this,a),ge);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ge(a){Q(this,a,Qd(this,a),he);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} function He(a){P(this,Rd(this,a)&Ud(this,a));this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ie(a){P(this,(Qd(this,a)&Td(this,a))<<8);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Je(a){S(this,a,hd(this))}function Ke(a){S(this,a,!this.Da()==!gd(this))}function Le(a){S(this,a,!hd(this)&&!this.Da()==!gd(this))}function Me(a){S(this,a,!fd(this)&&!hd(this))}function Ne(a){S(this,a,hd(this)||!this.Da()!=!gd(this))} -function Oe(a){S(this,a,fd(this)||hd(this))}function Pe(a){S(this,a,!this.Da()!=!gd(this))}function Qe(a){S(this,a,this.Da())}function Re(a){S(this,a,!hd(this))}function Se(a){S(this,a,!this.Da())}function Te(){this.ea(12,1);this.b-=5}function Ue(a){S(this,a,!0)}function Ve(a){S(this,a,!gd(this))}function We(a){S(this,a,gd(this))}function T(a){a&1&&(this.P=0);a&2&&(this.R=0);a&4&&(this.X=1);a&8&&(this.T=0);this.b-=5} +function Oe(a){S(this,a,fd(this)||hd(this))}function Pe(a){S(this,a,!this.Da()!=!gd(this))}function Qe(a){S(this,a,this.Da())}function Re(a){S(this,a,!hd(this))}function Se(a){S(this,a,!this.Da())}function Te(){this.ea(12,1);this.b-=5}function Ue(a){S(this,a,!0)}function Ve(a){S(this,a,!gd(this))}function We(a){S(this,a,gd(this))}function T(a){a&1&&(this.R=0);a&2&&(this.S=0);a&4&&(this.X=1);a&8&&(this.U=0);this.b-=5} function Xe(a){var b=Rd(this,a);a=Ud(this,a);Gd(this,b-a,a,b);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ye(a){var b=Qd(this,a)<<8;a=Td(this,a)<<8;Gd(this,b-a,a,b);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)} -function Ze(a){var b=Ud(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.P=this.R=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.X=d>>16|d,this.T=d>>16):(this.R=32768,this.X=d>>15|d,this.T=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.T=0,this.R=32768,this.P=65536,this.b-=7}function $e(){this.ea(24,2);this.b-=25} +function Ze(a){var b=Ud(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.R=this.S=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.X=d>>16|d,this.U=d>>16):(this.S=32768,this.X=d>>15|d,this.U=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.U=0,this.S=32768,this.R=65536,this.b-=7}function $e(){this.ea(24,2);this.b-=25} function af(){this.L&49152?(this.Z|=128,this.ea(4,3)):this.i?$b(this.i):this.da();this.b-=7}function bf(){this.ea(16,4);this.b-=25}var cf=[0,7,7,10,7,11,9,13];function df(a){var b=this.b;O(this,Sd(this,a));this.b=b-cf[this.g]}var ef=[0,14,14,17,14,18,16,20];function ff(a){var b=this.b,c=Sd(this,a);a=a>>6&7;Hd(this,this.u[a]);this.u[a]=this.u[7];O(this,c);this.b=b-ef[this.g]}var gf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17]; function hf(a){var b=Rd(this,a),c=this.b;P(this,Wd(this,a,b));this.b=c-gf[(this.H?8:0)+this.g]+(7!=this.f||this.g?0:2)}function jf(a){var b=Qd(this,a);P(this,Vd(this,a,b,1)<<8);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var kf=[7,13,13,17,14,18,17,21]; -function lf(a){var b=Ud(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.G&128||(this.T=b>>16,this.X=this.T|b,this.R=0,this.P=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)O(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function rf(a){R(this,a,Rd(this,a),ue);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function sf(a){R(this,a,0,we);this.b-=this.g?9:3+(7==this.f?2:0)}function tf(){this.ea(28,5);this.b-=5}function uf(){this.G&4||this.D.$();this.G|=4;Cd(this,-2);this.b-=3} +function lf(a){var b=Ud(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.G&128||(this.U=b>>16,this.X=this.U|b,this.S=0,this.R=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)O(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function rf(a){R(this,a,Rd(this,a),ue);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function sf(a){R(this,a,0,we);this.b-=this.g?9:3+(7==this.f?2:0)}function tf(){this.ea(28,5);this.b-=5}function uf(){this.G&4||this.D.$();this.G|=4;jd(this,-2);this.b-=3} function vf(a){R(this,a,Rd(this,a),xe);this.b-=this.g?9:3+(7==this.f?2:0)}function V(a){var b;if(b=this.i)b=this.i,C(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function bd(a){wf[a>>12].call(this,a)}function xf(a){yf[a>>6&3].call(this,a)}function zf(a){Af[a>>6&3].call(this,a)}function Bf(a){Cf[a>>6&3].call(this,a)}function Df(a){Ef[a&15].call(this,a)}function Ff(a){Gf[a&15].call(this,a)}function Hf(a){If[a>>6&3].call(this,a)}function Jf(a){Kf[a>>6&3].call(this,a)} function Lf(a){Mf[a>>6&3].call(this,a)} -var wf=[function(a){Nf[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,ye,V,function(a){gg[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,rf,V],Nf=[function(a){hg[a>>4&15].call(this,a)},Ue,Re,Je,Ke,Pe,Le,Ne,ff,ff,xf,zf,Bf,V,V,V],yf=[function(a){Dd(this,Wd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,ke);this.b-=this.g?9:3+(7==this.f?2:0)}],Af=[function(a){R(this,a,0, +var wf=[function(a){Nf[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,ye,V,function(a){Of[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,rf,V],Nf=[function(a){hg[a>>4&15].call(this,a)},Ue,Re,Je,Ke,Pe,Le,Ne,ff,ff,xf,zf,Bf,V,V,V],yf=[function(a){Dd(this,Wd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,ke);this.b-=this.g?9:3+(7==this.f?2:0)}],Af=[function(a){R(this,a,0, oe);this.b-=this.g?11:6},function(a){R(this,a,fd(this)?1:0,Zd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,fd(this)?1:0,ue);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Ud(this,a);Dd(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Cf=[function(a){R(this,a,0,se);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,qe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ce);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ae);this.b-=this.g?9:3+(7==this.f?2:0)}], -hg=[function(a){ig[a&15].call(this,a)},V,V,V,df,df,df,df,pf,V,Df,Ff,sf,sf,sf,sf],ig=[af,uf,of,Te,bf,nf,V,V,V,V,V,V,V,V,V,V],Ef=[mf,function(){this.P=0;this.b-=5},function(){this.R=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.T=0;this.b-=5},T,T,T,T,T,T,T],Gf=[mf,function(){this.P=65536;this.b-=5},function(){this.R=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.T=32768;this.b-=5},W,W,W,W,W,W,W],gg=[Se,Qe,Me,Oe,Ve,We,Be,Ce,$e,tf,Hf,Jf,Lf,V,V,V],If=[function(a){Dd(this, +hg=[function(a){ig[a&15].call(this,a)},V,V,V,df,df,df,df,pf,V,Df,Ff,sf,sf,sf,sf],ig=[af,uf,of,Te,bf,nf,V,V,V,V,V,V,V,V,V,V],Ef=[mf,function(){this.R=0;this.b-=5},function(){this.S=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.U=0;this.b-=5},T,T,T,T,T,T,T],Gf=[mf,function(){this.R=65536;this.b-=5},function(){this.S=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.U=32768;this.b-=5},W,W,W,W,W,W,W],Of=[Se,Qe,Me,Oe,Ve,We,Be,Ce,$e,tf,Hf,Jf,Lf,V,V,V],If=[function(a){Dd(this, Vd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,je);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,ne);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,le);this.b-=this.g?9:3+(7==this.f?2:0)}],Kf=[function(a){Q(this,a,0,pe);this.b-=this.g?11:6},function(a){Q(this,a,fd(this)?1:0,$d);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,fd(this)?1:0,ve);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Td(this,a);Dd(this,a<<8);this.b-=this.g?4:3+(7== this.f?2:0)}],Mf=[function(a){Q(this,a,0,te);this.b-=this.g?9+(this.Xa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,de);this.b-=this.g?9+(this.Xa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)}];function cd(a){jg[a>>12].call(this,a)} var jg=[function(a){kg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,ye,function(a){lg[a>>8&15].call(this,a)},function(a){mg[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,rf,V],kg=[function(a){ng[a>>4&15].call(this,a)},Ue,Re,Je,Ke,Pe,Le,Ne,ff,ff,xf,zf,Bf,function(a){og[a>>6&3].call(this,a)},V,V],og=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.oa(a|this.M);O(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Od(this,a,0);Hd(this,a);P(this,a);this.b-=11},function(a){var b=Jd(this),c= @@ -160,111 +160,111 @@ ug(c))})}}u(tg);tg.prototype.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;ug( Ta(function(){for(var a=B(document,"pdp11","ram"),b=0;b=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=va(b[0]);if(c!=this.Wa)return;b=va(b[1]);if(this.I=lb(b)){var d=this.I.exports;if(d){var e=d.connect;e&&e.call(this.I);if(this.K=d.receiveData){this.status(this.Ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.Aa=function(a,b){if(!b)if(this.cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -h.za=function(a){return a?this.save():!0};h.reset=function(){yg(this)};h.save=function(){var a=new N(this);a.set(0,[]);return a.data()};h.restore=function(){return yg(this)};function yg(a){a.N=0;a.f=0;a.g=128;a.B=[];return!0}h.Ob=function(a){if("number"==typeof a)this.B.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.O||8,c=a-this.H%a,this.O&&(b=ua("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.A.value+=b;this.A.scrollTop=this.A.scrollHeight;this.H+=c}else if(null!=this.F){if(10==a||1024<=this.F.length)this.j(this.F), this.F="";10!=a&&(this.F+=String.fromCharCode(a))}this.g&=-129;rc(this.b,this.V,1)}};var zg={},xg=(zg[65392]=[null,null,X.prototype.Sc,X.prototype.Ed,"RCSR"],zg[65394]=[null,null,X.prototype.Rc,X.prototype.Dd,"RBUF"],zg[65396]=[null,null,X.prototype.ed,X.prototype.Rd,"XCSR"],zg[65398]=[null,null,X.prototype.dd,X.prototype.Qd,"XBUF"],zg);Ta(function(){for(var a=B(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.J[b]=c,!0;case "loadTape":return this.J[b]=c,c.onclick=function(){var a=d.J.listTapes;a&&Bg(d, -a.options[a.selectedIndex].text,a.value)},!0;case "mountTape":if(this.M)return this.J[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Bg(d,oa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; -h.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;var e=this;if((this.g=Pc(this.D,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){n("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.O=sc(56,4);this.N=hc(this.b,function(){Cg(e)});ec(b,this,Dg);Eg(this,"None",Ag,!0);this.M&&Eg(this,"Local Tape","?");Eg(this,"Remote Tape","??");Fg(this)||H(this)}; -h.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.za=function(a){return a?this.save():!0};h.reset=function(){this.f&=-2241;this.K=0};function Fg(a){a.A=0;if(a.g){var b=a.g.path,c;if(!(c=a.g.name))a:{if((c=a.J.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(d=pa(c),e="json"==d||"gz"==d?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(e,null,!0,function(d,e,f){var g=0>f&&a.D&&!a.D.v.ha;if(f)a.ga('Unable to load tape "'+b+'" (error '+f+": "+d+")",g);else if(jb(a.Ra,d,e),d=Ca(d,e))a.B=c,a.I=0,a.H= -d.ia;a.v.Ia=!1;a.A&&(a.A--,a.A||H(a));Jg(a)})}function Eg(a,b,c,d){if((a=a.J.listTapes)&&a.options){for(var e=0;e=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Lg.prototype.$b=function(){return-1};Lg.prototype.ac=function(){}; -function Ng(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.U?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} -function Og(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; +function wc(a){r.call(this,"PC11",a,wc);this.g=a.autoMount||null;this.I=this.M=this.f=this.A=0;this.H=[];this.F=Ag;this.K=Bg;this.B="";this.N=!La("Mobi")&&window&&"FileReader"in window}u(wc);var Ag="",Bg=0;h=wc.prototype; +h.ra=function(a,b,c){var d=this,e=Bg;switch(b){case "listTapes":return this.J[b]=c,c.onchange=function(){var a=d.J.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(m){n("PC11 option error: "+m.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b=''+b+"");a.innerHTML=b}},!0;case "descTape":return this.J[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.J[b]=c,c.onclick= +function(){var a=d.J.listTapes;a&&Cg(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(this.N)return this.J[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Cg(d,oa(b,!0),b,1,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; +h.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;var e=this;if((this.g=Pc(this.D,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){n("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.P=sc(56,4);this.O=hc(this.b,function(){Dg(e)});ec(b,this,Eg);Fg(this,"None",Ag,!0);this.N&&Fg(this,"Local Tape","?");Fg(this,"Remote Tape","??");Gg(this)||H(this)}; +h.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.za=function(a){return a?this.save():!0};h.reset=function(){this.f&=-2241;this.M=0};function Gg(a){a.A=0;if(a.g){var b=a.g.path,c;if(!(c=a.g.name))a:{if((c=a.J.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(e=pa(c),f="json"==e||"gz"==e?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(f,null,!0,function(e,f,g){var k=0>g&&a.D&&!a.D.v.ha;if(g)a.ga('Unable to load tape "'+b+'" (error '+g+": "+e+")",k);else if(jb(a.Ra,e,f),e=Ca(e, +f))e=e.ia,a.B=c,a.K=d,2!=d&&(a.I=0,a.H=e);a.v.Ia=!1;a.A&&(a.A--,a.A||H(a));Kg(a)})}function Fg(a,b,c,d){if((a=a.J.listTapes)&&a.options){for(var e=0;e=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Mg.prototype.$b=function(){return-1};Mg.prototype.ac=function(){}; +function Og(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} +function Pg(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} -function Pg(a,b,c){var d;if(b){b=Qg(a,b);for(var e=0,f=!1,g=b,k=[],m=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Tg(a,b){if(b)return Sg(a,b,a.aa[b]);var c=0;for(b in a.aa)Sg(a,b,a.aa[b]),c++;return 0>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Ug(a,b){if(b)return Tg(a,b,a.aa[b]);var c=0;for(b in a.aa)Tg(a,b,a.aa[b]),c++;return 0this.b.ab?bh:[];ch(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(dh(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ja;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<this.b.ab?ch:[];dh(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(eh(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ja;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}h.ac=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; +d.pa.value="";Sc(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Na(c,function(a){var b=!1;ob(d,!0)||(nb(d,!0),b=d.jb(a?1:0),nb(d,!1));return b}),!0}return!1};h.ub=function(){this.pa&&this.pa.focus()};h.Y=function(a){a=a&&a.C;null==a&&(a=-1);return a};h.ob=function(a,b){var c=255,d=this.Y(a,!1,1);-1!==d&&(c=a.yb?this.w.Bb(d):this.b.Bb(d),b&&fh(a,b));return c};h.na=function(a,b){var c=65535,d=this.Y(a,!1,2);-1!==d&&(c=a.yb?this.w.pb(d):this.b.pb(d),b&&fh(a,b));return c}; +h.Fb=function(a,b,c){var d=this.Y(a,!0,1);-1!==d&&(a.yb?this.w.hb(d,b):this.b.hb(d,b),c&&fh(a,c),this.D.$(!0))};h.Va=function(a,b,c){var d=this.Y(a,!0,2);-1!==d&&(a.yb?this.w.Gb(d,b):this.b.Gb(d,b),c&&fh(a,c),this.D.$(!0))};function Z(a,b){return{C:a,yb:b,Ba:!1}}function gh(a){return[a.C,a.Ba]}function hh(a){return{C:a[0],Ba:a[1]}} +function eh(a,b,c){var d,e=(c?a.K:a.Qa).C;c=!1;if(void 0!==b){b=Rg(a,b);"%"==b.charAt(0)&&(c=!0,b=b.substr(1));d=b;var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),e=0;ed&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}h.ac=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; h.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.tb).C));this.la&1073741824?this.wa.push(a):this.sa&&a==this.sa||(this.sa=a,this.la&-2147483648&&(this.da(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.pa=0,a.D.$()))}; -function Wg(a){var b;if(Xd(a)){if(!a.I||!a.I.length){a.I=Array(1E3);for(b=0;b>>d.ja],!1)}a.M=["br"];if(a.B)for(b=1;b>>d.ja],!0);a.B=["bw"];a.Xa=0} -h.Sa=function(a,b,c){var d=!0;c||nh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.C)),d=!1;else{var f=this.w;f.W[e>>>f.ja].Sa(e&f.w,a==this.B)}}d&&(a.push(b),c?b.Ba=!0:(oh(this,a,a.length-1,"set"),Wg(this)));return d};function nh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ja],b==a.B));k.Ba||Wg(a);break}}return f} -function ph(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.C-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= -ih(E);break;case 8:y="@"+ih(E);break;case 16:7>E?y="("+ih(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+ih(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+ih(E)+")";break;case 40:y="@-("+ih(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+ih(E)+")";7==E&&(y=[y,J(x,F+w.C&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+ih(E)+")",7==E&&(y=[y,J(x,F+w.C&65535)])}x=y;if(!x||!x.length){k="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=ih(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function uh(a){var b,c="";for(b=0;6>b;b++)c+=th(a,b);c=c+"\n"+(th(a,6)+th(a,7)+th(a,20));return c+=sh(a,"T")+sh(a,"N")+sh(a,"Z")+sh(a,"V")+sh(a,"C")}h.Vb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,k=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.D.$();a.j("updated registers:")}a.j(uh(a));c&&(a.K=Z(d.u[7]),lh(a,J(a,a.K.C)))}}function zh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1k[0].indexOf("+"))){var p=k[0]+":";k[2]&&(p+=" "+k[2]);a.j(p)}k[3]&&(g=k[3],f=null);f=rh(a,b,g,f);a.j(f);a.K=b;e-=b.C-m;c++}}} -function qh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.U&&(a.j("ended assemble at "+J(a,a.O.C)),a.K=a.O,a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.sa=null;if(pb(a)&&0q||"z"ja.length&&(a.j("note: only "+ja.length+" available"),Y=ja.length);ca-=Y;0>ca&&(null==ja[ja.length-1].C?(Y=ca+Y,ca=0):ca+=ja.length);var md=[];"call"==Tf&&(vb=1E5,md=["CALL"]);for(void 0!==Sf&&a.j(Y+" instructions earlier:");0=ja.length&&(ca=0);a.Ya=Y;Vf++;vb--}}Vf||(a.j("no "+Uf+"history available"),a.Ya=void 0)}else{var xb=dh(a,ia);if(xb){var ic=0;Ga&&("l"==Ga.charAt(0)&&(Ga=Ga.substr(1)||Th),ic=Rg(a,Ga)>>>0,65536>4||1;Vh--&&0lc?String.fromCharCode(lc):".";jc--}yb&&(yb+="\n");yb+=ia+" "+nd+(0==Ab?" "+Yf:"")}yb&&a.j(yb);a.Qa=xb}}}}break;case "e":if("else"==g[0])break;var bb,pd,qd,rd,sd=g[0],td=g[1];"eb"==sd?(bb=1,pd=255,qd=a.ob,rd=a.Fb):"e"==sd||"ew"==sd?(bb=2,pd=65535,qd=a.na,rd=a.Va):td=null;if(null==td)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var mc=dh(a,td);if(mc)for(var nc=2;nc< -g.length;nc++){var Bb=Pg(a,g[nc]);if(void 0===Bb){a.j("unrecognized value: "+g[nc]);break}Bb&~pd&&a.j("warning: "+l(Bb)+" exceeds "+bb+"-byte value");var Wh=qd.call(a,mc);a.j("changing "+J(a,mc.C)+" from "+J(a,Wh,bb)+" to "+J(a,Bb,bb));rd.call(a,mc,Bb,bb)}}break;case "g":a:{var Zf=g[1],Xh=b;if(void 0!==Zf){var ud=dh(a,Zf,!0);if(!ud)break a;hh(a,ud,Xh);a.Sa(a.f,ud,!0)}a.ib(!0,c)}break;case "h":a.v.ca?(c||a.j("halting"),a.da()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var vd; -var Cb=b.substr(2),Cb=va(Cb);Pg(a,Cb)?(c||a.j("true: "+Cb),vd=!0):(c||a.j("false: "+Cb),vd=!1);vd||(d=!1);break}f=!0;break;case "k":var Yh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var wd=0,xd=Z(),Db=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Db.C));10>wd;){for(var Ha=null,Zh=256;65536>Db.C>>>0;){xd.C=a.na(Db,2);if(null==Db.C||!Zh--)break;if(!(xd.C&1)){for(var $h=a,oc=xd,$f=null,Eb=oc.C,ag=Eb,yd=1;6>=yd&&Eb;yd++){if(2< -yd){oc.C=Eb;var pc=rh($h,oc);if(0<=pc.indexOf("JSR")){var bg=pc.indexOf(" ");if(Eb+(pc.indexOf(" ",bg+1)-bg-1)/2==ag){$f=pc;break}}}Eb-=2}oc.C=ag;if(Ha=$f)break}}if(!Ha||null==Ha)break;var cg=null;if("ks"==Yh){var dg=Ha.match(/[0-9A-F]+$/);dg&&(cg=yh(a,dg[0]))}Ha=ua(Ha,50)+" ;"+(cg||"stack="+J(a,Db.C));a.j(Ha);wd++}wd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){yh(a,g[1],!0);break}f=!0;break;case "m":a:{var ka,la=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== -G)xa=1878917119,G=null;else if("on"==G)la=!0,G=null;else if("off"==G)la=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(ka in tb)if(G==ka){xa=tb[ka];la=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,la=!0;else if("off"==g[2]&&(a.la&=~xa,la=!1,1073741824==xa)){for(var zd=0;zd>>d.ja],!1)}a.M=["br"];if(a.B)for(b=1;b>>d.ja],!0);a.B=["bw"];a.Xa=0} +h.Sa=function(a,b,c){var d=!0;c||oh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.C)),d=!1;else{var f=this.w;f.W[e>>>f.ja].Sa(e&f.w,a==this.B)}}d&&(a.push(b),c?b.Ba=!0:(ph(this,a,a.length-1,"set"),Xg(this)));return d};function oh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ja],b==a.B));k.Ba||Xg(a);break}}return f} +function qh(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.C-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= +jh(E);break;case 8:y="@"+jh(E);break;case 16:7>E?y="("+jh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+jh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+jh(E)+")";break;case 40:y="@-("+jh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+jh(E)+")";7==E&&(y=[y,J(x,F+w.C&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+jh(E)+")",7==E&&(y=[y,J(x,F+w.C&65535)])}x=y;if(!x||!x.length){k="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=jh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function vh(a){var b,c="";for(b=0;6>b;b++)c+=uh(a,b);c=c+"\n"+(uh(a,6)+uh(a,7)+uh(a,20));return c+=th(a,"T")+th(a,"N")+th(a,"Z")+th(a,"V")+th(a,"C")}h.Vb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,k=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.D.$();a.j("updated registers:")}a.j(vh(a));c&&(a.K=Z(d.u[7]),mh(a,J(a,a.K.C)))}}function Ah(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1k[0].indexOf("+"))){var p=k[0]+":";k[2]&&(p+=" "+k[2]);a.j(p)}k[3]&&(g=k[3],f=null);f=sh(a,b,g,f);a.j(f);a.K=b;e-=b.C-m;c++}}} +function rh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.P&&(a.j("ended assemble at "+J(a,a.O.C)),a.K=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.sa=null;if(pb(a)&&0q||"z"ja.length&&(a.j("note: only "+ja.length+" available"),Y=ja.length);ca-=Y;0>ca&&(null==ja[ja.length-1].C?(Y=ca+Y,ca=0):ca+=ja.length);var nd=[];"call"==Uf&&(vb=1E5,nd=["CALL"]);for(void 0!==Tf&&a.j(Y+" instructions earlier:");0=ja.length&&(ca=0);a.Ya=Y;Wf++;vb--}}Wf||(a.j("no "+Vf+"history available"),a.Ya=void 0)}else{var xb=eh(a,ia);if(xb){var ic=0;Ga&&("l"==Ga.charAt(0)&&(Ga=Ga.substr(1)||Uh),ic=Sg(a,Ga)>>>0,65536>4||1;Wh--&&0lc?String.fromCharCode(lc):".";jc--}yb&&(yb+="\n");yb+=ia+" "+od+(0==Ab?" "+Zf:"")}yb&&a.j(yb);a.Qa=xb}}}}break;case "e":if("else"==g[0])break;var bb,qd,rd,sd,td=g[0],ud=g[1];"eb"==td?(bb=1,qd=255,rd=a.ob,sd=a.Fb):"e"==td||"ew"==td?(bb=2,qd=65535,rd=a.na,sd=a.Va):ud=null;if(null==ud)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var mc=eh(a,ud);if(mc)for(var nc=2;nc< +g.length;nc++){var Bb=Qg(a,g[nc]);if(void 0===Bb){a.j("unrecognized value: "+g[nc]);break}Bb&~qd&&a.j("warning: "+l(Bb)+" exceeds "+bb+"-byte value");var Xh=rd.call(a,mc);a.j("changing "+J(a,mc.C)+" from "+J(a,Xh,bb)+" to "+J(a,Bb,bb));sd.call(a,mc,Bb,bb)}}break;case "g":a:{var $f=g[1],Yh=b;if(void 0!==$f){var vd=eh(a,$f,!0);if(!vd)break a;ih(a,vd,Yh);a.Sa(a.f,vd,!0)}a.ib(!0,c)}break;case "h":a.v.ca?(c||a.j("halting"),a.da()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var wd; +var Cb=b.substr(2),Cb=va(Cb);Qg(a,Cb)?(c||a.j("true: "+Cb),wd=!0):(c||a.j("false: "+Cb),wd=!1);wd||(d=!1);break}f=!0;break;case "k":var Zh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var xd=0,yd=Z(),Db=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Db.C));10>xd;){for(var Ha=null,$h=256;65536>Db.C>>>0;){yd.C=a.na(Db,2);if(null==Db.C||!$h--)break;if(!(yd.C&1)){for(var ai=a,oc=yd,ag=null,Eb=oc.C,bg=Eb,zd=1;6>=zd&&Eb;zd++){if(2< +zd){oc.C=Eb;var pc=sh(ai,oc);if(0<=pc.indexOf("JSR")){var cg=pc.indexOf(" ");if(Eb+(pc.indexOf(" ",cg+1)-cg-1)/2==bg){ag=pc;break}}}Eb-=2}oc.C=bg;if(Ha=ag)break}}if(!Ha||null==Ha)break;var dg=null;if("ks"==Zh){var eg=Ha.match(/[0-9A-F]+$/);eg&&(dg=zh(a,eg[0]))}Ha=ua(Ha,50)+" ;"+(dg||"stack="+J(a,Db.C));a.j(Ha);xd++}xd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){zh(a,g[1],!0);break}f=!0;break;case "m":a:{var ka,la=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== +G)xa=1878917119,G=null;else if("on"==G)la=!0,G=null;else if("off"==G)la=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(ka in tb)if(G==ka){xa=tb[ka];la=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,la=!0;else if("off"==g[2]&&(a.la&=~xa,la=!1,1073741824==xa)){for(var Ad=0;Ad\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bEh){if(Gh(d,this.I)){this.B=new N(this,"1.30.1","failsafe");Gh(this.B)&&(Lh(this,d),a=2,Mh(this.B));this.B.set("timestamp",Aa());Nh(this.B);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Kh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Gh(d,g):("error"== -f&&"no machine state"!=g?(this.ga("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Mh(d),Gh(d)?(c=Kh(d),e=!0):c=!1))}e&&Jh(this,c?d:null)}else 2==a&&d.clear()}else Jh(this);delete this.I;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ha=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.b&&(Oh(this,this.b,b,c,a),this.b.mb());this.O&&(Lh(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.D=0}; -function Lh(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} -function Bh(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),k=Aa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.da(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ha=!1,!1===d&&(e=null)));for(var k=kb(a.id),m=0;m\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bFh){if(Hh(d,this.I)){this.B=new N(this,"1.30.1","failsafe");Hh(this.B)&&(Mh(this,d),a=2,Nh(this.B));this.B.set("timestamp",Aa());Oh(this.B);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Lh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Hh(d,g):("error"== +f&&"no machine state"!=g?(this.ga("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Nh(d),Hh(d)?(c=Lh(d),e=!0):c=!1))}e&&Kh(this,c?d:null)}else 2==a&&d.clear()}else Kh(this);delete this.I;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ha=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.b&&(Ph(this,this.b,b,c,a),this.b.mb());this.O&&(Mh(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.D=0}; +function Mh(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} +function Ch(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),k=Aa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.da(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ha=!1,!1===d&&(e=null)));for(var k=kb(a.id),m=0;mf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=k[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);k[0]!=m&&(g=g.replace(k[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],g);fi(a,b,c)}})}else c(a,null)} -function gi(a,b,c,d){function e(a){if(void 0===k){var b=g&&B(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Sh||Va(!0));m=!1}var g,k,m=!0;Sh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,k){k?di(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=k.transformNode(m))?(g.outerHTML=m,--Sh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Sh||Va(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?di(b,a,d,!0,e,p):ei(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return gi(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map +h.ra=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.D||(d.v.ha?Ch(d,!1,!0):Jh(d,d.sb))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.v.ha&&!d.D)if(d.f&&!d.H){var a=Da("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Ch(d,a,!0);!a&&d.N?window&&window.location.reload():d.sb(Fh)}else d.reset(),d.b&&d.b.mb()},!0;case "save":if(qa())c.parentNode.removeChild(c);else return this.J[b]= +c,c.onclick=function(){var a=Gh(d,!0);if(a){var b=!!(d.f&&!d.H||d.N),c=Ch(d,b);b?Qh(d,a,c):d.ga("Resume disabled, machine state not saved")}},!0}return!1}; +function Gh(a,b){var c=a.g;c||((c=Ja("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Rh(a,c))||a.ga("The user ID is invalid.")):b&&a.ga("Browser local storage is not available"));return c} +function Rh(a,b){a.g=null;b=Ba(ra()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ka("user",b.data),a.g=b.data)}catch(d){n(d.message+" ("+c+")")}return a.g}function Ih(a){var b=null;a.g&&(b=ra()+"/api/v1/user?req=load&user="+a.g+"&state="+Sh(a,"1.30.1"));return b} +function Qh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Sh(a,"1.30.1");d.data=c;b=Ba(ra()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=k[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);k[0]!=m&&(g=g.replace(k[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],g);gi(a,b,c)}})}else c(a,null)} +function hi(a,b,c,d){function e(a){if(void 0===k){var b=g&&B(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Th||Va(!0));m=!1}var g,k,m=!0;Th++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,k){k?ei(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=k.transformNode(m))?(g.outerHTML=m,--Th||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Th||Va(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?ei(b,a,d,!0,e,p):fi(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return hi(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map diff --git a/versions/pdpjs/1.30.1/pdp11.js b/versions/pdpjs/1.30.1/pdp11.js index 3f0a259e4d..f32432395e 100644 --- a/versions/pdpjs/1.30.1/pdp11.js +++ b/versions/pdpjs/1.30.1/pdp11.js @@ -128,8 +128,8 @@ function zd(){this.w&49152?(this.G|=128,F(this,4,3)):this.F?this.F.c():Xa(this); function Fd(a){var b=Q(this,a),c=this.a;N(this,wc(this,a,b));this.a=c-Ed[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)}function Gd(a){var b=rc(this,a);N(this,vc(this,a,b,1)<<8);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Hd=[7,13,13,17,14,18,17,21]; function Id(a){var b=uc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.l&128||(this.o=b>>16,this.h=this.o|b,this.g=0,this.j=-32768>b||32767>6;if(this.f[b]=this.f[b]-1&65535)M(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Od(a){S(this,a,Q(this,a),Tc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function X(a){S(this,a,0,Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Pd(){F(this,28,5);this.a-=5}function Qd(){this.l&4||this.v.fa();this.l|=4;gc(this,-2);this.a-=3} -function Rd(a){S(this,a,Q(this,a),Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){F(this,8,6)}function bc(a){Sd[a>>12].call(this,a)}function Td(a){Ud[a>>6&3].call(this,a)}function Vd(a){Xd[a>>6&3].call(this,a)}function Yd(a){Zd[a>>6&3].call(this,a)}function $d(a){ae[a&15].call(this,a)}function be(a){ce[a&15].call(this,a)}function de(a){ee[a>>6&3].call(this,a)}function fe(a){ge[a>>6&3].call(this,a)}function he(a){ie[a>>6&3].call(this,a)} -var Sd=[function(a){je[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,Y,function(a){ke[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],je=[function(a){le[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Td,Vd,Yd,Y,Y,Y],Ud=[function(a){O(this,wc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],Xd=[function(a){S(this,a,0,Nc); +function Rd(a){S(this,a,Q(this,a),Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){F(this,8,6)}function bc(a){Sd[a>>12].call(this,a)}function Td(a){Ud[a>>6&3].call(this,a)}function Vd(a){Wd[a>>6&3].call(this,a)}function Yd(a){Zd[a>>6&3].call(this,a)}function $d(a){ae[a&15].call(this,a)}function be(a){ce[a&15].call(this,a)}function de(a){ee[a>>6&3].call(this,a)}function fe(a){ge[a>>6&3].call(this,a)}function he(a){ie[a>>6&3].call(this,a)} +var Sd=[function(a){je[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,Y,function(a){ke[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],je=[function(a){le[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Td,Vd,Yd,Y,Y,Y],Ud=[function(a){O(this,wc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],Wd=[function(a){S(this,a,0,Nc); this.a-=this.c?11:6},function(a){S(this,a,L(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,L(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=uc(this,a);O(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Zd=[function(a){S(this,a,0,Rc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Bc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}],le=[function(a){me[a& 15].call(this,a)},Y,Y,Y,V,V,V,V,Md,Y,$d,be,X,X,X,X],me=[zd,Qd,Ld,rd,Ad,Kd,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],ae=[Jd,function(){this.j=0;this.a-=5},function(){this.g=0;this.a-=5},U,function(){this.h=1;this.a-=5},U,U,U,function(){this.o=0;this.a-=5},U,U,U,U,U,U,U],ce=[Jd,function(){this.j=65536;this.a-=5},function(){this.g=32768;this.a-=5},W,function(){this.h=0;this.a-=5},W,W,W,function(){this.o=32768;this.a-=5},W,W,W,W,W,W,W],ke=[qd,od,kd,md,td,ud,$c,ad,yd,Pd,de,fe,he,Y,Y,Y],ee=[function(a){O(this,vc(this,a,0)); this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Ic);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Mc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)}],ge=[function(a){R(this,a,0,Oc);this.a-=this.c?11:6},function(a){R(this,a,L(this)?1:0,yc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,L(this)?1:0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=tc(this,a);O(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}],ie= @@ -152,43 +152,43 @@ g.Z=function(a){return a?this.save():!0};g.reset=function(){Ce(this)};g.save=fun g.dc=function(){this.b&=-129;0":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.H||8,c=a-this.o%a,this.H&&(b=" ".slice(0,c)));this.B&&!this.o&&c&&(b=String.fromCharCode(this.B)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.o+=c}else if(null!=this.j){if(10==a||1024<=this.j.length)this.P(this.j), this.j="";10!=a&&(this.j+=String.fromCharCode(a))}this.c&=-129;yb(this.a,this.K,1)}};var De={},Be=(De[65392]=[null,null,Z.prototype.ec,Z.prototype.Rc,"RCSR"],De[65394]=[null,null,Z.prototype.dc,Z.prototype.Qc,"RBUF"],De[65396]=[null,null,Z.prototype.sc,Z.prototype.ed,"XCSR"],De[65398]=[null,null,Z.prototype.rc,Z.prototype.dd,"XBUF"],De);q(function(){for(var a=A(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.s[b]=c,!0;case "loadTape":return this.s[b]=c,c.onclick=function(){var a=d.s.listTapes;a&&Fe(d, -a.options[a.selectedIndex].text,a.value)},!0;case "mountTape":if(this.B)return this.s[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Fe(d,ka(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; -g.ea=function(a,b,c,d){this.v=a;this.m=b;this.a=c;this.F=d;var e=this;if((this.c=Tb(this.v,"autoMount")||this.c)&&"string"==typeof this.c)try{this.c=eval("("+this.c+")")}catch(f){m("PC11 auto-mount error: "+f.message+" ("+this.c+")"),this.c=null}this.H=zb(56,4);this.C=wb(this.a,function(){Ge(e)});tb(b,this,He);Ie(this,"None",Ee,!0);this.B&&Ie(this,"Local Tape","?");Ie(this,"Remote Tape","??");Je(this)||B(this)}; -g.$=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};g.Z=function(a){return a?this.save():!0};g.reset=function(){this.b&=-2241;this.A=0};function Je(a){a.g=0;if(a.c){var b=a.c.path,c;if(!(c=a.c.name))a:{if((c=a.s.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(d=la(c),e="json"==d||"gz"==d?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!h(e,null,!0,function(d,e,f){var k=0>f&&a.v&&!a.v.i.M;if(f)a.I('Unable to load tape "'+b+'" (error '+f+": "+d+")",k);else if(Pa(a.ra,d,e),d=ua(d,e))a.h=c,a.u=0,a.o=d.L; -a.i.Wa=!1;a.g&&(a.g--,a.g||B(a));Ne(a)})}function Ie(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bRe){if(Te(d,this.u)){this.j=new K(this,"1.30.1","failsafe");Te(this.j)&&(Ye(this,d),a=2,Ze(this.j));this.j.set("timestamp",ta());$e(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Xe(d)){var f=d.get("code"),k=d.get("data");f&&("ok"==f?Te(d,k):("error"== -f&&"no machine state"!=k?(this.I("Error: "+k),"unable to verify user"==k&&(za("user",""),this.c=null)):this.P(f+": "+k),Ze(d),Te(d)?(c=Xe(d),e=!0):c=!1))}e&&We(this,c?d:null)}else 2==a&&d.clear()}else We(this);delete this.u;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.T=!0;this.i.M=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(af(this,this.a,b,c,a),this.a.Da());this.H&&(Ye(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; -function Ye(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;h("http://www.pcjs.org/api/v1/report",d,!0)}} -function bf(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new K(a,"1.30.1"),k=new K(a,"1.30.1","validate"),l=ta();k.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&Xa(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.M=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;n'+b+"");a.innerHTML=b}},!0;case "descTape":return this.s[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.s[b]=c,c.onclick=function(){var a= +d.s.listTapes;a&&Ge(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(this.C)return this.s[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ge(d,ka(b,!0),b,1,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; +g.ea=function(a,b,c,d){this.v=a;this.m=b;this.a=c;this.F=d;var e=this;if((this.c=Tb(this.v,"autoMount")||this.c)&&"string"==typeof this.c)try{this.c=eval("("+this.c+")")}catch(f){m("PC11 auto-mount error: "+f.message+" ("+this.c+")"),this.c=null}this.J=zb(56,4);this.H=wb(this.a,function(){He(e)});tb(b,this,Ie);Je(this,"None",Ee,!0);this.C&&Je(this,"Local Tape","?");Je(this,"Remote Tape","??");Ke(this)||B(this)}; +g.$=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};g.Z=function(a){return a?this.save():!0};g.reset=function(){this.b&=-2241;this.B=0};function Ke(a){a.g=0;if(a.c){var b=a.c.path,c;if(!(c=a.c.name))a:{if((c=a.s.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!h(f,null,!0,function(e,f,k){var n=0>k&&a.v&&!a.v.i.M;if(k)a.I('Unable to load tape "'+b+'" (error '+k+": "+e+")",n);else if(Pa(a.ra,e,f),e=ua(e,f))e= +e.L,a.h=c,a.A=d,2!=d&&(a.u=0,a.o=e);a.i.Wa=!1;a.g&&(a.g--,a.g||B(a));Oe(a)})}function Je(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bSe){if(Ue(d,this.u)){this.j=new K(this,"1.30.1","failsafe");Ue(this.j)&&(Ze(this,d),a=2,$e(this.j));this.j.set("timestamp",ta());af(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ye(d)){var f=d.get("code"),k=d.get("data");f&&("ok"==f?Ue(d,k):("error"== +f&&"no machine state"!=k?(this.I("Error: "+k),"unable to verify user"==k&&(za("user",""),this.c=null)):this.P(f+": "+k),$e(d),Ue(d)?(c=Ye(d),e=!0):c=!1))}e&&Xe(this,c?d:null)}else 2==a&&d.clear()}else Xe(this);delete this.u;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.T=!0;this.i.M=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(bf(this,this.a,b,c,a),this.a.Da());this.H&&(Ze(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; +function Ze(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;h("http://www.pcjs.org/api/v1/report",d,!0)}} +function cf(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new K(a,"1.30.1"),k=new K(a,"1.30.1","validate"),l=ta();k.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&Xa(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.M=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;nf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");h(e,null,!0,function(f,k,l){if(l||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(k=k.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],k);jf(a,b,c)}})}else c(a,null)} -function kf(a,b,c,d){function e(a){if(void 0===l){var b=k&&A(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--ff||Ga(!0));n=!1}var k,l,n=!0;ff++;Oa[a]={};try{if(k=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=r:D.appendChild(document.createTextNode(r));t.appendChild(D)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?gf(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(k.outerHTML=n,--ff||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(n,k),--ff||Ga(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?gf(b,a,d,!0,e,r):hf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Wd){f(Wd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return kf(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map +g.V=function(a,b,c){var d=this;switch(b){case "power":return this.s[b]=c,c.onclick=function(){d.g||(d.i.M?cf(d,!1,!0):We(d,d.Fa))},!0;case "reset":return this.s[b]=c,c.onclick=function(){if(d.i.M&&!d.g)if(d.b&&!d.v){var a=va("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");cf(d,a,!0);!a&&d.C?window&&window.location.reload():d.Fa(Se)}else d.reset(),d.a&&d.a.Da()},!0;case "save":if(ma())c.parentNode.removeChild(c);else return this.s[b]= +c,c.onclick=function(){var a=Te(d,!0);if(a){var b=!!(d.b&&!d.v||d.C),c=cf(d,b);b?df(d,a,c):d.I("Resume disabled, machine state not saved")}},!0}return!1}; +function Te(a,b){var c=a.c;c||((c=ya("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=ef(a,c))||a.I("The user ID is invalid.")):b&&a.I("Browser local storage is not available"));return c} +function ef(a,b){a.c=null;b=h(na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(za("user",b.data),a.c=b.data)}catch(d){m(d.message+" ("+c+")")}return a.c}function Ve(a){var b=null;a.c&&(b=na()+"/api/v1/user?req=load&user="+a.c+"&state="+ff(a,"1.30.1"));return b} +function df(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ff(a,"1.30.1");d.data=c;b=h(na()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");h(e,null,!0,function(f,k,l){if(l||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(k=k.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],k);kf(a,b,c)}})}else c(a,null)} +function lf(a,b,c,d){function e(a){if(void 0===l){var b=k&&A(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--gf||Ga(!0));n=!1}var k,l,n=!0;gf++;Oa[a]={};try{if(k=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=r:D.appendChild(document.createTextNode(r));t.appendChild(D)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?hf(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(k.outerHTML=n,--gf||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(n,k),--gf||Ga(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?hf(b,a,d,!0,e,r):jf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Xd){f(Xd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return lf(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map From bb4a71b43970b7cb3f2712f3e9b8ff7dbc7bbb72 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Tue, 18 Oct 2016 20:53:26 -0700 Subject: [PATCH 13/32] Added code to parse tape data and load it directly into memory if the LOAD button is used instead of the ATTACH button --- modules/pdp11/lib/pc11.js | 101 ++++++++- versions/pdpjs/1.30.1/pdp11-dbg.js | 334 ++++++++++++++--------------- versions/pdpjs/1.30.1/pdp11.js | 149 ++++++------- 3 files changed, 333 insertions(+), 251 deletions(-) diff --git a/modules/pdp11/lib/pc11.js b/modules/pdp11/lib/pc11.js index 2d387948af..a7f259a6ac 100644 --- a/modules/pdp11/lib/pc11.js +++ b/modules/pdp11/lib/pc11.js @@ -50,8 +50,8 @@ function PC11(parms) Component.call(this, "PC11", parms, PC11); /* - * We record any 'autoMount' object now, but we no longer parse it until initBus(), because the Computer's - * getMachineParm() service may have an override for us. + * We record any 'autoMount' object now, but we no longer parse it until initBus(), because the + * Computer's getMachineParm() service may have an override for us. */ this.configMount = parms['autoMount'] || null; this.cAutoMount = 0; @@ -611,6 +611,87 @@ PC11.prototype.parseTape = function(sTapeName, sTapePath, nTapeTarget, aBytes) this.sTapePath = sTapePath; this.nTapeTarget = nTapeTarget; if (nTapeTarget == PC11.TARGET.MEMORY) { + /* + * Data on tapes is organized into blocks; each block begins with a 6-byte header: + * + * 2-byte signature (0x01,0x00) + * 2-byte length (N + 6) + * 2-byte load address + * + * followed by N data bytes. If N is zero, then the 2-byte load address is the exec address, + * unless the address is odd (usually 1), in which case stop. + * + * After the data bytes, there is a single checksum byte. The sum of all the bytes (including + * the checksum byte) should be zero. + * + * ANOMALIES: Tape files don't always begin with a signature word, so I allow any number of + * leading zeros before the first signature. Tape files don't always end cleanly either, so as + * soon as I see an invalid signature, I break out of the loop without signalling an error, as + * long as at least ONE block was successfully processed. + */ + var off = 0; + var fError = false, cBlocks = 0; + while (off < aBytes.length - 1) { + var w = (aBytes[off] & 0xff) | ((aBytes[off+1] & 0xff) << 8); + if (!w) { // ignore pairs of leading zeros + off += 2; + continue; + } + if (!(w & 0xff)) { // as well as single bytes of zero + off++; + continue; + } + var offBlock = off; + if (w != 0x0001) { + if (DEBUG) this.println("invalid signature (" + str.toHexWord(w) + ") at offset " + str.toHexWord(offBlock)); + if (!cBlocks) fError = true; + break; + } + if (off + 6 >= aBytes.length) { + if (DEBUG) this.println("invalid block at offset " + str.toHexWord(offBlock)); + fError = true; + break; + } + off += 2; + var checksum = w; + var len = (aBytes[off++] & 0xff) | ((aBytes[off++] & 0xff) << 8); + var addr = (aBytes[off++] & 0xff) | ((aBytes[off++] & 0xff) << 8); + checksum += (len & 0xff) + (len >> 8) + (addr & 0xff) + (addr >> 8); + var offData = off, cbData = len -= 6; + while (len > 0 && off < aBytes.length - 1) { + checksum += aBytes[off++] & 0xff; + len--; + } + if (len != 0 || off >= aBytes.length) { + if (DEBUG) this.println("insufficient data for block at offset " + str.toHexWord(offBlock)); + fError = true; + break; + } + checksum += aBytes[off++] & 0xff; + if (checksum & 0xff) { + if (DEBUG) this.println("invalid checksum (" + str.toHexByte(checksum) + ") for block at offset " + str.toHexWord(offBlock)); + fError = true; + break; + } + if (!cbData) { + if (!(addr & 0x1)) { + this.cpu.setPC(addr); + } + } else { + while (cbData--) { + this.cpu.setByteDirect(addr++, aBytes[offData++] & 0xff); + } + } + cBlocks++; + } + if (fError) { + this.sTapeName = ""; + this.sTapePath = ""; + this.sTapeSource = PC11.SOURCE.NONE; + this.nTapeTarget = PC11.TARGET.NONE; + if (DEBUG) this.println("error loading tape: " + sTapeName); + return; + } if (DEBUG) this.println("tape loaded: " + sTapeName); return; } @@ -634,10 +715,10 @@ PC11.prototype.unloadTape = function(fLoading) * Avoid any unnecessary hysteresis regarding the display if this unload is merely a prelude to another load. */ if (!fLoading) { - this.sTapeSource = PC11.SOURCE.NONE; - this.displayTape(); if (DEBUG && this.nTapeTarget) this.println(this.nTapeTarget == PC11.TARGET.READER? "tape detached" : "tape unloaded"); + this.sTapeSource = PC11.SOURCE.NONE; this.nTapeTarget = PC11.TARGET.NONE; + this.displayTape(); } } }; @@ -684,22 +765,22 @@ PC11.prototype.advanceReader = function() if ((this.prs & (PDP11.PC11.PRS.RE | PDP11.PC11.PRS.ERROR)) == PDP11.PC11.PRS.RE) { if (!(this.prs & PDP11.PC11.PRS.DONE)) { if (this.iTapeData < this.aTapeData.length) { - this.prb = this.aTapeData[this.iTapeData++]; + this.prb = this.aTapeData[this.iTapeData++] & 0xff; this.prs |= PDP11.PC11.PRS.DONE; this.prs &= ~PDP11.PC11.PRS.BUSY; if (this.prs & PDP11.PC11.PRS.RIE) { this.cpu.setTrigger(this.triggerReaderInterrupt); } /* - * The PC11, by virtue of its "high speed", is supposed to deliver characters at 300 CPS, - * so for now, that's what we're going to deliver (ie, 1000ms / 300). The original "low speed" + * The PC11, by virtue of its "high speed", is supposed to deliver characters at 300 CPS, so + * that's the rate we'll choose as well (ie, 1000ms / 300). As an aside, the original "low speed" * version of the reader ran at 10 CPS. * * TODO: Review this code. If we don't set the fReset parameter to true, the timer will eventually * fire while the "Absolute Loader" tape is still reading bytes from, say, the "BASIC (Single User)" - * tape, causing an EXTRA advance to occur and causing a byte to be skipped. Passing true ensures - * that the timer cannot fire for AT LEAST 3ms after each advance. But again, I need to understand - * the reader's actual behavior. + * tape, causing an EXTRA advance to occur and a byte to be skipped. Passing true ensures that the + * timer cannot fire for AT LEAST 3ms after each advance. But we need to understand the reader's + * actual behavior. */ this.cpu.setTimer(this.timerReaderAdvance, 1000/300, true); } diff --git a/versions/pdpjs/1.30.1/pdp11-dbg.js b/versions/pdpjs/1.30.1/pdp11-dbg.js index 1683516043..dc6ec9396c 100644 --- a/versions/pdpjs/1.30.1/pdp11-dbg.js +++ b/versions/pdpjs/1.30.1/pdp11-dbg.js @@ -28,59 +28,59 @@ http://pcjs.org/modules/pdp11/lib/computer.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2016 */ -for(var h,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,da=["Math","log2"],ea=0;ea>=3;return(c?"0o":"")+d}function l(a,b,c){var d="";b?8=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d} function oa(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0":">",'"':""","'":"'"};function ta(a){return a.replace(/[&<>"']/g,function(a){return sa[a]})} function ua(a,b){return(a+" ").slice(0,b)}function va(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var wa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"}; -function ya(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a>1,k;k=c(b,a[g]);0a?"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 Ba(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(k.onreadystatechange=function(){4===k.readyState&&(f=k.responseText,200==k.status||!k.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=k.status||-1),d&&d(a,f,e))});if(b&&"object"== -typeof b){var m="",p;for(p in b)b.hasOwnProperty(p)&&(m&&(m+="&"),m+=p+"="+encodeURIComponent(b[p]));m=m.replace(/%20/g,"+");k.open("POST",a,!!c);k.setRequestHeader("Content-type","application/x-www-form-urlencoded");k.send(m)}else k.open("GET",a,!!c),"bytes"==b&&k.overrideMimeType("text/plain; charset=x-user-defined"),k.send();c||(f=k.responseText,200!=k.status&&(e=k.status||-1),d&&d(a,f,e),g=[f,e]);return g} +function ya(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a>1,h;h=c(b,a[g]);0a?"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 Ba(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"== +typeof b){var m="",p;for(p in b)b.hasOwnProperty(p)&&(m&&(m+="&"),m+=p+"="+encodeURIComponent(b[p]));m=m.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(m)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g} function Ca(a,b){var c,d={ia:null,ka:null,Lb:null,Kb:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Lb=g.load;d.Kb=g.exec;if(e=g.bytes)d.ia=e;else if(e=g.words)for(d.ia=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.ia=Array(4*e.length),f=c=0;c>8&255,d.ia[f++]=e[c]>>16&255,d.ia[f++]=e[c]>>24&255;else d.ia=g;d.ka=g.symbols;d.ia.length?1==d.ia.length&&(n(d.ia[0]),d=null):(n("Empty resource: "+a),d=null)}catch(k){n("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c>8&255,d.ia[f++]=e[c]>>16&255,d.ia[f++]=e[c]>>24&255;else d.ia=g;d.ka=g.symbols;d.ia.length?1==d.ia.length&&(n(d.ia[0]),d=null):(n("Empty resource: "+a),d=null)}catch(h){n("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;cb?this.Wa=this.id:(this.Ra=this.id.substr(0,b),this.Wa=this.id.substr(b+1));this[a]=c;this.v={ready:!1,Ia:!1,Ib:!1,ha:!1,error:!1};this.zb=null;this.v.error=!1;this.J={};this.i=null;this.la=d||0;t.push(this)}var cb=void 0,db={}; +function r(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Yb=b.comment;this.tc=b;b=this.id.indexOf(".");0>b?this.Xa=this.id:(this.Ra=this.id.substr(0,b),this.Xa=this.id.substr(b+1));this[a]=c;this.v={ready:!1,Ia:!1,Ib:!1,ha:!1,error:!1};this.zb=null;this.v.error=!1;this.J={};this.i=null;this.la=d||0;t.push(this)}var cb=void 0,db={}; if(window){cb||(cb=window.location.search.substr(1));for(var eb,fb=/\+/g,gb=/([^&=]+)=?([^&]*)/g;eb=gb.exec(cb);)db[decodeURIComponent(eb[1].replace(fb," "))]=decodeURIComponent(eb[2].replace(fb," "))}function hb(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 u(a,b){b||(b=r);a.prototype=hb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var ib=window.PCjs.Machines||(window.PCjs.Machines={}),t=window.PCjs.Components||(window.PCjs.Components=[])}else ib={},t=[];function jb(a,b,c){ib[a]&&b&&(ib[a][b]=c)}function kb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>2;this.w=this.ua-1;this.B=this.H/this.ua|0;this.Ha=[];this.A=0;this.D=[];this.mc=[Ob,Pb,Qb,Rb];a=new I(this);Sb(a,this.i);this.W=Array(this.B);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.Ha[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.i&&D(this.i,64)&&C(this.i,e[4]+".readByte("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!0);this.i&&D(this.i,64)&&C(this.i,"warning: unconverted read access to byte @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c} function Pb(a,b,c){var d=!1,e=this.controller,f=e.Ha[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.Ha[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d?this.i&&D(this.i,64)&&C(this.i,f[4]+".writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!0,b),this.i&&D(this.i,64)&&C(this.i,"warning: unconverted write access to byte @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} function Qb(a,b){var c=-1,d=this.controller;(a=d.Ha[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));if(0<=c)return this.i&&D(this.i,64)&&C(this.i,a[4]+".readWord("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!1);this.i&&D(this.i,64)&&C(this.i,"warning: unconverted read access to word @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c} function Rb(a,b,c){var d=!1,e=this.controller;if(a=e.Ha[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d?this.i&&D(this.i,64)&&C(this.i,a[4]+".writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!1,b),this.i&&D(this.i,64)&&C(this.i,"warning: unconverted write access to word @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} -function Vb(a,b){if(b!=a.g){var c;a.g&&(c=(1<>>a.ja;0g&&(q=g);if(!e&&m&&m.size){if(m.type==d){if(f+g<=m.C)return m.vb+=m.C-f,m.C=f,!0;if(f>=m.C+m.vb){q=m.size-(f-p);q>g&&(q=g);m.vb=f-m.C+q;f=p+a.ua;g-=q;k++;continue}}return ac(1,f,g)}f=new I(a,f,q,a.ua,d,e);Sb(f,a.i,m);a.W[k++]=f;f=p+a.ua;g-=q}if(0>=g){c/=1024;var v;e="";v?10>>=a.ja;0>>=a.ja;0>>this.ja].Eb(a&this.w,a)};h.Bb=function(a){this.A++;a=this.W[(a&this.f)>>>this.ja].Mb(a&this.w,a);this.A--;return a};h.na=function(a){return this.W[(a&this.f)>>>this.ja].oa(a&this.w,a)}; -h.pb=function(a){var b=a&this.w,c=(a&this.f)>>>this.ja;this.A++;a=this.W[c].Nb(b,a);this.A--;return a};h.Fb=function(a,b){this.W[(a&this.f)>>>this.ja].Hb(a&this.w,b&255,a)};h.hb=function(a,b){this.A++;this.W[(a&this.f)>>>this.ja].Sb(a&this.w,b&255,a);this.A--};h.Va=function(a,b){this.W[(a&this.f)>>>this.ja].wb(a&this.w,b&65535,a)};h.Gb=function(a,b){var c=a&this.w,d=(a&this.f)>>>this.ja;this.A++;this.W[d].Tb(c,b&65535,a);this.A--}; -function cc(a){for(var b=0,c=[],d=0;da.b.ab)){var g=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!g&&m&&(g=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!k&&p&&(k=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));dc(a,e,e,g,k,m,p,f[4])}}}function fc(a,b){a.D.push(b)} -function gc(a,b){a.A||(a.i&&D(a.i,536870912)&&C(a.i,"memory fault on address "+J(a.i,b),!0,!0),a.b.ea(4,b))}function ac(a,b,c){n("Memory block error ("+a+": "+l(b)+","+l(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.g={data:0,Sd:0,Db:20,gd:0};this.f={Td:0,Rb:-1}}u(K);h=K.prototype; -h.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.Rb=hc(c,function(){e.f.Ka|=128;e.f.Ka&64&&(qc(e.b,e.f.hd),rc(e.b,e.f.Rb,1E3/60))});this.f.hd=sc(64,6);ec(b,this,L);fc(b,this.reset.bind(this));H(this)};h.reset=function(){this.g.Db=this.g.Db&-120|20;this.f.Ka=0};h.Dc=function(){var a=this.f.Ka;this.f.Ka&=-129;return a};h.rd=function(a){this.f.Ka=a;a&64&&rc(this.b,this.f.Rb,1E3/60);this.f.Ka=a&-129};h.wc=function(a){return(a?this.g.gd:this.g.data)&65535}; -h.kd=function(a){this.g.data=a};h.Fc=function(){var a=this.b;return a.F&62337|a.wa<<5|a.xa<<1};h.td=function(a){var b=this.b;a&=62337;if(b.F!=a){b.F=a;b.wa=a>>5&3;b.xa=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.La!=c&&(b.La=c,tc(b))}uc(this)};h.Gc=function(){var a=this.b.Na;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Hc=function(){return this.b.tb};h.Ic=function(){return this.b.Oa}; -h.ud=function(a){var b=this.b;1170>b.ab&&(a&=-49);b.Oa!=a&&(b.Oa=a,a&16?(b.Za=4194303,b.ya=3915776):(b.Za=262143,b.ya=253952),tc(b));uc(this)};function uc(a){a.g.Db=a.g.Db&-8|(a.b.La?a.b.Oa&16?1:2:4)}h.Wc=function(a){return this.b.T[1][a>>1&7]};h.Id=function(a,b){this.b.T[1][b>>1&7]=a&65295};h.Uc=function(a){return this.b.T[1][(a>>1&7)+8]};h.Gd=function(a,b){this.b.T[1][(b>>1&7)+8]=a&65295};h.Vc=function(a){return this.b.ta[1][a>>1&7]}; -h.Hd=function(a,b){b=b>>1&7;this.b.ta[1][b]=a;this.b.T[1][b]&=65295};h.Tc=function(a){return this.b.ta[1][(a>>1&7)+8]};h.Fd=function(a,b){b=(b>>1&7)+8;this.b.ta[1][b]=a;this.b.T[1][b]&=65295};h.Cc=function(a){return this.b.T[0][a>>1&7]};h.qd=function(a,b){this.b.T[0][b>>1&7]=a&65295};h.Ac=function(a){return this.b.T[0][(a>>1&7)+8]};h.od=function(a,b){this.b.T[0][(b>>1&7)+8]=a&65295};h.Bc=function(a){return this.b.ta[0][a>>1&7]};h.pd=function(a,b){b=b>>1&7;this.b.ta[0][b]=a;this.b.T[0][b]&=65295}; -h.zc=function(a){return this.b.ta[0][(a>>1&7)+8]};h.nd=function(a,b){b=(b>>1&7)+8;this.b.ta[0][b]=a;this.b.T[0][b]&=65295};h.bd=function(a){return this.b.T[3][a>>1&7]};h.Od=function(a,b){this.b.T[3][b>>1&7]=a&65295};h.$c=function(a){return this.b.T[3][(a>>1&7)+8]};h.Md=function(a,b){this.b.T[3][(b>>1&7)+8]=a&65295};h.ad=function(a){return this.b.ta[3][a>>1&7]};h.Nd=function(a,b){b=b>>1&7;this.b.ta[3][b]=a;this.b.T[3][b]&=65295};h.Zc=function(a){return this.b.ta[3][(a>>1&7)+8]}; -h.Ld=function(a,b){b=(b>>1&7)+8;this.b.ta[3][b]=a;this.b.T[3][b]&=65295};h.fb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};h.kb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};h.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};h.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};h.Qc=function(){return this.b.u[7]};h.Cd=function(a){this.b.u[7]=a};h.gb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]}; -h.lb=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};h.Oc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[1]};h.Ad=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[1]=a};h.Pc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[3]};h.Bd=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[3]=a};h.yc=function(a){return this.b.gc[a-65504>>1]};h.md=function(a,b){this.b.gc[b-65504>>1]=a};h.dc=function(a){return 65520==a?61183:0};h.jc=function(){}; -h.Yc=function(){return 1};h.Kd=function(){};h.xc=function(){return this.b.Z};h.ld=function(){this.b.Z=0};h.Ec=function(){return this.b.fc};h.sd=function(a,b){b&1||(a&=255);this.b.fc=a};h.Jc=function(a){return a?this.b.Pb:0};h.vd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Pb=a;b.G|=2};h.Xc=function(a){return a?this.b.Pa&65280:0};h.Jd=function(a){this.b.Pa=a|255};h.Mc=function(){return Lb(this.b)};h.yd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.G|=128}; -h.ic=function(a,b){D(this)&&C(this,"writeIgnored("+na(b)+"): "+na(a),!0,!0)}; +function Vb(a,b){if(b!=a.g){var c;a.g&&(c=(1<>>a.ja;0g&&(q=g);if(!e&&m&&m.size){if(m.type==d){if(f+g<=m.C)return m.vb+=m.C-f,m.C=f,!0;if(f>=m.C+m.vb){q=m.size-(f-p);q>g&&(q=g);m.vb=f-m.C+q;f=p+a.ua;g-=q;h++;continue}}return ac(1,f,g)}f=new I(a,f,q,a.ua,d,e);Sb(f,a.i,m);a.W[h++]=f;f=p+a.ua;g-=q}if(0>=g){c/=1024;var v;e="";v?10>>=a.ja;0>>=a.ja;0>>this.ja].Eb(a&this.w,a)};k.Bb=function(a){this.A++;a=this.W[(a&this.f)>>>this.ja].Mb(a&this.w,a);this.A--;return a};k.na=function(a){return this.W[(a&this.f)>>>this.ja].oa(a&this.w,a)}; +k.pb=function(a){var b=a&this.w,c=(a&this.f)>>>this.ja;this.A++;a=this.W[c].Nb(b,a);this.A--;return a};k.Fb=function(a,b){this.W[(a&this.f)>>>this.ja].Hb(a&this.w,b&255,a)};k.Va=function(a,b){this.A++;this.W[(a&this.f)>>>this.ja].Sb(a&this.w,b&255,a);this.A--};k.Wa=function(a,b){this.W[(a&this.f)>>>this.ja].wb(a&this.w,b&65535,a)};k.Gb=function(a,b){var c=a&this.w,d=(a&this.f)>>>this.ja;this.A++;this.W[d].Tb(c,b&65535,a);this.A--}; +function cc(a){for(var b=0,c=[],d=0;da.b.bb)){var g=f[0]?f[0].bind(b):null,h=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!g&&m&&(g=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!h&&p&&(h=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));dc(a,e,e,g,h,m,p,f[4])}}}function fc(a,b){a.D.push(b)} +function gc(a,b){a.A||(a.i&&D(a.i,536870912)&&C(a.i,"memory fault on address "+J(a.i,b),!0,!0),a.b.ea(4,b))}function ac(a,b,c){n("Memory block error ("+a+": "+l(b)+","+l(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.g={data:0,Sd:0,Db:20,gd:0};this.f={Td:0,Rb:-1}}u(K);k=K.prototype; +k.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.Rb=hc(c,function(){e.f.Ka|=128;e.f.Ka&64&&(ic(e.b,e.f.hd),jc(e.b,e.f.Rb,1E3/60))});this.f.hd=sc(64,6);ec(b,this,L);fc(b,this.reset.bind(this));H(this)};k.reset=function(){this.g.Db=this.g.Db&-120|20;this.f.Ka=0};k.Dc=function(){var a=this.f.Ka;this.f.Ka&=-129;return a};k.rd=function(a){this.f.Ka=a;a&64&&jc(this.b,this.f.Rb,1E3/60);this.f.Ka=a&-129};k.wc=function(a){return(a?this.g.gd:this.g.data)&65535}; +k.kd=function(a){this.g.data=a};k.Fc=function(){var a=this.b;return a.F&62337|a.wa<<5|a.xa<<1};k.td=function(a){var b=this.b;a&=62337;if(b.F!=a){b.F=a;b.wa=a>>5&3;b.xa=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.La!=c&&(b.La=c,tc(b))}uc(this)};k.Gc=function(){var a=this.b.Na;a&65280&&(a=(a<<8|a>>8)&65535);return a};k.Hc=function(){return this.b.tb};k.Ic=function(){return this.b.Oa}; +k.ud=function(a){var b=this.b;1170>b.bb&&(a&=-49);b.Oa!=a&&(b.Oa=a,a&16?(b.$a=4194303,b.ya=3915776):(b.$a=262143,b.ya=253952),tc(b));uc(this)};function uc(a){a.g.Db=a.g.Db&-8|(a.b.La?a.b.Oa&16?1:2:4)}k.Wc=function(a){return this.b.T[1][a>>1&7]};k.Id=function(a,b){this.b.T[1][b>>1&7]=a&65295};k.Uc=function(a){return this.b.T[1][(a>>1&7)+8]};k.Gd=function(a,b){this.b.T[1][(b>>1&7)+8]=a&65295};k.Vc=function(a){return this.b.ta[1][a>>1&7]}; +k.Hd=function(a,b){b=b>>1&7;this.b.ta[1][b]=a;this.b.T[1][b]&=65295};k.Tc=function(a){return this.b.ta[1][(a>>1&7)+8]};k.Fd=function(a,b){b=(b>>1&7)+8;this.b.ta[1][b]=a;this.b.T[1][b]&=65295};k.Cc=function(a){return this.b.T[0][a>>1&7]};k.qd=function(a,b){this.b.T[0][b>>1&7]=a&65295};k.Ac=function(a){return this.b.T[0][(a>>1&7)+8]};k.od=function(a,b){this.b.T[0][(b>>1&7)+8]=a&65295};k.Bc=function(a){return this.b.ta[0][a>>1&7]};k.pd=function(a,b){b=b>>1&7;this.b.ta[0][b]=a;this.b.T[0][b]&=65295}; +k.zc=function(a){return this.b.ta[0][(a>>1&7)+8]};k.nd=function(a,b){b=(b>>1&7)+8;this.b.ta[0][b]=a;this.b.T[0][b]&=65295};k.bd=function(a){return this.b.T[3][a>>1&7]};k.Od=function(a,b){this.b.T[3][b>>1&7]=a&65295};k.$c=function(a){return this.b.T[3][(a>>1&7)+8]};k.Md=function(a,b){this.b.T[3][(b>>1&7)+8]=a&65295};k.ad=function(a){return this.b.ta[3][a>>1&7]};k.Nd=function(a,b){b=b>>1&7;this.b.ta[3][b]=a;this.b.T[3][b]&=65295};k.Zc=function(a){return this.b.ta[3][(a>>1&7)+8]}; +k.Ld=function(a,b){b=(b>>1&7)+8;this.b.ta[3][b]=a;this.b.T[3][b]&=65295};k.gb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};k.kb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};k.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};k.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};k.Qc=function(){return this.b.u[7]};k.Cd=function(a){this.b.u[7]=a};k.hb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]}; +k.lb=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};k.Oc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[1]};k.Ad=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[1]=a};k.Pc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[3]};k.Bd=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[3]=a};k.yc=function(a){return this.b.gc[a-65504>>1]};k.md=function(a,b){this.b.gc[b-65504>>1]=a};k.dc=function(a){return 65520==a?61183:0};k.jc=function(){}; +k.Yc=function(){return 1};k.Kd=function(){};k.xc=function(){return this.b.Z};k.ld=function(){this.b.Z=0};k.Ec=function(){return this.b.fc};k.sd=function(a,b){b&1||(a&=255);this.b.fc=a};k.Jc=function(a){return a?this.b.Pb:0};k.vd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Pb=a;b.G|=2};k.Xc=function(a){return a?this.b.Pa&65280:0};k.Jd=function(a){this.b.Pa=a|255};k.Mc=function(){return Lb(this.b)};k.yd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.G|=128}; +k.ic=function(a,b){D(this)&&C(this,"writeIgnored("+na(b)+"): "+na(a),!0,!0)}; var M={},L=(M[62592]=[null,null,K.prototype.Wc,K.prototype.Id,"SISDR",1145],M[62608]=[null,null,K.prototype.Uc,K.prototype.Gd,"SDSDR",1145],M[62624]=[null,null,K.prototype.Vc,K.prototype.Hd,"SISAR",1145],M[62640]=[null,null,K.prototype.Tc,K.prototype.Fd,"SDSAR",1145],M[62656]=[null,null,K.prototype.Cc,K.prototype.qd,"KISDR",1145],M[62672]=[null,null,K.prototype.Ac,K.prototype.od,"KDSDR",1145],M[62688]=[null,null,K.prototype.Bc,K.prototype.pd,"KISAR",1145],M[62704]=[null,null,K.prototype.zc,K.prototype.nd, "KDSAR",1145],M[62798]=[null,null,K.prototype.Ic,K.prototype.ud,"MMR3",1145],M[65382]=[null,null,K.prototype.Dc,K.prototype.rd,"LKS"],M[65400]=[null,null,K.prototype.wc,K.prototype.kd,"CNSL"],M[65402]=[null,null,K.prototype.Fc,K.prototype.td,"MMR0",1145],M[65404]=[null,null,K.prototype.Gc,K.prototype.ic,"MMR1",1145],M[65406]=[null,null,K.prototype.Hc,K.prototype.ic,"MMR2",1145],M[65408]=[null,null,K.prototype.bd,K.prototype.Od,"UISDR",1145],M[65424]=[null,null,K.prototype.$c,K.prototype.Md,"UDSDR", -1145],M[65440]=[null,null,K.prototype.ad,K.prototype.Nd,"UISAR",1145],M[65456]=[null,null,K.prototype.Zc,K.prototype.Ld,"UDSAR",1145],M[65472]=[null,null,K.prototype.fb,K.prototype.kb,"R0SET0"],M[65473]=[null,null,K.prototype.fb,K.prototype.kb,"R1SET0"],M[65474]=[null,null,K.prototype.fb,K.prototype.kb,"R2SET0"],M[65475]=[null,null,K.prototype.fb,K.prototype.kb,"R3SET0"],M[65476]=[null,null,K.prototype.fb,K.prototype.kb,"R4SET0"],M[65477]=[null,null,K.prototype.fb,K.prototype.kb,"R5SET0"],M[65478]= -[null,null,K.prototype.Nc,K.prototype.zd,"R6KERNEL"],M[65479]=[null,null,K.prototype.Qc,K.prototype.Cd,"R7KERNEL"],M[65480]=[null,null,K.prototype.gb,K.prototype.lb,"R0SET1",1145],M[65481]=[null,null,K.prototype.gb,K.prototype.lb,"R1SET1",1145],M[65482]=[null,null,K.prototype.gb,K.prototype.lb,"R2SET1",1145],M[65483]=[null,null,K.prototype.gb,K.prototype.lb,"R3SET1",1145],M[65484]=[null,null,K.prototype.gb,K.prototype.lb,"R4SET1",1145],M[65485]=[null,null,K.prototype.gb,K.prototype.lb,"R5SET1",1145], +1145],M[65440]=[null,null,K.prototype.ad,K.prototype.Nd,"UISAR",1145],M[65456]=[null,null,K.prototype.Zc,K.prototype.Ld,"UDSAR",1145],M[65472]=[null,null,K.prototype.gb,K.prototype.kb,"R0SET0"],M[65473]=[null,null,K.prototype.gb,K.prototype.kb,"R1SET0"],M[65474]=[null,null,K.prototype.gb,K.prototype.kb,"R2SET0"],M[65475]=[null,null,K.prototype.gb,K.prototype.kb,"R3SET0"],M[65476]=[null,null,K.prototype.gb,K.prototype.kb,"R4SET0"],M[65477]=[null,null,K.prototype.gb,K.prototype.kb,"R5SET0"],M[65478]= +[null,null,K.prototype.Nc,K.prototype.zd,"R6KERNEL"],M[65479]=[null,null,K.prototype.Qc,K.prototype.Cd,"R7KERNEL"],M[65480]=[null,null,K.prototype.hb,K.prototype.lb,"R0SET1",1145],M[65481]=[null,null,K.prototype.hb,K.prototype.lb,"R1SET1",1145],M[65482]=[null,null,K.prototype.hb,K.prototype.lb,"R2SET1",1145],M[65483]=[null,null,K.prototype.hb,K.prototype.lb,"R3SET1",1145],M[65484]=[null,null,K.prototype.hb,K.prototype.lb,"R4SET1",1145],M[65485]=[null,null,K.prototype.hb,K.prototype.lb,"R5SET1",1145], M[65486]=[null,null,K.prototype.Oc,K.prototype.Ad,"R6SUPER",1145],M[65487]=[null,null,K.prototype.Pc,K.prototype.Bd,"R6USER",1145],M[65504]=[null,null,K.prototype.yc,K.prototype.md,"CTRL",1170],M[65520]=[null,null,K.prototype.dc,K.prototype.jc,"LSIZE",1170],M[65522]=[null,null,K.prototype.dc,K.prototype.jc,"HSIZE",1170],M[65524]=[null,null,K.prototype.Yc,K.prototype.Kd,"SYSID",1170],M[65526]=[null,null,K.prototype.xc,K.prototype.ld,"CPUERR",1170],M[65528]=[null,null,K.prototype.Ec,K.prototype.sd, "MB",1170],M[65530]=[null,null,K.prototype.Jc,K.prototype.vd,"PIR"],M[65532]=[null,null,K.prototype.Xc,K.prototype.Jd,"SL"],M[65534]=[null,null,K.prototype.Mc,K.prototype.yd,"PSW"],M);L[62594]=L[62592];L[62596]=L[62592];L[62598]=L[62592];L[62600]=L[62592];L[62602]=L[62592];L[62604]=L[62592];L[62606]=L[62592];L[62610]=L[62608];L[62612]=L[62608];L[62614]=L[62608];L[62616]=L[62608];L[62618]=L[62608];L[62620]=L[62608];L[62622]=L[62608];L[62626]=L[62624];L[62628]=L[62624];L[62630]=L[62624];L[62632]=L[62624]; L[62634]=L[62624];L[62636]=L[62624];L[62638]=L[62624];L[62642]=L[62640];L[62644]=L[62640];L[62646]=L[62640];L[62648]=L[62640];L[62650]=L[62640];L[62652]=L[62640];L[62654]=L[62640];L[62658]=L[62656];L[62660]=L[62656];L[62662]=L[62656];L[62664]=L[62656];L[62666]=L[62656];L[62668]=L[62656];L[62670]=L[62656];L[62674]=L[62672];L[62676]=L[62672];L[62678]=L[62672];L[62680]=L[62672];L[62682]=L[62672];L[62684]=L[62672];L[62686]=L[62672];L[62690]=L[62688];L[62692]=L[62688];L[62694]=L[62688];L[62696]=L[62688]; @@ -91,40 +91,40 @@ function I(a,b,c,d,e,f){this.w=a;this.id=Ac+=2;this.b=null;this.C=b;this.vb=c;th var Bc=0,Cc=2,Zb=4,bc=["NONE","RAM","ROM","VID","H/W"],Ac=0; I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(sb)for(a=Array(this.size>>2),b=0;b>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a,b){a&1&&gc(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},sa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= -this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ja=!0},O:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,1,c.M)&&c.da(!0)}return this.Mb(a,b)},ba:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,2,c.M)&&c.da(!0)}return this.Nb(a,b)},qa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a, +this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ja=!0},O:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,1,c.M)&&c.da(!0)}return this.Mb(a,b)},ba:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,2,c.M)&&c.da(!0)}return this.Nb(a,b)},qa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a, 1,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Sb(a,b,c)},xa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a,2,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Tb(a,b,c)},N:function(a){return this.B[a]},P:function(a,b){a=this.B[a];this.i&&D(this.i,128)&&C(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},aa:function(a,b){a&1&&gc(this.w,b);return this.F.getUint16(a,!0)},fa:function(a,b){a&1&&gc(this.w,b);a=this.I[a>>1];this.i&&D(this.i,128)&&C(this.i,"Memory.readWord("+ J(this.i,b)+"): "+J(this.i,a),!0);return a},pa:function(a,b){this.B[a]=b;this.Ja=!0},Ra:function(a,b,c){this.B[a]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},wa:function(a,b,c){a&1&&gc(this.w,c);this.F.setUint16(a,b,!0);this.Ja=!0},ya:function(a,b,c){a&1&&gc(this.w,c);this.I[a>>1]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}}; function Sb(a,b,c){a.i=b;a.g=a.J=0;c&&((a.g=c.g)&&Jc(a,Ic,!1),(a.J=c.J)&&Hc(a,Ic,!1))}function Lc(a,b){b?--a.J||(a.Hb=a.f?a.D:a.Sb,a.wb=a.f?a.H:a.Tb):--a.g||(a.Eb=a.Mb,a.oa=a.Nb)}function Hc(a,b,c){c&&a.J||(a.Hb=!a.f&&b[1]||a.D,a.wb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Sb=b[1]||a.D,a.Tb=b[3]||a.H}function Jc(a,b,c){c&&a.g||(a.Eb=b[0]||a.K,a.oa=b[2]||a.M);if(c||void 0===c)a.Mb=b[0]||a.K,a.Nb=b[2]||a.M}function Dc(a,b){b||(b=Mc);Jc(a,b,void 0);Hc(a,b,void 0)} -var Mc=[],Gc=[I.prototype.V,I.prototype.sa,I.prototype.ma,I.prototype.Wa],Ic=[I.prototype.O,I.prototype.qa,I.prototype.ba,I.prototype.xa];if(sb)var Fc=[I.prototype.N,I.prototype.pa,I.prototype.aa,I.prototype.wa],Ec=[I.prototype.P,I.prototype.Ra,I.prototype.fa,I.prototype.ya]; -function Nc(a,b){r.call(this,"CPU",a,Nc,1);var c=a.multiplier||1;this.Ga=a.cycles||b;this.Ma=c;this.Ya=Math.round(this.Ga/1E4)/100;this.Ua=this.Ya*this.Ma;this.v.ca=!1;this.v.Qb=!1;this.v.mb=a.autoStart;this.v.$a=!1;this.qb=this.ma=0;this.rb=a.csStart;this.bb=a.csInterval;this.cb=a.csStop;this.K=[];this.bc=this.fd.bind(this);H(this)}u(Nc);var Oc=["power","reset"];h=Nc.prototype; -h.Ca=function(a,b,c,d){this.D=a;this.w=b;this.i=d;for(b=0;b=a.ma&&(a.ma+=a.bb,c=!0);0<=a.cb&&a.cb<=Uc(a)&&(a.bb=a.cb=-1,Rc(a),a.da(),c=!0);c&&a.j(Uc(a)+" cycles: checksum="+l(a.qb))}} -h.ra=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.v.ha)a=!0;else{var b=null,c,k=kb(a.id);for(c=0;ca.V/a.Ua?b=1:d=!0;a.Ma=b;b=a.Ya*a.Ma;if(a.Ua!=b){a.Ua=b;b=a.Ua.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.D&&a.D.ub()}Wc(a,a.O);a.O=0;a.N=za();a.aa=0;Xc(a);return d}function hc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function rc(a,b,c,d){0<=b&&ba.K[b][0])&&(c=a.Ga*a.Ma/1E3*c|0,a.K[b][0]=c+Yc(a))} +var Mc=[],Gc=[I.prototype.V,I.prototype.sa,I.prototype.ma,I.prototype.Xa],Ic=[I.prototype.O,I.prototype.qa,I.prototype.ba,I.prototype.xa];if(sb)var Fc=[I.prototype.N,I.prototype.pa,I.prototype.aa,I.prototype.wa],Ec=[I.prototype.P,I.prototype.Ra,I.prototype.fa,I.prototype.ya]; +function Nc(a,b){r.call(this,"CPU",a,Nc,1);var c=a.multiplier||1;this.Ga=a.cycles||b;this.Ma=c;this.Za=Math.round(this.Ga/1E4)/100;this.Ua=this.Za*this.Ma;this.v.ca=!1;this.v.Qb=!1;this.v.mb=a.autoStart;this.v.ab=!1;this.qb=this.ma=0;this.rb=a.csStart;this.cb=a.csInterval;this.eb=a.csStop;this.K=[];this.bc=this.fd.bind(this);H(this)}u(Nc);var Oc=["power","reset"];k=Nc.prototype; +k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.i=d;for(b=0;b=a.ma&&(a.ma+=a.cb,c=!0);0<=a.eb&&a.eb<=Uc(a)&&(a.cb=a.eb=-1,Rc(a),a.da(),c=!0);c&&a.j(Uc(a)+" cycles: checksum="+l(a.qb))}} +k.ra=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.v.ha)a=!0;else{var b=null,c,h=kb(a.id);for(c=0;ca.V/a.Ua?b=1:d=!0;a.Ma=b;b=a.Za*a.Ma;if(a.Ua!=b){a.Ua=b;b=a.Ua.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.D&&a.D.ub()}Wc(a,a.O);a.O=0;a.N=za();a.aa=0;Xc(a);return d}function hc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function jc(a,b,c,d){0<=b&&ba.K[b][0])&&(c=a.Ga*a.Ma/1E3*c|0,a.K[b][0]=c+Yc(a))} function Zc(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function $c(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Yc(a,b){var c=a.ba-=a.b;a.b=0;b&&(a.ba=0);return c} -h.fd=function(){if(this.v.ca){this.nb>=this.Ga&&Xc(this,!0);this.sa=0;this.Fa=za();if(this.aa){var a=this.Fa-this.aa;a>this.Ab&&(this.N+=a,this.N>this.Fa&&(this.N=this.Fa))}try{do{var b=Zc(this,this.v.$a?1:this.Qa);try{this.jb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.sa+=b;this.O+=b;Tc(this,b);$c(this,b);this.pa-=b;if(0>=this.pa){this.pa+=this.Qa;15<=++this.Cb&&(this.D&&this.D.$(),this.Cb=0);break}}while(this.v.ca)}catch(e){this.da();this.D&&this.D.stop(za(),Uc(this));rb(this, +k.fd=function(){if(this.v.ca){this.nb>=this.Ga&&Xc(this,!0);this.sa=0;this.Fa=za();if(this.aa){var a=this.Fa-this.aa;a>this.Ab&&(this.N+=a,this.N>this.Fa&&(this.N=this.Fa))}try{do{var b=Zc(this,this.v.ab?1:this.Qa);try{this.jb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.sa+=b;this.O+=b;Tc(this,b);$c(this,b);this.pa-=b;if(0>=this.pa){this.pa+=this.Qa;15<=++this.Cb&&(this.D&&this.D.$(),this.Cb=0);break}}while(this.v.ca)}catch(e){this.da();this.D&&this.D.stop(za(),Uc(this));rb(this, e.stack||e.message);return}if(this.v.ca){a=setTimeout;b=this.bc;this.aa=za();var c=this.Ab;this.sa&&(c=Math.round(c*this.sa/this.Qa));var c=c-(this.aa-this.Fa),d=this.aa-this.N;d&&(this.V=Math.round(this.O/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.Vc&&(this.N-=c),c=0;this.nb+=this.sa;this.aa+=c;a(b,c)}}}; -h.ib=function(a){if(qb(this))return!1;if(this.v.ca)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.ca=!0;this.v.Qb=!0;var b=this.J.run;b&&(b.textContent="Halt");this.D&&(a&&this.D.ub(!0),this.D.start(this.N,Uc(this)));setTimeout(this.bc,0);return!0};h.jb=function(){return 0};h.da=function(a){if(this.v.ca){Yc(this);Wc(this,this.O);this.O=0;this.v.ca=!1;var b=this.J.run;b&&(b.textContent="Run");this.D&&this.D.stop(za(),Uc(this))}this.v.complete=a}; -function ad(a){this.ab=+a.model||1170;this.xb=a.addrReset||0;Nc.call(this,a,6666667);this.decode=1120==this.ab?bd.bind(this):cd.bind(this);dd(this);this.A=0;this.P=null;this.v.complete=this.v.oc=!1}u(ad,Nc);h=ad.prototype;h.reset=function(){this.status("model "+this.ab);this.v.ca&&this.da();dd(this);Qc(this);this.v.error=!1;this.parent.reset.call(this)}; +k.ib=function(a){if(qb(this))return!1;if(this.v.ca)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.ca=!0;this.v.Qb=!0;var b=this.J.run;b&&(b.textContent="Halt");this.D&&(a&&this.D.ub(!0),this.D.start(this.N,Uc(this)));setTimeout(this.bc,0);return!0};k.jb=function(){return 0};k.da=function(a){if(this.v.ca){Yc(this);Wc(this,this.O);this.O=0;this.v.ca=!1;var b=this.J.run;b&&(b.textContent="Run");this.D&&this.D.stop(za(),Uc(this))}this.v.complete=a}; +function ad(a){this.bb=+a.model||1170;this.xb=a.addrReset||0;Nc.call(this,a,6666667);this.decode=1120==this.bb?bd.bind(this):cd.bind(this);dd(this);this.A=0;this.P=null;this.v.complete=this.v.oc=!1}u(ad,Nc);k=ad.prototype;k.reset=function(){this.status("model "+this.bb);this.v.ca&&this.da();dd(this);Qc(this);this.v.error=!1;this.parent.reset.call(this)}; function dd(a){a.R=65536;a.S=32768;a.X=65535;a.U=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.xb];a.Ea=[0,0,0,0,0,0];a.va=[0,0,0,0];a.B=0;a.xa=0;a.sc=[4,2,0,1];a.T=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.ta=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.gc=[0,0,0,0,0,0,0,0];a.fc=0;a.G=0;a.H=a.I=0;a.g=a.f=a.Xa=0;a.qa=-1;ed(a)}function ed(a){a.Pa=255;a.Z=0;a.Pb=0;a.F=0;a.Na=0;a.tb=0;a.Oa=0;a.La=0;a.wa=0;a.Za=262143;a.ya=253952;a.G|=2;a.w&&tc(a)}function tc(a){a.La?(a.M=65536,a.Y=a.rc,a.oa=a.cd,a.wb=a.Pd,Vb(a.w,a.Oa&16?22:18)):(a.M=0,a.Y=a.qc,a.oa=a.ec,a.wb=a.kc,Vb(a.w,16))}h.Zb=function(){return 0}; -h.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.fa,this.Ma]);a.set(2,cc(this.w));return a.data()};h.restore=function(a){var b=a[1];this.fa=b[1];Vc(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c>14&3;c=a.L>>14&3;a.B!=c&&(a.va[c]=a.u[6],a.u[6]=a.va[a.B]);a.L=b;a.G|=2}function P(a,b){a.G&128||(a.U=a.X=b,a.S=0)}function Dd(a,b,c){a.G&128||(a.U=a.X=a.R=b,a.S=c||0)}function Ed(a,b,c,d){a.G&128||(a.U=a.X=a.R=b,a.S=(c^b)&(d^b))}function Fd(a,b){a.G&128||(a.U=a.X=a.R=b,a.S=a.U^a.R>>1)} -function Gd(a,b,c,d){a.G&128||(a.U=a.X=a.R=b,a.S=(c^d)&(d^b))}h.ea=function(a,b){if(!this.A){var c=!1;0>this.qa?this.qa=Lb(this):this.B||(a=4,c=!0);this.F&57344||(this.Na=63222,this.tb=a);this.B=0;var d=this.oa(a|this.M),e=this.oa(a+2&65535|this.M);vc(this,e&-12289|this.qa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Hd(this,this.qa);Hd(this,this.u[7]);O(this,d);this.G&=-113;this.qa=-1;if(26!=b)throw a;}};function Id(a){var b=Jd(a),c=Jd(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);O(a,b);vc(a,c);a.G&=-17} -function Kd(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.B]||(d&=7);e=a.T[a.B][d];f=(a.ta[a.B][d]<<6)+(b&8191)&a.Za;if(ff){if(3932160<=f){f&=262143;var k=f>>13&31;31>k?a.Oa&32&&(f=a.uc[k]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? +function Gd(a,b,c,d){a.G&128||(a.U=a.X=a.R=b,a.S=(c^d)&(d^b))}k.ea=function(a,b){if(!this.A){var c=!1;0>this.qa?this.qa=Lb(this):this.B||(a=4,c=!0);this.F&57344||(this.Na=63222,this.tb=a);this.B=0;var d=this.oa(a|this.M),e=this.oa(a+2&65535|this.M);vc(this,e&-12289|this.qa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Hd(this,this.qa);Hd(this,this.u[7]);O(this,d);this.G&=-113;this.qa=-1;if(26!=b)throw a;}};function Id(a){var b=Jd(a),c=Jd(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);O(a,b);vc(a,c);a.G&=-17} +function Kd(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.B]||(d&=7);e=a.T[a.B][d];f=(a.ta[a.B][d]<<6)+(b&8191)&a.$a;if(ff){if(3932160<=f){f&=262143;var h=f>>13&31;31>h?a.Oa&32&&(f=a.uc[h]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? 192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.T[a.B][d]=e;if(4194170!==f||a.B)a.wa=a.B,a.xa=d;g&&(g&57344&&(0<=a.qa&&(g|=128),a.F&57344||(a.F=a.F|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.F&61440||!(4191360>f||4194239c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.oa(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.oa(e)|g; -a.b-=8;break;case 6:return e=a.oa(jd(a,2)),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=a.oa(jd(a,2)),e=e+a.u[c]&65535,e=a.oa(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.F&57344||(a.Na=a.Na<<8|f<<3&248|c);6==c&&!a.B&&d&4&&0>=f&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.G|=64));return e}h.Bb=function(a){if(!this.La)return this.w.Bb(a);this.A++;a=Ld(this,Kd(this,a,3));this.A--;return a}; -h.pb=function(a){if(!this.La)return this.w.pb(a);this.A++;a=this.ec(Kd(this,a,2));this.A--;return a};h.hb=function(a,b){this.La?(this.A++,Md(this,Kd(this,a,5),b),this.A--):this.w.hb(a,b)};h.Gb=function(a,b){this.La?(this.A++,this.kc(Kd(this,a,4),b),this.A--):this.w.Gb(a,b)};h.qc=function(a,b,c){return Nd(this,a,b,c)};h.rc=function(a,b,c){return Kd(this,Nd(this,a,b,c),c)};h.ec=function(a){return this.w.na(a)};h.cd=function(a){return this.w.na(Kd(this,a,2))};h.kc=function(a,b){this.w.Va(a,b&65535)}; -h.Pd=function(a,b){this.w.Va(Kd(this,a,4),b)};function Od(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Nd(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.B=a.L>>12&3,c=a.oa(d|c&a.M),a.B=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.va[a.L>>12&3];return c}function Pd(a,b,c,d){a.F&57344||(a.Na=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Nd(a,b,e,4),c&65536||(e&=65535),a.B=a.L>>12&3,e=Kd(a,e|c&65536,4),a.B=a.L>>14&3,a.w.Va(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.va[a.L>>12&3]=d} +a.b-=8;break;case 6:return e=a.oa(jd(a,2)),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=a.oa(jd(a,2)),e=e+a.u[c]&65535,e=a.oa(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.F&57344||(a.Na=a.Na<<8|f<<3&248|c);6==c&&!a.B&&d&4&&0>=f&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.G|=64));return e}k.Bb=function(a){if(!this.La)return this.w.Bb(a);this.A++;a=Ld(this,Kd(this,a,3));this.A--;return a}; +k.pb=function(a){if(!this.La)return this.w.pb(a);this.A++;a=this.ec(Kd(this,a,2));this.A--;return a};k.Va=function(a,b){this.La?(this.A++,Md(this,Kd(this,a,5),b),this.A--):this.w.Va(a,b)};k.Gb=function(a,b){this.La?(this.A++,this.kc(Kd(this,a,4),b),this.A--):this.w.Gb(a,b)};k.qc=function(a,b,c){return Nd(this,a,b,c)};k.rc=function(a,b,c){return Kd(this,Nd(this,a,b,c),c)};k.ec=function(a){return this.w.na(a)};k.cd=function(a){return this.w.na(Kd(this,a,2))};k.kc=function(a,b){this.w.Wa(a,b&65535)}; +k.Pd=function(a,b){this.w.Wa(Kd(this,a,4),b)};function Od(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Nd(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.B=a.L>>12&3,c=a.oa(d|c&a.M),a.B=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.va[a.L>>12&3];return c}function Pd(a,b,c,d){a.F&57344||(a.Na=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Nd(a,b,e,4),c&65536||(e&=65535),a.B=a.L>>12&3,e=Kd(a,e|c&65536,4),a.B=a.L>>14&3,a.w.Wa(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.va[a.L>>12&3]=d} function Qd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?Ld(a,a.Y(b,c,3)):a.u[c]&255}function Rd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]}function Sd(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Nd(a,b,c,8)}function Td(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Ld(a,a.Y(b,c,3)):a.u[c]&255}function Ud(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]} -function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Xa=a.Y(b,e,7),Md(a,e,d.call(a,c,Ld(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Y(b,e,6),a.w.Va(e,d.call(a,c,a.w.na(e)))):a.u[e]=d.call(a,c,a.u[e])}function Vd(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Md(a,a.Y(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Wd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.Va(a.Y(b,d,4),c):a.u[d]=c&65535;return c} +function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Ya=a.Y(b,e,7),Md(a,e,d.call(a,c,Ld(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Y(b,e,6),a.w.Wa(e,d.call(a,c,a.w.na(e)))):a.u[e]=d.call(a,c,a.u[e])}function Vd(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Md(a,a.Y(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Wd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.Wa(a.Y(b,d,4),c):a.u[d]=c&65535;return c} function S(a,b,c){c&&(O(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3} -h.jb=function(a){this.v.complete=!0;var b=this.v.oc=this.i&&Xd(this.i),c=a?this.v.Qb?0:1:-1;this.v.Qb=!1;this.ba=this.b=a;do{if(b){if(Yd(this.i,this.u[7],c)){this.da();break}c=1}if(this.G&&(this.G&112&&(this.G&32?this.ea(168,28):this.G&64?this.ea(4,30):this.G&16&&this.ea(12,32),this.G&=-113),this.G&7))if(this.G&2){this.G&=-3;var d=160,e=(this.Pb&224)>>5;if(a=this.P&&this.P.eb>e?this.P:null)d=a.jd,e=a.eb;e>(this.L&224)>>5?(this.G&4&&(jd(this,2),this.G&=-5),this.ea(d,26),e=!0):e=!1;if(e&&a)if(e=this.P, +k.jb=function(a){this.v.complete=!0;var b=this.v.oc=this.i&&Xd(this.i),c=a?this.v.Qb?0:1:-1;this.v.Qb=!1;this.ba=this.b=a;do{if(b){if(Yd(this.i,this.u[7],c)){this.da();break}c=1}if(this.G&&(this.G&112&&(this.G&32?this.ea(168,28):this.G&64?this.ea(4,30):this.G&16&&this.ea(12,32),this.G&=-113),this.G&7))if(this.G&2){this.G&=-3;var d=160,e=(this.Pb&224)>>5;if(a=this.P&&this.P.fb>e?this.P:null)d=a.jd,e=a.fb;e>(this.L&224)>>5?(this.G&4&&(jd(this,2),this.G&=-5),this.ea(d,26),e=!0):e=!1;if(e&&a)if(e=this.P, e==a)this.P=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.G&1&&this.G++;this.G=this.G&7|this.L&16;this.decode(id(this))}while(0>1|b<<16;Fd(this,a);return a&65535}function de(a,b){a=b&2048|b>>1|b<<8;Fd(this,a<<8);return a&255}function ee(a,b){a=b&~a;P(this,a);return a}function fe(a,b){a=b&~a;P(this,a<<8);return a}function ge(a,b){a|=b;P(this,a);return a}function he(a,b){a|=b;P(this,a<<8);return a}function ie(a,b){a=~b|65536;Dd(this,a);return a&65535} function je(a,b){a=~b|256;Dd(this,a<<8);return a&255}function ke(a,b){a=b-a;this.G&128||(this.U=this.X=a,this.S=b&(b^a));return a&65535}function le(a,b){a=b-a;var c=a<<8;b<<=8;this.G&128||(this.U=this.X=c,this.S=b&(b^c));return a&255}function me(a,b){a=b+a;this.G&128||(this.U=this.X=a,this.S=a&(b^a));return a&65535}function ne(a,b){a=b+a;var c=a<<8;this.G&128||(this.U=this.X=c,this.S=c&(b<<8^c));return a&255}function oe(a,b){a=-b;Dd(this,a,a&b&32768);return a&65535} @@ -139,132 +139,132 @@ function Xe(a){var b=Rd(this,a);a=Ud(this,a);Gd(this,b-a,a,b);this.b-=this.g?4+( function Ze(a){var b=Ud(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.R=this.S=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.X=d>>16|d,this.U=d>>16):(this.S=32768,this.X=d>>15|d,this.U=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.U=0,this.S=32768,this.R=65536,this.b-=7}function $e(){this.ea(24,2);this.b-=25} function af(){this.L&49152?(this.Z|=128,this.ea(4,3)):this.i?$b(this.i):this.da();this.b-=7}function bf(){this.ea(16,4);this.b-=25}var cf=[0,7,7,10,7,11,9,13];function df(a){var b=this.b;O(this,Sd(this,a));this.b=b-cf[this.g]}var ef=[0,14,14,17,14,18,16,20];function ff(a){var b=this.b,c=Sd(this,a);a=a>>6&7;Hd(this,this.u[a]);this.u[a]=this.u[7];O(this,c);this.b=b-ef[this.g]}var gf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17]; function hf(a){var b=Rd(this,a),c=this.b;P(this,Wd(this,a,b));this.b=c-gf[(this.H?8:0)+this.g]+(7!=this.f||this.g?0:2)}function jf(a){var b=Qd(this,a);P(this,Vd(this,a,b,1)<<8);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var kf=[7,13,13,17,14,18,17,21]; -function lf(a){var b=Ud(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.G&128||(this.U=b>>16,this.X=this.U|b,this.S=0,this.R=-32768>b||32767>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.G&128||(this.U=b>>16,this.X=this.U|b,this.S=0,this.R=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)O(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function rf(a){R(this,a,Rd(this,a),ue);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function sf(a){R(this,a,0,we);this.b-=this.g?9:3+(7==this.f?2:0)}function tf(){this.ea(28,5);this.b-=5}function uf(){this.G&4||this.D.$();this.G|=4;jd(this,-2);this.b-=3} -function vf(a){R(this,a,Rd(this,a),xe);this.b-=this.g?9:3+(7==this.f?2:0)}function V(a){var b;if(b=this.i)b=this.i,C(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function bd(a){wf[a>>12].call(this,a)}function xf(a){yf[a>>6&3].call(this,a)}function zf(a){Af[a>>6&3].call(this,a)}function Bf(a){Cf[a>>6&3].call(this,a)}function Df(a){Ef[a&15].call(this,a)}function Ff(a){Gf[a&15].call(this,a)}function Hf(a){If[a>>6&3].call(this,a)}function Jf(a){Kf[a>>6&3].call(this,a)} +function vf(a){R(this,a,Rd(this,a),xe);this.b-=this.g?9:3+(7==this.f?2:0)}function U(a){var b;if(b=this.i)b=this.i,C(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function bd(a){wf[a>>12].call(this,a)}function xf(a){yf[a>>6&3].call(this,a)}function zf(a){Af[a>>6&3].call(this,a)}function Bf(a){Cf[a>>6&3].call(this,a)}function Df(a){Ef[a&15].call(this,a)}function Ff(a){Gf[a&15].call(this,a)}function Hf(a){If[a>>6&3].call(this,a)}function Jf(a){Kf[a>>6&3].call(this,a)} function Lf(a){Mf[a>>6&3].call(this,a)} -var wf=[function(a){Nf[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,ye,V,function(a){Of[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,rf,V],Nf=[function(a){hg[a>>4&15].call(this,a)},Ue,Re,Je,Ke,Pe,Le,Ne,ff,ff,xf,zf,Bf,V,V,V],yf=[function(a){Dd(this,Wd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,ke);this.b-=this.g?9:3+(7==this.f?2:0)}],Af=[function(a){R(this,a,0, +var wf=[function(a){Nf[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,ye,U,function(a){Of[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,rf,U],Nf=[function(a){Pf[a>>4&15].call(this,a)},Ue,Re,Je,Ke,Pe,Le,Ne,ff,ff,xf,zf,Bf,U,U,U],yf=[function(a){Dd(this,Wd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,ke);this.b-=this.g?9:3+(7==this.f?2:0)}],Af=[function(a){R(this,a,0, oe);this.b-=this.g?11:6},function(a){R(this,a,fd(this)?1:0,Zd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,fd(this)?1:0,ue);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Ud(this,a);Dd(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Cf=[function(a){R(this,a,0,se);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,qe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ce);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ae);this.b-=this.g?9:3+(7==this.f?2:0)}], -hg=[function(a){ig[a&15].call(this,a)},V,V,V,df,df,df,df,pf,V,Df,Ff,sf,sf,sf,sf],ig=[af,uf,of,Te,bf,nf,V,V,V,V,V,V,V,V,V,V],Ef=[mf,function(){this.R=0;this.b-=5},function(){this.S=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.U=0;this.b-=5},T,T,T,T,T,T,T],Gf=[mf,function(){this.R=65536;this.b-=5},function(){this.S=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.U=32768;this.b-=5},W,W,W,W,W,W,W],Of=[Se,Qe,Me,Oe,Ve,We,Be,Ce,$e,tf,Hf,Jf,Lf,V,V,V],If=[function(a){Dd(this, +Pf=[function(a){ig[a&15].call(this,a)},U,U,U,df,df,df,df,pf,U,Df,Ff,sf,sf,sf,sf],ig=[af,uf,of,Te,bf,nf,U,U,U,U,U,U,U,U,U,U],Ef=[mf,function(){this.R=0;this.b-=5},function(){this.S=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.U=0;this.b-=5},T,T,T,T,T,T,T],Gf=[mf,function(){this.R=65536;this.b-=5},function(){this.S=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.U=32768;this.b-=5},W,W,W,W,W,W,W],Of=[Se,Qe,Me,Oe,Ve,We,Be,Ce,$e,tf,Hf,Jf,Lf,U,U,U],If=[function(a){Dd(this, Vd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,je);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,ne);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,le);this.b-=this.g?9:3+(7==this.f?2:0)}],Kf=[function(a){Q(this,a,0,pe);this.b-=this.g?11:6},function(a){Q(this,a,fd(this)?1:0,$d);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,fd(this)?1:0,ve);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Td(this,a);Dd(this,a<<8);this.b-=this.g?4:3+(7== -this.f?2:0)}],Mf=[function(a){Q(this,a,0,te);this.b-=this.g?9+(this.Xa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,de);this.b-=this.g?9+(this.Xa&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)}];function cd(a){jg[a>>12].call(this,a)} -var jg=[function(a){kg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,ye,function(a){lg[a>>8&15].call(this,a)},function(a){mg[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,rf,V],kg=[function(a){ng[a>>4&15].call(this,a)},Ue,Re,Je,Ke,Pe,Le,Ne,ff,ff,xf,zf,Bf,function(a){og[a>>6&3].call(this,a)},V,V],og=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.oa(a|this.M);O(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Od(this,a,0);Hd(this,a);P(this,a);this.b-=11},function(a){var b=Jd(this),c= -this.b;Pd(this,a,0,b);P(this,b);this.b=c-kf[this.g]},function(a){P(this,Wd(this,a,this.Da?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],ng=[function(a){pg[a&15].call(this,a)},V,V,V,df,df,df,df,pf,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.G|=1),this.b-=5):V.call(this,a)},Df,Ff,sf,sf,sf,sf],pg=[af,uf,of,Te,bf,nf,function(){Id(this);this.b-=13},V,V,V,V,V,V,V,V,V],lg=[lf,lf,Ze,Ze,ze,ze,Ae,Ae,vf,vf,V,V,V,V,qf,qf],mg=[Se,Qe,Me,Oe,Ve,We,Be,Ce,$e,tf,Hf,Jf,Lf,function(a){qg[a>>6&3].call(this, -a)},V,V],qg=[V,function(a){a=Od(this,a,65536);Hd(this,a);P(this,a);this.b-=11},function(a){var b=Jd(this),c=this.b;Pd(this,a,65536,b);P(this,b);this.b=c-kf[this.g]},V]; +this.f?2:0)}],Mf=[function(a){Q(this,a,0,te);this.b-=this.g?9+(this.Ya&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,de);this.b-=this.g?9+(this.Ya&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)}];function cd(a){jg[a>>12].call(this,a)} +var jg=[function(a){kg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,ye,function(a){lg[a>>8&15].call(this,a)},function(a){mg[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,rf,U],kg=[function(a){ng[a>>4&15].call(this,a)},Ue,Re,Je,Ke,Pe,Le,Ne,ff,ff,xf,zf,Bf,function(a){og[a>>6&3].call(this,a)},U,U],og=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.oa(a|this.M);O(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Od(this,a,0);Hd(this,a);P(this,a);this.b-=11},function(a){var b=Jd(this),c= +this.b;Pd(this,a,0,b);P(this,b);this.b=c-kf[this.g]},function(a){P(this,Wd(this,a,this.Da?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],ng=[function(a){pg[a&15].call(this,a)},U,U,U,df,df,df,df,pf,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.G|=1),this.b-=5):U.call(this,a)},Df,Ff,sf,sf,sf,sf],pg=[af,uf,of,Te,bf,nf,function(){Id(this);this.b-=13},U,U,U,U,U,U,U,U,U],lg=[lf,lf,Ze,Ze,ze,ze,Ae,Ae,vf,vf,U,U,U,U,qf,qf],mg=[Se,Qe,Me,Oe,Ve,We,Be,Ce,$e,tf,Hf,Jf,Lf,function(a){qg[a>>6&3].call(this, +a)},U,U],qg=[U,function(a){a=Od(this,a,65536);Hd(this,a);P(this,a);this.b-=11},function(a){var b=Jd(this),c=this.b;Pd(this,a,65536,b);P(this,b);this.b=c-kf[this.g]},U]; function rg(a){r.call(this,"ROM",a,rg);this.ka=this.f=null;this.B=a.addr;this.g=a.size;this.A=a.alias;this.D=a.file;this.F=oa(this.D);if(this.D){a=this.D;var b=pa(this.F);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.D+"&format=bytes&decimal=true");var c=this;Ba(a,null,!0,function(a,b,f){f?c.ga("Unable to load ROM resource (error "+f+": "+a+")"):(jb(c.Ra,a,b),(a=Ca(a,b))?(c.f=a.ia,c.ka=a.ka):c.D=null,sg(c))})}}u(rg);rg.prototype.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;sg(this)}; -rg.prototype.Aa=function(){if(this.ka){if(this.i){var a=this.i,b=this.id,c=this.B,d=this.g,e=this.ka,f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var m=k.o,p=k.a;if(void 0!==m){var q=f,m=[m>>>0,g],v=ya(q,m,a.Vb);0>v&&q.splice(-(v+1),0,m)}p&&(k.a=p.replace(/''/g,'"'))}a.F.push({Ud:b,C:c,vc:d,ka:e,Ub:f})}delete this.ka}return!0};rg.prototype.za=function(){return!0}; -function sg(a){if(!pb(a)){if(a.D){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if(a.f.length!=a.g)rb(a,"ROM size ("+l(a.f.length,8,!0)+") does not match specified size ("+l(a.g,8,!0)+")");else{var b;b=a.B;if(Yb(a.w,b,a.g,Cc)){var c;for(c=0;c>>0,g],v=ya(q,m,a.Vb);0>v&&q.splice(-(v+1),0,m)}p&&(h.a=p.replace(/''/g,'"'))}a.F.push({Ud:b,C:c,vc:d,ka:e,Ub:f})}delete this.ka}return!0};rg.prototype.za=function(){return!0}; +function sg(a){if(!pb(a)){if(a.D){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if(a.f.length!=a.g)rb(a,"ROM size ("+l(a.f.length,8,!0)+") does not match specified size ("+l(a.g,8,!0)+")");else{var b;b=a.B;if(Yb(a.w,b,a.g,Cc)){var c;for(c=0;c=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=va(b[0]);if(c!=this.Wa)return;b=va(b[1]);if(this.I=lb(b)){var d=this.I.exports;if(d){var e=d.connect;e&&e.call(this.I);if(this.K=d.receiveData){this.status(this.Ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.Aa=function(a,b){if(!b)if(this.cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -h.za=function(a){return a?this.save():!0};h.reset=function(){yg(this)};h.save=function(){var a=new N(this);a.set(0,[]);return a.data()};h.restore=function(){return yg(this)};function yg(a){a.N=0;a.f=0;a.g=128;a.B=[];return!0}h.Ob=function(a){if("number"==typeof a)this.B.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.O||8,c=a-this.H%a,this.O&&(b=ua("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.A.value+=b;this.A.scrollTop=this.A.scrollHeight;this.H+=c}else if(null!=this.F){if(10==a||1024<=this.F.length)this.j(this.F), -this.F="";10!=a&&(this.F+=String.fromCharCode(a))}this.g&=-129;rc(this.b,this.V,1)}};var zg={},xg=(zg[65392]=[null,null,X.prototype.Sc,X.prototype.Ed,"RCSR"],zg[65394]=[null,null,X.prototype.Rc,X.prototype.Dd,"RBUF"],zg[65396]=[null,null,X.prototype.ed,X.prototype.Rd,"XCSR"],zg[65398]=[null,null,X.prototype.dd,X.prototype.Qd,"XBUF"],zg);Ta(function(){for(var a=B(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.J[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.J[b]=c,c.onclick= +function X(a){this.A=this.F=null;this.O=a.tabSize;this.M=a.charBOL;this.H=0;r.call(this,"SerialPort",a,X,8388608);var b=a.binding;if("console"==b)this.F="";else{var c;a=wg;b&&(void 0===c&&(c="Panel"),(c=mb(c,this.id))&&(b=c.J[b])&&this.ra(null,a,b))}this.I=this.K=null;this.exports={connect:this.cc,receiveData:this.Ob}}u(X);var wg="buffer";k=X.prototype; +k.ra=function(a,b,c){var d=this;switch(b){case wg:return this.J[b]=this.A=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=va(b[0]);if(c!=this.Xa)return;b=va(b[1]);if(this.I=lb(b)){var d=this.I.exports;if(d){var e=d.connect;e&&e.call(this.I);if(this.K=d.receiveData){this.status(this.Ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.Aa=function(a,b){if(!b)if(this.cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; +k.za=function(a){return a?this.save():!0};k.reset=function(){yg(this)};k.save=function(){var a=new N(this);a.set(0,[]);return a.data()};k.restore=function(){return yg(this)};function yg(a){a.N=0;a.f=0;a.g=128;a.B=[];return!0}k.Ob=function(a){if("number"==typeof a)this.B.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.O||8,c=a-this.H%a,this.O&&(b=ua("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.A.value+=b;this.A.scrollTop=this.A.scrollHeight;this.H+=c}else if(null!=this.F){if(10==a||1024<=this.F.length)this.j(this.F), +this.F="";10!=a&&(this.F+=String.fromCharCode(a))}this.g&=-129;jc(this.b,this.V,1)}};var zg={},xg=(zg[65392]=[null,null,X.prototype.Sc,X.prototype.Ed,"RCSR"],zg[65394]=[null,null,X.prototype.Rc,X.prototype.Dd,"RBUF"],zg[65396]=[null,null,X.prototype.ed,X.prototype.Rd,"XCSR"],zg[65398]=[null,null,X.prototype.dd,X.prototype.Qd,"XBUF"],zg);Ta(function(){for(var a=B(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.J[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.J[b]=c,c.onclick= function(){var a=d.J.listTapes;a&&Cg(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(this.N)return this.J[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Cg(d,oa(b,!0),b,1,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; -h.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;var e=this;if((this.g=Pc(this.D,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){n("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.P=sc(56,4);this.O=hc(this.b,function(){Dg(e)});ec(b,this,Eg);Fg(this,"None",Ag,!0);this.N&&Fg(this,"Local Tape","?");Fg(this,"Remote Tape","??");Gg(this)||H(this)}; -h.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.za=function(a){return a?this.save():!0};h.reset=function(){this.f&=-2241;this.M=0};function Gg(a){a.A=0;if(a.g){var b=a.g.path,c;if(!(c=a.g.name))a:{if((c=a.J.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(e=pa(c),f="json"==e||"gz"==e?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(f,null,!0,function(e,f,g){var k=0>g&&a.D&&!a.D.v.ha;if(g)a.ga('Unable to load tape "'+b+'" (error '+g+": "+e+")",k);else if(jb(a.Ra,e,f),e=Ca(e, -f))e=e.ia,a.B=c,a.K=d,2!=d&&(a.I=0,a.H=e);a.v.Ia=!1;a.A&&(a.A--,a.A||H(a));Kg(a)})}function Fg(a,b,c,d){if((a=a.J.listTapes)&&a.options){for(var e=0;e=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Mg.prototype.$b=function(){return-1};Mg.prototype.ac=function(){}; -function Og(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} -function Pg(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; +k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;var e=this;if((this.g=Pc(this.D,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){n("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.P=sc(56,4);this.O=hc(this.b,function(){Dg(e)});ec(b,this,Eg);Fg(this,"None",Ag,!0);this.N&&Fg(this,"Local Tape","?");Fg(this,"Remote Tape","??");Gg(this)||H(this)}; +k.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.za=function(a){return a?this.save():!0};k.reset=function(){this.f&=-2241;this.I=0};function Gg(a){a.A=0;if(a.g){var b=a.g.path,c;if(!(c=a.g.name))a:{if((c=a.J.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(e=pa(c),f="json"==e||"gz"==e?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(f,null,!0,function(e,f,g){var h=0>g&&a.D&&!a.D.v.ha;g?a.ga('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(jb(a.Ra,e,f),(e=Ca(e,f))&&Kg(a,c,d,e.ia));a.v.Ia= +!1;a.A&&(a.A--,a.A||H(a));Lg(a)})}function Fg(a,b,c,d){if((a=a.J.listTapes)&&a.options){for(var e=0;e=d.length){c=!0;break}b+=2;for(var g=d[b++]&255|(d[b++]&255)<<8,h=d[b++]&255|(d[b++]&255)<<8,f=f+((g&255)+(g>>8)+(h&255)+(h>>8)),m=b,p=g-=6;0=d.length){c=!0;break}f+=d[b++]&255;if(f&255){c=!0;break}if(p)for(;p--;)a.b.Va(h++,d[m++]&255);else h&1||O(a.b,h);e++}else b++;else b+=2}c&&(a.B="",a.F=Ag,a.H=Bg)}else a.M= +0,a.K=d}function Ig(a,b){if(a.B||!1===b)a.B="",b||(a.F=Ag,a.H=Bg,Lg(a))}k.save=function(){return(new N(this)).data()};k.restore=function(){return!0};function Dg(a){1==(a.f&32769)&&!(a.f&128)&&a.M=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Ng.prototype.$b=function(){return-1};Ng.prototype.ac=function(){}; +function Pg(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} +function Qg(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} -function Qg(a,b,c){var d;if(b){b=Rg(a,b);for(var e=0,f=!1,g=b,k=[],m=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Ug(a,b){if(b)return Tg(a,b,a.aa[b]);var c=0;for(b in a.aa)Tg(a,b,a.aa[b]),c++;return 0=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Vg(a,b){if(b)return Ug(a,b,a.aa[b]);var c=0;for(b in a.aa)Ug(a,b,a.aa[b]),c++;return 0this.b.ab?ch:[];dh(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(eh(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ja;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<this.b.bb?dh:[];eh(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(fh(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ja;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}h.ac=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; -h.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.tb).C));this.la&1073741824?this.wa.push(a):this.sa&&a==this.sa||(this.sa=a,this.la&-2147483648&&(this.da(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.pa=0,a.D.$()))}; -function Xg(a){var b;if(Xd(a)){if(!a.I||!a.I.length){a.I=Array(1E3);for(b=0;b>>d.ja],!1)}a.M=["br"];if(a.B)for(b=1;b>>d.ja],!0);a.B=["bw"];a.Xa=0} -h.Sa=function(a,b,c){var d=!0;c||oh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.C)),d=!1;else{var f=this.w;f.W[e>>>f.ja].Sa(e&f.w,a==this.B)}}d&&(a.push(b),c?b.Ba=!0:(ph(this,a,a.length-1,"set"),Xg(this)));return d};function oh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ja],b==a.B));k.Ba||Xg(a);break}}return f} -function qh(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.C-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= -jh(E);break;case 8:y="@"+jh(E);break;case 16:7>E?y="("+jh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+jh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+jh(E)+")";break;case 40:y="@-("+jh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+jh(E)+")";7==E&&(y=[y,J(x,F+w.C&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+jh(E)+")",7==E&&(y=[y,J(x,F+w.C&65535)])}x=y;if(!x||!x.length){k="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=jh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function vh(a){var b,c="";for(b=0;6>b;b++)c+=uh(a,b);c=c+"\n"+(uh(a,6)+uh(a,7)+uh(a,20));return c+=th(a,"T")+th(a,"N")+th(a,"Z")+th(a,"V")+th(a,"C")}h.Vb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,k=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.D.$();a.j("updated registers:")}a.j(vh(a));c&&(a.K=Z(d.u[7]),mh(a,J(a,a.K.C)))}}function Ah(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1k[0].indexOf("+"))){var p=k[0]+":";k[2]&&(p+=" "+k[2]);a.j(p)}k[3]&&(g=k[3],f=null);f=sh(a,b,g,f);a.j(f);a.K=b;e-=b.C-m;c++}}} -function rh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.P&&(a.j("ended assemble at "+J(a,a.O.C)),a.K=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.sa=null;if(pb(a)&&0q||"z"ja.length&&(a.j("note: only "+ja.length+" available"),Y=ja.length);ca-=Y;0>ca&&(null==ja[ja.length-1].C?(Y=ca+Y,ca=0):ca+=ja.length);var nd=[];"call"==Uf&&(vb=1E5,nd=["CALL"]);for(void 0!==Tf&&a.j(Y+" instructions earlier:");0=ja.length&&(ca=0);a.Ya=Y;Wf++;vb--}}Wf||(a.j("no "+Vf+"history available"),a.Ya=void 0)}else{var xb=eh(a,ia);if(xb){var ic=0;Ga&&("l"==Ga.charAt(0)&&(Ga=Ga.substr(1)||Uh),ic=Sg(a,Ga)>>>0,65536>4||1;Wh--&&0lc?String.fromCharCode(lc):".";jc--}yb&&(yb+="\n");yb+=ia+" "+od+(0==Ab?" "+Zf:"")}yb&&a.j(yb);a.Qa=xb}}}}break;case "e":if("else"==g[0])break;var bb,qd,rd,sd,td=g[0],ud=g[1];"eb"==td?(bb=1,qd=255,rd=a.ob,sd=a.Fb):"e"==td||"ew"==td?(bb=2,qd=65535,rd=a.na,sd=a.Va):ud=null;if(null==ud)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var mc=eh(a,ud);if(mc)for(var nc=2;nc< -g.length;nc++){var Bb=Qg(a,g[nc]);if(void 0===Bb){a.j("unrecognized value: "+g[nc]);break}Bb&~qd&&a.j("warning: "+l(Bb)+" exceeds "+bb+"-byte value");var Xh=rd.call(a,mc);a.j("changing "+J(a,mc.C)+" from "+J(a,Xh,bb)+" to "+J(a,Bb,bb));sd.call(a,mc,Bb,bb)}}break;case "g":a:{var $f=g[1],Yh=b;if(void 0!==$f){var vd=eh(a,$f,!0);if(!vd)break a;ih(a,vd,Yh);a.Sa(a.f,vd,!0)}a.ib(!0,c)}break;case "h":a.v.ca?(c||a.j("halting"),a.da()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var wd; -var Cb=b.substr(2),Cb=va(Cb);Qg(a,Cb)?(c||a.j("true: "+Cb),wd=!0):(c||a.j("false: "+Cb),wd=!1);wd||(d=!1);break}f=!0;break;case "k":var Zh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var xd=0,yd=Z(),Db=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Db.C));10>xd;){for(var Ha=null,$h=256;65536>Db.C>>>0;){yd.C=a.na(Db,2);if(null==Db.C||!$h--)break;if(!(yd.C&1)){for(var ai=a,oc=yd,ag=null,Eb=oc.C,bg=Eb,zd=1;6>=zd&&Eb;zd++){if(2< -zd){oc.C=Eb;var pc=sh(ai,oc);if(0<=pc.indexOf("JSR")){var cg=pc.indexOf(" ");if(Eb+(pc.indexOf(" ",cg+1)-cg-1)/2==bg){ag=pc;break}}}Eb-=2}oc.C=bg;if(Ha=ag)break}}if(!Ha||null==Ha)break;var dg=null;if("ks"==Zh){var eg=Ha.match(/[0-9A-F]+$/);eg&&(dg=zh(a,eg[0]))}Ha=ua(Ha,50)+" ;"+(dg||"stack="+J(a,Db.C));a.j(Ha);xd++}xd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){zh(a,g[1],!0);break}f=!0;break;case "m":a:{var ka,la=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== -G)xa=1878917119,G=null;else if("on"==G)la=!0,G=null;else if("off"==G)la=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(ka in tb)if(G==ka){xa=tb[ka];la=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,la=!0;else if("off"==g[2]&&(a.la&=~xa,la=!1,1073741824==xa)){for(var Ad=0;Ad\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bFh){if(Hh(d,this.I)){this.B=new N(this,"1.30.1","failsafe");Hh(this.B)&&(Mh(this,d),a=2,Nh(this.B));this.B.set("timestamp",Aa());Oh(this.B);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Lh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Hh(d,g):("error"== -f&&"no machine state"!=g?(this.ga("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Nh(d),Hh(d)?(c=Lh(d),e=!0):c=!1))}e&&Kh(this,c?d:null)}else 2==a&&d.clear()}else Kh(this);delete this.I;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ha=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.b&&(Ph(this,this.b,b,c,a),this.b.mb());this.O&&(Mh(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.D=0}; -function Mh(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} -function Ch(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),k=Aa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.da(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ha=!1,!1===d&&(e=null)));for(var k=kb(a.id),m=0;mf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=k[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);k[0]!=m&&(g=g.replace(k[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],g);gi(a,b,c)}})}else c(a,null)} -function hi(a,b,c,d){function e(a){if(void 0===k){var b=g&&B(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Th||Va(!0));m=!1}var g,k,m=!0;Th++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,k){k?ei(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=k.transformNode(m))?(g.outerHTML=m,--Th||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Th||Va(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?ei(b,a,d,!0,e,p):fi(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return hi(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map +k.ra=function(a,b,c){var d=this;switch(b){case "debugInput":return this.pa=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Sc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.Ad&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}k.ac=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; +k.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.tb).C));this.la&1073741824?this.wa.push(a):this.sa&&a==this.sa||(this.sa=a,this.la&-2147483648&&(this.da(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.pa=0,a.D.$()))}; +function Yg(a){var b;if(Xd(a)){if(!a.I||!a.I.length){a.I=Array(1E3);for(b=0;b>>d.ja],!1)}a.M=["br"];if(a.B)for(b=1;b>>d.ja],!0);a.B=["bw"];a.Ya=0} +k.Sa=function(a,b,c){var d=!0;c||ph(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.C)),d=!1;else{var f=this.w;f.W[e>>>f.ja].Sa(e&f.w,a==this.B)}}d&&(a.push(b),c?b.Ba=!0:(qh(this,a,a.length-1,"set"),Yg(this)));return d};function ph(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ja],b==a.B));h.Ba||Yg(a);break}}return f} +function rh(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.C-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= +kh(E);break;case 8:y="@"+kh(E);break;case 16:7>E?y="("+kh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+kh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+kh(E)+")";break;case 40:y="@-("+kh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+kh(E)+")";7==E&&(y=[y,J(x,F+w.C&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+kh(E)+")",7==E&&(y=[y,J(x,F+w.C&65535)])}x=y;if(!x||!x.length){h="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=kh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function wh(a){var b,c="";for(b=0;6>b;b++)c+=vh(a,b);c=c+"\n"+(vh(a,6)+vh(a,7)+vh(a,20));return c+=uh(a,"T")+uh(a,"N")+uh(a,"Z")+uh(a,"V")+uh(a,"C")}k.Vb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,h=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.D.$();a.j("updated registers:")}a.j(wh(a));c&&(a.K=Z(d.u[7]),nh(a,J(a,a.K.C)))}}function Bh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.j(p)}h[3]&&(g=h[3],f=null);f=th(a,b,g,f);a.j(f);a.K=b;e-=b.C-m;c++}}} +function sh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.P&&(a.j("ended assemble at "+J(a,a.O.C)),a.K=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.sa=null;if(pb(a)&&0q||"z"ja.length&&(a.j("note: only "+ja.length+" available"),Y=ja.length);ca-=Y;0>ca&&(null==ja[ja.length-1].C?(Y=ca+Y,ca=0):ca+=ja.length);var nd=[];"call"==Vf&&(vb=1E5,nd=["CALL"]);for(void 0!==Uf&&a.j(Y+" instructions earlier:");0=ja.length&&(ca=0);a.Za=Y;Xf++;vb--}}Xf||(a.j("no "+Wf+"history available"),a.Za=void 0)}else{var xb=fh(a,ia);if(xb){var kc=0;Ga&&("l"==Ga.charAt(0)&&(Ga=Ga.substr(1)||Vh),kc=Tg(a,Ga)>>>0,65536>4||1;Xh--&&0nc?String.fromCharCode(nc):".";lc--}yb&&(yb+="\n");yb+=ia+" "+od+(0==Ab?" "+$f:"")}yb&&a.j(yb);a.Qa=xb}}}}break;case "e":if("else"==g[0])break;var bb,qd,rd,sd,td=g[0],ud=g[1];"eb"==td?(bb=1,qd=255,rd=a.ob,sd=a.Fb):"e"==td||"ew"==td?(bb=2,qd=65535,rd=a.na,sd=a.Wa):ud=null;if(null==ud)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var oc=fh(a,ud);if(oc)for(var pc=2;pc< +g.length;pc++){var Bb=Rg(a,g[pc]);if(void 0===Bb){a.j("unrecognized value: "+g[pc]);break}Bb&~qd&&a.j("warning: "+l(Bb)+" exceeds "+bb+"-byte value");var Yh=rd.call(a,oc);a.j("changing "+J(a,oc.C)+" from "+J(a,Yh,bb)+" to "+J(a,Bb,bb));sd.call(a,oc,Bb,bb)}}break;case "g":a:{var ag=g[1],Zh=b;if(void 0!==ag){var vd=fh(a,ag,!0);if(!vd)break a;jh(a,vd,Zh);a.Sa(a.f,vd,!0)}a.ib(!0,c)}break;case "h":a.v.ca?(c||a.j("halting"),a.da()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var wd; +var Cb=b.substr(2),Cb=va(Cb);Rg(a,Cb)?(c||a.j("true: "+Cb),wd=!0):(c||a.j("false: "+Cb),wd=!1);wd||(d=!1);break}f=!0;break;case "k":var $h=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var xd=0,yd=Z(),Db=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Db.C));10>xd;){for(var Ha=null,ai=256;65536>Db.C>>>0;){yd.C=a.na(Db,2);if(null==Db.C||!ai--)break;if(!(yd.C&1)){for(var bi=a,qc=yd,bg=null,Eb=qc.C,cg=Eb,zd=1;6>=zd&&Eb;zd++){if(2< +zd){qc.C=Eb;var rc=th(bi,qc);if(0<=rc.indexOf("JSR")){var dg=rc.indexOf(" ");if(Eb+(rc.indexOf(" ",dg+1)-dg-1)/2==cg){bg=rc;break}}}Eb-=2}qc.C=cg;if(Ha=bg)break}}if(!Ha||null==Ha)break;var eg=null;if("ks"==$h){var fg=Ha.match(/[0-9A-F]+$/);fg&&(eg=Ah(a,fg[0]))}Ha=ua(Ha,50)+" ;"+(eg||"stack="+J(a,Db.C));a.j(Ha);xd++}xd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){Ah(a,g[1],!0);break}f=!0;break;case "m":a:{var ka,la=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== +G)xa=1878917119,G=null;else if("on"==G)la=!0,G=null;else if("off"==G)la=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(ka in tb)if(G==ka){xa=tb[ka];la=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,la=!0;else if("off"==g[2]&&(a.la&=~xa,la=!1,1073741824==xa)){for(var Ad=0;Ad\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bGh){if(Ih(d,this.I)){this.B=new N(this,"1.30.1","failsafe");Ih(this.B)&&(Nh(this,d),a=2,Oh(this.B));this.B.set("timestamp",Aa());Ph(this.B);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Mh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Ih(d,g):("error"== +f&&"no machine state"!=g?(this.ga("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Oh(d),Ih(d)?(c=Mh(d),e=!0):c=!1))}e&&Lh(this,c?d:null)}else 2==a&&d.clear()}else Lh(this);delete this.I;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ha=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.b&&(Qh(this,this.b,b,c,a),this.b.mb());this.O&&(Nh(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.D=0}; +function Nh(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} +function Dh(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),h=Aa();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.da(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ha=!1,!1===d&&(e=null)));for(var h=kb(a.id),m=0;mf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=h[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=m&&(g=g.replace(h[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],g);hi(a,b,c)}})}else c(a,null)} +function ii(a,b,c,d){function e(a){if(void 0===h){var b=g&&B(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Uh||Va(!0));m=!1}var g,h,m=!0;Uh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,h){h?fi(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=h.transformNode(m))?(g.outerHTML=m,--Uh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Uh||Va(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?fi(b,a,d,!0,e,p):gi(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return ii(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map diff --git a/versions/pdpjs/1.30.1/pdp11.js b/versions/pdpjs/1.30.1/pdp11.js index f32432395e..c2ceb1e019 100644 --- a/versions/pdpjs/1.30.1/pdp11.js +++ b/versions/pdpjs/1.30.1/pdp11.js @@ -33,21 +33,21 @@ ha!=ga&&null!=ha&&aa(ba,fa,{configurable:!0,writable:!0,value:ha});function ia(a function ka(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0":">",'"':""","'":"'"};function pa(a){return a.replace(/[&<>"']/g,function(a){return oa[a]})} function qa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var ra={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"},sa=Date.now||function(){return+new Date}; function ta(){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 h(a,b,c,d){var e=0,f=null,k=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),k;var l=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(l.onreadystatechange=function(){4===l.readyState&&(f=l.responseText,200==l.status||!l.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=l.status||-1),d&&d(a,f,e))});if(b&&"object"== -typeof b){var n="",r;for(r in b)b.hasOwnProperty(r)&&(n&&(n+="&"),n+=r+"="+encodeURIComponent(b[r]));n=n.replace(/%20/g,"+");l.open("POST",a,!!c);l.setRequestHeader("Content-type","application/x-www-form-urlencoded");l.send(n)}else l.open("GET",a,!!c),"bytes"==b&&l.overrideMimeType("text/plain; charset=x-user-defined"),l.send();c||(f=l.responseText,200!=l.status&&(e=l.status||-1),d&&d(a,f,e),k=[f,e]);return k} -function ua(a,b){var c,d={L:null,Y:null,cb:null,bb:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,k;if("<"==b.substr(0,1))throw Error(b);k=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.cb=k.load;d.bb=k.exec;if(e=k.bytes)d.L=e;else if(e=k.words)for(d.L=Array(2*e.length),f=c=0;c>8&255;else if(e=k.data)for(d.L=Array(4*e.length),f=c=0;c>8&255,d.L[f++]=e[c]>>16&255,d.L[f++]=e[c]>>24&255;else d.L=k;d.Y=k.symbols;d.L.length?1==d.L.length&&(m(d.L[0]),d=null):(m("Empty resource: "+a),d=null)}catch(l){m("Resource data error ("+a+"): "+l.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;cb.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.cb=h.load;d.bb=h.exec;if(e=h.bytes)d.L=e;else if(e=h.words)for(d.L=Array(2*e.length),f=c=0;c>8&255;else if(e=h.data)for(d.L=Array(4*e.length),f=c=0;c>8&255,d.L[f++]=e[c]>>16&255,d.L[f++]=e[c]>>24&255;else d.L=h;d.Y=h.symbols;d.L.length?1==d.L.length&&(m(d.L[0]),d=null):(m("Empty resource: "+a),d=null)}catch(l){m("Resource data error ("+a+"): "+l.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;cb?this.Ha=this.id:(this.ra=this.id.substr(0,b),this.Ha=this.id.substr(b+1));this[a]=c;this.i={ready:!1,Wa:!1,gd:!1,M:!1,error:!1};this.Ra=null;this.i.error=!1;this.s={};this.F=null;v.push(this)}var Ia=void 0,Ja={}; +Ea(Aa("Opera")||Aa("iOS")?"onunload":"onbeforeunload",function(){Fa(p.exit)});function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.pb=b.comment;this.Hb=b;b=this.id.indexOf(".");0>b?this.Ia=this.id:(this.ra=this.id.substr(0,b),this.Ia=this.id.substr(b+1));this[a]=c;this.i={ready:!1,Wa:!1,gd:!1,M:!1,error:!1};this.Sa=null;this.i.error=!1;this.s={};this.F=null;v.push(this)}var Ia=void 0,Ja={}; if(window){Ia||(Ia=window.location.search.substr(1));for(var Ka,La=/\+/g,Ma=/([^&=]+)=?([^&]*)/g;Ka=Ma.exec(Ia);)Ja[decodeURIComponent(Ka[1].replace(La," "))]=decodeURIComponent(Ka[2].replace(La," "))}function Na(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} function w(a,b){b||(b=u);a.prototype=Na(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Oa=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Oa={},v=[];function Pa(a,b,c){Oa[a]&&b&&(Oa[a][b]=c)}function x(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>8:e[2](b)&255):b&1&&(e=d.ka[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);return 0<=c?c:c=gb(d,b)}function bb(a,b,c){var d=!1,e=this.controller,f=e.ka[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.ka[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d||gb(e,c)} function cb(a,b){var c=-1,d=this.controller;(a=d.ka[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));return 0<=c?c:c=gb(d,b)}function db(a,b,c){var d=!1,e=this.controller;if(a=e.ka[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d||gb(e,c)}function hb(a,b){if(b!=a.j){var c;a.j&&(c=(1<>>a.m;0k&&(t=k);if(!e&&n&&n.size){if(n.type==d){if(f+k<=n.Ca)return n.Ua+=n.Ca-f,n.Ca=f,!0;if(f>=n.Ca+n.Ua){t=n.size-(f-r);t>k&&(t=k);n.Ua=f-n.Ca+t;f=r+a.c;k-=t;l++;continue}}return mb(1,f,k)}f=new E(a,f,t,a.c,d,e);eb(f,a.F,n);a.b[l++]=f;f=r+a.c;k-=t}if(0>=k){c/=1024;var D;e="";D?10>>=a.m;0>>=a.m;0>>a.m].eb(b&a.g,b)}function pb(a,b){return a.b[(b&a.h)>>>a.m].R(b&a.g,b)}$a.prototype.Ta=function(a,b){this.T++;this.b[(a&this.h)>>>this.m].yb(a&this.g,b&255,a);this.T--}; -function qb(a,b,c){a.b[(b&a.h)>>>a.m].Va(b&a.g,c&65535,b)}function rb(a){for(var b=0,c=[],d=0;da.a.Ga)){var k=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,n=f[2]?f[2].bind(b):null,r=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!k&&n&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&r&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(r)));sb(a,e,e,k,l,n,r,f[4])}}}function ub(a,b){a.o.push(b)}function vb(a,b){a.T||F(a.a,4,b)} -function mb(a,b,c){m("Memory block error ("+a+": "+ja(b)+","+ja(c)+")");return!1}function G(a){u.call(this,"Device",a,G);this.c={data:0,fd:0,Sa:20,uc:0};this.b={hd:0,ib:-1}}w(G);g=G.prototype;g.ea=function(a,b,c,d){this.m=b;this.a=c;this.F=d;var e=this;this.b.ib=wb(c,function(){e.b.na|=128;e.b.na&64&&(xb(e.a,e.b.vc),yb(e.a,e.b.ib,1E3/60))});this.b.vc=zb(64,6);tb(b,this,H);ub(b,this.reset.bind(this));B(this)};g.reset=function(){this.c.Sa=this.c.Sa&-120|20;this.b.na=0}; -g.Qb=function(){var a=this.b.na;this.b.na&=-129;return a};g.Ec=function(a){this.b.na=a;a&64&&yb(this.a,this.b.ib,1E3/60);this.b.na=a&-129};g.Jb=function(a){return(a?this.c.uc:this.c.data)&65535};g.xc=function(a){this.c.data=a};g.Sb=function(){var a=this.a;return a.A&62337|a.Ia<<5|a.Ja<<1};g.Gc=function(a){var b=this.a;a&=62337;if(b.A!=a){b.A=a;b.Ia=a>>5&3;b.Ja=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ea!=c&&(b.Ea=c,Ab(b))}Bb(this)}; -g.Tb=function(){var a=this.a.oa;a&65280&&(a=(a<<8|a>>8)&65535);return a};g.Ub=function(){return this.a.gb};g.Vb=function(){return this.a.pa};g.Hc=function(a){var b=this.a;1170>b.Ga&&(a&=-49);b.pa!=a&&(b.pa=a,a&16?(b.$a=4194303,b.Ka=3915776):(b.$a=262143,b.Ka=253952),Ab(b));Bb(this)};function Bb(a){a.c.Sa=a.c.Sa&-8|(a.a.Ea?a.a.pa&16?1:2:4)}g.ic=function(a){return this.a.D[1][a>>1&7]};g.Vc=function(a,b){this.a.D[1][b>>1&7]=a&65295};g.gc=function(a){return this.a.D[1][(a>>1&7)+8]}; +function kb(a,b,c,d,e){for(var f=b,h=c,l=f>>>a.m;0h&&(t=h);if(!e&&n&&n.size){if(n.type==d){if(f+h<=n.Ca)return n.Ua+=n.Ca-f,n.Ca=f,!0;if(f>=n.Ca+n.Ua){t=n.size-(f-r);t>h&&(t=h);n.Ua=f-n.Ca+t;f=r+a.c;h-=t;l++;continue}}return mb(1,f,h)}f=new E(a,f,t,a.c,d,e);eb(f,a.F,n);a.b[l++]=f;f=r+a.c;h-=t}if(0>=h){c/=1024;var D;e="";D?10>>=a.m;0>>=a.m;0>>a.m].eb(b&a.g,b)}function pb(a,b){return a.b[(b&a.h)>>>a.m].R(b&a.g,b)}$a.prototype.Ga=function(a,b){this.T++;this.b[(a&this.h)>>>this.m].yb(a&this.g,b&255,a);this.T--}; +function qb(a,b,c){a.b[(b&a.h)>>>a.m].Va(b&a.g,c&65535,b)}function rb(a){for(var b=0,c=[],d=0;da.a.Ha)){var h=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,n=f[2]?f[2].bind(b):null,r=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!h&&n&&(h=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&r&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(r)));sb(a,e,e,h,l,n,r,f[4])}}}function ub(a,b){a.o.push(b)}function vb(a,b){a.T||F(a.a,4,b)} +function mb(a,b,c){m("Memory block error ("+a+": "+ja(b)+","+ja(c)+")");return!1}function G(a){u.call(this,"Device",a,G);this.c={data:0,fd:0,Ta:20,uc:0};this.b={hd:0,ib:-1}}w(G);g=G.prototype;g.ea=function(a,b,c,d){this.m=b;this.a=c;this.F=d;var e=this;this.b.ib=wb(c,function(){e.b.na|=128;e.b.na&64&&(xb(e.a,e.b.vc),yb(e.a,e.b.ib,1E3/60))});this.b.vc=zb(64,6);tb(b,this,H);ub(b,this.reset.bind(this));B(this)};g.reset=function(){this.c.Ta=this.c.Ta&-120|20;this.b.na=0}; +g.Qb=function(){var a=this.b.na;this.b.na&=-129;return a};g.Ec=function(a){this.b.na=a;a&64&&yb(this.a,this.b.ib,1E3/60);this.b.na=a&-129};g.Jb=function(a){return(a?this.c.uc:this.c.data)&65535};g.xc=function(a){this.c.data=a};g.Sb=function(){var a=this.a;return a.A&62337|a.Ja<<5|a.Ka<<1};g.Gc=function(a){var b=this.a;a&=62337;if(b.A!=a){b.A=a;b.Ja=a>>5&3;b.Ka=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ea!=c&&(b.Ea=c,Ab(b))}Bb(this)}; +g.Tb=function(){var a=this.a.oa;a&65280&&(a=(a<<8|a>>8)&65535);return a};g.Ub=function(){return this.a.gb};g.Vb=function(){return this.a.pa};g.Hc=function(a){var b=this.a;1170>b.Ha&&(a&=-49);b.pa!=a&&(b.pa=a,a&16?(b.$a=4194303,b.La=3915776):(b.$a=262143,b.La=253952),Ab(b));Bb(this)};function Bb(a){a.c.Ta=a.c.Ta&-8|(a.a.Ea?a.a.pa&16?1:2:4)}g.ic=function(a){return this.a.D[1][a>>1&7]};g.Vc=function(a,b){this.a.D[1][b>>1&7]=a&65295};g.gc=function(a){return this.a.D[1][(a>>1&7)+8]}; g.Tc=function(a,b){this.a.D[1][(b>>1&7)+8]=a&65295};g.hc=function(a){return this.a.S[1][a>>1&7]};g.Uc=function(a,b){b=b>>1&7;this.a.S[1][b]=a;this.a.D[1][b]&=65295};g.fc=function(a){return this.a.S[1][(a>>1&7)+8]};g.Sc=function(a,b){b=(b>>1&7)+8;this.a.S[1][b]=a;this.a.D[1][b]&=65295};g.Pb=function(a){return this.a.D[0][a>>1&7]};g.Dc=function(a,b){this.a.D[0][b>>1&7]=a&65295};g.Nb=function(a){return this.a.D[0][(a>>1&7)+8]};g.Bc=function(a,b){this.a.D[0][(b>>1&7)+8]=a&65295}; g.Ob=function(a){return this.a.S[0][a>>1&7]};g.Cc=function(a,b){b=b>>1&7;this.a.S[0][b]=a;this.a.D[0][b]&=65295};g.Mb=function(a){return this.a.S[0][(a>>1&7)+8]};g.Ac=function(a,b){b=(b>>1&7)+8;this.a.S[0][b]=a;this.a.D[0][b]&=65295};g.oc=function(a){return this.a.D[3][a>>1&7]};g.ad=function(a,b){this.a.D[3][b>>1&7]=a&65295};g.mc=function(a){return this.a.D[3][(a>>1&7)+8]};g.Zc=function(a,b){this.a.D[3][(b>>1&7)+8]=a&65295};g.nc=function(a){return this.a.S[3][a>>1&7]}; g.$c=function(a,b){b=b>>1&7;this.a.S[3][b]=a;this.a.D[3][b]&=65295};g.lc=function(a){return this.a.S[3][(a>>1&7)+8]};g.Yc=function(a,b){b=(b>>1&7)+8;this.a.S[3][b]=a;this.a.D[3][b]&=65295};g.wa=function(a){a&=7;return this.a.w&2048?this.a.ua[a]:this.a.f[a]};g.ya=function(a,b){b&=7;this.a.w&2048?this.a.ua[b]=a:this.a.f[b]=a};g.$b=function(){return this.a.w&49152?this.a.aa[0]:this.a.f[6]};g.Mc=function(a){this.a.w&49152?this.a.aa[0]=a:this.a.f[6]=a};g.cc=function(){return this.a.f[7]}; @@ -87,27 +87,27 @@ b&255,c++);this.jb(a,b>>8,c)},N:function(a){return this.a[a>>2]>>>((a&3)<<3)&255 T:function(a,b){return this.W(a,b)},da:function(a,b,c){this.g||this.yb(a,b,c)},ja:function(a,b,c){this.g||this.ra(a,b,c)},C:function(a){return this.c[a]},K:function(a){return this.c[a]},O:function(a,b){a&1&&vb(this.m,b);return this.s.getUint16(a,!0)},X:function(a,b){a&1&&vb(this.m,b);return this.o[a>>1]},ca:function(a,b){this.c[a]=b;this.la=!0},ga:function(a,b){this.c[a]=b;this.la=!0},ia:function(a,b,c){a&1&&vb(this.m,c);this.s.setUint16(a,b,!0);this.la=!0},sa:function(a,b,c){a&1&&vb(this.m,c);this.o[a>> 1]=b;this.la=!0}};function eb(a,b,c){a.F=b;a.h=a.j=0;c&&((a.h=c.h)&&Nb(a,Ob,!1),(a.j=c.j)&&Pb(a,Ob,!1))}function Pb(a,b,c){c&&a.j||(a.jb=!a.g&&b[1]||a.A,a.Va=!a.g&&b[3]||a.B);if(c||void 0===c)a.yb=b[1]||a.A,a.ra=b[3]||a.B}function Nb(a,b,c){c&&a.h||(a.eb=b[0]||a.v,a.R=b[2]||a.u);if(c||void 0===c)a.J=b[0]||a.v,a.W=b[2]||a.u}function Jb(a,b){b||(b=Qb);Nb(a,b,void 0);Pb(a,b,void 0)} var Qb=[],Mb=[E.prototype.N,E.prototype.ha,E.prototype.ba,E.prototype.ta],Ob=[E.prototype.H,E.prototype.da,E.prototype.T,E.prototype.ja];if(Ta)var Lb=[E.prototype.C,E.prototype.ca,E.prototype.O,E.prototype.ia],Kb=[E.prototype.K,E.prototype.ga,E.prototype.X,E.prototype.sa]; -function Rb(a,b){u.call(this,"CPU",a,Rb);var c=a.multiplier||1;this.Pa=a.cycles||b;this.da=c;this.Za=Math.round(this.Pa/1E4)/100;this.ga=this.Za*this.da;this.i.U=!1;this.i.wb=!1;this.i.Da=a.autoStart;this.i.Oa=!1;this.Ma=this.ia=0;this.Na=a.csStart;this.sa=a.csInterval;this.ta=a.csStop;this.H=[];this.sb=this.tc.bind(this);B(this)}w(Rb);var Sb=["power","reset"];g=Rb.prototype; +function Rb(a,b){u.call(this,"CPU",a,Rb);var c=a.multiplier||1;this.Qa=a.cycles||b;this.da=c;this.Za=Math.round(this.Qa/1E4)/100;this.ga=this.Za*this.da;this.i.U=!1;this.i.wb=!1;this.i.Da=a.autoStart;this.i.Pa=!1;this.Na=this.ia=0;this.Oa=a.csStart;this.sa=a.csInterval;this.ta=a.csStop;this.H=[];this.sb=this.tc.bind(this);B(this)}w(Rb);var Sb=["power","reset"];g=Rb.prototype; g.ea=function(a,b,c,d){this.v=a;this.m=b;this.F=d;for(b=0;ba.ba/a.ga&&(b=1),a.da=b,b=a.Za*a.da,a.ga!=b)){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var c=a.s.setSpeed;c&&(c.textContent=b);a.P("target speed: "+b)}a.K+=a.W;a.W=0;a.O=sa();a.ca=0;Yb(a)}function wb(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function yb(a,b,c,d){0<=b&&ba.H[b][0])&&(c=a.Pa*a.da/1E3*c|0,a.H[b][0]=c+$b(a))}function $b(a,b){var c=a.ha-=a.a;a.a=0;b&&(a.ha=0);return c} -g.tc=function(){if(this.i.U){this.ab>=this.Pa&&Yb(this,!0);this.Ba=0;this.La=sa();if(this.ca){var a=this.La-this.ca;a>this.qb&&(this.O+=a,this.O>this.La&&(this.O=this.La))}try{do{for(var b,c=this.i.Oa?1:this.Qa,d=this.H.length-1;0<=d;d--){var e=this.H[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.xb(b)}catch(n){if("number"!=typeof n)throw n;}b=$b(this,!0);this.Ba+=b;this.W+=b;a=b;if(this.i.Oa){var f=!1;this.Ma=this.Ma+this.mb()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.sa,f=!0);0<=this.ta&&this.ta<=Zb(this)&& -(this.sa=this.ta=-1,Vb(this),Xa(this),f=!0);f&&this.P(Zb(this)+" cycles: checksum="+ja(this.Ma))}for(var a=b,k=this.H.length-1;0<=k;k--){var l=this.H[k];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.Aa-=b;if(0>=this.Aa){this.Aa+=this.Qa;15<=++this.rb&&(this.v&&this.v.fa(),this.rb=0);break}}while(this.i.U)}catch(n){Xa(this);this.v&&this.v.stop(sa(),Zb(this));b=n.stack||n.message;this.i.error=!0;this.I(b);return}if(this.i.U){b=setTimeout;c=this.sb;this.ca=sa();d=this.qb;this.Ba&&(d=Math.round(d* -this.Ba/this.Qa));d-=this.ca-this.La;if(e=this.ca-this.O)this.ba=Math.round(this.W/(10*e))/100,864E5<=e&&(this.K=0,Xb(this));if(0>d||this.bad&&(this.O-=d),d=0;this.ab+=this.Ba;this.ca+=d;b(c,d)}}};function Wb(a){var b;a.i.error?(a.P(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.U)a.P(a.toString()+" busy");else{Xb(a);a.i.U=!0;a.i.wb=!0;if(b=a.s.run)b.textContent="Halt";a.v&&a.v.start(a.O,Zb(a));setTimeout(a.sb,0)}}g.xb=function(){return 0}; -function Xa(a){if(a.i.U){$b(a);a.K+=a.W;a.W=0;a.i.U=!1;var b=a.s.run;b&&(b.textContent="Run");a.v&&a.v.stop(sa(),Zb(a))}a.i.complete=void 0}function ac(a){this.Ga=+a.model||1170;this.ob=a.addrReset||0;Rb.call(this,a,6666667);this.decode=1120==this.Ga?bc.bind(this):cc.bind(this);dc(this);this.T=0;this.X=null;this.i.complete=this.i.Cb=!1}w(ac,Rb);g=ac.prototype;g.reset=function(){this.status("model "+this.Ga);this.i.U&&Xa(this);dc(this);Ub(this);this.i.error=!1;this.parent.reset.call(this)}; -function dc(a){a.j=65536;a.g=32768;a.h=65535;a.o=32768;a.w=15;a.f=[0,0,0,0,0,0,0,a.ob];a.ua=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.u=0;a.Ja=0;a.Gb=[4,2,0,1];a.D=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.S=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.vb=[0,0,0,0,0,0,0,0];a.ub=0;a.l=0;a.B=a.C=0;a.c=a.b=a.Ya=0;a.ja=-1;ec(a)}function ec(a){a.qa=255;a.G=0;a.hb=0;a.A=0;a.oa=0;a.gb=0;a.pa=0;a.Ea=0;a.Ia=0;a.$a=262143;a.Ka=253952;a.l|=2;a.m&&Ab(a)}function Ab(a){a.Ea?(a.N=65536,a.J=a.Fb,a.R=a.qc,a.Va=a.cd,hb(a.m,a.pa&16?22:18)):(a.N=0,a.J=a.Eb,a.R=a.pc,a.Va=a.bd,hb(a.m,16))}g.mb=function(){return 0}; -g.save=function(){var a=new K(this);a.set(0,[]);a.set(1,[this.K,this.da]);a.set(2,rb(this.m));return a.data()};g.restore=function(a){var b=a[1];this.K=b[1];Xb(this,b[3]);a:{b=this.m;a=a[2];var c;for(c=0;ca.ba/a.ga&&(b=1),a.da=b,b=a.Za*a.da,a.ga!=b)){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var c=a.s.setSpeed;c&&(c.textContent=b);a.P("target speed: "+b)}a.K+=a.W;a.W=0;a.O=sa();a.ca=0;Yb(a)}function wb(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function yb(a,b,c,d){0<=b&&ba.H[b][0])&&(c=a.Qa*a.da/1E3*c|0,a.H[b][0]=c+$b(a))}function $b(a,b){var c=a.ha-=a.a;a.a=0;b&&(a.ha=0);return c} +g.tc=function(){if(this.i.U){this.ab>=this.Qa&&Yb(this,!0);this.Ba=0;this.Ma=sa();if(this.ca){var a=this.Ma-this.ca;a>this.qb&&(this.O+=a,this.O>this.Ma&&(this.O=this.Ma))}try{do{for(var b,c=this.i.Pa?1:this.Ra,d=this.H.length-1;0<=d;d--){var e=this.H[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.xb(b)}catch(n){if("number"!=typeof n)throw n;}b=$b(this,!0);this.Ba+=b;this.W+=b;a=b;if(this.i.Pa){var f=!1;this.Na=this.Na+this.mb()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.sa,f=!0);0<=this.ta&&this.ta<=Zb(this)&& +(this.sa=this.ta=-1,Vb(this),Xa(this),f=!0);f&&this.P(Zb(this)+" cycles: checksum="+ja(this.Na))}for(var a=b,h=this.H.length-1;0<=h;h--){var l=this.H[h];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.Aa-=b;if(0>=this.Aa){this.Aa+=this.Ra;15<=++this.rb&&(this.v&&this.v.fa(),this.rb=0);break}}while(this.i.U)}catch(n){Xa(this);this.v&&this.v.stop(sa(),Zb(this));b=n.stack||n.message;this.i.error=!0;this.I(b);return}if(this.i.U){b=setTimeout;c=this.sb;this.ca=sa();d=this.qb;this.Ba&&(d=Math.round(d* +this.Ba/this.Ra));d-=this.ca-this.Ma;if(e=this.ca-this.O)this.ba=Math.round(this.W/(10*e))/100,864E5<=e&&(this.K=0,Xb(this));if(0>d||this.bad&&(this.O-=d),d=0;this.ab+=this.Ba;this.ca+=d;b(c,d)}}};function Wb(a){var b;a.i.error?(a.P(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.U)a.P(a.toString()+" busy");else{Xb(a);a.i.U=!0;a.i.wb=!0;if(b=a.s.run)b.textContent="Halt";a.v&&a.v.start(a.O,Zb(a));setTimeout(a.sb,0)}}g.xb=function(){return 0}; +function Xa(a){if(a.i.U){$b(a);a.K+=a.W;a.W=0;a.i.U=!1;var b=a.s.run;b&&(b.textContent="Run");a.v&&a.v.stop(sa(),Zb(a))}a.i.complete=void 0}function ac(a){this.Ha=+a.model||1170;this.ob=a.addrReset||0;Rb.call(this,a,6666667);this.decode=1120==this.Ha?bc.bind(this):cc.bind(this);dc(this);this.T=0;this.X=null;this.i.complete=this.i.Cb=!1}w(ac,Rb);g=ac.prototype;g.reset=function(){this.status("model "+this.Ha);this.i.U&&Xa(this);dc(this);Ub(this);this.i.error=!1;this.parent.reset.call(this)}; +function dc(a){a.j=65536;a.g=32768;a.h=65535;a.o=32768;a.w=15;a.f=[0,0,0,0,0,0,0,a.ob];a.ua=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.u=0;a.Ka=0;a.Gb=[4,2,0,1];a.D=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.S=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.vb=[0,0,0,0,0,0,0,0];a.ub=0;a.l=0;a.B=a.C=0;a.c=a.b=a.Ya=0;a.ja=-1;ec(a)}function ec(a){a.qa=255;a.G=0;a.hb=0;a.A=0;a.oa=0;a.gb=0;a.pa=0;a.Ea=0;a.Ja=0;a.$a=262143;a.La=253952;a.l|=2;a.m&&Ab(a)}function Ab(a){a.Ea?(a.N=65536,a.J=a.Fb,a.R=a.qc,a.Va=a.cd,hb(a.m,a.pa&16?22:18)):(a.N=0,a.J=a.Eb,a.R=a.pc,a.Va=a.bd,hb(a.m,16))}g.mb=function(){return 0}; +g.save=function(){var a=new K(this);a.set(0,[]);a.set(1,[this.K,this.da]);a.set(2,rb(this.m));return a.data()};g.restore=function(a){var b=a[1];this.K=b[1];Xb(this,b[3]);a:{b=this.m;a=a[2];var c;for(c=0;c>14&3;c=a.w>>14&3;a.u!=c&&(a.aa[c]=a.f[6],a.f[6]=a.aa[a.u]);a.w=b;a.l|=2}function N(a,b){a.l&128||(a.o=a.h=b,a.g=0)}function O(a,b,c){a.l&128||(a.o=a.h=a.j=b,a.g=c||0)}function hc(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^b)&(d^b))}function P(a,b){a.l&128||(a.o=a.h=a.j=b,a.g=a.o^a.j>>1)}function ic(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^d)&(d^b))} function F(a,b,c){if(!a.T){var d=!1;0>a.ja?a.ja=Za(a):a.u||(b=4,d=!0);a.A&57344||(a.oa=63222,a.gb=b);a.u=0;var e=a.R(b|a.N),f=a.R(b+2&65535|a.N);Cb(a,f&-12289|a.ja>>2&12288);d&&(a.G|=4,a.f[6]=4);jc(a,a.ja);jc(a,a.f[7]);M(a,e);a.l&=-113;a.ja=-1;if(26!=c)throw b;}}function kc(a){var b=lc(a),c=lc(a)&-1793;a.w&49152&&(c=c&-225|a.w&63712);M(a,b);Cb(a,c);a.l&=-17} -function mc(a,b,c){var d,e,f,k=0;d=b>>13;a.pa&a.Gb[a.u]||(d&=7);e=a.D[a.u][d];f=(a.S[a.u][d]<<6)+(b&8191)&a.$a;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.pa&32&&(f=a.Ib[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Ka&&4186112>f&&(a.G|=32,F(a,4,12))}switch(e&7){case 1:k=4096;case 2:e|=128;c&4&&(k=8192);break;case 4:k=4096;case 5:c&4&&(k=4096);case 6:e|=c&4?192: -128;break;default:k=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(k|=16384):(b&8128)>(e>>2&8128)&&(k|=16384));a.D[a.u][d]=e;if(4194170!==f||a.u)a.Ia=a.u,a.Ja=d;k&&(k&57344&&(0<=a.ja&&(k|=128),a.A&57344||(a.A=a.A|k|a.Ia<<5|a.Ja<<1),F(a,168,16)),a.A&61440||!(4191360>f||4194239>>a.m].jb(b&a.g,c&255,b)}function lc(a){var b=a.R(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b} +function mc(a,b,c){var d,e,f,h=0;d=b>>13;a.pa&a.Gb[a.u]||(d&=7);e=a.D[a.u][d];f=(a.S[a.u][d]<<6)+(b&8191)&a.$a;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.pa&32&&(f=a.Ib[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.La&&4186112>f&&(a.G|=32,F(a,4,12))}switch(e&7){case 1:h=4096;case 2:e|=128;c&4&&(h=8192);break;case 4:h=4096;case 5:c&4&&(h=4096);case 6:e|=c&4?192: +128;break;default:h=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(h|=16384):(b&8128)>(e>>2&8128)&&(h|=16384));a.D[a.u][d]=e;if(4194170!==f||a.u)a.Ja=a.u,a.Ka=d;h&&(h&57344&&(0<=a.ja&&(h|=128),a.A&57344||(a.A=a.A|h|a.Ja<<5|a.Ka<<1),F(a,168,16)),a.A&61440||!(4191360>f||4194239>>a.m].jb(b&a.g,c&255,b)}function lc(a){var b=a.R(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b} function jc(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.oa=a.oa<<8|246);!a.u&&c<=a.qa&&4c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=k);e=a.R(e);e|=k;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.f[c]+f&65535;7!==c&&(e|=k);a.a-=4;break;case 5:f=-2;e=a.f[c]-2&65535;7!==c&&(e|=k);e=a.R(e)|k;a.a-= -8;break;case 6:return e=a.R(gc(a,2)),e=e+a.f[c]&65535|k,a.a-=6,e;case 7:return e=a.R(gc(a,2)),e=e+a.f[c]&65535,e=a.R(e|a.N)|k,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!k||a.A&57344||(a.oa=a.oa<<8|f<<3&248|c);6==c&&!a.u&&d&4&&0>=f&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32?(a.G|=4,a.f[6]=4,F(a,4,24)):(a.G|=8,a.l|=64));return e}g.Ta=function(a,b){this.Ea?(this.T++,nc(this,mc(this,a,5),b),this.T--):this.m.Ta(a,b)};g.Eb=function(a,b,c){return oc(this,a,b,c)}; +function oc(a,b,c,d){var e,f,h=d&8?0:a.N;switch(b){case 0:return F(a,4,20),0;case 1:return 6===c&&!a.u&&d&4&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32||65534<=a.f[6]?(a.G|=4,a.f[6]=4,F(a,4,22)):(a.G|=8,a.l|=64)),a.a-=3,7===c?a.f[c]:a.f[c]|h;case 2:f=2;e=a.f[c];7!==c&&(e|=h,6>c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=h);e=a.R(e);e|=h;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.f[c]+f&65535;7!==c&&(e|=h);a.a-=4;break;case 5:f=-2;e=a.f[c]-2&65535;7!==c&&(e|=h);e=a.R(e)|h;a.a-= +8;break;case 6:return e=a.R(gc(a,2)),e=e+a.f[c]&65535|h,a.a-=6,e;case 7:return e=a.R(gc(a,2)),e=e+a.f[c]&65535,e=a.R(e|a.N)|h,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!h||a.A&57344||(a.oa=a.oa<<8|f<<3&248|c);6==c&&!a.u&&d&4&&0>=f&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32?(a.G|=4,a.f[6]=4,F(a,4,24)):(a.G|=8,a.l|=64));return e}g.Ga=function(a,b){this.Ea?(this.T++,nc(this,mc(this,a,5),b),this.T--):this.m.Ga(a,b)};g.Eb=function(a,b,c){return oc(this,a,b,c)}; g.Fb=function(a,b,c){return mc(this,oc(this,a,b,c),c)};g.pc=function(a){return pb(this.m,a)};g.qc=function(a){return pb(this.m,mc(this,a,2))};g.bd=function(a,b){qb(this.m,a,b&65535)};g.cd=function(a,b){qb(this.m,mc(this,a,4),b)};function pc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=oc(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.u=a.w>>12&3,c=a.R(d|c&a.N),a.u=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.f[d]:a.aa[a.w>>12&3];return c} function qc(a,b,c,d){a.A&57344||(a.oa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=oc(a,b,e,4),c&65536||(e&=65535),a.u=a.w>>12&3,e=mc(a,e|c&65536,4),a.u=a.w>>14&3,qb(a.m,e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.f[e]=d:a.aa[a.w>>12&3]=d}function rc(a,b){b>>=6;var c=a.C=b&7;(b=a.B=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function Q(a,b){b>>=6;var c=a.C=b&7;return(b=a.B=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function sc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return oc(a,b,c,8)} function tc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function uc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function R(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.Ya=a.J(b,e,7),nc(a,e,d.call(a,c,ob(a.m,e)))):a.f[e]=a.f[e]&65280|d.call(a,c,a.f[e])}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.J(b,e,6),qb(a.m,e,d.call(a,c,pb(a.m,e)))):a.f[e]=d.call(a,c,a.f[e])} @@ -128,67 +128,68 @@ function zd(){this.w&49152?(this.G|=128,F(this,4,3)):this.F?this.F.c():Xa(this); function Fd(a){var b=Q(this,a),c=this.a;N(this,wc(this,a,b));this.a=c-Ed[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)}function Gd(a){var b=rc(this,a);N(this,vc(this,a,b,1)<<8);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Hd=[7,13,13,17,14,18,17,21]; function Id(a){var b=uc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.l&128||(this.o=b>>16,this.h=this.o|b,this.g=0,this.j=-32768>b||32767>6;if(this.f[b]=this.f[b]-1&65535)M(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Od(a){S(this,a,Q(this,a),Tc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function X(a){S(this,a,0,Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Pd(){F(this,28,5);this.a-=5}function Qd(){this.l&4||this.v.fa();this.l|=4;gc(this,-2);this.a-=3} -function Rd(a){S(this,a,Q(this,a),Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){F(this,8,6)}function bc(a){Sd[a>>12].call(this,a)}function Td(a){Ud[a>>6&3].call(this,a)}function Vd(a){Wd[a>>6&3].call(this,a)}function Yd(a){Zd[a>>6&3].call(this,a)}function $d(a){ae[a&15].call(this,a)}function be(a){ce[a&15].call(this,a)}function de(a){ee[a>>6&3].call(this,a)}function fe(a){ge[a>>6&3].call(this,a)}function he(a){ie[a>>6&3].call(this,a)} -var Sd=[function(a){je[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,Y,function(a){ke[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],je=[function(a){le[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Td,Vd,Yd,Y,Y,Y],Ud=[function(a){O(this,wc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],Wd=[function(a){S(this,a,0,Nc); +function Rd(a){S(this,a,Q(this,a),Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){F(this,8,6)}function bc(a){Sd[a>>12].call(this,a)}function Td(a){Ud[a>>6&3].call(this,a)}function Vd(a){Wd[a>>6&3].call(this,a)}function Xd(a){Zd[a>>6&3].call(this,a)}function $d(a){ae[a&15].call(this,a)}function be(a){ce[a&15].call(this,a)}function de(a){ee[a>>6&3].call(this,a)}function fe(a){ge[a>>6&3].call(this,a)}function he(a){ie[a>>6&3].call(this,a)} +var Sd=[function(a){je[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,Y,function(a){ke[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],je=[function(a){le[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Td,Vd,Xd,Y,Y,Y],Ud=[function(a){O(this,wc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],Wd=[function(a){S(this,a,0,Nc); this.a-=this.c?11:6},function(a){S(this,a,L(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,L(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=uc(this,a);O(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Zd=[function(a){S(this,a,0,Rc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Bc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}],le=[function(a){me[a& 15].call(this,a)},Y,Y,Y,V,V,V,V,Md,Y,$d,be,X,X,X,X],me=[zd,Qd,Ld,rd,Ad,Kd,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],ae=[Jd,function(){this.j=0;this.a-=5},function(){this.g=0;this.a-=5},U,function(){this.h=1;this.a-=5},U,U,U,function(){this.o=0;this.a-=5},U,U,U,U,U,U,U],ce=[Jd,function(){this.j=65536;this.a-=5},function(){this.g=32768;this.a-=5},W,function(){this.h=0;this.a-=5},W,W,W,function(){this.o=32768;this.a-=5},W,W,W,W,W,W,W],ke=[qd,od,kd,md,td,ud,$c,ad,yd,Pd,de,fe,he,Y,Y,Y],ee=[function(a){O(this,vc(this,a,0)); this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Ic);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Mc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)}],ge=[function(a){R(this,a,0,Oc);this.a-=this.c?11:6},function(a){R(this,a,L(this)?1:0,yc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,L(this)?1:0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=tc(this,a);O(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}],ie= [function(a){R(this,a,0,Sc);this.a-=this.c?9+(this.Ya&1):3+(7==this.b?2:0)},function(a){R(this,a,0,Qc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Cc);this.a-=this.c?9+(this.Ya&1):3+(7==this.b?2:0)},function(a){R(this,a,0,Ac);this.a-=this.c?9:3+(7==this.b?2:0)}];function cc(a){ne[a>>12].call(this,a)} -var ne=[function(a){oe[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,function(a){pe[a>>8&15].call(this,a)},function(a){qe[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],oe=[function(a){re[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Td,Vd,Yd,function(a){se[a>>6&3].call(this,a)},Y,Y],se=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.R(a|this.N);M(this,this.f[5]);this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=pc(this,a,0);jc(this,a);N(this,a);this.a-=11},function(a){var b=lc(this),c=this.a; +var ne=[function(a){oe[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,function(a){pe[a>>8&15].call(this,a)},function(a){qe[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],oe=[function(a){re[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Td,Vd,Xd,function(a){se[a>>6&3].call(this,a)},Y,Y],se=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.R(a|this.N);M(this,this.f[5]);this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=pc(this,a,0);jc(this,a);N(this,a);this.a-=11},function(a){var b=lc(this),c=this.a; qc(this,a,0,b);N(this,b);this.a=c-Hd[this.c]},function(a){N(this,wc(this,a,this.ma?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],re=[function(a){te[a&15].call(this,a)},Y,Y,Y,V,V,V,V,Md,function(a){a&8?(this.w&49152||(this.w=this.w&-2017|(a&7)<<5,this.l|=1),this.a-=5):F(this,8,6)},$d,be,X,X,X,X],te=[zd,Qd,Ld,rd,Ad,Kd,function(){kc(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],pe=[Id,Id,xd,xd,Yc,Yc,Zc,Zc,Rd,Rd,Y,Y,Y,Y,Nd,Nd],qe=[qd,od,kd,md,td,ud,$c,ad,yd,Pd,de,fe,he,function(a){ue[a>>6&3].call(this,a)},Y, Y],ue=[Y,function(a){a=pc(this,a,65536);jc(this,a);N(this,a);this.a-=11},function(a){var b=lc(this),c=this.a;qc(this,a,65536,b);N(this,b);this.a=c-Hd[this.c]},Y]; -function ve(a){u.call(this,"ROM",a,ve);this.Y=this.b=null;this.j=a.addr;this.c=a.size;this.h=a.alias;this.g=a.file;this.o=ka(this.g);if(this.g){a=this.g;var b=la(this.o);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;h(a,null,!0,function(a,b,f){f?c.I("Unable to load ROM resource (error "+f+": "+a+")"):(Pa(c.ra,a,b),(a=ua(a,b))?(c.b=a.L,c.Y=a.Y):c.g=null,we(c))})}}w(ve);ve.prototype.ea=function(a,b,c,d){this.m=b;this.a=c;this.F=d;we(this)}; +function ve(a){u.call(this,"ROM",a,ve);this.Y=this.b=null;this.j=a.addr;this.c=a.size;this.h=a.alias;this.g=a.file;this.o=ka(this.g);if(this.g){a=this.g;var b=la(this.o);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;k(a,null,!0,function(a,b,f){f?c.I("Unable to load ROM resource (error "+f+": "+a+")"):(Pa(c.ra,a,b),(a=ua(a,b))?(c.b=a.L,c.Y=a.Y):c.g=null,we(c))})}}w(ve);ve.prototype.ea=function(a,b,c,d){this.m=b;this.a=c;this.F=d;we(this)}; ve.prototype.$=function(){this.Y&&(this.F&&this.F.a(this.id,this.j,this.c,this.Y),delete this.Y);return!0};ve.prototype.Z=function(){return!0}; -function we(a){if(!Sa(a)){if(a.g){if(!a.b||!a.m)return;a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+ja(a.b.length,8,!0)+") does not match specified size ("+ja(a.c,8,!0)+")";a.i.error=!0;a.I(b)}else{b=a.j;if(kb(a.m,b,a.c,Ib)){var c;for(c=0;c=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=qa(b[0]);if(c!=this.Ha)return;b=qa(b[1]);if(this.u=Qa(b)){var d=this.u.exports;if(d){var e=d.connect;e&&e.call(this.u);if(this.A=d.receiveData){this.status(this.ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.$=function(a,b){if(!b)if(this.nb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; +g.nb=function(){if(!this.u){var a=Tb(this.v,"connection");if(a){var b=a.split("->");if(2==b.length){var c=qa(b[0]);if(c!=this.Ia)return;b=qa(b[1]);if(this.u=Qa(b)){var d=this.u.exports;if(d){var e=d.connect;e&&e.call(this.u);if(this.A=d.receiveData){this.status(this.ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.$=function(a,b){if(!b)if(this.nb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; g.Z=function(a){return a?this.save():!0};g.reset=function(){Ce(this)};g.save=function(){var a=new K(this);a.set(0,[]);return a.data()};g.restore=function(){return Ce(this)};function Ce(a){a.C=0;a.b=0;a.c=128;a.h=[];return!0}g.fb=function(a){if("number"==typeof a)this.h.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.H||8,c=a-this.o%a,this.H&&(b=" ".slice(0,c)));this.B&&!this.o&&c&&(b=String.fromCharCode(this.B)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.o+=c}else if(null!=this.j){if(10==a||1024<=this.j.length)this.P(this.j), this.j="";10!=a&&(this.j+=String.fromCharCode(a))}this.c&=-129;yb(this.a,this.K,1)}};var De={},Be=(De[65392]=[null,null,Z.prototype.ec,Z.prototype.Rc,"RCSR"],De[65394]=[null,null,Z.prototype.dc,Z.prototype.Qc,"RBUF"],De[65396]=[null,null,Z.prototype.sc,Z.prototype.ed,"XCSR"],De[65398]=[null,null,Z.prototype.rc,Z.prototype.dd,"XBUF"],De);q(function(){for(var a=A(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.s[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.s[b]=c,c.onclick=function(){var a= d.s.listTapes;a&&Ge(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(this.C)return this.s[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ge(d,ka(b,!0),b,1,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; g.ea=function(a,b,c,d){this.v=a;this.m=b;this.a=c;this.F=d;var e=this;if((this.c=Tb(this.v,"autoMount")||this.c)&&"string"==typeof this.c)try{this.c=eval("("+this.c+")")}catch(f){m("PC11 auto-mount error: "+f.message+" ("+this.c+")"),this.c=null}this.J=zb(56,4);this.H=wb(this.a,function(){He(e)});tb(b,this,Ie);Je(this,"None",Ee,!0);this.C&&Je(this,"Local Tape","?");Je(this,"Remote Tape","??");Ke(this)||B(this)}; -g.$=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};g.Z=function(a){return a?this.save():!0};g.reset=function(){this.b&=-2241;this.B=0};function Ke(a){a.g=0;if(a.c){var b=a.c.path,c;if(!(c=a.c.name))a:{if((c=a.s.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!h(f,null,!0,function(e,f,k){var n=0>k&&a.v&&!a.v.i.M;if(k)a.I('Unable to load tape "'+b+'" (error '+k+": "+e+")",n);else if(Pa(a.ra,e,f),e=ua(e,f))e= -e.L,a.h=c,a.A=d,2!=d&&(a.u=0,a.o=e);a.i.Wa=!1;a.g&&(a.g--,a.g||B(a));Oe(a)})}function Je(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bSe){if(Ue(d,this.u)){this.j=new K(this,"1.30.1","failsafe");Ue(this.j)&&(Ze(this,d),a=2,$e(this.j));this.j.set("timestamp",ta());af(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ye(d)){var f=d.get("code"),k=d.get("data");f&&("ok"==f?Ue(d,k):("error"== -f&&"no machine state"!=k?(this.I("Error: "+k),"unable to verify user"==k&&(za("user",""),this.c=null)):this.P(f+": "+k),$e(d),Ue(d)?(c=Ye(d),e=!0):c=!1))}e&&Xe(this,c?d:null)}else 2==a&&d.clear()}else Xe(this);delete this.u;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.T=!0;this.i.M=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(bf(this,this.a,b,c,a),this.a.Da());this.H&&(Ze(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; -function Ze(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;h("http://www.pcjs.org/api/v1/report",d,!0)}} -function cf(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new K(a,"1.30.1"),k=new K(a,"1.30.1","validate"),l=ta();k.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&Xa(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.M=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;nc.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!k(f,null,!0,function(e,f,h){var l=0>h&&a.v&&!a.v.i.M;h?a.I('Unable to load tape "'+b+'" (error '+h+": "+e+")",l):(Pa(a.ra,e,f),(e=ua(e,f))&&Oe(a,c,d,e.L));a.i.Wa=!1; +a.g&&(a.g--,a.g||B(a));Pe(a)})}function Je(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e=d.length){c=!0;break}b+=2;for(var h=d[b++]&255|(d[b++]&255)<<8,l=d[b++]&255|(d[b++]&255)<<8,f=f+((h&255)+(h>>8)+(l&255)+(l>>8)),n=b,r=h-=6;0=d.length){c=!0;break}f+=d[b++]&255;if(f&255){c=!0;break}if(r)for(;r--;)a.a.Ga(l++,d[n++]&255);else l&1||M(a.a,l);e++}else b++;else b+=2}c&&(a.h="",a.j=Ee,a.o=Fe)}else a.B= +0,a.A=d}function Me(a,b){if(a.h||!1===b)a.h="",b||(a.j=Ee,a.o=Fe,Pe(a))}g.save=function(){return(new K(this)).data()};g.restore=function(){return!0};function He(a){1==(a.b&32769)&&!(a.b&128)&&a.B\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bTe){if(Ve(d,this.u)){this.j=new K(this,"1.30.1","failsafe");Ve(this.j)&&($e(this,d),a=2,af(this.j));this.j.set("timestamp",ta());bf(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ze(d)){var f=d.get("code"),h=d.get("data");f&&("ok"==f?Ve(d,h):("error"== +f&&"no machine state"!=h?(this.I("Error: "+h),"unable to verify user"==h&&(za("user",""),this.c=null)):this.P(f+": "+h),af(d),Ve(d)?(c=Ze(d),e=!0):c=!1))}e&&Ye(this,c?d:null)}else 2==a&&d.clear()}else Ye(this);delete this.u;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.T=!0;this.i.M=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(cf(this,this.a,b,c,a),this.a.Da());this.H&&($e(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; +function $e(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;k("http://www.pcjs.org/api/v1/report",d,!0)}} +function df(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new K(a,"1.30.1"),h=new K(a,"1.30.1","validate"),l=ta();h.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&Xa(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.M=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;nf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");h(e,null,!0,function(f,k,l){if(l||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(k=k.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],k);kf(a,b,c)}})}else c(a,null)} -function lf(a,b,c,d){function e(a){if(void 0===l){var b=k&&A(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--gf||Ga(!0));n=!1}var k,l,n=!0;gf++;Oa[a]={};try{if(k=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=r:D.appendChild(document.createTextNode(r));t.appendChild(D)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?hf(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(k.outerHTML=n,--gf||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(n,k),--gf||Ga(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?hf(b,a,d,!0,e,r):jf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Xd){f(Xd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return lf(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map +g.V=function(a,b,c){var d=this;switch(b){case "power":return this.s[b]=c,c.onclick=function(){d.g||(d.i.M?df(d,!1,!0):Xe(d,d.Fa))},!0;case "reset":return this.s[b]=c,c.onclick=function(){if(d.i.M&&!d.g)if(d.b&&!d.v){var a=va("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");df(d,a,!0);!a&&d.C?window&&window.location.reload():d.Fa(Te)}else d.reset(),d.a&&d.a.Da()},!0;case "save":if(ma())c.parentNode.removeChild(c);else return this.s[b]= +c,c.onclick=function(){var a=Ue(d,!0);if(a){var b=!!(d.b&&!d.v||d.C),c=df(d,b);b?ef(d,a,c):d.I("Resume disabled, machine state not saved")}},!0}return!1}; +function Ue(a,b){var c=a.c;c||((c=ya("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=ff(a,c))||a.I("The user ID is invalid.")):b&&a.I("Browser local storage is not available"));return c} +function ff(a,b){a.c=null;b=k(na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(za("user",b.data),a.c=b.data)}catch(d){m(d.message+" ("+c+")")}return a.c}function We(a){var b=null;a.c&&(b=na()+"/api/v1/user?req=load&user="+a.c+"&state="+gf(a,"1.30.1"));return b} +function ef(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=gf(a,"1.30.1");d.data=c;b=k(na()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");k(e,null,!0,function(f,h,l){if(l||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(h=h.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],h);lf(a,b,c)}})}else c(a,null)} +function mf(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=pa(a))}function f(a){e("Error: "+a);n&&(--hf||Ga(!0));n=!1}var h,l,n=!0;hf++;Oa[a]={};try{if(h=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=r:D.appendChild(document.createTextNode(r));t.appendChild(D)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?jf(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(h.outerHTML=n,--hf||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(n,h),--hf||Ga(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?jf(b,a,d,!0,e,r):kf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Yd){f(Yd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return mf(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map From 339217a466aaca9a5bf968f9978130460ede9d5f Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Wed, 19 Oct 2016 11:10:38 -0700 Subject: [PATCH 14/32] Supoprt for tape images in the Absolute Loader format has been moved to the RAM component, so that those images can be preloaded into RAM in the same way that raw bootstrap images can; the RAM component now provides Absolute Loader image parsing as a service to other components that need it (specifically, the PC11 tape reader) --- devices/pdp11/machine/1120/README.md | 3 +- devices/pdp11/machine/1120/basic/README.md | 11 + .../machine/1120/basic/debugger/README.md | 12 + .../machine/1120/basic/debugger/machine.xml | 13 + devices/pdp11/machine/1120/basic/machine.xml | 12 + devices/pdp11/machine/1170/README.md | 2 +- docs/pcx86/examples/pcx86-dbg.js | 2 +- docs/pcx86/examples/pcx86.js | 2 +- modules/pc8080/lib/ram.js | 16 +- modules/pcx86/lib/fdc.js | 2 +- modules/pdp11/lib/cpustate.js | 7 + modules/pdp11/lib/debugger.js | 4 + modules/pdp11/lib/pc11.js | 112 ++--- modules/pdp11/lib/ram.js | 122 +++++- modules/shared/lib/weblib.js | 8 +- versions/pc8080/1.30.1/pc8080-dbg.js | 278 ++++++------ versions/pc8080/1.30.1/pc8080.js | 176 ++++---- versions/pcx86/1.30.1/pcx86-dbg.js | 2 +- versions/pcx86/1.30.1/pcx86.js | 2 +- versions/pdpjs/1.30.1/pdp11-dbg.js | 410 +++++++++--------- versions/pdpjs/1.30.1/pdp11.js | 297 ++++++------- 21 files changed, 800 insertions(+), 693 deletions(-) create mode 100644 devices/pdp11/machine/1120/basic/README.md create mode 100644 devices/pdp11/machine/1120/basic/debugger/README.md create mode 100644 devices/pdp11/machine/1120/basic/debugger/machine.xml create mode 100644 devices/pdp11/machine/1120/basic/machine.xml diff --git a/devices/pdp11/machine/1120/README.md b/devices/pdp11/machine/1120/README.md index e3a8b5b760..675259c526 100644 --- a/devices/pdp11/machine/1120/README.md +++ b/devices/pdp11/machine/1120/README.md @@ -7,7 +7,8 @@ permalink: /devices/pdp11/machine/1120/ PDP-11/20 Machine Configurations -------------------------------- -PCjs is adding support the following PDP-11/20 configurations: +PDPjs is currently being tested with the following PDP-11/20 machine configurations: * [PDP-11/20 Test Machine](/devices/pdp11/machine/1120/test/) ([Debugger](/devices/pdp11/machine/1120/test/debugger/)) * [PDP-11/20 with 16Kb and Bootstrap Loader](/devices/pdp11/machine/1120/bootstrap/) ([Debugger](/devices/pdp11/machine/1120/bootstrap/debugger/)) +* [PDP-11/20 with 16Kb and DEC BASIC](/devices/pdp11/machine/1120/basic/) ([Debugger](/devices/pdp11/machine/1120/basic/debugger/)) diff --git a/devices/pdp11/machine/1120/basic/README.md b/devices/pdp11/machine/1120/basic/README.md new file mode 100644 index 0000000000..e44482353b --- /dev/null +++ b/devices/pdp11/machine/1120/basic/README.md @@ -0,0 +1,11 @@ +--- +layout: page +title: PDP-11/20 with 16Kb, DEC BASIC +permalink: /devices/pdp11/machine/1120/basic/ +machines: + - id: test1120 + type: pdp11 + autoMount: '' +--- + +{% include machine.html id="test1120" %} diff --git a/devices/pdp11/machine/1120/basic/debugger/README.md b/devices/pdp11/machine/1120/basic/debugger/README.md new file mode 100644 index 0000000000..31880cbc57 --- /dev/null +++ b/devices/pdp11/machine/1120/basic/debugger/README.md @@ -0,0 +1,12 @@ +--- +layout: page +title: PDP-11/20 with 16Kb, DEC BASIC, and Debugger +permalink: /devices/pdp11/machine/1120/basic/debugger/ +machines: + - id: test1120 + type: pdp11 + debugger: true + autoMount: '' +--- + +{% include machine.html id="test1120" %} diff --git a/devices/pdp11/machine/1120/basic/debugger/machine.xml b/devices/pdp11/machine/1120/basic/debugger/machine.xml new file mode 100644 index 0000000000..58a05f14f2 --- /dev/null +++ b/devices/pdp11/machine/1120/basic/debugger/machine.xml @@ -0,0 +1,13 @@ + + + + PDP-11/20: 16Kb, DEC BASIC, Debugger + + + + + + + + + diff --git a/devices/pdp11/machine/1120/basic/machine.xml b/devices/pdp11/machine/1120/basic/machine.xml new file mode 100644 index 0000000000..56f2332204 --- /dev/null +++ b/devices/pdp11/machine/1120/basic/machine.xml @@ -0,0 +1,12 @@ + + + + PDP-11/20: 16Kb, DEC BASIC + + + + + + + + diff --git a/devices/pdp11/machine/1170/README.md b/devices/pdp11/machine/1170/README.md index 655c604587..08e8a59783 100644 --- a/devices/pdp11/machine/1170/README.md +++ b/devices/pdp11/machine/1170/README.md @@ -7,7 +7,7 @@ permalink: /devices/pdp11/machine/1170/ PDP-11/70 Machine Configurations -------------------------------- -PCjs is adding support the following PDP-11/70 configurations: +PDPjs is currently being tested with the following PDP-11/70 machine configurations: * [PDP-11/70 Test Machine](/devices/pdp11/machine/1170/test/) ([Debugger](/devices/pdp11/machine/1170/test/debugger/)) * [PDP-11/70 with Front Panel](/devices/pdp11/machine/1170/panel) ([Debugger](/devices/pdp11/machine/1170/panel/debugger/)) diff --git a/docs/pcx86/examples/pcx86-dbg.js b/docs/pcx86/examples/pcx86-dbg.js index 9616a9e90b..97ea46b62b 100644 --- a/docs/pcx86/examples/pcx86-dbg.js +++ b/docs/pcx86/examples/pcx86-dbg.js @@ -656,7 +656,7 @@ function zp(a,b){var c=0,d,e=!0;b||(b=[0,0,128,Array(9),0,0,0,[]]);a.hb=b[c++];c n[t++];g.eb=n[t++];g.pb=null;g.za||(g.Oe="");var A=n[t++];102==A&&(A=!1);"boolean"==typeof A?(q=n[t++],n=n[t],A?(t=k.A[m],Ep(k,m,!0,!0),t.bf=!0,m=new Lo(k,t,"preload"),k.pj(t,m,q,n,!0)):Gp(k,m,q,n,!0)?g.za&&n&&Hp(k,q,n,g.za):xb(k,!1)):void 0!==A&&g.za&&0>g.za.restore(A)&&(h=!1);h&&g.za&&void 0!==g.eb&&(g.pb=g.za.seek(g.Qb,g.kb,g.xb));h||(e=!1)}a.W=b[c++]||0;a.jc=b[c]||0;return e} function Fp(a){var b=0,c=[];c[b++]=a.hb;c[b++]=0;c[b++]=a.ma;c[b++]=a.V;c[b++]=a.L;c[b++]=a.C;c[b++]=a.aa;for(var d=b++,e=0,f=[],g=0;gGp(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;ha.Bb||f[1]>a.ub)&&(this.Na('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.hb)),b=null);b?(a.za=b,a.Tk=c,a.Oe=d,Hp(this,c,d,b),f=b.info(),this.W|=128,this.Na('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.hb),a.Ce||e),a.Fg=f[0],a.Qf=f[1],a.Rf=f[2],this.X&&this.X.wd()):a.bf=!1;a.Ce&&(a.Ce=!1,--this.ea||xb(this));xp(this,a.hb)}; diff --git a/docs/pcx86/examples/pcx86.js b/docs/pcx86/examples/pcx86.js index 3b8a3f31a9..b61df533f2 100644 --- a/docs/pcx86/examples/pcx86.js +++ b/docs/pcx86/examples/pcx86.js @@ -604,7 +604,7 @@ function xm(a,b){var c=0,d,e=!0;b||(b=[0,0,128,Array(9),0,0,0,[]]);a.Qa=b[c++];c 80;g.eb=9;break;case 1200:g.ib=80;g.eb=15;break;case 1440:g.ib=80,g.eb=18}}var k=a,m=d,q=f[d],y=0;h=!0;g.Qa=m;g.ne=g.pe=!1;q||(q=[192,!0,0,2,0]);"boolean"==typeof q[1]&&(q[1]=["Floppy Drive",g.ib||40,g.jb||q[3],g.eb||9,g.nb||512,q[1],g.Nf,g.Xe,g.Ye]);g.kb=q[y++];var w=q[y++];g.name=w[0];g.ib=w[1];g.jb=w[2];g.eb=w[3];g.nb=w[4];g.qe=w[5];(g.Nf=w[6])?(g.Xe=w[7],g.Ye=w[8]):(g.Nf=g.ib,g.Xe=g.jb,g.Ye=g.eb);g.Ya=q[y++];g.ud=q[y++];g.wb=q[y++];g.ud=100<=g.ud?g.ud-100:g.ud-g.wb;g.mb=q[y++];g.vd=q[y++];g.vb= q[y++];g.Ua=q[y++];g.Wa=null;g.ta||(g.Xd="");var z=q[y++];102==z&&(z=!1);"boolean"==typeof z?(w=q[y++],q=q[y],z?(y=k.B[m],Cm(k,m,!0,!0),y.pe=!0,m=new cm(k,y,"preload"),k.oi(y,m,w,q,!0)):Em(k,m,w,q,!0)?g.ta&&q&&Fm(k,w,q,g.ta):t(k,!1)):void 0!==z&&g.ta&&0>g.ta.restore(z)&&(h=!1);h&&g.ta&&void 0!==g.Ua&&(g.Wa=g.ta.seek(g.wb,g.Ya,g.mb));h||(e=!1)}a.L=b[c++]||0;a.H=b[c]||0;return e} function Dm(a){var b=0,c=[];c[b++]=a.Qa;c[b++]=0;c[b++]=a.aa;c[b++]=a.I;c[b++]=a.G;c[b++]=a.D;c[b++]=a.P;for(var d=b++,e=0,f=[],g=0;gEm(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;ha.ib||f[1]>a.jb)&&(this.Ba('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Qa)),b=null);b?(a.ta=b,a.Jj=c,a.Xd=d,Fm(this,c,d,b),f=b.info(),this.L|=128,this.Ba('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Qa),a.Od||e),a.Nf=f[0],a.Xe=f[1],a.Ye=f[2],this.ba&&xc(this.ba)):a.pe=!1;a.Od&&(a.Od=!1,--this.R||t(this));vm(this,a.Qa)}; diff --git a/modules/pc8080/lib/ram.js b/modules/pc8080/lib/ram.js index 42b5692ec1..f13aae1b43 100644 --- a/modules/pc8080/lib/ram.js +++ b/modules/pc8080/lib/ram.js @@ -66,8 +66,8 @@ function RAM8080(parmsRAM) this.addrRAM = parmsRAM['addr']; this.sizeRAM = parmsRAM['size']; - this.nFileLoad = parmsRAM['load']; - this.nFileExec = parmsRAM['exec']; + this.addrLoad = parmsRAM['load']; + this.addrExec = parmsRAM['exec']; this.fInstalled = (!!this.sizeRAM); // 0 is the default value for 'size' when none is specified this.fAllocated = false; @@ -197,8 +197,8 @@ RAM8080.prototype.doneLoad = function(sURL, sData, nErrorCode) if (resource) { this.abInit = resource.aBytes; this.aSymbols = resource.aSymbols; - if (this.nFileLoad == null && resource.nLoad != null) this.nFileLoad = resource.nLoad; - if (this.nFileExec == null && resource.nExec != null) this.nFileExec = resource.nExec; + if (this.addrLoad == null) this.addrLoad = resource.addrLoad; + if (this.addrExec == null) this.addrExec = resource.addrExec; } else { this.sFilePath = null; } @@ -232,19 +232,19 @@ RAM8080.prototype.initRAM = function() if (!this.abInit || !this.bus) return; var addr = this.addrRAM; - if (this.nFileLoad !== null) addr = this.nFileLoad; + if (this.addrLoad !== null) addr = this.addrLoad; for (var i = 0; i < this.abInit.length; i++) { this.bus.setByteDirect(addr + i, this.abInit[i]); } - if (this.nFileExec !== null) { + if (this.addrExec !== null) { /* * Here's where we enable our "Fake CP/M" support, triggered by the user loading a "writable" ROM image * at offset 0x100. Fake CP/M support works by installing HLT opcodes at well-known CP/M addresses * (namely, 0x0000, which is the CP/M reset vector, and 0x0005, which is the CP/M system call vector) and * then telling the CPU to call us whenever a HLT occurs, so we can check PC for one of these addresses. */ - if (this.nFileExec == RAM8080.CPM.INIT) { + if (this.addrExec == RAM8080.CPM.INIT) { for (i = 0; i < RAM8080.CPM.VECTORS.length; i++) { this.bus.setByteDirect(RAM8080.CPM.VECTORS[i], CPUDef8080.OPCODE.HLT); } @@ -255,7 +255,7 @@ RAM8080.prototype.initRAM = function() }; }(this)); } - this.cpu.setReset(this.nFileExec); + this.cpu.setReset(this.addrExec); } /* diff --git a/modules/pcx86/lib/fdc.js b/modules/pcx86/lib/fdc.js index 45c966009b..a8613ea310 100644 --- a/modules/pcx86/lib/fdc.js +++ b/modules/pcx86/lib/fdc.js @@ -1278,7 +1278,7 @@ FDC.prototype.autoMount = function(fRemount) if (this.configMount) { for (var sDrive in this.configMount) { var configDrive = this.configMount[sDrive]; - var sDiskettePath = configDrive['path']; + var sDiskettePath = configDrive['path'] || ""; var sDisketteName = configDrive['name'] || this.findDiskette(sDiskettePath); if (sDiskettePath && sDisketteName) { /* diff --git a/modules/pdp11/lib/cpustate.js b/modules/pdp11/lib/cpustate.js index 8fb44dbf0f..2663912cd1 100644 --- a/modules/pdp11/lib/cpustate.js +++ b/modules/pdp11/lib/cpustate.js @@ -369,6 +369,13 @@ CPUStatePDP11.prototype.setReset = function(addr) { this.addrReset = addr; this.setPC(addr); + if (this.dbg) { + /* + * TODO: Review the decision to always stop the CPU if the Debugger is loaded. + */ + this.stopCPU(); + this.dbg.updateStatus(); + } }; /** diff --git a/modules/pdp11/lib/debugger.js b/modules/pdp11/lib/debugger.js index 3929605c6a..7dd71091f0 100644 --- a/modules/pdp11/lib/debugger.js +++ b/modules/pdp11/lib/debugger.js @@ -93,6 +93,7 @@ function DebuggerPDP11(parmsDbg) /* * Since this Debugger doesn't use replaceRegs(), we can use parentheses instead of braces. */ + this.fInit = false; this.fParens = true; /* @@ -1217,6 +1218,7 @@ if (DEBUGGER) { */ DebuggerPDP11.prototype.init = function() { + this.fInit = true; this.println("Type ? for help with PDP11 Debugger commands"); this.updateStatus(); if (this.sInitCommands) { @@ -1367,6 +1369,8 @@ if (DEBUGGER) { */ DebuggerPDP11.prototype.updateStatus = function(fRegs) { + if (!this.fInit) return; + if (fRegs === undefined) fRegs = true; this.dbgAddrNextCode = this.newAddr(this.cpu.getPC()); diff --git a/modules/pdp11/lib/pc11.js b/modules/pdp11/lib/pc11.js index a7f259a6ac..7d3225ab54 100644 --- a/modules/pdp11/lib/pc11.js +++ b/modules/pdp11/lib/pc11.js @@ -220,6 +220,7 @@ PC11.prototype.initBus = function(cmp, bus, cpu, dbg) this.bus = bus; this.cpu = cpu; this.dbg = dbg; + this.ram = cmp.getMachineComponent("RAM"); var pc11 = this; @@ -310,7 +311,7 @@ PC11.prototype.autoMount = function(fRemount) { if (!fRemount) this.cAutoMount = 0; if (this.configMount) { - var sTapePath = this.configMount['path']; + var sTapePath = this.configMount['path'] || ""; var sTapeName = this.configMount['name'] || this.findTape(sTapePath); if (sTapePath && sTapeName) { /* @@ -320,7 +321,11 @@ PC11.prototype.autoMount = function(fRemount) this.setReady(false); } } else { - this.notice("Incorrect auto-mount settings for PC11 (" + JSON.stringify(this.configMount) + ")"); + /* + * This likely happened because there was no autoMount setting (or it was overridden with an empty value), + * so just make sure the current selection is set to "None". + */ + this.displayTape(); } } return !!this.cAutoMount; @@ -360,7 +365,7 @@ PC11.prototype.loadSelectedTape = function(sTapeName, sTapePath, nTapeTarget, fi sTapePath = window.prompt("Enter the URL of a remote tape image.", "") || ""; if (!sTapePath) return; sTapeName = str.getBaseName(sTapePath); - if (DEBUG) this.println("Attempting to load " + sTapePath + " as \"" + sTapeName + "\""); + this.status("Attempting to load " + sTapePath + " as \"" + sTapeName + "\""); this.sTapeSource = PC11.SOURCE.REMOTE; } else { @@ -395,7 +400,7 @@ PC11.prototype.loadTape = function(sTapeName, sTapePath, nTapeTarget, fAutoMount this.notice("PC11 busy"); } else { - // if (DEBUG) this.println("tape queued: " + sTapeName); + // this.status("tape queued: " + sTapeName); if (fAutoMount) { this.cAutoMount++; if (this.messageEnabled()) this.printMessage("auto-loading tape: " + sTapeName); @@ -407,7 +412,7 @@ PC11.prototype.loadTape = function(sTapeName, sTapePath, nTapeTarget, fAutoMount } } } - if (DEBUG && nResult) this.println(this.nTapeTarget == PC11.TARGET.READER? "tape attached" : "tape loaded"); + if (nResult) this.status(this.nTapeTarget == PC11.TARGET.READER? "tape attached" : "tape loaded"); return nResult; }; @@ -496,7 +501,7 @@ PC11.prototype.doneLoad = function(sTapeName, sTapePath, nTapeTarget, sTapeData, Component.addMachineResource(this.idMachine, sURL, sTapeData); var resource = web.parseMemoryResource(sURL, sTapeData); if (resource) { - this.parseTape(sTapeName, sTapePath, nTapeTarget, resource.aBytes); + this.parseTape(sTapeName, sTapePath, nTapeTarget, resource.aBytes, resource.addrLoad, resource.addrExec); } } this.flags.busy = false; @@ -597,107 +602,50 @@ PC11.prototype.displayTape = function() }; /** - * parseTape(sTapeName, sTapePath, nTapeTarget, aBytes) + * parseTape(sTapeName, sTapePath, nTapeTarget, aBytes, addrLoad, addrExec) * * @this {PC11} * @param {string} sTapeName * @param {string} sTapePath * @param {number} nTapeTarget * @param {Array|Uint8Array} aBytes + * @param {number|null} [addrLoad] + * @param {number|null} [addrExec] */ -PC11.prototype.parseTape = function(sTapeName, sTapePath, nTapeTarget, aBytes) +PC11.prototype.parseTape = function(sTapeName, sTapePath, nTapeTarget, aBytes, addrLoad, addrExec) { this.sTapeName = sTapeName; this.sTapePath = sTapePath; this.nTapeTarget = nTapeTarget; + if (nTapeTarget == PC11.TARGET.MEMORY) { /* - * Data on tapes is organized into blocks; each block begins with a 6-byte header: - * - * 2-byte signature (0x01,0x00) - * 2-byte length (N + 6) - * 2-byte load address - * - * followed by N data bytes. If N is zero, then the 2-byte load address is the exec address, - * unless the address is odd (usually 1), in which case stop. + * Use the RAM component's loadImage() service to do our dirty work. If the load succeeds, then + * depending on whether there was also exec address, either the CPU will be stopped or the PC wil be + * reset. * - * After the data bytes, there is a single checksum byte. The sum of all the bytes (including - * the checksum byte) should be zero. + * NOTE: Some tapes are not in the Absolute Loader format, so if the JSON-encoded tape resource file + * we downloaded didn't ALSO include a load address, the load will fail. * - * ANOMALIES: Tape files don't always begin with a signature word, so I allow any number of - * leading zeros before the first signature. Tape files don't always end cleanly either, so as - * soon as I see an invalid signature, I break out of the loop without signalling an error, as - * long as at least ONE block was successfully processed. + * For example, the "Absolute Loader" tape is NOT itself in the Absolute Loader format. You just have + * to know that in order to load that tape, you must first load the appropriate "Bootstrap Loader" (which + * DOES include its own hard-coded load address), attach the "Absolute Loader" tape, and then run the + * "Bootstrap Loader". */ - var off = 0; - var fError = false, cBlocks = 0; - while (off < aBytes.length - 1) { - var w = (aBytes[off] & 0xff) | ((aBytes[off+1] & 0xff) << 8); - if (!w) { // ignore pairs of leading zeros - off += 2; - continue; - } - if (!(w & 0xff)) { // as well as single bytes of zero - off++; - continue; - } - var offBlock = off; - if (w != 0x0001) { - if (DEBUG) this.println("invalid signature (" + str.toHexWord(w) + ") at offset " + str.toHexWord(offBlock)); - if (!cBlocks) fError = true; - break; - } - if (off + 6 >= aBytes.length) { - if (DEBUG) this.println("invalid block at offset " + str.toHexWord(offBlock)); - fError = true; - break; - } - off += 2; - var checksum = w; - var len = (aBytes[off++] & 0xff) | ((aBytes[off++] & 0xff) << 8); - var addr = (aBytes[off++] & 0xff) | ((aBytes[off++] & 0xff) << 8); - checksum += (len & 0xff) + (len >> 8) + (addr & 0xff) + (addr >> 8); - var offData = off, cbData = len -= 6; - while (len > 0 && off < aBytes.length - 1) { - checksum += aBytes[off++] & 0xff; - len--; - } - if (len != 0 || off >= aBytes.length) { - if (DEBUG) this.println("insufficient data for block at offset " + str.toHexWord(offBlock)); - fError = true; - break; - } - checksum += aBytes[off++] & 0xff; - if (checksum & 0xff) { - if (DEBUG) this.println("invalid checksum (" + str.toHexByte(checksum) + ") for block at offset " + str.toHexWord(offBlock)); - fError = true; - break; - } - if (!cbData) { - if (!(addr & 0x1)) { - this.cpu.setPC(addr); - } - } else { - while (cbData--) { - this.cpu.setByteDirect(addr++, aBytes[offData++] & 0xff); - } - } - cBlocks++; - } - if (fError) { + if (!this.ram || !this.ram.loadImage(aBytes, addrLoad, addrExec)) { this.sTapeName = ""; this.sTapePath = ""; this.sTapeSource = PC11.SOURCE.NONE; this.nTapeTarget = PC11.TARGET.NONE; - if (DEBUG) this.println("error loading tape: " + sTapeName); + this.status("error loading tape: " + sTapeName); return; } - if (DEBUG) this.println("tape loaded: " + sTapeName); + this.status("tape loaded: " + sTapeName); return; } this.iTapeData = 0; this.aTapeData = aBytes; - if (DEBUG) this.println("tape attached: " + sTapeName); + this.status("tape attached: " + sTapeName); }; /** @@ -715,7 +663,7 @@ PC11.prototype.unloadTape = function(fLoading) * Avoid any unnecessary hysteresis regarding the display if this unload is merely a prelude to another load. */ if (!fLoading) { - if (DEBUG && this.nTapeTarget) this.println(this.nTapeTarget == PC11.TARGET.READER? "tape detached" : "tape unloaded"); + if (this.nTapeTarget) this.status(this.nTapeTarget == PC11.TARGET.READER? "tape detached" : "tape unloaded"); this.sTapeSource = PC11.SOURCE.NONE; this.nTapeTarget = PC11.TARGET.NONE; this.displayTape(); diff --git a/modules/pdp11/lib/ram.js b/modules/pdp11/lib/ram.js index 5d2a64ea0a..a88c2c7400 100644 --- a/modules/pdp11/lib/ram.js +++ b/modules/pdp11/lib/ram.js @@ -69,8 +69,8 @@ function RAMPDP11(parmsRAM) this.addrRAM = parmsRAM['addr']; this.sizeRAM = parmsRAM['size']; - this.nFileLoad = parmsRAM['load']; - this.nFileExec = parmsRAM['exec']; + this.addrLoad = parmsRAM['load']; + this.addrExec = parmsRAM['exec']; this.fInstalled = (!!this.sizeRAM); // 0 is the default value for 'size' when none is specified this.fAllocated = false; @@ -175,8 +175,8 @@ RAMPDP11.prototype.doneLoad = function(sURL, sData, nErrorCode) if (resource) { this.abInit = resource.aBytes; this.aSymbols = resource.aSymbols; - if (this.nFileLoad == null && resource.nLoad != null) this.nFileLoad = resource.nLoad; - if (this.nFileExec == null && resource.nExec != null) this.nFileExec = resource.nExec; + if (this.addrLoad == null) this.addrLoad = resource.addrLoad; + if (this.addrExec == null) this.addrExec = resource.addrExec; } else { this.sFilePath = null; } @@ -194,6 +194,8 @@ RAMPDP11.prototype.doneLoad = function(sURL, sData, nErrorCode) */ RAMPDP11.prototype.initRAM = function() { + if (!this.bus) return; + if (!this.fAllocated && this.sizeRAM) { if (this.bus.addMemory(this.addrRAM, this.sizeRAM, MemoryPDP11.TYPE.RAM)) { this.fAllocated = true; @@ -209,15 +211,7 @@ RAMPDP11.prototype.initRAM = function() */ if (!this.abInit || !this.bus) return; - var addr = this.addrRAM; - if (this.nFileLoad !== null) addr = this.nFileLoad; - for (var i = 0; i < this.abInit.length; i++) { - this.bus.setByteDirect(addr + i, this.abInit[i]); - } - - if (this.nFileExec !== null) { - this.cpu.setReset(this.nFileExec); - } + this.loadImage(this.abInit, this.addrLoad, this.addrExec, this.addrRAM); /* * TODO: Consider an option to retain this data and give the user a way of restoring the initial contents. @@ -240,6 +234,108 @@ RAMPDP11.prototype.reset = function() */ }; +/** + * loadImage(aBytes, addrLoad, addrExec, addrInit) + * + * @this {RAMPDP11} + * @param {Array|Uint8Array} aBytes + * @param {number|null} [addrLoad] + * @param {number|null} [addrExec] + * @param {number|null} [addrInit] + * @return {boolean} (true if loaded, false if not) + */ +RAMPDP11.prototype.loadImage = function(aBytes, addrLoad, addrExec, addrInit) +{ + var fLoaded = false; + /* + * Data on tapes is organized into blocks; each block begins with a 6-byte header: + * + * 2-byte signature (0x0001) + * 2-byte block length (N + 6, because it includes the 6-byte header) + * 2-byte load address + * + * followed by N data bytes. If N is zero, then the 2-byte load address is the exec address, + * unless the address is odd (usually 1). DEC's "Absolute Loader" jumps to the exec address + * in former case, halts in the latter. + * + * All values are stored "little endian" (low byte first, followed by high byte), just like + * the PDP-11 does. + * + * After the data bytes, there is a single checksum byte. The 8-bit sum of all the bytes in + * the block (including the header bytes and checksum byte) should be zero. + * + * ANOMALIES: Tape files don't always begin with a signature word, so I allow any number of + * leading zeros before the first signature. Tape files don't always end cleanly either, so as + * soon as I see an invalid signature, I break out of the loop without signalling an error, as + * long as at least ONE block was successfully processed. + */ + if (addrLoad == null) { + var off = 0, fError = false; + while (off < aBytes.length - 1) { + var w = (aBytes[off] & 0xff) | ((aBytes[off+1] & 0xff) << 8); + if (!w) { // ignore pairs of leading zeros + off += 2; + continue; + } + if (!(w & 0xff)) { // as well as single bytes of zero + off++; + continue; + } + var offBlock = off; + if (w != 0x0001) { + if (MAXDEBUG) this.println("invalid signature (" + str.toHexWord(w) + ") at offset " + str.toHexWord(offBlock)); + break; + } + if (off + 6 >= aBytes.length) { + if (MAXDEBUG) this.println("invalid block at offset " + str.toHexWord(offBlock)); + break; + } + off += 2; + var checksum = w; + var len = (aBytes[off++] & 0xff) | ((aBytes[off++] & 0xff) << 8); + var addr = (aBytes[off++] & 0xff) | ((aBytes[off++] & 0xff) << 8); + checksum += (len & 0xff) + (len >> 8) + (addr & 0xff) + (addr >> 8); + var offData = off, cbData = len -= 6; + while (len > 0 && off < aBytes.length) { + checksum += aBytes[off++] & 0xff; + len--; + } + if (len != 0 || off >= aBytes.length) { + if (MAXDEBUG) this.println("insufficient data for block at offset " + str.toHexWord(offBlock)); + break; + } + checksum += aBytes[off++] & 0xff; + if (checksum & 0xff) { + if (MAXDEBUG) this.println("invalid checksum (" + str.toHexByte(checksum) + ") for block at offset " + str.toHexWord(offBlock)); + break; + } + if (!cbData) { + if (addr & 0x1) { + this.cpu.stopCPU(); + } else { + this.cpu.setReset(addr); + } + } else { + while (cbData--) { + this.cpu.setByteDirect(addr++, aBytes[offData++] & 0xff); + } + } + fLoaded = true; + } + } + if (!fLoaded) { + if (addrLoad == null) addrLoad = addrInit; + if (addrLoad != null) { + for (var i = 0; i < aBytes.length; i++) { + this.cpu.setByteDirect(addrLoad + i, aBytes[i]); + } + if (addrExec != null) this.cpu.setReset(addrExec); + fLoaded = true; + } + } + return fLoaded; +}; + /** * RAMPDP11.init() * diff --git a/modules/shared/lib/weblib.js b/modules/shared/lib/weblib.js index 6bf99876f8..435405d0ee 100644 --- a/modules/shared/lib/weblib.js +++ b/modules/shared/lib/weblib.js @@ -295,8 +295,8 @@ web.parseMemoryResource = function(sURL, sData) var resource = { aBytes: null, aSymbols: null, - nLoad: null, - nExec: null + addrLoad: null, + addrExec: null }; if (sData.charAt(0) == "[" || sData.charAt(0) == "{") { @@ -338,8 +338,8 @@ web.parseMemoryResource = function(sURL, sData) data = eval("(" + sData + ")"); } - resource.nLoad = data['load']; - resource.nExec = data['exec']; + resource.addrLoad = data['load']; + resource.addrExec = data['exec']; if (a = data['bytes']) { resource.aBytes = a; diff --git a/versions/pc8080/1.30.1/pc8080-dbg.js b/versions/pc8080/1.30.1/pc8080-dbg.js index 344d26855f..54a4499f25 100644 --- a/versions/pc8080/1.30.1/pc8080-dbg.js +++ b/versions/pc8080/1.30.1/pc8080-dbg.js @@ -39,67 +39,67 @@ function pa(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a function sa(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;cb.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Rb=g.load;d.Qb=g.exec;if(e=g.bytes)d.Aa=e;else if(e=g.words)for(d.Aa=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.Aa=Array(4*e.length),f=c=0;cb.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.bb=g.load;d.Ta=g.exec;if(e=g.bytes)d.Aa=e;else if(e=g.words)for(d.Aa=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.Aa=Array(4*e.length),f=c=0;c>8&255,d.Aa[f++]=e[c]>>16&255,d.Aa[f++]=e[c]>>24&255;else d.Aa=g;d.Ea=g.symbols;d.Aa.length?1==d.Aa.length&&(w(d.Aa[0]),d=null):(w("Empty resource: "+a),d=null)}catch(h){w("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;cb?this.eb=this.id:(this.fb=this.id.substr(0,b),this.eb=this.id.substr(b+1));this[a]=c;this.D={ready:!1,ub:!1,Lb:!1,xa:!1,error:!1};this.Fb=null;this.D.error=!1;this.N={};this.I=null;this.ta=d||0;Ua.push(this)}var Va=void 0,Wa={}; +function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.hc=b.comment;this.Od=b;b=this.id.indexOf(".");0>b?this.gb=this.id:(this.hb=this.id.substr(0,b),this.gb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,wb:!1,Nb:!1,xa:!1,error:!1};this.Hb=null;this.C.error=!1;this.N={};this.I=null;this.ta=d||0;Ua.push(this)}var Va=void 0,Wa={}; if(window){Va||(Va=window.location.search.substr(1));for(var Xa,Ya=/\+/g,$a=/([^&=]+)=?([^&]*)/g;Xa=$a.exec(Va);)Wa[decodeURIComponent(Xa[1].replace(Ya," "))]=decodeURIComponent(Xa[2].replace(Ya," "))}function ab(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} function A(a,b){b||(b=z);a.prototype=ab(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var bb=window.PCjs.Machines||(window.PCjs.Machines={}),Ua=window.PCjs.Components||(window.PCjs.Components=[])}else bb={},Ua=[];function cb(a,b,c){bb[a]&&b&&(bb[a][b]=c)}function Qa(a,b,c){b||w((c?c+": ":"")+a)} function db(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>1)+2;10>this.ia&&(this.ia=10);15>2;this.u=this.Ja-1;this.K=this.L/this.Ja|0;this.G=this.K-1;this.A=[];this.j=[];this.F=this.C=!1;this.O=[];this.P=[];a=new G;xb(a,this.I);this.X=Array(this.K);for(b=0;b>>a.ia;0f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.H)return h.Ab+=h.H-e,h.H=e,!0;if(e>=h.H+h.Ab){n=h.size-(e-k);n>f&&(n=f);h.Ab=e-h.H+n;e=k+a.Ja;f-=n;g++;continue}}return zb(1,e,f)}e=new G(e,n,a.Ja,d);xb(e,a.I,h);a.X[g++]=e;e=k+a.Ja;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Ab[d]+" at "+u(b)),!0):zb(2,b,c)} -l.aa=function(a){return this.X[(a&this.w)>>>this.ia].lb(a&this.u,a)};function Bb(a,b){return a.X[(b&a.w)>>>a.ia].yb(b&a.u,b)}l.ab=function(a){var b=a&this.u,c=(a&this.w)>>>this.ia;return b!=this.u?this.X[c].Dc(b,a):this.X[c++].lb(b,a)|this.X[c&this.G].lb(0,a+1)<<8};function Cb(a,b){var c=b&a.u,d=(b&a.w)>>>a.ia;return c!=a.u?a.X[d].Sb(c,b):a.X[d++].yb(c,b)|a.X[d&a.G].yb(0,b+1)<<8}l.va=function(a,b){this.X[(a&this.w)>>>this.ia].nb(a&this.u,b&255,a)}; -function Db(a,b,c){a.X[(b&a.w)>>>a.ia].Bb(b&a.u,c&255,b)}l.Jb=function(a,b){var c=a&this.u,d=(a&this.w)>>>this.ia;c!=this.u?this.X[d].Fc(c,b&65535,a):(this.X[d++].nb(c,b&255,a),this.X[d&this.G].nb(0,b>>8&255,a+1))};function Fb(a){for(var b=0,c=[],d=0;d>1)+2;10>this.ia&&(this.ia=10);15>2;this.u=this.Ja-1;this.K=this.L/this.Ja|0;this.H=this.K-1;this.A=[];this.j=[];this.F=this.D=!1;this.O=[];this.P=[];a=new G;xb(a,this.I);this.X=Array(this.K);for(b=0;b>>a.ia;0f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.G)return h.Cb+=h.G-e,h.G=e,!0;if(e>=h.G+h.Cb){n=h.size-(e-k);n>f&&(n=f);h.Cb=e-h.G+n;e=k+a.Ja;f-=n;g++;continue}}return zb(1,e,f)}e=new G(e,n,a.Ja,d);xb(e,a.I,h);a.X[g++]=e;e=k+a.Ja;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Ab[d]+" at "+u(b)),!0):zb(2,b,c)} +l.aa=function(a){return this.X[(a&this.w)>>>this.ia].nb(a&this.u,a)};function Bb(a,b){return a.X[(b&a.w)>>>a.ia].Ab(b&a.u,b)}l.cb=function(a){var b=a&this.u,c=(a&this.w)>>>this.ia;return b!=this.u?this.X[c].Dc(b,a):this.X[c++].nb(b,a)|this.X[c&this.H].nb(0,a+1)<<8};function Cb(a,b){var c=b&a.u,d=(b&a.w)>>>a.ia;return c!=a.u?a.X[d].Sb(c,b):a.X[d++].Ab(c,b)|a.X[d&a.H].Ab(0,b+1)<<8}l.va=function(a,b){this.X[(a&this.w)>>>this.ia].pb(a&this.u,b&255,a)}; +function Db(a,b,c){a.X[(b&a.w)>>>a.ia].Db(b&a.u,c&255,b)}l.Lb=function(a,b){var c=a&this.u,d=(a&this.w)>>>this.ia;c!=this.u?this.X[d].Fc(c,b&65535,a):(this.X[d++].pb(c,b&255,a),this.X[d&this.H].pb(0,b>>8&255,a+1))};function Fb(a){for(var b=0,c=[],d=0;d>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,d);a.I&&a.C!=g[1]&&Wb(a.I,b,k)}else a.I&&(hb(a.I,a,b,k,d),a.C&&Wb(a.I,b,k));f+=h<<3;b+=h;e-=h}} +function Rb(a,b,c){for(var d=1,e=0,f=0;0>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,d);a.I&&a.D!=g[1]&&Wb(a.I,b,k)}else a.I&&(hb(a.I,a,b,k,d),a.D&&Wb(a.I,b,k));f+=h<<3;b+=h;e-=h}} function zb(a,b,c){w("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Xb;if(qb){var Yb=new ArrayBuffer(2);(new DataView(Yb)).setUint16(0,256,!0);Xb=256===(new Uint16Array(Yb))[0]}else Xb=!1;var Zb=Xb; -function G(a,b,c,d){this.id=$b+=2;this.b=null;this.H=a;this.Ab=b;this.size=c||0;this.type=d||ac;this.N=d==bc;xb(this);this.Pa=this.Ac=!1;if(c)if(qb)this.F=new ArrayBuffer(c),this.C=new DataView(this.F,0,c),this.u=new Uint8Array(this.F,0,c),this.K=new Uint16Array(this.F,0,c>>1),this.b=new Int32Array(this.F,0,c>>2),cc(this,Zb?dc:ec);else{this.b=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},Y:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},fa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},fb:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<> -2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Pa=!0},O:function(a,b){if(this.I&&null!=this.H){var c=this.I;jc(c,this.H+a,1,c.O)&&c.ra(!0)}return this.yb(a,b)},ca:function(a,b){if(this.I&&null!=this.H){var c=this.I;jc(c,this.H+a,2,c.O)&&c.ra(!0)}return this.Sb(a,b)},ja:function(a,b,c){if(this.I&&null!=this.H){var d=this.I;jc(d,this.H+a,1,d.C)&&d.ra(!0)}this.N?this.w(a,b,c):this.Bb(a,b,c)},ma:function(a,b,c){if(this.I&& -null!=this.H){var d=this.I;jc(d,this.H+a,2,d.C)&&d.ra(!0)}this.N?this.w(a,b,c):this.Wb(a,b,c)},M:function(a){return this.u[a]},P:function(a){return this.u[a]},ba:function(a){return this.C.getUint16(a,!0)},ea:function(a){return a&1?this.u[a]|this.u[a+1]<<8:this.K[a>>1]},ha:function(a,b){this.u[a]=b;this.Pa=!0},eb:function(a,b){this.u[a]=b;this.Pa=!0},la:function(a,b){this.C.setUint16(a,b,!0);this.Pa=!0},na:function(a,b){a&1?(this.u[a]=b,this.u[a+1]=b>>8):this.K[a>>1]=b;this.Pa=!0}}; -function xb(a,b,c){a.I=b;a.A=a.j=0;c&&((a.A=c.A)&&ic(a,hc,!1),(a.j=c.j)&&gc(a,hc,!1))}function kc(a,b){b?--a.j||(a.nb=a.N?a.w:a.Bb,a.Fc=a.N?a.G:a.Wb):--a.A||(a.lb=a.yb,a.Dc=a.Sb)}function gc(a,b,c){c&&a.j||(a.nb=!a.N&&b[1]||a.w,a.Fc=!a.N&&b[3]||a.G);if(c||void 0===c)a.Bb=b[1]||a.w,a.Wb=b[3]||a.G}function ic(a,b,c){c&&a.A||(a.lb=b[0]||a.J,a.Dc=b[2]||a.L);if(c||void 0===c)a.yb=b[0]||a.J,a.Sb=b[2]||a.L}function cc(a,b){b||(b=lc);ic(a,b,void 0);gc(a,b,void 0)} -var lc=[],fc=[G.prototype.Y,G.prototype.fb,G.prototype.fa,G.prototype.wa],hc=[G.prototype.O,G.prototype.ja,G.prototype.ca,G.prototype.ma];if(qb)var ec=[G.prototype.M,G.prototype.ha,G.prototype.ba,G.prototype.la],dc=[G.prototype.P,G.prototype.eb,G.prototype.ea,G.prototype.na]; -function mc(a,b){z.call(this,"CPU",a,mc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Sa=c;this.ha=Math.round(this.Y/1E4)/100;this.bb=this.ha*this.Sa;this.D.za=!1;this.D.Vb=!1;this.D.tb=a.autoStart;this.D.yc=!1;this.D.hb=!1;this.vb=this.O=0;this.wb=a.csStart;this.jb=a.csInterval;this.kb=a.csStop;this.w=[];this.Ha=this.cb.bind(this);F(this)}A(mc);var nc=["power","reset"];l=mc.prototype; -l.Ra=function(a,b,c,d){this.A=a;this.u=b;this.I=d;for(b=0;b=a.O&&(a.O+=a.jb,c=!0);0<=a.kb&&a.kb<=Gc(a)&&(a.jb=a.kb=-1,Cc(a),a.ra(),c=!0);c&&a.g(Gc(a)+" cycles: checksum="+t(a.vb))}} -l.qa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.D.xa)a=!0;else{var b=null,c,h=db(a.id);for(c=0;ca.K/a.bb?b=1:d=!0;a.Sa=b;b=a.ha*a.Sa;if(a.bb!=b){a.bb=b;b=a.bb.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.A&&a.A.zb()}Ic(a,a.G);a.G=0;a.C=qa();a.J=0;Jc(a);return d}function Kc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Lc(a,b,c){0<=b&&ba.w[b][0]&&(c*=a.Y*a.Sa/1E3,a.w[b][0]=c+Mc(a))}function Mc(a,b){var c=a.L-=a.b;a.b=0;b&&(a.L=0);return c} -l.cb=function(a){if(kb(this,!0)){if(!this.D.za){Hc(this);this.A&&this.A.start(this.C,Gc(this));this.D.za=!0;this.D.Vb=!0;this.F&&this.F.start();var b=this.N.run;b&&(b.textContent="Halt");this.A&&(this.A.La(!0),a&&this.A.zb(!0))}this.ja>=this.Y&&Jc(this,!0);this.ba=0;this.ea=qa();this.J&&(a=this.ea-this.J,a>this.wa&&(this.C+=a,this.C>this.ea&&(this.C=this.ea)));try{do{for(var c,d=this.D.hb?1:this.fa,e=this.w.length-1;0<=e;e--){var f=this.w[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.mb(c);c=Mc(this,!0);this.ba+= -c;this.G+=c;Fc(this,c);a=c;for(var g=this.w.length-1;0<=g;g--){var h=this.w[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.P-=c;if(0>=this.P){this.P+=this.fa;15<=++this.Ba&&(this.A&&this.A.La(),this.Ba=0);break}}while(this.D.za)}catch(k){this.ra();Ec(this);this.A&&this.A.stop(qa(),Gc(this));kb(this,!1);nb(this,k.stack||k.message);return}c=setTimeout;d=this.Ha;this.J=qa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e-=this.J-this.ea;if(f=this.J-this.C)this.K=Math.round(this.G/(10*f))/ -100,864E5<=f&&(this.M=0,Hc(this));if(0>e||this.Ke&&(this.C-=e),e=0;this.ja+=this.ba;this.J+=e;c(d,e)}else Ec(this),this.A&&this.A.stop(qa(),Gc(this))};l.mb=function(){return 0};l.ra=function(a){lb(this,!0);Mc(this);Ic(this,this.G);this.G=0;if(this.D.za){this.D.za=!1;this.F&&this.F.stop();var b=this.N.run;b&&(b.textContent="Run")}this.D.complete=a};function Ec(a,b){if(a.A){for(var c=a.A,d=0;d>1),this.b=new Int32Array(this.F,0,c>>2),cc(this,Zb?dc:ec);else{this.b=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},Y:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},fa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},hb:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<> +2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Pa=!0},O:function(a,b){if(this.I&&null!=this.G){var c=this.I;jc(c,this.G+a,1,c.O)&&c.ra(!0)}return this.Ab(a,b)},ca:function(a,b){if(this.I&&null!=this.G){var c=this.I;jc(c,this.G+a,2,c.O)&&c.ra(!0)}return this.Sb(a,b)},ja:function(a,b,c){if(this.I&&null!=this.G){var d=this.I;jc(d,this.G+a,1,d.D)&&d.ra(!0)}this.N?this.w(a,b,c):this.Db(a,b,c)},ma:function(a,b,c){if(this.I&& +null!=this.G){var d=this.I;jc(d,this.G+a,2,d.D)&&d.ra(!0)}this.N?this.w(a,b,c):this.Wb(a,b,c)},M:function(a){return this.u[a]},P:function(a){return this.u[a]},ba:function(a){return this.D.getUint16(a,!0)},ea:function(a){return a&1?this.u[a]|this.u[a+1]<<8:this.K[a>>1]},ha:function(a,b){this.u[a]=b;this.Pa=!0},gb:function(a,b){this.u[a]=b;this.Pa=!0},la:function(a,b){this.D.setUint16(a,b,!0);this.Pa=!0},na:function(a,b){a&1?(this.u[a]=b,this.u[a+1]=b>>8):this.K[a>>1]=b;this.Pa=!0}}; +function xb(a,b,c){a.I=b;a.A=a.j=0;c&&((a.A=c.A)&&ic(a,hc,!1),(a.j=c.j)&&gc(a,hc,!1))}function kc(a,b){b?--a.j||(a.pb=a.N?a.w:a.Db,a.Fc=a.N?a.H:a.Wb):--a.A||(a.nb=a.Ab,a.Dc=a.Sb)}function gc(a,b,c){c&&a.j||(a.pb=!a.N&&b[1]||a.w,a.Fc=!a.N&&b[3]||a.H);if(c||void 0===c)a.Db=b[1]||a.w,a.Wb=b[3]||a.H}function ic(a,b,c){c&&a.A||(a.nb=b[0]||a.J,a.Dc=b[2]||a.L);if(c||void 0===c)a.Ab=b[0]||a.J,a.Sb=b[2]||a.L}function cc(a,b){b||(b=lc);ic(a,b,void 0);gc(a,b,void 0)} +var lc=[],fc=[G.prototype.Y,G.prototype.hb,G.prototype.fa,G.prototype.wa],hc=[G.prototype.O,G.prototype.ja,G.prototype.ca,G.prototype.ma];if(qb)var ec=[G.prototype.M,G.prototype.ha,G.prototype.ba,G.prototype.la],dc=[G.prototype.P,G.prototype.gb,G.prototype.ea,G.prototype.na]; +function mc(a,b){z.call(this,"CPU",a,mc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Sa=c;this.ha=Math.round(this.Y/1E4)/100;this.eb=this.ha*this.Sa;this.C.za=!1;this.C.Vb=!1;this.C.vb=a.autoStart;this.C.yc=!1;this.C.jb=!1;this.xb=this.O=0;this.yb=a.csStart;this.lb=a.csInterval;this.mb=a.csStop;this.w=[];this.Ha=this.fb.bind(this);F(this)}A(mc);var nc=["power","reset"];l=mc.prototype; +l.Ra=function(a,b,c,d){this.A=a;this.u=b;this.I=d;for(b=0;b=a.O&&(a.O+=a.lb,c=!0);0<=a.mb&&a.mb<=Gc(a)&&(a.lb=a.mb=-1,Cc(a),a.ra(),c=!0);c&&a.g(Gc(a)+" cycles: checksum="+t(a.xb))}} +l.qa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.C.xa)a=!0;else{var b=null,c,h=db(a.id);for(c=0;ca.K/a.eb?b=1:d=!0;a.Sa=b;b=a.ha*a.Sa;if(a.eb!=b){a.eb=b;b=a.eb.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.A&&a.A.Bb()}Ic(a,a.H);a.H=0;a.D=qa();a.J=0;Jc(a);return d}function Kc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Lc(a,b,c){0<=b&&ba.w[b][0]&&(c*=a.Y*a.Sa/1E3,a.w[b][0]=c+Mc(a))}function Mc(a,b){var c=a.L-=a.b;a.b=0;b&&(a.L=0);return c} +l.fb=function(a){if(kb(this,!0)){if(!this.C.za){Hc(this);this.A&&this.A.start(this.D,Gc(this));this.C.za=!0;this.C.Vb=!0;this.F&&this.F.start();var b=this.N.run;b&&(b.textContent="Halt");this.A&&(this.A.La(!0),a&&this.A.Bb(!0))}this.ja>=this.Y&&Jc(this,!0);this.ba=0;this.ea=qa();this.J&&(a=this.ea-this.J,a>this.wa&&(this.D+=a,this.D>this.ea&&(this.D=this.ea)));try{do{for(var c,d=this.C.jb?1:this.fa,e=this.w.length-1;0<=e;e--){var f=this.w[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.ob(c);c=Mc(this,!0);this.ba+= +c;this.H+=c;Fc(this,c);a=c;for(var g=this.w.length-1;0<=g;g--){var h=this.w[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.P-=c;if(0>=this.P){this.P+=this.fa;15<=++this.Ba&&(this.A&&this.A.La(),this.Ba=0);break}}while(this.C.za)}catch(k){this.ra();Ec(this);this.A&&this.A.stop(qa(),Gc(this));kb(this,!1);nb(this,k.stack||k.message);return}c=setTimeout;d=this.Ha;this.J=qa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e-=this.J-this.ea;if(f=this.J-this.D)this.K=Math.round(this.H/(10*f))/ +100,864E5<=f&&(this.M=0,Hc(this));if(0>e||this.Ke&&(this.D-=e),e=0;this.ja+=this.ba;this.J+=e;c(d,e)}else Ec(this),this.A&&this.A.stop(qa(),Gc(this))};l.ob=function(){return 0};l.ra=function(a){lb(this,!0);Mc(this);Ic(this,this.H);this.H=0;if(this.C.za){this.C.za=!1;this.F&&this.F.stop();var b=this.N.run;b&&(b.textContent="Run")}this.C.complete=a};function Ec(a,b){if(a.A){for(var c=a.A,d=0;d>8&255;a.T=b&255}function Xc(a){return a.U<<8|a.V}function Yc(a,b){a.U=b>>8&255;a.V=b&255}function K(a){return a.W<<8|a.Z} function Zc(a,b){a.W=b>>8&255;a.Z=b&255}function I(a,b){a.R=b&65535}function $c(a){return a.da&256?1:0}function ad(a,b){a.da=a.da&255|b}function bd(a){return rb[a.ga&255]?4:0}function cd(a){return(a.ga^a.ya)&16?16:0}function dd(a){return a.da&255?0:64}function ed(a){return a.ga&128?128:0}function Uc(a){return a.ua&-214|ed(a)|dd(a)|cd(a)|bd(a)|$c(a)}function Sc(a,b){a.da=a.ga=a.ya=0;b&1&&(a.da|=256);b&4||(a.ga|=1);b&16&&(a.ya|=16);b&64||(a.da|=255);b&128&&(a.ga^=192);a.ua=a.ua&-726|b&512|2} function fd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b)&255}function gd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?1:0))&255}function hd(a,b){a.da=a.ga=a.ya=a.i&b;(a.i|b)&8&&(a.ya^=16);return a.da}function id(a,b){a.ya=b^255;b=a.ga=b+255&255;a.da=a.da&-256|b;return b}function jd(a,b){a.ya=b;b=a.ga=b+1&255;a.da=a.da&-256|b;return b}function Ed(a,b){return a.ga=a.da=a.ya=a.i|b}function L(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+1^256)&255} -function Fd(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?0:1)^256)&255}function Gd(a,b){return a.ga=a.da=a.ya=a.i^b}l.aa=function(a){return this.u.aa(a)};l.va=function(a,b){this.u.va(a,b)};function M(a){var b=a.aa(a.R);I(a,a.R+1);return b}function O(a){var b=a.u.ab(a.R);I(a,a.R+2);return b}function P(a){var b=a.u.ab(a.pa);a.pa=a.pa+2&65535;return b}function Q(a,b){a.pa=a.pa-2&65535;a.u.Jb(a.pa,b)} -function Hd(a){if(a.b&&a.j&255&&a.ua&512){for(var b=0;8>b&&!(a.j&1<b?255:1<b&&!(a.j&1<b?255:1<>8;ad(this,a&256);this.b-=4},Ld,function(){var a;Zc(this,a=K(this)+Vc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Vc(this));this.b-=7},function(){Wc(this,Vc(this)-1);this.b-= 5},function(){this.T=jd(this,this.T);this.b-=5},function(){this.T=id(this,this.T);this.b-=5},function(){this.T=M(this);this.b-=7},function(){var a=this.i<<8&256;this.i=(a|this.i)>>1;ad(this,a);this.b-=4},Ld,function(){Yc(this,O(this));this.b-=10},function(){this.va(Xc(this),this.i);this.b-=7},function(){Yc(this,Xc(this)+1);this.b-=5},function(){this.U=jd(this,this.U);this.b-=5},function(){this.U=id(this,this.U);this.b-=5},function(){this.U=M(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255| -$c(this);ad(this,a&256);this.b-=4},Ld,function(){var a;Zc(this,a=K(this)+Xc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Xc(this));this.b-=7},function(){Yc(this,Xc(this)-1);this.b-=5},function(){this.V=jd(this,this.V);this.b-=5},function(){this.V=id(this,this.V);this.b-=5},function(){this.V=M(this);this.b-=7},function(){var a=this.i<<8;this.i=($c(this)<<8|this.i)>>1;ad(this,a&256);this.b-=4},Ld,function(){Zc(this,O(this));this.b-=10},function(){var a=O(this);this.u.Jb(a,K(this)); -this.b-=16},function(){Zc(this,K(this)+1);this.b-=5},function(){this.W=jd(this,this.W);this.b-=5},function(){this.W=id(this,this.W);this.b-=5},function(){this.W=M(this);this.b-=7},function(){var a=0,b=$c(this);if(cd(this)||9<(this.i&15))a|=6;if(b||154<=this.i)a|=96,b=1;this.i=fd(this,a);ad(this,b?256:0);this.b-=4},Ld,function(){var a;Zc(this,a=K(this)+K(this));ad(this,a>>8&256);this.b-=10},function(){var a;a=O(this);a=this.u.ab(a);Zc(this,a);this.b-=16},function(){Zc(this,K(this)-1);this.b-=5},function(){this.Z= +$c(this);ad(this,a&256);this.b-=4},Ld,function(){var a;Zc(this,a=K(this)+Xc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Xc(this));this.b-=7},function(){Yc(this,Xc(this)-1);this.b-=5},function(){this.V=jd(this,this.V);this.b-=5},function(){this.V=id(this,this.V);this.b-=5},function(){this.V=M(this);this.b-=7},function(){var a=this.i<<8;this.i=($c(this)<<8|this.i)>>1;ad(this,a&256);this.b-=4},Ld,function(){Zc(this,O(this));this.b-=10},function(){var a=O(this);this.u.Lb(a,K(this)); +this.b-=16},function(){Zc(this,K(this)+1);this.b-=5},function(){this.W=jd(this,this.W);this.b-=5},function(){this.W=id(this,this.W);this.b-=5},function(){this.W=M(this);this.b-=7},function(){var a=0,b=$c(this);if(cd(this)||9<(this.i&15))a|=6;if(b||154<=this.i)a|=96,b=1;this.i=fd(this,a);ad(this,b?256:0);this.b-=4},Ld,function(){var a;Zc(this,a=K(this)+K(this));ad(this,a>>8&256);this.b-=10},function(){var a;a=O(this);a=this.u.cb(a);Zc(this,a);this.b-=16},function(){Zc(this,K(this)-1);this.b-=5},function(){this.Z= jd(this,this.Z);this.b-=5},function(){this.Z=id(this,this.Z);this.b-=5},function(){this.Z=M(this);this.b-=7},function(){this.i=~this.i&255;this.b-=4},Ld,function(){this.pa=O(this)&65535;this.b-=10},function(){this.va(O(this),this.i);this.b-=13},function(){this.pa=this.pa+1&65535;this.b-=5},function(){var a=K(this);this.va(a,jd(this,this.aa(a)));this.b-=10},function(){var a=K(this);this.va(a,id(this,this.aa(a)));this.b-=10},function(){this.va(K(this),M(this));this.b-=10},function(){this.da|=256;this.b-= 4},Ld,function(){var a;Zc(this,a=K(this)+this.pa);ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(O(this));this.b-=13},function(){this.pa=this.pa-1&65535;this.b-=5},function(){this.i=jd(this,this.i);this.b-=5},function(){this.i=id(this,this.i);this.b-=5},function(){this.i=M(this);this.b-=7},function(){ad(this,$c(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.U;this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.W; this.b-=5},function(){this.S=this.Z;this.b-=5},function(){this.S=this.aa(K(this));this.b-=7},function(){this.S=this.i;this.b-=5},function(){this.T=this.S;this.b-=5},function(){this.b-=5},function(){this.T=this.U;this.b-=5},function(){this.T=this.V;this.b-=5},function(){this.T=this.W;this.b-=5},function(){this.T=this.Z;this.b-=5},function(){this.T=this.aa(K(this));this.b-=7},function(){this.T=this.i;this.b-=5},function(){this.U=this.S;this.b-=5},function(){this.U=this.T;this.b-=5},function(){this.b-= @@ -120,78 +120,78 @@ function(){Q(this,K(this));this.b-=11},function(){this.i=hd(this,M(this));this.b this.R);I(this,40);this.b-=11},function(){ed(this)||(I(this,P(this)),this.b-=6);this.b-=5},function(){var a=P(this);Sc(this,a&255|this.ua&-256);this.i=a>>8;this.b-=10},function(){var a=O(this);ed(this)||I(this,a);this.b-=10},function(){this.ua&=-513;this.b-=4},function(){var a=O(this);ed(this)||(Q(this,this.R),I(this,a),this.b-=6);this.b-=11},function(){Q(this,Uc(this)&255|this.i<<8);this.b-=11},function(){this.i=Ed(this,M(this));this.b-=7},function(){Q(this,this.R);I(this,48);this.b-=11},function(){ed(this)&& (I(this,P(this)),this.b-=6);this.b-=5},function(){this.pa=K(this)&65535;this.b-=5},function(){var a=O(this);ed(this)&&I(this,a);this.b-=10},function(){this.ua|=512;this.b-=4;Hd(this)},function(){var a=O(this);ed(this)&&(Q(this,this.R),I(this,a),this.b-=6);this.b-=11},Od,function(){L(this,M(this));this.b-=7},function(){Q(this,this.R);I(this,56);this.b-=11}]; function S(a){z.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!Pd[b]&&Qa("Unrecognized ChipSet model: "+b);this.w=Pd[b]||{};a.sound&&(this.fa=null,window&&(this.fa=window.AudioContext||window.webkitAudioContext),this.fa&&new this.fa);F(this)}A(S); -var U={Ca:1978.1,yd:{Da:0,te:1,xe:16,Ee:32,Ne:64,Me:128,ob:14},Za:{Da:1,Nc:1,qd:2,md:4,nd:16,od:32,pd:64,ob:8},zd:{Da:2,se:3,Ve:4,ue:8,Ie:16,Je:32,Ke:64,ve:128,ob:0},Re:{Da:3},Pe:{Da:2,Fe:7},Te:{Da:3,We:1,Se:2,Le:4,Ce:8,we:16,me:32},Qe:{Da:4},Ue:{Da:5,ye:1,ze:2,Ae:4,Be:8,Xe:16}},V={Ca:100,Ma:{Da:66,pc:1,ec:2,jd:4,He:8,Ge:16,gc:32,fc:64,ac:128},Lc:{Da:66,INIT:0},Ua:{Da:194,oe:0,Zb:16,sd:32,lc:48,Vc:0,Wc:32},Cb:{Da:162,Oe:0,Yc:0,Uc:0,Xc:0,Tc:0},Na:{De:{Da:98},Ta:{Ic:0,Hc:1,vd:2,Ed:4,Oc:5,td:6,wd:7}, -Db:16383}},Pd={SI1978:U,VT100:V};S.prototype.qa=function(){return!1};S.prototype.Ra=function(a,b,c,d){this.u=b;this.b=c;this.I=d;this.A=a;this.K=ub(a,"Keyboard");this.Ha=ub(a,"SerialPort");this.video=ub(a,"Video");Hb(b,this,this.w.Hb);Ub(b,this,this.w.Ib);if(d){var e=this;Qd(d,16384,function(){for(var a="",b=0;b>8-this.ea&255;E(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.ce=function(a,b,c){E(this,a,b,c,"SHIFT.COUNT",null,!0);this.ea=b};l.ee=function(a,b,c){E(this,a,b,c,"SOUND1",null,!0);this.ma=b};l.de=function(a,b,c){E(this,a,b,c,"SHIFT.DATA",null,!0);this.Y=b<<8|this.Y>>8}; +l.save=function(){var a=new J(this);switch(this.w.Ca){case U.Ca:a.set(0,[this.wa,this.H,this.Ba,this.Y,this.ea,this.ma,this.na]);break;case V.Ca:a.set(0,[this.ha,this.J]),a.set(1,[this.L,this.M]),a.set(2,[this.D,this.ba,this.la,this.ja]),a.set(3,[this.P,this.j,this.O,this.ca,this.F])}return a.data()}; +l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.w.Ca){case U.Ca:return this.wa=b[0],this.H=b[1],this.Ba=b[2],this.Y=b[3],this.ea=b[4],this.ma=b[5],this.na=b[6],!0;case V.Ca:return this.ha=b[0],this.J=b[1],b=a[1],this.L=b[0],this.M=b[1],b=a[2],this.D=b[0],this.ba=b[1],this.la=b[2],this.ja=b[3],b=a[3],this.P=b[0],this.j=b[1],this.O=b[2],this.ca=b[3],this.F=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Td=function(a,b){var c=this.wa;E(this,a,null,b,"STATUS0",c,!0);return c}; +l.Ud=function(a,b){var c=this.H;E(this,a,null,b,"STATUS1",c,!0);return c};l.Vd=function(a,b){var c=this.Ba;E(this,a,null,b,"STATUS2",c,!0);return c};l.Sd=function(a,b){var c=this.Y>>8-this.ea&255;E(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.ce=function(a,b,c){E(this,a,b,c,"SHIFT.COUNT",null,!0);this.ea=b};l.ee=function(a,b,c){E(this,a,b,c,"SOUND1",null,!0);this.ma=b};l.de=function(a,b,c){E(this,a,b,c,"SHIFT.DATA",null,!0);this.Y=b<<8|this.Y>>8}; l.fe=function(a,b,c){E(this,a,b,c,"SOUND2",null,!0);this.na=b};l.ge=function(a,b,c){E(this,a,b,c,"WATCHDOG",null,!0)};function Rd(a){var b=0,c=0,d=~a.P;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c} -l.Wd=function(a,b){var c=this.J,c=c&~V.Ma.fc;if((Gc(this.b)&64)<<1&&(c|=V.Ma.fc,c!=this.J)){var d,e;d=this.O&1;e=this.O>>1&7;switch(e){case V.Na.Ta.wd:break;case V.Na.Ta.Hc:this.P=this.P<<1|d;break;case V.Na.Ta.Oc:d=Rd(this);this.F[d]=V.Na.Db;ib(this,"doNVRCommand(): erase data at addr "+u(d));break;case V.Na.Ta.Ic:this.j=this.j<<1|d;break;case V.Na.Ta.Ed:d=Rd(this);e=this.j&V.Na.Db;this.F[d]=e;ib(this,"doNVRCommand(): write data "+u(e)+" to addr "+u(d));break;case V.Na.Ta.td:d=Rd(this);e=this.F[d]; -null==e&&(e=V.Na.Db);this.j=e;ib(this,"doNVRCommand(): read data "+u(e)+" from addr "+u(d));break;case V.Na.Ta.vd:this.j<<=1;this.ca=this.j&V.Na.Db+1;break;default:ib(this,"doNVRCommand(): unrecognized command "+ca(e))}}c&=~V.Ma.gc;this.ca&&(c|=V.Ma.gc);c&=~V.Ma.ac;if(d=this.K){d=this.K;if(e=d.C)e=d.b,e=Gc(d.b)>=d.J+e.Y*e.Sa/1E3*1.2731488;e&&(d.C=!1);d=!d.C}d&&(c|=V.Ma.ac);c&=~V.Ma.pc;this.Ha&&this.Ha.Fa&1&&(c|=V.Ma.pc);this.J=c;E(this,a,null,b,"FLAGS",c);return c}; -l.he=function(a,b,c){E(this,a,b,c,"BRIGHTNESS");this.ha=b};l.ke=function(a,b,c){E(this,a,b,c,"NVR.LATCH");this.O=b};l.je=function(a,b,c){E(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.C=this.C&-4|a;break;case 1:this.C=this.C&-13|a<<2;this.video&&(b=this.video,a=this.C,ib(b,"updateScrollOffset("+a+")"),b.gb!==a&&((b.gb=a)?Nc(b,!0):b.qb=!0));break;case 2:switch(a){case 0:this.ba=~this.ba;break;case 2:case 3:this.la=3-a}break;case 3:this.ja=a}}; -l.ie=function(a,b,c){E(this,a,b,c,"DC011");b&V.Ua.sd?(b&=V.Ua.lc,this.M!=b&&(this.M=b,this.video&&(a=this.video,b=this.M==V.Ua.lc?50:60,ib(a,"updateRate("+b+")"),a.tc=b))):(b&=V.Ua.Zb,this.L!=b&&(this.L=b,this.video&&(a=this.L==V.Ua.Zb?132:80,b=this.video,ib(b,"updateDimensions("+a+","+(80>>0,g],q=pa(p,k,a.xc);0>q&&p.splice(-(q+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.G.push({kf:b,H:c,Yd:d,Ea:e,wc:f})}delete this.Ea}return!0};Ud.prototype.Ka=function(){return!0}; -function Vd(a,b,c,d){if(d)a.ka("Unable to load system ROM (error "+d+": "+b+")");else{cb(a.fb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.A=f;else if(g)for(a.A=Array(4*g.length),d=c=0;c>8&255,a.A[d++]=g[c]>>16&255,a.A[d++]=g[c]>>24&255;else a.A=e;a.Ea=e.symbols;if(!a.A.length){w("Empty ROM: "+b);return}if(1==a.A.length){w(a.A[0]);return}}catch(h){a.ka("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm, +l.Wd=function(a,b){var c=this.J,c=c&~V.Ma.fc;if((Gc(this.b)&64)<<1&&(c|=V.Ma.fc,c!=this.J)){var d,e;d=this.O&1;e=this.O>>1&7;switch(e){case V.Na.Ua.wd:break;case V.Na.Ua.Hc:this.P=this.P<<1|d;break;case V.Na.Ua.Oc:d=Rd(this);this.F[d]=V.Na.Fb;ib(this,"doNVRCommand(): erase data at addr "+u(d));break;case V.Na.Ua.Ic:this.j=this.j<<1|d;break;case V.Na.Ua.Ed:d=Rd(this);e=this.j&V.Na.Fb;this.F[d]=e;ib(this,"doNVRCommand(): write data "+u(e)+" to addr "+u(d));break;case V.Na.Ua.td:d=Rd(this);e=this.F[d]; +null==e&&(e=V.Na.Fb);this.j=e;ib(this,"doNVRCommand(): read data "+u(e)+" from addr "+u(d));break;case V.Na.Ua.vd:this.j<<=1;this.ca=this.j&V.Na.Fb+1;break;default:ib(this,"doNVRCommand(): unrecognized command "+ca(e))}}c&=~V.Ma.gc;this.ca&&(c|=V.Ma.gc);c&=~V.Ma.ac;if(d=this.K){d=this.K;if(e=d.D)e=d.b,e=Gc(d.b)>=d.J+e.Y*e.Sa/1E3*1.2731488;e&&(d.D=!1);d=!d.D}d&&(c|=V.Ma.ac);c&=~V.Ma.pc;this.Ha&&this.Ha.Fa&1&&(c|=V.Ma.pc);this.J=c;E(this,a,null,b,"FLAGS",c);return c}; +l.he=function(a,b,c){E(this,a,b,c,"BRIGHTNESS");this.ha=b};l.ke=function(a,b,c){E(this,a,b,c,"NVR.LATCH");this.O=b};l.je=function(a,b,c){E(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.D=this.D&-4|a;break;case 1:this.D=this.D&-13|a<<2;this.video&&(b=this.video,a=this.D,ib(b,"updateScrollOffset("+a+")"),b.ib!==a&&((b.ib=a)?Nc(b,!0):b.sb=!0));break;case 2:switch(a){case 0:this.ba=~this.ba;break;case 2:case 3:this.la=3-a}break;case 3:this.ja=a}}; +l.ie=function(a,b,c){E(this,a,b,c,"DC011");b&V.Va.sd?(b&=V.Va.lc,this.M!=b&&(this.M=b,this.video&&(a=this.video,b=this.M==V.Va.lc?50:60,ib(a,"updateRate("+b+")"),a.tc=b))):(b&=V.Va.Zb,this.L!=b&&(this.L=b,this.video&&(a=this.L==V.Va.Zb?132:80,b=this.video,ib(b,"updateDimensions("+a+","+(80>>0,g],q=pa(p,k,a.xc);0>q&&p.splice(-(q+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.H.push({kf:b,G:c,Yd:d,Ea:e,wc:f})}delete this.Ea}return!0};Ud.prototype.Ka=function(){return!0}; +function Vd(a,b,c,d){if(d)a.ka("Unable to load system ROM (error "+d+": "+b+")");else{cb(a.hb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.A=f;else if(g)for(a.A=Array(4*g.length),d=c=0;c>8&255,a.A[d++]=g[c]>>16&255,a.A[d++]=g[c]>>24&255;else a.A=e;a.Ea=e.symbols;if(!a.A.length){w("Empty ROM: "+b);return}if(1==a.A.length){w(a.A[0]);return}}catch(h){a.ka("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm, " ").replace(/ +$/,"").split(" "),a.A=Array(b.length),e=0;e>>f.ia;0>>= +function Wd(a){if(!mb(a))if(!a.w)F(a);else if(a.A&&a.u){a.j||(a.j=a.A.length);if(a.A.length!=a.j)nb(a,"ROM size ("+t(a.A.length,8,!0)+") does not match specified size ("+t(a.j,8,!0)+")");else{var b;b=a.D;if(yb(a.u,b,a.j,bc)){var c;for(c=0;c>>f.ia;0>>= f.ia;0d?a.j.push({Ub:b,Pb:Date.now(),Eb:!1}):(a.j[d].Pb=Date.now(),a.j[d].Eb=!1);else if(0<=d){if(!a.j[d].Eb){var e=a.j[d].Pb;if(e&&100>Date.now()-e)return a.j[d].Eb=!0,he(a),!0}a.j.splice(d,1)}if(a.F){d=0;switch(b){case "1p":d=U.Za.md;break;case "2p":d=U.Za.qd;break;case "coin":d=U.Za.Nc;break;case "left":d=U.Za.od;break;case "right":d=U.Za.pd;break;case "fire":d=U.Za.nd}d&&(a=a.F,b=d,a.G&=~b,c&&(a.G|=b))}return!0} -function he(a){for(var b=0,c=-1;bc||c>e)c=e}else{fe(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){he(a)},c)}l.Xd=function(a,b){var c=this.G;0<=this.w&&(this.w>3)*a.ba,!yb(a.u,a.Va,a.P,3)))return!1;a.P?(a.oc=a.F.createImageData(b,c),a.rc=16/a.Wa|0,ne(a,a.P>>1)):ne(a,(a.ca+1)*a.wa);a.L=document.createElement("canvas");a.L.width=b;a.L.height=c;a.pb=a.L.getContext("2d");a.fa={};a.ma=1<d?a.j.push({Ub:b,Rb:Date.now(),Gb:!1}):(a.j[d].Rb=Date.now(),a.j[d].Gb=!1);else if(0<=d){if(!a.j[d].Gb){var e=a.j[d].Rb;if(e&&100>Date.now()-e)return a.j[d].Gb=!0,he(a),!0}a.j.splice(d,1)}if(a.F){d=0;switch(b){case "1p":d=U.$a.md;break;case "2p":d=U.$a.qd;break;case "coin":d=U.$a.Nc;break;case "left":d=U.$a.od;break;case "right":d=U.$a.pd;break;case "fire":d=U.$a.nd}d&&(a=a.F,b=d,a.H&=~b,c&&(a.H|=b))}return!0} +function he(a){for(var b=0,c=-1;bc||c>e)c=e}else{fe(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){he(a)},c)}l.Xd=function(a,b){var c=this.H;0<=this.w&&(this.w>3)*a.ba,!yb(a.u,a.Wa,a.P,3)))return!1;a.P?(a.oc=a.F.createImageData(b,c),a.rc=16/a.Xa|0,ne(a,a.P>>1)):ne(a,(a.ca+1)*a.wa);a.L=document.createElement("canvas");a.L.width=b;a.L.height=c;a.rb=a.L.getContext("2d");a.fa={};a.ma=1<=a.ic?8:16,f=8>(7>4)*c)}return k}ie.prototype.Ga=function(){return!0};ie.prototype.qa=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Kb[b]=c,!0;switch(b){case "fullScreen":return this.N[b]=c,this.j&&this.j.ib?c.onclick=function(){d.ib()}:c.parentNode.removeChild(c),!0}return!1}; -ie.prototype.ib=function(){var a=!1;if(this.j){if(this.j.ib){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Y/this.O;b>c&&(a=Math.round(c/b*100)+"%")}this.nc?(this.M.style.width=a,this.M.style.width=a,this.M.style.display="block",this.M.style.margin="auto"):(this.j.style.width=a,this.j.style.height="auto");this.j.style.backgroundColor="black";this.j.ib();a=!0}this.la&&this.la.focus()}return a}; -function le(a,b){!b&&a.j&&(a.nc?a.M.style.width=a.M.style.height="":a.j.style.width=a.j.style.height="");ib(a,"notifyFullScreen("+b+")")}function ne(a,b){a.qc=b;a.ja=!1;if(void 0===a.G||a.G.length!=a.qc)a.G=Array(a.qc)}function pe(a,b,c,d,e){d=a.w?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.na&&(208<=c&&236>c?e=a.ma+0:28<=c&&72>c&&(e=a.ma+1));a=a.ha[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} -function Nc(a,b){var c=!0;if(!b){a.Xa&&(120==a.Xa?a.sc&1?(Id(a.b,2),c=!1):Id(a.b,1):Id(a.b,4));if(c&&a.ja&&a.P){for(var d=a.u,e=a.P,f=!0,g=a.Va>>>d.ia;0>=1);;){var v=Bb(a.u,p++);if(127==(v&127)){var r=Bb(a.u,p++),d=r&96,c=(r&15)<<8|Bb(a.u,p),c=c+ -(r&16?8192:16384);break}if(n>4)*v.oa,C,T,da,X,ta=v.sa,Eb=v.oa;y?(C=x*r.sa,T=e*r.oa,da=r.sa,X=r.oa):(C=x*r.jc,T=e*r.kc,da=r.jc,X=r.kc);v.sa>r.sa&&(C*=2,da*=2);v.oa>r.oa&&(q||(H+=r.oa),Eb=r.oa);y?y.drawImage(v.canvas,ga,H,ta,Eb,C,T,da,X):(C+=0,T+=0,r.F.drawImage(v.canvas, -ga,H,ta,Eb,C,T,da,X))}h++}g++}e++}}a.ja=!0;!b&&a.qb&&1==h&&(a.G[k]=-1,h=0);a.qb=!1;(h||b)&&a.pb&&a.F.drawImage(a.L,0,a.gb,a.J,a.ba-a.oa,0,0,a.Gc,a.Jd)}else{e=a.Va;f=e+a.P;k=h=g=0;b=a.J;n=0;c=a.ba;q=d=0;p=a.Wa;x=(1<>8|(r&255)<<8);h>y&x,pe(a,a.oc,h++,k,ga),y+=p;h>n&&(n=h);k=d&&(d=k+1)}e+=2;g++;if(h>=a.J&&(h=0,k++,k>a.ba))break}a.ja=!0;b>4)*c)}return k}ie.prototype.Ga=function(){return!0};ie.prototype.qa=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Mb[b]=c,!0;switch(b){case "fullScreen":return this.N[b]=c,this.j&&this.j.kb?c.onclick=function(){d.kb()}:c.parentNode.removeChild(c),!0}return!1}; +ie.prototype.kb=function(){var a=!1;if(this.j){if(this.j.kb){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Y/this.O;b>c&&(a=Math.round(c/b*100)+"%")}this.nc?(this.M.style.width=a,this.M.style.width=a,this.M.style.display="block",this.M.style.margin="auto"):(this.j.style.width=a,this.j.style.height="auto");this.j.style.backgroundColor="black";this.j.kb();a=!0}this.la&&this.la.focus()}return a}; +function le(a,b){!b&&a.j&&(a.nc?a.M.style.width=a.M.style.height="":a.j.style.width=a.j.style.height="");ib(a,"notifyFullScreen("+b+")")}function ne(a,b){a.qc=b;a.ja=!1;if(void 0===a.H||a.H.length!=a.qc)a.H=Array(a.qc)}function pe(a,b,c,d,e){d=a.w?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.na&&(208<=c&&236>c?e=a.ma+0:28<=c&&72>c&&(e=a.ma+1));a=a.ha[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} +function Nc(a,b){var c=!0;if(!b){a.Ya&&(120==a.Ya?a.sc&1?(Id(a.b,2),c=!1):Id(a.b,1):Id(a.b,4));if(c&&a.ja&&a.P){for(var d=a.u,e=a.P,f=!0,g=a.Wa>>>d.ia;0>=1);;){var v=Bb(a.u,p++);if(127==(v&127)){var r=Bb(a.u,p++),d=r&96,c=(r&15)<<8|Bb(a.u,p),c=c+ +(r&16?8192:16384);break}if(n>4)*v.oa,C,T,da,X,ta=v.sa,Eb=v.oa;y?(C=x*r.sa,T=e*r.oa,da=r.sa,X=r.oa):(C=x*r.jc,T=e*r.kc,da=r.jc,X=r.kc);v.sa>r.sa&&(C*=2,da*=2);v.oa>r.oa&&(q||(H+=r.oa),Eb=r.oa);y?y.drawImage(v.canvas,ga,H,ta,Eb,C,T,da,X):(C+=0,T+=0,r.F.drawImage(v.canvas, +ga,H,ta,Eb,C,T,da,X))}h++}g++}e++}}a.ja=!0;!b&&a.sb&&1==h&&(a.H[k]=-1,h=0);a.sb=!1;(h||b)&&a.rb&&a.F.drawImage(a.L,0,a.ib,a.J,a.ba-a.oa,0,0,a.Gc,a.Jd)}else{e=a.Wa;f=e+a.P;k=h=g=0;b=a.J;n=0;c=a.ba;q=d=0;p=a.Xa;x=(1<>8|(r&255)<<8);h>y&x,pe(a,a.oc,h++,k,ga),y+=p;h>n&&(n=h);k=d&&(d=k+1)}e+=2;g++;if(h>=a.J&&(h=0,k++,k>a.ba))break}a.ja=!0;bMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=xa().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= (a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Wa.aspect);f&&.3<=f&&3.33>=f&&(Na("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Da("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new ie(d,e,g,f,c);gb(d,c)}}); -function qe(a){this.fa=+a.adapter;switch(this.fa){case 0:this.ha=0;this.la=2;break;default:w("Unrecognized serial adapter #"+this.fa);return}this.j=this.w=null;this.ja=a.tabSize;this.ea=a.charBOL;this.C=0;this.ba=!1;z.call(this,"SerialPort",a,qe,8388608);var b=a.binding;if("console"==b)this.w="";else{var c;a=re;b&&(void 0===c&&(c="Panel"),(c=fb(c,this.id))&&(b=c.N[b])&&this.qa(null,a,b))}this.G="";this.K=this.M=null;this.exports={connect:this.Cc,receiveData:this.Tb}}A(qe); +function qe(a){this.fa=+a.adapter;switch(this.fa){case 0:this.ha=0;this.la=2;break;default:w("Unrecognized serial adapter #"+this.fa);return}this.j=this.w=null;this.ja=a.tabSize;this.ea=a.charBOL;this.D=0;this.ba=!1;z.call(this,"SerialPort",a,qe,8388608);var b=a.binding;if("console"==b)this.w="";else{var c;a=re;b&&(void 0===c&&(c="Panel"),(c=fb(c,this.id))&&(b=c.N[b])&&this.qa(null,a,b))}this.H="";this.K=this.M=null;this.exports={connect:this.Cc,receiveData:this.Tb}}A(qe); var se=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],te=[!1,0,0,133,142,39,238],re="buffer";l=qe.prototype; l.qa=function(a,b,c,d){var e=this;switch(b){case re:return this.N[b]=this.j=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=na(b[0]);if(c!=this.eb)return;b=na(b[1]);if(this.K=eb(b)){var d=this.K.exports;if(d){var e=d.connect;e&&e.call(this.K);if(this.M=d.receiveData){this.status(this.fb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};l.Ga=function(a,b){if(!b)if(this.Cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; +l.Cc=function(){if(!this.K){var a=Ac(this.A,"connection");if(a){var b=a.split("->");if(2==b.length){var c=na(b[0]);if(c!=this.gb)return;b=na(b[1]);if(this.K=eb(b)){var d=this.K.exports;if(d){var e=d.connect;e&&e.call(this.K);if(this.M=d.receiveData){this.status(this.hb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};l.Ga=function(a,b){if(!b)if(this.Cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; l.Ka=function(a){return a?this.save():!0};l.reset=function(){xe(this)};l.save=function(){var a=new J(this),b=0,c=[];c[b++]=this.L;c[b++]=this.Y;c[b++]=this.ca;c[b++]=this.Fa;c[b++]=this.J;c[b++]=this.P;c[b]=this.O;a.set(0,c);return a.data()};l.restore=function(a){return xe(this,a[0])};function xe(a,b){var c=0;b||(b=te);a.L=b[c++];a.Y=b[c++];a.ca=b[c++];a.Fa=b[c++];a.J=b[c++];a.P=b[c++];a.O=b[c];return!0} -function ye(a,b){var c=a.O&b;b&15||(c>>=4);b=se[c];c=((a.J&12)>>2)+6;a.J&16&&c++;c+=((a.J&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function ue(a,b){ib(a,"receiveByte("+ca(b)+"), status="+ca(a.Fa));return a.ba||a.Fa&2?!1:(a.Y=b,a.Fa|=2,Id(a.b,a.la),!0)}l.Tb=function(a){null!=a&&(this.G="number"!=typeof a?a:this.G+String.fromCharCode(a));this.G&&(ue(this,this.G.charCodeAt(0))&&(this.G=this.G.substr(1)),this.G&&this.b&&Lc(this.b,this.ma,ye(this,15)));return!0}; +function ye(a,b){var c=a.O&b;b&15||(c>>=4);b=se[c];c=((a.J&12)>>2)+6;a.J&16&&c++;c+=((a.J&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function ue(a,b){ib(a,"receiveByte("+ca(b)+"), status="+ca(a.Fa));return a.ba||a.Fa&2?!1:(a.Y=b,a.Fa|=2,Id(a.b,a.la),!0)}l.Tb=function(a){null!=a&&(this.H="number"!=typeof a?a:this.H+String.fromCharCode(a));this.H&&(ue(this,this.H.charCodeAt(0))&&(this.H=this.H.substr(1)),this.H&&this.b&&Lc(this.b,this.ma,ye(this,15)));return!0}; l.Rd=function(a,b){var c=this.Y;E(this,a,null,b,"DATA",c);this.Fa&=-3;return c};l.Qd=function(a,b){var c=this.Fa;E(this,a,null,b,"STATUS",c);return c}; -l.be=function(a,b,c){E(this,a,b,c,"DATA");this.ca=b;this.Fa&=-6;ib(this,"transmitByte("+ca(b)+")");if(19==b)this.ba=!0;else if(17==b)this.ba=!1;else if(this.M&&this.M.call(this.K,b),this.j)8==b?(this.j.value=this.j.value.slice(0,-1),0":String.fromCharCode(b),c=a.length,9==b?(b=this.ja||8,c=b-this.C%b,this.ja&&(a=ma("",c))):13==b&&(this.C=c=0,a="\n"),this.ea&&!this.C&&c&&(a=String.fromCharCode(this.ea)+a),this.j.value+=a,this.j.scrollTop=this.j.scrollHeight, -this.C+=c);else if(null!=this.w){if(10==b||1024<=this.w.length)this.g(this.w),this.w="";10!=b&&(this.w+=String.fromCharCode(b))}this.b&&Lc(this.b,this.na,ye(this,240))};l.ae=function(a,b,c){E(this,a,b,c,"CONTROL");this.L?(this.P=b,this.P&64&&(this.L=!1)):(this.J=b,this.L=!0)};l.$d=function(a,b,c){E(this,a,b,c,"BAUDRATES");this.O=b};var ve={0:qe.prototype.Rd,1:qe.prototype.Qd},we={0:qe.prototype.be,1:qe.prototype.ae,2:qe.prototype.$d}; -Oa(function(){for(var a=D(document,"pc8080","serial"),b=0;b=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};ze.prototype.Nb=function(){return-1};ze.prototype.Ob=function(){}; -ze.prototype.Gb=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.P?a="end":a=this.w[this.j+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(na(a.substring(d,f))),d=f+1}}return b}; +l.be=function(a,b,c){E(this,a,b,c,"DATA");this.ca=b;this.Fa&=-6;ib(this,"transmitByte("+ca(b)+")");if(19==b)this.ba=!0;else if(17==b)this.ba=!1;else if(this.M&&this.M.call(this.K,b),this.j)8==b?(this.j.value=this.j.value.slice(0,-1),0":String.fromCharCode(b),c=a.length,9==b?(b=this.ja||8,c=b-this.D%b,this.ja&&(a=ma("",c))):13==b&&(this.D=c=0,a="\n"),this.ea&&!this.D&&c&&(a=String.fromCharCode(this.ea)+a),this.j.value+=a,this.j.scrollTop=this.j.scrollHeight, +this.D+=c);else if(null!=this.w){if(10==b||1024<=this.w.length)this.g(this.w),this.w="";10!=b&&(this.w+=String.fromCharCode(b))}this.b&&Lc(this.b,this.na,ye(this,240))};l.ae=function(a,b,c){E(this,a,b,c,"CONTROL");this.L?(this.P=b,this.P&64&&(this.L=!1)):(this.J=b,this.L=!0)};l.$d=function(a,b,c){E(this,a,b,c,"BAUDRATES");this.O=b};var ve={0:qe.prototype.Rd,1:qe.prototype.Qd},we={0:qe.prototype.be,1:qe.prototype.ae,2:qe.prototype.$d}; +Oa(function(){for(var a=D(document,"pc8080","serial"),b=0;b=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};ze.prototype.Pb=function(){return-1};ze.prototype.Qb=function(){}; +ze.prototype.Ib=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.P?a="end":a=this.w[this.j+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(na(a.substring(d,f))),d=f+1}}return b}; function Be(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} function Ce(a,b,c){var d;if(b){b=De(a,b);for(var e=0,f=!1,g=b,h=[],k=[],n=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=p+g;d>>=8}d=t(c,0,!0)+" "+c+". "+ba(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.g((null!=b?b+": ":"")+d);return e}function He(a,b){if(b)return Fe(a,b,a.ea[b]);var c=0;for(b in a.ea)Fe(a,b,a.ea[b]),c++;return 0>>d.u.ia;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.g("..."):(c=p.type,n=Ab[c],p&&d.g(t(p.id)+" %"+t(e<>>d.u.ia;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.g("..."):(c=p.type,n=Ab[c],p&&d.g(t(p.id)+" %"+t(e<>>e.ia;f!=e.u?e.X[g].Wb(f,b&65535,d):(e.X[g++].Bb(f,b&255,d),e.X[g&e.G].Bb(0,b>>8&255,d+1));c&&Ue(a,c);Ec(this.b,!0)}};function Y(a){return{H:a,Qa:!1}}function uf(a){return[a.H,a.Qa]}function vf(a){return{H:a[0],Qa:a[1]}} -function Te(a,b,c){var d;c=(c?a.M:a.Va).H;if(void 0!==b){d=b=De(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;cc&&(c=sa(Qe,a.substr(b,1))));return c};function yf(a,b){var c=0;a=a.Ob(b);if(void 0!==a)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?t(a,c):"??"} -l.Ob=function(a){var b;if(0<=a){var c=this.b;switch(a){case 7:b=c.i;break;case 0:b=c.S;break;case 1:b=c.T;break;case 8:b=Vc(c);break;case 2:b=c.U;break;case 3:b=c.V;break;case 9:b=Xc(c);break;case 4:b=c.W;break;case 5:b=c.Z;break;case 10:b=K(c);break;case 6:b=c.aa(K(c));break;case 11:b=c.pa;break;case 12:b=c.R;break;case 13:b=Uc(c);break;case 14:b=Uc(c)&255|c.i<<8}}return b}; -function zf(a,b){b=De(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Nb(b,c+1),0<=e&&(b=b.substr(0,c)+yf(a,e)+b.substr(c+1+Qe[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Te(a,e))?(d=e+' "'+xf(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Te(a,e))?(Ue(d),d=e+ -' "'+xf(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Z(Y(this.b.R).H));this.ta&1073741824?this.ma.push(a):this.la&&a==this.la||(this.la=a,this.ta&-2147483648&&(this.ra(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,Mc(a),a.P=0,Ec(a)))}; -function hb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ta&h)!=h||a.message(b.eb+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+ca(d):"")+")"+(null!=g?": "+ca(g):"")+(null!=e?" at "+Z(e):""))} -function Le(a){var b;if(Jd(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b>>d.ia],!1)}a.O=["br"];if(a.C)for(b=1;b>>d.ia],!0);a.C=["bw"];a.Xa=0}l.$a=function(a,b,c){var d=!0;c||Ef(this,a,b,!1,!0);if(a!=this.F){var e=Se(b);if(-1===e)this.g("invalid address: "+Z(b.H)),d=!1;else{var f=this.u;f.X[e>>>f.ia].$a(e&f.u,a==this.C)}}d&&(a.push(b),c?b.Qa=!0:(Ff(this,a,a.length-1,"set"),Le(this)));return d}; -function Ef(a,b,c,d,e){var f=!1;c=Se(c);for(var g=1;g>>d.ia],b==a.C));h.Qa||Le(a);break}}return f}function Gf(a,b){for(var c=1;c>>e.ia;f!=e.u?e.X[g].Wb(f,b&65535,d):(e.X[g++].Db(f,b&255,d),e.X[g&e.H].Db(0,b>>8&255,d+1));c&&Ue(a,c);Ec(this.b,!0)}};function Y(a){return{G:a,Qa:!1}}function uf(a){return[a.G,a.Qa]}function vf(a){return{G:a[0],Qa:a[1]}} +function Te(a,b,c){var d;c=(c?a.M:a.Wa).G;if(void 0!==b){d=b=De(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;cc&&(c=sa(Qe,a.substr(b,1))));return c};function yf(a,b){var c=0;a=a.Qb(b);if(void 0!==a)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?t(a,c):"??"} +l.Qb=function(a){var b;if(0<=a){var c=this.b;switch(a){case 7:b=c.i;break;case 0:b=c.S;break;case 1:b=c.T;break;case 8:b=Vc(c);break;case 2:b=c.U;break;case 3:b=c.V;break;case 9:b=Xc(c);break;case 4:b=c.W;break;case 5:b=c.Z;break;case 10:b=K(c);break;case 6:b=c.aa(K(c));break;case 11:b=c.pa;break;case 12:b=c.R;break;case 13:b=Uc(c);break;case 14:b=Uc(c)&255|c.i<<8}}return b}; +function zf(a,b){b=De(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Pb(b,c+1),0<=e&&(b=b.substr(0,c)+yf(a,e)+b.substr(c+1+Qe[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Te(a,e))?(d=e+' "'+xf(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Te(a,e))?(Ue(d),d=e+ +' "'+xf(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Z(Y(this.b.R).G));this.ta&1073741824?this.ma.push(a):this.la&&a==this.la||(this.la=a,this.ta&-2147483648&&(this.ra(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,Mc(a),a.P=0,Ec(a)))}; +function hb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ta&h)!=h||a.message(b.gb+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+ca(d):"")+")"+(null!=g?": "+ca(g):"")+(null!=e?" at "+Z(e):""))} +function Le(a){var b;if(Jd(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b>>d.ia],!1)}a.O=["br"];if(a.D)for(b=1;b>>d.ia],!0);a.D=["bw"];a.Ya=0}l.ab=function(a,b,c){var d=!0;c||Ef(this,a,b,!1,!0);if(a!=this.F){var e=Se(b);if(-1===e)this.g("invalid address: "+Z(b.G)),d=!1;else{var f=this.u;f.X[e>>>f.ia].ab(e&f.u,a==this.D)}}d&&(a.push(b),c?b.Qa=!0:(Ff(this,a,a.length-1,"set"),Le(this)));return d}; +function Ef(a,b,c,d,e){var f=!1;c=Se(c);for(var g=1;g>>d.ia],b==a.D));h.Qa||Le(a);break}}return f}function Gf(a,b){for(var c=1;c>24,4);break;case 3:y=t(v.ab(y,2),4);break;default:v="imm("+u(r)+")";break a}8086==v.style&&r&64?y="["+y+"]":r&16||(y=(v.style==Je?"$":"0x")+y);v=y}else r&16? -(v=(q&3840)>>8,r=Qe[v],8086==a.style&&q&64&&(6==v&&(r="HL"),r="["+r+"]"),v=r):r&128&&(v=(f>>3&7).toString());if(!v||!v.length){h="INVALID";break}0>24,4);break;case 3:y=t(v.cb(y,2),4);break;default:v="imm("+u(r)+")";break a}8086==v.style&&r&64?y="["+y+"]":r&16||(y=(v.style==Je?"$":"0x")+y);v=y}else r&16? +(v=(q&3840)>>8,r=Qe[v],8086==a.style&&q&64&&(6==v&&(r="HL"),r="["+r+"]"),v=r):r&128&&(v=(f>>3&7).toString());if(!v||!v.length){h="INVALID";break}0b[0]?1:a[0]>>0;for(b=0;b>>0,h=f.Yd;if(e>=g&&e>>0;for(b=0;b>>0,h=f.Yd;if(e>=g&&e>8&255;case "C":d.T=f&255;break;case "D":d.U=f&255;break; case "DE":d.U=f>>8&255;case "E":d.V=f&255;break;case "H":d.W=f&255;break;case "HL":d.W=f>>8&255;case "L":d.Z=f&255;break;case "SP":d.pa=f&65535;break;case "PC":I(d,f);a.M=Y(d.R);break;case "PS":Sc(d,f);break;case "PSW":Sc(d,f&255|d.ua&-256);d.i=f>>8;break;case "CF":d.da=f?d.da|256:d.da&255;break;case "PF":f?bd(d)||(d.ga^=1):bd(d)&&(d.ga^=1);break;case "AF":d.ya=f?~d.ga&16|d.ya&-17:d.ga&16|d.ya&-17;break;case "ZF":d.da=f?d.da&-256:d.da|255;break;case "SF":f?ed(d)||(d.ga^=192):ed(d)&&(d.ga^=192);break; -case "IF":d.ua=f?d.ua|512:d.ua&-513;break;default:a.g("unknown register: "+e);return}Ec(d);a.g("updated registers:")}a.g(Lf(a));c&&(a.M=Y(d.R),Cf(a,Z(a.M.H)))}}function Sf(a,b){b=na(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(zf(a,c[2])):Ce(a,b,!0)}function Tf(a,b,c){var d="t"!=b;c=Ee(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ea(c,function(){return kb(a,!0)&&a.mb(e,d,!1)},function(){Ec(a.b);kb(a,!1)})} -function Cf(a,b,c,d){if(b=Te(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Te(a,c,!0);if(!d||d.Hh[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.g(n)}h[3]&&(g=h[3],f=null);f=If(a,b,g,f);a.g(f);a.M=b;e-=b.H-k;c++}}} -l.Gb=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.P?a="end":a=this.w[this.j+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(na(a.substring(d,f))),d=f+1}}return b}; -function Hf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.P&&(a.g("ended assemble at "+Z(a.ca.H)),a.M=a.ca,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.la=null;if(mb(a)&&0n||"z"Ga.length&&(a.g("note: only "+Ga.length+" available"),ia=Ga.length);ua-=ia;0>ua&&(null==Ga[Ga.length-1].H?(ia=ua+ia,ua=0):ua+=Ga.length);var md=[];"call"==$e&&(Ib=1E5,md=["CALL"]);for(void 0!==Ze&&a.g(ia+" instructions earlier:");0< -Ib&&ua!=a.fa;){var cf=Ga[ua++];if(null==cf.H)break;var Jb=Y(cf.H),lg=ia--,df=If(a,Jb,"history",lg);(!md.length||0<=df.indexOf(md[0]))&&a.g(df);Jb.Mb&&(ua+=Jb.Mb,Ib-=Jb.Mb,ia-=Jb.Mb);ua>=Ga.length&&(ua=0);a.gb=ia;bf++;Ib--}}bf||(a.g("no "+af+"history available"),a.gb=void 0)}else{var oc=Te(a,X);if(oc){var pc=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Eb),pc=Ee(a,ta)>>>0,65536>4||1;mg--&&0tc?String.fromCharCode(tc):".";rc--}Kb&&(Kb+="\n");Kb+=X+" "+od+(Lb?"":" "+ef)}Kb&&a.g(Kb);a.Va=oc}}}}break;case "e":if("else"==f[0])break;var uc=1,ff=255,gf=a.aa,hf=a.va;"ew"==f[0]&&(uc=2,ff=65535,gf=a.ab,hf=a.Jb);var jf=uc<<1,kf=f[1];if(null==kf)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a"); -else{var vc=Te(a,kf);if(vc)for(var wc=2;wcvd;){for(var Za=null,sg=256;65536>Ob.H>>>0;){mf.H=a.ab(Ob,2);if(null==Ob.H||!sg--)break;for(var tg=a,yc=mf,nf= -null,Pb=yc.H,of=Pb,wd=1;6>=wd&&Pb;wd++){if(2h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.g(n)}h[3]&&(g=h[3],f=null);f=If(a,b,g,f);a.g(f);a.M=b;e-=b.G-k;c++}}} +l.Ib=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.P?a="end":a=this.w[this.j+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(na(a.substring(d,f))),d=f+1}}return b}; +function Hf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.P&&(a.g("ended assemble at "+Z(a.ca.G)),a.M=a.ca,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.la=null;if(mb(a)&&0n||"z"Ga.length&&(a.g("note: only "+Ga.length+" available"),ia=Ga.length);ua-=ia;0>ua&&(null==Ga[Ga.length-1].G?(ia=ua+ia,ua=0):ua+=Ga.length);var md=[];"call"==$e&&(Ib=1E5,md=["CALL"]);for(void 0!==Ze&&a.g(ia+" instructions earlier:");0< +Ib&&ua!=a.fa;){var cf=Ga[ua++];if(null==cf.G)break;var Jb=Y(cf.G),lg=ia--,df=If(a,Jb,"history",lg);(!md.length||0<=df.indexOf(md[0]))&&a.g(df);Jb.Ob&&(ua+=Jb.Ob,Ib-=Jb.Ob,ia-=Jb.Ob);ua>=Ga.length&&(ua=0);a.ib=ia;bf++;Ib--}}bf||(a.g("no "+af+"history available"),a.ib=void 0)}else{var oc=Te(a,X);if(oc){var pc=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Eb),pc=Ee(a,ta)>>>0,65536>4||1;mg--&&0tc?String.fromCharCode(tc):".";rc--}Kb&&(Kb+="\n");Kb+=X+" "+od+(Lb?"":" "+ef)}Kb&&a.g(Kb);a.Wa=oc}}}}break;case "e":if("else"==f[0])break;var uc=1,ff=255,gf=a.aa,hf=a.va;"ew"==f[0]&&(uc=2,ff=65535,gf=a.cb,hf=a.Lb);var jf=uc<<1,kf=f[1];if(null==kf)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a"); +else{var vc=Te(a,kf);if(vc)for(var wc=2;wcvd;){for(var Za=null,sg=256;65536>Ob.G>>>0;){mf.G=a.cb(Ob,2);if(null==Ob.G||!sg--)break;for(var tg=a,yc=mf,nf= +null,Pb=yc.G,of=Pb,wd=1;6>=wd&&Pb;wd++){if(2\nLicense: GPL version 3 or later ");for(b=0;bXf){if(Zf(d,this.L)){this.C=new J(this,"1.30.1","failsafe");Zf(this.C)&&(dg(this,d),a=2,eg(this.C));this.C.set("timestamp",ra());fg(this.C);var e=this.A&&!this.K;if(1==a||ya("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=cg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Zf(d,g):("error"== +l.zb=function(a){void 0===a&&(a=this.A||(this.L?1:Xf));if(!this.w){this.w++;var b=!1,c=!1;this.Y=!1;var d=this.M||new J(this,"1.30.1");if(-1==a)b=!0;else if(a>Xf){if(Zf(d,this.L)){this.D=new J(this,"1.30.1","failsafe");Zf(this.D)&&(dg(this,d),a=2,eg(this.D));this.D.set("timestamp",ra());fg(this.D);var e=this.A&&!this.K;if(1==a||ya("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=cg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Zf(d,g):("error"== f&&"no machine state"!=g?(this.ka("Error: "+g),"unable to verify user"==g&&(Ca("user",""),this.j=null)):this.g(f+": "+g),eg(d),Zf(d)?(c=cg(d),e=!0):c=!1))}e&&bg(this,c?d:null)}else 2==a&&d.clear()}else bg(this);delete this.L;delete this.M}e=db(this.id);for(f=0;fa[1];a=a[2];this.ha=!0;this.D.xa=!0;var d=this.N.power;d&&(d.textContent="Shutdown");this.b&&(gg(this,this.b,b,c,a),this.b.tb());this.Y&&(dg(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0}; +function gg(a,b,c,d,e){if(!b.C.xa){b.C.xa=!0;if(b.Ga){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.Ga(f,d)&&f&&(w("Unable to restore state for "+b.type),a.P&&!a.ba?(c.clear(),a.A=Xf,window&&window.location.reload()):a.Y=!0,b.Ga(null),e=!1)}if(!d&&b.hc)for(a=b.hc.split("|"),c=0;ca[1];a=a[2];this.ha=!0;this.C.xa=!0;var d=this.N.power;d&&(d.textContent="Shutdown");this.b&&(gg(this,this.b,b,c,a),this.b.vb());this.Y&&(dg(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.w=0}; function dg(a,b){if(ya("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.j||"";b=b.toString();var d={app:"PC8080",ver:"1.30.1"};d.url=a.fa;d.user=c;d.type="bug";d.data=b;va("http://www.pcjs.org/api/v1/report",d,!0)}} -function Uf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new J(a,"1.30.1"),g=new J(a,"1.30.1","validate"),h=ra();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",xa());a.b&&a.b.Ka&&(c&&a.b.ra(),d=a.b.Ka(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.D.xa=!1,!1===d&&(e=null)));for(var h=db(a.id),k=0;ka?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())} function la(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"== typeof b){var l="",n;for(n in b)b.hasOwnProperty(n)&&(l&&(l+="&"),l+=n+"="+encodeURIComponent(b[n]));l=l.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g} -function ma(a,b){var c,d={aa:null,wa:null,jb:null,ib:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.jb=g.load;d.ib=g.exec;if(e=g.bytes)d.aa=e;else if(e=g.words)for(d.aa=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.aa=Array(4*e.length),f=c=0;cb.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Ea=g.load;d.xa=g.exec;if(e=g.bytes)d.aa=e;else if(e=g.words)for(d.aa=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.aa=Array(4*e.length),f=c=0;c>8&255,d.aa[f++]=e[c]>>16&255,d.aa[f++]=e[c]>>24&255;else d.aa=g;d.wa=g.symbols;d.aa.length?1==d.aa.length&&(q(d.aa[0]),d=null):(q("Empty resource: "+a),d=null)}catch(h){q("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;cb?this.Va=this.id:(this.ya=this.id.substr(0,b),this.Va=this.id.substr(b+1));this[a]=c;this.l={ready:!1,Ya:!1,gb:!1,Y:!1,error:!1};this.ab=null;this.l.error=!1;this.A={};this.O=null;v.push(this)}var Ea=void 0,Fa={}; +ya("onpageshow",function(){wa=!0;Aa(ua.show)});ya(ta("Opera")||ta("iOS")?"onunload":"onbeforeunload",function(){Aa(ua.exit)});function r(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.yb=b.comment;this.Qc=b;b=this.id.indexOf(".");0>b?this.Xa=this.id:(this.za=this.id.substr(0,b),this.Xa=this.id.substr(b+1));this[a]=c;this.l={ready:!1,$a:!1,ib:!1,Y:!1,error:!1};this.cb=null;this.l.error=!1;this.w={};this.O=null;v.push(this)}var Ea=void 0,Fa={}; if(window){Ea||(Ea=window.location.search.substr(1));for(var Ga,Ha=/\+/g,Ia=/([^&=]+)=?([^&]*)/g;Ga=Ia.exec(Ea);)Fa[decodeURIComponent(Ga[1].replace(Ha," "))]=decodeURIComponent(Ga[2].replace(Ha," "))}function Ja(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} function w(a,b){b||(b=r);a.prototype=Ja(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ka=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Ka={},v=[];function La(a,b,c){Ka[a]&&b&&(Ka[a][b]=c)}function Ba(a,b,c){b||q((c?c+": ":"")+a)} function Ma(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>1)+2;10>this.j&&(this.j=10);15>2;this.f=this.c-1;this.i=this.u/this.c|0;this.o=this.i-1;this.m=[];this.v=[];this.B=[];this.C=[];a=new C;Za(a,this.O);this.b=Array(this.i);for(b=0;b>>a.j;0f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.Pa)return h.fb+=h.Pa-e,h.Pa=e,!0;if(e>=h.Pa+h.fb){n=h.size-(e-l);n>f&&(n=f);h.fb=e-h.Pa+n;e=l+a.c;f-=n;g++;continue}}return ab(1,e,f)}e=new C(e,n,a.c,d);Za(e,a.O,h);a.b[g++]=e;e=l+a.c;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+bb[d]+" at "+p(b,4,!0)),!0):ab(2,b,c)}Ya.prototype.J=function(a){return this.b[(a&this.g)>>>this.j].Sa(a&this.f,a)}; -function cb(a,b){return a.b[(b&a.g)>>>a.j].eb(b&a.f,b)}function db(a,b){var c=b&a.f,d=(b&a.g)>>>a.j;return c!=a.f?a.b[d].od(c,b):a.b[d++].Sa(c,b)|a.b[d&a.o].Sa(0,b+1)<<8}Ya.prototype.ba=function(a,b){this.b[(a&this.g)>>>this.j].Ta(a&this.f,b&255,a)};function eb(a,b,c){a.b[(b&a.g)>>>a.j].Lb(b&a.f,c&255,b)}function gb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.j;d!=a.f?a.b[e].pd(d,c&65535,b):(a.b[e++].Ta(d,c&255,b),a.b[e&a.o].Ta(0,c>>8&255,b+1))} +function Ya(a,b,c){r.call(this,"Bus",a,Ya);this.a=b;this.O=c;this.s=a.busWidth||16;this.u=Math.pow(2,this.s);this.g=this.u-1|0;this.j=(this.s>>1)+2;10>this.j&&(this.j=10);15>2;this.f=this.c-1;this.i=this.u/this.c|0;this.o=this.i-1;this.m=[];this.A=[];this.B=[];this.C=[];a=new C;Za(a,this.O);this.b=Array(this.i);for(b=0;b>>a.j;0f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.Ra)return h.hb+=h.Ra-e,h.Ra=e,!0;if(e>=h.Ra+h.hb){n=h.size-(e-l);n>f&&(n=f);h.hb=e-h.Ra+n;e=l+a.c;f-=n;g++;continue}}return ab(1,e,f)}e=new C(e,n,a.c,d);Za(e,a.O,h);a.b[g++]=e;e=l+a.c;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+bb[d]+" at "+p(b,4,!0)),!0):ab(2,b,c)}Ya.prototype.J=function(a){return this.b[(a&this.g)>>>this.j].Ua(a&this.f,a)}; +function cb(a,b){return a.b[(b&a.g)>>>a.j].gb(b&a.f,b)}function db(a,b){var c=b&a.f,d=(b&a.g)>>>a.j;return c!=a.f?a.b[d].od(c,b):a.b[d++].Ua(c,b)|a.b[d&a.o].Ua(0,b+1)<<8}Ya.prototype.ba=function(a,b){this.b[(a&this.g)>>>this.j].Va(a&this.f,b&255,a)};function eb(a,b,c){a.b[(b&a.g)>>>a.j].Lb(b&a.f,c&255,b)}function gb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.j;d!=a.f?a.b[e].pd(d,c&65535,b):(a.b[e++].Va(d,c&255,b),a.b[e&a.o].Va(0,c>>8&255,b+1))} function hb(a){for(var b=0,c=[],d=0;d>1),this.a=new Int32Array(this.j,0,c>>2),qb(this,mb?rb:sb);else{this.a=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},C:function(a){return this.a[a>> -2]>>>((a&3)<<3)&255},I:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},S:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.oa=!0},w:function(a,b){return this.eb(a,b)},H:function(a,b){return this.Ib(a,b)},N:function(a,b,c){this.c||this.Lb(a,b,c)},W:function(a, -b,c){this.c||this.X(a,b,c)},u:function(a){return this.b[a]},B:function(a){return this.b[a]},G:function(a){return this.A.getUint16(a,!0)},M:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.i[a>>1]},L:function(a,b){this.b[a]=b;this.oa=!0},R:function(a,b){this.b[a]=b;this.oa=!0},U:function(a,b){this.A.setUint16(a,b,!0);this.oa=!0},ya:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.i[a>>1]=b;this.oa=!0}};function Za(a,b,c){a.O=b;a.f=a.g=0;c&&((a.f=c.f)&&ub(a,vb,!1),(a.g=c.g)&&wb(a,vb,!1))} -function wb(a,b,c){c&&a.g||(a.Ta=!a.c&&b[1]||a.o,a.pd=!a.c&&b[3]||a.s);if(c||void 0===c)a.Lb=b[1]||a.o,a.X=b[3]||a.s}function ub(a,b,c){c&&a.f||(a.Sa=b[0]||a.m,a.od=b[2]||a.v);if(c||void 0===c)a.eb=b[0]||a.m,a.Ib=b[2]||a.v}function qb(a,b){b||(b=xb);ub(a,b,void 0);wb(a,b,void 0)}var xb=[],tb=[C.prototype.C,C.prototype.S,C.prototype.I,C.prototype.Z],vb=[C.prototype.w,C.prototype.N,C.prototype.H,C.prototype.W]; -if(Ta)var sb=[C.prototype.u,C.prototype.L,C.prototype.G,C.prototype.U],rb=[C.prototype.B,C.prototype.R,C.prototype.M,C.prototype.ya];function yb(a,b){r.call(this,"CPU",a,yb);var c=a.multiplier||1;this.ma=a.cycles||b;this.L=c;this.Fa=Math.round(this.ma/1E4)/100;this.U=this.Fa*this.L;this.l.pa=!1;this.l.Jb=!1;this.l.Qa=a.autoStart;this.l.Cb=!1;this.l.Za=!1;this.ua=this.X=0;this.va=a.csStart;this.Z=a.csInterval;this.ja=a.csStop;this.G=[];this.Xa=this.lb.bind(this);B(this)}w(yb);var zb=["power","reset"]; -k=yb.prototype;k.ra=function(a,b,c,d){this.v=a;this.j=b;this.O=d;for(b=0;ba.R/a.U&&(b=1);a.L=b;b=a.Fa*a.L;if(a.U!=b){a.U=b;b=a.U.toFixed(2)+"Mhz";var d=a.A.setSpeed;d&&(d.textContent=b);a.ea("target speed: "+b)}c&&a.v&&Ib(a.v)}a.H+=a.N;a.N=0;a.I=ja();a.S=0;Gb(a)}function Jb(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function Kb(a,b,c){0<=b&&ba.G[b][0]&&(c*=a.ma*a.L/1E3,a.G[b][0]=c+Mb(a))}function Mb(a,b){var c=a.W-=a.a;a.a=0;b&&(a.W=0);return c} -k.lb=function(a){if(Ra(this,!0)){if(!this.l.pa){Fb(this);this.v&&this.v.start(this.I,Hb(this));this.l.pa=!0;this.l.Jb=!0;this.M&&this.M.start();var b=this.A.run;b&&(b.textContent="Halt");this.v&&(this.v.Da(!0),a&&Ib(this.v,!0))}this.Ga>=this.ma&&Gb(this,!0);this.qa=0;this.ta=ja();this.S&&(a=this.ta-this.S,a>this.Na&&(this.I+=a,this.I>this.ta&&(this.I=this.ta)));try{do{for(var c,d=this.l.Za?1:this.Aa,e=this.G.length-1;0<=e;e--){var f=this.G[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Kb(c);c=Mb(this,!0); -this.qa+=c;this.N+=c;a=c;this.l.Za&&(b=!1,this.ua=this.ua+this.Fb()|0,this.X-=a,0>=this.X&&(this.X+=this.Z,b=!0),0<=this.ja&&this.ja<=Hb(this)&&(this.Z=this.ja=-1,Cb(this),Eb(this),b=!0),b&&this.ea(Hb(this)+" cycles: checksum="+p(this.ua)));a=c;for(var g=this.G.length-1;0<=g;g--){var h=this.G[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.la-=c;if(0>=this.la){this.la+=this.Aa;15<=++this.Oa&&(this.v&&this.v.Da(),this.Oa=0);break}}while(this.l.pa)}catch(l){Eb(this);Db(this);this.v&&this.v.stop(ja(), -Hb(this));Ra(this,!1);c=l.stack||l.message;this.l.error=!0;this.K(c);return}c=setTimeout;d=this.Xa;this.S=ja();e=this.Na;this.qa&&(e=Math.round(e*this.qa/this.Aa));e-=this.S-this.ta;if(f=this.S-this.I)this.R=Math.round(this.N/(10*f))/100,864E5<=f&&(this.H=0,Fb(this));if(0>e||this.Re&&(this.I-=e),e=0;this.Ga+=this.qa;this.S+=e;c(d,e)}else Db(this),this.v&&this.v.stop(ja(),Hb(this))};k.Kb=function(){return 0}; -function Eb(a){a.l.Ya&&(a.l.gb=!0);Mb(a);a.H+=a.N;a.N=0;if(a.l.pa){a.l.pa=!1;a.M&&a.M.stop();var b=a.A.run;b&&(b.textContent="Run")}a.l.complete=void 0}function Db(a){if(a.v){for(var b=a.v,c=0;c>8&255;a.D=b&255}function Xb(a){return a.f<<8|a.F}function Yb(a,b){a.f=b>>8&255;a.F=b&255}function G(a){return a.g<<8|a.i} -function I(a,b){a.g=b>>8&255;a.i=b&255}function E(a,b){a.o=b&65535}function J(a){return a.m&256?1:0}function K(a,b){a.m=a.m&255|b}function Zb(a){return Ua[a.s&255]?4:0}function Ub(a){return a.C&-214|(a.s&128?128:0)|(a.m&255?0:64)|((a.s^a.w)&16?16:0)|Zb(a)|J(a)}function Sb(a,b){a.m=a.s=a.w=0;b&1&&(a.m|=256);b&4||(a.s|=1);b&16&&(a.w|=16);b&64||(a.m|=255);b&128&&(a.s^=192);a.C=a.C&-726|b&512|2}function L(a,b){a.w=a.b^b;return a.s=(a.m=a.b+b)&255} -function $b(a,b){a.w=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?1:0))&255}function ac(a,b){a.m=a.s=a.w=a.b&b;(a.b|b)&8&&(a.w^=16);return a.m}function bc(a,b){a.w=b^255;b=a.s=b+255&255;a.m=a.m&-256|b;return b}function cc(a,b){a.w=b;b=a.s=b+1&255;a.m=a.m&-256|b;return b}function dc(a,b){return a.s=a.m=a.w=a.b|b}function M(a,b){b^=255;a.w=a.b^b;return a.s=(a.m=a.b+b+1^256)&255}function ec(a,b){b^=255;a.w=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?0:1)^256)&255}function fc(a,b){return a.s=a.m=a.w=a.b^b}k.J=function(a){return this.j.J(a)}; -k.ba=function(a,b){this.j.ba(a,b)};function N(a){var b=a.J(a.o);E(a,a.o+1);return b}function O(a){var b=db(a.j,a.o);E(a,a.o+2);return b}function P(a){var b=db(a.j,a.u);a.u=a.u+2&65535;return b}function R(a,b){a.u=a.u-2&65535;gb(a.j,a.u,b)}function gc(a){if(a.a&&a.B&255&&a.C&512){for(var b=0;8>b&&!(a.B&1<b?255:1<>1),this.a=new Int32Array(this.j,0,c>>2),qb(this,mb?rb:sb);else{this.a=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},C:function(a){return this.a[a>> +2]>>>((a&3)<<3)&255},I:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},S:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.oa=!0},v:function(a,b){return this.gb(a,b)},H:function(a,b){return this.Ib(a,b)},N:function(a,b,c){this.c||this.Lb(a,b,c)},W:function(a, +b,c){this.c||this.X(a,b,c)},u:function(a){return this.b[a]},B:function(a){return this.b[a]},G:function(a){return this.w.getUint16(a,!0)},M:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.i[a>>1]},L:function(a,b){this.b[a]=b;this.oa=!0},R:function(a,b){this.b[a]=b;this.oa=!0},U:function(a,b){this.w.setUint16(a,b,!0);this.oa=!0},za:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.i[a>>1]=b;this.oa=!0}};function Za(a,b,c){a.O=b;a.f=a.g=0;c&&((a.f=c.f)&&ub(a,vb,!1),(a.g=c.g)&&wb(a,vb,!1))} +function wb(a,b,c){c&&a.g||(a.Va=!a.c&&b[1]||a.o,a.pd=!a.c&&b[3]||a.s);if(c||void 0===c)a.Lb=b[1]||a.o,a.X=b[3]||a.s}function ub(a,b,c){c&&a.f||(a.Ua=b[0]||a.m,a.od=b[2]||a.A);if(c||void 0===c)a.gb=b[0]||a.m,a.Ib=b[2]||a.A}function qb(a,b){b||(b=xb);ub(a,b,void 0);wb(a,b,void 0)}var xb=[],tb=[C.prototype.C,C.prototype.S,C.prototype.I,C.prototype.Z],vb=[C.prototype.v,C.prototype.N,C.prototype.H,C.prototype.W]; +if(Ta)var sb=[C.prototype.u,C.prototype.L,C.prototype.G,C.prototype.U],rb=[C.prototype.B,C.prototype.R,C.prototype.M,C.prototype.za];function yb(a,b){r.call(this,"CPU",a,yb);var c=a.multiplier||1;this.ma=a.cycles||b;this.L=c;this.Ha=Math.round(this.ma/1E4)/100;this.U=this.Ha*this.L;this.l.pa=!1;this.l.Jb=!1;this.l.Sa=a.autoStart;this.l.Cb=!1;this.l.ab=!1;this.ua=this.X=0;this.va=a.csStart;this.Z=a.csInterval;this.ja=a.csStop;this.G=[];this.Za=this.lb.bind(this);B(this)}w(yb);var zb=["power","reset"]; +k=yb.prototype;k.ra=function(a,b,c,d){this.A=a;this.j=b;this.O=d;for(b=0;ba.R/a.U&&(b=1);a.L=b;b=a.Ha*a.L;if(a.U!=b){a.U=b;b=a.U.toFixed(2)+"Mhz";var d=a.w.setSpeed;d&&(d.textContent=b);a.ea("target speed: "+b)}c&&a.A&&Ib(a.A)}a.H+=a.N;a.N=0;a.I=ja();a.S=0;Gb(a)}function Jb(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function Kb(a,b,c){0<=b&&ba.G[b][0]&&(c*=a.ma*a.L/1E3,a.G[b][0]=c+Mb(a))}function Mb(a,b){var c=a.W-=a.a;a.a=0;b&&(a.W=0);return c} +k.lb=function(a){if(Ra(this,!0)){if(!this.l.pa){Fb(this);this.A&&this.A.start(this.I,Hb(this));this.l.pa=!0;this.l.Jb=!0;this.M&&this.M.start();var b=this.w.run;b&&(b.textContent="Halt");this.A&&(this.A.Fa(!0),a&&Ib(this.A,!0))}this.Ia>=this.ma&&Gb(this,!0);this.qa=0;this.ta=ja();this.S&&(a=this.ta-this.S,a>this.Pa&&(this.I+=a,this.I>this.ta&&(this.I=this.ta)));try{do{for(var c,d=this.l.ab?1:this.Ba,e=this.G.length-1;0<=e;e--){var f=this.G[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Kb(c);c=Mb(this,!0); +this.qa+=c;this.N+=c;a=c;this.l.ab&&(b=!1,this.ua=this.ua+this.Fb()|0,this.X-=a,0>=this.X&&(this.X+=this.Z,b=!0),0<=this.ja&&this.ja<=Hb(this)&&(this.Z=this.ja=-1,Cb(this),Eb(this),b=!0),b&&this.ea(Hb(this)+" cycles: checksum="+p(this.ua)));a=c;for(var g=this.G.length-1;0<=g;g--){var h=this.G[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.la-=c;if(0>=this.la){this.la+=this.Ba;15<=++this.Qa&&(this.A&&this.A.Fa(),this.Qa=0);break}}while(this.l.pa)}catch(l){Eb(this);Db(this);this.A&&this.A.stop(ja(), +Hb(this));Ra(this,!1);c=l.stack||l.message;this.l.error=!0;this.K(c);return}c=setTimeout;d=this.Za;this.S=ja();e=this.Pa;this.qa&&(e=Math.round(e*this.qa/this.Ba));e-=this.S-this.ta;if(f=this.S-this.I)this.R=Math.round(this.N/(10*f))/100,864E5<=f&&(this.H=0,Fb(this));if(0>e||this.Re&&(this.I-=e),e=0;this.Ia+=this.qa;this.S+=e;c(d,e)}else Db(this),this.A&&this.A.stop(ja(),Hb(this))};k.Kb=function(){return 0}; +function Eb(a){a.l.$a&&(a.l.ib=!0);Mb(a);a.H+=a.N;a.N=0;if(a.l.pa){a.l.pa=!1;a.M&&a.M.stop();var b=a.w.run;b&&(b.textContent="Run")}a.l.complete=void 0}function Db(a){if(a.A){for(var b=a.A,c=0;c>8&255;a.D=b&255}function Xb(a){return a.f<<8|a.F}function Yb(a,b){a.f=b>>8&255;a.F=b&255}function G(a){return a.g<<8|a.i} +function I(a,b){a.g=b>>8&255;a.i=b&255}function E(a,b){a.o=b&65535}function J(a){return a.m&256?1:0}function K(a,b){a.m=a.m&255|b}function Zb(a){return Ua[a.s&255]?4:0}function Ub(a){return a.C&-214|(a.s&128?128:0)|(a.m&255?0:64)|((a.s^a.v)&16?16:0)|Zb(a)|J(a)}function Sb(a,b){a.m=a.s=a.v=0;b&1&&(a.m|=256);b&4||(a.s|=1);b&16&&(a.v|=16);b&64||(a.m|=255);b&128&&(a.s^=192);a.C=a.C&-726|b&512|2}function L(a,b){a.v=a.b^b;return a.s=(a.m=a.b+b)&255} +function $b(a,b){a.v=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?1:0))&255}function ac(a,b){a.m=a.s=a.v=a.b&b;(a.b|b)&8&&(a.v^=16);return a.m}function bc(a,b){a.v=b^255;b=a.s=b+255&255;a.m=a.m&-256|b;return b}function cc(a,b){a.v=b;b=a.s=b+1&255;a.m=a.m&-256|b;return b}function dc(a,b){return a.s=a.m=a.v=a.b|b}function M(a,b){b^=255;a.v=a.b^b;return a.s=(a.m=a.b+b+1^256)&255}function ec(a,b){b^=255;a.v=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?0:1)^256)&255}function fc(a,b){return a.s=a.m=a.v=a.b^b}k.J=function(a){return this.j.J(a)}; +k.ba=function(a,b){this.j.ba(a,b)};function N(a){var b=a.J(a.o);E(a,a.o+1);return b}function O(a){var b=db(a.j,a.o);E(a,a.o+2);return b}function P(a){var b=db(a.j,a.u);a.u=a.u+2&65535;return b}function R(a,b){a.u=a.u-2&65535;gb(a.j,a.u,b)}function gc(a){if(a.a&&a.B&255&&a.C&512){for(var b=0;8>b&&!(a.B&1<b?255:1<>8;K(this,a&256);this.a-=4},ic,function(){var a;I(this,a=G(this)+Vb(this));K(this,a>>8&256);this.a-=10},function(){this.b=this.J(Vb(this));this.a-=7},function(){Wb(this,Vb(this)-1);this.a-=5}, function(){this.D=cc(this,this.D);this.a-=5},function(){this.D=bc(this,this.D);this.a-=5},function(){this.D=N(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;K(this,a);this.a-=4},ic,function(){Yb(this,O(this));this.a-=10},function(){this.ba(Xb(this),this.b);this.a-=7},function(){Yb(this,Xb(this)+1);this.a-=5},function(){this.f=cc(this,this.f);this.a-=5},function(){this.f=bc(this,this.f);this.a-=5},function(){this.f=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|J(this); K(this,a&256);this.a-=4},ic,function(){var a;I(this,a=G(this)+Xb(this));K(this,a>>8&256);this.a-=10},function(){this.b=this.J(Xb(this));this.a-=7},function(){Yb(this,Xb(this)-1);this.a-=5},function(){this.F=cc(this,this.F);this.a-=5},function(){this.F=bc(this,this.F);this.a-=5},function(){this.F=N(this);this.a-=7},function(){var a=this.b<<8;this.b=(J(this)<<8|this.b)>>1;K(this,a&256);this.a-=4},ic,function(){I(this,O(this));this.a-=10},function(){var a=O(this);gb(this.j,a,G(this));this.a-=16},function(){I(this, -G(this)+1);this.a-=5},function(){this.g=cc(this,this.g);this.a-=5},function(){this.g=bc(this,this.g);this.a-=5},function(){this.g=N(this);this.a-=7},function(){var a=0,b=J(this);if((this.s^this.w)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=L(this,a);K(this,b?256:0);this.a-=4},ic,function(){var a;I(this,a=G(this)+G(this));K(this,a>>8&256);this.a-=10},function(){var a;a=O(this);a=db(this.j,a);I(this,a);this.a-=16},function(){I(this,G(this)-1);this.a-=5},function(){this.i=cc(this,this.i); +G(this)+1);this.a-=5},function(){this.g=cc(this,this.g);this.a-=5},function(){this.g=bc(this,this.g);this.a-=5},function(){this.g=N(this);this.a-=7},function(){var a=0,b=J(this);if((this.s^this.v)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=L(this,a);K(this,b?256:0);this.a-=4},ic,function(){var a;I(this,a=G(this)+G(this));K(this,a>>8&256);this.a-=10},function(){var a;a=O(this);a=db(this.j,a);I(this,a);this.a-=16},function(){I(this,G(this)-1);this.a-=5},function(){this.i=cc(this,this.i); this.a-=5},function(){this.i=bc(this,this.i);this.a-=5},function(){this.i=N(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},ic,function(){this.u=O(this)&65535;this.a-=10},function(){this.ba(O(this),this.b);this.a-=13},function(){this.u=this.u+1&65535;this.a-=5},function(){var a=G(this);this.ba(a,cc(this,this.J(a)));this.a-=10},function(){var a=G(this);this.ba(a,bc(this,this.J(a)));this.a-=10},function(){this.ba(G(this),N(this));this.a-=10},function(){this.m|=256;this.a-=4},ic,function(){var a; I(this,a=G(this)+this.u);K(this,a>>8&256);this.a-=10},function(){this.b=this.J(O(this));this.a-=13},function(){this.u=this.u-1&65535;this.a-=5},function(){this.b=cc(this,this.b);this.a-=5},function(){this.b=bc(this,this.b);this.a-=5},function(){this.b=N(this);this.a-=7},function(){K(this,J(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.c=this.D;this.a-=5},function(){this.c=this.f;this.a-=5},function(){this.c=this.F;this.a-=5},function(){this.c=this.g;this.a-=5},function(){this.c=this.i; this.a-=5},function(){this.c=this.J(G(this));this.a-=7},function(){this.c=this.b;this.a-=5},function(){this.D=this.c;this.a-=5},function(){this.a-=5},function(){this.D=this.f;this.a-=5},function(){this.D=this.F;this.a-=5},function(){this.D=this.g;this.a-=5},function(){this.D=this.i;this.a-=5},function(){this.D=this.J(G(this));this.a-=7},function(){this.D=this.b;this.a-=5},function(){this.f=this.c;this.a-=5},function(){this.f=this.D;this.a-=5},function(){this.a-=5},function(){this.f=this.F;this.a-= @@ -103,91 +103,91 @@ this.g);this.a-=4},function(){this.b=ec(this,this.i);this.a-=4},function(){this. ac(this,this.b);this.a-=4},function(){this.b=fc(this,this.c);this.a-=4},function(){this.b=fc(this,this.D);this.a-=4},function(){this.b=fc(this,this.f);this.a-=4},function(){this.b=fc(this,this.F);this.a-=4},function(){this.b=fc(this,this.g);this.a-=4},function(){this.b=fc(this,this.i);this.a-=4},function(){this.b=fc(this,this.J(G(this)));this.a-=7},function(){this.b=fc(this,this.b);this.a-=4},function(){this.b=dc(this,this.c);this.a-=4},function(){this.b=dc(this,this.D);this.a-=4},function(){this.b= dc(this,this.f);this.a-=4},function(){this.b=dc(this,this.F);this.a-=4},function(){this.b=dc(this,this.g);this.a-=4},function(){this.b=dc(this,this.i);this.a-=4},function(){this.b=dc(this,this.J(G(this)));this.a-=7},function(){this.b=dc(this,this.b);this.a-=4},function(){M(this,this.c);this.a-=4},function(){M(this,this.D);this.a-=4},function(){M(this,this.f);this.a-=4},function(){M(this,this.F);this.a-=4},function(){M(this,this.g);this.a-=4},function(){M(this,this.i);this.a-=4},function(){M(this, this.J(G(this)));this.a-=7},function(){M(this,this.b);this.a-=4},function(){this.m&255&&(E(this,P(this)),this.a-=6);this.a-=5},function(){Wb(this,P(this));this.a-=10},function(){var a=O(this);this.m&255&&E(this,a);this.a-=10},jc,function(){var a=O(this);this.m&255&&(R(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){R(this,Vb(this));this.a-=11},function(){this.b=L(this,N(this));this.a-=7},function(){R(this,this.o);E(this,0);this.a-=11},function(){this.m&255||(E(this,P(this)),this.a-=6);this.a-= -5},kc,function(){var a=O(this);this.m&255||E(this,a);this.a-=10},jc,function(){var a=O(this);this.m&255||(R(this,this.o),E(this,a),this.a-=6);this.a-=11},lc,function(){this.b=$b(this,N(this));this.a-=7},function(){R(this,this.o);E(this,8);this.a-=11},function(){J(this)||(E(this,P(this)),this.a-=6);this.a-=5},function(){Yb(this,P(this));this.a-=10},function(){var a=O(this);J(this)||E(this,a);this.a-=10},function(){for(var a=N(this),b=this.j,c=this.b,d=this.o+-2&65535,e=1,f=0;0>>=f)&l;if(void 0!==g&&g[0])g[0](a,l,d);f+=h<<3;a+=h;e-=h}this.a-=10},function(){var a=O(this);J(this)||(R(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){R(this,Xb(this));this.a-=11},function(){this.b=M(this,N(this));this.a-=7},function(){R(this,this.o);E(this,16);this.a-=11},function(){J(this)&&(E(this,P(this)),this.a-=6);this.a-=5},kc,function(){var a=O(this);J(this)&&E(this,a);this.a-=10},function(){for(var a=N(this),b=this.j,c=this.o+-2&65535,d=1,e=0, f=0;0>8;this.a-=10},function(){var a=O(this);this.s&128||E(this,a);this.a-=10},function(){this.C&=-513;this.a-=4},function(){var a=O(this);this.s&128||(R(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){R(this, Ub(this)&255|this.b<<8);this.a-=11},function(){this.b=dc(this,N(this));this.a-=7},function(){R(this,this.o);E(this,48);this.a-=11},function(){this.s&128&&(E(this,P(this)),this.a-=6);this.a-=5},function(){this.u=G(this)&65535;this.a-=5},function(){var a=O(this);this.s&128&&E(this,a);this.a-=10},function(){this.C|=512;this.a-=4;gc(this)},function(){var a=O(this);this.s&128&&(R(this,this.o),E(this,a),this.a-=6);this.a-=11},lc,function(){M(this,N(this));this.a-=7},function(){R(this,this.o);E(this,56); this.a-=11}];function T(a){r.call(this,"ChipSet",a,T);var b=a.model;b&&!mc[b]&&Ba("Unrecognized ChipSet model: "+b);this.c=mc[b]||{};a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);B(this)}w(T); -var V={ca:1978.1,Dc:{da:0,xd:1,Bd:16,Id:32,Rd:64,Qd:128,Ia:14},Ca:{da:1,Tb:1,wc:2,sc:4,tc:16,uc:32,vc:64,Ia:8},Ec:{da:2,wd:3,$d:4,yd:8,Md:16,Nd:32,Od:64,zd:128,Ia:0},Vd:{da:3},Td:{da:2,Jd:7},Xd:{da:3,ae:1,Wd:2,Pd:4,Gd:8,Ad:16,qd:32},Ud:{da:4},Yd:{da:5,Cd:1,Dd:2,Ed:4,Fd:8,be:16}},W={ca:100,ka:{da:66,zb:1,oc:2,pc:4,Ld:8,Kd:16,wb:32,vb:64,rb:128},Rb:{da:66,INIT:0},za:{da:194,sd:0,pb:16,yc:32,xb:48,ac:0,bc:32},Ua:{da:162,Sd:0,dc:0,$b:0,cc:0,Zb:0},na:{Hd:{da:98},Ea:{Ob:0,Nb:1,Bc:2,Jc:4,Ub:5,zc:6,Zd:7}, -Wa:16383}},mc={SI1978:V,VT100:W};T.prototype.V=function(){return!1};T.prototype.ra=function(a,b,c,d){this.j=b;this.a=c;this.O=d;this.v=a;this.m=Wa(a,"Keyboard");this.Z=Wa(a,"SerialPort");this.video=Wa(a,"Video");ib(b,this,this.c.bb);jb(b,this,this.c.cb)};T.prototype.ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};T.prototype.ia=function(a){return a?this.save():!0};V.INIT=[[V.Dc.Ia,V.Ca.Ia,V.Ec.Ia,0,0,0,0]]; -W.INIT=[[W.Rb.INIT,W.ka.oc|W.ka.pc],[W.za.ac,W.za.bc],[W.Ua.dc,W.Ua.$b,W.Ua.cc,W.Ua.Zb],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], +var V={ca:1978.1,Dc:{da:0,xd:1,Bd:16,Id:32,Rd:64,Qd:128,Ka:14},Da:{da:1,Tb:1,wc:2,sc:4,tc:16,uc:32,vc:64,Ka:8},Ec:{da:2,wd:3,$d:4,yd:8,Md:16,Nd:32,Od:64,zd:128,Ka:0},Vd:{da:3},Td:{da:2,Jd:7},Xd:{da:3,ae:1,Wd:2,Pd:4,Gd:8,Ad:16,qd:32},Ud:{da:4},Yd:{da:5,Cd:1,Dd:2,Ed:4,Fd:8,be:16}},W={ca:100,ka:{da:66,zb:1,oc:2,pc:4,Ld:8,Kd:16,wb:32,vb:64,rb:128},Rb:{da:66,INIT:0},Aa:{da:194,sd:0,pb:16,yc:32,xb:48,ac:0,bc:32},Wa:{da:162,Sd:0,dc:0,$b:0,cc:0,Zb:0},na:{Hd:{da:98},Ga:{Ob:0,Nb:1,Bc:2,Jc:4,Ub:5,zc:6,Zd:7}, +Ya:16383}},mc={SI1978:V,VT100:W};T.prototype.V=function(){return!1};T.prototype.ra=function(a,b,c,d){this.j=b;this.a=c;this.O=d;this.A=a;this.m=Wa(a,"Keyboard");this.Z=Wa(a,"SerialPort");this.video=Wa(a,"Video");ib(b,this,this.c.eb);jb(b,this,this.c.fb)};T.prototype.ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};T.prototype.ia=function(a){return a?this.save():!0};V.INIT=[[V.Dc.Ka,V.Da.Ka,V.Ec.Ka,0,0,0,0]]; +W.INIT=[[W.Rb.INIT,W.ka.oc|W.ka.pc],[W.Aa.ac,W.Aa.bc],[W.Wa.dc,W.Wa.$b,W.Wa.cc,W.Wa.Zb],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];k=T.prototype;k.reset=function(){this.c.INIT&&!this.restore(this.c.INIT)&&this.K("reset error")}; -k.save=function(){var a=new F(this);switch(this.c.ca){case V.ca:a.set(0,[this.W,this.g,this.X,this.C,this.M,this.S,this.U]);break;case W.ca:a.set(0,[this.L,this.u]),a.set(1,[this.o,this.s]),a.set(2,[this.f,this.G,this.R,this.N]),a.set(3,[this.B,this.b,this.w,this.H,this.i])}return a.data()}; -k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.c.ca){case V.ca:return this.W=b[0],this.g=b[1],this.X=b[2],this.C=b[3],this.M=b[4],this.S=b[5],this.U=b[6],!0;case W.ca:return this.L=b[0],this.u=b[1],b=a[1],this.o=b[0],this.s=b[1],b=a[2],this.f=b[0],this.G=b[1],this.R=b[2],this.N=b[3],b=a[3],this.B=b[0],this.b=b[1],this.w=b[2],this.H=b[3],this.i=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.Wc=function(){return this.W};k.Xc=function(){return this.g};k.Yc=function(){return this.X}; +k.save=function(){var a=new F(this);switch(this.c.ca){case V.ca:a.set(0,[this.W,this.g,this.X,this.C,this.M,this.S,this.U]);break;case W.ca:a.set(0,[this.L,this.u]),a.set(1,[this.o,this.s]),a.set(2,[this.f,this.G,this.R,this.N]),a.set(3,[this.B,this.b,this.v,this.H,this.i])}return a.data()}; +k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.c.ca){case V.ca:return this.W=b[0],this.g=b[1],this.X=b[2],this.C=b[3],this.M=b[4],this.S=b[5],this.U=b[6],!0;case W.ca:return this.L=b[0],this.u=b[1],b=a[1],this.o=b[0],this.s=b[1],b=a[2],this.f=b[0],this.G=b[1],this.R=b[2],this.N=b[3],b=a[3],this.B=b[0],this.b=b[1],this.v=b[2],this.H=b[3],this.i=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.Wc=function(){return this.W};k.Xc=function(){return this.g};k.Yc=function(){return this.X}; k.Vc=function(){return this.C>>8-this.M&255};k.dd=function(a,b){this.M=b};k.fd=function(a,b){this.S=b};k.ed=function(a,b){this.C=b<<8|this.C>>8};k.gd=function(a,b){this.U=b};k.hd=function(){};function nc(a){var b=0,c=0,d=~a.B;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c} -k.Zc=function(){var a=this.u,a=a&~W.ka.vb;if((Hb(this.a)&64)<<1&&(a|=W.ka.vb,a!=this.u)){var b,c;b=this.w&1;switch(this.w>>1&7){case W.na.Ea.Nb:this.B=this.B<<1|b;break;case W.na.Ea.Ub:b=nc(this);this.i[b]=W.na.Wa;break;case W.na.Ea.Ob:this.b=this.b<<1|b;break;case W.na.Ea.Jc:b=nc(this);c=this.b&W.na.Wa;this.i[b]=c;break;case W.na.Ea.zc:b=nc(this);c=this.i[b];null==c&&(c=W.na.Wa);this.b=c;break;case W.na.Ea.Bc:this.b<<=1,this.H=this.b&W.na.Wa+1}}a&=~W.ka.wb;this.H&&(a|=W.ka.wb);a&=~W.ka.rb;if(b=this.m){b= -this.m;if(c=b.f)c=b.a,c=Hb(b.a)>=b.m+c.ma*c.L/1E3*1.2731488;c&&(b.f=!1);b=!b.f}b&&(a|=W.ka.rb);a&=~W.ka.zb;this.Z&&this.Z.fa&1&&(a|=W.ka.zb);return this.u=a};k.jd=function(a,b){this.L=b};k.md=function(a,b){this.w=b};k.ld=function(a,b){a=b&3;switch(b>>2&3){case 0:this.f=this.f&-4|a;break;case 1:this.f=this.f&-13|a<<2;this.video&&(b=this.video,a=this.f,b.qa!==a&&((b.qa=a)?Nb(b,!0):b.ta=!0));break;case 2:switch(a){case 0:this.G=~this.G;break;case 2:case 3:this.R=3-a}break;case 3:this.N=a}}; -k.kd=function(a,b){b&W.za.yc?(b&=W.za.xb,this.s!=b&&(this.s=b,this.video&&(this.video.Hb=this.s==W.za.xb?50:60))):(b&=W.za.pb,this.o!=b&&(this.o=b,this.video&&(a=this.video,b=this.o==W.za.pb?132:80,a.H=b,a.T=a.Aa,80>1&7){case W.na.Ga.Nb:this.B=this.B<<1|b;break;case W.na.Ga.Ub:b=nc(this);this.i[b]=W.na.Ya;break;case W.na.Ga.Ob:this.b=this.b<<1|b;break;case W.na.Ga.Jc:b=nc(this);c=this.b&W.na.Ya;this.i[b]=c;break;case W.na.Ga.zc:b=nc(this);c=this.i[b];null==c&&(c=W.na.Ya);this.b=c;break;case W.na.Ga.Bc:this.b<<=1,this.H=this.b&W.na.Ya+1}}a&=~W.ka.wb;this.H&&(a|=W.ka.wb);a&=~W.ka.rb;if(b=this.m){b= +this.m;if(c=b.f)c=b.a,c=Hb(b.a)>=b.m+c.ma*c.L/1E3*1.2731488;c&&(b.f=!1);b=!b.f}b&&(a|=W.ka.rb);a&=~W.ka.zb;this.Z&&this.Z.fa&1&&(a|=W.ka.zb);return this.u=a};k.jd=function(a,b){this.L=b};k.md=function(a,b){this.v=b};k.ld=function(a,b){a=b&3;switch(b>>2&3){case 0:this.f=this.f&-4|a;break;case 1:this.f=this.f&-13|a<<2;this.video&&(b=this.video,a=this.f,b.qa!==a&&((b.qa=a)?Nb(b,!0):b.ta=!0));break;case 2:switch(a){case 0:this.G=~this.G;break;case 2:case 3:this.R=3-a}break;case 3:this.N=a}}; +k.kd=function(a,b){b&W.Aa.yc?(b&=W.Aa.xb,this.s!=b&&(this.s=b,this.video&&(this.video.Hb=this.s==W.Aa.xb?50:60))):(b&=W.Aa.pb,this.o!=b&&(this.o=b,this.video&&(a=this.video,b=this.o==W.Aa.pb?132:80,a.H=b,a.T=a.Ba,80>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.wa=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(h){a.K("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm, +function rc(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{La(a.za,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.b=f;else if(g)for(a.b=Array(4*g.length),d=c=0;c>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.wa=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(h){a.K("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm, " ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e>>f.j;0>>=f.j;0d?a.j.push({mb:b,hb:Date.now(),$a:!1}):(a.j[d].hb=Date.now(),a.j[d].$a=!1);else if(0<=d){if(!a.j[d].$a){var e=a.j[d].hb;if(e&&100>Date.now()-e)return a.j[d].$a=!0,Ec(a),!0}a.j.splice(d,1)}if(a.M){d=0;switch(b){case "1p":d=V.Ca.sc;break;case "2p":d=V.Ca.wc;break;case "coin":d=V.Ca.Tb;break;case "left":d=V.Ca.uc;break;case "right":d=V.Ca.vc;break;case "fire":d=V.Ca.tc}d&&(a=a.M,b=d,a.g&=~b,c&&(a.g|=b))}return!0} -function Ec(a){for(var b=0,c=-1;bc||c>e)c=e}else{Cc(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){Ec(a)},c)}k.$c=function(){var a=this.g;0<=this.c&&(this.cd?a.j.push({mb:b,jb:Date.now(),bb:!1}):(a.j[d].jb=Date.now(),a.j[d].bb=!1);else if(0<=d){if(!a.j[d].bb){var e=a.j[d].jb;if(e&&100>Date.now()-e)return a.j[d].bb=!0,Ec(a),!0}a.j.splice(d,1)}if(a.M){d=0;switch(b){case "1p":d=V.Da.sc;break;case "2p":d=V.Da.wc;break;case "coin":d=V.Da.Tb;break;case "left":d=V.Da.uc;break;case "right":d=V.Da.vc;break;case "fire":d=V.Da.tc}d&&(a=a.M,b=d,a.g&=~b,c&&(a.g|=b))}return!0} +function Ec(a){for(var b=0,c=-1;bc||c>e)c=e}else{Cc(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){Ec(a)},c)}k.$c=function(){var a=this.g;0<=this.c&&(this.c>3)*a.G,!$a(a.j,a.ja,a.B,3)))return!1;a.B?(a.Ma=a.f.createImageData(b,c),a.Oa=16/a.la|0,Kc(a,a.B>>1)):Kc(a,(a.H+1)*a.W);a.s=document.createElement("canvas");a.s.width=b;a.s.height=c;a.sa=a.s.getContext("2d");a.I={};a.S=1<=a.Aa?8:16,f=8>(7>4)*c)}return l}Fc.prototype.ga=function(){return!0};Fc.prototype.V=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.va[b]=c,!0;switch(b){case "fullScreen":return this.A[b]=c,this.b&&this.b.Ha?c.onclick=function(){d.Ha()}:c.parentNode.removeChild(c),!0}return!1}; -Fc.prototype.Ha=function(){var a=!1;if(this.b){if(this.b.Ha){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.C/this.w;b>c&&(a=Math.round(c/b*100)+"%")}this.La?(this.u.style.width=a,this.u.style.width=a,this.u.style.display="block",this.u.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Ha();a=!0}this.R&&this.R.focus()}return a}; -function Ic(a,b){!b&&a.b&&(a.La?a.u.style.width=a.u.style.height="":a.b.style.width=a.b.style.height="")}function Kc(a,b){a.Na=b;a.N=!1;if(void 0===a.i||a.i.length!=a.Na)a.i=Array(a.Na)}function Mc(a,b,c,d,e){d=a.c?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.U&&(208<=c&&236>c?e=a.S+0:28<=c&&72>c&&(e=a.S+1));a=a.L[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} -function Nb(a,b){var c=!0;if(!b){a.ma&&(120==a.ma?a.Xa&1?(hc(a.a,2),c=!1):hc(a.a,1):hc(a.a,4));if(c&&a.N&&a.B){for(var d=a.j,e=a.B,f=!0,g=a.ja>>>d.j;0>=1);;){var x=cb(a.j,u++);if(127==(x&127)){var t=cb(a.j,u++),d=t&96,c=(t&15)<<8|cb(a.j,u),c=c+(t&16? -8192:16384);break}if(n>4)*x.P,Z,sa,Pa,fb,zc=x.T,Lb=x.P;D?(Z=H*t.T,sa=e*t.P,Pa=t.T,fb=t.P):(Z=H*t.Fa,sa=e*t.Ga,Pa=t.Fa,fb=t.Ga);x.T>t.T&&(Z*=2,Pa*=2);x.P>t.P&&(z||(Q+=t.P),Lb=t.P);D?D.drawImage(x.canvas,U,Q,zc,Lb,Z,sa,Pa,fb):(Z+=0,sa+=0,t.f.drawImage(x.canvas,U,Q,zc,Lb,Z, -sa,Pa,fb))}h++}g++}e++}}a.N=!0;!b&&a.ta&&1==h&&(a.i[l]=-1,h=0);a.ta=!1;(h||b)&&a.sa&&a.f.drawImage(a.s,0,a.qa,a.o,a.G-a.P,0,0,a.Nc,a.Mb)}else{e=a.ja;f=e+a.B;l=h=g=0;b=a.o;n=0;c=a.G;z=d=0;u=a.la;H=(1<>>t.j;t=x!=t.f?t.b[U].Ib(x,D):t.b[U++].eb(x,D)|t.b[U&t.o].eb(0,D+1)<<8;if(a.N&&t===a.i[g])h+=a.Oa;else{a.i[g]=t;(D=z)&&(t=t>>8|(t&255)<<8);h>D&H,Mc(a,a.Ma,h++,l,U),D+=u;h>n&&(n=h);l=d&&(d=l+1)}e+= -2;g++;if(h>=a.o&&(h=0,l++,l>a.G))break}a.N=!0;b>3)*a.G,!$a(a.j,a.ja,a.B,3)))return!1;a.B?(a.Oa=a.f.createImageData(b,c),a.Qa=16/a.la|0,Kc(a,a.B>>1)):Kc(a,(a.H+1)*a.W);a.s=document.createElement("canvas");a.s.width=b;a.s.height=c;a.sa=a.s.getContext("2d");a.I={};a.S=1<=a.Ba?8:16,f=8>(7>4)*c)}return l}Fc.prototype.ga=function(){return!0};Fc.prototype.V=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.va[b]=c,!0;switch(b){case "fullScreen":return this.w[b]=c,this.b&&this.b.Ja?c.onclick=function(){d.Ja()}:c.parentNode.removeChild(c),!0}return!1}; +Fc.prototype.Ja=function(){var a=!1;if(this.b){if(this.b.Ja){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.C/this.v;b>c&&(a=Math.round(c/b*100)+"%")}this.Na?(this.u.style.width=a,this.u.style.width=a,this.u.style.display="block",this.u.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Ja();a=!0}this.R&&this.R.focus()}return a}; +function Ic(a,b){!b&&a.b&&(a.Na?a.u.style.width=a.u.style.height="":a.b.style.width=a.b.style.height="")}function Kc(a,b){a.Pa=b;a.N=!1;if(void 0===a.i||a.i.length!=a.Pa)a.i=Array(a.Pa)}function Mc(a,b,c,d,e){d=a.c?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.U&&(208<=c&&236>c?e=a.S+0:28<=c&&72>c&&(e=a.S+1));a=a.L[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} +function Nb(a,b){var c=!0;if(!b){a.ma&&(120==a.ma?a.Za&1?(hc(a.a,2),c=!1):hc(a.a,1):hc(a.a,4));if(c&&a.N&&a.B){for(var d=a.j,e=a.B,f=!0,g=a.ja>>>d.j;0>=1);;){var x=cb(a.j,u++);if(127==(x&127)){var t=cb(a.j,u++),d=t&96,c=(t&15)<<8|cb(a.j,u),c=c+(t&16? +8192:16384);break}if(n>4)*x.P,Z,sa,Pa,fb,zc=x.T,Lb=x.P;D?(Z=H*t.T,sa=e*t.P,Pa=t.T,fb=t.P):(Z=H*t.Ha,sa=e*t.Ia,Pa=t.Ha,fb=t.Ia);x.T>t.T&&(Z*=2,Pa*=2);x.P>t.P&&(z||(Q+=t.P),Lb=t.P);D?D.drawImage(x.canvas,U,Q,zc,Lb,Z,sa,Pa,fb):(Z+=0,sa+=0,t.f.drawImage(x.canvas,U,Q,zc,Lb,Z, +sa,Pa,fb))}h++}g++}e++}}a.N=!0;!b&&a.ta&&1==h&&(a.i[l]=-1,h=0);a.ta=!1;(h||b)&&a.sa&&a.f.drawImage(a.s,0,a.qa,a.o,a.G-a.P,0,0,a.Nc,a.Mb)}else{e=a.ja;f=e+a.B;l=h=g=0;b=a.o;n=0;c=a.G;z=d=0;u=a.la;H=(1<>>t.j;t=x!=t.f?t.b[U].Ib(x,D):t.b[U++].gb(x,D)|t.b[U&t.o].gb(0,D+1)<<8;if(a.N&&t===a.i[g])h+=a.Qa;else{a.i[g]=t;(D=z)&&(t=t>>8|(t&255)<<8);h>D&H,Mc(a,a.Oa,h++,l,U),D+=u;h>n&&(n=h);l=d&&(d=l+1)}e+= +2;g++;if(h>=a.o&&(h=0,l++,l>a.G))break}a.N=!0;bMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= (a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Fa.aspect);f&&.3<=f&&3.33>=f&&(ya("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");ta("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Fc(d,e,g,f,c);Qa(d,c)}}); -function Nc(a){this.I=+a.adapter;switch(this.I){case 0:this.L=0;this.R=2;break;default:q("Unrecognized serial adapter #"+this.I);return}this.b=this.c=null;this.N=a.tabSize;this.H=a.charBOL;this.f=0;this.C=!1;r.call(this,"SerialPort",a,Nc);var b=a.binding;if("console"==b)this.c="";else{var c;a=Oc;b&&(void 0===c&&(c="Panel"),(c=Oa(c,this.id))&&(b=c.A[b])&&this.V(null,a,b))}this.g="";this.i=this.s=null;this.exports={connect:this.Gb,receiveData:this.kb}}w(Nc); +function Nc(a){this.I=+a.adapter;switch(this.I){case 0:this.L=0;this.R=2;break;default:q("Unrecognized serial adapter #"+this.I);return}this.b=this.c=null;this.N=a.tabSize;this.H=a.charBOL;this.f=0;this.C=!1;r.call(this,"SerialPort",a,Nc);var b=a.binding;if("console"==b)this.c="";else{var c;a=Oc;b&&(void 0===c&&(c="Panel"),(c=Oa(c,this.id))&&(b=c.w[b])&&this.V(null,a,b))}this.g="";this.i=this.s=null;this.exports={connect:this.Gb,receiveData:this.kb}}w(Nc); var Pc=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Qc=[!1,0,0,133,142,39,238],Oc="buffer";k=Nc.prototype; -k.V=function(a,b,c,d){var e=this;switch(b){case Oc:return this.A[b]=this.b=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=ha(b[0]);if(c!=this.Va)return;b=ha(b[1]);if(this.i=Na(b)){var d=this.i.exports;if(d){var e=d.connect;e&&e.call(this.i);if(this.s=d.receiveData){this.status(this.ya+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.ga=function(a,b){if(!b)if(this.Gb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -k.ia=function(a){return a?this.save():!0};k.reset=function(){Uc(this)};k.save=function(){var a=new F(this),b=0,c=[];c[b++]=this.o;c[b++]=this.B;c[b++]=this.G;c[b++]=this.fa;c[b++]=this.m;c[b++]=this.w;c[b]=this.u;a.set(0,c);return a.data()};k.restore=function(a){return Uc(this,a[0])};function Uc(a,b){var c=0;b||(b=Qc);a.o=b[c++];a.B=b[c++];a.G=b[c++];a.fa=b[c++];a.m=b[c++];a.w=b[c++];a.u=b[c];return!0} +k.V=function(a,b,c,d){var e=this;switch(b){case Oc:return this.w[b]=this.b=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=ha(b[0]);if(c!=this.Xa)return;b=ha(b[1]);if(this.i=Na(b)){var d=this.i.exports;if(d){var e=d.connect;e&&e.call(this.i);if(this.s=d.receiveData){this.status(this.za+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.ga=function(a,b){if(!b)if(this.Gb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; +k.ia=function(a){return a?this.save():!0};k.reset=function(){Uc(this)};k.save=function(){var a=new F(this),b=0,c=[];c[b++]=this.o;c[b++]=this.B;c[b++]=this.G;c[b++]=this.fa;c[b++]=this.m;c[b++]=this.v;c[b]=this.u;a.set(0,c);return a.data()};k.restore=function(a){return Uc(this,a[0])};function Uc(a,b){var c=0;b||(b=Qc);a.o=b[c++];a.B=b[c++];a.G=b[c++];a.fa=b[c++];a.m=b[c++];a.v=b[c++];a.u=b[c];return!0} function Vc(a,b){var c=a.u&b;b&15||(c>>=4);b=Pc[c];c=((a.m&12)>>2)+6;a.m&16&&c++;c+=((a.m&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function Rc(a,b){return a.C||a.fa&2?!1:(a.B=b,a.fa|=2,hc(a.a,a.R),!0)}k.kb=function(a){null!=a&&(this.g="number"!=typeof a?a:this.g+String.fromCharCode(a));this.g&&(Rc(this,this.g.charCodeAt(0))&&(this.g=this.g.substr(1)),this.g&&this.a&&Kb(this.a,this.S,Vc(this,15)));return!0};k.Uc=function(){var a=this.B;this.fa&=-3;return a};k.Tc=function(){return this.fa}; k.cd=function(a,b){this.G=b;this.fa&=-6;if(19==b)this.C=!0;else if(17==b)this.C=!1;else if(this.s&&this.s.call(this.i,b),this.b)if(8==b)this.b.value=this.b.value.slice(0,-1),0":String.fromCharCode(b);var c=a.length;9==b?(b=this.N||8,c=b-this.f%b,this.N&&(a=" ".slice(0,c))):13==b&&(this.f=c=0,a="\n");this.H&&!this.f&&c&&(a=String.fromCharCode(this.H)+a);this.b.value+=a;this.b.scrollTop=this.b.scrollHeight;this.f+=c}else if(null!= -this.c){if(10==b||1024<=this.c.length)this.ea(this.c),this.c="";10!=b&&(this.c+=String.fromCharCode(b))}this.a&&Kb(this.a,this.U,Vc(this,240))};k.bd=function(a,b){this.o?(this.w=b,this.w&64&&(this.o=!1)):(this.m=b,this.o=!0)};k.ad=function(a,b){this.u=b};var Sc={0:Nc.prototype.Uc,1:Nc.prototype.Tc},Tc={0:Nc.prototype.cd,1:Nc.prototype.bd,2:Nc.prototype.ad};za(function(){for(var a=A(document,"pc8080","serial"),b=0;b\nLicense: GPL version 3 or later ");for(b=0;b\nLicense: GPL version 3 or later ");for(b=0;bYc){if($c(d,this.s)){this.i=new F(this,"1.30.1","failsafe");$c(this.i)&&(ed(this,d),a=2,fd(this.i));this.i.set("timestamp",ka());gd(this.i);var e=this.b&&!this.v;if(1==a||na("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=dd(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?$c(d,g):("error"== +k.Ta=function(a){void 0===a&&(a=this.b||(this.s?1:Yc));if(!this.f){this.f++;var b=!1,c=!1;this.C=!1;var d=this.u||new F(this,"1.30.1");if(-1==a)b=!0;else if(a>Yc){if($c(d,this.s)){this.i=new F(this,"1.30.1","failsafe");$c(this.i)&&(ed(this,d),a=2,fd(this.i));this.i.set("timestamp",ka());gd(this.i);var e=this.b&&!this.A;if(1==a||na("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=dd(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?$c(d,g):("error"== f&&"no machine state"!=g?(this.K("Error: "+g),"unable to verify user"==g&&(ra("user",""),this.c=null)):this.ea(f+": "+g),fd(d),$c(d)?(c=dd(d),e=!0):c=!1))}e&&cd(this,c?d:null)}else 2==a&&d.clear()}else cd(this);delete this.s;delete this.u}e=Ma(this.id);for(f=0;fa[1];a=a[2];this.L=!0;this.l.Y=!0;var d=this.A.power;d&&(d.textContent="Shutdown");this.a&&(hd(this,this.a,b,c,a),this.a.Qa());this.C&&(ed(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0}; +k.Db=function(a){var b=a[0],c=0>a[1];a=a[2];this.L=!0;this.l.Y=!0;var d=this.w.power;d&&(d.textContent="Shutdown");this.a&&(hd(this,this.a,b,c,a),this.a.Sa());this.C&&(ed(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0}; function ed(a,b){if(na("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PC8080",ver:"1.30.1"};d.url=a.I;d.user=c;d.type="bug";d.data=b;la("http://www.pcjs.org/api/v1/report",d,!0)}} function id(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new F(a,"1.30.1"),g=new F(a,"1.30.1","validate"),h=ka();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ia&&(c&&Eb(a.a),d=a.a.ia(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.l.Y=!1,!1===d&&(e=null)));for(var h=Ma(a.id),l=0;lg.za.restore(A)&&(h=!1);h&&g.za&&void 0!==g.eb&&(g.pb=g.za.seek(g.Qb,g.kb,g.xb));h||(e=!1)}a.W=b[c++]||0;a.jc=b[c]||0;return e} function Fp(a){var b=0,c=[];c[b++]=a.hb;c[b++]=0;c[b++]=a.ma;c[b++]=a.V;c[b++]=a.L;c[b++]=a.C;c[b++]=a.aa;for(var d=b++,e=0,f=[],g=0;gGp(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;ha.Bb||f[1]>a.ub)&&(this.Na('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.hb)),b=null);b?(a.za=b,a.Tk=c,a.Oe=d,Hp(this,c,d,b),f=b.info(),this.W|=128,this.Na('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.hb),a.Ce||e),a.Fg=f[0],a.Qf=f[1],a.Rf=f[2],this.X&&this.X.wd()):a.bf=!1;a.Ce&&(a.Ce=!1,--this.ea||xb(this));xp(this,a.hb)}; diff --git a/versions/pcx86/1.30.1/pcx86.js b/versions/pcx86/1.30.1/pcx86.js index 3b8a3f31a9..b61df533f2 100644 --- a/versions/pcx86/1.30.1/pcx86.js +++ b/versions/pcx86/1.30.1/pcx86.js @@ -604,7 +604,7 @@ function xm(a,b){var c=0,d,e=!0;b||(b=[0,0,128,Array(9),0,0,0,[]]);a.Qa=b[c++];c 80;g.eb=9;break;case 1200:g.ib=80;g.eb=15;break;case 1440:g.ib=80,g.eb=18}}var k=a,m=d,q=f[d],y=0;h=!0;g.Qa=m;g.ne=g.pe=!1;q||(q=[192,!0,0,2,0]);"boolean"==typeof q[1]&&(q[1]=["Floppy Drive",g.ib||40,g.jb||q[3],g.eb||9,g.nb||512,q[1],g.Nf,g.Xe,g.Ye]);g.kb=q[y++];var w=q[y++];g.name=w[0];g.ib=w[1];g.jb=w[2];g.eb=w[3];g.nb=w[4];g.qe=w[5];(g.Nf=w[6])?(g.Xe=w[7],g.Ye=w[8]):(g.Nf=g.ib,g.Xe=g.jb,g.Ye=g.eb);g.Ya=q[y++];g.ud=q[y++];g.wb=q[y++];g.ud=100<=g.ud?g.ud-100:g.ud-g.wb;g.mb=q[y++];g.vd=q[y++];g.vb= q[y++];g.Ua=q[y++];g.Wa=null;g.ta||(g.Xd="");var z=q[y++];102==z&&(z=!1);"boolean"==typeof z?(w=q[y++],q=q[y],z?(y=k.B[m],Cm(k,m,!0,!0),y.pe=!0,m=new cm(k,y,"preload"),k.oi(y,m,w,q,!0)):Em(k,m,w,q,!0)?g.ta&&q&&Fm(k,w,q,g.ta):t(k,!1)):void 0!==z&&g.ta&&0>g.ta.restore(z)&&(h=!1);h&&g.ta&&void 0!==g.Ua&&(g.Wa=g.ta.seek(g.wb,g.Ya,g.mb));h||(e=!1)}a.L=b[c++]||0;a.H=b[c]||0;return e} function Dm(a){var b=0,c=[];c[b++]=a.Qa;c[b++]=0;c[b++]=a.aa;c[b++]=a.I;c[b++]=a.G;c[b++]=a.D;c[b++]=a.P;for(var d=b++,e=0,f=[],g=0;gEm(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;ha.ib||f[1]>a.jb)&&(this.Ba('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Qa)),b=null);b?(a.ta=b,a.Jj=c,a.Xd=d,Fm(this,c,d,b),f=b.info(),this.L|=128,this.Ba('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Qa),a.Od||e),a.Nf=f[0],a.Xe=f[1],a.Ye=f[2],this.ba&&xc(this.ba)):a.pe=!1;a.Od&&(a.Od=!1,--this.R||t(this));vm(this,a.Qa)}; diff --git a/versions/pdpjs/1.30.1/pdp11-dbg.js b/versions/pdpjs/1.30.1/pdp11-dbg.js index dc6ec9396c..1436da9d0b 100644 --- a/versions/pdpjs/1.30.1/pdp11-dbg.js +++ b/versions/pdpjs/1.30.1/pdp11-dbg.js @@ -28,243 +28,245 @@ http://pcjs.org/modules/pdp11/lib/computer.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2016 */ -for(var k,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,da=["Math","log2"],ea=0;ea>=3;return(c?"0o":"")+d}function l(a,b,c){var d="";b?8=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d} +for(var k,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,da=["Math","log2"],ea=0;ea>=3;return(c?"0o":"")+d}function l(a,b,c){var d="";b?8=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d} function oa(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0":">",'"':""","'":"'"};function ta(a){return a.replace(/[&<>"']/g,function(a){return sa[a]})} function ua(a,b){return(a+" ").slice(0,b)}function va(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var wa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"}; function ya(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a>1,h;h=c(b,a[g]);0a?"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 Ba(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"== typeof b){var m="",p;for(p in b)b.hasOwnProperty(p)&&(m&&(m+="&"),m+=p+"="+encodeURIComponent(b[p]));m=m.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(m)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g} -function Ca(a,b){var c,d={ia:null,ka:null,Lb:null,Kb:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Lb=g.load;d.Kb=g.exec;if(e=g.bytes)d.ia=e;else if(e=g.words)for(d.ia=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.ia=Array(4*e.length),f=c=0;c>8&255,d.ia[f++]=e[c]>>16&255,d.ia[f++]=e[c]>>24&255;else d.ia=g;d.ka=g.symbols;d.ia.length?1==d.ia.length&&(n(d.ia[0]),d=null):(n("Empty resource: "+a),d=null)}catch(h){n("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;cb.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Ua=g.load;d.Ta=g.exec;if(e=g.bytes)d.ha=e;else if(e=g.words)for(d.ha=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.ha=Array(4*e.length),f=c=0;c>8&255,d.ha[f++]=e[c]>>16&255,d.ha[f++]=e[c]>>24&255;else d.ha=g;d.ka=g.symbols;d.ha.length?1==d.ha.length&&(n(d.ha[0]),d=null):(n("Empty resource: "+a),d=null)}catch(h){n("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;cb?this.Xa=this.id:(this.Ra=this.id.substr(0,b),this.Xa=this.id.substr(b+1));this[a]=c;this.v={ready:!1,Ia:!1,Ib:!1,ha:!1,error:!1};this.zb=null;this.v.error=!1;this.J={};this.i=null;this.la=d||0;t.push(this)}var cb=void 0,db={}; +function r(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Zb=b.comment;this.tc=b;b=this.id.indexOf(".");0>b?this.Za=this.id:(this.Ra=this.id.substr(0,b),this.Za=this.id.substr(b+1));this[a]=c;this.v={ready:!1,Ia:!1,Lb:!1,ga:!1,error:!1};this.Bb=null;this.v.error=!1;this.I={};this.i=null;this.la=d||0;t.push(this)}var cb=void 0,db={}; if(window){cb||(cb=window.location.search.substr(1));for(var eb,fb=/\+/g,gb=/([^&=]+)=?([^&]*)/g;eb=gb.exec(cb);)db[decodeURIComponent(eb[1].replace(fb," "))]=decodeURIComponent(eb[2].replace(fb," "))}function hb(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 u(a,b){b||(b=r);a.prototype=hb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var ib=window.PCjs.Machines||(window.PCjs.Machines={}),t=window.PCjs.Components||(window.PCjs.Components=[])}else ib={},t=[];function jb(a,b,c){ib[a]&&b&&(ib[a][b]=c)}function kb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>2;this.w=this.ua-1;this.B=this.H/this.ua|0;this.Ha=[];this.A=0;this.D=[];this.mc=[Ob,Pb,Qb,Rb];a=new I(this);Sb(a,this.i);this.W=Array(this.B);for(b=0;b>2;this.w=this.ua-1;this.C=this.H/this.ua|0;this.Ha=[];this.A=0;this.D=[];this.mc=[Ob,Pb,Qb,Rb];a=new I(this);Sb(a,this.i);this.W=Array(this.C);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.Ha[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.i&&D(this.i,64)&&C(this.i,e[4]+".readByte("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!0);this.i&&D(this.i,64)&&C(this.i,"warning: unconverted read access to byte @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c} function Pb(a,b,c){var d=!1,e=this.controller,f=e.Ha[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.Ha[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d?this.i&&D(this.i,64)&&C(this.i,f[4]+".writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!0,b),this.i&&D(this.i,64)&&C(this.i,"warning: unconverted write access to byte @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} function Qb(a,b){var c=-1,d=this.controller;(a=d.Ha[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));if(0<=c)return this.i&&D(this.i,64)&&C(this.i,a[4]+".readWord("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!1);this.i&&D(this.i,64)&&C(this.i,"warning: unconverted read access to word @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c} function Rb(a,b,c){var d=!1,e=this.controller;if(a=e.Ha[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d?this.i&&D(this.i,64)&&C(this.i,a[4]+".writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!1,b),this.i&&D(this.i,64)&&C(this.i,"warning: unconverted write access to word @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} function Vb(a,b){if(b!=a.g){var c;a.g&&(c=(1<>>a.ja;0g&&(q=g);if(!e&&m&&m.size){if(m.type==d){if(f+g<=m.C)return m.vb+=m.C-f,m.C=f,!0;if(f>=m.C+m.vb){q=m.size-(f-p);q>g&&(q=g);m.vb=f-m.C+q;f=p+a.ua;g-=q;h++;continue}}return ac(1,f,g)}f=new I(a,f,q,a.ua,d,e);Sb(f,a.i,m);a.W[h++]=f;f=p+a.ua;g-=q}if(0>=g){c/=1024;var v;e="";v?10>>=a.ja;0>>=a.ja;0>>this.ja].Eb(a&this.w,a)};k.Bb=function(a){this.A++;a=this.W[(a&this.f)>>>this.ja].Mb(a&this.w,a);this.A--;return a};k.na=function(a){return this.W[(a&this.f)>>>this.ja].oa(a&this.w,a)}; -k.pb=function(a){var b=a&this.w,c=(a&this.f)>>>this.ja;this.A++;a=this.W[c].Nb(b,a);this.A--;return a};k.Fb=function(a,b){this.W[(a&this.f)>>>this.ja].Hb(a&this.w,b&255,a)};k.Va=function(a,b){this.A++;this.W[(a&this.f)>>>this.ja].Sb(a&this.w,b&255,a);this.A--};k.Wa=function(a,b){this.W[(a&this.f)>>>this.ja].wb(a&this.w,b&65535,a)};k.Gb=function(a,b){var c=a&this.w,d=(a&this.f)>>>this.ja;this.A++;this.W[d].Tb(c,b&65535,a);this.A--}; -function cc(a){for(var b=0,c=[],d=0;da.b.bb)){var g=f[0]?f[0].bind(b):null,h=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!g&&m&&(g=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!h&&p&&(h=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));dc(a,e,e,g,h,m,p,f[4])}}}function fc(a,b){a.D.push(b)} -function gc(a,b){a.A||(a.i&&D(a.i,536870912)&&C(a.i,"memory fault on address "+J(a.i,b),!0,!0),a.b.ea(4,b))}function ac(a,b,c){n("Memory block error ("+a+": "+l(b)+","+l(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.g={data:0,Sd:0,Db:20,gd:0};this.f={Td:0,Rb:-1}}u(K);k=K.prototype; -k.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.Rb=hc(c,function(){e.f.Ka|=128;e.f.Ka&64&&(ic(e.b,e.f.hd),jc(e.b,e.f.Rb,1E3/60))});this.f.hd=sc(64,6);ec(b,this,L);fc(b,this.reset.bind(this));H(this)};k.reset=function(){this.g.Db=this.g.Db&-120|20;this.f.Ka=0};k.Dc=function(){var a=this.f.Ka;this.f.Ka&=-129;return a};k.rd=function(a){this.f.Ka=a;a&64&&jc(this.b,this.f.Rb,1E3/60);this.f.Ka=a&-129};k.wc=function(a){return(a?this.g.gd:this.g.data)&65535}; -k.kd=function(a){this.g.data=a};k.Fc=function(){var a=this.b;return a.F&62337|a.wa<<5|a.xa<<1};k.td=function(a){var b=this.b;a&=62337;if(b.F!=a){b.F=a;b.wa=a>>5&3;b.xa=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.La!=c&&(b.La=c,tc(b))}uc(this)};k.Gc=function(){var a=this.b.Na;a&65280&&(a=(a<<8|a>>8)&65535);return a};k.Hc=function(){return this.b.tb};k.Ic=function(){return this.b.Oa}; -k.ud=function(a){var b=this.b;1170>b.bb&&(a&=-49);b.Oa!=a&&(b.Oa=a,a&16?(b.$a=4194303,b.ya=3915776):(b.$a=262143,b.ya=253952),tc(b));uc(this)};function uc(a){a.g.Db=a.g.Db&-8|(a.b.La?a.b.Oa&16?1:2:4)}k.Wc=function(a){return this.b.T[1][a>>1&7]};k.Id=function(a,b){this.b.T[1][b>>1&7]=a&65295};k.Uc=function(a){return this.b.T[1][(a>>1&7)+8]};k.Gd=function(a,b){this.b.T[1][(b>>1&7)+8]=a&65295};k.Vc=function(a){return this.b.ta[1][a>>1&7]}; +function Yb(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.ia;0g&&(q=g);if(!e&&m&&m.size){if(m.type==d){if(f+g<=m.B)return m.xb+=m.B-f,m.B=f,!0;if(f>=m.B+m.xb){q=m.size-(f-p);q>g&&(q=g);m.xb=f-m.B+q;f=p+a.ua;g-=q;h++;continue}}return ac(1,f,g)}f=new I(a,f,q,a.ua,d,e);Sb(f,a.i,m);a.W[h++]=f;f=p+a.ua;g-=q}if(0>=g){c/=1024;var v;e="";v?10>>=a.ia;0>>=a.ia;0>>this.ia].Hb(a&this.w,a)};k.Db=function(a){this.A++;a=this.W[(a&this.f)>>>this.ia].Nb(a&this.w,a);this.A--;return a};k.na=function(a){return this.W[(a&this.f)>>>this.ia].oa(a&this.w,a)}; +k.rb=function(a){var b=a&this.w,c=(a&this.f)>>>this.ia;this.A++;a=this.W[c].Ob(b,a);this.A--;return a};k.Ib=function(a,b){this.W[(a&this.f)>>>this.ia].Kb(a&this.w,b&255,a)};k.Xa=function(a,b){this.A++;this.W[(a&this.f)>>>this.ia].Tb(a&this.w,b&255,a);this.A--};k.Ya=function(a,b){this.W[(a&this.f)>>>this.ia].yb(a&this.w,b&65535,a)};k.Jb=function(a,b){var c=a&this.w,d=(a&this.f)>>>this.ia;this.A++;this.W[d].Ub(c,b&65535,a);this.A--}; +function cc(a){for(var b=0,c=[],d=0;da.b.fb)){var g=f[0]?f[0].bind(b):null,h=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!g&&m&&(g=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!h&&p&&(h=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));dc(a,e,e,g,h,m,p,f[4])}}}function fc(a,b){a.D.push(b)} +function gc(a,b){a.A||(a.i&&D(a.i,536870912)&&C(a.i,"memory fault on address "+J(a.i,b),!0,!0),a.b.ea(4,b))}function ac(a,b,c){n("Memory block error ("+a+": "+l(b)+","+l(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.g={data:0,Sd:0,Gb:20,gd:0};this.f={Td:0,Sb:-1}}u(K);k=K.prototype; +k.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.Sb=hc(c,function(){e.f.Ka|=128;e.f.Ka&64&&(ic(e.b,e.f.hd),jc(e.b,e.f.Sb,1E3/60))});this.f.hd=kc(64,6);ec(b,this,L);fc(b,this.reset.bind(this));H(this)};k.reset=function(){this.g.Gb=this.g.Gb&-120|20;this.f.Ka=0};k.Dc=function(){var a=this.f.Ka;this.f.Ka&=-129;return a};k.rd=function(a){this.f.Ka=a;a&64&&jc(this.b,this.f.Sb,1E3/60);this.f.Ka=a&-129};k.wc=function(a){return(a?this.g.gd:this.g.data)&65535}; +k.kd=function(a){this.g.data=a};k.Fc=function(){var a=this.b;return a.F&62337|a.wa<<5|a.xa<<1};k.td=function(a){var b=this.b;a&=62337;if(b.F!=a){b.F=a;b.wa=a>>5&3;b.xa=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.La!=c&&(b.La=c,tc(b))}uc(this)};k.Gc=function(){var a=this.b.Na;a&65280&&(a=(a<<8|a>>8)&65535);return a};k.Hc=function(){return this.b.vb};k.Ic=function(){return this.b.Oa}; +k.ud=function(a){var b=this.b;1170>b.fb&&(a&=-49);b.Oa!=a&&(b.Oa=a,a&16?(b.bb=4194303,b.ya=3915776):(b.bb=262143,b.ya=253952),tc(b));uc(this)};function uc(a){a.g.Gb=a.g.Gb&-8|(a.b.La?a.b.Oa&16?1:2:4)}k.Wc=function(a){return this.b.T[1][a>>1&7]};k.Id=function(a,b){this.b.T[1][b>>1&7]=a&65295};k.Uc=function(a){return this.b.T[1][(a>>1&7)+8]};k.Gd=function(a,b){this.b.T[1][(b>>1&7)+8]=a&65295};k.Vc=function(a){return this.b.ta[1][a>>1&7]}; k.Hd=function(a,b){b=b>>1&7;this.b.ta[1][b]=a;this.b.T[1][b]&=65295};k.Tc=function(a){return this.b.ta[1][(a>>1&7)+8]};k.Fd=function(a,b){b=(b>>1&7)+8;this.b.ta[1][b]=a;this.b.T[1][b]&=65295};k.Cc=function(a){return this.b.T[0][a>>1&7]};k.qd=function(a,b){this.b.T[0][b>>1&7]=a&65295};k.Ac=function(a){return this.b.T[0][(a>>1&7)+8]};k.od=function(a,b){this.b.T[0][(b>>1&7)+8]=a&65295};k.Bc=function(a){return this.b.ta[0][a>>1&7]};k.pd=function(a,b){b=b>>1&7;this.b.ta[0][b]=a;this.b.T[0][b]&=65295}; k.zc=function(a){return this.b.ta[0][(a>>1&7)+8]};k.nd=function(a,b){b=(b>>1&7)+8;this.b.ta[0][b]=a;this.b.T[0][b]&=65295};k.bd=function(a){return this.b.T[3][a>>1&7]};k.Od=function(a,b){this.b.T[3][b>>1&7]=a&65295};k.$c=function(a){return this.b.T[3][(a>>1&7)+8]};k.Md=function(a,b){this.b.T[3][(b>>1&7)+8]=a&65295};k.ad=function(a){return this.b.ta[3][a>>1&7]};k.Nd=function(a,b){b=b>>1&7;this.b.ta[3][b]=a;this.b.T[3][b]&=65295};k.Zc=function(a){return this.b.ta[3][(a>>1&7)+8]}; -k.Ld=function(a,b){b=(b>>1&7)+8;this.b.ta[3][b]=a;this.b.T[3][b]&=65295};k.gb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};k.kb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};k.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};k.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};k.Qc=function(){return this.b.u[7]};k.Cd=function(a){this.b.u[7]=a};k.hb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]}; -k.lb=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};k.Oc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[1]};k.Ad=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[1]=a};k.Pc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[3]};k.Bd=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[3]=a};k.yc=function(a){return this.b.gc[a-65504>>1]};k.md=function(a,b){this.b.gc[b-65504>>1]=a};k.dc=function(a){return 65520==a?61183:0};k.jc=function(){}; -k.Yc=function(){return 1};k.Kd=function(){};k.xc=function(){return this.b.Z};k.ld=function(){this.b.Z=0};k.Ec=function(){return this.b.fc};k.sd=function(a,b){b&1||(a&=255);this.b.fc=a};k.Jc=function(a){return a?this.b.Pb:0};k.vd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Pb=a;b.G|=2};k.Xc=function(a){return a?this.b.Pa&65280:0};k.Jd=function(a){this.b.Pa=a|255};k.Mc=function(){return Lb(this.b)};k.yd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.G|=128}; +k.Ld=function(a,b){b=(b>>1&7)+8;this.b.ta[3][b]=a;this.b.T[3][b]&=65295};k.jb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};k.nb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};k.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};k.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};k.Qc=function(){return this.b.u[7]};k.Cd=function(a){this.b.u[7]=a};k.kb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]}; +k.ob=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};k.Oc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[1]};k.Ad=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[1]=a};k.Pc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[3]};k.Bd=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[3]=a};k.yc=function(a){return this.b.gc[a-65504>>1]};k.md=function(a,b){this.b.gc[b-65504>>1]=a};k.dc=function(a){return 65520==a?61183:0};k.jc=function(){}; +k.Yc=function(){return 1};k.Kd=function(){};k.xc=function(){return this.b.Z};k.ld=function(){this.b.Z=0};k.Ec=function(){return this.b.fc};k.sd=function(a,b){b&1||(a&=255);this.b.fc=a};k.Jc=function(a){return a?this.b.Qb:0};k.vd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Qb=a;b.G|=2};k.Xc=function(a){return a?this.b.Pa&65280:0};k.Jd=function(a){this.b.Pa=a|255};k.Mc=function(){return Lb(this.b)};k.yd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.G|=128}; k.ic=function(a,b){D(this)&&C(this,"writeIgnored("+na(b)+"): "+na(a),!0,!0)}; var M={},L=(M[62592]=[null,null,K.prototype.Wc,K.prototype.Id,"SISDR",1145],M[62608]=[null,null,K.prototype.Uc,K.prototype.Gd,"SDSDR",1145],M[62624]=[null,null,K.prototype.Vc,K.prototype.Hd,"SISAR",1145],M[62640]=[null,null,K.prototype.Tc,K.prototype.Fd,"SDSAR",1145],M[62656]=[null,null,K.prototype.Cc,K.prototype.qd,"KISDR",1145],M[62672]=[null,null,K.prototype.Ac,K.prototype.od,"KDSDR",1145],M[62688]=[null,null,K.prototype.Bc,K.prototype.pd,"KISAR",1145],M[62704]=[null,null,K.prototype.zc,K.prototype.nd, "KDSAR",1145],M[62798]=[null,null,K.prototype.Ic,K.prototype.ud,"MMR3",1145],M[65382]=[null,null,K.prototype.Dc,K.prototype.rd,"LKS"],M[65400]=[null,null,K.prototype.wc,K.prototype.kd,"CNSL"],M[65402]=[null,null,K.prototype.Fc,K.prototype.td,"MMR0",1145],M[65404]=[null,null,K.prototype.Gc,K.prototype.ic,"MMR1",1145],M[65406]=[null,null,K.prototype.Hc,K.prototype.ic,"MMR2",1145],M[65408]=[null,null,K.prototype.bd,K.prototype.Od,"UISDR",1145],M[65424]=[null,null,K.prototype.$c,K.prototype.Md,"UDSDR", -1145],M[65440]=[null,null,K.prototype.ad,K.prototype.Nd,"UISAR",1145],M[65456]=[null,null,K.prototype.Zc,K.prototype.Ld,"UDSAR",1145],M[65472]=[null,null,K.prototype.gb,K.prototype.kb,"R0SET0"],M[65473]=[null,null,K.prototype.gb,K.prototype.kb,"R1SET0"],M[65474]=[null,null,K.prototype.gb,K.prototype.kb,"R2SET0"],M[65475]=[null,null,K.prototype.gb,K.prototype.kb,"R3SET0"],M[65476]=[null,null,K.prototype.gb,K.prototype.kb,"R4SET0"],M[65477]=[null,null,K.prototype.gb,K.prototype.kb,"R5SET0"],M[65478]= -[null,null,K.prototype.Nc,K.prototype.zd,"R6KERNEL"],M[65479]=[null,null,K.prototype.Qc,K.prototype.Cd,"R7KERNEL"],M[65480]=[null,null,K.prototype.hb,K.prototype.lb,"R0SET1",1145],M[65481]=[null,null,K.prototype.hb,K.prototype.lb,"R1SET1",1145],M[65482]=[null,null,K.prototype.hb,K.prototype.lb,"R2SET1",1145],M[65483]=[null,null,K.prototype.hb,K.prototype.lb,"R3SET1",1145],M[65484]=[null,null,K.prototype.hb,K.prototype.lb,"R4SET1",1145],M[65485]=[null,null,K.prototype.hb,K.prototype.lb,"R5SET1",1145], +1145],M[65440]=[null,null,K.prototype.ad,K.prototype.Nd,"UISAR",1145],M[65456]=[null,null,K.prototype.Zc,K.prototype.Ld,"UDSAR",1145],M[65472]=[null,null,K.prototype.jb,K.prototype.nb,"R0SET0"],M[65473]=[null,null,K.prototype.jb,K.prototype.nb,"R1SET0"],M[65474]=[null,null,K.prototype.jb,K.prototype.nb,"R2SET0"],M[65475]=[null,null,K.prototype.jb,K.prototype.nb,"R3SET0"],M[65476]=[null,null,K.prototype.jb,K.prototype.nb,"R4SET0"],M[65477]=[null,null,K.prototype.jb,K.prototype.nb,"R5SET0"],M[65478]= +[null,null,K.prototype.Nc,K.prototype.zd,"R6KERNEL"],M[65479]=[null,null,K.prototype.Qc,K.prototype.Cd,"R7KERNEL"],M[65480]=[null,null,K.prototype.kb,K.prototype.ob,"R0SET1",1145],M[65481]=[null,null,K.prototype.kb,K.prototype.ob,"R1SET1",1145],M[65482]=[null,null,K.prototype.kb,K.prototype.ob,"R2SET1",1145],M[65483]=[null,null,K.prototype.kb,K.prototype.ob,"R3SET1",1145],M[65484]=[null,null,K.prototype.kb,K.prototype.ob,"R4SET1",1145],M[65485]=[null,null,K.prototype.kb,K.prototype.ob,"R5SET1",1145], M[65486]=[null,null,K.prototype.Oc,K.prototype.Ad,"R6SUPER",1145],M[65487]=[null,null,K.prototype.Pc,K.prototype.Bd,"R6USER",1145],M[65504]=[null,null,K.prototype.yc,K.prototype.md,"CTRL",1170],M[65520]=[null,null,K.prototype.dc,K.prototype.jc,"LSIZE",1170],M[65522]=[null,null,K.prototype.dc,K.prototype.jc,"HSIZE",1170],M[65524]=[null,null,K.prototype.Yc,K.prototype.Kd,"SYSID",1170],M[65526]=[null,null,K.prototype.xc,K.prototype.ld,"CPUERR",1170],M[65528]=[null,null,K.prototype.Ec,K.prototype.sd, "MB",1170],M[65530]=[null,null,K.prototype.Jc,K.prototype.vd,"PIR"],M[65532]=[null,null,K.prototype.Xc,K.prototype.Jd,"SL"],M[65534]=[null,null,K.prototype.Mc,K.prototype.yd,"PSW"],M);L[62594]=L[62592];L[62596]=L[62592];L[62598]=L[62592];L[62600]=L[62592];L[62602]=L[62592];L[62604]=L[62592];L[62606]=L[62592];L[62610]=L[62608];L[62612]=L[62608];L[62614]=L[62608];L[62616]=L[62608];L[62618]=L[62608];L[62620]=L[62608];L[62622]=L[62608];L[62626]=L[62624];L[62628]=L[62624];L[62630]=L[62624];L[62632]=L[62624]; L[62634]=L[62624];L[62636]=L[62624];L[62638]=L[62624];L[62642]=L[62640];L[62644]=L[62640];L[62646]=L[62640];L[62648]=L[62640];L[62650]=L[62640];L[62652]=L[62640];L[62654]=L[62640];L[62658]=L[62656];L[62660]=L[62656];L[62662]=L[62656];L[62664]=L[62656];L[62666]=L[62656];L[62668]=L[62656];L[62670]=L[62656];L[62674]=L[62672];L[62676]=L[62672];L[62678]=L[62672];L[62680]=L[62672];L[62682]=L[62672];L[62684]=L[62672];L[62686]=L[62672];L[62690]=L[62688];L[62692]=L[62688];L[62694]=L[62688];L[62696]=L[62688]; L[62698]=L[62688];L[62700]=L[62688];L[62702]=L[62688];L[62706]=L[62704];L[62708]=L[62704];L[62710]=L[62704];L[62712]=L[62704];L[62714]=L[62704];L[62716]=L[62704];L[62718]=L[62704];L[65410]=L[65408];L[65412]=L[65408];L[65414]=L[65408];L[65416]=L[65408];L[65418]=L[65408];L[65420]=L[65408];L[65422]=L[65408];L[65426]=L[65424];L[65428]=L[65424];L[65430]=L[65424];L[65432]=L[65424];L[65434]=L[65424];L[65436]=L[65424];L[65438]=L[65424];L[65442]=L[65440];L[65444]=L[65440];L[65446]=L[65440];L[65448]=L[65440]; L[65450]=L[65440];L[65452]=L[65440];L[65454]=L[65440];L[65458]=L[65456];L[65460]=L[65456];L[65462]=L[65456];L[65464]=L[65456];L[65466]=L[65456];L[65468]=L[65456];L[65470]=L[65456];L[65506]=L[65504];L[65508]=L[65504];L[65510]=L[65504];L[65512]=L[65504];L[65514]=L[65504];L[65516]=L[65504];L[65518]=L[65504];Ta(function(){for(var a=B(document,"pdp11","device"),b=0;b>1),this.b=new Int32Array(this.A,0,d>>2),Dc(this,zc?Ec:Fc);else{this.b=Array(d>>2);for(a=0;a>1),this.b=new Int32Array(this.A,0,d>>2),Dc(this,zc?Ec:Fc);else{this.b=Array(d>>2);for(a=0;a>2),b=0;b>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a,b){a&1&&gc(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},sa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= -this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ja=!0},O:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,1,c.M)&&c.da(!0)}return this.Mb(a,b)},ba:function(a,b){if(this.i&&null!=this.C){var c=this.i;Kc(c,this.C+a,2,c.M)&&c.da(!0)}return this.Nb(a,b)},qa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a, -1,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Sb(a,b,c)},xa:function(a,b,c){if(this.i&&null!=this.C){var d=this.i;Kc(d,this.C+a,2,d.B)&&d.da(!0)}this.f?this.D(a,b,c):this.Tb(a,b,c)},N:function(a){return this.B[a]},P:function(a,b){a=this.B[a];this.i&&D(this.i,128)&&C(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},aa:function(a,b){a&1&&gc(this.w,b);return this.F.getUint16(a,!0)},fa:function(a,b){a&1&&gc(this.w,b);a=this.I[a>>1];this.i&&D(this.i,128)&&C(this.i,"Memory.readWord("+ -J(this.i,b)+"): "+J(this.i,a),!0);return a},pa:function(a,b){this.B[a]=b;this.Ja=!0},Ra:function(a,b,c){this.B[a]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},wa:function(a,b,c){a&1&&gc(this.w,c);this.F.setUint16(a,b,!0);this.Ja=!0},ya:function(a,b,c){a&1&&gc(this.w,c);this.I[a>>1]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}}; -function Sb(a,b,c){a.i=b;a.g=a.J=0;c&&((a.g=c.g)&&Jc(a,Ic,!1),(a.J=c.J)&&Hc(a,Ic,!1))}function Lc(a,b){b?--a.J||(a.Hb=a.f?a.D:a.Sb,a.wb=a.f?a.H:a.Tb):--a.g||(a.Eb=a.Mb,a.oa=a.Nb)}function Hc(a,b,c){c&&a.J||(a.Hb=!a.f&&b[1]||a.D,a.wb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Sb=b[1]||a.D,a.Tb=b[3]||a.H}function Jc(a,b,c){c&&a.g||(a.Eb=b[0]||a.K,a.oa=b[2]||a.M);if(c||void 0===c)a.Mb=b[0]||a.K,a.Nb=b[2]||a.M}function Dc(a,b){b||(b=Mc);Jc(a,b,void 0);Hc(a,b,void 0)} -var Mc=[],Gc=[I.prototype.V,I.prototype.sa,I.prototype.ma,I.prototype.Xa],Ic=[I.prototype.O,I.prototype.qa,I.prototype.ba,I.prototype.xa];if(sb)var Fc=[I.prototype.N,I.prototype.pa,I.prototype.aa,I.prototype.wa],Ec=[I.prototype.P,I.prototype.Ra,I.prototype.fa,I.prototype.ya]; -function Nc(a,b){r.call(this,"CPU",a,Nc,1);var c=a.multiplier||1;this.Ga=a.cycles||b;this.Ma=c;this.Za=Math.round(this.Ga/1E4)/100;this.Ua=this.Za*this.Ma;this.v.ca=!1;this.v.Qb=!1;this.v.mb=a.autoStart;this.v.ab=!1;this.qb=this.ma=0;this.rb=a.csStart;this.cb=a.csInterval;this.eb=a.csStop;this.K=[];this.bc=this.fd.bind(this);H(this)}u(Nc);var Oc=["power","reset"];k=Nc.prototype; -k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.i=d;for(b=0;b=a.ma&&(a.ma+=a.cb,c=!0);0<=a.eb&&a.eb<=Uc(a)&&(a.cb=a.eb=-1,Rc(a),a.da(),c=!0);c&&a.j(Uc(a)+" cycles: checksum="+l(a.qb))}} -k.ra=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.v.ha)a=!0;else{var b=null,c,h=kb(a.id);for(c=0;ca.V/a.Ua?b=1:d=!0;a.Ma=b;b=a.Za*a.Ma;if(a.Ua!=b){a.Ua=b;b=a.Ua.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.D&&a.D.ub()}Wc(a,a.O);a.O=0;a.N=za();a.aa=0;Xc(a);return d}function hc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function jc(a,b,c,d){0<=b&&ba.K[b][0])&&(c=a.Ga*a.Ma/1E3*c|0,a.K[b][0]=c+Yc(a))} -function Zc(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function $c(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Yc(a,b){var c=a.ba-=a.b;a.b=0;b&&(a.ba=0);return c} -k.fd=function(){if(this.v.ca){this.nb>=this.Ga&&Xc(this,!0);this.sa=0;this.Fa=za();if(this.aa){var a=this.Fa-this.aa;a>this.Ab&&(this.N+=a,this.N>this.Fa&&(this.N=this.Fa))}try{do{var b=Zc(this,this.v.ab?1:this.Qa);try{this.jb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.sa+=b;this.O+=b;Tc(this,b);$c(this,b);this.pa-=b;if(0>=this.pa){this.pa+=this.Qa;15<=++this.Cb&&(this.D&&this.D.$(),this.Cb=0);break}}while(this.v.ca)}catch(e){this.da();this.D&&this.D.stop(za(),Uc(this));rb(this, -e.stack||e.message);return}if(this.v.ca){a=setTimeout;b=this.bc;this.aa=za();var c=this.Ab;this.sa&&(c=Math.round(c*this.sa/this.Qa));var c=c-(this.aa-this.Fa),d=this.aa-this.N;d&&(this.V=Math.round(this.O/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.Vc&&(this.N-=c),c=0;this.nb+=this.sa;this.aa+=c;a(b,c)}}}; -k.ib=function(a){if(qb(this))return!1;if(this.v.ca)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.ca=!0;this.v.Qb=!0;var b=this.J.run;b&&(b.textContent="Halt");this.D&&(a&&this.D.ub(!0),this.D.start(this.N,Uc(this)));setTimeout(this.bc,0);return!0};k.jb=function(){return 0};k.da=function(a){if(this.v.ca){Yc(this);Wc(this,this.O);this.O=0;this.v.ca=!1;var b=this.J.run;b&&(b.textContent="Run");this.D&&this.D.stop(za(),Uc(this))}this.v.complete=a}; -function ad(a){this.bb=+a.model||1170;this.xb=a.addrReset||0;Nc.call(this,a,6666667);this.decode=1120==this.bb?bd.bind(this):cd.bind(this);dd(this);this.A=0;this.P=null;this.v.complete=this.v.oc=!1}u(ad,Nc);k=ad.prototype;k.reset=function(){this.status("model "+this.bb);this.v.ca&&this.da();dd(this);Qc(this);this.v.error=!1;this.parent.reset.call(this)}; -function dd(a){a.R=65536;a.S=32768;a.X=65535;a.U=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.xb];a.Ea=[0,0,0,0,0,0];a.va=[0,0,0,0];a.B=0;a.xa=0;a.sc=[4,2,0,1];a.T=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.ta=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.gc=[0,0,0,0,0,0,0,0];a.fc=0;a.G=0;a.H=a.I=0;a.g=a.f=a.Ya=0;a.qa=-1;ed(a)}function ed(a){a.Pa=255;a.Z=0;a.Pb=0;a.F=0;a.Na=0;a.tb=0;a.Oa=0;a.La=0;a.wa=0;a.$a=262143;a.ya=253952;a.G|=2;a.w&&tc(a)}function tc(a){a.La?(a.M=65536,a.Y=a.rc,a.oa=a.cd,a.wb=a.Pd,Vb(a.w,a.Oa&16?22:18)):(a.M=0,a.Y=a.qc,a.oa=a.ec,a.wb=a.kc,Vb(a.w,16))}k.Zb=function(){return 0}; -k.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.fa,this.Ma]);a.set(2,cc(this.w));return a.data()};k.restore=function(a){var b=a[1];this.fa=b[1];Vc(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c>14&3;c=a.L>>14&3;a.B!=c&&(a.va[c]=a.u[6],a.u[6]=a.va[a.B]);a.L=b;a.G|=2}function P(a,b){a.G&128||(a.U=a.X=b,a.S=0)}function Dd(a,b,c){a.G&128||(a.U=a.X=a.R=b,a.S=c||0)}function Ed(a,b,c,d){a.G&128||(a.U=a.X=a.R=b,a.S=(c^b)&(d^b))}function Fd(a,b){a.G&128||(a.U=a.X=a.R=b,a.S=a.U^a.R>>1)} -function Gd(a,b,c,d){a.G&128||(a.U=a.X=a.R=b,a.S=(c^d)&(d^b))}k.ea=function(a,b){if(!this.A){var c=!1;0>this.qa?this.qa=Lb(this):this.B||(a=4,c=!0);this.F&57344||(this.Na=63222,this.tb=a);this.B=0;var d=this.oa(a|this.M),e=this.oa(a+2&65535|this.M);vc(this,e&-12289|this.qa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Hd(this,this.qa);Hd(this,this.u[7]);O(this,d);this.G&=-113;this.qa=-1;if(26!=b)throw a;}};function Id(a){var b=Jd(a),c=Jd(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);O(a,b);vc(a,c);a.G&=-17} -function Kd(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.B]||(d&=7);e=a.T[a.B][d];f=(a.ta[a.B][d]<<6)+(b&8191)&a.$a;if(ff){if(3932160<=f){f&=262143;var h=f>>13&31;31>h?a.Oa&32&&(f=a.uc[h]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? -192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.T[a.B][d]=e;if(4194170!==f||a.B)a.wa=a.B,a.xa=d;g&&(g&57344&&(0<=a.qa&&(g|=128),a.F&57344||(a.F=a.F|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.F&61440||!(4191360>f||4194239c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.oa(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.oa(e)|g; -a.b-=8;break;case 6:return e=a.oa(jd(a,2)),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=a.oa(jd(a,2)),e=e+a.u[c]&65535,e=a.oa(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.F&57344||(a.Na=a.Na<<8|f<<3&248|c);6==c&&!a.B&&d&4&&0>=f&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.G|=64));return e}k.Bb=function(a){if(!this.La)return this.w.Bb(a);this.A++;a=Ld(this,Kd(this,a,3));this.A--;return a}; -k.pb=function(a){if(!this.La)return this.w.pb(a);this.A++;a=this.ec(Kd(this,a,2));this.A--;return a};k.Va=function(a,b){this.La?(this.A++,Md(this,Kd(this,a,5),b),this.A--):this.w.Va(a,b)};k.Gb=function(a,b){this.La?(this.A++,this.kc(Kd(this,a,4),b),this.A--):this.w.Gb(a,b)};k.qc=function(a,b,c){return Nd(this,a,b,c)};k.rc=function(a,b,c){return Kd(this,Nd(this,a,b,c),c)};k.ec=function(a){return this.w.na(a)};k.cd=function(a){return this.w.na(Kd(this,a,2))};k.kc=function(a,b){this.w.Wa(a,b&65535)}; -k.Pd=function(a,b){this.w.Wa(Kd(this,a,4),b)};function Od(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Nd(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.B=a.L>>12&3,c=a.oa(d|c&a.M),a.B=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.va[a.L>>12&3];return c}function Pd(a,b,c,d){a.F&57344||(a.Na=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Nd(a,b,e,4),c&65536||(e&=65535),a.B=a.L>>12&3,e=Kd(a,e|c&65536,4),a.B=a.L>>14&3,a.w.Wa(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.va[a.L>>12&3]=d} -function Qd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?Ld(a,a.Y(b,c,3)):a.u[c]&255}function Rd(a,b){b>>=6;var c=a.I=b&7;return(b=a.H=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]}function Sd(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Nd(a,b,c,8)}function Td(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Ld(a,a.Y(b,c,3)):a.u[c]&255}function Ud(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]} -function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Ya=a.Y(b,e,7),Md(a,e,d.call(a,c,Ld(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Y(b,e,6),a.w.Wa(e,d.call(a,c,a.w.na(e)))):a.u[e]=d.call(a,c,a.u[e])}function Vd(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Md(a,a.Y(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Wd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.Wa(a.Y(b,d,4),c):a.u[d]=c&65535;return c} -function S(a,b,c){c&&(O(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3} -k.jb=function(a){this.v.complete=!0;var b=this.v.oc=this.i&&Xd(this.i),c=a?this.v.Qb?0:1:-1;this.v.Qb=!1;this.ba=this.b=a;do{if(b){if(Yd(this.i,this.u[7],c)){this.da();break}c=1}if(this.G&&(this.G&112&&(this.G&32?this.ea(168,28):this.G&64?this.ea(4,30):this.G&16&&this.ea(12,32),this.G&=-113),this.G&7))if(this.G&2){this.G&=-3;var d=160,e=(this.Pb&224)>>5;if(a=this.P&&this.P.fb>e?this.P:null)d=a.jd,e=a.fb;e>(this.L&224)>>5?(this.G&4&&(jd(this,2),this.G&=-5),this.ea(d,26),e=!0):e=!1;if(e&&a)if(e=this.P, -e==a)this.P=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.G&1&&this.G++;this.G=this.G&7|this.L&16;this.decode(id(this))}while(0>1|b<<16;Fd(this,a);return a&65535}function de(a,b){a=b&2048|b>>1|b<<8;Fd(this,a<<8);return a&255}function ee(a,b){a=b&~a;P(this,a);return a}function fe(a,b){a=b&~a;P(this,a<<8);return a}function ge(a,b){a|=b;P(this,a);return a}function he(a,b){a|=b;P(this,a<<8);return a}function ie(a,b){a=~b|65536;Dd(this,a);return a&65535} -function je(a,b){a=~b|256;Dd(this,a<<8);return a&255}function ke(a,b){a=b-a;this.G&128||(this.U=this.X=a,this.S=b&(b^a));return a&65535}function le(a,b){a=b-a;var c=a<<8;b<<=8;this.G&128||(this.U=this.X=c,this.S=b&(b^c));return a&255}function me(a,b){a=b+a;this.G&128||(this.U=this.X=a,this.S=a&(b^a));return a&65535}function ne(a,b){a=b+a;var c=a<<8;this.G&128||(this.U=this.X=c,this.S=c&(b<<8^c));return a&255}function oe(a,b){a=-b;Dd(this,a,a&b&32768);return a&65535} -function pe(a,b){a=-b;Dd(this,a<<8,(a&b&128)<<8);return a&255}function qe(a,b){a=b<<1|this.R>>16&1;Fd(this,a);return a&65535}function re(a,b){a=b<<1|this.R>>16&1;Fd(this,a<<8);return a&255}function se(a,b){a=(this.R&65536|b)>>1|b<<16;Fd(this,a);return a&65535}function te(a,b){a=((this.R&65536)>>8|b)>>1|b<<8;Fd(this,a<<8);return a&255}function ue(a,b){var c=b-a;Gd(this,c,a,b);return c&65535}function ve(a,b){var c=b-a;Gd(this,c<<8,a<<8,b<<8);return c&255} -function we(a,b){this.G&128||(this.U=this.X=b&65280,this.S=this.R=0);return(b<<8|b>>8)&65535}function xe(a,b){a^=b;P(this,a);return a&65535}function ye(a){R(this,a,Rd(this,a),Zd);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} -function ze(a){var b=Ud(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.R=this.S=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.S=32768)}this.u[a]=c&65535;this.U=this.X=c;this.b-=(this.g?6:7)+b} -function Ae(a){var b=Ud(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.R=this.S=0;b&=63;if(b&32){b=64-b;32>b-1;this.R=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.u[a|1]=d&65535;this.U=d>>16;this.X=d>>16|d;this.b-=(this.g?6:7)+b}function Be(a){S(this,a,!fd(this))}function Ce(a){S(this,a,fd(this))} -function De(a){R(this,a,Rd(this,a),ee);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ee(a){Q(this,a,Qd(this,a),fe);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Fe(a){R(this,a,Rd(this,a),ge);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ge(a){Q(this,a,Qd(this,a),he);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} -function He(a){P(this,Rd(this,a)&Ud(this,a));this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ie(a){P(this,(Qd(this,a)&Td(this,a))<<8);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Je(a){S(this,a,hd(this))}function Ke(a){S(this,a,!this.Da()==!gd(this))}function Le(a){S(this,a,!hd(this)&&!this.Da()==!gd(this))}function Me(a){S(this,a,!fd(this)&&!hd(this))}function Ne(a){S(this,a,hd(this)||!this.Da()!=!gd(this))} -function Oe(a){S(this,a,fd(this)||hd(this))}function Pe(a){S(this,a,!this.Da()!=!gd(this))}function Qe(a){S(this,a,this.Da())}function Re(a){S(this,a,!hd(this))}function Se(a){S(this,a,!this.Da())}function Te(){this.ea(12,1);this.b-=5}function Ue(a){S(this,a,!0)}function Ve(a){S(this,a,!gd(this))}function We(a){S(this,a,gd(this))}function T(a){a&1&&(this.R=0);a&2&&(this.S=0);a&4&&(this.X=1);a&8&&(this.U=0);this.b-=5} -function Xe(a){var b=Rd(this,a);a=Ud(this,a);Gd(this,b-a,a,b);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ye(a){var b=Qd(this,a)<<8;a=Td(this,a)<<8;Gd(this,b-a,a,b);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)} -function Ze(a){var b=Ud(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.R=this.S=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.X=d>>16|d,this.U=d>>16):(this.S=32768,this.X=d>>15|d,this.U=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.U=0,this.S=32768,this.R=65536,this.b-=7}function $e(){this.ea(24,2);this.b-=25} -function af(){this.L&49152?(this.Z|=128,this.ea(4,3)):this.i?$b(this.i):this.da();this.b-=7}function bf(){this.ea(16,4);this.b-=25}var cf=[0,7,7,10,7,11,9,13];function df(a){var b=this.b;O(this,Sd(this,a));this.b=b-cf[this.g]}var ef=[0,14,14,17,14,18,16,20];function ff(a){var b=this.b,c=Sd(this,a);a=a>>6&7;Hd(this,this.u[a]);this.u[a]=this.u[7];O(this,c);this.b=b-ef[this.g]}var gf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17]; -function hf(a){var b=Rd(this,a),c=this.b;P(this,Wd(this,a,b));this.b=c-gf[(this.H?8:0)+this.g]+(7!=this.f||this.g?0:2)}function jf(a){var b=Qd(this,a);P(this,Vd(this,a,b,1)<<8);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var kf=[7,13,13,17,14,18,17,21]; -function lf(a){var b=Ud(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.G&128||(this.U=b>>16,this.X=this.U|b,this.S=0,this.R=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)O(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function rf(a){R(this,a,Rd(this,a),ue);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function sf(a){R(this,a,0,we);this.b-=this.g?9:3+(7==this.f?2:0)}function tf(){this.ea(28,5);this.b-=5}function uf(){this.G&4||this.D.$();this.G|=4;jd(this,-2);this.b-=3} -function vf(a){R(this,a,Rd(this,a),xe);this.b-=this.g?9:3+(7==this.f?2:0)}function U(a){var b;if(b=this.i)b=this.i,C(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function bd(a){wf[a>>12].call(this,a)}function xf(a){yf[a>>6&3].call(this,a)}function zf(a){Af[a>>6&3].call(this,a)}function Bf(a){Cf[a>>6&3].call(this,a)}function Df(a){Ef[a&15].call(this,a)}function Ff(a){Gf[a&15].call(this,a)}function Hf(a){If[a>>6&3].call(this,a)}function Jf(a){Kf[a>>6&3].call(this,a)} -function Lf(a){Mf[a>>6&3].call(this,a)} -var wf=[function(a){Nf[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,ye,U,function(a){Of[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,rf,U],Nf=[function(a){Pf[a>>4&15].call(this,a)},Ue,Re,Je,Ke,Pe,Le,Ne,ff,ff,xf,zf,Bf,U,U,U],yf=[function(a){Dd(this,Wd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,ke);this.b-=this.g?9:3+(7==this.f?2:0)}],Af=[function(a){R(this,a,0, -oe);this.b-=this.g?11:6},function(a){R(this,a,fd(this)?1:0,Zd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,fd(this)?1:0,ue);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Ud(this,a);Dd(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Cf=[function(a){R(this,a,0,se);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,qe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ce);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,ae);this.b-=this.g?9:3+(7==this.f?2:0)}], -Pf=[function(a){ig[a&15].call(this,a)},U,U,U,df,df,df,df,pf,U,Df,Ff,sf,sf,sf,sf],ig=[af,uf,of,Te,bf,nf,U,U,U,U,U,U,U,U,U,U],Ef=[mf,function(){this.R=0;this.b-=5},function(){this.S=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.U=0;this.b-=5},T,T,T,T,T,T,T],Gf=[mf,function(){this.R=65536;this.b-=5},function(){this.S=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.U=32768;this.b-=5},W,W,W,W,W,W,W],Of=[Se,Qe,Me,Oe,Ve,We,Be,Ce,$e,tf,Hf,Jf,Lf,U,U,U],If=[function(a){Dd(this, -Vd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,je);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,ne);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,le);this.b-=this.g?9:3+(7==this.f?2:0)}],Kf=[function(a){Q(this,a,0,pe);this.b-=this.g?11:6},function(a){Q(this,a,fd(this)?1:0,$d);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,fd(this)?1:0,ve);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Td(this,a);Dd(this,a<<8);this.b-=this.g?4:3+(7== -this.f?2:0)}],Mf=[function(a){Q(this,a,0,te);this.b-=this.g?9+(this.Ya&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,de);this.b-=this.g?9+(this.Ya&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)}];function cd(a){jg[a>>12].call(this,a)} -var jg=[function(a){kg[a>>8&15].call(this,a)},hf,Xe,He,De,Fe,ye,function(a){lg[a>>8&15].call(this,a)},function(a){mg[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,rf,U],kg=[function(a){ng[a>>4&15].call(this,a)},Ue,Re,Je,Ke,Pe,Le,Ne,ff,ff,xf,zf,Bf,function(a){og[a>>6&3].call(this,a)},U,U],og=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.oa(a|this.M);O(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Od(this,a,0);Hd(this,a);P(this,a);this.b-=11},function(a){var b=Jd(this),c= -this.b;Pd(this,a,0,b);P(this,b);this.b=c-kf[this.g]},function(a){P(this,Wd(this,a,this.Da?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],ng=[function(a){pg[a&15].call(this,a)},U,U,U,df,df,df,df,pf,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.G|=1),this.b-=5):U.call(this,a)},Df,Ff,sf,sf,sf,sf],pg=[af,uf,of,Te,bf,nf,function(){Id(this);this.b-=13},U,U,U,U,U,U,U,U,U],lg=[lf,lf,Ze,Ze,ze,ze,Ae,Ae,vf,vf,U,U,U,U,qf,qf],mg=[Se,Qe,Me,Oe,Ve,We,Be,Ce,$e,tf,Hf,Jf,Lf,function(a){qg[a>>6&3].call(this, -a)},U,U],qg=[U,function(a){a=Od(this,a,65536);Hd(this,a);P(this,a);this.b-=11},function(a){var b=Jd(this),c=this.b;Pd(this,a,65536,b);P(this,b);this.b=c-kf[this.g]},U]; -function rg(a){r.call(this,"ROM",a,rg);this.ka=this.f=null;this.B=a.addr;this.g=a.size;this.A=a.alias;this.D=a.file;this.F=oa(this.D);if(this.D){a=this.D;var b=pa(this.F);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.D+"&format=bytes&decimal=true");var c=this;Ba(a,null,!0,function(a,b,f){f?c.ga("Unable to load ROM resource (error "+f+": "+a+")"):(jb(c.Ra,a,b),(a=Ca(a,b))?(c.f=a.ia,c.ka=a.ka):c.D=null,sg(c))})}}u(rg);rg.prototype.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;sg(this)}; -rg.prototype.Aa=function(){if(this.ka){if(this.i){var a=this.i,b=this.id,c=this.B,d=this.g,e=this.ka,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var m=h.o,p=h.a;if(void 0!==m){var q=f,m=[m>>>0,g],v=ya(q,m,a.Vb);0>v&&q.splice(-(v+1),0,m)}p&&(h.a=p.replace(/''/g,'"'))}a.F.push({Ud:b,C:c,vc:d,ka:e,Ub:f})}delete this.ka}return!0};rg.prototype.za=function(){return!0}; -function sg(a){if(!pb(a)){if(a.D){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if(a.f.length!=a.g)rb(a,"ROM size ("+l(a.f.length,8,!0)+") does not match specified size ("+l(a.g,8,!0)+")");else{var b;b=a.B;if(Yb(a.w,b,a.g,Cc)){var c;for(c=0;c=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=va(b[0]);if(c!=this.Xa)return;b=va(b[1]);if(this.I=lb(b)){var d=this.I.exports;if(d){var e=d.connect;e&&e.call(this.I);if(this.K=d.receiveData){this.status(this.Ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.Aa=function(a,b){if(!b)if(this.cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -k.za=function(a){return a?this.save():!0};k.reset=function(){yg(this)};k.save=function(){var a=new N(this);a.set(0,[]);return a.data()};k.restore=function(){return yg(this)};function yg(a){a.N=0;a.f=0;a.g=128;a.B=[];return!0}k.Ob=function(a){if("number"==typeof a)this.B.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.O||8,c=a-this.H%a,this.O&&(b=ua("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.A.value+=b;this.A.scrollTop=this.A.scrollHeight;this.H+=c}else if(null!=this.F){if(10==a||1024<=this.F.length)this.j(this.F), -this.F="";10!=a&&(this.F+=String.fromCharCode(a))}this.g&=-129;jc(this.b,this.V,1)}};var zg={},xg=(zg[65392]=[null,null,X.prototype.Sc,X.prototype.Ed,"RCSR"],zg[65394]=[null,null,X.prototype.Rc,X.prototype.Dd,"RBUF"],zg[65396]=[null,null,X.prototype.ed,X.prototype.Rd,"XCSR"],zg[65398]=[null,null,X.prototype.dd,X.prototype.Qd,"XBUF"],zg);Ta(function(){for(var a=B(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.J[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.J[b]=c,c.onclick= -function(){var a=d.J.listTapes;a&&Cg(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(this.N)return this.J[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Cg(d,oa(b,!0),b,1,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; -k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;var e=this;if((this.g=Pc(this.D,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){n("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.P=sc(56,4);this.O=hc(this.b,function(){Dg(e)});ec(b,this,Eg);Fg(this,"None",Ag,!0);this.N&&Fg(this,"Local Tape","?");Fg(this,"Remote Tape","??");Gg(this)||H(this)}; -k.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.za=function(a){return a?this.save():!0};k.reset=function(){this.f&=-2241;this.I=0};function Gg(a){a.A=0;if(a.g){var b=a.g.path,c;if(!(c=a.g.name))a:{if((c=a.J.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(e=pa(c),f="json"==e||"gz"==e?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(f,null,!0,function(e,f,g){var h=0>g&&a.D&&!a.D.v.ha;g?a.ga('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(jb(a.Ra,e,f),(e=Ca(e,f))&&Kg(a,c,d,e.ia));a.v.Ia= -!1;a.A&&(a.A--,a.A||H(a));Lg(a)})}function Fg(a,b,c,d){if((a=a.J.listTapes)&&a.options){for(var e=0;e=d.length){c=!0;break}b+=2;for(var g=d[b++]&255|(d[b++]&255)<<8,h=d[b++]&255|(d[b++]&255)<<8,f=f+((g&255)+(g>>8)+(h&255)+(h>>8)),m=b,p=g-=6;0=d.length){c=!0;break}f+=d[b++]&255;if(f&255){c=!0;break}if(p)for(;p--;)a.b.Va(h++,d[m++]&255);else h&1||O(a.b,h);e++}else b++;else b+=2}c&&(a.B="",a.F=Ag,a.H=Bg)}else a.M= -0,a.K=d}function Ig(a,b){if(a.B||!1===b)a.B="",b||(a.F=Ag,a.H=Bg,Lg(a))}k.save=function(){return(new N(this)).data()};k.restore=function(){return!0};function Dg(a){1==(a.f&32769)&&!(a.f&128)&&a.M=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Ng.prototype.$b=function(){return-1};Ng.prototype.ac=function(){}; -function Pg(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} -function Qg(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; +I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(sb)for(a=Array(this.size>>2),b=0;b>8,c)},U:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a,b){a&1&&gc(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},sa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= +this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ja=!0},O:function(a,b){if(this.i&&null!=this.B){var c=this.i;Kc(c,this.B+a,1,c.M)&&c.aa(!0)}return this.Nb(a,b)},ca:function(a,b){if(this.i&&null!=this.B){var c=this.i;Kc(c,this.B+a,2,c.M)&&c.aa(!0)}return this.Ob(a,b)},qa:function(a,b,c){if(this.i&&null!=this.B){var d=this.i;Kc(d,this.B+a, +1,d.C)&&d.aa(!0)}this.f?this.D(a,b,c):this.Tb(a,b,c)},xa:function(a,b,c){if(this.i&&null!=this.B){var d=this.i;Kc(d,this.B+a,2,d.C)&&d.aa(!0)}this.f?this.D(a,b,c):this.Ub(a,b,c)},N:function(a){return this.C[a]},P:function(a,b){a=this.C[a];this.i&&D(this.i,128)&&C(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},ba:function(a,b){a&1&&gc(this.w,b);return this.F.getUint16(a,!0)},fa:function(a,b){a&1&&gc(this.w,b);a=this.J[a>>1];this.i&&D(this.i,128)&&C(this.i,"Memory.readWord("+ +J(this.i,b)+"): "+J(this.i,a),!0);return a},pa:function(a,b){this.C[a]=b;this.Ja=!0},Ra:function(a,b,c){this.C[a]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},wa:function(a,b,c){a&1&&gc(this.w,c);this.F.setUint16(a,b,!0);this.Ja=!0},ya:function(a,b,c){a&1&&gc(this.w,c);this.J[a>>1]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}}; +function Sb(a,b,c){a.i=b;a.g=a.I=0;c&&((a.g=c.g)&&Jc(a,Ic,!1),(a.I=c.I)&&Hc(a,Ic,!1))}function Lc(a,b){b?--a.I||(a.Kb=a.f?a.D:a.Tb,a.yb=a.f?a.H:a.Ub):--a.g||(a.Hb=a.Nb,a.oa=a.Ob)}function Hc(a,b,c){c&&a.I||(a.Kb=!a.f&&b[1]||a.D,a.yb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Tb=b[1]||a.D,a.Ub=b[3]||a.H}function Jc(a,b,c){c&&a.g||(a.Hb=b[0]||a.K,a.oa=b[2]||a.M);if(c||void 0===c)a.Nb=b[0]||a.K,a.Ob=b[2]||a.M}function Dc(a,b){b||(b=Mc);Jc(a,b,void 0);Hc(a,b,void 0)} +var Mc=[],Gc=[I.prototype.U,I.prototype.sa,I.prototype.ma,I.prototype.Za],Ic=[I.prototype.O,I.prototype.qa,I.prototype.ca,I.prototype.xa];if(sb)var Fc=[I.prototype.N,I.prototype.pa,I.prototype.ba,I.prototype.wa],Ec=[I.prototype.P,I.prototype.Ra,I.prototype.fa,I.prototype.ya]; +function Nc(a,b){r.call(this,"CPU",a,Nc,1);var c=a.multiplier||1;this.Ga=a.cycles||b;this.Ma=c;this.ab=Math.round(this.Ga/1E4)/100;this.Wa=this.ab*this.Ma;this.v.da=!1;this.v.Rb=!1;this.v.pb=a.autoStart;this.v.cb=!1;this.sb=this.ma=0;this.tb=a.csStart;this.gb=a.csInterval;this.hb=a.csStop;this.K=[];this.Fb=this.fd.bind(this);H(this)}u(Nc);var Oc=["power","reset"];k=Nc.prototype; +k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.i=d;for(b=0;b=a.ma&&(a.ma+=a.gb,c=!0);0<=a.hb&&a.hb<=Uc(a)&&(a.gb=a.hb=-1,Rc(a),a.aa(),c=!0);c&&a.j(Uc(a)+" cycles: checksum="+l(a.sb))}} +k.ra=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.I[b]=c,!0;case "run":return this.I[b]=c,c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.v.ga)a=!0;else{var b=null,c,h=kb(a.id);for(c=0;ca.U/a.Wa?b=1:d=!0;a.Ma=b;b=a.ab*a.Ma;if(a.Wa!=b){a.Wa=b;b=a.Wa.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.D&&a.D.wb()}Wc(a,a.O);a.O=0;a.N=za();a.ba=0;Xc(a);return d}function hc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function jc(a,b,c,d){0<=b&&ba.K[b][0])&&(c=a.Ga*a.Ma/1E3*c|0,a.K[b][0]=c+Yc(a))} +function Zc(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function $c(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Yc(a,b){var c=a.ca-=a.b;a.b=0;b&&(a.ca=0);return c} +k.fd=function(){if(this.v.da){this.eb>=this.Ga&&Xc(this,!0);this.sa=0;this.Fa=za();if(this.ba){var a=this.Fa-this.ba;a>this.Cb&&(this.N+=a,this.N>this.Fa&&(this.N=this.Fa))}try{do{var b=Zc(this,this.v.cb?1:this.Qa);try{this.mb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.sa+=b;this.O+=b;Tc(this,b);$c(this,b);this.pa-=b;if(0>=this.pa){this.pa+=this.Qa;15<=++this.Eb&&(this.D&&this.D.$(),this.Eb=0);break}}while(this.v.da)}catch(e){this.aa();this.D&&this.D.stop(za(),Uc(this));rb(this, +e.stack||e.message);return}if(this.v.da){a=setTimeout;b=this.Fb;this.ba=za();var c=this.Cb;this.sa&&(c=Math.round(c*this.sa/this.Qa));var c=c-(this.ba-this.Fa),d=this.ba-this.N;d&&(this.U=Math.round(this.O/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.Uc&&(this.N-=c),c=0;this.eb+=this.sa;this.ba+=c;a(b,c)}}}; +k.lb=function(a){if(qb(this))return!1;if(this.v.da)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.da=!0;this.v.Rb=!0;var b=this.I.run;b&&(b.textContent="Halt");this.D&&(a&&this.D.wb(!0),this.D.start(this.N,Uc(this)));setTimeout(this.Fb,0);return!0};k.mb=function(){return 0};k.aa=function(a){if(this.v.da){Yc(this);Wc(this,this.O);this.O=0;this.v.da=!1;var b=this.I.run;b&&(b.textContent="Run");this.D&&this.D.stop(za(),Uc(this))}this.v.complete=a}; +function ad(a){this.fb=+a.model||1170;this.zb=a.addrReset||0;Nc.call(this,a,6666667);this.decode=1120==this.fb?bd.bind(this):cd.bind(this);dd(this);this.A=0;this.P=null;this.v.complete=this.v.oc=!1}u(ad,Nc);k=ad.prototype;k.reset=function(){this.status("model "+this.fb);this.v.da&&this.aa();dd(this);Qc(this);this.v.error=!1;this.parent.reset.call(this)}; +function dd(a){a.R=65536;a.S=32768;a.X=65535;a.V=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.zb];a.Ea=[0,0,0,0,0,0];a.va=[0,0,0,0];a.C=0;a.xa=0;a.sc=[4,2,0,1];a.T=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.ta=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.gc=[0,0,0,0,0,0,0,0];a.fc=0;a.G=0;a.H=a.J=0;a.g=a.f=a.$a=0;a.qa=-1;ed(a)}function ed(a){a.Pa=255;a.Z=0;a.Qb=0;a.F=0;a.Na=0;a.vb=0;a.Oa=0;a.La=0;a.wa=0;a.bb=262143;a.ya=253952;a.G|=2;a.w&&tc(a)}function tc(a){a.La?(a.M=65536,a.Y=a.rc,a.oa=a.cd,a.yb=a.Pd,Vb(a.w,a.Oa&16?22:18)):(a.M=0,a.Y=a.qc,a.oa=a.ec,a.yb=a.kc,Vb(a.w,16))}function fd(a,b){a.zb=b;N(a,b);a.i&&(a.aa(),a.i.$())}k.$b=function(){return 0}; +k.save=function(){var a=new O(this);a.set(0,[]);a.set(1,[this.fa,this.Ma]);a.set(2,cc(this.w));return a.data()};k.restore=function(a){var b=a[1];this.fa=b[1];Vc(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c>14&3;c=a.L>>14&3;a.C!=c&&(a.va[c]=a.u[6],a.u[6]=a.va[a.C]);a.L=b;a.G|=2}function P(a,b){a.G&128||(a.V=a.X=b,a.S=0)}function Ed(a,b,c){a.G&128||(a.V=a.X=a.R=b,a.S=c||0)}function Fd(a,b,c,d){a.G&128||(a.V=a.X=a.R=b,a.S=(c^b)&(d^b))}function Gd(a,b){a.G&128||(a.V=a.X=a.R=b,a.S=a.V^a.R>>1)} +function Hd(a,b,c,d){a.G&128||(a.V=a.X=a.R=b,a.S=(c^d)&(d^b))}k.ea=function(a,b){if(!this.A){var c=!1;0>this.qa?this.qa=Lb(this):this.C||(a=4,c=!0);this.F&57344||(this.Na=63222,this.vb=a);this.C=0;var d=this.oa(a|this.M),e=this.oa(a+2&65535|this.M);vc(this,e&-12289|this.qa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Id(this,this.qa);Id(this,this.u[7]);N(this,d);this.G&=-113;this.qa=-1;if(26!=b)throw a;}};function Jd(a){var b=Kd(a),c=Kd(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);N(a,b);vc(a,c);a.G&=-17} +function Ld(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.C]||(d&=7);e=a.T[a.C][d];f=(a.ta[a.C][d]<<6)+(b&8191)&a.bb;if(ff){if(3932160<=f){f&=262143;var h=f>>13&31;31>h?a.Oa&32&&(f=a.uc[h]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? +192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.T[a.C][d]=e;if(4194170!==f||a.C)a.wa=a.C,a.xa=d;g&&(g&57344&&(0<=a.qa&&(g|=128),a.F&57344||(a.F=a.F|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.F&61440||!(4191360>f||4194239c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.oa(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.oa(e)|g; +a.b-=8;break;case 6:return e=a.oa(Dd(a,2)),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=a.oa(Dd(a,2)),e=e+a.u[c]&65535,e=a.oa(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.F&57344||(a.Na=a.Na<<8|f<<3&248|c);6==c&&!a.C&&d&4&&0>=f&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.G|=64));return e}k.Db=function(a){if(!this.La)return this.w.Db(a);this.A++;a=Md(this,Ld(this,a,3));this.A--;return a}; +k.rb=function(a){if(!this.La)return this.w.rb(a);this.A++;a=this.ec(Ld(this,a,2));this.A--;return a};k.Xa=function(a,b){this.La?(this.A++,Nd(this,Ld(this,a,5),b),this.A--):this.w.Xa(a,b)};k.Jb=function(a,b){this.La?(this.A++,this.kc(Ld(this,a,4),b),this.A--):this.w.Jb(a,b)};k.qc=function(a,b,c){return Od(this,a,b,c)};k.rc=function(a,b,c){return Ld(this,Od(this,a,b,c),c)};k.ec=function(a){return this.w.na(a)};k.cd=function(a){return this.w.na(Ld(this,a,2))};k.kc=function(a,b){this.w.Ya(a,b&65535)}; +k.Pd=function(a,b){this.w.Ya(Ld(this,a,4),b)};function Pd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Od(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.C=a.L>>12&3,c=a.oa(d|c&a.M),a.C=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.va[a.L>>12&3];return c}function Qd(a,b,c,d){a.F&57344||(a.Na=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Od(a,b,e,4),c&65536||(e&=65535),a.C=a.L>>12&3,e=Ld(a,e|c&65536,4),a.C=a.L>>14&3,a.w.Ya(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.va[a.L>>12&3]=d} +function Rd(a,b){b>>=6;var c=a.J=b&7;return(b=a.H=(b&56)>>3)?Md(a,a.Y(b,c,3)):a.u[c]&255}function Sd(a,b){b>>=6;var c=a.J=b&7;return(b=a.H=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]}function Td(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Od(a,b,c,8)}function Ud(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Md(a,a.Y(b,c,3)):a.u[c]&255}function Vd(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]} +function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.$a=a.Y(b,e,7),Nd(a,e,d.call(a,c,Md(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Y(b,e,6),a.w.Ya(e,d.call(a,c,a.w.na(e)))):a.u[e]=d.call(a,c,a.u[e])}function Wd(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Nd(a,a.Y(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Xd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.Ya(a.Y(b,d,4),c):a.u[d]=c&65535;return c} +function S(a,b,c){c&&(N(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3} +k.mb=function(a){this.v.complete=!0;var b=this.v.oc=this.i&&Yd(this.i),c=a?this.v.Rb?0:1:-1;this.v.Rb=!1;this.ca=this.b=a;do{if(b){if(Zd(this.i,this.u[7],c)){this.aa();break}c=1}if(this.G&&(this.G&112&&(this.G&32?this.ea(168,28):this.G&64?this.ea(4,30):this.G&16&&this.ea(12,32),this.G&=-113),this.G&7))if(this.G&2){this.G&=-3;var d=160,e=(this.Qb&224)>>5;if(a=this.P&&this.P.ib>e?this.P:null)d=a.jd,e=a.ib;e>(this.L&224)>>5?(this.G&4&&(Dd(this,2),this.G&=-5),this.ea(d,26),e=!0):e=!1;if(e&&a)if(e=this.P, +e==a)this.P=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.G&1&&this.G++;this.G=this.G&7|this.L&16;this.decode(jd(this))}while(0>1|b<<16;Gd(this,a);return a&65535}function ee(a,b){a=b&2048|b>>1|b<<8;Gd(this,a<<8);return a&255}function fe(a,b){a=b&~a;P(this,a);return a}function ge(a,b){a=b&~a;P(this,a<<8);return a}function he(a,b){a|=b;P(this,a);return a}function ie(a,b){a|=b;P(this,a<<8);return a}function je(a,b){a=~b|65536;Ed(this,a);return a&65535} +function ke(a,b){a=~b|256;Ed(this,a<<8);return a&255}function le(a,b){a=b-a;this.G&128||(this.V=this.X=a,this.S=b&(b^a));return a&65535}function me(a,b){a=b-a;var c=a<<8;b<<=8;this.G&128||(this.V=this.X=c,this.S=b&(b^c));return a&255}function ne(a,b){a=b+a;this.G&128||(this.V=this.X=a,this.S=a&(b^a));return a&65535}function oe(a,b){a=b+a;var c=a<<8;this.G&128||(this.V=this.X=c,this.S=c&(b<<8^c));return a&255}function pe(a,b){a=-b;Ed(this,a,a&b&32768);return a&65535} +function qe(a,b){a=-b;Ed(this,a<<8,(a&b&128)<<8);return a&255}function re(a,b){a=b<<1|this.R>>16&1;Gd(this,a);return a&65535}function se(a,b){a=b<<1|this.R>>16&1;Gd(this,a<<8);return a&255}function te(a,b){a=(this.R&65536|b)>>1|b<<16;Gd(this,a);return a&65535}function ue(a,b){a=((this.R&65536)>>8|b)>>1|b<<8;Gd(this,a<<8);return a&255}function ve(a,b){var c=b-a;Hd(this,c,a,b);return c&65535}function we(a,b){var c=b-a;Hd(this,c<<8,a<<8,b<<8);return c&255} +function xe(a,b){this.G&128||(this.V=this.X=b&65280,this.S=this.R=0);return(b<<8|b>>8)&65535}function ye(a,b){a^=b;P(this,a);return a&65535}function ze(a){R(this,a,Sd(this,a),$d);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} +function Ae(a){var b=Vd(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.R=this.S=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.S=32768)}this.u[a]=c&65535;this.V=this.X=c;this.b-=(this.g?6:7)+b} +function Be(a){var b=Vd(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.R=this.S=0;b&=63;if(b&32){b=64-b;32>b-1;this.R=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.u[a|1]=d&65535;this.V=d>>16;this.X=d>>16|d;this.b-=(this.g?6:7)+b}function Ce(a){S(this,a,!gd(this))}function De(a){S(this,a,gd(this))} +function Ee(a){R(this,a,Sd(this,a),fe);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Fe(a){Q(this,a,Rd(this,a),ge);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function Ge(a){R(this,a,Sd(this,a),he);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function He(a){Q(this,a,Rd(this,a),ie);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)} +function Ie(a){P(this,Sd(this,a)&Vd(this,a));this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Je(a){P(this,(Rd(this,a)&Ud(this,a))<<8);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ke(a){S(this,a,id(this))}function Le(a){S(this,a,!this.Da()==!hd(this))}function Me(a){S(this,a,!id(this)&&!this.Da()==!hd(this))}function Ne(a){S(this,a,!gd(this)&&!id(this))}function Oe(a){S(this,a,id(this)||!this.Da()!=!hd(this))} +function Pe(a){S(this,a,gd(this)||id(this))}function Qe(a){S(this,a,!this.Da()!=!hd(this))}function Re(a){S(this,a,this.Da())}function Se(a){S(this,a,!id(this))}function Te(a){S(this,a,!this.Da())}function Ue(){this.ea(12,1);this.b-=5}function Ve(a){S(this,a,!0)}function We(a){S(this,a,!hd(this))}function Xe(a){S(this,a,hd(this))}function T(a){a&1&&(this.R=0);a&2&&(this.S=0);a&4&&(this.X=1);a&8&&(this.V=0);this.b-=5} +function Ye(a){var b=Sd(this,a);a=Vd(this,a);Hd(this,b-a,a,b);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ze(a){var b=Rd(this,a)<<8;a=Ud(this,a)<<8;Hd(this,b-a,a,b);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)} +function $e(a){var b=Vd(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.R=this.S=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.X=d>>16|d,this.V=d>>16):(this.S=32768,this.X=d>>15|d,this.V=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.V=0,this.S=32768,this.R=65536,this.b-=7}function af(){this.ea(24,2);this.b-=25} +function bf(){this.L&49152?(this.Z|=128,this.ea(4,3)):this.i?$b(this.i):this.aa();this.b-=7}function cf(){this.ea(16,4);this.b-=25}var df=[0,7,7,10,7,11,9,13];function ef(a){var b=this.b;N(this,Td(this,a));this.b=b-df[this.g]}var ff=[0,14,14,17,14,18,16,20];function gf(a){var b=this.b,c=Td(this,a);a=a>>6&7;Id(this,this.u[a]);this.u[a]=this.u[7];N(this,c);this.b=b-ff[this.g]}var hf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17]; +function jf(a){var b=Sd(this,a),c=this.b;P(this,Xd(this,a,b));this.b=c-hf[(this.H?8:0)+this.g]+(7!=this.f||this.g?0:2)}function kf(a){var b=Rd(this,a);P(this,Wd(this,a,b,1)<<8);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var lf=[7,13,13,17,14,18,17,21]; +function mf(a){var b=Vd(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.G&128||(this.V=b>>16,this.X=this.V|b,this.S=0,this.R=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)N(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function sf(a){R(this,a,Sd(this,a),ve);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function tf(a){R(this,a,0,xe);this.b-=this.g?9:3+(7==this.f?2:0)}function uf(){this.ea(28,5);this.b-=5}function vf(){this.G&4||this.D.$();this.G|=4;Dd(this,-2);this.b-=3} +function wf(a){R(this,a,Sd(this,a),ye);this.b-=this.g?9:3+(7==this.f?2:0)}function V(a){var b;if(b=this.i)b=this.i,C(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function bd(a){xf[a>>12].call(this,a)}function yf(a){zf[a>>6&3].call(this,a)}function Af(a){Bf[a>>6&3].call(this,a)}function Cf(a){Df[a>>6&3].call(this,a)}function Ef(a){Ff[a&15].call(this,a)}function Gf(a){Hf[a&15].call(this,a)}function If(a){Jf[a>>6&3].call(this,a)}function Kf(a){Lf[a>>6&3].call(this,a)} +function Mf(a){Nf[a>>6&3].call(this,a)} +var xf=[function(a){Of[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,ze,V,function(a){Pf[a>>8&15].call(this,a)},kf,Ze,Je,Fe,He,sf,V],Of=[function(a){Qf[a>>4&15].call(this,a)},Ve,Se,Ke,Le,Qe,Me,Oe,gf,gf,yf,Af,Cf,V,V,V],zf=[function(a){Ed(this,Xd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,je);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,ne);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,le);this.b-=this.g?9:3+(7==this.f?2:0)}],Bf=[function(a){R(this,a,0, +pe);this.b-=this.g?11:6},function(a){R(this,a,gd(this)?1:0,$d);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,gd(this)?1:0,ve);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Vd(this,a);Ed(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Df=[function(a){R(this,a,0,te);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,de);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)}], +Qf=[function(a){Rf[a&15].call(this,a)},V,V,V,ef,ef,ef,ef,qf,V,Ef,Gf,tf,tf,tf,tf],Rf=[bf,vf,pf,Ue,cf,of,V,V,V,V,V,V,V,V,V,V],Ff=[nf,function(){this.R=0;this.b-=5},function(){this.S=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.V=0;this.b-=5},T,T,T,T,T,T,T],Hf=[nf,function(){this.R=65536;this.b-=5},function(){this.S=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.V=32768;this.b-=5},W,W,W,W,W,W,W],Pf=[Te,Re,Ne,Pe,We,Xe,Ce,De,af,uf,If,Kf,Mf,V,V,V],Jf=[function(a){Ed(this, +Wd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ke);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,oe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)}],Lf=[function(a){Q(this,a,0,qe);this.b-=this.g?11:6},function(a){Q(this,a,gd(this)?1:0,ae);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,gd(this)?1:0,we);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Ud(this,a);Ed(this,a<<8);this.b-=this.g?4:3+(7== +this.f?2:0)}],Nf=[function(a){Q(this,a,0,ue);this.b-=this.g?9+(this.$a&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,se);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ee);this.b-=this.g?9+(this.$a&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,ce);this.b-=this.g?9:3+(7==this.f?2:0)}];function cd(a){kg[a>>12].call(this,a)} +var kg=[function(a){lg[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,ze,function(a){mg[a>>8&15].call(this,a)},function(a){ng[a>>8&15].call(this,a)},kf,Ze,Je,Fe,He,sf,V],lg=[function(a){og[a>>4&15].call(this,a)},Ve,Se,Ke,Le,Qe,Me,Oe,gf,gf,yf,Af,Cf,function(a){pg[a>>6&3].call(this,a)},V,V],pg=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.oa(a|this.M);N(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Pd(this,a,0);Id(this,a);P(this,a);this.b-=11},function(a){var b=Kd(this),c= +this.b;Qd(this,a,0,b);P(this,b);this.b=c-lf[this.g]},function(a){P(this,Xd(this,a,this.Da?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],og=[function(a){qg[a&15].call(this,a)},V,V,V,ef,ef,ef,ef,qf,function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.G|=1),this.b-=5):V.call(this,a)},Ef,Gf,tf,tf,tf,tf],qg=[bf,vf,pf,Ue,cf,of,function(){Jd(this);this.b-=13},V,V,V,V,V,V,V,V,V],mg=[mf,mf,$e,$e,Ae,Ae,Be,Be,wf,wf,V,V,V,V,rf,rf],ng=[Te,Re,Ne,Pe,We,Xe,Ce,De,af,uf,If,Kf,Mf,function(a){rg[a>>6&3].call(this, +a)},V,V],rg=[V,function(a){a=Pd(this,a,65536);Id(this,a);P(this,a);this.b-=11},function(a){var b=Kd(this),c=this.b;Qd(this,a,65536,b);P(this,b);this.b=c-lf[this.g]},V]; +function sg(a){r.call(this,"ROM",a,sg);this.ka=this.f=null;this.C=a.addr;this.g=a.size;this.A=a.alias;this.D=a.file;this.F=oa(this.D);if(this.D){a=this.D;var b=pa(this.F);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.D+"&format=bytes&decimal=true");var c=this;Ba(a,null,!0,function(a,b,f){f?c.ja("Unable to load ROM resource (error "+f+": "+a+")"):(jb(c.Ra,a,b),(a=Ca(a,b))?(c.f=a.ha,c.ka=a.ka):c.D=null,tg(c))})}}u(sg);sg.prototype.Ca=function(a,b,c,d){this.w=b;this.b=c;this.i=d;tg(this)}; +sg.prototype.Aa=function(){if(this.ka){if(this.i){var a=this.i,b=this.id,c=this.C,d=this.g,e=this.ka,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var m=h.o,p=h.a;if(void 0!==m){var q=f,m=[m>>>0,g],v=ya(q,m,a.Wb);0>v&&q.splice(-(v+1),0,m)}p&&(h.a=p.replace(/''/g,'"'))}a.F.push({Ud:b,B:c,vc:d,ka:e,Vb:f})}delete this.ka}return!0};sg.prototype.za=function(){return!0}; +function tg(a){if(!pb(a)){if(a.D){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if(a.f.length!=a.g)rb(a,"ROM size ("+l(a.f.length,8,!0)+") does not match specified size ("+l(a.g,8,!0)+")");else{var b;b=a.C;if(Yb(a.w,b,a.g,Cc)){var c;for(c=0;c=b.length)break;for(var g=g+2,m=b[g++]&255|(b[g++]&255)<<8,p=b[g++]&255|(b[g++]&255)<<8,h=h+((m&255)+(m>>8)+(p&255)+(p>>8)),q=g,v=m-=6;0=b.length)break;h+=b[g++]&255;if(h&255)break;if(v)for(;v--;)a.b.Xa(p++,b[q++]&255);else p&1?a.b.aa():fd(a.b,p);f=!0}else g++;else g+=2}if(!f&&(null==c&&(c=e),null!=c)){for(e=0;e=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=va(b[0]);if(c!=this.Za)return;b=va(b[1]);if(this.J=lb(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.K=d.receiveData){this.status(this.Ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.Aa=function(a,b){if(!b)if(this.cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; +k.za=function(a){return a?this.save():!0};k.reset=function(){Ag(this)};k.save=function(){var a=new O(this);a.set(0,[]);return a.data()};k.restore=function(){return Ag(this)};function Ag(a){a.N=0;a.f=0;a.g=128;a.C=[];return!0}k.Pb=function(a){if("number"==typeof a)this.C.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.O||8,c=a-this.H%a,this.O&&(b=ua("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.A.value+=b;this.A.scrollTop=this.A.scrollHeight;this.H+=c}else if(null!=this.F){if(10==a||1024<=this.F.length)this.j(this.F), +this.F="";10!=a&&(this.F+=String.fromCharCode(a))}this.g&=-129;jc(this.b,this.U,1)}};var Bg={},zg=(Bg[65392]=[null,null,X.prototype.Sc,X.prototype.Ed,"RCSR"],Bg[65394]=[null,null,X.prototype.Rc,X.prototype.Dd,"RBUF"],Bg[65396]=[null,null,X.prototype.ed,X.prototype.Rd,"XCSR"],Bg[65398]=[null,null,X.prototype.dd,X.prototype.Qd,"XBUF"],Bg);Ta(function(){for(var a=B(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.I[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.I[b]=c,c.onclick= +function(){var a=d.I.listTapes;a&&Eg(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(this.N)return this.I[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Eg(d,oa(b,!0),b,1,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; +k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;this.O=Fg(a);var e=this;if((this.g=Pc(this.D,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){n("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.U=kc(56,4);this.P=hc(this.b,function(){Gg(e)});ec(b,this,Hg);Ig(this,"None",Cg,!0);this.N&&Ig(this,"Local Tape","?");Ig(this,"Remote Tape","??");Jg(this)||H(this)}; +k.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.za=function(a){return a?this.save():!0};k.reset=function(){this.f&=-2241;this.J=0};function Jg(a){a.C=0;if(a.g){var b=a.g.path||"",c;if(!(c=a.g.name))a:{if((c=a.I.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(e=pa(c),f="json"==e||"gz"==e?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(f,null,!0,function(e,f,g){var h=0>g&&a.D&&!a.D.v.ga;g?a.ja('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(jb(a.Ra,e,f),(e=Ca(e,f))&&Og(a,b,c,d,e.ha,e.Ua, +e.Ta));a.v.Ia=!1;a.C&&(a.C--,a.C||H(a));Lg(a)})}function Ig(a,b,c,d){if((a=a.I.listTapes)&&a.options){for(var e=0;e=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; +Qg.prototype.ac=function(){return-1};Qg.prototype.bc=function(){};function Sg(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} +function Tg(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} -function Rg(a,b,c){var d;if(b){b=Sg(a,b);for(var e=0,f=!1,g=b,h=[],m=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Vg(a,b){if(b)return Ug(a,b,a.aa[b]);var c=0;for(b in a.aa)Ug(a,b,a.aa[b]),c++;return 0this.b.bb?dh:[];eh(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(fh(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ja;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}k.ac=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; -k.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.tb).C));this.la&1073741824?this.wa.push(a):this.sa&&a==this.sa||(this.sa=a,this.la&-2147483648&&(this.da(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.pa=0,a.D.$()))}; -function Yg(a){var b;if(Xd(a)){if(!a.I||!a.I.length){a.I=Array(1E3);for(b=0;b>>d.ja],!1)}a.M=["br"];if(a.B)for(b=1;b>>d.ja],!0);a.B=["bw"];a.Ya=0} -k.Sa=function(a,b,c){var d=!0;c||ph(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.C)),d=!1;else{var f=this.w;f.W[e>>>f.ja].Sa(e&f.w,a==this.B)}}d&&(a.push(b),c?b.Ba=!0:(qh(this,a,a.length-1,"set"),Yg(this)));return d};function ph(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ja],b==a.B));h.Ba||Yg(a);break}}return f} -function rh(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.C-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= -kh(E);break;case 8:y="@"+kh(E);break;case 16:7>E?y="("+kh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+kh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+kh(E)+")";break;case 40:y="@-("+kh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+kh(E)+")";7==E&&(y=[y,J(x,F+w.C&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+kh(E)+")",7==E&&(y=[y,J(x,F+w.C&65535)])}x=y;if(!x||!x.length){h="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=kh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function wh(a){var b,c="";for(b=0;6>b;b++)c+=vh(a,b);c=c+"\n"+(vh(a,6)+vh(a,7)+vh(a,20));return c+=uh(a,"T")+uh(a,"N")+uh(a,"Z")+uh(a,"V")+uh(a,"C")}k.Vb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,h=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.D.$();a.j("updated registers:")}a.j(wh(a));c&&(a.K=Z(d.u[7]),nh(a,J(a,a.K.C)))}}function Bh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.j(p)}h[3]&&(g=h[3],f=null);f=th(a,b,g,f);a.j(f);a.K=b;e-=b.C-m;c++}}} -function sh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.P&&(a.j("ended assemble at "+J(a,a.O.C)),a.K=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.sa=null;if(pb(a)&&0q||"z"ja.length&&(a.j("note: only "+ja.length+" available"),Y=ja.length);ca-=Y;0>ca&&(null==ja[ja.length-1].C?(Y=ca+Y,ca=0):ca+=ja.length);var nd=[];"call"==Vf&&(vb=1E5,nd=["CALL"]);for(void 0!==Uf&&a.j(Y+" instructions earlier:");0=ja.length&&(ca=0);a.Za=Y;Xf++;vb--}}Xf||(a.j("no "+Wf+"history available"),a.Za=void 0)}else{var xb=fh(a,ia);if(xb){var kc=0;Ga&&("l"==Ga.charAt(0)&&(Ga=Ga.substr(1)||Vh),kc=Tg(a,Ga)>>>0,65536>4||1;Xh--&&0nc?String.fromCharCode(nc):".";lc--}yb&&(yb+="\n");yb+=ia+" "+od+(0==Ab?" "+$f:"")}yb&&a.j(yb);a.Qa=xb}}}}break;case "e":if("else"==g[0])break;var bb,qd,rd,sd,td=g[0],ud=g[1];"eb"==td?(bb=1,qd=255,rd=a.ob,sd=a.Fb):"e"==td||"ew"==td?(bb=2,qd=65535,rd=a.na,sd=a.Wa):ud=null;if(null==ud)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var oc=fh(a,ud);if(oc)for(var pc=2;pc< -g.length;pc++){var Bb=Rg(a,g[pc]);if(void 0===Bb){a.j("unrecognized value: "+g[pc]);break}Bb&~qd&&a.j("warning: "+l(Bb)+" exceeds "+bb+"-byte value");var Yh=rd.call(a,oc);a.j("changing "+J(a,oc.C)+" from "+J(a,Yh,bb)+" to "+J(a,Bb,bb));sd.call(a,oc,Bb,bb)}}break;case "g":a:{var ag=g[1],Zh=b;if(void 0!==ag){var vd=fh(a,ag,!0);if(!vd)break a;jh(a,vd,Zh);a.Sa(a.f,vd,!0)}a.ib(!0,c)}break;case "h":a.v.ca?(c||a.j("halting"),a.da()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var wd; -var Cb=b.substr(2),Cb=va(Cb);Rg(a,Cb)?(c||a.j("true: "+Cb),wd=!0):(c||a.j("false: "+Cb),wd=!1);wd||(d=!1);break}f=!0;break;case "k":var $h=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var xd=0,yd=Z(),Db=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Db.C));10>xd;){for(var Ha=null,ai=256;65536>Db.C>>>0;){yd.C=a.na(Db,2);if(null==Db.C||!ai--)break;if(!(yd.C&1)){for(var bi=a,qc=yd,bg=null,Eb=qc.C,cg=Eb,zd=1;6>=zd&&Eb;zd++){if(2< -zd){qc.C=Eb;var rc=th(bi,qc);if(0<=rc.indexOf("JSR")){var dg=rc.indexOf(" ");if(Eb+(rc.indexOf(" ",dg+1)-dg-1)/2==cg){bg=rc;break}}}Eb-=2}qc.C=cg;if(Ha=bg)break}}if(!Ha||null==Ha)break;var eg=null;if("ks"==$h){var fg=Ha.match(/[0-9A-F]+$/);fg&&(eg=Ah(a,fg[0]))}Ha=ua(Ha,50)+" ;"+(eg||"stack="+J(a,Db.C));a.j(Ha);xd++}xd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){Ah(a,g[1],!0);break}f=!0;break;case "m":a:{var ka,la=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== -G)xa=1878917119,G=null;else if("on"==G)la=!0,G=null;else if("off"==G)la=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(ka in tb)if(G==ka){xa=tb[ka];la=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,la=!0;else if("off"==g[2]&&(a.la&=~xa,la=!1,1073741824==xa)){for(var Ad=0;Ad\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bGh){if(Ih(d,this.I)){this.B=new N(this,"1.30.1","failsafe");Ih(this.B)&&(Nh(this,d),a=2,Oh(this.B));this.B.set("timestamp",Aa());Ph(this.B);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Mh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Ih(d,g):("error"== -f&&"no machine state"!=g?(this.ga("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Oh(d),Ih(d)?(c=Mh(d),e=!0):c=!1))}e&&Lh(this,c?d:null)}else 2==a&&d.clear()}else Lh(this);delete this.I;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ha=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.b&&(Qh(this,this.b,b,c,a),this.b.mb());this.O&&(Nh(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.D=0}; -function Nh(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ba;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} -function Dh(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),h=Aa();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.da(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ha=!1,!1===d&&(e=null)));for(var h=kb(a.id),m=0;m>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Yg(a,b){if(b)return Xg(a,b,a.ba[b]);var c=0;for(b in a.ba)Xg(a,b,a.ba[b]),c++;return 0this.b.fb?gh:[];hh(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(ih(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ia;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}k.bc=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; +k.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.vb).B));this.la&1073741824?this.wa.push(a):this.sa&&a==this.sa||(this.sa=a,this.la&-2147483648&&(this.aa(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.pa=0,a.D.$()))}; +function ah(a){var b;if(Yd(a)){if(!a.J||!a.J.length){a.J=Array(1E3);for(b=0;b>>d.ia],!1)}a.M=["br"];if(a.C)for(b=1;b>>d.ia],!0);a.C=["bw"];a.ab=0} +k.Sa=function(a,b,c){var d=!0;c||sh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.B)),d=!1;else{var f=this.w;f.W[e>>>f.ia].Sa(e&f.w,a==this.C)}}d&&(a.push(b),c?b.Ba=!0:(th(this,a,a.length-1,"set"),ah(this)));return d};function sh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ia],b==a.C));h.Ba||ah(a);break}}return f} +function uh(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.B-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= +nh(E);break;case 8:y="@"+nh(E);break;case 16:7>E?y="("+nh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+nh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+nh(E)+")";break;case 40:y="@-("+nh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+nh(E)+")";7==E&&(y=[y,J(x,F+w.B&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+nh(E)+")",7==E&&(y=[y,J(x,F+w.B&65535)])}x=y;if(!x||!x.length){h="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=nh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function zh(a){var b,c="";for(b=0;6>b;b++)c+=yh(a,b);c=c+"\n"+(yh(a,6)+yh(a,7)+yh(a,20));return c+=xh(a,"T")+xh(a,"N")+xh(a,"Z")+xh(a,"V")+xh(a,"C")}k.Wb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,h=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.D.$();a.j("updated registers:")}a.j(zh(a));c&&(a.K=Z(d.u[7]),qh(a,J(a,a.K.B)))}}function Eh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.j(p)}h[3]&&(g=h[3],f=null);f=wh(a,b,g,f);a.j(f);a.K=b;e-=b.B-m;c++}}} +function vh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.P&&(a.j("ended assemble at "+J(a,a.O.B)),a.K=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.sa=null;if(pb(a)&&0q||"z"ka.length&&(a.j("note: only "+ka.length+" available"),Y=ka.length);ca-=Y;0>ca&&(null==ka[ka.length-1].B?(Y=ca+Y,ca=0):ca+=ka.length);var nd=[];"call"==Xf&&(vb=1E5,nd=["CALL"]);for(void 0!==Wf&&a.j(Y+" instructions earlier:");0=ka.length&&(ca=0);a.bb=Y;Zf++;vb--}}Zf||(a.j("no "+Yf+"history available"),a.bb=void 0)}else{var xb=ih(a,ja);if(xb){var lc=0;Ga&&("l"==Ga.charAt(0)&&(Ga=Ga.substr(1)||Yh),lc=Wg(a,Ga)>>>0,65536>4||1;$h--&&0oc?String.fromCharCode(oc):".";mc--}yb&&(yb+="\n");yb+=ja+" "+od+(0==Ab?" "+bg:"")}yb&&a.j(yb);a.Qa=xb}}}}break;case "e":if("else"==g[0])break;var bb,qd,rd,sd,td=g[0],ud=g[1];"eb"==td?(bb=1,qd=255,rd=a.qb,sd=a.Ib):"e"==td||"ew"==td?(bb=2,qd=65535,rd=a.na,sd=a.Ya):ud=null;if(null==ud)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var pc=ih(a,ud);if(pc)for(var qc=2;qc< +g.length;qc++){var Bb=Ug(a,g[qc]);if(void 0===Bb){a.j("unrecognized value: "+g[qc]);break}Bb&~qd&&a.j("warning: "+l(Bb)+" exceeds "+bb+"-byte value");var ai=rd.call(a,pc);a.j("changing "+J(a,pc.B)+" from "+J(a,ai,bb)+" to "+J(a,Bb,bb));sd.call(a,pc,Bb,bb)}}break;case "g":a:{var cg=g[1],bi=b;if(void 0!==cg){var vd=ih(a,cg,!0);if(!vd)break a;mh(a,vd,bi);a.Sa(a.f,vd,!0)}a.lb(!0,c)}break;case "h":a.v.da?(c||a.j("halting"),a.aa()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var wd; +var Cb=b.substr(2),Cb=va(Cb);Ug(a,Cb)?(c||a.j("true: "+Cb),wd=!0):(c||a.j("false: "+Cb),wd=!1);wd||(d=!1);break}f=!0;break;case "k":var ci=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var xd=0,yd=Z(),Db=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Db.B));10>xd;){for(var Ha=null,di=256;65536>Db.B>>>0;){yd.B=a.na(Db,2);if(null==Db.B||!di--)break;if(!(yd.B&1)){for(var ei=a,rc=yd,dg=null,Eb=rc.B,eg=Eb,zd=1;6>=zd&&Eb;zd++){if(2< +zd){rc.B=Eb;var sc=wh(ei,rc);if(0<=sc.indexOf("JSR")){var fg=sc.indexOf(" ");if(Eb+(sc.indexOf(" ",fg+1)-fg-1)/2==eg){dg=sc;break}}}Eb-=2}rc.B=eg;if(Ha=dg)break}}if(!Ha||null==Ha)break;var gg=null;if("ks"==ci){var hg=Ha.match(/[0-9A-F]+$/);hg&&(gg=Dh(a,hg[0]))}Ha=ua(Ha,50)+" ;"+(gg||"stack="+J(a,Db.B));a.j(Ha);xd++}xd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){Dh(a,g[1],!0);break}f=!0;break;case "m":a:{var la,ma=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== +G)xa=1878917119,G=null;else if("on"==G)ma=!0,G=null;else if("off"==G)ma=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(la in tb)if(G==la){xa=tb[la];ma=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,ma=!0;else if("off"==g[2]&&(a.la&=~xa,ma=!1,1073741824==xa)){for(var Ad=0;Ad\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bJh){if(Lh(d,this.J)){this.C=new O(this,"1.30.1","failsafe");Lh(this.C)&&(Qh(this,d),a=2,Rh(this.C));this.C.set("timestamp",Aa());Sh(this.C);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ph(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Lh(d,g):("error"== +f&&"no machine state"!=g?(this.ja("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Rh(d),Lh(d)?(c=Ph(d),e=!0):c=!1))}e&&Oh(this,c?d:null)}else 2==a&&d.clear()}else Oh(this);delete this.J;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ga=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(Th(this,this.b,b,c,a),this.b.pb());this.O&&(Qh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.D=0}; +function Qh(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ca;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} +function Gh(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new O(a,"1.30.1"),g=new O(a,"1.30.1","validate"),h=Aa();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.aa(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ga=!1,!1===d&&(e=null)));for(var h=kb(a.id),m=0;mf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=h[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=m&&(g=g.replace(h[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],g);hi(a,b,c)}})}else c(a,null)} -function ii(a,b,c,d){function e(a){if(void 0===h){var b=g&&B(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Uh||Va(!0));m=!1}var g,h,m=!0;Uh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,h){h?fi(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=h.transformNode(m))?(g.outerHTML=m,--Uh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Uh||Va(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?fi(b,a,d,!0,e,p):gi(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return ii(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map +k.ra=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.D||(d.v.ga?Gh(d,!1,!0):Nh(d,d.ub))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.v.ga&&!d.D)if(d.f&&!d.H){var a=Da("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Gh(d,a,!0);!a&&d.N?window&&window.location.reload():d.ub(Jh)}else d.reset(),d.b&&d.b.pb()},!0;case "save":if(qa())c.parentNode.removeChild(c);else return this.I[b]= +c,c.onclick=function(){var a=Kh(d,!0);if(a){var b=!!(d.f&&!d.H||d.N),c=Gh(d,b);b?Uh(d,a,c):d.ja("Resume disabled, machine state not saved")}},!0}return!1}; +function Kh(a,b){var c=a.g;c||((c=Ja("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Vh(a,c))||a.ja("The user ID is invalid.")):b&&a.ja("Browser local storage is not available"));return c} +function Vh(a,b){a.g=null;b=Ba(ra()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ka("user",b.data),a.g=b.data)}catch(d){n(d.message+" ("+c+")")}return a.g}function Mh(a){var b=null;a.g&&(b=ra()+"/api/v1/user?req=load&user="+a.g+"&state="+Wh(a,"1.30.1"));return b} +function Uh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Wh(a,"1.30.1");d.data=c;b=Ba(ra()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=h[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=m&&(g=g.replace(h[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],g);ki(a,b,c)}})}else c(a,null)} +function li(a,b,c,d){function e(a){if(void 0===h){var b=g&&B(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Xh||Va(!0));m=!1}var g,h,m=!0;Xh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,h){h?ii(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=h.transformNode(m))?(g.outerHTML=m,--Xh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Xh||Va(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?ii(b,a,d,!0,e,p):ji(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return li(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map diff --git a/versions/pdpjs/1.30.1/pdp11.js b/versions/pdpjs/1.30.1/pdp11.js index c2ceb1e019..aa2e13f511 100644 --- a/versions/pdpjs/1.30.1/pdp11.js +++ b/versions/pdpjs/1.30.1/pdp11.js @@ -35,161 +35,162 @@ function qa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")} function ta(){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 k(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var l=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(l.onreadystatechange=function(){4===l.readyState&&(f=l.responseText,200==l.status||!l.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=l.status||-1),d&&d(a,f,e))});if(b&&"object"== typeof b){var n="",r;for(r in b)b.hasOwnProperty(r)&&(n&&(n+="&"),n+=r+"="+encodeURIComponent(b[r]));n=n.replace(/%20/g,"+");l.open("POST",a,!!c);l.setRequestHeader("Content-type","application/x-www-form-urlencoded");l.send(n)}else l.open("GET",a,!!c),"bytes"==b&&l.overrideMimeType("text/plain; charset=x-user-defined"),l.send();c||(f=l.responseText,200!=l.status&&(e=l.status||-1),d&&d(a,f,e),h=[f,e]);return h} -function ua(a,b){var c,d={L:null,Y:null,cb:null,bb:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,h;if("<"==b.substr(0,1))throw Error(b);h=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.cb=h.load;d.bb=h.exec;if(e=h.bytes)d.L=e;else if(e=h.words)for(d.L=Array(2*e.length),f=c=0;c>8&255;else if(e=h.data)for(d.L=Array(4*e.length),f=c=0;cb.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.va=h.load;d.ua=h.exec;if(e=h.bytes)d.L=e;else if(e=h.words)for(d.L=Array(2*e.length),f=c=0;c>8&255;else if(e=h.data)for(d.L=Array(4*e.length),f=c=0;c>8&255,d.L[f++]=e[c]>>16&255,d.L[f++]=e[c]>>24&255;else d.L=h;d.Y=h.symbols;d.L.length?1==d.L.length&&(m(d.L[0]),d=null):(m("Empty resource: "+a),d=null)}catch(l){m("Resource data error ("+a+"): "+l.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;cb?this.Ia=this.id:(this.ra=this.id.substr(0,b),this.Ia=this.id.substr(b+1));this[a]=c;this.i={ready:!1,Wa:!1,gd:!1,M:!1,error:!1};this.Sa=null;this.i.error=!1;this.s={};this.F=null;v.push(this)}var Ia=void 0,Ja={}; +Ea(Aa("Opera")||Aa("iOS")?"onunload":"onbeforeunload",function(){Fa(p.exit)});function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.pb=b.comment;this.Hb=b;b=this.id.indexOf(".");0>b?this.Ka=this.id:(this.ra=this.id.substr(0,b),this.Ka=this.id.substr(b+1));this[a]=c;this.i={ready:!1,Ya:!1,gd:!1,M:!1,error:!1};this.Ua=null;this.i.error=!1;this.s={};this.F=null;v.push(this)}var Ia=void 0,Ja={}; if(window){Ia||(Ia=window.location.search.substr(1));for(var Ka,La=/\+/g,Ma=/([^&=]+)=?([^&]*)/g;Ka=Ma.exec(Ia);)Ja[decodeURIComponent(Ka[1].replace(La," "))]=decodeURIComponent(Ka[2].replace(La," "))}function Na(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b} function w(a,b){b||(b=u);a.prototype=Na(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Oa=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Oa={},v=[];function Pa(a,b,c){Oa[a]&&b&&(Oa[a][b]=c)}function x(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>2;this.g=this.c-1;this.v=this.A/this.c|0;this.ka=[];this.T=0;this.o=[];this.Bb=[ab,bb,cb,db];a=new E(this);eb(a,this.F);this.b=Array(this.v);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.ka[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);return 0<=c?c:c=gb(d,b)}function bb(a,b,c){var d=!1,e=this.controller,f=e.ka[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.ka[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d||gb(e,c)} -function cb(a,b){var c=-1,d=this.controller;(a=d.ka[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));return 0<=c?c:c=gb(d,b)}function db(a,b,c){var d=!1,e=this.controller;if(a=e.ka[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d||gb(e,c)}function hb(a,b){if(b!=a.j){var c;a.j&&(c=(1<>>a.m;0h&&(t=h);if(!e&&n&&n.size){if(n.type==d){if(f+h<=n.Ca)return n.Ua+=n.Ca-f,n.Ca=f,!0;if(f>=n.Ca+n.Ua){t=n.size-(f-r);t>h&&(t=h);n.Ua=f-n.Ca+t;f=r+a.c;h-=t;l++;continue}}return mb(1,f,h)}f=new E(a,f,t,a.c,d,e);eb(f,a.F,n);a.b[l++]=f;f=r+a.c;h-=t}if(0>=h){c/=1024;var D;e="";D?10>>=a.m;0>>=a.m;0>>a.m].eb(b&a.g,b)}function pb(a,b){return a.b[(b&a.h)>>>a.m].R(b&a.g,b)}$a.prototype.Ga=function(a,b){this.T++;this.b[(a&this.h)>>>this.m].yb(a&this.g,b&255,a);this.T--}; -function qb(a,b,c){a.b[(b&a.h)>>>a.m].Va(b&a.g,c&65535,b)}function rb(a){for(var b=0,c=[],d=0;da.a.Ha)){var h=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,n=f[2]?f[2].bind(b):null,r=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!h&&n&&(h=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&r&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(r)));sb(a,e,e,h,l,n,r,f[4])}}}function ub(a,b){a.o.push(b)}function vb(a,b){a.T||F(a.a,4,b)} -function mb(a,b,c){m("Memory block error ("+a+": "+ja(b)+","+ja(c)+")");return!1}function G(a){u.call(this,"Device",a,G);this.c={data:0,fd:0,Ta:20,uc:0};this.b={hd:0,ib:-1}}w(G);g=G.prototype;g.ea=function(a,b,c,d){this.m=b;this.a=c;this.F=d;var e=this;this.b.ib=wb(c,function(){e.b.na|=128;e.b.na&64&&(xb(e.a,e.b.vc),yb(e.a,e.b.ib,1E3/60))});this.b.vc=zb(64,6);tb(b,this,H);ub(b,this.reset.bind(this));B(this)};g.reset=function(){this.c.Ta=this.c.Ta&-120|20;this.b.na=0}; -g.Qb=function(){var a=this.b.na;this.b.na&=-129;return a};g.Ec=function(a){this.b.na=a;a&64&&yb(this.a,this.b.ib,1E3/60);this.b.na=a&-129};g.Jb=function(a){return(a?this.c.uc:this.c.data)&65535};g.xc=function(a){this.c.data=a};g.Sb=function(){var a=this.a;return a.A&62337|a.Ja<<5|a.Ka<<1};g.Gc=function(a){var b=this.a;a&=62337;if(b.A!=a){b.A=a;b.Ja=a>>5&3;b.Ka=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ea!=c&&(b.Ea=c,Ab(b))}Bb(this)}; -g.Tb=function(){var a=this.a.oa;a&65280&&(a=(a<<8|a>>8)&65535);return a};g.Ub=function(){return this.a.gb};g.Vb=function(){return this.a.pa};g.Hc=function(a){var b=this.a;1170>b.Ha&&(a&=-49);b.pa!=a&&(b.pa=a,a&16?(b.$a=4194303,b.La=3915776):(b.$a=262143,b.La=253952),Ab(b));Bb(this)};function Bb(a){a.c.Ta=a.c.Ta&-8|(a.a.Ea?a.a.pa&16?1:2:4)}g.ic=function(a){return this.a.D[1][a>>1&7]};g.Vc=function(a,b){this.a.D[1][b>>1&7]=a&65295};g.gc=function(a){return this.a.D[1][(a>>1&7)+8]}; +g.V=function(a,b,c,d){if(this.w&&this.w.V(a,b,c,d)||this.a&&this.a.V(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.s[b]=c,this.b++,!0;default:return"rled"==a?(this.s[b]=c,this.b++,!0):this.parent.V.call(this,a,b,c,d)}};g.fa=function(a,b,c,d){this.w=a;this.m=b;this.a=c;this.F=d};g.$=function(a,b){b||Va();return!0};g.Z=function(){return!0}; +function Wa(a,b,c,d){if(a.s[b]){void 0===c&&(a.i.error=!0,a.K("Value for "+b+" is invalid"),D(a.a));var e=a.F&&a.F.b||8;c=!a.a.i.U||a.i.kb?8==e?ia(c,d):ja(c,d):"--------".substr(0,d||4);a.s[b].textContent!=c&&(a.s[b].textContent=c)}}function Xa(a,b,c,d){for(var e=0;e>2;this.g=this.c-1;this.w=this.A/this.c|0;this.ka=[];this.T=0;this.o=[];this.Bb=[$a,ab,bb,cb];a=new F(this);db(a,this.F);this.b=Array(this.w);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.ka[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);return 0<=c?c:c=fb(d,b)}function ab(a,b,c){var d=!1,e=this.controller,f=e.ka[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.ka[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d||fb(e,c)} +function bb(a,b){var c=-1,d=this.controller;(a=d.ka[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));return 0<=c?c:c=fb(d,b)}function cb(a,b,c){var d=!1,e=this.controller;if(a=e.ka[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d||fb(e,c)}function gb(a,b){if(b!=a.j){var c;a.j&&(c=(1<>>a.m;0h&&(t=h);if(!e&&n&&n.size){if(n.type==d){if(f+h<=n.Ea)return n.Wa+=n.Ea-f,n.Ea=f,!0;if(f>=n.Ea+n.Wa){t=n.size-(f-r);t>h&&(t=h);n.Wa=f-n.Ea+t;f=r+a.c;h-=t;l++;continue}}return lb(1,f,h)}f=new F(a,f,t,a.c,d,e);db(f,a.F,n);a.b[l++]=f;f=r+a.c;h-=t}if(0>=h){c/=1024;var y;e="";y?10>>=a.m;0>>=a.m;0>>a.m].eb(b&a.g,b)}function ob(a,b){return a.b[(b&a.h)>>>a.m].R(b&a.g,b)}Za.prototype.Ia=function(a,b){this.T++;this.b[(a&this.h)>>>this.m].yb(a&this.g,b&255,a);this.T--}; +function pb(a,b,c){a.b[(b&a.h)>>>a.m].Xa(b&a.g,c&65535,b)}function qb(a){for(var b=0,c=[],d=0;da.a.Ja)){var h=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,n=f[2]?f[2].bind(b):null,r=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!h&&n&&(h=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&r&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(r)));rb(a,e,e,h,l,n,r,f[4])}}}function tb(a,b){a.o.push(b)}function ub(a,b){a.T||G(a.a,4,b)} +function lb(a,b,c){m("Memory block error ("+a+": "+ja(b)+","+ja(c)+")");return!1}function H(a){u.call(this,"Device",a,H);this.c={data:0,fd:0,Va:20,uc:0};this.b={hd:0,ib:-1}}w(H);g=H.prototype;g.fa=function(a,b,c,d){this.m=b;this.a=c;this.F=d;var e=this;this.b.ib=vb(c,function(){e.b.na|=128;e.b.na&64&&(wb(e.a,e.b.vc),xb(e.a,e.b.ib,1E3/60))});this.b.vc=yb(64,6);sb(b,this,I);tb(b,this.reset.bind(this));C(this)};g.reset=function(){this.c.Va=this.c.Va&-120|20;this.b.na=0}; +g.Qb=function(){var a=this.b.na;this.b.na&=-129;return a};g.Ec=function(a){this.b.na=a;a&64&&xb(this.a,this.b.ib,1E3/60);this.b.na=a&-129};g.Jb=function(a){return(a?this.c.uc:this.c.data)&65535};g.xc=function(a){this.c.data=a};g.Sb=function(){var a=this.a;return a.A&62337|a.La<<5|a.Ma<<1};g.Gc=function(a){var b=this.a;a&=62337;if(b.A!=a){b.A=a;b.La=a>>5&3;b.Ma=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ga!=c&&(b.Ga=c,zb(b))}Ab(this)}; +g.Tb=function(){var a=this.a.oa;a&65280&&(a=(a<<8|a>>8)&65535);return a};g.Ub=function(){return this.a.gb};g.Vb=function(){return this.a.pa};g.Hc=function(a){var b=this.a;1170>b.Ja&&(a&=-49);b.pa!=a&&(b.pa=a,a&16?(b.bb=4194303,b.Na=3915776):(b.bb=262143,b.Na=253952),zb(b));Ab(this)};function Ab(a){a.c.Va=a.c.Va&-8|(a.a.Ga?a.a.pa&16?1:2:4)}g.ic=function(a){return this.a.D[1][a>>1&7]};g.Vc=function(a,b){this.a.D[1][b>>1&7]=a&65295};g.gc=function(a){return this.a.D[1][(a>>1&7)+8]}; g.Tc=function(a,b){this.a.D[1][(b>>1&7)+8]=a&65295};g.hc=function(a){return this.a.S[1][a>>1&7]};g.Uc=function(a,b){b=b>>1&7;this.a.S[1][b]=a;this.a.D[1][b]&=65295};g.fc=function(a){return this.a.S[1][(a>>1&7)+8]};g.Sc=function(a,b){b=(b>>1&7)+8;this.a.S[1][b]=a;this.a.D[1][b]&=65295};g.Pb=function(a){return this.a.D[0][a>>1&7]};g.Dc=function(a,b){this.a.D[0][b>>1&7]=a&65295};g.Nb=function(a){return this.a.D[0][(a>>1&7)+8]};g.Bc=function(a,b){this.a.D[0][(b>>1&7)+8]=a&65295}; g.Ob=function(a){return this.a.S[0][a>>1&7]};g.Cc=function(a,b){b=b>>1&7;this.a.S[0][b]=a;this.a.D[0][b]&=65295};g.Mb=function(a){return this.a.S[0][(a>>1&7)+8]};g.Ac=function(a,b){b=(b>>1&7)+8;this.a.S[0][b]=a;this.a.D[0][b]&=65295};g.oc=function(a){return this.a.D[3][a>>1&7]};g.ad=function(a,b){this.a.D[3][b>>1&7]=a&65295};g.mc=function(a){return this.a.D[3][(a>>1&7)+8]};g.Zc=function(a,b){this.a.D[3][(b>>1&7)+8]=a&65295};g.nc=function(a){return this.a.S[3][a>>1&7]}; -g.$c=function(a,b){b=b>>1&7;this.a.S[3][b]=a;this.a.D[3][b]&=65295};g.lc=function(a){return this.a.S[3][(a>>1&7)+8]};g.Yc=function(a,b){b=(b>>1&7)+8;this.a.S[3][b]=a;this.a.D[3][b]&=65295};g.wa=function(a){a&=7;return this.a.w&2048?this.a.ua[a]:this.a.f[a]};g.ya=function(a,b){b&=7;this.a.w&2048?this.a.ua[b]=a:this.a.f[b]=a};g.$b=function(){return this.a.w&49152?this.a.aa[0]:this.a.f[6]};g.Mc=function(a){this.a.w&49152?this.a.aa[0]=a:this.a.f[6]=a};g.cc=function(){return this.a.f[7]}; -g.Pc=function(a){this.a.f[7]=a};g.xa=function(a){a&=7;return this.a.w&2048?this.a.f[a]:this.a.ua[a]};g.za=function(a,b){b&=7;this.a.w&2048?this.a.f[b]=a:this.a.ua[b]=a};g.ac=function(){return 1==(this.a.w&49152)>>14?this.a.f[6]:this.a.aa[1]};g.Nc=function(a){1==(this.a.w&49152)>>14?this.a.f[6]=a:this.a.aa[1]=a};g.bc=function(){return 3==(this.a.w&49152)>>14?this.a.f[6]:this.a.aa[3]};g.Oc=function(a){3==(this.a.w&49152)>>14?this.a.f[6]=a:this.a.aa[3]=a};g.Lb=function(a){return this.a.vb[a-65504>>1]}; -g.zc=function(a,b){this.a.vb[b-65504>>1]=a};g.tb=function(a){return 65520==a?61183:0};g.Ab=function(){};g.kc=function(){return 1};g.Xc=function(){};g.Kb=function(){return this.a.G};g.yc=function(){this.a.G=0};g.Rb=function(){return this.a.ub};g.Fc=function(a,b){b&1||(a&=255);this.a.ub=a};g.Wb=function(a){return a?this.a.hb:0};g.Ic=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.hb=a;b.l|=2};g.jc=function(a){return a?this.a.qa&65280:0};g.Wc=function(a){this.a.qa=a|255}; -g.Zb=function(){return Za(this.a)};g.Lc=function(a){Cb(this.a,a&-1809|Za(this.a)&1808);this.a.l|=128};g.zb=function(){}; -var I={},H=(I[62592]=[null,null,G.prototype.ic,G.prototype.Vc,"SISDR",1145],I[62608]=[null,null,G.prototype.gc,G.prototype.Tc,"SDSDR",1145],I[62624]=[null,null,G.prototype.hc,G.prototype.Uc,"SISAR",1145],I[62640]=[null,null,G.prototype.fc,G.prototype.Sc,"SDSAR",1145],I[62656]=[null,null,G.prototype.Pb,G.prototype.Dc,"KISDR",1145],I[62672]=[null,null,G.prototype.Nb,G.prototype.Bc,"KDSDR",1145],I[62688]=[null,null,G.prototype.Ob,G.prototype.Cc,"KISAR",1145],I[62704]=[null,null,G.prototype.Mb,G.prototype.Ac, -"KDSAR",1145],I[62798]=[null,null,G.prototype.Vb,G.prototype.Hc,"MMR3",1145],I[65382]=[null,null,G.prototype.Qb,G.prototype.Ec,"LKS"],I[65400]=[null,null,G.prototype.Jb,G.prototype.xc,"CNSL"],I[65402]=[null,null,G.prototype.Sb,G.prototype.Gc,"MMR0",1145],I[65404]=[null,null,G.prototype.Tb,G.prototype.zb,"MMR1",1145],I[65406]=[null,null,G.prototype.Ub,G.prototype.zb,"MMR2",1145],I[65408]=[null,null,G.prototype.oc,G.prototype.ad,"UISDR",1145],I[65424]=[null,null,G.prototype.mc,G.prototype.Zc,"UDSDR", -1145],I[65440]=[null,null,G.prototype.nc,G.prototype.$c,"UISAR",1145],I[65456]=[null,null,G.prototype.lc,G.prototype.Yc,"UDSAR",1145],I[65472]=[null,null,G.prototype.wa,G.prototype.ya,"R0SET0"],I[65473]=[null,null,G.prototype.wa,G.prototype.ya,"R1SET0"],I[65474]=[null,null,G.prototype.wa,G.prototype.ya,"R2SET0"],I[65475]=[null,null,G.prototype.wa,G.prototype.ya,"R3SET0"],I[65476]=[null,null,G.prototype.wa,G.prototype.ya,"R4SET0"],I[65477]=[null,null,G.prototype.wa,G.prototype.ya,"R5SET0"],I[65478]= -[null,null,G.prototype.$b,G.prototype.Mc,"R6KERNEL"],I[65479]=[null,null,G.prototype.cc,G.prototype.Pc,"R7KERNEL"],I[65480]=[null,null,G.prototype.xa,G.prototype.za,"R0SET1",1145],I[65481]=[null,null,G.prototype.xa,G.prototype.za,"R1SET1",1145],I[65482]=[null,null,G.prototype.xa,G.prototype.za,"R2SET1",1145],I[65483]=[null,null,G.prototype.xa,G.prototype.za,"R3SET1",1145],I[65484]=[null,null,G.prototype.xa,G.prototype.za,"R4SET1",1145],I[65485]=[null,null,G.prototype.xa,G.prototype.za,"R5SET1",1145], -I[65486]=[null,null,G.prototype.ac,G.prototype.Nc,"R6SUPER",1145],I[65487]=[null,null,G.prototype.bc,G.prototype.Oc,"R6USER",1145],I[65504]=[null,null,G.prototype.Lb,G.prototype.zc,"CTRL",1170],I[65520]=[null,null,G.prototype.tb,G.prototype.Ab,"LSIZE",1170],I[65522]=[null,null,G.prototype.tb,G.prototype.Ab,"HSIZE",1170],I[65524]=[null,null,G.prototype.kc,G.prototype.Xc,"SYSID",1170],I[65526]=[null,null,G.prototype.Kb,G.prototype.yc,"CPUERR",1170],I[65528]=[null,null,G.prototype.Rb,G.prototype.Fc, -"MB",1170],I[65530]=[null,null,G.prototype.Wb,G.prototype.Ic,"PIR"],I[65532]=[null,null,G.prototype.jc,G.prototype.Wc,"SL"],I[65534]=[null,null,G.prototype.Zb,G.prototype.Lc,"PSW"],I);H[62594]=H[62592];H[62596]=H[62592];H[62598]=H[62592];H[62600]=H[62592];H[62602]=H[62592];H[62604]=H[62592];H[62606]=H[62592];H[62610]=H[62608];H[62612]=H[62608];H[62614]=H[62608];H[62616]=H[62608];H[62618]=H[62608];H[62620]=H[62608];H[62622]=H[62608];H[62626]=H[62624];H[62628]=H[62624];H[62630]=H[62624];H[62632]=H[62624]; -H[62634]=H[62624];H[62636]=H[62624];H[62638]=H[62624];H[62642]=H[62640];H[62644]=H[62640];H[62646]=H[62640];H[62648]=H[62640];H[62650]=H[62640];H[62652]=H[62640];H[62654]=H[62640];H[62658]=H[62656];H[62660]=H[62656];H[62662]=H[62656];H[62664]=H[62656];H[62666]=H[62656];H[62668]=H[62656];H[62670]=H[62656];H[62674]=H[62672];H[62676]=H[62672];H[62678]=H[62672];H[62680]=H[62672];H[62682]=H[62672];H[62684]=H[62672];H[62686]=H[62672];H[62690]=H[62688];H[62692]=H[62688];H[62694]=H[62688];H[62696]=H[62688]; -H[62698]=H[62688];H[62700]=H[62688];H[62702]=H[62688];H[62706]=H[62704];H[62708]=H[62704];H[62710]=H[62704];H[62712]=H[62704];H[62714]=H[62704];H[62716]=H[62704];H[62718]=H[62704];H[65410]=H[65408];H[65412]=H[65408];H[65414]=H[65408];H[65416]=H[65408];H[65418]=H[65408];H[65420]=H[65408];H[65422]=H[65408];H[65426]=H[65424];H[65428]=H[65424];H[65430]=H[65424];H[65432]=H[65424];H[65434]=H[65424];H[65436]=H[65424];H[65438]=H[65424];H[65442]=H[65440];H[65444]=H[65440];H[65446]=H[65440];H[65448]=H[65440]; -H[65450]=H[65440];H[65452]=H[65440];H[65454]=H[65440];H[65458]=H[65456];H[65460]=H[65456];H[65462]=H[65456];H[65464]=H[65456];H[65466]=H[65456];H[65468]=H[65456];H[65470]=H[65456];H[65506]=H[65504];H[65508]=H[65504];H[65510]=H[65504];H[65512]=H[65504];H[65514]=H[65504];H[65516]=H[65504];H[65518]=H[65504];q(function(){for(var a=A(document,"pdp11","device"),b=0;b>1),this.a=new Int32Array(this.b,0,d>>2),Jb(this,Fb?Kb:Lb);else{this.a=Array(d>>2);for(a=0;a>2),b=0;b>8,c)},N:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ba:function(a,b){a&1&&vb(this.m,b);b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},ha:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.la=!0},H:function(a,b){return this.J(a,b)}, -T:function(a,b){return this.W(a,b)},da:function(a,b,c){this.g||this.yb(a,b,c)},ja:function(a,b,c){this.g||this.ra(a,b,c)},C:function(a){return this.c[a]},K:function(a){return this.c[a]},O:function(a,b){a&1&&vb(this.m,b);return this.s.getUint16(a,!0)},X:function(a,b){a&1&&vb(this.m,b);return this.o[a>>1]},ca:function(a,b){this.c[a]=b;this.la=!0},ga:function(a,b){this.c[a]=b;this.la=!0},ia:function(a,b,c){a&1&&vb(this.m,c);this.s.setUint16(a,b,!0);this.la=!0},sa:function(a,b,c){a&1&&vb(this.m,c);this.o[a>> -1]=b;this.la=!0}};function eb(a,b,c){a.F=b;a.h=a.j=0;c&&((a.h=c.h)&&Nb(a,Ob,!1),(a.j=c.j)&&Pb(a,Ob,!1))}function Pb(a,b,c){c&&a.j||(a.jb=!a.g&&b[1]||a.A,a.Va=!a.g&&b[3]||a.B);if(c||void 0===c)a.yb=b[1]||a.A,a.ra=b[3]||a.B}function Nb(a,b,c){c&&a.h||(a.eb=b[0]||a.v,a.R=b[2]||a.u);if(c||void 0===c)a.J=b[0]||a.v,a.W=b[2]||a.u}function Jb(a,b){b||(b=Qb);Nb(a,b,void 0);Pb(a,b,void 0)} -var Qb=[],Mb=[E.prototype.N,E.prototype.ha,E.prototype.ba,E.prototype.ta],Ob=[E.prototype.H,E.prototype.da,E.prototype.T,E.prototype.ja];if(Ta)var Lb=[E.prototype.C,E.prototype.ca,E.prototype.O,E.prototype.ia],Kb=[E.prototype.K,E.prototype.ga,E.prototype.X,E.prototype.sa]; -function Rb(a,b){u.call(this,"CPU",a,Rb);var c=a.multiplier||1;this.Qa=a.cycles||b;this.da=c;this.Za=Math.round(this.Qa/1E4)/100;this.ga=this.Za*this.da;this.i.U=!1;this.i.wb=!1;this.i.Da=a.autoStart;this.i.Pa=!1;this.Na=this.ia=0;this.Oa=a.csStart;this.sa=a.csInterval;this.ta=a.csStop;this.H=[];this.sb=this.tc.bind(this);B(this)}w(Rb);var Sb=["power","reset"];g=Rb.prototype; -g.ea=function(a,b,c,d){this.v=a;this.m=b;this.F=d;for(b=0;ba.ba/a.ga&&(b=1),a.da=b,b=a.Za*a.da,a.ga!=b)){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var c=a.s.setSpeed;c&&(c.textContent=b);a.P("target speed: "+b)}a.K+=a.W;a.W=0;a.O=sa();a.ca=0;Yb(a)}function wb(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function yb(a,b,c,d){0<=b&&ba.H[b][0])&&(c=a.Qa*a.da/1E3*c|0,a.H[b][0]=c+$b(a))}function $b(a,b){var c=a.ha-=a.a;a.a=0;b&&(a.ha=0);return c} -g.tc=function(){if(this.i.U){this.ab>=this.Qa&&Yb(this,!0);this.Ba=0;this.Ma=sa();if(this.ca){var a=this.Ma-this.ca;a>this.qb&&(this.O+=a,this.O>this.Ma&&(this.O=this.Ma))}try{do{for(var b,c=this.i.Pa?1:this.Ra,d=this.H.length-1;0<=d;d--){var e=this.H[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.xb(b)}catch(n){if("number"!=typeof n)throw n;}b=$b(this,!0);this.Ba+=b;this.W+=b;a=b;if(this.i.Pa){var f=!1;this.Na=this.Na+this.mb()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.sa,f=!0);0<=this.ta&&this.ta<=Zb(this)&& -(this.sa=this.ta=-1,Vb(this),Xa(this),f=!0);f&&this.P(Zb(this)+" cycles: checksum="+ja(this.Na))}for(var a=b,h=this.H.length-1;0<=h;h--){var l=this.H[h];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.Aa-=b;if(0>=this.Aa){this.Aa+=this.Ra;15<=++this.rb&&(this.v&&this.v.fa(),this.rb=0);break}}while(this.i.U)}catch(n){Xa(this);this.v&&this.v.stop(sa(),Zb(this));b=n.stack||n.message;this.i.error=!0;this.I(b);return}if(this.i.U){b=setTimeout;c=this.sb;this.ca=sa();d=this.qb;this.Ba&&(d=Math.round(d* -this.Ba/this.Ra));d-=this.ca-this.Ma;if(e=this.ca-this.O)this.ba=Math.round(this.W/(10*e))/100,864E5<=e&&(this.K=0,Xb(this));if(0>d||this.bad&&(this.O-=d),d=0;this.ab+=this.Ba;this.ca+=d;b(c,d)}}};function Wb(a){var b;a.i.error?(a.P(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.U)a.P(a.toString()+" busy");else{Xb(a);a.i.U=!0;a.i.wb=!0;if(b=a.s.run)b.textContent="Halt";a.v&&a.v.start(a.O,Zb(a));setTimeout(a.sb,0)}}g.xb=function(){return 0}; -function Xa(a){if(a.i.U){$b(a);a.K+=a.W;a.W=0;a.i.U=!1;var b=a.s.run;b&&(b.textContent="Run");a.v&&a.v.stop(sa(),Zb(a))}a.i.complete=void 0}function ac(a){this.Ha=+a.model||1170;this.ob=a.addrReset||0;Rb.call(this,a,6666667);this.decode=1120==this.Ha?bc.bind(this):cc.bind(this);dc(this);this.T=0;this.X=null;this.i.complete=this.i.Cb=!1}w(ac,Rb);g=ac.prototype;g.reset=function(){this.status("model "+this.Ha);this.i.U&&Xa(this);dc(this);Ub(this);this.i.error=!1;this.parent.reset.call(this)}; -function dc(a){a.j=65536;a.g=32768;a.h=65535;a.o=32768;a.w=15;a.f=[0,0,0,0,0,0,0,a.ob];a.ua=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.u=0;a.Ka=0;a.Gb=[4,2,0,1];a.D=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.S=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.vb=[0,0,0,0,0,0,0,0];a.ub=0;a.l=0;a.B=a.C=0;a.c=a.b=a.Ya=0;a.ja=-1;ec(a)}function ec(a){a.qa=255;a.G=0;a.hb=0;a.A=0;a.oa=0;a.gb=0;a.pa=0;a.Ea=0;a.Ja=0;a.$a=262143;a.La=253952;a.l|=2;a.m&&Ab(a)}function Ab(a){a.Ea?(a.N=65536,a.J=a.Fb,a.R=a.qc,a.Va=a.cd,hb(a.m,a.pa&16?22:18)):(a.N=0,a.J=a.Eb,a.R=a.pc,a.Va=a.bd,hb(a.m,16))}g.mb=function(){return 0}; -g.save=function(){var a=new K(this);a.set(0,[]);a.set(1,[this.K,this.da]);a.set(2,rb(this.m));return a.data()};g.restore=function(a){var b=a[1];this.K=b[1];Xb(this,b[3]);a:{b=this.m;a=a[2];var c;for(c=0;c>14&3;c=a.w>>14&3;a.u!=c&&(a.aa[c]=a.f[6],a.f[6]=a.aa[a.u]);a.w=b;a.l|=2}function N(a,b){a.l&128||(a.o=a.h=b,a.g=0)}function O(a,b,c){a.l&128||(a.o=a.h=a.j=b,a.g=c||0)}function hc(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^b)&(d^b))}function P(a,b){a.l&128||(a.o=a.h=a.j=b,a.g=a.o^a.j>>1)}function ic(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^d)&(d^b))} -function F(a,b,c){if(!a.T){var d=!1;0>a.ja?a.ja=Za(a):a.u||(b=4,d=!0);a.A&57344||(a.oa=63222,a.gb=b);a.u=0;var e=a.R(b|a.N),f=a.R(b+2&65535|a.N);Cb(a,f&-12289|a.ja>>2&12288);d&&(a.G|=4,a.f[6]=4);jc(a,a.ja);jc(a,a.f[7]);M(a,e);a.l&=-113;a.ja=-1;if(26!=c)throw b;}}function kc(a){var b=lc(a),c=lc(a)&-1793;a.w&49152&&(c=c&-225|a.w&63712);M(a,b);Cb(a,c);a.l&=-17} -function mc(a,b,c){var d,e,f,h=0;d=b>>13;a.pa&a.Gb[a.u]||(d&=7);e=a.D[a.u][d];f=(a.S[a.u][d]<<6)+(b&8191)&a.$a;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.pa&32&&(f=a.Ib[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.La&&4186112>f&&(a.G|=32,F(a,4,12))}switch(e&7){case 1:h=4096;case 2:e|=128;c&4&&(h=8192);break;case 4:h=4096;case 5:c&4&&(h=4096);case 6:e|=c&4?192: -128;break;default:h=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(h|=16384):(b&8128)>(e>>2&8128)&&(h|=16384));a.D[a.u][d]=e;if(4194170!==f||a.u)a.Ja=a.u,a.Ka=d;h&&(h&57344&&(0<=a.ja&&(h|=128),a.A&57344||(a.A=a.A|h|a.Ja<<5|a.Ka<<1),F(a,168,16)),a.A&61440||!(4191360>f||4194239>>a.m].jb(b&a.g,c&255,b)}function lc(a){var b=a.R(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b} -function jc(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.oa=a.oa<<8|246);!a.u&&c<=a.qa&&4c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=h);e=a.R(e);e|=h;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.f[c]+f&65535;7!==c&&(e|=h);a.a-=4;break;case 5:f=-2;e=a.f[c]-2&65535;7!==c&&(e|=h);e=a.R(e)|h;a.a-= -8;break;case 6:return e=a.R(gc(a,2)),e=e+a.f[c]&65535|h,a.a-=6,e;case 7:return e=a.R(gc(a,2)),e=e+a.f[c]&65535,e=a.R(e|a.N)|h,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!h||a.A&57344||(a.oa=a.oa<<8|f<<3&248|c);6==c&&!a.u&&d&4&&0>=f&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32?(a.G|=4,a.f[6]=4,F(a,4,24)):(a.G|=8,a.l|=64));return e}g.Ga=function(a,b){this.Ea?(this.T++,nc(this,mc(this,a,5),b),this.T--):this.m.Ga(a,b)};g.Eb=function(a,b,c){return oc(this,a,b,c)}; -g.Fb=function(a,b,c){return mc(this,oc(this,a,b,c),c)};g.pc=function(a){return pb(this.m,a)};g.qc=function(a){return pb(this.m,mc(this,a,2))};g.bd=function(a,b){qb(this.m,a,b&65535)};g.cd=function(a,b){qb(this.m,mc(this,a,4),b)};function pc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=oc(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.u=a.w>>12&3,c=a.R(d|c&a.N),a.u=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.f[d]:a.aa[a.w>>12&3];return c} -function qc(a,b,c,d){a.A&57344||(a.oa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=oc(a,b,e,4),c&65536||(e&=65535),a.u=a.w>>12&3,e=mc(a,e|c&65536,4),a.u=a.w>>14&3,qb(a.m,e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.f[e]=d:a.aa[a.w>>12&3]=d}function rc(a,b){b>>=6;var c=a.C=b&7;(b=a.B=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function Q(a,b){b>>=6;var c=a.C=b&7;return(b=a.B=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function sc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return oc(a,b,c,8)} -function tc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.m,c)):a=a.f[c]&255;return a}function uc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?pb(a.m,a.J(b,c,2)):a.f[c]}function R(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.Ya=a.J(b,e,7),nc(a,e,d.call(a,c,ob(a.m,e)))):a.f[e]=a.f[e]&65280|d.call(a,c,a.f[e])}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.J(b,e,6),qb(a.m,e,d.call(a,c,pb(a.m,e)))):a.f[e]=d.call(a,c,a.f[e])} -function vc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?nc(a,a.J(b,e,5),c):a.f[e]=c?d&1?c<<24>>24&65535:a.f[e]&-256|c&255:a.f[e]&-256;return c}function wc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?qb(a.m,a.J(b,d,4),c):a.f[d]=c&65535;return c}function T(a,b,c){c&&(M(a,a.f[7]+(b<<24>>23)),a.a-=2);a.a-=3} -g.xb=function(a){this.i.complete=!0;this.i.Cb=!1;this.i.wb=!1;this.ha=this.a=a;do{if(this.l&&(this.l&112&&(this.l&32?F(this,168,28):this.l&64?F(this,4,30):this.l&16&&F(this,12,32),this.l&=-113),this.l&7))if(this.l&2){this.l&=-3;var b=160,c=(this.hb&224)>>5;if(a=this.X&&this.X.va>c?this.X:null)b=a.wc,c=a.va;c>(this.w&224)>>5?(this.l&4&&(gc(this,2),this.l&=-5),F(this,b,26),c=!0):c=!1;if(c&&a)if(c=this.X,c==a)this.X=a.next;else for(;c;){b=c.next;if(b==a){c.next=b.next;break}c=b}}else this.l&1&&this.l++; -this.l=this.l&7|this.w&16;this.decode(fc(this))}while(0>1|b<<16;P(this,a);return a&65535}function Cc(a,b){a=b&2048|b>>1|b<<8;P(this,a<<8);return a&255}function Dc(a,b){a=b&~a;N(this,a);return a}function Ec(a,b){a=b&~a;N(this,a<<8);return a}function Fc(a,b){a|=b;N(this,a);return a}function Gc(a,b){a|=b;N(this,a<<8);return a}function Hc(a,b){a=~b|65536;O(this,a);return a&65535}function Ic(a,b){a=~b|256;O(this,a<<8);return a&255}function Jc(a,b){a=b-a;this.l&128||(this.o=this.h=a,this.g=b&(b^a));return a&65535} -function Kc(a,b){a=b-a;var c=a<<8;b<<=8;this.l&128||(this.o=this.h=c,this.g=b&(b^c));return a&255}function Lc(a,b){a=b+a;this.l&128||(this.o=this.h=a,this.g=a&(b^a));return a&65535}function Mc(a,b){a=b+a;var c=a<<8;this.l&128||(this.o=this.h=c,this.g=c&(b<<8^c));return a&255}function Nc(a,b){a=-b;O(this,a,a&b&32768);return a&65535}function Oc(a,b){a=-b;O(this,a<<8,(a&b&128)<<8);return a&255}function Pc(a,b){a=b<<1|this.j>>16&1;P(this,a);return a&65535} -function Qc(a,b){a=b<<1|this.j>>16&1;P(this,a<<8);return a&255}function Rc(a,b){a=(this.j&65536|b)>>1|b<<16;P(this,a);return a&65535}function Sc(a,b){a=((this.j&65536)>>8|b)>>1|b<<8;P(this,a<<8);return a&255}function Tc(a,b){var c=b-a;ic(this,c,a,b);return c&65535}function Uc(a,b){var c=b-a;ic(this,c<<8,a<<8,b<<8);return c&255}function Vc(a,b){this.l&128||(this.o=this.h=b&65280,this.g=this.j=0);return(b<<8|b>>8)&65535}function Wc(a,b){a^=b;N(this,a);return a&65535} -function Xc(a){S(this,a,Q(this,a),xc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Yc(a){var b=uc(this,a);a=a>>6&7;var c=this.f[a];c&32768&&(c|=4294901760);this.j=this.g=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.g=32768)}this.f[a]=c&65535;this.o=this.h=c;this.a-=(this.c?6:7)+b} -function Zc(a){var b=uc(this,a);a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&=63;if(b&32){b=64-b;32>b-1;this.j=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.f[a|1]=d&65535;this.o=d>>16;this.h=d>>16|d;this.a-=(this.c?6:7)+b}function $c(a){T(this,a,!L(this))}function ad(a){T(this,a,L(this))} -function bd(a){S(this,a,Q(this,a),Dc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function cd(a){R(this,a,rc(this,a),Ec);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function dd(a){S(this,a,Q(this,a),Fc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function ed(a){R(this,a,rc(this,a),Gc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} -function fd(a){N(this,Q(this,a)&uc(this,a));this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function gd(a){N(this,(rc(this,a)&tc(this,a))<<8);this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function hd(a){T(this,a,this.h&65535?0:4)}function id(a){T(this,a,!this.ma()==!(this.g&32768))}function jd(a){T(this,a,!!(this.h&65535)&&!this.ma()==!(this.g&32768))}function kd(a){T(this,a,!L(this)&&!!(this.h&65535))} -function ld(a){T(this,a,(this.h&65535?0:4)||!this.ma()!=!(this.g&32768))}function md(a){T(this,a,L(this)||(this.h&65535?0:4))}function nd(a){T(this,a,!this.ma()!=!(this.g&32768))}function od(a){T(this,a,this.ma())}function pd(a){T(this,a,!!(this.h&65535))}function qd(a){T(this,a,!this.ma())}function rd(){F(this,12,1);this.a-=5}function sd(a){T(this,a,!0)}function td(a){T(this,a,!(this.g&32768))}function ud(a){T(this,a,this.g&32768?2:0)} -function U(a){a&1&&(this.j=0);a&2&&(this.g=0);a&4&&(this.h=1);a&8&&(this.o=0);this.a-=5}function vd(a){var b=Q(this,a);a=uc(this,a);ic(this,b-a,a,b);this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function wd(a){var b=rc(this,a)<<8;a=tc(this,a)<<8;ic(this,b-a,a,b);this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)} -function xd(a){var b=uc(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.f[a]=d&65535,this.f[a|1]=c-d*b&65535,this.h=d>>16|d,this.o=d>>16):(this.g=32768,this.h=d>>15|d,this.o=c>>16,-1===b&&65534===this.f[a]&&(this.f[a]=this.f[a|1]=1));this.a-=53}else this.h=this.o=0,this.g=32768,this.j=65536,this.a-=7}function yd(){F(this,24,2);this.a-=25} -function zd(){this.w&49152?(this.G|=128,F(this,4,3)):this.F?this.F.c():Xa(this);this.a-=7}function Ad(){F(this,16,4);this.a-=25}var Bd=[0,7,7,10,7,11,9,13];function V(a){var b=this.a;M(this,sc(this,a));this.a=b-Bd[this.c]}var Cd=[0,14,14,17,14,18,16,20];function Dd(a){var b=this.a,c=sc(this,a);a=a>>6&7;jc(this,this.f[a]);this.f[a]=this.f[7];M(this,c);this.a=b-Cd[this.c]}var Ed=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17]; -function Fd(a){var b=Q(this,a),c=this.a;N(this,wc(this,a,b));this.a=c-Ed[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)}function Gd(a){var b=rc(this,a);N(this,vc(this,a,b,1)<<8);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Hd=[7,13,13,17,14,18,17,21]; -function Id(a){var b=uc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.l&128||(this.o=b>>16,this.h=this.o|b,this.g=0,this.j=-32768>b||32767>6;if(this.f[b]=this.f[b]-1&65535)M(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Od(a){S(this,a,Q(this,a),Tc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function X(a){S(this,a,0,Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Pd(){F(this,28,5);this.a-=5}function Qd(){this.l&4||this.v.fa();this.l|=4;gc(this,-2);this.a-=3} -function Rd(a){S(this,a,Q(this,a),Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){F(this,8,6)}function bc(a){Sd[a>>12].call(this,a)}function Td(a){Ud[a>>6&3].call(this,a)}function Vd(a){Wd[a>>6&3].call(this,a)}function Xd(a){Zd[a>>6&3].call(this,a)}function $d(a){ae[a&15].call(this,a)}function be(a){ce[a&15].call(this,a)}function de(a){ee[a>>6&3].call(this,a)}function fe(a){ge[a>>6&3].call(this,a)}function he(a){ie[a>>6&3].call(this,a)} -var Sd=[function(a){je[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,Y,function(a){ke[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],je=[function(a){le[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Td,Vd,Xd,Y,Y,Y],Ud=[function(a){O(this,wc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],Wd=[function(a){S(this,a,0,Nc); -this.a-=this.c?11:6},function(a){S(this,a,L(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,L(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=uc(this,a);O(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Zd=[function(a){S(this,a,0,Rc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Bc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}],le=[function(a){me[a& -15].call(this,a)},Y,Y,Y,V,V,V,V,Md,Y,$d,be,X,X,X,X],me=[zd,Qd,Ld,rd,Ad,Kd,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],ae=[Jd,function(){this.j=0;this.a-=5},function(){this.g=0;this.a-=5},U,function(){this.h=1;this.a-=5},U,U,U,function(){this.o=0;this.a-=5},U,U,U,U,U,U,U],ce=[Jd,function(){this.j=65536;this.a-=5},function(){this.g=32768;this.a-=5},W,function(){this.h=0;this.a-=5},W,W,W,function(){this.o=32768;this.a-=5},W,W,W,W,W,W,W],ke=[qd,od,kd,md,td,ud,$c,ad,yd,Pd,de,fe,he,Y,Y,Y],ee=[function(a){O(this,vc(this,a,0)); -this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Ic);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Mc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)}],ge=[function(a){R(this,a,0,Oc);this.a-=this.c?11:6},function(a){R(this,a,L(this)?1:0,yc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,L(this)?1:0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=tc(this,a);O(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}],ie= -[function(a){R(this,a,0,Sc);this.a-=this.c?9+(this.Ya&1):3+(7==this.b?2:0)},function(a){R(this,a,0,Qc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){R(this,a,0,Cc);this.a-=this.c?9+(this.Ya&1):3+(7==this.b?2:0)},function(a){R(this,a,0,Ac);this.a-=this.c?9:3+(7==this.b?2:0)}];function cc(a){ne[a>>12].call(this,a)} -var ne=[function(a){oe[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,function(a){pe[a>>8&15].call(this,a)},function(a){qe[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],oe=[function(a){re[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Td,Vd,Xd,function(a){se[a>>6&3].call(this,a)},Y,Y],se=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.R(a|this.N);M(this,this.f[5]);this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=pc(this,a,0);jc(this,a);N(this,a);this.a-=11},function(a){var b=lc(this),c=this.a; -qc(this,a,0,b);N(this,b);this.a=c-Hd[this.c]},function(a){N(this,wc(this,a,this.ma?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],re=[function(a){te[a&15].call(this,a)},Y,Y,Y,V,V,V,V,Md,function(a){a&8?(this.w&49152||(this.w=this.w&-2017|(a&7)<<5,this.l|=1),this.a-=5):F(this,8,6)},$d,be,X,X,X,X],te=[zd,Qd,Ld,rd,Ad,Kd,function(){kc(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],pe=[Id,Id,xd,xd,Yc,Yc,Zc,Zc,Rd,Rd,Y,Y,Y,Y,Nd,Nd],qe=[qd,od,kd,md,td,ud,$c,ad,yd,Pd,de,fe,he,function(a){ue[a>>6&3].call(this,a)},Y, -Y],ue=[Y,function(a){a=pc(this,a,65536);jc(this,a);N(this,a);this.a-=11},function(a){var b=lc(this),c=this.a;qc(this,a,65536,b);N(this,b);this.a=c-Hd[this.c]},Y]; -function ve(a){u.call(this,"ROM",a,ve);this.Y=this.b=null;this.j=a.addr;this.c=a.size;this.h=a.alias;this.g=a.file;this.o=ka(this.g);if(this.g){a=this.g;var b=la(this.o);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;k(a,null,!0,function(a,b,f){f?c.I("Unable to load ROM resource (error "+f+": "+a+")"):(Pa(c.ra,a,b),(a=ua(a,b))?(c.b=a.L,c.Y=a.Y):c.g=null,we(c))})}}w(ve);ve.prototype.ea=function(a,b,c,d){this.m=b;this.a=c;this.F=d;we(this)}; -ve.prototype.$=function(){this.Y&&(this.F&&this.F.a(this.id,this.j,this.c,this.Y),delete this.Y);return!0};ve.prototype.Z=function(){return!0}; -function we(a){if(!Sa(a)){if(a.g){if(!a.b||!a.m)return;a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+ja(a.b.length,8,!0)+") does not match specified size ("+ja(a.c,8,!0)+")";a.i.error=!0;a.I(b)}else{b=a.j;if(kb(a.m,b,a.c,Ib)){var c;for(c=0;c=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=qa(b[0]);if(c!=this.Ia)return;b=qa(b[1]);if(this.u=Qa(b)){var d=this.u.exports;if(d){var e=d.connect;e&&e.call(this.u);if(this.A=d.receiveData){this.status(this.ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.$=function(a,b){if(!b)if(this.nb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; -g.Z=function(a){return a?this.save():!0};g.reset=function(){Ce(this)};g.save=function(){var a=new K(this);a.set(0,[]);return a.data()};g.restore=function(){return Ce(this)};function Ce(a){a.C=0;a.b=0;a.c=128;a.h=[];return!0}g.fb=function(a){if("number"==typeof a)this.h.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.H||8,c=a-this.o%a,this.H&&(b=" ".slice(0,c)));this.B&&!this.o&&c&&(b=String.fromCharCode(this.B)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.o+=c}else if(null!=this.j){if(10==a||1024<=this.j.length)this.P(this.j), -this.j="";10!=a&&(this.j+=String.fromCharCode(a))}this.c&=-129;yb(this.a,this.K,1)}};var De={},Be=(De[65392]=[null,null,Z.prototype.ec,Z.prototype.Rc,"RCSR"],De[65394]=[null,null,Z.prototype.dc,Z.prototype.Qc,"RBUF"],De[65396]=[null,null,Z.prototype.sc,Z.prototype.ed,"XCSR"],De[65398]=[null,null,Z.prototype.rc,Z.prototype.dd,"XBUF"],De);q(function(){for(var a=A(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.s[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.s[b]=c,c.onclick=function(){var a= -d.s.listTapes;a&&Ge(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(this.C)return this.s[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ge(d,ka(b,!0),b,1,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; -g.ea=function(a,b,c,d){this.v=a;this.m=b;this.a=c;this.F=d;var e=this;if((this.c=Tb(this.v,"autoMount")||this.c)&&"string"==typeof this.c)try{this.c=eval("("+this.c+")")}catch(f){m("PC11 auto-mount error: "+f.message+" ("+this.c+")"),this.c=null}this.J=zb(56,4);this.H=wb(this.a,function(){He(e)});tb(b,this,Ie);Je(this,"None",Ee,!0);this.C&&Je(this,"Local Tape","?");Je(this,"Remote Tape","??");Ke(this)||B(this)}; -g.$=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};g.Z=function(a){return a?this.save():!0};g.reset=function(){this.b&=-2241;this.u=0};function Ke(a){a.g=0;if(a.c){var b=a.c.path,c;if(!(c=a.c.name))a:{if((c=a.s.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!k(f,null,!0,function(e,f,h){var l=0>h&&a.v&&!a.v.i.M;h?a.I('Unable to load tape "'+b+'" (error '+h+": "+e+")",l):(Pa(a.ra,e,f),(e=ua(e,f))&&Oe(a,c,d,e.L));a.i.Wa=!1; -a.g&&(a.g--,a.g||B(a));Pe(a)})}function Je(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e=d.length){c=!0;break}b+=2;for(var h=d[b++]&255|(d[b++]&255)<<8,l=d[b++]&255|(d[b++]&255)<<8,f=f+((h&255)+(h>>8)+(l&255)+(l>>8)),n=b,r=h-=6;0=d.length){c=!0;break}f+=d[b++]&255;if(f&255){c=!0;break}if(r)for(;r--;)a.a.Ga(l++,d[n++]&255);else l&1||M(a.a,l);e++}else b++;else b+=2}c&&(a.h="",a.j=Ee,a.o=Fe)}else a.B= -0,a.A=d}function Me(a,b){if(a.h||!1===b)a.h="",b||(a.j=Ee,a.o=Fe,Pe(a))}g.save=function(){return(new K(this)).data()};g.restore=function(){return!0};function He(a){1==(a.b&32769)&&!(a.b&128)&&a.B\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bTe){if(Ve(d,this.u)){this.j=new K(this,"1.30.1","failsafe");Ve(this.j)&&($e(this,d),a=2,af(this.j));this.j.set("timestamp",ta());bf(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ze(d)){var f=d.get("code"),h=d.get("data");f&&("ok"==f?Ve(d,h):("error"== -f&&"no machine state"!=h?(this.I("Error: "+h),"unable to verify user"==h&&(za("user",""),this.c=null)):this.P(f+": "+h),af(d),Ve(d)?(c=Ze(d),e=!0):c=!1))}e&&Ye(this,c?d:null)}else 2==a&&d.clear()}else Ye(this);delete this.u;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.T=!0;this.i.M=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(cf(this,this.a,b,c,a),this.a.Da());this.H&&($e(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; -function $e(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;k("http://www.pcjs.org/api/v1/report",d,!0)}} -function df(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new K(a,"1.30.1"),h=new K(a,"1.30.1","validate"),l=ta();h.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&Xa(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.M=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;nf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");k(e,null,!0,function(f,h,l){if(l||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(h=h.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],h);lf(a,b,c)}})}else c(a,null)} -function mf(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=pa(a))}function f(a){e("Error: "+a);n&&(--hf||Ga(!0));n=!1}var h,l,n=!0;hf++;Oa[a]={};try{if(h=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=r:D.appendChild(document.createTextNode(r));t.appendChild(D)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?jf(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(h.outerHTML=n,--hf||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(n,h),--hf||Ga(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?jf(b,a,d,!0,e,r):kf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Yd){f(Yd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return mf(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map +g.$c=function(a,b){b=b>>1&7;this.a.S[3][b]=a;this.a.D[3][b]&=65295};g.lc=function(a){return this.a.S[3][(a>>1&7)+8]};g.Yc=function(a,b){b=(b>>1&7)+8;this.a.S[3][b]=a;this.a.D[3][b]&=65295};g.ya=function(a){a&=7;return this.a.v&2048?this.a.wa[a]:this.a.f[a]};g.Aa=function(a,b){b&=7;this.a.v&2048?this.a.wa[b]=a:this.a.f[b]=a};g.$b=function(){return this.a.v&49152?this.a.aa[0]:this.a.f[6]};g.Mc=function(a){this.a.v&49152?this.a.aa[0]=a:this.a.f[6]=a};g.cc=function(){return this.a.f[7]}; +g.Pc=function(a){this.a.f[7]=a};g.za=function(a){a&=7;return this.a.v&2048?this.a.f[a]:this.a.wa[a]};g.Ba=function(a,b){b&=7;this.a.v&2048?this.a.f[b]=a:this.a.wa[b]=a};g.ac=function(){return 1==(this.a.v&49152)>>14?this.a.f[6]:this.a.aa[1]};g.Nc=function(a){1==(this.a.v&49152)>>14?this.a.f[6]=a:this.a.aa[1]=a};g.bc=function(){return 3==(this.a.v&49152)>>14?this.a.f[6]:this.a.aa[3]};g.Oc=function(a){3==(this.a.v&49152)>>14?this.a.f[6]=a:this.a.aa[3]=a};g.Lb=function(a){return this.a.vb[a-65504>>1]}; +g.zc=function(a,b){this.a.vb[b-65504>>1]=a};g.tb=function(a){return 65520==a?61183:0};g.Ab=function(){};g.kc=function(){return 1};g.Xc=function(){};g.Kb=function(){return this.a.H};g.yc=function(){this.a.H=0};g.Rb=function(){return this.a.ub};g.Fc=function(a,b){b&1||(a&=255);this.a.ub=a};g.Wb=function(a){return a?this.a.hb:0};g.Ic=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.hb=a;b.l|=2};g.jc=function(a){return a?this.a.qa&65280:0};g.Wc=function(a){this.a.qa=a|255}; +g.Zb=function(){return Ya(this.a)};g.Lc=function(a){Bb(this.a,a&-1809|Ya(this.a)&1808);this.a.l|=128};g.zb=function(){}; +var J={},I=(J[62592]=[null,null,H.prototype.ic,H.prototype.Vc,"SISDR",1145],J[62608]=[null,null,H.prototype.gc,H.prototype.Tc,"SDSDR",1145],J[62624]=[null,null,H.prototype.hc,H.prototype.Uc,"SISAR",1145],J[62640]=[null,null,H.prototype.fc,H.prototype.Sc,"SDSAR",1145],J[62656]=[null,null,H.prototype.Pb,H.prototype.Dc,"KISDR",1145],J[62672]=[null,null,H.prototype.Nb,H.prototype.Bc,"KDSDR",1145],J[62688]=[null,null,H.prototype.Ob,H.prototype.Cc,"KISAR",1145],J[62704]=[null,null,H.prototype.Mb,H.prototype.Ac, +"KDSAR",1145],J[62798]=[null,null,H.prototype.Vb,H.prototype.Hc,"MMR3",1145],J[65382]=[null,null,H.prototype.Qb,H.prototype.Ec,"LKS"],J[65400]=[null,null,H.prototype.Jb,H.prototype.xc,"CNSL"],J[65402]=[null,null,H.prototype.Sb,H.prototype.Gc,"MMR0",1145],J[65404]=[null,null,H.prototype.Tb,H.prototype.zb,"MMR1",1145],J[65406]=[null,null,H.prototype.Ub,H.prototype.zb,"MMR2",1145],J[65408]=[null,null,H.prototype.oc,H.prototype.ad,"UISDR",1145],J[65424]=[null,null,H.prototype.mc,H.prototype.Zc,"UDSDR", +1145],J[65440]=[null,null,H.prototype.nc,H.prototype.$c,"UISAR",1145],J[65456]=[null,null,H.prototype.lc,H.prototype.Yc,"UDSAR",1145],J[65472]=[null,null,H.prototype.ya,H.prototype.Aa,"R0SET0"],J[65473]=[null,null,H.prototype.ya,H.prototype.Aa,"R1SET0"],J[65474]=[null,null,H.prototype.ya,H.prototype.Aa,"R2SET0"],J[65475]=[null,null,H.prototype.ya,H.prototype.Aa,"R3SET0"],J[65476]=[null,null,H.prototype.ya,H.prototype.Aa,"R4SET0"],J[65477]=[null,null,H.prototype.ya,H.prototype.Aa,"R5SET0"],J[65478]= +[null,null,H.prototype.$b,H.prototype.Mc,"R6KERNEL"],J[65479]=[null,null,H.prototype.cc,H.prototype.Pc,"R7KERNEL"],J[65480]=[null,null,H.prototype.za,H.prototype.Ba,"R0SET1",1145],J[65481]=[null,null,H.prototype.za,H.prototype.Ba,"R1SET1",1145],J[65482]=[null,null,H.prototype.za,H.prototype.Ba,"R2SET1",1145],J[65483]=[null,null,H.prototype.za,H.prototype.Ba,"R3SET1",1145],J[65484]=[null,null,H.prototype.za,H.prototype.Ba,"R4SET1",1145],J[65485]=[null,null,H.prototype.za,H.prototype.Ba,"R5SET1",1145], +J[65486]=[null,null,H.prototype.ac,H.prototype.Nc,"R6SUPER",1145],J[65487]=[null,null,H.prototype.bc,H.prototype.Oc,"R6USER",1145],J[65504]=[null,null,H.prototype.Lb,H.prototype.zc,"CTRL",1170],J[65520]=[null,null,H.prototype.tb,H.prototype.Ab,"LSIZE",1170],J[65522]=[null,null,H.prototype.tb,H.prototype.Ab,"HSIZE",1170],J[65524]=[null,null,H.prototype.kc,H.prototype.Xc,"SYSID",1170],J[65526]=[null,null,H.prototype.Kb,H.prototype.yc,"CPUERR",1170],J[65528]=[null,null,H.prototype.Rb,H.prototype.Fc, +"MB",1170],J[65530]=[null,null,H.prototype.Wb,H.prototype.Ic,"PIR"],J[65532]=[null,null,H.prototype.jc,H.prototype.Wc,"SL"],J[65534]=[null,null,H.prototype.Zb,H.prototype.Lc,"PSW"],J);I[62594]=I[62592];I[62596]=I[62592];I[62598]=I[62592];I[62600]=I[62592];I[62602]=I[62592];I[62604]=I[62592];I[62606]=I[62592];I[62610]=I[62608];I[62612]=I[62608];I[62614]=I[62608];I[62616]=I[62608];I[62618]=I[62608];I[62620]=I[62608];I[62622]=I[62608];I[62626]=I[62624];I[62628]=I[62624];I[62630]=I[62624];I[62632]=I[62624]; +I[62634]=I[62624];I[62636]=I[62624];I[62638]=I[62624];I[62642]=I[62640];I[62644]=I[62640];I[62646]=I[62640];I[62648]=I[62640];I[62650]=I[62640];I[62652]=I[62640];I[62654]=I[62640];I[62658]=I[62656];I[62660]=I[62656];I[62662]=I[62656];I[62664]=I[62656];I[62666]=I[62656];I[62668]=I[62656];I[62670]=I[62656];I[62674]=I[62672];I[62676]=I[62672];I[62678]=I[62672];I[62680]=I[62672];I[62682]=I[62672];I[62684]=I[62672];I[62686]=I[62672];I[62690]=I[62688];I[62692]=I[62688];I[62694]=I[62688];I[62696]=I[62688]; +I[62698]=I[62688];I[62700]=I[62688];I[62702]=I[62688];I[62706]=I[62704];I[62708]=I[62704];I[62710]=I[62704];I[62712]=I[62704];I[62714]=I[62704];I[62716]=I[62704];I[62718]=I[62704];I[65410]=I[65408];I[65412]=I[65408];I[65414]=I[65408];I[65416]=I[65408];I[65418]=I[65408];I[65420]=I[65408];I[65422]=I[65408];I[65426]=I[65424];I[65428]=I[65424];I[65430]=I[65424];I[65432]=I[65424];I[65434]=I[65424];I[65436]=I[65424];I[65438]=I[65424];I[65442]=I[65440];I[65444]=I[65440];I[65446]=I[65440];I[65448]=I[65440]; +I[65450]=I[65440];I[65452]=I[65440];I[65454]=I[65440];I[65458]=I[65456];I[65460]=I[65456];I[65462]=I[65456];I[65464]=I[65456];I[65466]=I[65456];I[65468]=I[65456];I[65470]=I[65456];I[65506]=I[65504];I[65508]=I[65504];I[65510]=I[65504];I[65512]=I[65504];I[65514]=I[65504];I[65516]=I[65504];I[65518]=I[65504];q(function(){for(var a=B(document,"pdp11","device"),b=0;b>1),this.a=new Int32Array(this.b,0,d>>2),Ib(this,Eb?Jb:Kb);else{this.a=Array(d>>2);for(a=0;a>2),b=0;b>8,c)},N:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ca:function(a,b){a&1&&ub(this.m,b);b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},ha:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.la=!0},G:function(a,b){return this.I(a,b)}, +T:function(a,b){return this.W(a,b)},ea:function(a,b,c){this.g||this.yb(a,b,c)},ja:function(a,b,c){this.g||this.ra(a,b,c)},C:function(a){return this.c[a]},J:function(a){return this.c[a]},O:function(a,b){a&1&&ub(this.m,b);return this.s.getUint16(a,!0)},X:function(a,b){a&1&&ub(this.m,b);return this.o[a>>1]},da:function(a,b){this.c[a]=b;this.la=!0},ga:function(a,b){this.c[a]=b;this.la=!0},ia:function(a,b,c){a&1&&ub(this.m,c);this.s.setUint16(a,b,!0);this.la=!0},sa:function(a,b,c){a&1&&ub(this.m,c);this.o[a>> +1]=b;this.la=!0}};function db(a,b,c){a.F=b;a.h=a.j=0;c&&((a.h=c.h)&&Mb(a,Nb,!1),(a.j=c.j)&&Ob(a,Nb,!1))}function Ob(a,b,c){c&&a.j||(a.jb=!a.g&&b[1]||a.A,a.Xa=!a.g&&b[3]||a.B);if(c||void 0===c)a.yb=b[1]||a.A,a.ra=b[3]||a.B}function Mb(a,b,c){c&&a.h||(a.eb=b[0]||a.w,a.R=b[2]||a.u);if(c||void 0===c)a.I=b[0]||a.w,a.W=b[2]||a.u}function Ib(a,b){b||(b=Pb);Mb(a,b,void 0);Ob(a,b,void 0)} +var Pb=[],Lb=[F.prototype.N,F.prototype.ha,F.prototype.ca,F.prototype.ta],Nb=[F.prototype.G,F.prototype.ea,F.prototype.T,F.prototype.ja];if(Ta)var Kb=[F.prototype.C,F.prototype.da,F.prototype.O,F.prototype.ia],Jb=[F.prototype.J,F.prototype.ga,F.prototype.X,F.prototype.sa]; +function Qb(a,b){u.call(this,"CPU",a,Qb);var c=a.multiplier||1;this.Sa=a.cycles||b;this.ea=c;this.ab=Math.round(this.Sa/1E4)/100;this.ga=this.ab*this.ea;this.i.U=!1;this.i.wb=!1;this.i.Fa=a.autoStart;this.i.Ra=!1;this.Pa=this.ia=0;this.Qa=a.csStart;this.sa=a.csInterval;this.ta=a.csStop;this.G=[];this.sb=this.tc.bind(this);C(this)}w(Qb);var Rb=["power","reset"];g=Qb.prototype; +g.fa=function(a,b,c,d){this.w=a;this.m=b;this.F=d;for(b=0;ba.ca/a.ga&&(b=1),a.ea=b,b=a.ab*a.ea,a.ga!=b)){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var c=a.s.setSpeed;c&&(c.textContent=b);a.P("target speed: "+b)}a.J+=a.W;a.W=0;a.O=sa();a.da=0;Xb(a)}function vb(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function xb(a,b,c,d){0<=b&&ba.G[b][0])&&(c=a.Sa*a.ea/1E3*c|0,a.G[b][0]=c+Zb(a))}function Zb(a,b){var c=a.ha-=a.a;a.a=0;b&&(a.ha=0);return c} +g.tc=function(){if(this.i.U){this.cb>=this.Sa&&Xb(this,!0);this.Da=0;this.Oa=sa();if(this.da){var a=this.Oa-this.da;a>this.qb&&(this.O+=a,this.O>this.Oa&&(this.O=this.Oa))}try{do{for(var b,c=this.i.Ra?1:this.Ta,d=this.G.length-1;0<=d;d--){var e=this.G[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.xb(b)}catch(n){if("number"!=typeof n)throw n;}b=Zb(this,!0);this.Da+=b;this.W+=b;a=b;if(this.i.Ra){var f=!1;this.Pa=this.Pa+this.mb()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.sa,f=!0);0<=this.ta&&this.ta<=Yb(this)&& +(this.sa=this.ta=-1,Ub(this),D(this),f=!0);f&&this.P(Yb(this)+" cycles: checksum="+ja(this.Pa))}for(var a=b,h=this.G.length-1;0<=h;h--){var l=this.G[h];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.Ca-=b;if(0>=this.Ca){this.Ca+=this.Ta;15<=++this.rb&&(this.w&&this.w.ba(),this.rb=0);break}}while(this.i.U)}catch(n){D(this);this.w&&this.w.stop(sa(),Yb(this));b=n.stack||n.message;this.i.error=!0;this.K(b);return}if(this.i.U){b=setTimeout;c=this.sb;this.da=sa();d=this.qb;this.Da&&(d=Math.round(d*this.Da/ +this.Ta));d-=this.da-this.Oa;if(e=this.da-this.O)this.ca=Math.round(this.W/(10*e))/100,864E5<=e&&(this.J=0,Wb(this));if(0>d||this.cad&&(this.O-=d),d=0;this.cb+=this.Da;this.da+=d;b(c,d)}}};function Vb(a){var b;a.i.error?(a.P(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.U)a.P(a.toString()+" busy");else{Wb(a);a.i.U=!0;a.i.wb=!0;if(b=a.s.run)b.textContent="Halt";a.w&&a.w.start(a.O,Yb(a));setTimeout(a.sb,0)}}g.xb=function(){return 0}; +function D(a){if(a.i.U){Zb(a);a.J+=a.W;a.W=0;a.i.U=!1;var b=a.s.run;b&&(b.textContent="Run");a.w&&a.w.stop(sa(),Yb(a))}a.i.complete=void 0}function $b(a){this.Ja=+a.model||1170;this.ob=a.addrReset||0;Qb.call(this,a,6666667);this.decode=1120==this.Ja?ac.bind(this):bc.bind(this);cc(this);this.T=0;this.X=null;this.i.complete=this.i.Cb=!1}w($b,Qb);g=$b.prototype;g.reset=function(){this.status("model "+this.Ja);this.i.U&&D(this);cc(this);Tb(this);this.i.error=!1;this.parent.reset.call(this)}; +function cc(a){a.j=65536;a.g=32768;a.h=65535;a.o=32768;a.v=15;a.f=[0,0,0,0,0,0,0,a.ob];a.wa=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.u=0;a.Ma=0;a.Gb=[4,2,0,1];a.D=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.S=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.vb=[0,0,0,0,0,0,0,0];a.ub=0;a.l=0;a.B=a.C=0;a.c=a.b=a.$a=0;a.ja=-1;dc(a)}function dc(a){a.qa=255;a.H=0;a.hb=0;a.A=0;a.oa=0;a.gb=0;a.pa=0;a.Ga=0;a.La=0;a.bb=262143;a.Na=253952;a.l|=2;a.m&&zb(a)}function zb(a){a.Ga?(a.N=65536,a.I=a.Fb,a.R=a.qc,a.Xa=a.cd,gb(a.m,a.pa&16?22:18)):(a.N=0,a.I=a.Eb,a.R=a.pc,a.Xa=a.bd,gb(a.m,16))}function ec(a,b){a.ob=b;L(a,b);a.F&&(D(a),a.F.ba())}g.mb=function(){return 0}; +g.save=function(){var a=new M(this);a.set(0,[]);a.set(1,[this.J,this.ea]);a.set(2,qb(this.m));return a.data()};g.restore=function(a){var b=a[1];this.J=b[1];Wb(this,b[3]);a:{b=this.m;a=a[2];var c;for(c=0;c>14&3;c=a.v>>14&3;a.u!=c&&(a.aa[c]=a.f[6],a.f[6]=a.aa[a.u]);a.v=b;a.l|=2}function O(a,b){a.l&128||(a.o=a.h=b,a.g=0)}function P(a,b,c){a.l&128||(a.o=a.h=a.j=b,a.g=c||0)}function hc(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^b)&(d^b))}function Q(a,b){a.l&128||(a.o=a.h=a.j=b,a.g=a.o^a.j>>1)}function ic(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^d)&(d^b))} +function G(a,b,c){if(!a.T){var d=!1;0>a.ja?a.ja=Ya(a):a.u||(b=4,d=!0);a.A&57344||(a.oa=63222,a.gb=b);a.u=0;var e=a.R(b|a.N),f=a.R(b+2&65535|a.N);Bb(a,f&-12289|a.ja>>2&12288);d&&(a.H|=4,a.f[6]=4);jc(a,a.ja);jc(a,a.f[7]);L(a,e);a.l&=-113;a.ja=-1;if(26!=c)throw b;}}function kc(a){var b=lc(a),c=lc(a)&-1793;a.v&49152&&(c=c&-225|a.v&63712);L(a,b);Bb(a,c);a.l&=-17} +function mc(a,b,c){var d,e,f,h=0;d=b>>13;a.pa&a.Gb[a.u]||(d&=7);e=a.D[a.u][d];f=(a.S[a.u][d]<<6)+(b&8191)&a.bb;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.pa&32&&(f=a.Ib[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Na&&4186112>f&&(a.H|=32,G(a,4,12))}switch(e&7){case 1:h=4096;case 2:e|=128;c&4&&(h=8192);break;case 4:h=4096;case 5:c&4&&(h=4096);case 6:e|=c&4?192: +128;break;default:h=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(h|=16384):(b&8128)>(e>>2&8128)&&(h|=16384));a.D[a.u][d]=e;if(4194170!==f||a.u)a.La=a.u,a.Ma=d;h&&(h&57344&&(0<=a.ja&&(h|=128),a.A&57344||(a.A=a.A|h|a.La<<5|a.Ma<<1),G(a,168,16)),a.A&61440||!(4191360>f||4194239>>a.m].jb(b&a.g,c&255,b)}function lc(a){var b=a.R(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b} +function jc(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.oa=a.oa<<8|246);!a.u&&c<=a.qa&&4c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=h);e=a.R(e);e|=h;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.f[c]+f&65535;7!==c&&(e|=h);a.a-=4;break;case 5:f=-2;e=a.f[c]-2&65535;7!==c&&(e|=h);e=a.R(e)|h;a.a-= +8;break;case 6:return e=a.R(gc(a,2)),e=e+a.f[c]&65535|h,a.a-=6,e;case 7:return e=a.R(gc(a,2)),e=e+a.f[c]&65535,e=a.R(e|a.N)|h,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!h||a.A&57344||(a.oa=a.oa<<8|f<<3&248|c);6==c&&!a.u&&d&4&&0>=f&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32?(a.H|=4,a.f[6]=4,G(a,4,24)):(a.H|=8,a.l|=64));return e}g.Ia=function(a,b){this.Ga?(this.T++,nc(this,mc(this,a,5),b),this.T--):this.m.Ia(a,b)};g.Eb=function(a,b,c){return oc(this,a,b,c)}; +g.Fb=function(a,b,c){return mc(this,oc(this,a,b,c),c)};g.pc=function(a){return ob(this.m,a)};g.qc=function(a){return ob(this.m,mc(this,a,2))};g.bd=function(a,b){pb(this.m,a,b&65535)};g.cd=function(a,b){pb(this.m,mc(this,a,4),b)};function pc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=oc(a,b,d,2),c&65536||61440!==(a.v&61440)&&(d&=65535),a.u=a.v>>12&3,c=a.R(d|c&a.N),a.u=a.v>>14&3):c=6!=d||(a.v>>2&12288)===(a.v&12288)?a.f[d]:a.aa[a.v>>12&3];return c} +function qc(a,b,c,d){a.A&57344||(a.oa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=oc(a,b,e,4),c&65536||(e&=65535),a.u=a.v>>12&3,e=mc(a,e|c&65536,4),a.u=a.v>>14&3,pb(a.m,e,d)):6!=e||(a.v>>2&12288)===(a.v&12288)?a.f[e]=d:a.aa[a.v>>12&3]=d}function rc(a,b){b>>=6;var c=a.C=b&7;(b=a.B=(b&56)>>3)?(c=a.I(b,c,3),a=nb(a.m,c)):a=a.f[c]&255;return a}function R(a,b){b>>=6;var c=a.C=b&7;return(b=a.B=(b&56)>>3)?ob(a.m,a.I(b,c,2)):a.f[c]}function sc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return oc(a,b,c,8)} +function tc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.I(b,c,3),a=nb(a.m,c)):a=a.f[c]&255;return a}function uc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?ob(a.m,a.I(b,c,2)):a.f[c]}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.$a=a.I(b,e,7),nc(a,e,d.call(a,c,nb(a.m,e)))):a.f[e]=a.f[e]&65280|d.call(a,c,a.f[e])}function T(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.I(b,e,6),pb(a.m,e,d.call(a,c,ob(a.m,e)))):a.f[e]=d.call(a,c,a.f[e])} +function vc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?nc(a,a.I(b,e,5),c):a.f[e]=c?d&1?c<<24>>24&65535:a.f[e]&-256|c&255:a.f[e]&-256;return c}function wc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?pb(a.m,a.I(b,d,4),c):a.f[d]=c&65535;return c}function U(a,b,c){c&&(L(a,a.f[7]+(b<<24>>23)),a.a-=2);a.a-=3} +g.xb=function(a){this.i.complete=!0;this.i.Cb=!1;this.i.wb=!1;this.ha=this.a=a;do{if(this.l&&(this.l&112&&(this.l&32?G(this,168,28):this.l&64?G(this,4,30):this.l&16&&G(this,12,32),this.l&=-113),this.l&7))if(this.l&2){this.l&=-3;var b=160,c=(this.hb&224)>>5;if(a=this.X&&this.X.xa>c?this.X:null)b=a.wc,c=a.xa;c>(this.v&224)>>5?(this.l&4&&(gc(this,2),this.l&=-5),G(this,b,26),c=!0):c=!1;if(c&&a)if(c=this.X,c==a)this.X=a.next;else for(;c;){b=c.next;if(b==a){c.next=b.next;break}c=b}}else this.l&1&&this.l++; +this.l=this.l&7|this.v&16;this.decode(fc(this))}while(0>1|b<<16;Q(this,a);return a&65535}function Cc(a,b){a=b&2048|b>>1|b<<8;Q(this,a<<8);return a&255}function Dc(a,b){a=b&~a;O(this,a);return a}function Ec(a,b){a=b&~a;O(this,a<<8);return a}function Fc(a,b){a|=b;O(this,a);return a}function Gc(a,b){a|=b;O(this,a<<8);return a}function Hc(a,b){a=~b|65536;P(this,a);return a&65535}function Ic(a,b){a=~b|256;P(this,a<<8);return a&255}function Jc(a,b){a=b-a;this.l&128||(this.o=this.h=a,this.g=b&(b^a));return a&65535} +function Kc(a,b){a=b-a;var c=a<<8;b<<=8;this.l&128||(this.o=this.h=c,this.g=b&(b^c));return a&255}function Lc(a,b){a=b+a;this.l&128||(this.o=this.h=a,this.g=a&(b^a));return a&65535}function Mc(a,b){a=b+a;var c=a<<8;this.l&128||(this.o=this.h=c,this.g=c&(b<<8^c));return a&255}function Nc(a,b){a=-b;P(this,a,a&b&32768);return a&65535}function Oc(a,b){a=-b;P(this,a<<8,(a&b&128)<<8);return a&255}function Pc(a,b){a=b<<1|this.j>>16&1;Q(this,a);return a&65535} +function Qc(a,b){a=b<<1|this.j>>16&1;Q(this,a<<8);return a&255}function Rc(a,b){a=(this.j&65536|b)>>1|b<<16;Q(this,a);return a&65535}function Sc(a,b){a=((this.j&65536)>>8|b)>>1|b<<8;Q(this,a<<8);return a&255}function Tc(a,b){var c=b-a;ic(this,c,a,b);return c&65535}function Uc(a,b){var c=b-a;ic(this,c<<8,a<<8,b<<8);return c&255}function Vc(a,b){this.l&128||(this.o=this.h=b&65280,this.g=this.j=0);return(b<<8|b>>8)&65535}function Wc(a,b){a^=b;O(this,a);return a&65535} +function Xc(a){T(this,a,R(this,a),xc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Yc(a){var b=uc(this,a);a=a>>6&7;var c=this.f[a];c&32768&&(c|=4294901760);this.j=this.g=0;b&=63;if(b&32)b=64-b,16>=b;else if(b)if(16>15&65535;d&&65535!==d&&(this.g=32768)}this.f[a]=c&65535;this.o=this.h=c;this.a-=(this.c?6:7)+b} +function Zc(a){var b=uc(this,a);a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&=63;if(b&32){b=64-b;32>b-1;this.j=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<>15,d<<=1,32>=32-b)&&4294967295!==(c|4294967295<>16&65535;this.f[a|1]=d&65535;this.o=d>>16;this.h=d>>16|d;this.a-=(this.c?6:7)+b}function $c(a){U(this,a,!N(this))}function ad(a){U(this,a,N(this))} +function bd(a){T(this,a,R(this,a),Dc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function cd(a){S(this,a,rc(this,a),Ec);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function dd(a){T(this,a,R(this,a),Fc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function ed(a){S(this,a,rc(this,a),Gc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} +function fd(a){O(this,R(this,a)&uc(this,a));this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function gd(a){O(this,(rc(this,a)&tc(this,a))<<8);this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function hd(a){U(this,a,this.h&65535?0:4)}function id(a){U(this,a,!this.ma()==!(this.g&32768))}function jd(a){U(this,a,!!(this.h&65535)&&!this.ma()==!(this.g&32768))}function kd(a){U(this,a,!N(this)&&!!(this.h&65535))} +function ld(a){U(this,a,(this.h&65535?0:4)||!this.ma()!=!(this.g&32768))}function md(a){U(this,a,N(this)||(this.h&65535?0:4))}function nd(a){U(this,a,!this.ma()!=!(this.g&32768))}function od(a){U(this,a,this.ma())}function pd(a){U(this,a,!!(this.h&65535))}function qd(a){U(this,a,!this.ma())}function rd(){G(this,12,1);this.a-=5}function sd(a){U(this,a,!0)}function td(a){U(this,a,!(this.g&32768))}function ud(a){U(this,a,this.g&32768?2:0)} +function V(a){a&1&&(this.j=0);a&2&&(this.g=0);a&4&&(this.h=1);a&8&&(this.o=0);this.a-=5}function vd(a){var b=R(this,a);a=uc(this,a);ic(this,b-a,a,b);this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function wd(a){var b=rc(this,a)<<8;a=tc(this,a)<<8;ic(this,b-a,a,b);this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)} +function xd(a){var b=uc(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.j=this.g=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.f[a]=d&65535,this.f[a|1]=c-d*b&65535,this.h=d>>16|d,this.o=d>>16):(this.g=32768,this.h=d>>15|d,this.o=c>>16,-1===b&&65534===this.f[a]&&(this.f[a]=this.f[a|1]=1));this.a-=53}else this.h=this.o=0,this.g=32768,this.j=65536,this.a-=7}function yd(){G(this,24,2);this.a-=25} +function zd(){this.v&49152?(this.H|=128,G(this,4,3)):this.F?this.F.c():D(this);this.a-=7}function Ad(){G(this,16,4);this.a-=25}var Bd=[0,7,7,10,7,11,9,13];function W(a){var b=this.a;L(this,sc(this,a));this.a=b-Bd[this.c]}var Cd=[0,14,14,17,14,18,16,20];function Dd(a){var b=this.a,c=sc(this,a);a=a>>6&7;jc(this,this.f[a]);this.f[a]=this.f[7];L(this,c);this.a=b-Cd[this.c]}var Ed=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17]; +function Fd(a){var b=R(this,a),c=this.a;O(this,wc(this,a,b));this.a=c-Ed[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)}function Gd(a){var b=rc(this,a);O(this,vc(this,a,b,1)<<8);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Hd=[7,13,13,17,14,18,17,21]; +function Id(a){var b=uc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.l&128||(this.o=b>>16,this.h=this.o|b,this.g=0,this.j=-32768>b||32767>6;if(this.f[b]=this.f[b]-1&65535)L(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Od(a){T(this,a,R(this,a),Tc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Pd(a){T(this,a,0,Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Qd(){G(this,28,5);this.a-=5}function Rd(){this.l&4||this.w.ba();this.l|=4;gc(this,-2);this.a-=3} +function Sd(a){T(this,a,R(this,a),Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){G(this,8,6)}function ac(a){Td[a>>12].call(this,a)}function Ud(a){Vd[a>>6&3].call(this,a)}function Wd(a){Xd[a>>6&3].call(this,a)}function Yd(a){Zd[a>>6&3].call(this,a)}function ae(a){be[a&15].call(this,a)}function ce(a){de[a&15].call(this,a)}function ee(a){fe[a>>6&3].call(this,a)}function ge(a){he[a>>6&3].call(this,a)}function ie(a){je[a>>6&3].call(this,a)} +var Td=[function(a){ke[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,Y,function(a){le[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],ke=[function(a){me[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Ud,Wd,Yd,Y,Y,Y],Vd=[function(a){P(this,wc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],Xd=[function(a){T(this,a,0,Nc); +this.a-=this.c?11:6},function(a){T(this,a,N(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,N(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=uc(this,a);P(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Zd=[function(a){T(this,a,0,Rc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Bc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}],me=[function(a){ne[a& +15].call(this,a)},Y,Y,Y,W,W,W,W,Md,Y,ae,ce,Pd,Pd,Pd,Pd],ne=[zd,Rd,Ld,rd,Ad,Kd,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],be=[Jd,function(){this.j=0;this.a-=5},function(){this.g=0;this.a-=5},V,function(){this.h=1;this.a-=5},V,V,V,function(){this.o=0;this.a-=5},V,V,V,V,V,V,V],de=[Jd,function(){this.j=65536;this.a-=5},function(){this.g=32768;this.a-=5},X,function(){this.h=0;this.a-=5},X,X,X,function(){this.o=32768;this.a-=5},X,X,X,X,X,X,X],le=[qd,od,kd,md,td,ud,$c,ad,yd,Qd,ee,ge,ie,Y,Y,Y],fe=[function(a){P(this,vc(this,a, +0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Ic);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Mc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)}],he=[function(a){S(this,a,0,Oc);this.a-=this.c?11:6},function(a){S(this,a,N(this)?1:0,yc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,N(this)?1:0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=tc(this,a);P(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}], +je=[function(a){S(this,a,0,Sc);this.a-=this.c?9+(this.$a&1):3+(7==this.b?2:0)},function(a){S(this,a,0,Qc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Cc);this.a-=this.c?9+(this.$a&1):3+(7==this.b?2:0)},function(a){S(this,a,0,Ac);this.a-=this.c?9:3+(7==this.b?2:0)}];function bc(a){oe[a>>12].call(this,a)} +var oe=[function(a){pe[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,function(a){qe[a>>8&15].call(this,a)},function(a){re[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],pe=[function(a){se[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Ud,Wd,Yd,function(a){te[a>>6&3].call(this,a)},Y,Y],te=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.R(a|this.N);L(this,this.f[5]);this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=pc(this,a,0);jc(this,a);O(this,a);this.a-=11},function(a){var b=lc(this),c=this.a; +qc(this,a,0,b);O(this,b);this.a=c-Hd[this.c]},function(a){O(this,wc(this,a,this.ma?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],se=[function(a){ue[a&15].call(this,a)},Y,Y,Y,W,W,W,W,Md,function(a){a&8?(this.v&49152||(this.v=this.v&-2017|(a&7)<<5,this.l|=1),this.a-=5):G(this,8,6)},ae,ce,Pd,Pd,Pd,Pd],ue=[zd,Rd,Ld,rd,Ad,Kd,function(){kc(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],qe=[Id,Id,xd,xd,Yc,Yc,Zc,Zc,Sd,Sd,Y,Y,Y,Y,Nd,Nd],re=[qd,od,kd,md,td,ud,$c,ad,yd,Qd,ee,ge,ie,function(a){ve[a>>6&3].call(this,a)}, +Y,Y],ve=[Y,function(a){a=pc(this,a,65536);jc(this,a);O(this,a);this.a-=11},function(a){var b=lc(this),c=this.a;qc(this,a,65536,b);O(this,b);this.a=c-Hd[this.c]},Y]; +function we(a){u.call(this,"ROM",a,we);this.Y=this.b=null;this.j=a.addr;this.c=a.size;this.h=a.alias;this.g=a.file;this.o=ka(this.g);if(this.g){a=this.g;var b=la(this.o);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;k(a,null,!0,function(a,b,f){f?c.K("Unable to load ROM resource (error "+f+": "+a+")"):(Pa(c.ra,a,b),(a=ua(a,b))?(c.b=a.L,c.Y=a.Y):c.g=null,xe(c))})}}w(we);we.prototype.fa=function(a,b,c,d){this.m=b;this.a=c;this.F=d;xe(this)}; +we.prototype.$=function(){this.Y&&(this.F&&this.F.a(this.id,this.j,this.c,this.Y),delete this.Y);return!0};we.prototype.Z=function(){return!0}; +function xe(a){if(!Sa(a)){if(a.g){if(!a.b||!a.m)return;a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+ja(a.b.length,8,!0)+") does not match specified size ("+ja(a.c,8,!0)+")";a.i.error=!0;a.K(b)}else{b=a.j;if(jb(a.m,b,a.c,Hb)){var c;for(c=0;c=b.length)break;for(var h=h+2,n=b[h++]&255|(b[h++]&255)<<8,r=b[h++]&255|(b[h++]&255)<<8,l=l+((n&255)+(n>>8)+(r&255)+(r>>8)),t=h,y=n-=6;0=b.length)break;l+=b[h++]&255;if(l&255)break;if(y)for(;y--;)a.a.Ia(r++,b[t++]&255);else r&1?D(a.a):ec(a.a,r);f=!0}else h++;else h+=2}if(!f&&(null==c&&(c=e),null!=c)){for(e=0;e=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=qa(b[0]);if(c!=this.Ka)return;b=qa(b[1]);if(this.u=Qa(b)){var d=this.u.exports;if(d){var e=d.connect;e&&e.call(this.u);if(this.A=d.receiveData){this.status(this.ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.$=function(a,b){if(!b)if(this.nb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; +g.Z=function(a){return a?this.save():!0};g.reset=function(){Ee(this)};g.save=function(){var a=new M(this);a.set(0,[]);return a.data()};g.restore=function(){return Ee(this)};function Ee(a){a.C=0;a.b=0;a.c=128;a.h=[];return!0}g.fb=function(a){if("number"==typeof a)this.h.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.G||8,c=a-this.o%a,this.G&&(b=" ".slice(0,c)));this.B&&!this.o&&c&&(b=String.fromCharCode(this.B)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.o+=c}else if(null!=this.j){if(10==a||1024<=this.j.length)this.P(this.j), +this.j="";10!=a&&(this.j+=String.fromCharCode(a))}this.c&=-129;xb(this.a,this.J,1)}};var Fe={},De=(Fe[65392]=[null,null,Z.prototype.ec,Z.prototype.Rc,"RCSR"],Fe[65394]=[null,null,Z.prototype.dc,Z.prototype.Qc,"RBUF"],Fe[65396]=[null,null,Z.prototype.sc,Z.prototype.ed,"XCSR"],Fe[65398]=[null,null,Z.prototype.rc,Z.prototype.dd,"XBUF"],Fe);q(function(){for(var a=B(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.s[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.s[b]=c,c.onclick=function(){var a= +d.s.listTapes;a&&Ie(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(this.C)return this.s[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ie(d,ka(b,!0),b,1,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; +g.fa=function(a,b,c,d){this.w=a;this.m=b;this.a=c;this.F=d;this.G=Je(a);var e=this;if((this.c=Sb(this.w,"autoMount")||this.c)&&"string"==typeof this.c)try{this.c=eval("("+this.c+")")}catch(f){m("PC11 auto-mount error: "+f.message+" ("+this.c+")"),this.c=null}this.J=yb(56,4);this.I=vb(this.a,function(){Ke(e)});sb(b,this,Le);Me(this,"None",Ge,!0);this.C&&Me(this,"Local Tape","?");Me(this,"Remote Tape","??");Ne(this)||C(this)}; +g.$=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};g.Z=function(a){return a?this.save():!0};g.reset=function(){this.b&=-2241;this.u=0};function Ne(a){a.h=0;if(a.c){var b=a.c.path||"",c;if(!(c=a.c.name))a:{if((c=a.s.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!k(f,null,!0,function(e,f,h){var l=0>h&&a.w&&!a.w.i.M;h?a.K('Unable to load tape "'+b+'" (error '+h+": "+e+")",l):(Pa(a.ra,e,f),(e=ua(e,f))&&Se(a,b,c,d,e.L,e.va,e.ua)); +a.i.Ya=!1;a.h&&(a.h--,a.h||C(a));Pe(a)})}function Me(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bWe){if(Ye(d,this.u)){this.j=new M(this,"1.30.1","failsafe");Ye(this.j)&&(cf(this,d),a=2,df(this.j));this.j.set("timestamp",ta());ef(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=bf(d)){var f=d.get("code"),h=d.get("data");f&&("ok"==f?Ye(d,h):("error"== +f&&"no machine state"!=h?(this.K("Error: "+h),"unable to verify user"==h&&(za("user",""),this.c=null)):this.P(f+": "+h),df(d),Ye(d)?(c=bf(d),e=!0):c=!1))}e&&af(this,c?d:null)}else 2==a&&d.clear()}else af(this);delete this.u;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.T=!0;this.i.M=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(ff(this,this.a,b,c,a),this.a.Fa());this.G&&(cf(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; +function cf(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;k("http://www.pcjs.org/api/v1/report",d,!0)}} +function gf(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new M(a,"1.30.1"),h=new M(a,"1.30.1","validate"),l=ta();h.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&D(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.M=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;nf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");k(e,null,!0,function(f,h,l){if(l||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(h=h.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],h);of(a,b,c)}})}else c(a,null)} +function pf(a,b,c,d){function e(a){if(void 0===l){var b=h&&B(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--lf||Ga(!0));n=!1}var h,l,n=!0;lf++;Oa[a]={};try{if(h=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=r:y.appendChild(document.createTextNode(r));t.appendChild(y)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?mf(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(h.outerHTML=n,--lf||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(n,h),--lf||Ga(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?mf(b,a,d,!0,e,r):nf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch($d){f($d.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return pf(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map From 5652d222801bbd65406157d46f7220c857167a27 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Wed, 19 Oct 2016 11:31:43 -0700 Subject: [PATCH 15/32] Fixed the PC11 component to deliver bytes at (roughly) the same rate as a physical "high speed" paper tape reader would (TODO: Add a paper tape status display) --- modules/pdp11/lib/pc11.js | 33 ++--- versions/pdpjs/1.30.1/pdp11-dbg.js | 192 ++++++++++++++--------------- versions/pdpjs/1.30.1/pdp11.js | 80 ++++++------ 3 files changed, 153 insertions(+), 152 deletions(-) diff --git a/modules/pdp11/lib/pc11.js b/modules/pdp11/lib/pc11.js index 7d3225ab54..e1bc848ff5 100644 --- a/modules/pdp11/lib/pc11.js +++ b/modules/pdp11/lib/pc11.js @@ -714,23 +714,12 @@ PC11.prototype.advanceReader = function() if (!(this.prs & PDP11.PC11.PRS.DONE)) { if (this.iTapeData < this.aTapeData.length) { this.prb = this.aTapeData[this.iTapeData++] & 0xff; + if (MAXDEBUG) this.println("tape read " + str.toHexByte(this.prb) + " at pos " + str.toHexWord(this.iTapeData)); this.prs |= PDP11.PC11.PRS.DONE; this.prs &= ~PDP11.PC11.PRS.BUSY; if (this.prs & PDP11.PC11.PRS.RIE) { this.cpu.setTrigger(this.triggerReaderInterrupt); } - /* - * The PC11, by virtue of its "high speed", is supposed to deliver characters at 300 CPS, so - * that's the rate we'll choose as well (ie, 1000ms / 300). As an aside, the original "low speed" - * version of the reader ran at 10 CPS. - * - * TODO: Review this code. If we don't set the fReset parameter to true, the timer will eventually - * fire while the "Absolute Loader" tape is still reading bytes from, say, the "BASIC (Single User)" - * tape, causing an EXTRA advance to occur and a byte to be skipped. Passing true ensures that the - * timer cannot fire for AT LEAST 3ms after each advance. But we need to understand the reader's - * actual behavior. - */ - this.cpu.setTimer(this.timerReaderAdvance, 1000/300, true); } } } @@ -763,19 +752,31 @@ PC11.prototype.readPRS = function(addr) PC11.prototype.writePRS = function(data, addr) { if (data & PDP11.PC11.PRS.RE) { + /* + * From the 1976 Peripherals Handbook, p. 4-378: + * + * Set [RE] to allow the Reader to fetch one character. The setting of this bit clears Done, + * sets Busy, and clears the Reader Buffer (PRB). Operation of this bit is disabled if Error = 1; + * attempting to set it when Error = 1 will cause an immediate interrupt if Interrupt Enable = 1. + */ if (this.prs & PDP11.PC11.PRS.ERROR) { data &= ~PDP11.PC11.PRS.RE; - // if (this.prs & PDP11.PC11.PRS.RIE) { - // TODO: Generate an interrupt (error condition) - // } + if (this.prs & PDP11.PC11.PRS.RIE) { + this.cpu.setTrigger(this.triggerReaderInterrupt); + } } else { this.prs &= ~PDP11.PC11.PRS.DONE; this.prs |= PDP11.PC11.PRS.BUSY; this.prb = 0; + /* + * The PC11, by virtue of its "high speed", is supposed to deliver characters at 300 CPS, so + * that's the rate we'll choose as well (ie, 1000ms / 300). As an aside, the original "low speed" + * version of the reader ran at 10 CPS. + */ + this.cpu.setTimer(this.timerReaderAdvance, 1000/300); } } this.prs = (this.prs & ~PDP11.PC11.PRS.WMASK) | (data & PDP11.PC11.PRS.WMASK); - this.advanceReader(); }; /** diff --git a/versions/pdpjs/1.30.1/pdp11-dbg.js b/versions/pdpjs/1.30.1/pdp11-dbg.js index 1436da9d0b..5a5d4aa440 100644 --- a/versions/pdpjs/1.30.1/pdp11-dbg.js +++ b/versions/pdpjs/1.30.1/pdp11-dbg.js @@ -53,9 +53,9 @@ function nb(a,b){if(a.v.Lb)return a.v.Ia=!1,a.v.Lb=!1;if(a.v.error)return a.j(a. Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b>2;this.w=this.ua-1;this.C=this.H/this.ua|0;this.Ha=[];this.A=0;this.D=[];this.mc=[Ob,Pb,Qb,Rb];a=new I(this);Sb(a,this.i);this.W=Array(this.C);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.Ha[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.i&&D(this.i,64)&&C(this.i,e[4]+".readByte("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!0);this.i&&D(this.i,64)&&C(this.i,"warning: unconverted read access to byte @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c} function Pb(a,b,c){var d=!1,e=this.controller,f=e.Ha[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.Ha[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d?this.i&&D(this.i,64)&&C(this.i,f[4]+".writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!0,b),this.i&&D(this.i,64)&&C(this.i,"warning: unconverted write access to byte @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} @@ -102,7 +102,7 @@ k.Aa=function(a,b){if(!b){if(a&&this.restore){Qc(this);if(!this.restore(a))retur function Rc(a){void 0===a.tb&&(a.tb=0);void 0===a.gb&&(a.gb=-1);void 0===a.hb&&(a.hb=-1);a.v.cb=0<=a.tb&&0=a.ma&&(a.ma+=a.gb,c=!0);0<=a.hb&&a.hb<=Uc(a)&&(a.gb=a.hb=-1,Rc(a),a.aa(),c=!0);c&&a.j(Uc(a)+" cycles: checksum="+l(a.sb))}} k.ra=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.I[b]=c,!0;case "run":return this.I[b]=c,c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.v.ga)a=!0;else{var b=null,c,h=kb(a.id);for(c=0;ca.U/a.Wa?b=1:d=!0;a.Ma=b;b=a.ab*a.Ma;if(a.Wa!=b){a.Wa=b;b=a.Wa.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.D&&a.D.wb()}Wc(a,a.O);a.O=0;a.N=za();a.ba=0;Xc(a);return d}function hc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function jc(a,b,c,d){0<=b&&ba.K[b][0])&&(c=a.Ga*a.Ma/1E3*c|0,a.K[b][0]=c+Yc(a))} +function Qc(a){a.U=0;a.Eb=0;a.fa=a.O=a.ca=a.b=0;Rc(a);Vc(a,1)}function Vc(a,b,c){var d=!1;if(void 0!==b){.8>a.U/a.Wa?b=1:d=!0;a.Ma=b;b=a.ab*a.Ma;if(a.Wa!=b){a.Wa=b;b=a.Wa.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.D&&a.D.wb()}Wc(a,a.O);a.O=0;a.N=za();a.ba=0;Xc(a);return d}function hc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function jc(a,b,c){0<=b&&ba.K[b][0]&&(c=a.Ga*a.Ma/1E3*c|0,a.K[b][0]=c+Yc(a))} function Zc(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function $c(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Yc(a,b){var c=a.ca-=a.b;a.b=0;b&&(a.ca=0);return c} k.fd=function(){if(this.v.da){this.eb>=this.Ga&&Xc(this,!0);this.sa=0;this.Fa=za();if(this.ba){var a=this.Fa-this.ba;a>this.Cb&&(this.N+=a,this.N>this.Fa&&(this.N=this.Fa))}try{do{var b=Zc(this,this.v.cb?1:this.Qa);try{this.mb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.sa+=b;this.O+=b;Tc(this,b);$c(this,b);this.pa-=b;if(0>=this.pa){this.pa+=this.Qa;15<=++this.Eb&&(this.D&&this.D.$(),this.Eb=0);break}}while(this.v.da)}catch(e){this.aa();this.D&&this.D.stop(za(),Uc(this));rb(this, e.stack||e.message);return}if(this.v.da){a=setTimeout;b=this.Fb;this.ba=za();var c=this.Cb;this.sa&&(c=Math.round(c*this.sa/this.Qa));var c=c-(this.ba-this.Fa),d=this.ba-this.N;d&&(this.U=Math.round(this.O/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.Uc&&(this.N-=c),c=0;this.eb+=this.sa;this.ba+=c;a(b,c)}}}; @@ -145,7 +145,7 @@ function wf(a){R(this,a,Sd(this,a),ye);this.b-=this.g?9:3+(7==this.f?2:0)}functi function Mf(a){Nf[a>>6&3].call(this,a)} var xf=[function(a){Of[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,ze,V,function(a){Pf[a>>8&15].call(this,a)},kf,Ze,Je,Fe,He,sf,V],Of=[function(a){Qf[a>>4&15].call(this,a)},Ve,Se,Ke,Le,Qe,Me,Oe,gf,gf,yf,Af,Cf,V,V,V],zf=[function(a){Ed(this,Xd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,je);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,ne);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,le);this.b-=this.g?9:3+(7==this.f?2:0)}],Bf=[function(a){R(this,a,0, pe);this.b-=this.g?11:6},function(a){R(this,a,gd(this)?1:0,$d);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,gd(this)?1:0,ve);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Vd(this,a);Ed(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Df=[function(a){R(this,a,0,te);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,de);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)}], -Qf=[function(a){Rf[a&15].call(this,a)},V,V,V,ef,ef,ef,ef,qf,V,Ef,Gf,tf,tf,tf,tf],Rf=[bf,vf,pf,Ue,cf,of,V,V,V,V,V,V,V,V,V,V],Ff=[nf,function(){this.R=0;this.b-=5},function(){this.S=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.V=0;this.b-=5},T,T,T,T,T,T,T],Hf=[nf,function(){this.R=65536;this.b-=5},function(){this.S=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.V=32768;this.b-=5},W,W,W,W,W,W,W],Pf=[Te,Re,Ne,Pe,We,Xe,Ce,De,af,uf,If,Kf,Mf,V,V,V],Jf=[function(a){Ed(this, +Qf=[function(a){jg[a&15].call(this,a)},V,V,V,ef,ef,ef,ef,qf,V,Ef,Gf,tf,tf,tf,tf],jg=[bf,vf,pf,Ue,cf,of,V,V,V,V,V,V,V,V,V,V],Ff=[nf,function(){this.R=0;this.b-=5},function(){this.S=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.V=0;this.b-=5},T,T,T,T,T,T,T],Hf=[nf,function(){this.R=65536;this.b-=5},function(){this.S=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.V=32768;this.b-=5},W,W,W,W,W,W,W],Pf=[Te,Re,Ne,Pe,We,Xe,Ce,De,af,uf,If,Kf,Mf,V,V,V],Jf=[function(a){Ed(this, Wd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ke);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,oe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)}],Lf=[function(a){Q(this,a,0,qe);this.b-=this.g?11:6},function(a){Q(this,a,gd(this)?1:0,ae);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,gd(this)?1:0,we);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Ud(this,a);Ed(this,a<<8);this.b-=this.g?4:3+(7== this.f?2:0)}],Nf=[function(a){Q(this,a,0,ue);this.b-=this.g?9+(this.$a&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,se);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ee);this.b-=this.g?9+(this.$a&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,ce);this.b-=this.g?9:3+(7==this.f?2:0)}];function cd(a){kg[a>>12].call(this,a)} var kg=[function(a){lg[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,ze,function(a){mg[a>>8&15].call(this,a)},function(a){ng[a>>8&15].call(this,a)},kf,Ze,Je,Fe,He,sf,V],lg=[function(a){og[a>>4&15].call(this,a)},Ve,Se,Ke,Le,Qe,Me,Oe,gf,gf,yf,Af,Cf,function(a){pg[a>>6&3].call(this,a)},V,V],pg=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.oa(a|this.M);N(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Pd(this,a,0);Id(this,a);P(this,a);this.b-=11},function(a){var b=Kd(this),c= @@ -170,103 +170,103 @@ this.F="";10!=a&&(this.F+=String.fromCharCode(a))}this.g&=-129;jc(this.b,this.U, function wc(a){r.call(this,"PC11",a,wc);this.g=a.autoMount||null;this.M=this.J=this.f=this.C=0;this.K=[];this.H=Cg;this.A=Dg;this.F="";this.N=!La("Mobi")&&window&&"FileReader"in window}u(wc);var Cg="",Dg=0;k=wc.prototype; k.ra=function(a,b,c){var d=this,e=Dg;switch(b){case "listTapes":return this.I[b]=c,c.onchange=function(){var a=d.I.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(m){n("PC11 option error: "+m.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b=''+b+"");a.innerHTML=b}},!0;case "descTape":return this.I[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.I[b]=c,c.onclick= function(){var a=d.I.listTapes;a&&Eg(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(this.N)return this.I[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Eg(d,oa(b,!0),b,1,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; -k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;this.O=Fg(a);var e=this;if((this.g=Pc(this.D,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){n("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.U=kc(56,4);this.P=hc(this.b,function(){Gg(e)});ec(b,this,Hg);Ig(this,"None",Cg,!0);this.N&&Ig(this,"Local Tape","?");Ig(this,"Remote Tape","??");Jg(this)||H(this)}; -k.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.za=function(a){return a?this.save():!0};k.reset=function(){this.f&=-2241;this.J=0};function Jg(a){a.C=0;if(a.g){var b=a.g.path||"",c;if(!(c=a.g.name))a:{if((c=a.I.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(e=pa(c),f="json"==e||"gz"==e?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(f,null,!0,function(e,f,g){var h=0>g&&a.D&&!a.D.v.ga;g?a.ja('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(jb(a.Ra,e,f),(e=Ca(e,f))&&Og(a,b,c,d,e.ha,e.Ua, -e.Ta));a.v.Ia=!1;a.C&&(a.C--,a.C||H(a));Lg(a)})}function Ig(a,b,c,d){if((a=a.I.listTapes)&&a.options){for(var e=0;e=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; -Qg.prototype.ac=function(){return-1};Qg.prototype.bc=function(){};function Sg(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} -function Tg(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; +k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;this.O=Fg(a);var e=this;if((this.g=Pc(this.D,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){n("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.P=kc(56,4);this.U=hc(this.b,function(){1==(e.f&32769)&&!(e.f&128)&&e.Mc.indexOf("/api/v1/dump")&&(e=pa(c),f="json"==e||"gz"==e?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(f,null,!0,function(e,f,g){var h=0>g&&a.D&&!a.D.v.ga;g?a.ja('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(jb(a.Ra,e,f),(e=Ca(e,f))&&Ng(a,b,c,d,e.ha,e.Ua, +e.Ta));a.v.Ia=!1;a.C&&(a.C--,a.C||H(a));Kg(a)})}function Hg(a,b,c,d){if((a=a.I.listTapes)&&a.options){for(var e=0;e=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Pg.prototype.ac=function(){return-1};Pg.prototype.bc=function(){}; +function Rg(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} +function Sg(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} -function Ug(a,b,c){var d;if(b){b=Vg(a,b);for(var e=0,f=!1,g=b,h=[],m=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Yg(a,b){if(b)return Xg(a,b,a.ba[b]);var c=0;for(b in a.ba)Xg(a,b,a.ba[b]),c++;return 0>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Xg(a,b){if(b)return Wg(a,b,a.ba[b]);var c=0;for(b in a.ba)Wg(a,b,a.ba[b]),c++;return 0this.b.fb?gh:[];hh(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(ih(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ia;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<this.b.fb?fh:[];gh(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(hh(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ia;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}k.bc=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; +d.pa.value="";Sc(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,Na(c,function(a){var b=!1;ob(d,!0)||(nb(d,!0),b=d.mb(a?1:0),nb(d,!1));return b}),!0}return!1};k.wb=function(){this.pa&&this.pa.focus()};k.Y=function(a){a=a&&a.B;null==a&&(a=-1);return a};k.qb=function(a,b){var c=255,d=this.Y(a,!1,1);-1!==d&&(c=a.Ab?this.w.Db(d):this.b.Db(d),b&&ih(a,b));return c};k.na=function(a,b){var c=65535,d=this.Y(a,!1,2);-1!==d&&(c=a.Ab?this.w.rb(d):this.b.rb(d),b&&ih(a,b));return c}; +k.Ib=function(a,b,c){var d=this.Y(a,!0,1);-1!==d&&(a.Ab?this.w.Xa(d,b):this.b.Xa(d,b),c&&ih(a,c),this.D.$(!0))};k.Ya=function(a,b,c){var d=this.Y(a,!0,2);-1!==d&&(a.Ab?this.w.Jb(d,b):this.b.Jb(d,b),c&&ih(a,c),this.D.$(!0))};function Z(a,b){return{B:a,Ab:b,Ba:!1}}function jh(a){return[a.B,a.Ba]}function kh(a){return{B:a[0],Ba:a[1]}} +function hh(a,b,c){var d,e=(c?a.K:a.Qa).B;c=!1;if(void 0!==b){b=Ug(a,b);"%"==b.charAt(0)&&(c=!0,b=b.substr(1));d=b;var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),e=0;ed&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}k.bc=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; k.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.vb).B));this.la&1073741824?this.wa.push(a):this.sa&&a==this.sa||(this.sa=a,this.la&-2147483648&&(this.aa(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.pa=0,a.D.$()))}; -function ah(a){var b;if(Yd(a)){if(!a.J||!a.J.length){a.J=Array(1E3);for(b=0;b>>d.ia],!1)}a.M=["br"];if(a.C)for(b=1;b>>d.ia],!0);a.C=["bw"];a.ab=0} -k.Sa=function(a,b,c){var d=!0;c||sh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.B)),d=!1;else{var f=this.w;f.W[e>>>f.ia].Sa(e&f.w,a==this.C)}}d&&(a.push(b),c?b.Ba=!0:(th(this,a,a.length-1,"set"),ah(this)));return d};function sh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ia],b==a.C));h.Ba||ah(a);break}}return f} -function uh(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.B-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= -nh(E);break;case 8:y="@"+nh(E);break;case 16:7>E?y="("+nh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+nh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+nh(E)+")";break;case 40:y="@-("+nh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+nh(E)+")";7==E&&(y=[y,J(x,F+w.B&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+nh(E)+")",7==E&&(y=[y,J(x,F+w.B&65535)])}x=y;if(!x||!x.length){h="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=nh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function zh(a){var b,c="";for(b=0;6>b;b++)c+=yh(a,b);c=c+"\n"+(yh(a,6)+yh(a,7)+yh(a,20));return c+=xh(a,"T")+xh(a,"N")+xh(a,"Z")+xh(a,"V")+xh(a,"C")}k.Wb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,h=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.D.$();a.j("updated registers:")}a.j(zh(a));c&&(a.K=Z(d.u[7]),qh(a,J(a,a.K.B)))}}function Eh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.j(p)}h[3]&&(g=h[3],f=null);f=wh(a,b,g,f);a.j(f);a.K=b;e-=b.B-m;c++}}} -function vh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.P&&(a.j("ended assemble at "+J(a,a.O.B)),a.K=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.sa=null;if(pb(a)&&0q||"z"ka.length&&(a.j("note: only "+ka.length+" available"),Y=ka.length);ca-=Y;0>ca&&(null==ka[ka.length-1].B?(Y=ca+Y,ca=0):ca+=ka.length);var nd=[];"call"==Xf&&(vb=1E5,nd=["CALL"]);for(void 0!==Wf&&a.j(Y+" instructions earlier:");0=ka.length&&(ca=0);a.bb=Y;Zf++;vb--}}Zf||(a.j("no "+Yf+"history available"),a.bb=void 0)}else{var xb=ih(a,ja);if(xb){var lc=0;Ga&&("l"==Ga.charAt(0)&&(Ga=Ga.substr(1)||Yh),lc=Wg(a,Ga)>>>0,65536>4||1;$h--&&0oc?String.fromCharCode(oc):".";mc--}yb&&(yb+="\n");yb+=ja+" "+od+(0==Ab?" "+bg:"")}yb&&a.j(yb);a.Qa=xb}}}}break;case "e":if("else"==g[0])break;var bb,qd,rd,sd,td=g[0],ud=g[1];"eb"==td?(bb=1,qd=255,rd=a.qb,sd=a.Ib):"e"==td||"ew"==td?(bb=2,qd=65535,rd=a.na,sd=a.Ya):ud=null;if(null==ud)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var pc=ih(a,ud);if(pc)for(var qc=2;qc< -g.length;qc++){var Bb=Ug(a,g[qc]);if(void 0===Bb){a.j("unrecognized value: "+g[qc]);break}Bb&~qd&&a.j("warning: "+l(Bb)+" exceeds "+bb+"-byte value");var ai=rd.call(a,pc);a.j("changing "+J(a,pc.B)+" from "+J(a,ai,bb)+" to "+J(a,Bb,bb));sd.call(a,pc,Bb,bb)}}break;case "g":a:{var cg=g[1],bi=b;if(void 0!==cg){var vd=ih(a,cg,!0);if(!vd)break a;mh(a,vd,bi);a.Sa(a.f,vd,!0)}a.lb(!0,c)}break;case "h":a.v.da?(c||a.j("halting"),a.aa()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var wd; -var Cb=b.substr(2),Cb=va(Cb);Ug(a,Cb)?(c||a.j("true: "+Cb),wd=!0):(c||a.j("false: "+Cb),wd=!1);wd||(d=!1);break}f=!0;break;case "k":var ci=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var xd=0,yd=Z(),Db=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Db.B));10>xd;){for(var Ha=null,di=256;65536>Db.B>>>0;){yd.B=a.na(Db,2);if(null==Db.B||!di--)break;if(!(yd.B&1)){for(var ei=a,rc=yd,dg=null,Eb=rc.B,eg=Eb,zd=1;6>=zd&&Eb;zd++){if(2< -zd){rc.B=Eb;var sc=wh(ei,rc);if(0<=sc.indexOf("JSR")){var fg=sc.indexOf(" ");if(Eb+(sc.indexOf(" ",fg+1)-fg-1)/2==eg){dg=sc;break}}}Eb-=2}rc.B=eg;if(Ha=dg)break}}if(!Ha||null==Ha)break;var gg=null;if("ks"==ci){var hg=Ha.match(/[0-9A-F]+$/);hg&&(gg=Dh(a,hg[0]))}Ha=ua(Ha,50)+" ;"+(gg||"stack="+J(a,Db.B));a.j(Ha);xd++}xd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){Dh(a,g[1],!0);break}f=!0;break;case "m":a:{var la,ma=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== -G)xa=1878917119,G=null;else if("on"==G)ma=!0,G=null;else if("off"==G)ma=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(la in tb)if(G==la){xa=tb[la];ma=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,ma=!0;else if("off"==g[2]&&(a.la&=~xa,ma=!1,1073741824==xa)){for(var Ad=0;Ad\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bJh){if(Lh(d,this.J)){this.C=new O(this,"1.30.1","failsafe");Lh(this.C)&&(Qh(this,d),a=2,Rh(this.C));this.C.set("timestamp",Aa());Sh(this.C);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ph(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Lh(d,g):("error"== -f&&"no machine state"!=g?(this.ja("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Rh(d),Lh(d)?(c=Ph(d),e=!0):c=!1))}e&&Oh(this,c?d:null)}else 2==a&&d.clear()}else Oh(this);delete this.J;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ga=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(Th(this,this.b,b,c,a),this.b.pb());this.O&&(Qh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.D=0}; -function Qh(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ca;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} -function Gh(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new O(a,"1.30.1"),g=new O(a,"1.30.1","validate"),h=Aa();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.aa(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ga=!1,!1===d&&(e=null)));for(var h=kb(a.id),m=0;m>>d.ia],!1)}a.M=["br"];if(a.C)for(b=1;b>>d.ia],!0);a.C=["bw"];a.ab=0} +k.Sa=function(a,b,c){var d=!0;c||rh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.B)),d=!1;else{var f=this.w;f.W[e>>>f.ia].Sa(e&f.w,a==this.C)}}d&&(a.push(b),c?b.Ba=!0:(sh(this,a,a.length-1,"set"),$g(this)));return d};function rh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ia],b==a.C));h.Ba||$g(a);break}}return f} +function th(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.B-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= +mh(E);break;case 8:y="@"+mh(E);break;case 16:7>E?y="("+mh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+mh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+mh(E)+")";break;case 40:y="@-("+mh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+mh(E)+")";7==E&&(y=[y,J(x,F+w.B&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+mh(E)+")",7==E&&(y=[y,J(x,F+w.B&65535)])}x=y;if(!x||!x.length){h="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=mh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function yh(a){var b,c="";for(b=0;6>b;b++)c+=xh(a,b);c=c+"\n"+(xh(a,6)+xh(a,7)+xh(a,20));return c+=wh(a,"T")+wh(a,"N")+wh(a,"Z")+wh(a,"V")+wh(a,"C")}k.Wb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,h=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.D.$();a.j("updated registers:")}a.j(yh(a));c&&(a.K=Z(d.u[7]),ph(a,J(a,a.K.B)))}}function Dh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.j(p)}h[3]&&(g=h[3],f=null);f=vh(a,b,g,f);a.j(f);a.K=b;e-=b.B-m;c++}}} +function uh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.P&&(a.j("ended assemble at "+J(a,a.O.B)),a.K=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.sa=null;if(pb(a)&&0q||"z"ka.length&&(a.j("note: only "+ka.length+" available"),Y=ka.length);ca-=Y;0>ca&&(null==ka[ka.length-1].B?(Y=ca+Y,ca=0):ca+=ka.length);var nd=[];"call"==Wf&&(wb=1E5,nd=["CALL"]);for(void 0!==Vf&&a.j(Y+" instructions earlier:");0=ka.length&&(ca=0);a.bb=Y;Yf++;wb--}}Yf||(a.j("no "+Xf+"history available"),a.bb=void 0)}else{var yb=hh(a,ja);if(yb){var lc=0;Ga&&("l"==Ga.charAt(0)&&(Ga=Ga.substr(1)||Xh),lc=Vg(a,Ga)>>>0,65536>4||1;Zh--&&0oc?String.fromCharCode(oc):".";mc--}zb&&(zb+="\n");zb+=ja+" "+od+(0==Bb?" "+ag:"")}zb&&a.j(zb);a.Qa=yb}}}}break;case "e":if("else"==g[0])break;var bb,qd,rd,sd,td=g[0],ud=g[1];"eb"==td?(bb=1,qd=255,rd=a.qb,sd=a.Ib):"e"==td||"ew"==td?(bb=2,qd=65535,rd=a.na,sd=a.Ya):ud=null;if(null==ud)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var pc=hh(a,ud);if(pc)for(var qc=2;qc< +g.length;qc++){var Cb=Tg(a,g[qc]);if(void 0===Cb){a.j("unrecognized value: "+g[qc]);break}Cb&~qd&&a.j("warning: "+l(Cb)+" exceeds "+bb+"-byte value");var $h=rd.call(a,pc);a.j("changing "+J(a,pc.B)+" from "+J(a,$h,bb)+" to "+J(a,Cb,bb));sd.call(a,pc,Cb,bb)}}break;case "g":a:{var bg=g[1],ai=b;if(void 0!==bg){var vd=hh(a,bg,!0);if(!vd)break a;lh(a,vd,ai);a.Sa(a.f,vd,!0)}a.lb(!0,c)}break;case "h":a.v.da?(c||a.j("halting"),a.aa()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var wd; +var Db=b.substr(2),Db=va(Db);Tg(a,Db)?(c||a.j("true: "+Db),wd=!0):(c||a.j("false: "+Db),wd=!1);wd||(d=!1);break}f=!0;break;case "k":var bi=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var xd=0,yd=Z(),Eb=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Eb.B));10>xd;){for(var Ha=null,ci=256;65536>Eb.B>>>0;){yd.B=a.na(Eb,2);if(null==Eb.B||!ci--)break;if(!(yd.B&1)){for(var di=a,rc=yd,cg=null,Fb=rc.B,dg=Fb,zd=1;6>=zd&&Fb;zd++){if(2< +zd){rc.B=Fb;var sc=vh(di,rc);if(0<=sc.indexOf("JSR")){var eg=sc.indexOf(" ");if(Fb+(sc.indexOf(" ",eg+1)-eg-1)/2==dg){cg=sc;break}}}Fb-=2}rc.B=dg;if(Ha=cg)break}}if(!Ha||null==Ha)break;var fg=null;if("ks"==bi){var gg=Ha.match(/[0-9A-F]+$/);gg&&(fg=Ch(a,gg[0]))}Ha=ua(Ha,50)+" ;"+(fg||"stack="+J(a,Eb.B));a.j(Ha);xd++}xd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){Ch(a,g[1],!0);break}f=!0;break;case "m":a:{var la,ma=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== +G)xa=1878917119,G=null;else if("on"==G)ma=!0,G=null;else if("off"==G)ma=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(la in tb)if(G==la){xa=tb[la];ma=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,ma=!0;else if("off"==g[2]&&(a.la&=~xa,ma=!1,1073741824==xa)){for(var Ad=0;Ad\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bIh){if(Kh(d,this.J)){this.C=new O(this,"1.30.1","failsafe");Kh(this.C)&&(Ph(this,d),a=2,Qh(this.C));this.C.set("timestamp",Aa());Rh(this.C);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Oh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Kh(d,g):("error"== +f&&"no machine state"!=g?(this.ja("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Qh(d),Kh(d)?(c=Oh(d),e=!0):c=!1))}e&&Nh(this,c?d:null)}else 2==a&&d.clear()}else Nh(this);delete this.J;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ga=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(Sh(this,this.b,b,c,a),this.b.pb());this.O&&(Ph(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.D=0}; +function Ph(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ca;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} +function Fh(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new O(a,"1.30.1"),g=new O(a,"1.30.1","validate"),h=Aa();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.aa(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ga=!1,!1===d&&(e=null)));for(var h=kb(a.id),m=0;mf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=h[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=m&&(g=g.replace(h[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],g);ki(a,b,c)}})}else c(a,null)} -function li(a,b,c,d){function e(a){if(void 0===h){var b=g&&B(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Xh||Va(!0));m=!1}var g,h,m=!0;Xh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,h){h?ii(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=h.transformNode(m))?(g.outerHTML=m,--Xh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Xh||Va(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?ii(b,a,d,!0,e,p):ji(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return li(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map +k.ra=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.D||(d.v.ga?Fh(d,!1,!0):Mh(d,d.ub))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.v.ga&&!d.D)if(d.f&&!d.H){var a=Da("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Fh(d,a,!0);!a&&d.N?window&&window.location.reload():d.ub(Ih)}else d.reset(),d.b&&d.b.pb()},!0;case "save":if(qa())c.parentNode.removeChild(c);else return this.I[b]= +c,c.onclick=function(){var a=Jh(d,!0);if(a){var b=!!(d.f&&!d.H||d.N),c=Fh(d,b);b?Th(d,a,c):d.ja("Resume disabled, machine state not saved")}},!0}return!1}; +function Jh(a,b){var c=a.g;c||((c=Ja("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Uh(a,c))||a.ja("The user ID is invalid.")):b&&a.ja("Browser local storage is not available"));return c} +function Uh(a,b){a.g=null;b=Ba(ra()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ka("user",b.data),a.g=b.data)}catch(d){n(d.message+" ("+c+")")}return a.g}function Lh(a){var b=null;a.g&&(b=ra()+"/api/v1/user?req=load&user="+a.g+"&state="+Vh(a,"1.30.1"));return b} +function Th(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Vh(a,"1.30.1");d.data=c;b=Ba(ra()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=h[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=m&&(g=g.replace(h[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],g);ji(a,b,c)}})}else c(a,null)} +function ki(a,b,c,d){function e(a){if(void 0===h){var b=g&&B(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Wh||Va(!0));m=!1}var g,h,m=!0;Wh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,h){h?hi(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=h.transformNode(m))?(g.outerHTML=m,--Wh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Wh||Va(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?hi(b,a,d,!0,e,p):ii(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return ki(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map diff --git a/versions/pdpjs/1.30.1/pdp11.js b/versions/pdpjs/1.30.1/pdp11.js index aa2e13f511..e4a0201c77 100644 --- a/versions/pdpjs/1.30.1/pdp11.js +++ b/versions/pdpjs/1.30.1/pdp11.js @@ -92,7 +92,7 @@ g.fa=function(a,b,c,d){this.w=a;this.m=b;this.F=d;for(b=0;ba.ca/a.ga&&(b=1),a.ea=b,b=a.ab*a.ea,a.ga!=b)){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var c=a.s.setSpeed;c&&(c.textContent=b);a.P("target speed: "+b)}a.J+=a.W;a.W=0;a.O=sa();a.da=0;Xb(a)}function vb(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function xb(a,b,c,d){0<=b&&ba.G[b][0])&&(c=a.Sa*a.ea/1E3*c|0,a.G[b][0]=c+Zb(a))}function Zb(a,b){var c=a.ha-=a.a;a.a=0;b&&(a.ha=0);return c} +function Wb(a,b){if(void 0!==b&&(.8>a.ca/a.ga&&(b=1),a.ea=b,b=a.ab*a.ea,a.ga!=b)){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var c=a.s.setSpeed;c&&(c.textContent=b);a.P("target speed: "+b)}a.J+=a.W;a.W=0;a.O=sa();a.da=0;Xb(a)}function vb(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function xb(a,b,c){0<=b&&ba.G[b][0]&&(c=a.Sa*a.ea/1E3*c|0,a.G[b][0]=c+Zb(a))}function Zb(a,b){var c=a.ha-=a.a;a.a=0;b&&(a.ha=0);return c} g.tc=function(){if(this.i.U){this.cb>=this.Sa&&Xb(this,!0);this.Da=0;this.Oa=sa();if(this.da){var a=this.Oa-this.da;a>this.qb&&(this.O+=a,this.O>this.Oa&&(this.O=this.Oa))}try{do{for(var b,c=this.i.Ra?1:this.Ta,d=this.G.length-1;0<=d;d--){var e=this.G[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.xb(b)}catch(n){if("number"!=typeof n)throw n;}b=Zb(this,!0);this.Da+=b;this.W+=b;a=b;if(this.i.Ra){var f=!1;this.Pa=this.Pa+this.mb()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.sa,f=!0);0<=this.ta&&this.ta<=Yb(this)&& (this.sa=this.ta=-1,Ub(this),D(this),f=!0);f&&this.P(Yb(this)+" cycles: checksum="+ja(this.Pa))}for(var a=b,h=this.G.length-1;0<=h;h--){var l=this.G[h];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.Ca-=b;if(0>=this.Ca){this.Ca+=this.Ta;15<=++this.rb&&(this.w&&this.w.ba(),this.rb=0);break}}while(this.i.U)}catch(n){D(this);this.w&&this.w.stop(sa(),Yb(this));b=n.stack||n.message;this.i.error=!0;this.K(b);return}if(this.i.U){b=setTimeout;c=this.sb;this.da=sa();d=this.qb;this.Da&&(d=Math.round(d*this.Da/ this.Ta));d-=this.da-this.Oa;if(e=this.da-this.O)this.ca=Math.round(this.W/(10*e))/100,864E5<=e&&(this.J=0,Wb(this));if(0>d||this.cad&&(this.O-=d),d=0;this.cb+=this.Da;this.da+=d;b(c,d)}}};function Vb(a){var b;a.i.error?(a.P(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.U)a.P(a.toString()+" busy");else{Wb(a);a.i.U=!0;a.i.wb=!0;if(b=a.s.run)b.textContent="Halt";a.w&&a.w.start(a.O,Yb(a));setTimeout(a.sb,0)}}g.xb=function(){return 0}; @@ -128,9 +128,9 @@ function zd(){this.v&49152?(this.H|=128,G(this,4,3)):this.F?this.F.c():D(this);t function Fd(a){var b=R(this,a),c=this.a;O(this,wc(this,a,b));this.a=c-Ed[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)}function Gd(a){var b=rc(this,a);O(this,vc(this,a,b,1)<<8);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Hd=[7,13,13,17,14,18,17,21]; function Id(a){var b=uc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.l&128||(this.o=b>>16,this.h=this.o|b,this.g=0,this.j=-32768>b||32767>6;if(this.f[b]=this.f[b]-1&65535)L(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Od(a){T(this,a,R(this,a),Tc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Pd(a){T(this,a,0,Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Qd(){G(this,28,5);this.a-=5}function Rd(){this.l&4||this.w.ba();this.l|=4;gc(this,-2);this.a-=3} -function Sd(a){T(this,a,R(this,a),Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){G(this,8,6)}function ac(a){Td[a>>12].call(this,a)}function Ud(a){Vd[a>>6&3].call(this,a)}function Wd(a){Xd[a>>6&3].call(this,a)}function Yd(a){Zd[a>>6&3].call(this,a)}function ae(a){be[a&15].call(this,a)}function ce(a){de[a&15].call(this,a)}function ee(a){fe[a>>6&3].call(this,a)}function ge(a){he[a>>6&3].call(this,a)}function ie(a){je[a>>6&3].call(this,a)} +function Sd(a){T(this,a,R(this,a),Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){G(this,8,6)}function ac(a){Td[a>>12].call(this,a)}function Ud(a){Vd[a>>6&3].call(this,a)}function Wd(a){Xd[a>>6&3].call(this,a)}function Yd(a){$d[a>>6&3].call(this,a)}function ae(a){be[a&15].call(this,a)}function ce(a){de[a&15].call(this,a)}function ee(a){fe[a>>6&3].call(this,a)}function ge(a){he[a>>6&3].call(this,a)}function ie(a){je[a>>6&3].call(this,a)} var Td=[function(a){ke[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,Y,function(a){le[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],ke=[function(a){me[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Ud,Wd,Yd,Y,Y,Y],Vd=[function(a){P(this,wc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],Xd=[function(a){T(this,a,0,Nc); -this.a-=this.c?11:6},function(a){T(this,a,N(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,N(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=uc(this,a);P(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Zd=[function(a){T(this,a,0,Rc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Bc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}],me=[function(a){ne[a& +this.a-=this.c?11:6},function(a){T(this,a,N(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,N(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=uc(this,a);P(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],$d=[function(a){T(this,a,0,Rc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Bc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}],me=[function(a){ne[a& 15].call(this,a)},Y,Y,Y,W,W,W,W,Md,Y,ae,ce,Pd,Pd,Pd,Pd],ne=[zd,Rd,Ld,rd,Ad,Kd,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],be=[Jd,function(){this.j=0;this.a-=5},function(){this.g=0;this.a-=5},V,function(){this.h=1;this.a-=5},V,V,V,function(){this.o=0;this.a-=5},V,V,V,V,V,V,V],de=[Jd,function(){this.j=65536;this.a-=5},function(){this.g=32768;this.a-=5},X,function(){this.h=0;this.a-=5},X,X,X,function(){this.o=32768;this.a-=5},X,X,X,X,X,X,X],le=[qd,od,kd,md,td,ud,$c,ad,yd,Qd,ee,ge,ie,Y,Y,Y],fe=[function(a){P(this,vc(this,a, 0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Ic);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Mc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)}],he=[function(a){S(this,a,0,Oc);this.a-=this.c?11:6},function(a){S(this,a,N(this)?1:0,yc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,N(this)?1:0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=tc(this,a);P(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}], je=[function(a){S(this,a,0,Sc);this.a-=this.c?9+(this.$a&1):3+(7==this.b?2:0)},function(a){S(this,a,0,Qc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Cc);this.a-=this.c?9+(this.$a&1):3+(7==this.b?2:0)},function(a){S(this,a,0,Ac);this.a-=this.c?9:3+(7==this.b?2:0)}];function bc(a){oe[a>>12].call(this,a)} @@ -156,41 +156,41 @@ this.j="";10!=a&&(this.j+=String.fromCharCode(a))}this.c&=-129;xb(this.a,this.J, function K(a){u.call(this,"PC11",a,K);this.c=a.autoMount||null;this.B=this.u=this.b=this.h=0;this.A=[];this.o=Ge;this.g=He;this.j="";this.C=!Aa("Mobi")&&window&&"FileReader"in window}w(K);var Ge="",He=0;g=K.prototype; g.V=function(a,b,c){var d=this,e=He;switch(b){case "listTapes":return this.s[b]=c,c.onchange=function(){var a=d.s.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(n){m("PC11 option error: "+n.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b=''+b+"");a.innerHTML=b}},!0;case "descTape":return this.s[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.s[b]=c,c.onclick=function(){var a= d.s.listTapes;a&&Ie(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(this.C)return this.s[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ie(d,ka(b,!0),b,1,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; -g.fa=function(a,b,c,d){this.w=a;this.m=b;this.a=c;this.F=d;this.G=Je(a);var e=this;if((this.c=Sb(this.w,"autoMount")||this.c)&&"string"==typeof this.c)try{this.c=eval("("+this.c+")")}catch(f){m("PC11 auto-mount error: "+f.message+" ("+this.c+")"),this.c=null}this.J=yb(56,4);this.I=vb(this.a,function(){Ke(e)});sb(b,this,Le);Me(this,"None",Ge,!0);this.C&&Me(this,"Local Tape","?");Me(this,"Remote Tape","??");Ne(this)||C(this)}; -g.$=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};g.Z=function(a){return a?this.save():!0};g.reset=function(){this.b&=-2241;this.u=0};function Ne(a){a.h=0;if(a.c){var b=a.c.path||"",c;if(!(c=a.c.name))a:{if((c=a.s.listTapes)&&c.options)for(var d=0;dc.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!k(f,null,!0,function(e,f,h){var l=0>h&&a.w&&!a.w.i.M;h?a.K('Unable to load tape "'+b+'" (error '+h+": "+e+")",l):(Pa(a.ra,e,f),(e=ua(e,f))&&Se(a,b,c,d,e.L,e.va,e.ua)); -a.i.Ya=!1;a.h&&(a.h--,a.h||C(a));Pe(a)})}function Me(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bWe){if(Ye(d,this.u)){this.j=new M(this,"1.30.1","failsafe");Ye(this.j)&&(cf(this,d),a=2,df(this.j));this.j.set("timestamp",ta());ef(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=bf(d)){var f=d.get("code"),h=d.get("data");f&&("ok"==f?Ye(d,h):("error"== -f&&"no machine state"!=h?(this.K("Error: "+h),"unable to verify user"==h&&(za("user",""),this.c=null)):this.P(f+": "+h),df(d),Ye(d)?(c=bf(d),e=!0):c=!1))}e&&af(this,c?d:null)}else 2==a&&d.clear()}else af(this);delete this.u;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.T=!0;this.i.M=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(ff(this,this.a,b,c,a),this.a.Fa());this.G&&(cf(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; -function cf(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;k("http://www.pcjs.org/api/v1/report",d,!0)}} -function gf(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new M(a,"1.30.1"),h=new M(a,"1.30.1","validate"),l=ta();h.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&D(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.M=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;nc.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!k(f,null,!0,function(e,f,h){var l=0>h&&a.w&&!a.w.i.M;h?a.K('Unable to load tape "'+b+'" (error '+h+": "+e+")",l):(Pa(a.ra,e,f),(e=ua(e,f))&&Re(a,b,c,d,e.L,e.va,e.ua)); +a.i.Ya=!1;a.h&&(a.h--,a.h||C(a));Oe(a)})}function Le(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bVe){if(Xe(d,this.u)){this.j=new M(this,"1.30.1","failsafe");Xe(this.j)&&(bf(this,d),a=2,cf(this.j));this.j.set("timestamp",ta());df(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=af(d)){var f=d.get("code"),h=d.get("data");f&&("ok"==f?Xe(d,h):("error"== +f&&"no machine state"!=h?(this.K("Error: "+h),"unable to verify user"==h&&(za("user",""),this.c=null)):this.P(f+": "+h),cf(d),Xe(d)?(c=af(d),e=!0):c=!1))}e&&$e(this,c?d:null)}else 2==a&&d.clear()}else $e(this);delete this.u;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.T=!0;this.i.M=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(ef(this,this.a,b,c,a),this.a.Fa());this.G&&(bf(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; +function bf(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;k("http://www.pcjs.org/api/v1/report",d,!0)}} +function ff(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new M(a,"1.30.1"),h=new M(a,"1.30.1","validate"),l=ta();h.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&D(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.M=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;nf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");k(e,null,!0,function(f,h,l){if(l||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(h=h.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],h);of(a,b,c)}})}else c(a,null)} -function pf(a,b,c,d){function e(a){if(void 0===l){var b=h&&B(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--lf||Ga(!0));n=!1}var h,l,n=!0;lf++;Oa[a]={};try{if(h=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=r:y.appendChild(document.createTextNode(r));t.appendChild(y)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?mf(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(h.outerHTML=n,--lf||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(n,h),--lf||Ga(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?mf(b,a,d,!0,e,r):nf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch($d){f($d.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return pf(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map +g.V=function(a,b,c){var d=this;switch(b){case "power":return this.s[b]=c,c.onclick=function(){d.g||(d.i.M?ff(d,!1,!0):Ze(d,d.Ha))},!0;case "reset":return this.s[b]=c,c.onclick=function(){if(d.i.M&&!d.g)if(d.b&&!d.w){var a=va("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ff(d,a,!0);!a&&d.C?window&&window.location.reload():d.Ha(Ve)}else d.reset(),d.a&&d.a.Fa()},!0;case "save":if(ma())c.parentNode.removeChild(c);else return this.s[b]= +c,c.onclick=function(){var a=We(d,!0);if(a){var b=!!(d.b&&!d.w||d.C),c=ff(d,b);b?gf(d,a,c):d.K("Resume disabled, machine state not saved")}},!0}return!1}; +function We(a,b){var c=a.c;c||((c=ya("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=hf(a,c))||a.K("The user ID is invalid.")):b&&a.K("Browser local storage is not available"));return c} +function hf(a,b){a.c=null;b=k(na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(za("user",b.data),a.c=b.data)}catch(d){m(d.message+" ("+c+")")}return a.c}function Ye(a){var b=null;a.c&&(b=na()+"/api/v1/user?req=load&user="+a.c+"&state="+jf(a,"1.30.1"));return b} +function gf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=jf(a,"1.30.1");d.data=c;b=k(na()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");k(e,null,!0,function(f,h,l){if(l||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(h=h.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],h);nf(a,b,c)}})}else c(a,null)} +function of(a,b,c,d){function e(a){if(void 0===l){var b=h&&B(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--kf||Ga(!0));n=!1}var h,l,n=!0;kf++;Oa[a]={};try{if(h=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=r:y.appendChild(document.createTextNode(r));t.appendChild(y)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?lf(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(h.outerHTML=n,--kf||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(n,h),--kf||Ga(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?lf(b,a,d,!0,e,r):mf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Zd){f(Zd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return of(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map From 43bd458f723aaf5bdff06cb2f18d3b860c7119b7 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Wed, 19 Oct 2016 14:16:14 -0700 Subject: [PATCH 16/32] Added progress bar control (for the PC11 paper tape reader) --- apps/pdp11/tapes/demo.xml | 1 + .../pdp11/panel/test/debugger/terminal.xml | 2 +- docs/pcx86/examples/components.css | 24 ++ docs/pcx86/examples/components.xsl | 7 + modules/pdp11/lib/pc11.js | 36 +++ modules/shared/templates/components.css | 24 ++ modules/shared/templates/components.xsl | 7 + versions/pc8080/1.30.1/components.css | 24 ++ versions/pc8080/1.30.1/components.xsl | 7 + versions/pcx86/1.30.1/components.css | 24 ++ versions/pcx86/1.30.1/components.xsl | 7 + versions/pdpjs/1.30.1/components.css | 24 ++ versions/pdpjs/1.30.1/components.xsl | 7 + versions/pdpjs/1.30.1/pdp11-dbg.js | 249 +++++++++--------- versions/pdpjs/1.30.1/pdp11.js | 130 ++++----- 15 files changed, 383 insertions(+), 190 deletions(-) diff --git a/apps/pdp11/tapes/demo.xml b/apps/pdp11/tapes/demo.xml index 626585617d..88c8af93f1 100644 --- a/apps/pdp11/tapes/demo.xml +++ b/apps/pdp11/tapes/demo.xml @@ -10,5 +10,6 @@ Load + Tape Reader Progress diff --git a/devices/pdp11/panel/test/debugger/terminal.xml b/devices/pdp11/panel/test/debugger/terminal.xml index 02fc28ac08..2507838946 100644 --- a/devices/pdp11/panel/test/debugger/terminal.xml +++ b/devices/pdp11/panel/test/debugger/terminal.xml @@ -31,6 +31,6 @@ Step Reset Fast - Stopped + Stopped diff --git a/docs/pcx86/examples/components.css b/docs/pcx86/examples/components.css index 6fa42a7a70..fc92ecbb12 100644 --- a/docs/pcx86/examples/components.css +++ b/docs/pcx86/examples/components.css @@ -50,6 +50,30 @@ line-height: 20px; vertical-align: middle; } +.pcjs-progress { + height: 20px; + width: 300px; + margin-top: 8px; + border: 1px solid black; + position: relative; +} +.pcjs-progress-bar { + height: 20px; + width: 0%; + background-color: gold; + position: absolute; + top: 0px; +} +.pcjs-progress-text { + height: 20px; + width: 300px; + font-size: small; + line-height: 20px; + text-align: center; + position: absolute; + top: 0px; + z-index: 1; +} .pcjs-register { font-family: Monaco, "Lucida Console", monospace; font-size: small; diff --git a/docs/pcx86/examples/components.xsl b/docs/pcx86/examples/components.xsl index 5c69d9f5a0..ed916e79fa 100644 --- a/docs/pcx86/examples/components.xsl +++ b/docs/pcx86/examples/components.xsl @@ -329,6 +329,7 @@ float:left; float:right; margin:0 auto; + clear:both; position:; position:relative; text-align:; @@ -415,6 +416,12 @@
              + +
              +
              +
              +
              +

              diff --git a/modules/pdp11/lib/pc11.js b/modules/pdp11/lib/pc11.js index e1bc848ff5..5796ac71e4 100644 --- a/modules/pdp11/lib/pc11.js +++ b/modules/pdp11/lib/pc11.js @@ -89,6 +89,14 @@ PC11.TARGET = { MEMORY: 2 }; +PC11.BINDING = { + READ_PROGRESS: "readProgress" +}; + +PC11.CSSCLASS = { + PROGRESS_BAR: PDP11.CSSCLASS + "-progress-bar" +}; + /** * setBinding(sType, sBinding, control, sValue) * @@ -199,6 +207,10 @@ PC11.prototype.setBinding = function(sType, sBinding, control, sValue) }; return true; + case PC11.BINDING.READ_PROGRESS: + this.bindings[sBinding] = control; + return true; + default: break; } @@ -601,6 +613,28 @@ PC11.prototype.displayTape = function() } }; +/** + * displayProgress(nPercent) + * + * @this {PC11} + * @param {number} nPercent + */ +PC11.prototype.displayProgress = function(nPercent) +{ + nPercent |= 0; + if (nPercent !== this.lastPercent) { + var control = this.bindings[PC11.BINDING.READ_PROGRESS]; + if (control) { + var aeControls = Component.getElementsByClass(control, PC11.CSSCLASS.PROGRESS_BAR); + var controlBar = aeControls && aeControls[0]; + if (controlBar && controlBar.style) { + controlBar.style.width = nPercent + "%"; + } + } + this.lastPercent = nPercent; + } +}; + /** * parseTape(sTapeName, sTapePath, nTapeTarget, aBytes, addrLoad, addrExec) * @@ -646,6 +680,7 @@ PC11.prototype.parseTape = function(sTapeName, sTapePath, nTapeTarget, aBytes, a this.iTapeData = 0; this.aTapeData = aBytes; this.status("tape attached: " + sTapeName); + this.displayProgress(0); }; /** @@ -714,6 +749,7 @@ PC11.prototype.advanceReader = function() if (!(this.prs & PDP11.PC11.PRS.DONE)) { if (this.iTapeData < this.aTapeData.length) { this.prb = this.aTapeData[this.iTapeData++] & 0xff; + this.displayProgress(this.iTapeData / this.aTapeData.length * 100); if (MAXDEBUG) this.println("tape read " + str.toHexByte(this.prb) + " at pos " + str.toHexWord(this.iTapeData)); this.prs |= PDP11.PC11.PRS.DONE; this.prs &= ~PDP11.PC11.PRS.BUSY; diff --git a/modules/shared/templates/components.css b/modules/shared/templates/components.css index e46b16dfd2..7a89eb1069 100644 --- a/modules/shared/templates/components.css +++ b/modules/shared/templates/components.css @@ -55,6 +55,30 @@ line-height: 20px; vertical-align: middle; } +.pcjs-progress { + height: 20px; + width: 300px; + margin-top: 8px; + border: 1px solid black; + position: relative; +} +.pcjs-progress-bar { + height: 20px; + width: 0%; /* this will be updated pragmatically */ + background-color: gold; + position: absolute; + top: 0px; +} +.pcjs-progress-text { + height: 20px; + width: 300px; + font-size: small; + line-height: 20px; + text-align: center; + position: absolute; + top: 0px; + z-index: 1; +} .pcjs-register { font-family: Monaco, "Lucida Console", monospace; font-size: small; diff --git a/modules/shared/templates/components.xsl b/modules/shared/templates/components.xsl index d2f1b07c88..a48b2bcdec 100644 --- a/modules/shared/templates/components.xsl +++ b/modules/shared/templates/components.xsl @@ -330,6 +330,7 @@ float:left; float:right; margin:0 auto; + clear:both; position:; position:relative; text-align:; @@ -416,6 +417,12 @@
              + +
              +
              +
              +
              +

              diff --git a/versions/pc8080/1.30.1/components.css b/versions/pc8080/1.30.1/components.css index 6fa42a7a70..fc92ecbb12 100644 --- a/versions/pc8080/1.30.1/components.css +++ b/versions/pc8080/1.30.1/components.css @@ -50,6 +50,30 @@ line-height: 20px; vertical-align: middle; } +.pcjs-progress { + height: 20px; + width: 300px; + margin-top: 8px; + border: 1px solid black; + position: relative; +} +.pcjs-progress-bar { + height: 20px; + width: 0%; + background-color: gold; + position: absolute; + top: 0px; +} +.pcjs-progress-text { + height: 20px; + width: 300px; + font-size: small; + line-height: 20px; + text-align: center; + position: absolute; + top: 0px; + z-index: 1; +} .pcjs-register { font-family: Monaco, "Lucida Console", monospace; font-size: small; diff --git a/versions/pc8080/1.30.1/components.xsl b/versions/pc8080/1.30.1/components.xsl index 5afadcb976..7ff1fefa24 100644 --- a/versions/pc8080/1.30.1/components.xsl +++ b/versions/pc8080/1.30.1/components.xsl @@ -329,6 +329,7 @@ float:left; float:right; margin:0 auto; + clear:both; position:; position:relative; text-align:; @@ -415,6 +416,12 @@
              + +
              +
              +
              +
              +

              diff --git a/versions/pcx86/1.30.1/components.css b/versions/pcx86/1.30.1/components.css index 6fa42a7a70..fc92ecbb12 100644 --- a/versions/pcx86/1.30.1/components.css +++ b/versions/pcx86/1.30.1/components.css @@ -50,6 +50,30 @@ line-height: 20px; vertical-align: middle; } +.pcjs-progress { + height: 20px; + width: 300px; + margin-top: 8px; + border: 1px solid black; + position: relative; +} +.pcjs-progress-bar { + height: 20px; + width: 0%; + background-color: gold; + position: absolute; + top: 0px; +} +.pcjs-progress-text { + height: 20px; + width: 300px; + font-size: small; + line-height: 20px; + text-align: center; + position: absolute; + top: 0px; + z-index: 1; +} .pcjs-register { font-family: Monaco, "Lucida Console", monospace; font-size: small; diff --git a/versions/pcx86/1.30.1/components.xsl b/versions/pcx86/1.30.1/components.xsl index 2636d6e68c..73ab318f65 100644 --- a/versions/pcx86/1.30.1/components.xsl +++ b/versions/pcx86/1.30.1/components.xsl @@ -329,6 +329,7 @@ float:left; float:right; margin:0 auto; + clear:both; position:; position:relative; text-align:; @@ -415,6 +416,12 @@
              + +
              +
              +
              +
              +

              diff --git a/versions/pdpjs/1.30.1/components.css b/versions/pdpjs/1.30.1/components.css index 6fa42a7a70..fc92ecbb12 100644 --- a/versions/pdpjs/1.30.1/components.css +++ b/versions/pdpjs/1.30.1/components.css @@ -50,6 +50,30 @@ line-height: 20px; vertical-align: middle; } +.pcjs-progress { + height: 20px; + width: 300px; + margin-top: 8px; + border: 1px solid black; + position: relative; +} +.pcjs-progress-bar { + height: 20px; + width: 0%; + background-color: gold; + position: absolute; + top: 0px; +} +.pcjs-progress-text { + height: 20px; + width: 300px; + font-size: small; + line-height: 20px; + text-align: center; + position: absolute; + top: 0px; + z-index: 1; +} .pcjs-register { font-family: Monaco, "Lucida Console", monospace; font-size: small; diff --git a/versions/pdpjs/1.30.1/components.xsl b/versions/pdpjs/1.30.1/components.xsl index 0e4f5a23cd..a1930e759c 100644 --- a/versions/pdpjs/1.30.1/components.xsl +++ b/versions/pdpjs/1.30.1/components.xsl @@ -329,6 +329,7 @@ float:left; float:right; margin:0 auto; + clear:both; position:; position:relative; text-align:; @@ -415,6 +416,12 @@
              + +
              +
              +
              +
              +

              diff --git a/versions/pdpjs/1.30.1/pdp11-dbg.js b/versions/pdpjs/1.30.1/pdp11-dbg.js index 5a5d4aa440..f94d88ec48 100644 --- a/versions/pdpjs/1.30.1/pdp11-dbg.js +++ b/versions/pdpjs/1.30.1/pdp11-dbg.js @@ -54,8 +54,8 @@ Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b}); var sb="undefined"!==typeof ArrayBuffer,tb={cpu:1,trap:16,bus:64,memory:128,device:256,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){r.call(this,"Panel",a,ub);this.f=0;this.v.Xb=!0}u(ub);k=ub.prototype; k.ra=function(a,b,c,d){if(this.D&&this.D.ra(a,b,c,d)||this.b&&this.b.ra(a,b,c,d)||this.i&&this.i.ra(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.I[b]=c,this.f++,!0;default:return"rled"==a?(this.I[b]=c,this.f++,!0):this.parent.ra.call(this,a,b,c,d)}};k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d};k.Aa=function(a,b){b||vb();return!0};k.za=function(){return!0}; -function Jb(a,b,c,d){if(a.I[b]){void 0===c&&(rb(a,"Value for "+b+" is invalid"),a.b.aa());var e=a.i&&a.i.ma||8;c=!a.b.v.da||a.v.Xb?8==e?na(c,d):l(c,d):"--------".substr(0,d||4);a.I[b].textContent!=c&&(a.I[b].textContent=c)}}function Kb(a,b,c,d){for(var e=0;e>2;this.w=this.ua-1;this.C=this.H/this.ua|0;this.Ha=[];this.A=0;this.D=[];this.mc=[Ob,Pb,Qb,Rb];a=new I(this);Sb(a,this.i);this.W=Array(this.C);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.Ha[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.i&&D(this.i,64)&&C(this.i,e[4]+".readByte("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;c=Ub(d,b,!0);this.i&&D(this.i,64)&&C(this.i,"warning: unconverted read access to byte @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c} function Pb(a,b,c){var d=!1,e=this.controller,f=e.Ha[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.Ha[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d?this.i&&D(this.i,64)&&C(this.i,f[4]+".writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(Ub(e,c,!0,b),this.i&&D(this.i,64)&&C(this.i,"warning: unconverted write access to byte @"+J(this.i,c)+": "+J(this.i,b),!0,!0))} @@ -75,7 +75,7 @@ k.Hd=function(a,b){b=b>>1&7;this.b.ta[1][b]=a;this.b.T[1][b]&=65295};k.Tc=functi k.zc=function(a){return this.b.ta[0][(a>>1&7)+8]};k.nd=function(a,b){b=(b>>1&7)+8;this.b.ta[0][b]=a;this.b.T[0][b]&=65295};k.bd=function(a){return this.b.T[3][a>>1&7]};k.Od=function(a,b){this.b.T[3][b>>1&7]=a&65295};k.$c=function(a){return this.b.T[3][(a>>1&7)+8]};k.Md=function(a,b){this.b.T[3][(b>>1&7)+8]=a&65295};k.ad=function(a){return this.b.ta[3][a>>1&7]};k.Nd=function(a,b){b=b>>1&7;this.b.ta[3][b]=a;this.b.T[3][b]&=65295};k.Zc=function(a){return this.b.ta[3][(a>>1&7)+8]}; k.Ld=function(a,b){b=(b>>1&7)+8;this.b.ta[3][b]=a;this.b.T[3][b]&=65295};k.jb=function(a){a&=7;return this.b.L&2048?this.b.Ea[a]:this.b.u[a]};k.nb=function(a,b){b&=7;this.b.L&2048?this.b.Ea[b]=a:this.b.u[b]=a};k.Nc=function(){return this.b.L&49152?this.b.va[0]:this.b.u[6]};k.zd=function(a){this.b.L&49152?this.b.va[0]=a:this.b.u[6]=a};k.Qc=function(){return this.b.u[7]};k.Cd=function(a){this.b.u[7]=a};k.kb=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ea[a]}; k.ob=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ea[b]=a};k.Oc=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[1]};k.Ad=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[1]=a};k.Pc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.va[3]};k.Bd=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.va[3]=a};k.yc=function(a){return this.b.gc[a-65504>>1]};k.md=function(a,b){this.b.gc[b-65504>>1]=a};k.dc=function(a){return 65520==a?61183:0};k.jc=function(){}; -k.Yc=function(){return 1};k.Kd=function(){};k.xc=function(){return this.b.Z};k.ld=function(){this.b.Z=0};k.Ec=function(){return this.b.fc};k.sd=function(a,b){b&1||(a&=255);this.b.fc=a};k.Jc=function(a){return a?this.b.Qb:0};k.vd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Qb=a;b.G|=2};k.Xc=function(a){return a?this.b.Pa&65280:0};k.Jd=function(a){this.b.Pa=a|255};k.Mc=function(){return Lb(this.b)};k.yd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.G|=128}; +k.Yc=function(){return 1};k.Kd=function(){};k.xc=function(){return this.b.$};k.ld=function(){this.b.$=0};k.Ec=function(){return this.b.fc};k.sd=function(a,b){b&1||(a&=255);this.b.fc=a};k.Jc=function(a){return a?this.b.Qb:0};k.vd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Qb=a;b.G|=2};k.Xc=function(a){return a?this.b.Pa&65280:0};k.Jd=function(a){this.b.Pa=a|255};k.Mc=function(){return Lb(this.b)};k.yd=function(a){vc(this.b,a&-1809|Lb(this.b)&1808);this.b.G|=128}; k.ic=function(a,b){D(this)&&C(this,"writeIgnored("+na(b)+"): "+na(a),!0,!0)}; var M={},L=(M[62592]=[null,null,K.prototype.Wc,K.prototype.Id,"SISDR",1145],M[62608]=[null,null,K.prototype.Uc,K.prototype.Gd,"SDSDR",1145],M[62624]=[null,null,K.prototype.Vc,K.prototype.Hd,"SISAR",1145],M[62640]=[null,null,K.prototype.Tc,K.prototype.Fd,"SDSAR",1145],M[62656]=[null,null,K.prototype.Cc,K.prototype.qd,"KISDR",1145],M[62672]=[null,null,K.prototype.Ac,K.prototype.od,"KDSDR",1145],M[62688]=[null,null,K.prototype.Bc,K.prototype.pd,"KISAR",1145],M[62704]=[null,null,K.prototype.zc,K.prototype.nd, "KDSAR",1145],M[62798]=[null,null,K.prototype.Ic,K.prototype.ud,"MMR3",1145],M[65382]=[null,null,K.prototype.Dc,K.prototype.rd,"LKS"],M[65400]=[null,null,K.prototype.wc,K.prototype.kd,"CNSL"],M[65402]=[null,null,K.prototype.Fc,K.prototype.td,"MMR0",1145],M[65404]=[null,null,K.prototype.Gc,K.prototype.ic,"MMR1",1145],M[65406]=[null,null,K.prototype.Hc,K.prototype.ic,"MMR2",1145],M[65408]=[null,null,K.prototype.bd,K.prototype.Od,"UISDR",1145],M[65424]=[null,null,K.prototype.$c,K.prototype.Md,"UDSDR", @@ -90,41 +90,41 @@ if(sb){var yc=new ArrayBuffer(2);(new DataView(yc)).setUint16(0,256,!0);xc=256== function I(a,b,c,d,e,f){this.w=a;this.id=Ac+=2;this.b=null;this.B=b;this.xb=c;this.size=d||0;this.type=e||Bc;this.f=e==Cc;this.controller=null;Sb(this);this.Ja=this.pc=!1;if(d)if(f)this.controller=f,this.b=null,Dc(this,f.mc);else if(sb)this.A=new ArrayBuffer(d),this.F=new DataView(this.A,0,d),this.C=new Uint8Array(this.A,0,d),this.J=new Uint16Array(this.A,0,d>>1),this.b=new Int32Array(this.A,0,d>>2),Dc(this,zc?Ec:Fc);else{this.b=Array(d>>2);for(a=0;a>2),b=0;b>8,c)},U:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a,b){a&1&&gc(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},sa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= -this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ja=!0},O:function(a,b){if(this.i&&null!=this.B){var c=this.i;Kc(c,this.B+a,1,c.M)&&c.aa(!0)}return this.Nb(a,b)},ca:function(a,b){if(this.i&&null!=this.B){var c=this.i;Kc(c,this.B+a,2,c.M)&&c.aa(!0)}return this.Ob(a,b)},qa:function(a,b,c){if(this.i&&null!=this.B){var d=this.i;Kc(d,this.B+a, -1,d.C)&&d.aa(!0)}this.f?this.D(a,b,c):this.Tb(a,b,c)},xa:function(a,b,c){if(this.i&&null!=this.B){var d=this.i;Kc(d,this.B+a,2,d.C)&&d.aa(!0)}this.f?this.D(a,b,c):this.Ub(a,b,c)},N:function(a){return this.C[a]},P:function(a,b){a=this.C[a];this.i&&D(this.i,128)&&C(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},ba:function(a,b){a&1&&gc(this.w,b);return this.F.getUint16(a,!0)},fa:function(a,b){a&1&&gc(this.w,b);a=this.J[a>>1];this.i&&D(this.i,128)&&C(this.i,"Memory.readWord("+ -J(this.i,b)+"): "+J(this.i,a),!0);return a},pa:function(a,b){this.C[a]=b;this.Ja=!0},Ra:function(a,b,c){this.C[a]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},wa:function(a,b,c){a&1&&gc(this.w,c);this.F.setUint16(a,b,!0);this.Ja=!0},ya:function(a,b,c){a&1&&gc(this.w,c);this.J[a>>1]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}}; +l(this.B),!0),this.i.ba());return 255},D:function(a,b){this.i&&D(this.i,128)&&(C(this.i,"attempt to write "+l(b,4,!0)+" to invalid block %"+l(this.B),!0),this.i.ba())},M:function(a,b){return this.Hb(a++,b++)|this.Hb(a,b)<<8},H:function(a,b,c){this.Kb(a++,b&255,c++);this.Kb(a,b>>8,c)},U:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a,b){a&1&&gc(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},sa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]= +this.b[c]&~(255<>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Ja=!0},O:function(a,b){if(this.i&&null!=this.B){var c=this.i;Kc(c,this.B+a,1,c.M)&&c.ba(!0)}return this.Nb(a,b)},ca:function(a,b){if(this.i&&null!=this.B){var c=this.i;Kc(c,this.B+a,2,c.M)&&c.ba(!0)}return this.Ob(a,b)},qa:function(a,b,c){if(this.i&&null!=this.B){var d=this.i;Kc(d,this.B+a, +1,d.C)&&d.ba(!0)}this.f?this.D(a,b,c):this.Tb(a,b,c)},xa:function(a,b,c){if(this.i&&null!=this.B){var d=this.i;Kc(d,this.B+a,2,d.C)&&d.ba(!0)}this.f?this.D(a,b,c):this.Ub(a,b,c)},N:function(a){return this.C[a]},P:function(a,b){a=this.C[a];this.i&&D(this.i,128)&&C(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},Z:function(a,b){a&1&&gc(this.w,b);return this.F.getUint16(a,!0)},fa:function(a,b){a&1&&gc(this.w,b);a=this.J[a>>1];this.i&&D(this.i,128)&&C(this.i,"Memory.readWord("+J(this.i, +b)+"): "+J(this.i,a),!0);return a},pa:function(a,b){this.C[a]=b;this.Ja=!0},Ra:function(a,b,c){this.C[a]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},wa:function(a,b,c){a&1&&gc(this.w,c);this.F.setUint16(a,b,!0);this.Ja=!0},ya:function(a,b,c){a&1&&gc(this.w,c);this.J[a>>1]=b;this.Ja=!0;this.i&&D(this.i,128)&&C(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0)}}; function Sb(a,b,c){a.i=b;a.g=a.I=0;c&&((a.g=c.g)&&Jc(a,Ic,!1),(a.I=c.I)&&Hc(a,Ic,!1))}function Lc(a,b){b?--a.I||(a.Kb=a.f?a.D:a.Tb,a.yb=a.f?a.H:a.Ub):--a.g||(a.Hb=a.Nb,a.oa=a.Ob)}function Hc(a,b,c){c&&a.I||(a.Kb=!a.f&&b[1]||a.D,a.yb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Tb=b[1]||a.D,a.Ub=b[3]||a.H}function Jc(a,b,c){c&&a.g||(a.Hb=b[0]||a.K,a.oa=b[2]||a.M);if(c||void 0===c)a.Nb=b[0]||a.K,a.Ob=b[2]||a.M}function Dc(a,b){b||(b=Mc);Jc(a,b,void 0);Hc(a,b,void 0)} -var Mc=[],Gc=[I.prototype.U,I.prototype.sa,I.prototype.ma,I.prototype.Za],Ic=[I.prototype.O,I.prototype.qa,I.prototype.ca,I.prototype.xa];if(sb)var Fc=[I.prototype.N,I.prototype.pa,I.prototype.ba,I.prototype.wa],Ec=[I.prototype.P,I.prototype.Ra,I.prototype.fa,I.prototype.ya]; +var Mc=[],Gc=[I.prototype.U,I.prototype.sa,I.prototype.ma,I.prototype.Za],Ic=[I.prototype.O,I.prototype.qa,I.prototype.ca,I.prototype.xa];if(sb)var Fc=[I.prototype.N,I.prototype.pa,I.prototype.Z,I.prototype.wa],Ec=[I.prototype.P,I.prototype.Ra,I.prototype.fa,I.prototype.ya]; function Nc(a,b){r.call(this,"CPU",a,Nc,1);var c=a.multiplier||1;this.Ga=a.cycles||b;this.Ma=c;this.ab=Math.round(this.Ga/1E4)/100;this.Wa=this.ab*this.Ma;this.v.da=!1;this.v.Rb=!1;this.v.pb=a.autoStart;this.v.cb=!1;this.sb=this.ma=0;this.tb=a.csStart;this.gb=a.csInterval;this.hb=a.csStop;this.K=[];this.Fb=this.fd.bind(this);H(this)}u(Nc);var Oc=["power","reset"];k=Nc.prototype; k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.i=d;for(b=0;b=a.ma&&(a.ma+=a.gb,c=!0);0<=a.hb&&a.hb<=Uc(a)&&(a.gb=a.hb=-1,Rc(a),a.aa(),c=!0);c&&a.j(Uc(a)+" cycles: checksum="+l(a.sb))}} -k.ra=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.I[b]=c,!0;case "run":return this.I[b]=c,c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.v.ga)a=!0;else{var b=null,c,h=kb(a.id);for(c=0;ca.U/a.Wa?b=1:d=!0;a.Ma=b;b=a.ab*a.Ma;if(a.Wa!=b){a.Wa=b;b=a.Wa.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.D&&a.D.wb()}Wc(a,a.O);a.O=0;a.N=za();a.ba=0;Xc(a);return d}function hc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function jc(a,b,c){0<=b&&ba.K[b][0]&&(c=a.Ga*a.Ma/1E3*c|0,a.K[b][0]=c+Yc(a))} +k.Aa=function(a,b){if(!b){if(a&&this.restore){Qc(this);if(!this.restore(a))return!1;Rc(this)}else this.reset();this.i?(a=this.i,a.$a=!0,a.j("Type ? for help with PDP11 Debugger commands"),a.aa(),a.Ga&&(b=a.Ga,a.Ga=null,Sc(a,b))):this.j("No debugger detected")}this.D.aa();return!0};k.za=function(a){return a?this.save():!0};k.pb=function(){return this.v.pb||!this.i&&void 0===this.I.run?(this.lb(!0),!0):!1};k.$b=function(){return 0}; +function Rc(a){void 0===a.tb&&(a.tb=0);void 0===a.gb&&(a.gb=-1);void 0===a.hb&&(a.hb=-1);a.v.cb=0<=a.tb&&0=a.ma&&(a.ma+=a.gb,c=!0);0<=a.hb&&a.hb<=Uc(a)&&(a.gb=a.hb=-1,Rc(a),a.ba(),c=!0);c&&a.j(Uc(a)+" cycles: checksum="+l(a.sb))}} +k.ra=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.I[b]=c,!0;case "run":return this.I[b]=c,c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.v.ga)a=!0;else{var b=null,c,h=kb(a.id);for(c=0;ca.U/a.Wa?b=1:d=!0;a.Ma=b;b=a.ab*a.Ma;if(a.Wa!=b){a.Wa=b;b=a.Wa.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.D&&a.D.wb()}Wc(a,a.O);a.O=0;a.N=za();a.Z=0;Xc(a);return d}function hc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function jc(a,b,c){0<=b&&ba.K[b][0]&&(c=a.Ga*a.Ma/1E3*c|0,a.K[b][0]=c+Yc(a))} function Zc(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function $c(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Yc(a,b){var c=a.ca-=a.b;a.b=0;b&&(a.ca=0);return c} -k.fd=function(){if(this.v.da){this.eb>=this.Ga&&Xc(this,!0);this.sa=0;this.Fa=za();if(this.ba){var a=this.Fa-this.ba;a>this.Cb&&(this.N+=a,this.N>this.Fa&&(this.N=this.Fa))}try{do{var b=Zc(this,this.v.cb?1:this.Qa);try{this.mb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.sa+=b;this.O+=b;Tc(this,b);$c(this,b);this.pa-=b;if(0>=this.pa){this.pa+=this.Qa;15<=++this.Eb&&(this.D&&this.D.$(),this.Eb=0);break}}while(this.v.da)}catch(e){this.aa();this.D&&this.D.stop(za(),Uc(this));rb(this, -e.stack||e.message);return}if(this.v.da){a=setTimeout;b=this.Fb;this.ba=za();var c=this.Cb;this.sa&&(c=Math.round(c*this.sa/this.Qa));var c=c-(this.ba-this.Fa),d=this.ba-this.N;d&&(this.U=Math.round(this.O/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.Uc&&(this.N-=c),c=0;this.eb+=this.sa;this.ba+=c;a(b,c)}}}; -k.lb=function(a){if(qb(this))return!1;if(this.v.da)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.da=!0;this.v.Rb=!0;var b=this.I.run;b&&(b.textContent="Halt");this.D&&(a&&this.D.wb(!0),this.D.start(this.N,Uc(this)));setTimeout(this.Fb,0);return!0};k.mb=function(){return 0};k.aa=function(a){if(this.v.da){Yc(this);Wc(this,this.O);this.O=0;this.v.da=!1;var b=this.I.run;b&&(b.textContent="Run");this.D&&this.D.stop(za(),Uc(this))}this.v.complete=a}; -function ad(a){this.fb=+a.model||1170;this.zb=a.addrReset||0;Nc.call(this,a,6666667);this.decode=1120==this.fb?bd.bind(this):cd.bind(this);dd(this);this.A=0;this.P=null;this.v.complete=this.v.oc=!1}u(ad,Nc);k=ad.prototype;k.reset=function(){this.status("model "+this.fb);this.v.da&&this.aa();dd(this);Qc(this);this.v.error=!1;this.parent.reset.call(this)}; +k.fd=function(){if(this.v.da){this.eb>=this.Ga&&Xc(this,!0);this.sa=0;this.Fa=za();if(this.Z){var a=this.Fa-this.Z;a>this.Cb&&(this.N+=a,this.N>this.Fa&&(this.N=this.Fa))}try{do{var b=Zc(this,this.v.cb?1:this.Qa);try{this.mb(b)}catch(e){if("number"!=typeof e)throw e;}b=Yc(this,!0);this.sa+=b;this.O+=b;Tc(this,b);$c(this,b);this.pa-=b;if(0>=this.pa){this.pa+=this.Qa;15<=++this.Eb&&(this.D&&this.D.aa(),this.Eb=0);break}}while(this.v.da)}catch(e){this.ba();this.D&&this.D.stop(za(),Uc(this));rb(this, +e.stack||e.message);return}if(this.v.da){a=setTimeout;b=this.Fb;this.Z=za();var c=this.Cb;this.sa&&(c=Math.round(c*this.sa/this.Qa));var c=c-(this.Z-this.Fa),d=this.Z-this.N;d&&(this.U=Math.round(this.O/(10*d))/100,864E5<=d&&(this.fa=0,Vc(this)));if(0>c||this.Uc&&(this.N-=c),c=0;this.eb+=this.sa;this.Z+=c;a(b,c)}}}; +k.lb=function(a){if(qb(this))return!1;if(this.v.da)return this.j(this.toString()+" busy"),!1;Vc(this);this.v.da=!0;this.v.Rb=!0;var b=this.I.run;b&&(b.textContent="Halt");this.D&&(a&&this.D.wb(!0),this.D.start(this.N,Uc(this)));setTimeout(this.Fb,0);return!0};k.mb=function(){return 0};k.ba=function(a){if(this.v.da){Yc(this);Wc(this,this.O);this.O=0;this.v.da=!1;var b=this.I.run;b&&(b.textContent="Run");this.D&&this.D.stop(za(),Uc(this))}this.v.complete=a}; +function ad(a){this.fb=+a.model||1170;this.zb=a.addrReset||0;Nc.call(this,a,6666667);this.decode=1120==this.fb?bd.bind(this):cd.bind(this);dd(this);this.A=0;this.P=null;this.v.complete=this.v.oc=!1}u(ad,Nc);k=ad.prototype;k.reset=function(){this.status("model "+this.fb);this.v.da&&this.ba();dd(this);Qc(this);this.v.error=!1;this.parent.reset.call(this)}; function dd(a){a.R=65536;a.S=32768;a.X=65535;a.V=32768;a.L=15;a.u=[0,0,0,0,0,0,0,a.zb];a.Ea=[0,0,0,0,0,0];a.va=[0,0,0,0];a.C=0;a.xa=0;a.sc=[4,2,0,1];a.T=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.ta=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.uc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.gc=[0,0,0,0,0,0,0,0];a.fc=0;a.G=0;a.H=a.J=0;a.g=a.f=a.$a=0;a.qa=-1;ed(a)}function ed(a){a.Pa=255;a.Z=0;a.Qb=0;a.F=0;a.Na=0;a.vb=0;a.Oa=0;a.La=0;a.wa=0;a.bb=262143;a.ya=253952;a.G|=2;a.w&&tc(a)}function tc(a){a.La?(a.M=65536,a.Y=a.rc,a.oa=a.cd,a.yb=a.Pd,Vb(a.w,a.Oa&16?22:18)):(a.M=0,a.Y=a.qc,a.oa=a.ec,a.yb=a.kc,Vb(a.w,16))}function fd(a,b){a.zb=b;N(a,b);a.i&&(a.aa(),a.i.$())}k.$b=function(){return 0}; +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.gc=[0,0,0,0,0,0,0,0];a.fc=0;a.G=0;a.H=a.J=0;a.g=a.f=a.$a=0;a.qa=-1;ed(a)}function ed(a){a.Pa=255;a.$=0;a.Qb=0;a.F=0;a.Na=0;a.vb=0;a.Oa=0;a.La=0;a.wa=0;a.bb=262143;a.ya=253952;a.G|=2;a.w&&tc(a)}function tc(a){a.La?(a.M=65536,a.Y=a.rc,a.oa=a.cd,a.yb=a.Pd,Vb(a.w,a.Oa&16?22:18)):(a.M=0,a.Y=a.qc,a.oa=a.ec,a.yb=a.kc,Vb(a.w,16))}function fd(a,b){a.zb=b;N(a,b);a.i&&(a.ba(),a.i.aa())}k.$b=function(){return 0}; k.save=function(){var a=new O(this);a.set(0,[]);a.set(1,[this.fa,this.Ma]);a.set(2,cc(this.w));return a.data()};k.restore=function(a){var b=a[1];this.fa=b[1];Vc(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c>14&3;c=a.L>>14&3;a.C!=c&&(a.va[c]=a.u[6],a.u[6]=a.va[a.C]);a.L=b;a.G|=2}function P(a,b){a.G&128||(a.V=a.X=b,a.S=0)}function Ed(a,b,c){a.G&128||(a.V=a.X=a.R=b,a.S=c||0)}function Fd(a,b,c,d){a.G&128||(a.V=a.X=a.R=b,a.S=(c^b)&(d^b))}function Gd(a,b){a.G&128||(a.V=a.X=a.R=b,a.S=a.V^a.R>>1)} -function Hd(a,b,c,d){a.G&128||(a.V=a.X=a.R=b,a.S=(c^d)&(d^b))}k.ea=function(a,b){if(!this.A){var c=!1;0>this.qa?this.qa=Lb(this):this.C||(a=4,c=!0);this.F&57344||(this.Na=63222,this.vb=a);this.C=0;var d=this.oa(a|this.M),e=this.oa(a+2&65535|this.M);vc(this,e&-12289|this.qa>>2&12288);c&&(this.Z|=4,this.u[6]=4);Id(this,this.qa);Id(this,this.u[7]);N(this,d);this.G&=-113;this.qa=-1;if(26!=b)throw a;}};function Jd(a){var b=Kd(a),c=Kd(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);N(a,b);vc(a,c);a.G&=-17} -function Ld(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.C]||(d&=7);e=a.T[a.C][d];f=(a.ta[a.C][d]<<6)+(b&8191)&a.bb;if(ff){if(3932160<=f){f&=262143;var h=f>>13&31;31>h?a.Oa&32&&(f=a.uc[h]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.Z|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? +function Hd(a,b,c,d){a.G&128||(a.V=a.X=a.R=b,a.S=(c^d)&(d^b))}k.ea=function(a,b){if(!this.A){var c=!1;0>this.qa?this.qa=Lb(this):this.C||(a=4,c=!0);this.F&57344||(this.Na=63222,this.vb=a);this.C=0;var d=this.oa(a|this.M),e=this.oa(a+2&65535|this.M);vc(this,e&-12289|this.qa>>2&12288);c&&(this.$|=4,this.u[6]=4);Id(this,this.qa);Id(this,this.u[7]);N(this,d);this.G&=-113;this.qa=-1;if(26!=b)throw a;}};function Jd(a){var b=Kd(a),c=Kd(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);N(a,b);vc(a,c);a.G&=-17} +function Ld(a,b,c){var d,e,f,g=0;d=b>>13;a.Oa&a.sc[a.C]||(d&=7);e=a.T[a.C][d];f=(a.ta[a.C][d]<<6)+(b&8191)&a.bb;if(ff){if(3932160<=f){f&=262143;var h=f>>13&31;31>h?a.Oa&32&&(f=a.uc[h]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.ya&&4186112>f&&(a.$|=32,a.ea(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4? 192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.T[a.C][d]=e;if(4194170!==f||a.C)a.wa=a.C,a.xa=d;g&&(g&57344&&(0<=a.qa&&(g|=128),a.F&57344||(a.F=a.F|g|a.wa<<5|a.xa<<1),a.ea(168,16)),a.F&61440||!(4191360>f||4194239c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.oa(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.oa(e)|g; -a.b-=8;break;case 6:return e=a.oa(Dd(a,2)),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=a.oa(Dd(a,2)),e=e+a.u[c]&65535,e=a.oa(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.F&57344||(a.Na=a.Na<<8|f<<3&248|c);6==c&&!a.C&&d&4&&0>=f&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32?(a.Z|=4,a.u[6]=4,a.ea(4,24)):(a.Z|=8,a.G|=64));return e}k.Db=function(a){if(!this.La)return this.w.Db(a);this.A++;a=Md(this,Ld(this,a,3));this.A--;return a}; +function Id(a,b){var c=a.u[6]-2&65535;a.u[6]=c;a.F&57344||(a.Na=a.Na<<8|246);!a.C&&c<=a.Pa&&4c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.oa(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.oa(e)|g; +a.b-=8;break;case 6:return e=a.oa(Dd(a,2)),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=a.oa(Dd(a,2)),e=e+a.u[c]&65535,e=a.oa(e|a.M)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.F&57344||(a.Na=a.Na<<8|f<<3&248|c);6==c&&!a.C&&d&4&&0>=f&&(a.u[6]<=a.Pa||65534<=a.u[6])&&(a.u[6]<=a.Pa-32?(a.$|=4,a.u[6]=4,a.ea(4,24)):(a.$|=8,a.G|=64));return e}k.Db=function(a){if(!this.La)return this.w.Db(a);this.A++;a=Md(this,Ld(this,a,3));this.A--;return a}; k.rb=function(a){if(!this.La)return this.w.rb(a);this.A++;a=this.ec(Ld(this,a,2));this.A--;return a};k.Xa=function(a,b){this.La?(this.A++,Nd(this,Ld(this,a,5),b),this.A--):this.w.Xa(a,b)};k.Jb=function(a,b){this.La?(this.A++,this.kc(Ld(this,a,4),b),this.A--):this.w.Jb(a,b)};k.qc=function(a,b,c){return Od(this,a,b,c)};k.rc=function(a,b,c){return Ld(this,Od(this,a,b,c),c)};k.ec=function(a){return this.w.na(a)};k.cd=function(a){return this.w.na(Ld(this,a,2))};k.kc=function(a,b){this.w.Ya(a,b&65535)}; k.Pd=function(a,b){this.w.Ya(Ld(this,a,4),b)};function Pd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Od(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.C=a.L>>12&3,c=a.oa(d|c&a.M),a.C=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.va[a.L>>12&3];return c}function Qd(a,b,c,d){a.F&57344||(a.Na=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Od(a,b,e,4),c&65536||(e&=65535),a.C=a.L>>12&3,e=Ld(a,e|c&65536,4),a.C=a.L>>14&3,a.w.Ya(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.va[a.L>>12&3]=d} function Rd(a,b){b>>=6;var c=a.J=b&7;return(b=a.H=(b&56)>>3)?Md(a,a.Y(b,c,3)):a.u[c]&255}function Sd(a,b){b>>=6;var c=a.J=b&7;return(b=a.H=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]}function Td(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Od(a,b,c,8)}function Ud(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Md(a,a.Y(b,c,3)):a.u[c]&255}function Vd(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.na(a.Y(b,c,2)):a.u[c]} function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.$a=a.Y(b,e,7),Nd(a,e,d.call(a,c,Md(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Y(b,e,6),a.w.Ya(e,d.call(a,c,a.w.na(e)))):a.u[e]=d.call(a,c,a.u[e])}function Wd(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Nd(a,a.Y(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Xd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?a.w.Ya(a.Y(b,d,4),c):a.u[d]=c&65535;return c} function S(a,b,c){c&&(N(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3} -k.mb=function(a){this.v.complete=!0;var b=this.v.oc=this.i&&Yd(this.i),c=a?this.v.Rb?0:1:-1;this.v.Rb=!1;this.ca=this.b=a;do{if(b){if(Zd(this.i,this.u[7],c)){this.aa();break}c=1}if(this.G&&(this.G&112&&(this.G&32?this.ea(168,28):this.G&64?this.ea(4,30):this.G&16&&this.ea(12,32),this.G&=-113),this.G&7))if(this.G&2){this.G&=-3;var d=160,e=(this.Qb&224)>>5;if(a=this.P&&this.P.ib>e?this.P:null)d=a.jd,e=a.ib;e>(this.L&224)>>5?(this.G&4&&(Dd(this,2),this.G&=-5),this.ea(d,26),e=!0):e=!1;if(e&&a)if(e=this.P, +k.mb=function(a){this.v.complete=!0;var b=this.v.oc=this.i&&Yd(this.i),c=a?this.v.Rb?0:1:-1;this.v.Rb=!1;this.ca=this.b=a;do{if(b){if(Zd(this.i,this.u[7],c)){this.ba();break}c=1}if(this.G&&(this.G&112&&(this.G&32?this.ea(168,28):this.G&64?this.ea(4,30):this.G&16&&this.ea(12,32),this.G&=-113),this.G&7))if(this.G&2){this.G&=-3;var d=160,e=(this.Qb&224)>>5;if(a=this.P&&this.P.ib>e?this.P:null)d=a.jd,e=a.ib;e>(this.L&224)>>5?(this.G&4&&(Dd(this,2),this.G&=-5),this.ea(d,26),e=!0):e=!1;if(e&&a)if(e=this.P, e==a)this.P=a.next;else for(;e;){d=e.next;if(d==a){e.next=d.next;break}e=d}}else this.G&1&&this.G++;this.G=this.G&7|this.L&16;this.decode(jd(this))}while(0>1|b<<16;Gd(this,a);return a&65535}function ee(a,b){a=b&2048|b>>1|b<<8;Gd(this,a<<8);return a&255}function fe(a,b){a=b&~a;P(this,a);return a}function ge(a,b){a=b&~a;P(this,a<<8);return a}function he(a,b){a|=b;P(this,a);return a}function ie(a,b){a|=b;P(this,a<<8);return a}function je(a,b){a=~b|65536;Ed(this,a);return a&65535} function ke(a,b){a=~b|256;Ed(this,a<<8);return a&255}function le(a,b){a=b-a;this.G&128||(this.V=this.X=a,this.S=b&(b^a));return a&65535}function me(a,b){a=b-a;var c=a<<8;b<<=8;this.G&128||(this.V=this.X=c,this.S=b&(b^c));return a&255}function ne(a,b){a=b+a;this.G&128||(this.V=this.X=a,this.S=a&(b^a));return a&65535}function oe(a,b){a=b+a;var c=a<<8;this.G&128||(this.V=this.X=c,this.S=c&(b<<8^c));return a&255}function pe(a,b){a=-b;Ed(this,a,a&b&32768);return a&65535} @@ -137,15 +137,15 @@ function Ie(a){P(this,Sd(this,a)&Vd(this,a));this.b-=this.g?4+(this.J&&6<=this.f function Pe(a){S(this,a,gd(this)||id(this))}function Qe(a){S(this,a,!this.Da()!=!hd(this))}function Re(a){S(this,a,this.Da())}function Se(a){S(this,a,!id(this))}function Te(a){S(this,a,!this.Da())}function Ue(){this.ea(12,1);this.b-=5}function Ve(a){S(this,a,!0)}function We(a){S(this,a,!hd(this))}function Xe(a){S(this,a,hd(this))}function T(a){a&1&&(this.R=0);a&2&&(this.S=0);a&4&&(this.X=1);a&8&&(this.V=0);this.b-=5} function Ye(a){var b=Sd(this,a);a=Vd(this,a);Hd(this,b-a,a,b);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)}function Ze(a){var b=Rd(this,a)<<8;a=Ud(this,a)<<8;Hd(this,b-a,a,b);this.b-=this.g?4+(this.J&&6<=this.f?1:0):(this.H?4:3)+(7==this.f?2:0)} function $e(a){var b=Vd(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.R=this.S=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.X=d>>16|d,this.V=d>>16):(this.S=32768,this.X=d>>15|d,this.V=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.V=0,this.S=32768,this.R=65536,this.b-=7}function af(){this.ea(24,2);this.b-=25} -function bf(){this.L&49152?(this.Z|=128,this.ea(4,3)):this.i?$b(this.i):this.aa();this.b-=7}function cf(){this.ea(16,4);this.b-=25}var df=[0,7,7,10,7,11,9,13];function ef(a){var b=this.b;N(this,Td(this,a));this.b=b-df[this.g]}var ff=[0,14,14,17,14,18,16,20];function gf(a){var b=this.b,c=Td(this,a);a=a>>6&7;Id(this,this.u[a]);this.u[a]=this.u[7];N(this,c);this.b=b-ff[this.g]}var hf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17]; +function bf(){this.L&49152?(this.$|=128,this.ea(4,3)):this.i?$b(this.i):this.ba();this.b-=7}function cf(){this.ea(16,4);this.b-=25}var df=[0,7,7,10,7,11,9,13];function ef(a){var b=this.b;N(this,Td(this,a));this.b=b-df[this.g]}var ff=[0,14,14,17,14,18,16,20];function gf(a){var b=this.b,c=Td(this,a);a=a>>6&7;Id(this,this.u[a]);this.u[a]=this.u[7];N(this,c);this.b=b-ff[this.g]}var hf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17]; function jf(a){var b=Sd(this,a),c=this.b;P(this,Xd(this,a,b));this.b=c-hf[(this.H?8:0)+this.g]+(7!=this.f||this.g?0:2)}function kf(a){var b=Rd(this,a);P(this,Wd(this,a,b,1)<<8);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}var lf=[7,13,13,17,14,18,17,21]; function mf(a){var b=Vd(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.G&128||(this.V=b>>16,this.X=this.V|b,this.S=0,this.R=-32768>b||32767>6;if(this.u[b]=this.u[b]-1&65535)N(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function sf(a){R(this,a,Sd(this,a),ve);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function tf(a){R(this,a,0,xe);this.b-=this.g?9:3+(7==this.f?2:0)}function uf(){this.ea(28,5);this.b-=5}function vf(){this.G&4||this.D.$();this.G|=4;Dd(this,-2);this.b-=3} +function W(a){a&1&&(this.R=65536);a&2&&(this.S=32768);a&4&&(this.X=0);a&8&&(this.V=32768);this.b-=5}function rf(a){var b=(a&448)>>6;if(this.u[b]=this.u[b]-1&65535)N(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function sf(a){R(this,a,Sd(this,a),ve);this.b-=this.g?9+(this.J&&6<=this.f?1:0):(this.H?5:3)+(7==this.f?2:0)}function tf(a){R(this,a,0,xe);this.b-=this.g?9:3+(7==this.f?2:0)}function uf(){this.ea(28,5);this.b-=5}function vf(){this.G&4||this.D.aa();this.G|=4;Dd(this,-2);this.b-=3} function wf(a){R(this,a,Sd(this,a),ye);this.b-=this.g?9:3+(7==this.f?2:0)}function V(a){var b;if(b=this.i)b=this.i,C(b,"undefined opcode "+J(b,a),!0,!0),b=$b(b);b||this.ea(8,6)}function bd(a){xf[a>>12].call(this,a)}function yf(a){zf[a>>6&3].call(this,a)}function Af(a){Bf[a>>6&3].call(this,a)}function Cf(a){Df[a>>6&3].call(this,a)}function Ef(a){Ff[a&15].call(this,a)}function Gf(a){Hf[a&15].call(this,a)}function If(a){Jf[a>>6&3].call(this,a)}function Kf(a){Lf[a>>6&3].call(this,a)} function Mf(a){Nf[a>>6&3].call(this,a)} var xf=[function(a){Of[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,ze,V,function(a){Pf[a>>8&15].call(this,a)},kf,Ze,Je,Fe,He,sf,V],Of=[function(a){Qf[a>>4&15].call(this,a)},Ve,Se,Ke,Le,Qe,Me,Oe,gf,gf,yf,Af,Cf,V,V,V],zf=[function(a){Ed(this,Xd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,je);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,ne);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,le);this.b-=this.g?9:3+(7==this.f?2:0)}],Bf=[function(a){R(this,a,0, pe);this.b-=this.g?11:6},function(a){R(this,a,gd(this)?1:0,$d);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,gd(this)?1:0,ve);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Vd(this,a);Ed(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],Df=[function(a){R(this,a,0,te);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,re);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,de);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)}], -Qf=[function(a){jg[a&15].call(this,a)},V,V,V,ef,ef,ef,ef,qf,V,Ef,Gf,tf,tf,tf,tf],jg=[bf,vf,pf,Ue,cf,of,V,V,V,V,V,V,V,V,V,V],Ff=[nf,function(){this.R=0;this.b-=5},function(){this.S=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.V=0;this.b-=5},T,T,T,T,T,T,T],Hf=[nf,function(){this.R=65536;this.b-=5},function(){this.S=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.V=32768;this.b-=5},W,W,W,W,W,W,W],Pf=[Te,Re,Ne,Pe,We,Xe,Ce,De,af,uf,If,Kf,Mf,V,V,V],Jf=[function(a){Ed(this, +Qf=[function(a){Rf[a&15].call(this,a)},V,V,V,ef,ef,ef,ef,qf,V,Ef,Gf,tf,tf,tf,tf],Rf=[bf,vf,pf,Ue,cf,of,V,V,V,V,V,V,V,V,V,V],Ff=[nf,function(){this.R=0;this.b-=5},function(){this.S=0;this.b-=5},T,function(){this.X=1;this.b-=5},T,T,T,function(){this.V=0;this.b-=5},T,T,T,T,T,T,T],Hf=[nf,function(){this.R=65536;this.b-=5},function(){this.S=32768;this.b-=5},W,function(){this.X=0;this.b-=5},W,W,W,function(){this.V=32768;this.b-=5},W,W,W,W,W,W,W],Pf=[Te,Re,Ne,Pe,We,Xe,Ce,De,af,uf,If,Kf,Mf,V,V,V],Jf=[function(a){Ed(this, Wd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ke);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,oe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,me);this.b-=this.g?9:3+(7==this.f?2:0)}],Lf=[function(a){Q(this,a,0,qe);this.b-=this.g?11:6},function(a){Q(this,a,gd(this)?1:0,ae);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,gd(this)?1:0,we);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Ud(this,a);Ed(this,a<<8);this.b-=this.g?4:3+(7== this.f?2:0)}],Nf=[function(a){Q(this,a,0,ue);this.b-=this.g?9+(this.$a&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,se);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ee);this.b-=this.g?9+(this.$a&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,ce);this.b-=this.g?9:3+(7==this.f?2:0)}];function cd(a){kg[a>>12].call(this,a)} var kg=[function(a){lg[a>>8&15].call(this,a)},jf,Ye,Ie,Ee,Ge,ze,function(a){mg[a>>8&15].call(this,a)},function(a){ng[a>>8&15].call(this,a)},kf,Ze,Je,Fe,He,sf,V],lg=[function(a){og[a>>4&15].call(this,a)},Ve,Se,Ke,Le,Qe,Me,Oe,gf,gf,yf,Af,Cf,function(a){pg[a>>6&3].call(this,a)},V,V],pg=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.oa(a|this.M);N(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Pd(this,a,0);Id(this,a);P(this,a);this.b-=11},function(a){var b=Kd(this),c= @@ -157,116 +157,117 @@ function tg(a){if(!pb(a)){if(a.D){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if( Ta(function(){for(var a=B(document,"pdp11","rom"),b=0;b=b.length)break;for(var g=g+2,m=b[g++]&255|(b[g++]&255)<<8,p=b[g++]&255|(b[g++]&255)<<8,h=h+((m&255)+(m>>8)+(p&255)+(p>>8)),q=g,v=m-=6;0=b.length)break;h+=b[g++]&255;if(h&255)break;if(v)for(;v--;)a.b.Xa(p++,b[q++]&255);else p&1?a.b.aa():fd(a.b,p);f=!0}else g++;else g+=2}if(!f&&(null==c&&(c=e),null!=c)){for(e=0;e=b.length)break;for(var g=g+2,m=b[g++]&255|(b[g++]&255)<<8,p=b[g++]&255|(b[g++]&255)<<8,h=h+((m&255)+(m>>8)+(p&255)+(p>>8)),q=g,v=m-=6;0=b.length)break;h+=b[g++]&255;if(h&255)break;if(v)for(;v--;)a.b.Xa(p++,b[q++]&255);else p&1?a.b.ba():fd(a.b,p);f=!0}else g++;else g+=2}if(!f&&(null==c&&(c=e),null!=c)){for(e=0;e=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=va(b[0]);if(c!=this.Za)return;b=va(b[1]);if(this.J=lb(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.K=d.receiveData){this.status(this.Ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.Aa=function(a,b){if(!b)if(this.cc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; k.za=function(a){return a?this.save():!0};k.reset=function(){Ag(this)};k.save=function(){var a=new O(this);a.set(0,[]);return a.data()};k.restore=function(){return Ag(this)};function Ag(a){a.N=0;a.f=0;a.g=128;a.C=[];return!0}k.Pb=function(a){if("number"==typeof a)this.C.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.O||8,c=a-this.H%a,this.O&&(b=ua("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.A.value+=b;this.A.scrollTop=this.A.scrollHeight;this.H+=c}else if(null!=this.F){if(10==a||1024<=this.F.length)this.j(this.F), this.F="";10!=a&&(this.F+=String.fromCharCode(a))}this.g&=-129;jc(this.b,this.U,1)}};var Bg={},zg=(Bg[65392]=[null,null,X.prototype.Sc,X.prototype.Ed,"RCSR"],Bg[65394]=[null,null,X.prototype.Rc,X.prototype.Dd,"RBUF"],Bg[65396]=[null,null,X.prototype.ed,X.prototype.Rd,"XCSR"],Bg[65398]=[null,null,X.prototype.dd,X.prototype.Qd,"XBUF"],Bg);Ta(function(){for(var a=B(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.I[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.I[b]=c,c.onclick= -function(){var a=d.I.listTapes;a&&Eg(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(this.N)return this.I[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Eg(d,oa(b,!0),b,1,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; -k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;this.O=Fg(a);var e=this;if((this.g=Pc(this.D,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){n("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.P=kc(56,4);this.U=hc(this.b,function(){1==(e.f&32769)&&!(e.f&128)&&e.Mc.indexOf("/api/v1/dump")&&(e=pa(c),f="json"==e||"gz"==e?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(f,null,!0,function(e,f,g){var h=0>g&&a.D&&!a.D.v.ga;g?a.ja('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(jb(a.Ra,e,f),(e=Ca(e,f))&&Ng(a,b,c,d,e.ha,e.Ua, -e.Ta));a.v.Ia=!1;a.C&&(a.C--,a.C||H(a));Kg(a)})}function Hg(a,b,c,d){if((a=a.I.listTapes)&&a.options){for(var e=0;e=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Pg.prototype.ac=function(){return-1};Pg.prototype.bc=function(){}; -function Rg(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} -function Sg(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; +function(){var a=d.I.listTapes;a&&Eg(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.N){c.parentNode.removeChild(c);break}this.I[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Eg(d,oa(b,!0),b,1,a)}return!1};return!0;case "readProgress":return this.I[b]=c,!0}return!1}; +k.Ca=function(a,b,c,d){this.D=a;this.w=b;this.b=c;this.i=d;this.O=Fg(a);var e=this;if((this.g=Pc(this.D,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){n("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.P=kc(56,4);this.Z=hc(this.b,function(){1==(e.f&32769)&&!(e.f&128)&&e.Kc.indexOf("/api/v1/dump")&&(e=pa(c),f="json"==e||"gz"==e?encodeURI(c):ra()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ba(f,null,!0,function(e,f,g){var h=0>g&&a.D&&!a.D.v.ga;g?a.ja('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(jb(a.Ra,e,f),(e=Ca(e,f))&&Og(a,b,c,d,e.ha,e.Ua, +e.Ta));a.v.Ia=!1;a.C&&(a.C--,a.C||H(a));Lg(a)})}function Ig(a,b,c,d){if((a=a.I.listTapes)&&a.options){for(var e=0;e=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Qg.prototype.ac=function(){return-1};Qg.prototype.bc=function(){}; +function Sg(a,b,c,d){if(c)if(b){0>a.A&&a.g.length&&(a.A=0);if(0>a.A||b!=a.g[a.A])a.g.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.g[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(va(b.substring(c,f))),c=f+1}}return a} +function Tg(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} -function Tg(a,b,c){var d;if(b){b=Ug(a,b);for(var e=0,f=!1,g=b,h=[],m=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Xg(a,b){if(b)return Wg(a,b,a.ba[b]);var c=0;for(b in a.ba)Wg(a,b,a.ba[b]),c++;return 0>=1;g=q+g;d>>=8}d=l(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Yg(a,b){if(b)return Xg(a,b,a.Z[b]);var c=0;for(b in a.Z)Xg(a,b,a.Z[b]),c++;return 0this.b.fb?fh:[];gh(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(hh(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ia;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<this.b.fb?gh:[];hh(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=d.Y(ih(d,c));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.w.ia;m=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.j("..."):(c=q.type,p=bc[c],q&&d.j(l(q.id,8)+" %"+l(e<d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}k.bc=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; -k.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.vb).B));this.la&1073741824?this.wa.push(a):this.sa&&a==this.sa||(this.sa=a,this.la&-2147483648&&(this.aa(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.pa=0,a.D.$()))}; -function $g(a){var b;if(Yd(a)){if(!a.J||!a.J.length){a.J=Array(1E3);for(b=0;b>>d.ia],!1)}a.M=["br"];if(a.C)for(b=1;b>>d.ia],!0);a.C=["bw"];a.ab=0} -k.Sa=function(a,b,c){var d=!0;c||rh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.B)),d=!1;else{var f=this.w;f.W[e>>>f.ia].Sa(e&f.w,a==this.C)}}d&&(a.push(b),c?b.Ba=!0:(sh(this,a,a.length-1,"set"),$g(this)));return d};function rh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ia],b==a.C));h.Ba||$g(a);break}}return f} -function th(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.B-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= -mh(E);break;case 8:y="@"+mh(E);break;case 16:7>E?y="("+mh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+mh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+mh(E)+")";break;case 40:y="@-("+mh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+mh(E)+")";7==E&&(y=[y,J(x,F+w.B&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+mh(E)+")",7==E&&(y=[y,J(x,F+w.B&65535)])}x=y;if(!x||!x.length){h="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=mh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function yh(a){var b,c="";for(b=0;6>b;b++)c+=xh(a,b);c=c+"\n"+(xh(a,6)+xh(a,7)+xh(a,20));return c+=wh(a,"T")+wh(a,"N")+wh(a,"Z")+wh(a,"V")+wh(a,"C")}k.Wb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,h=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.D.$();a.j("updated registers:")}a.j(yh(a));c&&(a.K=Z(d.u[7]),ph(a,J(a,a.K.B)))}}function Dh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.j(p)}h[3]&&(g=h[3],f=null);f=vh(a,b,g,f);a.j(f);a.K=b;e-=b.B-m;c++}}} -function uh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.P&&(a.j("ended assemble at "+J(a,a.O.B)),a.K=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.sa=null;if(pb(a)&&0q||"z"ka.length&&(a.j("note: only "+ka.length+" available"),Y=ka.length);ca-=Y;0>ca&&(null==ka[ka.length-1].B?(Y=ca+Y,ca=0):ca+=ka.length);var nd=[];"call"==Wf&&(wb=1E5,nd=["CALL"]);for(void 0!==Vf&&a.j(Y+" instructions earlier:");0=ka.length&&(ca=0);a.bb=Y;Yf++;wb--}}Yf||(a.j("no "+Xf+"history available"),a.bb=void 0)}else{var yb=hh(a,ja);if(yb){var lc=0;Ga&&("l"==Ga.charAt(0)&&(Ga=Ga.substr(1)||Xh),lc=Vg(a,Ga)>>>0,65536>4||1;Zh--&&0oc?String.fromCharCode(oc):".";mc--}zb&&(zb+="\n");zb+=ja+" "+od+(0==Bb?" "+ag:"")}zb&&a.j(zb);a.Qa=yb}}}}break;case "e":if("else"==g[0])break;var bb,qd,rd,sd,td=g[0],ud=g[1];"eb"==td?(bb=1,qd=255,rd=a.qb,sd=a.Ib):"e"==td||"ew"==td?(bb=2,qd=65535,rd=a.na,sd=a.Ya):ud=null;if(null==ud)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var pc=hh(a,ud);if(pc)for(var qc=2;qc< -g.length;qc++){var Cb=Tg(a,g[qc]);if(void 0===Cb){a.j("unrecognized value: "+g[qc]);break}Cb&~qd&&a.j("warning: "+l(Cb)+" exceeds "+bb+"-byte value");var $h=rd.call(a,pc);a.j("changing "+J(a,pc.B)+" from "+J(a,$h,bb)+" to "+J(a,Cb,bb));sd.call(a,pc,Cb,bb)}}break;case "g":a:{var bg=g[1],ai=b;if(void 0!==bg){var vd=hh(a,bg,!0);if(!vd)break a;lh(a,vd,ai);a.Sa(a.f,vd,!0)}a.lb(!0,c)}break;case "h":a.v.da?(c||a.j("halting"),a.aa()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var wd; -var Db=b.substr(2),Db=va(Db);Tg(a,Db)?(c||a.j("true: "+Db),wd=!0):(c||a.j("false: "+Db),wd=!1);wd||(d=!1);break}f=!0;break;case "k":var bi=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var xd=0,yd=Z(),Eb=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Eb.B));10>xd;){for(var Ha=null,ci=256;65536>Eb.B>>>0;){yd.B=a.na(Eb,2);if(null==Eb.B||!ci--)break;if(!(yd.B&1)){for(var di=a,rc=yd,cg=null,Fb=rc.B,dg=Fb,zd=1;6>=zd&&Fb;zd++){if(2< -zd){rc.B=Fb;var sc=vh(di,rc);if(0<=sc.indexOf("JSR")){var eg=sc.indexOf(" ");if(Fb+(sc.indexOf(" ",eg+1)-eg-1)/2==dg){cg=sc;break}}}Fb-=2}rc.B=dg;if(Ha=cg)break}}if(!Ha||null==Ha)break;var fg=null;if("ks"==bi){var gg=Ha.match(/[0-9A-F]+$/);gg&&(fg=Ch(a,gg[0]))}Ha=ua(Ha,50)+" ;"+(fg||"stack="+J(a,Eb.B));a.j(Ha);xd++}xd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){Ch(a,g[1],!0);break}f=!0;break;case "m":a:{var la,ma=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== -G)xa=1878917119,G=null;else if("on"==G)ma=!0,G=null;else if("off"==G)ma=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(la in tb)if(G==la){xa=tb[la];ma=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,ma=!0;else if("off"==g[2]&&(a.la&=~xa,ma=!1,1073741824==xa)){for(var Ad=0;Add&&(d+=b.length);0>d&&(d=0);for(var e=b.length;db||7a?"R"+a:6==a?"SP":"PC"}k.bc=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ea[a-8]:20>a?b=this.b.va[a-16]:20==a&&(b=Lb(this.b)));return b}; +k.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.vb).B));this.la&1073741824?this.wa.push(a):this.sa&&a==this.sa||(this.sa=a,this.la&-2147483648&&(this.ba(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,Yc(a),a.pa=0,a.D.aa()))}; +function ah(a){var b;if(Yd(a)){if(!a.J||!a.J.length){a.J=Array(1E3);for(b=0;b>>d.ia],!1)}a.M=["br"];if(a.C)for(b=1;b>>d.ia],!0);a.C=["bw"];a.ab=0} +k.Sa=function(a,b,c){var d=!0;c||sh(this,a,b,!1,!0);if(a!=this.f){var e=this.Y(b);if(-1===e)this.j("invalid address: "+J(this,b.B)),d=!1;else{var f=this.w;f.W[e>>>f.ia].Sa(e&f.w,a==this.C)}}d&&(a.push(b),c?b.Ba=!0:(th(this,a,a.length-1,"set"),ah(this)));return d};function sh(a,b,c,d,e){var f=!1;c=a.Y(c);for(var g=1;g>>d.ia],b==a.C));h.Ba||ah(a);break}}return f} +function uh(a,b){for(var c=1;c>23)&65535,y=J(x,w);else if(8192==F)w=w.B-((f&63)<<1)&65535,y=J(x,w);else if(12288==F)y=J(x,f&7,1);else if(24576==F)y=J(x,f&63,1);else if(F=f&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:y= +nh(E);break;case 8:y="@"+nh(E);break;case 16:7>E?y="("+nh(E)+")+":(F=x.na(w,2),y="#"+J(x,F,0,!0));break;case 24:7>E?y="@("+nh(E)+")+":(F=x.na(w,2),y="@#"+J(x,F,0,!0));break;case 32:y="-("+nh(E)+")";break;case 40:y="@-("+nh(E)+")";break;case 48:F=x.na(w,2);y=J(x,F,0,!0)+"("+nh(E)+")";7==E&&(y=[y,J(x,F+w.B&65535)]);break;case 56:F=x.na(w,2),y="@"+J(x,F)+"("+nh(E)+")",7==E&&(y=[y,J(x,F+w.B&65535)])}x=y;if(!x||!x.length){h="INVALID";break}"string"!=typeof x&&(p=x[1],x=x[0]);0b?(c=nh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ea[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.va[b-16]):20==b&&(c="PS="+J(a,Lb(d)));c&&(c+=" ");return c}function zh(a){var b,c="";for(b=0;6>b;b++)c+=yh(a,b);c=c+"\n"+(yh(a,6)+yh(a,7)+yh(a,20));return c+=xh(a,"T")+xh(a,"N")+xh(a,"Z")+xh(a,"V")+xh(a,"C")}k.Wb=function(a,b){return a[0]>b[0]?1:a[0]>>0;for(b=0;b>>0,h=f.vc;if(e>=g&&eb)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.D.aa();a.j("updated registers:")}a.j(zh(a));c&&(a.K=Z(d.u[7]),qh(a,J(a,a.K.B)))}}function Eh(a,b){b=va(b);var c=b.match(/^(['"])(.*?)\1$/);c?1h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.j(p)}h[3]&&(g=h[3],f=null);f=wh(a,b,g,f);a.j(f);a.K=b;e-=b.B-m;c++}}} +function vh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.P&&(a.j("ended assemble at "+J(a,a.O.B)),a.K=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.sa=null;if(pb(a)&&0q||"z"ka.length&&(a.j("note: only "+ka.length+" available"),Y=ka.length);ca-=Y;0>ca&&(null==ka[ka.length-1].B?(Y=ca+Y,ca=0):ca+=ka.length);var nd=[];"call"==Xf&&(wb=1E5,nd=["CALL"]);for(void 0!==Wf&&a.j(Y+" instructions earlier:");0=ka.length&&(ca=0);a.bb=Y;Zf++;wb--}}Zf||(a.j("no "+Yf+"history available"),a.bb=void 0)}else{var yb=ih(a,ja);if(yb){var lc=0;Ga&&("l"==Ga.charAt(0)&&(Ga=Ga.substr(1)||Yh),lc=Wg(a,Ga)>>>0,65536>4||1;$h--&&0oc?String.fromCharCode(oc):".";mc--}zb&&(zb+="\n");zb+=ja+" "+od+(0==Bb?" "+bg:"")}zb&&a.j(zb);a.Qa=yb}}}}break;case "e":if("else"==g[0])break;var bb,qd,rd,sd,td=g[0],ud=g[1];"eb"==td?(bb=1,qd=255,rd=a.qb,sd=a.Ib):"e"==td||"ew"==td?(bb=2,qd=65535,rd=a.na,sd=a.Ya):ud=null;if(null==ud)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var pc=ih(a,ud);if(pc)for(var qc=2;qc< +g.length;qc++){var Cb=Ug(a,g[qc]);if(void 0===Cb){a.j("unrecognized value: "+g[qc]);break}Cb&~qd&&a.j("warning: "+l(Cb)+" exceeds "+bb+"-byte value");var ai=rd.call(a,pc);a.j("changing "+J(a,pc.B)+" from "+J(a,ai,bb)+" to "+J(a,Cb,bb));sd.call(a,pc,Cb,bb)}}break;case "g":a:{var cg=g[1],bi=b;if(void 0!==cg){var vd=ih(a,cg,!0);if(!vd)break a;mh(a,vd,bi);a.Sa(a.f,vd,!0)}a.lb(!0,c)}break;case "h":a.v.da?(c||a.j("halting"),a.ba()):ob(a,!0)||c||a.j("already halted");break;case "i":if("if"==g[0]){var wd; +var Db=b.substr(2),Db=va(Db);Ug(a,Db)?(c||a.j("true: "+Db),wd=!0):(c||a.j("false: "+Db),wd=!1);wd||(d=!1);break}f=!0;break;case "k":var ci=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var xd=0,yd=Z(),Eb=Z(a.b.u[6]);for(a.j("stack trace for "+J(a,Eb.B));10>xd;){for(var Ha=null,di=256;65536>Eb.B>>>0;){yd.B=a.na(Eb,2);if(null==Eb.B||!di--)break;if(!(yd.B&1)){for(var ei=a,rc=yd,dg=null,Fb=rc.B,eg=Fb,zd=1;6>=zd&&Fb;zd++){if(2< +zd){rc.B=Fb;var sc=wh(ei,rc);if(0<=sc.indexOf("JSR")){var fg=sc.indexOf(" ");if(Fb+(sc.indexOf(" ",fg+1)-fg-1)/2==eg){dg=sc;break}}}Fb-=2}rc.B=eg;if(Ha=dg)break}}if(!Ha||null==Ha)break;var gg=null;if("ks"==ci){var hg=Ha.match(/[0-9A-F]+$/);hg&&(gg=Dh(a,hg[0]))}Ha=ua(Ha,50)+" ;"+(gg||"stack="+J(a,Eb.B));a.j(Ha);xd++}xd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){Dh(a,g[1],!0);break}f=!0;break;case "m":a:{var la,ma=null,G=g[1];"?"==G&&(G=void 0);if(void 0!==G){var xa=0;if("all"== +G)xa=1878917119,G=null;else if("on"==G)ma=!0,G=null;else if("off"==G)ma=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(la in tb)if(G==la){xa=tb[la];ma=!!(a.la&xa);break}if(!xa){a.j("unknown message category: "+G);break a}}if(xa)if("on"==g[2])a.la|=xa,ma=!0;else if("off"==g[2]&&(a.la&=~xa,ma=!1,1073741824==xa)){for(var Ad=0;Ad\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bIh){if(Kh(d,this.J)){this.C=new O(this,"1.30.1","failsafe");Kh(this.C)&&(Ph(this,d),a=2,Qh(this.C));this.C.set("timestamp",Aa());Rh(this.C);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Oh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Kh(d,g):("error"== -f&&"no machine state"!=g?(this.ja("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Qh(d),Kh(d)?(c=Oh(d),e=!0):c=!1))}e&&Nh(this,c?d:null)}else 2==a&&d.clear()}else Nh(this);delete this.J;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ga=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(Sh(this,this.b,b,c,a),this.b.pb());this.O&&(Ph(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.D=0}; -function Ph(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ca;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} -function Fh(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new O(a,"1.30.1"),g=new O(a,"1.30.1","validate"),h=Aa();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.aa(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ga=!1,!1===d&&(e=null)));for(var h=kb(a.id),m=0;mf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=h[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=m&&(g=g.replace(h[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],g);ji(a,b,c)}})}else c(a,null)} -function ki(a,b,c,d){function e(a){if(void 0===h){var b=g&&B(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Wh||Va(!0));m=!1}var g,h,m=!0;Wh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,h){h?hi(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=h.transformNode(m))?(g.outerHTML=m,--Wh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Wh||Va(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?hi(b,a,d,!0,e,p):ii(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return ki(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map +"Mhz")+" ("+a.b.Ma+"x)");break;default:if(g[1]){a.j("unknown option: "+g[1]);break}case "?":a.j("debugger options:"),a.j("\tbase #\t\tset default base to #"),a.j("\tcs int #\tset checksum cycle interval to #"),a.j("\tcs start #\tset checksum cycle start count to #"),a.j("\tcs stop #\tset checksum cycle stop count to #"),a.j("\tsp #\t\tset speed multiplier to #")}break;case "t":Fh(a,g[0],g[1]);break;case "u":qh(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Ch(a,b.substr(3))||(d=!1);break}if("ver"== +g[0]){a.j("PDPjs version 1.30.1 ("+a.b.fb+",RELEASE"+(sb?",TYPEDARRAYS":",LONGARRAYS")+")");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){Eh(a,b.substr(1));break}var Bd="commands:",Cd;for(Cd in ch)Bd+="\n"+ua(Cd,9)+ch[Cd];Yd(a)||(Bd+="\nnote: history disabled if no exec breakpoints");a.j(Bd);break;default:f=!0}f&&(a.j("unknown command: "+b),d=!1)}}catch(jg){a.j("debugger error: "+(jg.stack||jg.message)),d=!1}return d} +function Sc(a,b,c){b=Sg(a,b,c);for(var d in b)if(!vh(a,b[+d]))return!1;return!0}Ta(function(){for(var a=B(document,"pdp11","debugger"),b=0;b\nLicense: GPL version 3 or later ");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bJh){if(Lh(d,this.J)){this.C=new O(this,"1.30.1","failsafe");Lh(this.C)&&(Qh(this,d),a=2,Rh(this.C));this.C.set("timestamp",Aa());Sh(this.C);var e=this.f&&!this.F;if(1==a||Da("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Ph(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Lh(d,g):("error"== +f&&"no machine state"!=g?(this.ja("Error: "+g),"unable to verify user"==g&&(Ka("user",""),this.g=null)):this.j(f+": "+g),Rh(d),Lh(d)?(c=Ph(d),e=!0):c=!1))}e&&Oh(this,c?d:null)}else 2==a&&d.clear()}else Oh(this);delete this.J;delete this.K}e=kb(this.id);for(f=0;fa[1];a=a[2];this.fa=!0;this.v.ga=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(Th(this,this.b,b,c,a),this.b.pb());this.O&&(Qh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.D=0}; +function Qh(a,b){if(Da("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ca;d.user=c;d.type="bug";d.data=b;Ba("http://www.pcjs.org/api/v1/report",d,!0)}} +function Gh(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new O(a,"1.30.1"),g=new O(a,"1.30.1","validate"),h=Aa();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.za&&(c&&a.b.ba(),d=a.b.za(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ga=!1,!1===d&&(e=null)));for(var h=kb(a.id),m=0;mf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ba(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=h[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=m&&(g=g.replace(h[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],g);ki(a,b,c)}})}else c(a,null)} +function li(a,b,c,d){function e(a){if(void 0===h){var b=g&&B(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ta(a))}function f(a){e("Error: "+a);m&&(--Xh||Va(!0));m=!1}var g,h,m=!0;Xh++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));q.appendChild(v)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,h){h?ii(c,null,null,!1,e,function(d,m){m?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=h.transformNode(m))?(g.outerHTML=m,--Xh||Va(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Xh||Va(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?ii(b,a,d,!0,e,p):ji(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(w){f(w.message)}return m}window.embedPDP11=function(a,b,c,d){Va(!1);return li(a,b,c,d)};window.enableEvents=Va;window.sendEvent=Wa;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11-dbg.map diff --git a/versions/pdpjs/1.30.1/pdp11.js b/versions/pdpjs/1.30.1/pdp11.js index e4a0201c77..ea4b8bc59b 100644 --- a/versions/pdpjs/1.30.1/pdp11.js +++ b/versions/pdpjs/1.30.1/pdp11.js @@ -50,19 +50,19 @@ u.prototype={constructor:u,parent:null,toString:function(){return this.name?this this.K=function(a){this.P(a,this.Ka)}),!0;default:return!1}},log:function(){},P:function(){},status:function(a){this.P(this.Ka+": "+a)},K:function(a,b,c){c=c||this.type;b||m((c?c+": ":"")+a)},$:function(){return this.i.M=!0},Z:function(a,b){b&&(this.i.M=!1);return!0}};function C(a){if(!a.i.error&&(a.i.ready=!0,a.i.ready)){var b=a.Ua;a.Ua=null;b&&b()}}function Sa(a,b){b&&(a.i.ready?b():a.Ua=b);return a.i.ready} Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b>2;this.g=this.c-1;this.w=this.A/this.c|0;this.ka=[];this.T=0;this.o=[];this.Bb=[$a,ab,bb,cb];a=new F(this);db(a,this.F);this.b=Array(this.w);for(b=0;b>2;this.g=this.c-1;this.A=this.w/this.c|0;this.ka=[];this.T=0;this.o=[];this.Bb=[$a,ab,bb,cb];a=new F(this);db(a,this.F);this.b=Array(this.A);for(b=0;b>8:e[2](b)&255):b&1&&(e=d.ka[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);return 0<=c?c:c=fb(d,b)}function ab(a,b,c){var d=!1,e=this.controller,f=e.ka[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.ka[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d||fb(e,c)} function bb(a,b){var c=-1,d=this.controller;(a=d.ka[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));return 0<=c?c:c=fb(d,b)}function cb(a,b,c){var d=!1,e=this.controller;if(a=e.ka[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d||fb(e,c)}function gb(a,b){if(b!=a.j){var c;a.j&&(c=(1<>>a.m;0h&&(t=h);if(!e&&n&&n.size){if(n.type==d){if(f+h<=n.Ea)return n.Wa+=n.Ea-f,n.Ea=f,!0;if(f>=n.Ea+n.Wa){t=n.size-(f-r);t>h&&(t=h);n.Wa=f-n.Ea+t;f=r+a.c;h-=t;l++;continue}}return lb(1,f,h)}f=new F(a,f,t,a.c,d,e);db(f,a.F,n);a.b[l++]=f;f=r+a.c;h-=t}if(0>=h){c/=1024;var y;e="";y?10>>=a.m;0>>=a.m;0>>a.m].eb(b&a.g,b)}function ob(a,b){return a.b[(b&a.h)>>>a.m].R(b&a.g,b)}Za.prototype.Ia=function(a,b){this.T++;this.b[(a&this.h)>>>this.m].yb(a&this.g,b&255,a);this.T--}; -function pb(a,b,c){a.b[(b&a.h)>>>a.m].Xa(b&a.g,c&65535,b)}function qb(a){for(var b=0,c=[],d=0;d>>a.m].Xa(b&a.g,c&65535,b)}function qb(a){for(var b=0,c=[],d=0;da.a.Ja)){var h=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,n=f[2]?f[2].bind(b):null,r=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!h&&n&&(h=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&r&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(r)));rb(a,e,e,h,l,n,r,f[4])}}}function tb(a,b){a.o.push(b)}function ub(a,b){a.T||G(a.a,4,b)} function lb(a,b,c){m("Memory block error ("+a+": "+ja(b)+","+ja(c)+")");return!1}function H(a){u.call(this,"Device",a,H);this.c={data:0,fd:0,Va:20,uc:0};this.b={hd:0,ib:-1}}w(H);g=H.prototype;g.fa=function(a,b,c,d){this.m=b;this.a=c;this.F=d;var e=this;this.b.ib=vb(c,function(){e.b.na|=128;e.b.na&64&&(wb(e.a,e.b.vc),xb(e.a,e.b.ib,1E3/60))});this.b.vc=yb(64,6);sb(b,this,I);tb(b,this.reset.bind(this));C(this)};g.reset=function(){this.c.Va=this.c.Va&-120|20;this.b.na=0}; -g.Qb=function(){var a=this.b.na;this.b.na&=-129;return a};g.Ec=function(a){this.b.na=a;a&64&&xb(this.a,this.b.ib,1E3/60);this.b.na=a&-129};g.Jb=function(a){return(a?this.c.uc:this.c.data)&65535};g.xc=function(a){this.c.data=a};g.Sb=function(){var a=this.a;return a.A&62337|a.La<<5|a.Ma<<1};g.Gc=function(a){var b=this.a;a&=62337;if(b.A!=a){b.A=a;b.La=a>>5&3;b.Ma=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ga!=c&&(b.Ga=c,zb(b))}Ab(this)}; +g.Qb=function(){var a=this.b.na;this.b.na&=-129;return a};g.Ec=function(a){this.b.na=a;a&64&&xb(this.a,this.b.ib,1E3/60);this.b.na=a&-129};g.Jb=function(a){return(a?this.c.uc:this.c.data)&65535};g.xc=function(a){this.c.data=a};g.Sb=function(){var a=this.a;return a.w&62337|a.La<<5|a.Ma<<1};g.Gc=function(a){var b=this.a;a&=62337;if(b.w!=a){b.w=a;b.La=a>>5&3;b.Ma=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ga!=c&&(b.Ga=c,zb(b))}Ab(this)}; g.Tb=function(){var a=this.a.oa;a&65280&&(a=(a<<8|a>>8)&65535);return a};g.Ub=function(){return this.a.gb};g.Vb=function(){return this.a.pa};g.Hc=function(a){var b=this.a;1170>b.Ja&&(a&=-49);b.pa!=a&&(b.pa=a,a&16?(b.bb=4194303,b.Na=3915776):(b.bb=262143,b.Na=253952),zb(b));Ab(this)};function Ab(a){a.c.Va=a.c.Va&-8|(a.a.Ga?a.a.pa&16?1:2:4)}g.ic=function(a){return this.a.D[1][a>>1&7]};g.Vc=function(a,b){this.a.D[1][b>>1&7]=a&65295};g.gc=function(a){return this.a.D[1][(a>>1&7)+8]}; g.Tc=function(a,b){this.a.D[1][(b>>1&7)+8]=a&65295};g.hc=function(a){return this.a.S[1][a>>1&7]};g.Uc=function(a,b){b=b>>1&7;this.a.S[1][b]=a;this.a.D[1][b]&=65295};g.fc=function(a){return this.a.S[1][(a>>1&7)+8]};g.Sc=function(a,b){b=(b>>1&7)+8;this.a.S[1][b]=a;this.a.D[1][b]&=65295};g.Pb=function(a){return this.a.D[0][a>>1&7]};g.Dc=function(a,b){this.a.D[0][b>>1&7]=a&65295};g.Nb=function(a){return this.a.D[0][(a>>1&7)+8]};g.Bc=function(a,b){this.a.D[0][(b>>1&7)+8]=a&65295}; g.Ob=function(a){return this.a.S[0][a>>1&7]};g.Cc=function(a,b){b=b>>1&7;this.a.S[0][b]=a;this.a.D[0][b]&=65295};g.Mb=function(a){return this.a.S[0][(a>>1&7)+8]};g.Ac=function(a,b){b=(b>>1&7)+8;this.a.S[0][b]=a;this.a.D[0][b]&=65295};g.oc=function(a){return this.a.D[3][a>>1&7]};g.ad=function(a,b){this.a.D[3][b>>1&7]=a&65295};g.mc=function(a){return this.a.D[3][(a>>1&7)+8]};g.Zc=function(a,b){this.a.D[3][(b>>1&7)+8]=a&65295};g.nc=function(a){return this.a.S[3][a>>1&7]}; @@ -82,34 +82,34 @@ I[65450]=I[65440];I[65452]=I[65440];I[65454]=I[65440];I[65458]=I[65456];I[65460] if(Ta){var Db=new ArrayBuffer(2);(new DataView(Db)).setUint16(0,256,!0);Cb=256===(new Uint16Array(Db))[0]}else Cb=!1;var Eb=Cb; function F(a,b,c,d,e,f){this.m=a;this.id=Fb+=2;this.a=null;this.Ea=b;this.Wa=c;this.size=d||0;this.type=e||Gb;this.g=e==Hb;this.controller=null;db(this);this.la=this.Db=!1;if(d)if(f)this.controller=f,this.a=null,Ib(this,f.Bb);else if(Ta)this.b=new ArrayBuffer(d),this.s=new DataView(this.b,0,d),this.c=new Uint8Array(this.b,0,d),this.o=new Uint16Array(this.b,0,d>>1),this.a=new Int32Array(this.b,0,d>>2),Ib(this,Eb?Jb:Kb);else{this.a=Array(d>>2);for(a=0;a>2),b=0;b>2),b=0;b>8,c)},N:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ca:function(a,b){a&1&&ub(this.m,b);b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},ha:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<>8);this.la=!0},G:function(a,b){return this.I(a,b)}, T:function(a,b){return this.W(a,b)},ea:function(a,b,c){this.g||this.yb(a,b,c)},ja:function(a,b,c){this.g||this.ra(a,b,c)},C:function(a){return this.c[a]},J:function(a){return this.c[a]},O:function(a,b){a&1&&ub(this.m,b);return this.s.getUint16(a,!0)},X:function(a,b){a&1&&ub(this.m,b);return this.o[a>>1]},da:function(a,b){this.c[a]=b;this.la=!0},ga:function(a,b){this.c[a]=b;this.la=!0},ia:function(a,b,c){a&1&&ub(this.m,c);this.s.setUint16(a,b,!0);this.la=!0},sa:function(a,b,c){a&1&&ub(this.m,c);this.o[a>> -1]=b;this.la=!0}};function db(a,b,c){a.F=b;a.h=a.j=0;c&&((a.h=c.h)&&Mb(a,Nb,!1),(a.j=c.j)&&Ob(a,Nb,!1))}function Ob(a,b,c){c&&a.j||(a.jb=!a.g&&b[1]||a.A,a.Xa=!a.g&&b[3]||a.B);if(c||void 0===c)a.yb=b[1]||a.A,a.ra=b[3]||a.B}function Mb(a,b,c){c&&a.h||(a.eb=b[0]||a.w,a.R=b[2]||a.u);if(c||void 0===c)a.I=b[0]||a.w,a.W=b[2]||a.u}function Ib(a,b){b||(b=Pb);Mb(a,b,void 0);Ob(a,b,void 0)} +1]=b;this.la=!0}};function db(a,b,c){a.F=b;a.h=a.j=0;c&&((a.h=c.h)&&Mb(a,Nb,!1),(a.j=c.j)&&Ob(a,Nb,!1))}function Ob(a,b,c){c&&a.j||(a.jb=!a.g&&b[1]||a.w,a.Xa=!a.g&&b[3]||a.B);if(c||void 0===c)a.yb=b[1]||a.w,a.ra=b[3]||a.B}function Mb(a,b,c){c&&a.h||(a.eb=b[0]||a.A,a.R=b[2]||a.u);if(c||void 0===c)a.I=b[0]||a.A,a.W=b[2]||a.u}function Ib(a,b){b||(b=Pb);Mb(a,b,void 0);Ob(a,b,void 0)} var Pb=[],Lb=[F.prototype.N,F.prototype.ha,F.prototype.ca,F.prototype.ta],Nb=[F.prototype.G,F.prototype.ea,F.prototype.T,F.prototype.ja];if(Ta)var Kb=[F.prototype.C,F.prototype.da,F.prototype.O,F.prototype.ia],Jb=[F.prototype.J,F.prototype.ga,F.prototype.X,F.prototype.sa]; function Qb(a,b){u.call(this,"CPU",a,Qb);var c=a.multiplier||1;this.Sa=a.cycles||b;this.ea=c;this.ab=Math.round(this.Sa/1E4)/100;this.ga=this.ab*this.ea;this.i.U=!1;this.i.wb=!1;this.i.Fa=a.autoStart;this.i.Ra=!1;this.Pa=this.ia=0;this.Qa=a.csStart;this.sa=a.csInterval;this.ta=a.csStop;this.G=[];this.sb=this.tc.bind(this);C(this)}w(Qb);var Rb=["power","reset"];g=Qb.prototype; -g.fa=function(a,b,c,d){this.w=a;this.m=b;this.F=d;for(b=0;ba.ca/a.ga&&(b=1),a.ea=b,b=a.ab*a.ea,a.ga!=b)){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var c=a.s.setSpeed;c&&(c.textContent=b);a.P("target speed: "+b)}a.J+=a.W;a.W=0;a.O=sa();a.da=0;Xb(a)}function vb(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function xb(a,b,c){0<=b&&ba.G[b][0]&&(c=a.Sa*a.ea/1E3*c|0,a.G[b][0]=c+Zb(a))}function Zb(a,b){var c=a.ha-=a.a;a.a=0;b&&(a.ha=0);return c} g.tc=function(){if(this.i.U){this.cb>=this.Sa&&Xb(this,!0);this.Da=0;this.Oa=sa();if(this.da){var a=this.Oa-this.da;a>this.qb&&(this.O+=a,this.O>this.Oa&&(this.O=this.Oa))}try{do{for(var b,c=this.i.Ra?1:this.Ta,d=this.G.length-1;0<=d;d--){var e=this.G[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.xb(b)}catch(n){if("number"!=typeof n)throw n;}b=Zb(this,!0);this.Da+=b;this.W+=b;a=b;if(this.i.Ra){var f=!1;this.Pa=this.Pa+this.mb()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.sa,f=!0);0<=this.ta&&this.ta<=Yb(this)&& -(this.sa=this.ta=-1,Ub(this),D(this),f=!0);f&&this.P(Yb(this)+" cycles: checksum="+ja(this.Pa))}for(var a=b,h=this.G.length-1;0<=h;h--){var l=this.G[h];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.Ca-=b;if(0>=this.Ca){this.Ca+=this.Ta;15<=++this.rb&&(this.w&&this.w.ba(),this.rb=0);break}}while(this.i.U)}catch(n){D(this);this.w&&this.w.stop(sa(),Yb(this));b=n.stack||n.message;this.i.error=!0;this.K(b);return}if(this.i.U){b=setTimeout;c=this.sb;this.da=sa();d=this.qb;this.Da&&(d=Math.round(d*this.Da/ -this.Ta));d-=this.da-this.Oa;if(e=this.da-this.O)this.ca=Math.round(this.W/(10*e))/100,864E5<=e&&(this.J=0,Wb(this));if(0>d||this.cad&&(this.O-=d),d=0;this.cb+=this.Da;this.da+=d;b(c,d)}}};function Vb(a){var b;a.i.error?(a.P(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.U)a.P(a.toString()+" busy");else{Wb(a);a.i.U=!0;a.i.wb=!0;if(b=a.s.run)b.textContent="Halt";a.w&&a.w.start(a.O,Yb(a));setTimeout(a.sb,0)}}g.xb=function(){return 0}; -function D(a){if(a.i.U){Zb(a);a.J+=a.W;a.W=0;a.i.U=!1;var b=a.s.run;b&&(b.textContent="Run");a.w&&a.w.stop(sa(),Yb(a))}a.i.complete=void 0}function $b(a){this.Ja=+a.model||1170;this.ob=a.addrReset||0;Qb.call(this,a,6666667);this.decode=1120==this.Ja?ac.bind(this):bc.bind(this);cc(this);this.T=0;this.X=null;this.i.complete=this.i.Cb=!1}w($b,Qb);g=$b.prototype;g.reset=function(){this.status("model "+this.Ja);this.i.U&&D(this);cc(this);Tb(this);this.i.error=!1;this.parent.reset.call(this)}; +(this.sa=this.ta=-1,Ub(this),D(this),f=!0);f&&this.P(Yb(this)+" cycles: checksum="+ja(this.Pa))}for(var a=b,h=this.G.length-1;0<=h;h--){var l=this.G[h];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.Ca-=b;if(0>=this.Ca){this.Ca+=this.Ta;15<=++this.rb&&(this.A&&this.A.ba(),this.rb=0);break}}while(this.i.U)}catch(n){D(this);this.A&&this.A.stop(sa(),Yb(this));b=n.stack||n.message;this.i.error=!0;this.K(b);return}if(this.i.U){b=setTimeout;c=this.sb;this.da=sa();d=this.qb;this.Da&&(d=Math.round(d*this.Da/ +this.Ta));d-=this.da-this.Oa;if(e=this.da-this.O)this.ca=Math.round(this.W/(10*e))/100,864E5<=e&&(this.J=0,Wb(this));if(0>d||this.cad&&(this.O-=d),d=0;this.cb+=this.Da;this.da+=d;b(c,d)}}};function Vb(a){var b;a.i.error?(a.P(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.U)a.P(a.toString()+" busy");else{Wb(a);a.i.U=!0;a.i.wb=!0;if(b=a.s.run)b.textContent="Halt";a.A&&a.A.start(a.O,Yb(a));setTimeout(a.sb,0)}}g.xb=function(){return 0}; +function D(a){if(a.i.U){Zb(a);a.J+=a.W;a.W=0;a.i.U=!1;var b=a.s.run;b&&(b.textContent="Run");a.A&&a.A.stop(sa(),Yb(a))}a.i.complete=void 0}function $b(a){this.Ja=+a.model||1170;this.ob=a.addrReset||0;Qb.call(this,a,6666667);this.decode=1120==this.Ja?ac.bind(this):bc.bind(this);cc(this);this.T=0;this.X=null;this.i.complete=this.i.Cb=!1}w($b,Qb);g=$b.prototype;g.reset=function(){this.status("model "+this.Ja);this.i.U&&D(this);cc(this);Tb(this);this.i.error=!1;this.parent.reset.call(this)}; function cc(a){a.j=65536;a.g=32768;a.h=65535;a.o=32768;a.v=15;a.f=[0,0,0,0,0,0,0,a.ob];a.wa=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.u=0;a.Ma=0;a.Gb=[4,2,0,1];a.D=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.S=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.Ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.vb=[0,0,0,0,0,0,0,0];a.ub=0;a.l=0;a.B=a.C=0;a.c=a.b=a.$a=0;a.ja=-1;dc(a)}function dc(a){a.qa=255;a.H=0;a.hb=0;a.A=0;a.oa=0;a.gb=0;a.pa=0;a.Ga=0;a.La=0;a.bb=262143;a.Na=253952;a.l|=2;a.m&&zb(a)}function zb(a){a.Ga?(a.N=65536,a.I=a.Fb,a.R=a.qc,a.Xa=a.cd,gb(a.m,a.pa&16?22:18)):(a.N=0,a.I=a.Eb,a.R=a.pc,a.Xa=a.bd,gb(a.m,16))}function ec(a,b){a.ob=b;L(a,b);a.F&&(D(a),a.F.ba())}g.mb=function(){return 0}; +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.vb=[0,0,0,0,0,0,0,0];a.ub=0;a.l=0;a.B=a.C=0;a.c=a.b=a.$a=0;a.ja=-1;dc(a)}function dc(a){a.qa=255;a.H=0;a.hb=0;a.w=0;a.oa=0;a.gb=0;a.pa=0;a.Ga=0;a.La=0;a.bb=262143;a.Na=253952;a.l|=2;a.m&&zb(a)}function zb(a){a.Ga?(a.N=65536,a.I=a.Fb,a.R=a.qc,a.Xa=a.cd,gb(a.m,a.pa&16?22:18)):(a.N=0,a.I=a.Eb,a.R=a.pc,a.Xa=a.bd,gb(a.m,16))}function ec(a,b){a.ob=b;L(a,b);a.F&&(D(a),a.F.ba())}g.mb=function(){return 0}; g.save=function(){var a=new M(this);a.set(0,[]);a.set(1,[this.J,this.ea]);a.set(2,qb(this.m));return a.data()};g.restore=function(a){var b=a[1];this.J=b[1];Wb(this,b[3]);a:{b=this.m;a=a[2];var c;for(c=0;c>14&3;c=a.v>>14&3;a.u!=c&&(a.aa[c]=a.f[6],a.f[6]=a.aa[a.u]);a.v=b;a.l|=2}function O(a,b){a.l&128||(a.o=a.h=b,a.g=0)}function P(a,b,c){a.l&128||(a.o=a.h=a.j=b,a.g=c||0)}function hc(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^b)&(d^b))}function Q(a,b){a.l&128||(a.o=a.h=a.j=b,a.g=a.o^a.j>>1)}function ic(a,b,c,d){a.l&128||(a.o=a.h=a.j=b,a.g=(c^d)&(d^b))} -function G(a,b,c){if(!a.T){var d=!1;0>a.ja?a.ja=Ya(a):a.u||(b=4,d=!0);a.A&57344||(a.oa=63222,a.gb=b);a.u=0;var e=a.R(b|a.N),f=a.R(b+2&65535|a.N);Bb(a,f&-12289|a.ja>>2&12288);d&&(a.H|=4,a.f[6]=4);jc(a,a.ja);jc(a,a.f[7]);L(a,e);a.l&=-113;a.ja=-1;if(26!=c)throw b;}}function kc(a){var b=lc(a),c=lc(a)&-1793;a.v&49152&&(c=c&-225|a.v&63712);L(a,b);Bb(a,c);a.l&=-17} +function G(a,b,c){if(!a.T){var d=!1;0>a.ja?a.ja=Ya(a):a.u||(b=4,d=!0);a.w&57344||(a.oa=63222,a.gb=b);a.u=0;var e=a.R(b|a.N),f=a.R(b+2&65535|a.N);Bb(a,f&-12289|a.ja>>2&12288);d&&(a.H|=4,a.f[6]=4);jc(a,a.ja);jc(a,a.f[7]);L(a,e);a.l&=-113;a.ja=-1;if(26!=c)throw b;}}function kc(a){var b=lc(a),c=lc(a)&-1793;a.v&49152&&(c=c&-225|a.v&63712);L(a,b);Bb(a,c);a.l&=-17} function mc(a,b,c){var d,e,f,h=0;d=b>>13;a.pa&a.Gb[a.u]||(d&=7);e=a.D[a.u][d];f=(a.S[a.u][d]<<6)+(b&8191)&a.bb;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.pa&32&&(f=a.Ib[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Na&&4186112>f&&(a.H|=32,G(a,4,12))}switch(e&7){case 1:h=4096;case 2:e|=128;c&4&&(h=8192);break;case 4:h=4096;case 5:c&4&&(h=4096);case 6:e|=c&4?192: -128;break;default:h=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(h|=16384):(b&8128)>(e>>2&8128)&&(h|=16384));a.D[a.u][d]=e;if(4194170!==f||a.u)a.La=a.u,a.Ma=d;h&&(h&57344&&(0<=a.ja&&(h|=128),a.A&57344||(a.A=a.A|h|a.La<<5|a.Ma<<1),G(a,168,16)),a.A&61440||!(4191360>f||4194239>>a.m].jb(b&a.g,c&255,b)}function lc(a){var b=a.R(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b} -function jc(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.oa=a.oa<<8|246);!a.u&&c<=a.qa&&4>2&8128)&&(h|=16384):(b&8128)>(e>>2&8128)&&(h|=16384));a.D[a.u][d]=e;if(4194170!==f||a.u)a.La=a.u,a.Ma=d;h&&(h&57344&&(0<=a.ja&&(h|=128),a.w&57344||(a.w=a.w|h|a.La<<5|a.Ma<<1),G(a,168,16)),a.w&61440||!(4191360>f||4194239>>a.m].jb(b&a.g,c&255,b)}function lc(a){var b=a.R(a.f[6]|a.N);a.f[6]=a.f[6]+2&65535;return b} +function jc(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.w&57344||(a.oa=a.oa<<8|246);!a.u&&c<=a.qa&&4c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=h);e=a.R(e);e|=h;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.f[c]+f&65535;7!==c&&(e|=h);a.a-=4;break;case 5:f=-2;e=a.f[c]-2&65535;7!==c&&(e|=h);e=a.R(e)|h;a.a-= -8;break;case 6:return e=a.R(gc(a,2)),e=e+a.f[c]&65535|h,a.a-=6,e;case 7:return e=a.R(gc(a,2)),e=e+a.f[c]&65535,e=a.R(e|a.N)|h,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!h||a.A&57344||(a.oa=a.oa<<8|f<<3&248|c);6==c&&!a.u&&d&4&&0>=f&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32?(a.H|=4,a.f[6]=4,G(a,4,24)):(a.H|=8,a.l|=64));return e}g.Ia=function(a,b){this.Ga?(this.T++,nc(this,mc(this,a,5),b),this.T--):this.m.Ia(a,b)};g.Eb=function(a,b,c){return oc(this,a,b,c)}; +8;break;case 6:return e=a.R(gc(a,2)),e=e+a.f[c]&65535|h,a.a-=6,e;case 7:return e=a.R(gc(a,2)),e=e+a.f[c]&65535,e=a.R(e|a.N)|h,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!h||a.w&57344||(a.oa=a.oa<<8|f<<3&248|c);6==c&&!a.u&&d&4&&0>=f&&(a.f[6]<=a.qa||65534<=a.f[6])&&(a.f[6]<=a.qa-32?(a.H|=4,a.f[6]=4,G(a,4,24)):(a.H|=8,a.l|=64));return e}g.Ia=function(a,b){this.Ga?(this.T++,nc(this,mc(this,a,5),b),this.T--):this.m.Ia(a,b)};g.Eb=function(a,b,c){return oc(this,a,b,c)}; g.Fb=function(a,b,c){return mc(this,oc(this,a,b,c),c)};g.pc=function(a){return ob(this.m,a)};g.qc=function(a){return ob(this.m,mc(this,a,2))};g.bd=function(a,b){pb(this.m,a,b&65535)};g.cd=function(a,b){pb(this.m,mc(this,a,4),b)};function pc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=oc(a,b,d,2),c&65536||61440!==(a.v&61440)&&(d&=65535),a.u=a.v>>12&3,c=a.R(d|c&a.N),a.u=a.v>>14&3):c=6!=d||(a.v>>2&12288)===(a.v&12288)?a.f[d]:a.aa[a.v>>12&3];return c} -function qc(a,b,c,d){a.A&57344||(a.oa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=oc(a,b,e,4),c&65536||(e&=65535),a.u=a.v>>12&3,e=mc(a,e|c&65536,4),a.u=a.v>>14&3,pb(a.m,e,d)):6!=e||(a.v>>2&12288)===(a.v&12288)?a.f[e]=d:a.aa[a.v>>12&3]=d}function rc(a,b){b>>=6;var c=a.C=b&7;(b=a.B=(b&56)>>3)?(c=a.I(b,c,3),a=nb(a.m,c)):a=a.f[c]&255;return a}function R(a,b){b>>=6;var c=a.C=b&7;return(b=a.B=(b&56)>>3)?ob(a.m,a.I(b,c,2)):a.f[c]}function sc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return oc(a,b,c,8)} +function qc(a,b,c,d){a.w&57344||(a.oa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=oc(a,b,e,4),c&65536||(e&=65535),a.u=a.v>>12&3,e=mc(a,e|c&65536,4),a.u=a.v>>14&3,pb(a.m,e,d)):6!=e||(a.v>>2&12288)===(a.v&12288)?a.f[e]=d:a.aa[a.v>>12&3]=d}function rc(a,b){b>>=6;var c=a.C=b&7;(b=a.B=(b&56)>>3)?(c=a.I(b,c,3),a=nb(a.m,c)):a=a.f[c]&255;return a}function R(a,b){b>>=6;var c=a.C=b&7;return(b=a.B=(b&56)>>3)?ob(a.m,a.I(b,c,2)):a.f[c]}function sc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return oc(a,b,c,8)} function tc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.I(b,c,3),a=nb(a.m,c)):a=a.f[c]&255;return a}function uc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?ob(a.m,a.I(b,c,2)):a.f[c]}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.$a=a.I(b,e,7),nc(a,e,d.call(a,c,nb(a.m,e)))):a.f[e]=a.f[e]&65280|d.call(a,c,a.f[e])}function T(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.I(b,e,6),pb(a.m,e,d.call(a,c,ob(a.m,e)))):a.f[e]=d.call(a,c,a.f[e])} function vc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?nc(a,a.I(b,e,5),c):a.f[e]=c?d&1?c<<24>>24&65535:a.f[e]&-256|c&255:a.f[e]&-256;return c}function wc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?pb(a.m,a.I(b,d,4),c):a.f[d]=c&65535;return c}function U(a,b,c){c&&(L(a,a.f[7]+(b<<24>>23)),a.a-=2);a.a-=3} g.xb=function(a){this.i.complete=!0;this.i.Cb=!1;this.i.wb=!1;this.ha=this.a=a;do{if(this.l&&(this.l&112&&(this.l&32?G(this,168,28):this.l&64?G(this,4,30):this.l&16&&G(this,12,32),this.l&=-113),this.l&7))if(this.l&2){this.l&=-3;var b=160,c=(this.hb&224)>>5;if(a=this.X&&this.X.xa>c?this.X:null)b=a.wc,c=a.xa;c>(this.v&224)>>5?(this.l&4&&(gc(this,2),this.l&=-5),G(this,b,26),c=!0):c=!1;if(c&&a)if(c=this.X,c==a)this.X=a.next;else for(;c;){b=c.next;if(b==a){c.next=b.next;break}c=b}}else this.l&1&&this.l++; @@ -127,10 +127,10 @@ function xd(a){var b=uc(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];t function zd(){this.v&49152?(this.H|=128,G(this,4,3)):this.F?this.F.c():D(this);this.a-=7}function Ad(){G(this,16,4);this.a-=25}var Bd=[0,7,7,10,7,11,9,13];function W(a){var b=this.a;L(this,sc(this,a));this.a=b-Bd[this.c]}var Cd=[0,14,14,17,14,18,16,20];function Dd(a){var b=this.a,c=sc(this,a);a=a>>6&7;jc(this,this.f[a]);this.f[a]=this.f[7];L(this,c);this.a=b-Cd[this.c]}var Ed=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17]; function Fd(a){var b=R(this,a),c=this.a;O(this,wc(this,a,b));this.a=c-Ed[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)}function Gd(a){var b=rc(this,a);O(this,vc(this,a,b,1)<<8);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}var Hd=[7,13,13,17,14,18,17,21]; function Id(a){var b=uc(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.l&128||(this.o=b>>16,this.h=this.o|b,this.g=0,this.j=-32768>b||32767>6;if(this.f[b]=this.f[b]-1&65535)L(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Od(a){T(this,a,R(this,a),Tc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Pd(a){T(this,a,0,Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Qd(){G(this,28,5);this.a-=5}function Rd(){this.l&4||this.w.ba();this.l|=4;gc(this,-2);this.a-=3} -function Sd(a){T(this,a,R(this,a),Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){G(this,8,6)}function ac(a){Td[a>>12].call(this,a)}function Ud(a){Vd[a>>6&3].call(this,a)}function Wd(a){Xd[a>>6&3].call(this,a)}function Yd(a){$d[a>>6&3].call(this,a)}function ae(a){be[a&15].call(this,a)}function ce(a){de[a&15].call(this,a)}function ee(a){fe[a>>6&3].call(this,a)}function ge(a){he[a>>6&3].call(this,a)}function ie(a){je[a>>6&3].call(this,a)} +function X(a){a&1&&(this.j=65536);a&2&&(this.g=32768);a&4&&(this.h=0);a&8&&(this.o=32768);this.a-=5}function Nd(a){var b=(a&448)>>6;if(this.f[b]=this.f[b]-1&65535)L(this,this.f[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Od(a){T(this,a,R(this,a),Tc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Pd(a){T(this,a,0,Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Qd(){G(this,28,5);this.a-=5}function Rd(){this.l&4||this.A.ba();this.l|=4;gc(this,-2);this.a-=3} +function Sd(a){T(this,a,R(this,a),Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){G(this,8,6)}function ac(a){Td[a>>12].call(this,a)}function Ud(a){Vd[a>>6&3].call(this,a)}function Wd(a){Xd[a>>6&3].call(this,a)}function Yd(a){Zd[a>>6&3].call(this,a)}function ae(a){be[a&15].call(this,a)}function ce(a){de[a&15].call(this,a)}function ee(a){fe[a>>6&3].call(this,a)}function ge(a){he[a>>6&3].call(this,a)}function ie(a){je[a>>6&3].call(this,a)} var Td=[function(a){ke[a>>8&15].call(this,a)},Fd,vd,fd,bd,dd,Xc,Y,function(a){le[a>>8&15].call(this,a)},Gd,wd,gd,cd,ed,Od,Y],ke=[function(a){me[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Dd,Dd,Ud,Wd,Yd,Y,Y,Y],Vd=[function(a){P(this,wc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],Xd=[function(a){T(this,a,0,Nc); -this.a-=this.c?11:6},function(a){T(this,a,N(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,N(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=uc(this,a);P(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],$d=[function(a){T(this,a,0,Rc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Bc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}],me=[function(a){ne[a& +this.a-=this.c?11:6},function(a){T(this,a,N(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,N(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=uc(this,a);P(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],Zd=[function(a){T(this,a,0,Rc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Bc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)}],me=[function(a){ne[a& 15].call(this,a)},Y,Y,Y,W,W,W,W,Md,Y,ae,ce,Pd,Pd,Pd,Pd],ne=[zd,Rd,Ld,rd,Ad,Kd,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],be=[Jd,function(){this.j=0;this.a-=5},function(){this.g=0;this.a-=5},V,function(){this.h=1;this.a-=5},V,V,V,function(){this.o=0;this.a-=5},V,V,V,V,V,V,V],de=[Jd,function(){this.j=65536;this.a-=5},function(){this.g=32768;this.a-=5},X,function(){this.h=0;this.a-=5},X,X,X,function(){this.o=32768;this.a-=5},X,X,X,X,X,X,X],le=[qd,od,kd,md,td,ud,$c,ad,yd,Qd,ee,ge,ie,Y,Y,Y],fe=[function(a){P(this,vc(this,a, 0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Ic);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Mc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)}],he=[function(a){S(this,a,0,Oc);this.a-=this.c?11:6},function(a){S(this,a,N(this)?1:0,yc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,N(this)?1:0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=tc(this,a);P(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}], je=[function(a){S(this,a,0,Sc);this.a-=this.c?9+(this.$a&1):3+(7==this.b?2:0)},function(a){S(this,a,0,Qc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,Cc);this.a-=this.c?9+(this.$a&1):3+(7==this.b?2:0)},function(a){S(this,a,0,Ac);this.a-=this.c?9:3+(7==this.b?2:0)}];function bc(a){oe[a>>12].call(this,a)} @@ -144,53 +144,53 @@ q(function(){for(var a=B(document,"pdp11","rom"),b=0;b=b.length)break;for(var h=h+2,n=b[h++]&255|(b[h++]&255)<<8,r=b[h++]&255|(b[h++]&255)<<8,l=l+((n&255)+(n>>8)+(r&255)+(r>>8)),t=h,y=n-=6;0=b.length)break;l+=b[h++]&255;if(l&255)break;if(y)for(;y--;)a.a.Ia(r++,b[t++]&255);else r&1?D(a.a):ec(a.a,r);f=!0}else h++;else h+=2}if(!f&&(null==c&&(c=e),null!=c)){for(e=0;e=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=qa(b[0]);if(c!=this.Ka)return;b=qa(b[1]);if(this.u=Qa(b)){var d=this.u.exports;if(d){var e=d.connect;e&&e.call(this.u);if(this.A=d.receiveData){this.status(this.ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.$=function(a,b){if(!b)if(this.nb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; +g.fa=function(a,b,c,d){this.A=a;this.m=b;this.a=c;this.F=d;var e=this;this.N=yb(48,4);this.I=vb(this.a,function(){e.b&128||!e.h.length||(e.C=e.h.shift(),e.b|=128,e.b&64&&wb(e.a,e.N))});this.O=yb(52,4);this.J=vb(this.a,function(){e.c|=128;e.c&64&&wb(e.a,e.O)});sb(b,this,De);C(this)}; +g.nb=function(){if(!this.u){var a=Sb(this.A,"connection");if(a){var b=a.split("->");if(2==b.length){var c=qa(b[0]);if(c!=this.Ka)return;b=qa(b[1]);if(this.u=Qa(b)){var d=this.u.exports;if(d){var e=d.connect;e&&e.call(this.u);if(this.w=d.receiveData){this.status(this.ra+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.$=function(a,b){if(!b)if(this.nb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; g.Z=function(a){return a?this.save():!0};g.reset=function(){Ee(this)};g.save=function(){var a=new M(this);a.set(0,[]);return a.data()};g.restore=function(){return Ee(this)};function Ee(a){a.C=0;a.b=0;a.c=128;a.h=[];return!0}g.fb=function(a){if("number"==typeof a)this.h.push(a);else if("string"==typeof a)for(var b=0;b":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.G||8,c=a-this.o%a,this.G&&(b=" ".slice(0,c)));this.B&&!this.o&&c&&(b=String.fromCharCode(this.B)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.o+=c}else if(null!=this.j){if(10==a||1024<=this.j.length)this.P(this.j), +g.dd=function(a){if(a&=255){this.w&&this.w.call(this.u,a);if(this.g)if(13==a)this.o=0;else if(8==a)this.g.value=this.g.value.slice(0,-1),0":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.G||8,c=a-this.o%a,this.G&&(b=" ".slice(0,c)));this.B&&!this.o&&c&&(b=String.fromCharCode(this.B)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.o+=c}else if(null!=this.j){if(10==a||1024<=this.j.length)this.P(this.j), this.j="";10!=a&&(this.j+=String.fromCharCode(a))}this.c&=-129;xb(this.a,this.J,1)}};var Fe={},De=(Fe[65392]=[null,null,Z.prototype.ec,Z.prototype.Rc,"RCSR"],Fe[65394]=[null,null,Z.prototype.dc,Z.prototype.Qc,"RBUF"],Fe[65396]=[null,null,Z.prototype.sc,Z.prototype.ed,"XCSR"],Fe[65398]=[null,null,Z.prototype.rc,Z.prototype.dd,"XBUF"],Fe);q(function(){for(var a=B(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.s[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.s[b]=c,c.onclick=function(){var a= -d.s.listTapes;a&&Ie(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(this.C)return this.s[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ie(d,ka(b,!0),b,1,a)}return!1},!0;c.parentNode.removeChild(c)}return!1}; -g.fa=function(a,b,c,d){this.w=a;this.m=b;this.a=c;this.F=d;this.G=Je(a);var e=this;if((this.c=Sb(this.w,"autoMount")||this.c)&&"string"==typeof this.c)try{this.c=eval("("+this.c+")")}catch(f){m("PC11 auto-mount error: "+f.message+" ("+this.c+")"),this.c=null}this.I=yb(56,4);this.J=vb(this.a,function(){1==(e.b&32769)&&!(e.b&128)&&e.Bc.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!k(f,null,!0,function(e,f,h){var l=0>h&&a.w&&!a.w.i.M;h?a.K('Unable to load tape "'+b+'" (error '+h+": "+e+")",l):(Pa(a.ra,e,f),(e=ua(e,f))&&Re(a,b,c,d,e.L,e.va,e.ua)); -a.i.Ya=!1;a.h&&(a.h--,a.h||C(a));Oe(a)})}function Le(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bVe){if(Xe(d,this.u)){this.j=new M(this,"1.30.1","failsafe");Xe(this.j)&&(bf(this,d),a=2,cf(this.j));this.j.set("timestamp",ta());df(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=af(d)){var f=d.get("code"),h=d.get("data");f&&("ok"==f?Xe(d,h):("error"== -f&&"no machine state"!=h?(this.K("Error: "+h),"unable to verify user"==h&&(za("user",""),this.c=null)):this.P(f+": "+h),cf(d),Xe(d)?(c=af(d),e=!0):c=!1))}e&&$e(this,c?d:null)}else 2==a&&d.clear()}else $e(this);delete this.u;delete this.A}e=x(this.id);for(f=0;fa[1];a=a[2];this.T=!0;this.i.M=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(ef(this,this.a,b,c,a),this.a.Fa());this.G&&(bf(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; -function bf(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;k("http://www.pcjs.org/api/v1/report",d,!0)}} -function ff(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new M(a,"1.30.1"),h=new M(a,"1.30.1","validate"),l=ta();h.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&D(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.M=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;nc.indexOf("/api/v1/dump")&&(e=la(c),f="json"==e||"gz"==e?encodeURI(c):na()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!k(f,null,!0,function(e,f,h){var l=0>h&&a.A&&!a.A.i.M;h?a.K('Unable to load tape "'+b+'" (error '+h+": "+e+")",l):(Pa(a.ra,e,f),(e=ua(e,f))&&Se(a,b,c,d,e.L,e.va,e.ua)); +a.i.Ya=!1;a.h&&(a.h--,a.h||C(a));Pe(a)})}function Me(a,b,c,d){if((a=a.s.listTapes)&&a.options){for(var e=0;e\nLicense: GPL version 3 or later ");this.P("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bWe){if(Ye(d,this.u)){this.j=new M(this,"1.30.1","failsafe");Ye(this.j)&&(cf(this,d),a=2,df(this.j));this.j.set("timestamp",ta());ef(this.j);var e=this.b&&!this.o;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=bf(d)){var f=d.get("code"),h=d.get("data");f&&("ok"==f?Ye(d,h):("error"== +f&&"no machine state"!=h?(this.K("Error: "+h),"unable to verify user"==h&&(za("user",""),this.c=null)):this.P(f+": "+h),df(d),Ye(d)?(c=bf(d),e=!0):c=!1))}e&&af(this,c?d:null)}else 2==a&&d.clear()}else af(this);delete this.u;delete this.w}e=x(this.id);for(f=0;fa[1];a=a[2];this.T=!0;this.i.M=!0;var d=this.s.power;d&&(d.textContent="Shutdown");this.a&&(ff(this,this.a,b,c,a),this.a.Fa());this.G&&(cf(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0}; +function cf(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.O;d.user=c;d.type="bug";d.data=b;k("http://www.pcjs.org/api/v1/report",d,!0)}} +function gf(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new M(a,"1.30.1"),h=new M(a,"1.30.1","validate"),l=ta();h.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.Z&&(c&&D(a.a),d=a.a.Z(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.i.M=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;nf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");k(e,null,!0,function(f,h,l){if(l||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(h=h.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],h);nf(a,b,c)}})}else c(a,null)} -function of(a,b,c,d){function e(a){if(void 0===l){var b=h&&B(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--kf||Ga(!0));n=!1}var h,l,n=!0;kf++;Oa[a]={};try{if(h=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=r:y.appendChild(document.createTextNode(r));t.appendChild(y)}c|| -(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?lf(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(h.outerHTML=n,--kf||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(n,h),--kf||Ga(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?lf(b,a,d,!0,e,r):mf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(Zd){f(Zd.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return of(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map +g.V=function(a,b,c){var d=this;switch(b){case "power":return this.s[b]=c,c.onclick=function(){d.g||(d.i.M?gf(d,!1,!0):$e(d,d.Ha))},!0;case "reset":return this.s[b]=c,c.onclick=function(){if(d.i.M&&!d.g)if(d.b&&!d.A){var a=va("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");gf(d,a,!0);!a&&d.C?window&&window.location.reload():d.Ha(We)}else d.reset(),d.a&&d.a.Fa()},!0;case "save":if(ma())c.parentNode.removeChild(c);else return this.s[b]= +c,c.onclick=function(){var a=Xe(d,!0);if(a){var b=!!(d.b&&!d.A||d.C),c=gf(d,b);b?hf(d,a,c):d.K("Resume disabled, machine state not saved")}},!0}return!1}; +function Xe(a,b){var c=a.c;c||((c=ya("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=jf(a,c))||a.K("The user ID is invalid.")):b&&a.K("Browser local storage is not available"));return c} +function jf(a,b){a.c=null;b=k(na()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(za("user",b.data),a.c=b.data)}catch(d){m(d.message+" ("+c+")")}return a.c}function Ze(a){var b=null;a.c&&(b=na()+"/api/v1/user?req=load&user="+a.c+"&state="+kf(a,"1.30.1"));return b} +function hf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=kf(a,"1.30.1");d.data=c;b=k(na()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");k(e,null,!0,function(f,h,l){if(l||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],r,t=/( [a-z]+=)(['"])(.*?)\2/g;r=t.exec(f);)n=0>n.indexOf(r[1])?n.replace(">",r[0]+">"):n.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);l[0]!=n&&(h=h.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],h);of(a,b,c)}})}else c(a,null)} +function pf(a,b,c,d){function e(a){if(void 0===l){var b=h&&B(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=pa(a))}function f(a){e("Error: "+a);n&&(--lf||Ga(!0));n=!1}var h,l,n=!0;lf++;Oa[a]={};try{if(h=document.getElementById(a)){var r;if("object"==typeof resources&&(r=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=r:y.appendChild(document.createTextNode(r));t.appendChild(y)}c|| +(c="/versions/pdpjs/1.30.1/components.xsl");r=function(d,l){l?mf(c,null,null,!1,e,function(d,n){n?(Pa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(h.outerHTML=n,--lf||Ga(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(n,h),--lf||Ga(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?mf(b,a,d,!0,e,r):nf(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch($d){f($d.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return pf(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.1/pdp11.map From 74fc4b8dddadae99d42ccf962205790350425f8c Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Wed, 19 Oct 2016 15:45:33 -0700 Subject: [PATCH 17/32] XML layout tweaks --- apps/pdp11/tapes/README.md | 2 +- devices/pdp11/machine/1120/basic/debugger/machine.xml | 2 +- devices/pdp11/machine/1120/basic/machine.xml | 2 +- devices/pdp11/machine/1120/bootstrap/debugger/machine.xml | 2 +- devices/pdp11/machine/1120/bootstrap/machine.xml | 2 +- devices/pdp11/panel/1170/debugger/front.xml | 5 +++-- devices/pdp11/panel/1170/front.xml | 2 +- devices/pdp11/panel/test/debugger/terminal.xml | 3 ++- devices/pdp11/panel/test/terminal.xml | 6 +++--- {apps/pdp11/tapes => devices/pdp11/pc11}/demo.xml | 5 +++-- 10 files changed, 17 insertions(+), 14 deletions(-) rename {apps/pdp11/tapes => devices/pdp11/pc11}/demo.xml (86%) diff --git a/apps/pdp11/tapes/README.md b/apps/pdp11/tapes/README.md index 8bfb3b0be6..37e4cfda0b 100644 --- a/apps/pdp11/tapes/README.md +++ b/apps/pdp11/tapes/README.md @@ -15,7 +15,7 @@ We have archived the following DEC PDP-11 Tapes: To make it easy for PDPjs machines to load these tapes, we created the following High-Speed Paper Tape Reader (PC11) configurations: -- [demo.xml](demo.xml) +- [demo.xml](/devices/pdp11/pc11/demo.xml) These configuration files create UI controls that allow you to choose from a set of tapes that are automatically sent to the machine's PC11 device. diff --git a/devices/pdp11/machine/1120/basic/debugger/machine.xml b/devices/pdp11/machine/1120/basic/debugger/machine.xml index 58a05f14f2..3963320963 100644 --- a/devices/pdp11/machine/1120/basic/debugger/machine.xml +++ b/devices/pdp11/machine/1120/basic/debugger/machine.xml @@ -9,5 +9,5 @@ - + diff --git a/devices/pdp11/machine/1120/basic/machine.xml b/devices/pdp11/machine/1120/basic/machine.xml index 56f2332204..f38ae8ca46 100644 --- a/devices/pdp11/machine/1120/basic/machine.xml +++ b/devices/pdp11/machine/1120/basic/machine.xml @@ -8,5 +8,5 @@ - + diff --git a/devices/pdp11/machine/1120/bootstrap/debugger/machine.xml b/devices/pdp11/machine/1120/bootstrap/debugger/machine.xml index ea2264f078..529ed5f5e8 100644 --- a/devices/pdp11/machine/1120/bootstrap/debugger/machine.xml +++ b/devices/pdp11/machine/1120/bootstrap/debugger/machine.xml @@ -9,5 +9,5 @@ - + diff --git a/devices/pdp11/machine/1120/bootstrap/machine.xml b/devices/pdp11/machine/1120/bootstrap/machine.xml index 059aeceaf6..3b53070817 100644 --- a/devices/pdp11/machine/1120/bootstrap/machine.xml +++ b/devices/pdp11/machine/1120/bootstrap/machine.xml @@ -8,5 +8,5 @@ - + diff --git a/devices/pdp11/panel/1170/debugger/front.xml b/devices/pdp11/panel/1170/debugger/front.xml index 7061cdb470..55bcbb59b4 100644 --- a/devices/pdp11/panel/1170/debugger/front.xml +++ b/devices/pdp11/panel/1170/debugger/front.xml @@ -86,7 +86,7 @@
              - + Enter @@ -94,6 +94,7 @@ + Registers 0000 0000 0000 @@ -115,6 +116,6 @@ Step Reset Fast - Stopped + Stopped diff --git a/devices/pdp11/panel/1170/front.xml b/devices/pdp11/panel/1170/front.xml index d62926aa62..a4e4ef7215 100644 --- a/devices/pdp11/panel/1170/front.xml +++ b/devices/pdp11/panel/1170/front.xml @@ -92,6 +92,6 @@ Run Reset Fast - Stopped + Stopped diff --git a/devices/pdp11/panel/test/debugger/terminal.xml b/devices/pdp11/panel/test/debugger/terminal.xml index 2507838946..c5aebff43b 100644 --- a/devices/pdp11/panel/test/debugger/terminal.xml +++ b/devices/pdp11/panel/test/debugger/terminal.xml @@ -2,7 +2,7 @@ Control Panel - + Enter @@ -10,6 +10,7 @@ + Registers 0000 0000 0000 diff --git a/devices/pdp11/panel/test/terminal.xml b/devices/pdp11/panel/test/terminal.xml index a4dd30e994..ed78193c50 100644 --- a/devices/pdp11/panel/test/terminal.xml +++ b/devices/pdp11/panel/test/terminal.xml @@ -2,12 +2,12 @@ Control Panel - + - + Run Reset Fast - Stopped + Stopped diff --git a/apps/pdp11/tapes/demo.xml b/devices/pdp11/pc11/demo.xml similarity index 86% rename from apps/pdp11/tapes/demo.xml rename to devices/pdp11/pc11/demo.xml index 88c8af93f1..cf5b1ad48b 100644 --- a/apps/pdp11/tapes/demo.xml +++ b/devices/pdp11/pc11/demo.xml @@ -1,6 +1,7 @@ - + Paper Tape Controls + @@ -10,6 +11,6 @@ Load - Tape Reader Progress + Tape Progress From 6f67a6692e9fbbfc2809086f6ace54d40e83d88f Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Wed, 19 Oct 2016 17:16:42 -0700 Subject: [PATCH 18/32] More XML layout tweaks --- devices/pdp11/README.md | 10 +++------- devices/pdp11/dl11/README.md | 16 +++++++++++++++- devices/pdp11/machine/README.md | 2 +- devices/pdp11/panel/test/debugger/terminal.xml | 2 +- devices/pdp11/panel/test/terminal.xml | 2 +- devices/pdp11/pc11/README.md | 13 +++++++++++++ devices/pdp11/pc11/demo.xml | 2 +- modules/shared/templates/components.css | 3 +++ 8 files changed, 38 insertions(+), 12 deletions(-) diff --git a/devices/pdp11/README.md b/devices/pdp11/README.md index ebfdca74bd..b6b38497f8 100644 --- a/devices/pdp11/README.md +++ b/devices/pdp11/README.md @@ -7,15 +7,11 @@ permalink: /devices/pdp11/ PDP-11 Device Configurations ---------------------------- -[PDP-11 Machines](/devices/pdp11/machine/) powered by [PDPjs](/modules/pdp11/) rely on a variety of devices, including: +[PDP-11 Machines](/devices/pdp11/machine/) rely on a variety of machine configuration files, including: +- [Control Panels](panel/) - [Serial Interface for Display Terminals (DL11)](dl11/) - [High-Speed Paper Tape Reader/Punch (PC11)](pc11/) -Machines are built from a variety of device configuration files, including: - -* [Machines](machine/) -* [Panels](panel/) - -Our collection of sample machines includes a +Sample machines include a [PDP-11/70 with Front Panel](/devices/pdp11/machine/1170/panel/) and [PDP-11/70 with VT100 Terminal](/devices/pdp11/machine/1170/vt100/). diff --git a/devices/pdp11/dl11/README.md b/devices/pdp11/dl11/README.md index 1d0e0a92b6..a0ec11732d 100644 --- a/devices/pdp11/dl11/README.md +++ b/devices/pdp11/dl11/README.md @@ -7,4 +7,18 @@ permalink: /devices/pdp11/dl11/ DL11 Serial Interface for Display Terminals ------------------------------------------- -PDPjs implements the DL11 component in [serialport.js](/modules/pdp11/lib/serialport.js). +PDPjs implements the DL11 component in [SerialPortPDP11](/modules/pdp11/lib/serialport.js). + +This component is typically instantiated by a Machine XML file using: + + + +Most of our PDP-11 machines specify *binding="print"* to connect the DL11 to a `