diff --git a/apps/pdp11/boot/bootstrap/README.md b/apps/pdp11/boot/bootstrap/README.md index c94db4fde..450d0567a 100644 --- a/apps/pdp11/boot/bootstrap/README.md +++ b/apps/pdp11/boot/bootstrap/README.md @@ -8,7 +8,7 @@ DEC PDP-11 Bootstrap Loader --------------------------- The **Bootstrap Loader** is a small program that loads the [Absolute Loader](/apps/pdp11/tapes/absloader/), -which is then used to load other PDP-11 tapes, such as [BASIC (Single User)](/apps/pdp11/tabes/basic/). +which is then used to load other PDP-11 tapes in the "Absolute Format," such as [BASIC (Single User)](/apps/pdp11/tabes/basic/). Here's what the **Bootstrap Loader** looks like: diff --git a/apps/pdp11/tapes/README.md b/apps/pdp11/tapes/README.md index 14b0b5668..92ddf1d65 100644 --- a/apps/pdp11/tapes/README.md +++ b/apps/pdp11/tapes/README.md @@ -7,32 +7,34 @@ permalink: /apps/pdp11/tapes/ DEC PDP-11 Tape Images ---------------------- -We have archived the following DEC PDP-11 Tapes: +To load any of the DEC PDP-11 tapes listed below, you will need to use a [PDPjs Machine](/devices/pdp11/machine/) +with a [PC11 High-Speed Paper Tape Reader/Punch](/devices/pdp11/pc11/), such as this +[PDP-11/20](/devices/pdp11/machine/1120/basic/debugger), and then follow this three-step process: -- [Absolute Loader](absloader/) -- [BASIC (Single User)](basic/) +- Load the [DEC PDP-11 Bootstrap Loader](/apps/pdp11/boot/bootstrap/) +- Attach the [Absolute Loader](absloader/) tape image, and load it with the Bootstrap Loader +- Attach one of the "Absolute Format" tape images below, and load it with the Absolute Loader -along with a copy of the [DEC PDP-11 Bootstrap Loader](/apps/pdp11/boot/bootstrap/), which is required if you actually want -to load any of the above tapes into memory using the [PC11 High-Speed Paper Tape Reader/Punch](/devices/pdp11/pc11/). +This was the real-world process. Fortunately, PDPjs machines include features that simplify the process. -For the most part, the tapes we have archived are in the DEC "Absolute Format". More information about that format -is on the [Absolute Loader](absloader/) page. +For starters, any "Absolute Format" tape (which should include all the tapes listed below) can be loaded directly +into RAM using the machine's "Load" button instead of "Attach". In most cases, this eliminates the first two steps. -DEC Paper Tape Software (circa 1971) +DEC Paper Tape Software (circa 1970) ------------------------------------ As documented in the [PDP-11/20 Handbook (1971)](http://archive.pcjs.org/pubs/dec/pdp11/1120/PDP1120_Handbook_1971.pdf), p. 155, "PAPER TAPE SOFTWARE", the following software was available on paper tape: -- PAL-11A ASSEMBLER +- [PAL-11A ASSEMBLER](pal11a/) - PAL-11S ASSEMBLER (Program Assembly Language for the PDP-11, Relocatable Version) -- ED-11 (Text Editor program) -- DUMPTT (Dump Octal) -- DUMPAB (Dump Absolute Binary Code) -- FPP-11 (Floating-Point and Math Package for the PDP-11) -- ODT-11 (On-line Debugging Technique for the PDP-11) -- IOX (PDP-11 Input/Output eXecutive) -- PDP-11 BASIC (Beginners All-purpose Symbolic Instruction Code) +- [ED-11](ed11/) (Text Editor program) +- [DUMPTT](dumptt/) (Dump Octal) +- [DUMPAB](dumpab/) (Dump Absolute Binary Code) +- [FPP-11](fpp11/) (Floating-Point and Math Package for the PDP-11) +- [ODT-11](odt11/) (On-line Debugging Technique for the PDP-11) +- [IOX](iox/) (PDP-11 Input/Output eXecutive) +- [PDP-11 BASIC](basic/) (Beginners All-purpose Symbolic Instruction Code) There was a separate DEC publication, [PDP-11 Paper Tape Software Handbook](http://archive.pcjs.org/pubs/dec/pdp11/other/DEC-11-XPTSA-B-D_PDP-11_Paper_Tape_Software_Handbook.pdf), that described all of the above software in greater detail, and it included some programs that the 1971 Handbook listed under @@ -67,3 +69,6 @@ available as paper tape image files, with the exception of PAL-11S and LINK-11S: - [DUMPTT-V001A SA=XX7440 RA=XX7440](dumptt/DEC-11-Y1PA-PO.json) - [DUMPTT-V001A SA=LOAD ADDRESS RA=LOAD ADDRESS](dumptt/DEC-11-Y1PA-PB.json) - [DUMPAB-V001A SA=LOAD ADDRESS RA=LOAD ADDRESS](dumpab/DEC-11-Y2PA-PB.json) +- [DEC-11-AJPB-PB BASIC-11 v007A SA=16104 RA=0](basic/DEC-11-AJPB-PB.json) + +Some additional information on DEC's Paper Tape Software is available at [retrotechnology.com](http://retrotechnology.com/pdp11/11_20_PTS.html). diff --git a/apps/pdp11/tapes/absloader/DEC-11-L2PC-PO.jpg b/apps/pdp11/tapes/absloader/DEC-11-L2PC-PO.jpg new file mode 100644 index 000000000..3040e768c Binary files /dev/null and b/apps/pdp11/tapes/absloader/DEC-11-L2PC-PO.jpg differ diff --git a/apps/pdp11/tapes/absloader/README.md b/apps/pdp11/tapes/absloader/README.md index 72a1ecaab..76541383e 100644 --- a/apps/pdp11/tapes/absloader/README.md +++ b/apps/pdp11/tapes/absloader/README.md @@ -7,8 +7,10 @@ permalink: /apps/pdp11/tapes/absloader/ DEC PDP-11 Absolute Loader -------------------------- +[![DEC-11-L2PC-PO](DEC-11-L2PC-PO.jpg)](DEC-11-L2PC-PO.json) + The Absolute Loader is a special tape image that must be loaded in order to load *other* tapes -that use what we'll call the "Absolute Format." To see the Absolute Loader in action, start with the +that use what we'll call the "Absolute Format." To see the Absolute Loader in action, try the [PDP-11/20 Bootstrap Loader Demo](/devices/pdp11/machine/1120/bootstrap/debugger/). The *loadImage()* interface of the [PDPjs RAM Component](/modules/pdp11/lib/ram.js) explains what @@ -39,8 +41,8 @@ we know about the "Absolute Format": I haven't examined enough tapes (or the Absolute Loader code) to know for sure. [Other sites](http://www.retrocmp.com/stories/dec-pc05-papertape/242-dec-pc05-working-with-paper-tapes) -have referred to this tape format as the "Standard Absolute" format, but I've not found confirmation of -that terminology in any DEC publication. In fact, I think that term may have been a misreading of instructions +have referred to this tape format as the "Standard Absolute" format, but I've not found that terminology +used in any DEC publication. In fact, I think that term may have arisen from a misreading of instructions found in DEC manuals like the ["MEM EXER 16K" Diagnostics Manual](http://archive.pcjs.org/pubs/dec/pdp11/other/AC-9045F-MC_CZQMCF0-0-124K-Mem-Exer-16k_Feb78.pdf): Load the program using any standard absolute loader. diff --git a/apps/pdp11/tapes/basic/DEC-11-AJPB-PB.jpg b/apps/pdp11/tapes/basic/DEC-11-AJPB-PB.jpg new file mode 100644 index 000000000..01ab5116e Binary files /dev/null and b/apps/pdp11/tapes/basic/DEC-11-AJPB-PB.jpg differ diff --git a/apps/pdp11/tapes/basic/README.md b/apps/pdp11/tapes/basic/README.md index 48f4d8b11..2ed3cf538 100644 --- a/apps/pdp11/tapes/basic/README.md +++ b/apps/pdp11/tapes/basic/README.md @@ -13,10 +13,7 @@ machines: DEC PDP-11 BASIC ---------------- -The first PDPjs machine to run DEC PDP-11 BASIC was this [PDP-11/20](/devices/pdp11/machine/1120/basic/debugger/), -shown below. - -{% include machine.html id="test1120" %} +[![DEC-11-AJPB-PB](DEC-11-AJPB-PB.jpg)](DEC-11-AJPB-PB.json) According to the [PDP-11/20 Handbook (1971)](http://archive.pcjs.org/pubs/dec/pdp11/1120/PDP1120_Handbook_1971.pdf), p. 160, notable features of PDP-11 BASIC included: @@ -29,7 +26,11 @@ notable features of PDP-11 BASIC included: - User programs can be halted (with CTRL/P) without clearing variables; PRINT can then be used to examine values - Ability to call assembly language functions -PCjs has also archived the following DEC PDP-11 BASIC resources: +PDP-11 BASIC has been loaded into the [PDP-11/20](/devices/pdp11/machine/1120/basic/debugger/) below. + +{% include machine.html id="test1120" %} + +We have archived the following DEC PDP-11 BASIC resources: - [BASIC (Single User) Tape Image](DEC-11-AJPB-PB.json) - [LISTING OF BASIC/PTS (March 1974)](http://archive.pcjs.org/pubs/dec/pdp11/basic/AB-2045B-SC_BASIC_PTS_Listing_Mar77.pdf) diff --git a/apps/pdp11/tapes/dumpab/DEC-11-Y2PA-PB.jpg b/apps/pdp11/tapes/dumpab/DEC-11-Y2PA-PB.jpg new file mode 100644 index 000000000..bfe6f5258 Binary files /dev/null and b/apps/pdp11/tapes/dumpab/DEC-11-Y2PA-PB.jpg differ diff --git a/apps/pdp11/tapes/dumpab/README.md b/apps/pdp11/tapes/dumpab/README.md new file mode 100644 index 000000000..40a88c2a5 --- /dev/null +++ b/apps/pdp11/tapes/dumpab/README.md @@ -0,0 +1,10 @@ +--- +layout: page +title: DUMPAB (Paper Tape) +permalink: /apps/pdp11/tapes/dumpab/ +--- + +DUMPAB (Paper Tape) +------------------- + +[![DEC-11-Y2PA-PB](DEC-11-Y2PA-PB.jpg)](DEC-11-Y2PA-PB.json) diff --git a/apps/pdp11/tapes/dumptt/DEC-11-Y1PA-PB.jpg b/apps/pdp11/tapes/dumptt/DEC-11-Y1PA-PB.jpg new file mode 100644 index 000000000..861dda7c3 Binary files /dev/null and b/apps/pdp11/tapes/dumptt/DEC-11-Y1PA-PB.jpg differ diff --git a/apps/pdp11/tapes/dumptt/DEC-11-Y1PA-PO.jpg b/apps/pdp11/tapes/dumptt/DEC-11-Y1PA-PO.jpg new file mode 100644 index 000000000..24dbc53db Binary files /dev/null and b/apps/pdp11/tapes/dumptt/DEC-11-Y1PA-PO.jpg differ diff --git a/apps/pdp11/tapes/dumptt/README.md b/apps/pdp11/tapes/dumptt/README.md new file mode 100644 index 000000000..fdc5c7bb3 --- /dev/null +++ b/apps/pdp11/tapes/dumptt/README.md @@ -0,0 +1,12 @@ +--- +layout: page +title: DUMPTT (Paper Tape) +permalink: /apps/pdp11/tapes/dumptt/ +--- + +DUMPTT (Paper Tape) +------------------- + +[![DEC-11-Y1PA-PO](DEC-11-Y1PA-PO.jpg)](DEC-11-Y1PA-PO.json) + +[![DEC-11-Y1PA-PB](DEC-11-Y1PA-PB.jpg)](DEC-11-Y1PA-PB.json) diff --git a/apps/pdp11/tapes/ed11/DEC-11-E1PA-PB.jpg b/apps/pdp11/tapes/ed11/DEC-11-E1PA-PB.jpg new file mode 100644 index 000000000..61f89634e Binary files /dev/null and b/apps/pdp11/tapes/ed11/DEC-11-E1PA-PB.jpg differ diff --git a/apps/pdp11/tapes/ed11/README.md b/apps/pdp11/tapes/ed11/README.md new file mode 100644 index 000000000..d870c576a --- /dev/null +++ b/apps/pdp11/tapes/ed11/README.md @@ -0,0 +1,10 @@ +--- +layout: page +title: ED-11 (Paper Tape) +permalink: /apps/pdp11/tapes/ed11/ +--- + +ED-11 (Paper Tape) +------------------ + +[![DEC-11-E1PA-PB](DEC-11-E1PA-PB.jpg)](DEC-11-E1PA-PB.json) diff --git a/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA1.jpg b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA1.jpg new file mode 100644 index 000000000..6d0a1f845 Binary files /dev/null and b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA1.jpg differ diff --git a/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA10.jpg b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA10.jpg new file mode 100644 index 000000000..b2d918117 Binary files /dev/null and b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA10.jpg differ diff --git a/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA11.jpg b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA11.jpg new file mode 100644 index 000000000..bf79d927d Binary files /dev/null and b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA11.jpg differ diff --git a/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA2.jpg b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA2.jpg new file mode 100644 index 000000000..9d432096b Binary files /dev/null and b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA2.jpg differ diff --git a/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA3.jpg b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA3.jpg new file mode 100644 index 000000000..7346914f0 Binary files /dev/null and b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA3.jpg differ diff --git a/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA4.jpg b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA4.jpg new file mode 100644 index 000000000..61a91e89f Binary files /dev/null and b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA4.jpg differ diff --git a/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA5.jpg b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA5.jpg new file mode 100644 index 000000000..8e41cbac7 Binary files /dev/null and b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA5.jpg differ diff --git a/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA6.jpg b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA6.jpg new file mode 100644 index 000000000..2b60435f6 Binary files /dev/null and b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA6.jpg differ diff --git a/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA7.jpg b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA7.jpg new file mode 100644 index 000000000..d9bd40885 Binary files /dev/null and b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA7.jpg differ diff --git a/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA8.jpg b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA8.jpg new file mode 100644 index 000000000..fe75e79fb Binary files /dev/null and b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA8.jpg differ diff --git a/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA9.jpg b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA9.jpg new file mode 100644 index 000000000..dbd47f773 Binary files /dev/null and b/apps/pdp11/tapes/fpp11/DEC-11-YQPB-PA9.jpg differ diff --git a/apps/pdp11/tapes/fpp11/README.md b/apps/pdp11/tapes/fpp11/README.md new file mode 100644 index 000000000..3ae017bf1 --- /dev/null +++ b/apps/pdp11/tapes/fpp11/README.md @@ -0,0 +1,30 @@ +--- +layout: page +title: FPP-11 (Paper Tape) +permalink: /apps/pdp11/tapes/fpp11/ +--- + +FPP-11 (Paper Tape) +------------------- + +[![DEC-11-YQPB-PA1](DEC-11-YQPB-PA1.jpg)](DEC-11-YQPB-PA1.json) + +[![DEC-11-YQPB-PA2](DEC-11-YQPB-PA2.jpg)](DEC-11-YQPB-PA2.json) + +[![DEC-11-YQPB-PA3](DEC-11-YQPB-PA3.jpg)](DEC-11-YQPB-PA3.json) + +[![DEC-11-YQPB-PA4](DEC-11-YQPB-PA4.jpg)](DEC-11-YQPB-PA4.json) + +[![DEC-11-YQPB-PA5](DEC-11-YQPB-PA5.jpg)](DEC-11-YQPB-PA5.json) + +[![DEC-11-YQPB-PA6](DEC-11-YQPB-PA6.jpg)](DEC-11-YQPB-PA6.json) + +[![DEC-11-YQPB-PA7](DEC-11-YQPB-PA7.jpg)](DEC-11-YQPB-PA7.json) + +[![DEC-11-YQPB-PA8](DEC-11-YQPB-PA8.jpg)](DEC-11-YQPB-PA8.json) + +[![DEC-11-YQPB-PA9](DEC-11-YQPB-PA9.jpg)](DEC-11-YQPB-PA9.json) + +[![DEC-11-YQPB-PA10](DEC-11-YQPB-PA10.jpg)](DEC-11-YQPB-PA10.json) + +[![DEC-11-YQPB-PA11](DEC-11-YQPB-PA11.jpg)](DEC-11-YQPB-PA11.json) diff --git a/apps/pdp11/tapes/iox/DEC-11-YIPA-PA1.jpg b/apps/pdp11/tapes/iox/DEC-11-YIPA-PA1.jpg new file mode 100644 index 000000000..f35c9e53c Binary files /dev/null and b/apps/pdp11/tapes/iox/DEC-11-YIPA-PA1.jpg differ diff --git a/apps/pdp11/tapes/iox/DEC-11-YIPA-PA2.jpg b/apps/pdp11/tapes/iox/DEC-11-YIPA-PA2.jpg new file mode 100644 index 000000000..c4ccd6687 Binary files /dev/null and b/apps/pdp11/tapes/iox/DEC-11-YIPA-PA2.jpg differ diff --git a/apps/pdp11/tapes/iox/DEC-11-YIPA-PB.jpg b/apps/pdp11/tapes/iox/DEC-11-YIPA-PB.jpg new file mode 100644 index 000000000..028db261b Binary files /dev/null and b/apps/pdp11/tapes/iox/DEC-11-YIPA-PB.jpg differ diff --git a/apps/pdp11/tapes/iox/README.md b/apps/pdp11/tapes/iox/README.md new file mode 100644 index 000000000..4f459cc2a --- /dev/null +++ b/apps/pdp11/tapes/iox/README.md @@ -0,0 +1,14 @@ +--- +layout: page +title: IOX (Paper Tape) +permalink: /apps/pdp11/tapes/iox/ +--- + +IOX (Paper Tape) +---------------- + +[![DEC-11-YIPA-PA1](DEC-11-YIPA-PA1.jpg)](DEC-11-YIPA-PA1.json) + +[![DEC-11-YIPA-PA2](DEC-11-YIPA-PA2.jpg)](DEC-11-YIPA-PA2.json) + +[![DEC-11-YIPA-PB](DEC-11-YIPA-PB.jpg)](DEC-11-YIPA-PB.json) diff --git a/apps/pdp11/tapes/odt11/DEC-11-O1PA-PA.jpg b/apps/pdp11/tapes/odt11/DEC-11-O1PA-PA.jpg new file mode 100644 index 000000000..42a4032f9 Binary files /dev/null and b/apps/pdp11/tapes/odt11/DEC-11-O1PA-PA.jpg differ diff --git a/apps/pdp11/tapes/odt11/DEC-11-O1PA-PB.jpg b/apps/pdp11/tapes/odt11/DEC-11-O1PA-PB.jpg new file mode 100644 index 000000000..ae0bad961 Binary files /dev/null and b/apps/pdp11/tapes/odt11/DEC-11-O1PA-PB.jpg differ diff --git a/apps/pdp11/tapes/odt11/README.md b/apps/pdp11/tapes/odt11/README.md new file mode 100644 index 000000000..e7b6ac30a --- /dev/null +++ b/apps/pdp11/tapes/odt11/README.md @@ -0,0 +1,12 @@ +--- +layout: page +title: ODT-11 (Paper Tape) +permalink: /apps/pdp11/tapes/odt11/ +--- + +ODT-11 (Paper Tape) +------------------- + +[![DEC-11-O1PA-PA](DEC-11-O1PA-PA.jpg)](DEC-11-O1PA-PA.json) + +[![DEC-11-O1PA-PB](DEC-11-O1PA-PB.jpg)](DEC-11-O1PA-PB.json) diff --git a/apps/pdp11/tapes/odt11x/DEC-11-O2PA-PA.jpg b/apps/pdp11/tapes/odt11x/DEC-11-O2PA-PA.jpg new file mode 100644 index 000000000..30f21cfb8 Binary files /dev/null and b/apps/pdp11/tapes/odt11x/DEC-11-O2PA-PA.jpg differ diff --git a/apps/pdp11/tapes/odt11x/DEC-11-O2PA-PB.jpg b/apps/pdp11/tapes/odt11x/DEC-11-O2PA-PB.jpg new file mode 100644 index 000000000..10f105f22 Binary files /dev/null and b/apps/pdp11/tapes/odt11x/DEC-11-O2PA-PB.jpg differ diff --git a/apps/pdp11/tapes/odt11x/README.md b/apps/pdp11/tapes/odt11x/README.md new file mode 100644 index 000000000..c31a06c06 --- /dev/null +++ b/apps/pdp11/tapes/odt11x/README.md @@ -0,0 +1,12 @@ +--- +layout: page +title: ODT-11X (Paper Tape) +permalink: /apps/pdp11/tapes/odt11x/ +--- + +ODT-11X (Paper Tape) +-------------------- + +[![DEC-11-O2PA-PA](DEC-11-O2PA-PA.jpg)](DEC-11-O2PA-PA.json) + +[![DEC-11-O2PA-PB](DEC-11-O2PA-PB.jpg)](DEC-11-O2PA-PB.json) diff --git a/apps/pdp11/tapes/pal11a/DEC-11-ASPA-PB.jpg b/apps/pdp11/tapes/pal11a/DEC-11-ASPA-PB.jpg new file mode 100644 index 000000000..34be32781 Binary files /dev/null and b/apps/pdp11/tapes/pal11a/DEC-11-ASPA-PB.jpg differ diff --git a/apps/pdp11/tapes/pal11a/DEC-11-ASXA-PB.jpg b/apps/pdp11/tapes/pal11a/DEC-11-ASXA-PB.jpg new file mode 100644 index 000000000..071dc6516 Binary files /dev/null and b/apps/pdp11/tapes/pal11a/DEC-11-ASXA-PB.jpg differ diff --git a/apps/pdp11/tapes/pal11a/README.md b/apps/pdp11/tapes/pal11a/README.md new file mode 100644 index 000000000..873771cec --- /dev/null +++ b/apps/pdp11/tapes/pal11a/README.md @@ -0,0 +1,12 @@ +--- +layout: page +title: PAL-11A Assembler (Paper Tape) +permalink: /apps/pdp11/tapes/pal11a/ +--- + +PAL-11A Assembler (Paper Tape) +------------------------------ + +[![DEC-11-ASPA-PB](DEC-11-ASPA-PB.jpg)](DEC-11-ASPA-PB.json) + +[![DEC-11-ASPA-PB](DEC-11-ASXA-PB.jpg)](DEC-11-ASXA-PB.json) diff --git a/devices/pdp11/pc11/README.md b/devices/pdp11/pc11/README.md index 6bb991d9f..d6ecff5c9 100644 --- a/devices/pdp11/pc11/README.md +++ b/devices/pdp11/pc11/README.md @@ -19,7 +19,7 @@ We have archived a selection of [Paper Tape Images](/apps/pdp11/tapes/) for use To make it easy for PDPjs machines to load those tapes, we created the following High-Speed Paper Tape Reader (PC11) Device XML file: -- [PC11 Default](/devices/pdp11/pc11/default.xml) +- [Default](/devices/pdp11/pc11/default.xml) which is typically referenced by a Machine XML file as: diff --git a/docs/pcx86/examples/pcx86-dbg.js b/docs/pcx86/examples/pcx86-dbg.js index 8978606ef..345586a0e 100644 --- a/docs/pcx86/examples/pcx86-dbg.js +++ b/docs/pcx86/examples/pcx86-dbg.js @@ -846,7 +846,7 @@ else return this.qa[b]=c,c.onclick=function(){var a=Ur(d,!0);if(a){var b=!!(d.A& function Ur(a,b){var c=a.B;c||((c=Ha("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=ds(a,c))||a.Na("The user ID is invalid.")):b&&a.Na("Browser local storage is not available"));return c} function ds(a,b){a.B=null;b=Aa(Ba()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ia("user",b.data),a.B=b.data)}catch(d){w(d.message+" ("+c+")")}return a.B}function Vr(a){var b=null;a.B&&(b=Ba()+"/api/v1/user?req=load&user="+a.B+"&state="+es(a,"1.30.2"));return b} function cs(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=es(a,"1.30.2");d.data=c;b=Aa(Ba()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0>>b.La;d=d+e-1>>>b.La;c.ih=0;for(c.Td=0;f<=d;)e=b.sa[f],c.ih+=e.size,e.size&&(c.Yg.push(wa(Nb,f,0,0,e.type)),c.Td++),f++;a.A=c;a.ya=a.A.Td*a.ga.Sb/691200;d=0;a.A.fj=0;a.A.Bf||(a.A.Bf=[]);e=-1;b=0;for(var g=-1,c=0;c>1),g=f.y+(f.A>>1),h=f.A,f.ad>1,b.U+=(b.W>>1)-2,Pb(b,e),b.ra&&(b.N.restore(),b.ra=!1)}}else Pb(a,"This space intentionally left blank");a.context.drawImage(a.aa,0,0,a.aa.width,a.aa.height,a.sb,a.Jb,a.Ya,a.fb);a.Ja=!1}} diff --git a/docs/pcx86/examples/pcx86.js b/docs/pcx86/examples/pcx86.js index 9bfe17e08..d5236d835 100644 --- a/docs/pcx86/examples/pcx86.js +++ b/docs/pcx86/examples/pcx86.js @@ -664,7 +664,7 @@ else return this.la[b]=c,c.onclick=function(){var a=qn(d,!0);if(a){var b=!!(d.B& function qn(a,b){var c=a.C;c||((c=xa("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=Bn(a,c))||a.Ba("The user ID is invalid.")):b&&a.Ba("Browser local storage is not available"));return c} function Bn(a,b){a.C=null;b=sa(ta()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ya("user",b.data),a.C=b.data)}catch(d){r(d.message+" ("+c+")")}return a.C}function rn(a){var b=null;a.C&&(b=ta()+"/api/v1/user?req=load&user="+a.C+"&state="+Cn(a,"1.30.2"));return b} function An(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Cn(a,"1.30.2");d.data=c;b=sa(ta()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0>>b.da;d=d+e-1>>>b.da;c.mg=0;for(c.fd=0;f<=d;)e=b.R[f],c.mg+=e.size,e.size&&(c.fg.push(qa(qb,f,0,0,e.type)),c.fd++),f++;a.B=c;a.ma=a.B.fd*a.ia.xb/691200;d=0;a.B.ii=0;a.B.Ke||(a.B.Ke=[]);e=-1;b=0;for(var g=-1,c=0;c>1),g=f.y+(f.A>>1),h=f.A,f.Fc>1,b.K+=(b.L>>1)-2,sb(b,e),b.da&&(b.G.restore(),b.da=!1)}}else sb(a,"This space intentionally left blank");a.context.drawImage(a.S,0,0,a.S.width,a.S.height,a.Oa,a.Xa,a.Da,a.Fa);a.ua=!1}} diff --git a/modules/pcx86/lib/computer.js b/modules/pcx86/lib/computer.js index f5ac0670c..10ecb2f4b 100644 --- a/modules/pcx86/lib/computer.js +++ b/modules/pcx86/lib/computer.js @@ -1435,7 +1435,7 @@ Computer.prototype.getMachineComponent = function(sType, componentPrev) * the scroll feature has annoying effect on iOS, so we no longer do it by default (fScroll must be true). * * @this {Computer} - * @param {boolean} [fScroll] + * @param {boolean} [fScroll] (true if you really want the control scrolled into view) */ Computer.prototype.updateFocus = function(fScroll) { @@ -1446,7 +1446,7 @@ Computer.prototype.updateFocus = function(fScroll) * is to ensure that keyboard input is fielded properly. */ var x = 0, y = 0; - if (fScroll && window) { + if (!fScroll && window) { x = window.scrollX; y = window.scrollY; } @@ -1454,7 +1454,7 @@ Computer.prototype.updateFocus = function(fScroll) * TODO: We need a mechanism to determine the "active" display, instead of hard-coding this to aVideo[0]. */ this.aVideo[0].setFocus(); - if (fScroll && window) { + if (!fScroll && window) { window.scrollTo(x, y); } } diff --git a/modules/pdp11/lib/computer.js b/modules/pdp11/lib/computer.js index 2f59ff573..15a6b9c10 100644 --- a/modules/pdp11/lib/computer.js +++ b/modules/pdp11/lib/computer.js @@ -1405,11 +1405,28 @@ ComputerPDP11.prototype.getMachineComponent = function(sType, componentPrev) * where the display is more constrained, so we no longer do it by default (fScroll must be true). * * @this {ComputerPDP11} - * @param {boolean} [fScroll] + * @param {boolean} [fScroll] (true if you really want the control scrolled into view) */ ComputerPDP11.prototype.setFocus = function(fScroll) { - if (this.controlPrint) this.controlPrint.focus(); + if (this.controlPrint) { + /* + * This seems to be recommended work-around to prevent the browser from scrolling the focused element + * into view. The CPU is not a visual component, so when the CPU wants to set focus, the primary intent + * is to ensure that keyboard input is fielded properly. + */ + var x = 0, y = 0; + if (!fScroll && window) { + x = window.scrollX; + y = window.scrollY; + } + + this.controlPrint.focus(); + + if (!fScroll && window) { + window.scrollTo(x, y); + } + } }; /** diff --git a/modules/pdp11/lib/debugger.js b/modules/pdp11/lib/debugger.js index 8ca4e221e..aa37f42bf 100644 --- a/modules/pdp11/lib/debugger.js +++ b/modules/pdp11/lib/debugger.js @@ -572,13 +572,31 @@ if (DEBUGGER) { }; /** - * setFocus() + * setFocus(fScroll) * * @this {DebuggerPDP11} + * @param {boolean} [fScroll] (true if you really want the control scrolled into view) */ - DebuggerPDP11.prototype.setFocus = function() + DebuggerPDP11.prototype.setFocus = function(fScroll) { - if (this.controlDebug) this.controlDebug.focus(); + if (this.controlDebug) { + /* + * This seems to be recommended work-around to prevent the browser from scrolling the focused element + * into view. The CPU is not a visual component, so when the CPU wants to set focus, the primary intent + * is to ensure that keyboard input is fielded properly. + */ + var x = 0, y = 0; + if (!fScroll && window) { + x = window.scrollX; + y = window.scrollY; + } + + this.controlDebug.focus(); + + if (!fScroll && window) { + window.scrollTo(x, y); + } + } }; /** diff --git a/versions/pcx86/1.30.2/pcx86-dbg.js b/versions/pcx86/1.30.2/pcx86-dbg.js index 8978606ef..345586a0e 100644 --- a/versions/pcx86/1.30.2/pcx86-dbg.js +++ b/versions/pcx86/1.30.2/pcx86-dbg.js @@ -846,7 +846,7 @@ else return this.qa[b]=c,c.onclick=function(){var a=Ur(d,!0);if(a){var b=!!(d.A& function Ur(a,b){var c=a.B;c||((c=Ha("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=ds(a,c))||a.Na("The user ID is invalid.")):b&&a.Na("Browser local storage is not available"));return c} function ds(a,b){a.B=null;b=Aa(Ba()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ia("user",b.data),a.B=b.data)}catch(d){w(d.message+" ("+c+")")}return a.B}function Vr(a){var b=null;a.B&&(b=Ba()+"/api/v1/user?req=load&user="+a.B+"&state="+es(a,"1.30.2"));return b} function cs(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=es(a,"1.30.2");d.data=c;b=Aa(Ba()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0>>b.La;d=d+e-1>>>b.La;c.ih=0;for(c.Td=0;f<=d;)e=b.sa[f],c.ih+=e.size,e.size&&(c.Yg.push(wa(Nb,f,0,0,e.type)),c.Td++),f++;a.A=c;a.ya=a.A.Td*a.ga.Sb/691200;d=0;a.A.fj=0;a.A.Bf||(a.A.Bf=[]);e=-1;b=0;for(var g=-1,c=0;c>1),g=f.y+(f.A>>1),h=f.A,f.ad>1,b.U+=(b.W>>1)-2,Pb(b,e),b.ra&&(b.N.restore(),b.ra=!1)}}else Pb(a,"This space intentionally left blank");a.context.drawImage(a.aa,0,0,a.aa.width,a.aa.height,a.sb,a.Jb,a.Ya,a.fb);a.Ja=!1}} diff --git a/versions/pcx86/1.30.2/pcx86.js b/versions/pcx86/1.30.2/pcx86.js index 9bfe17e08..d5236d835 100644 --- a/versions/pcx86/1.30.2/pcx86.js +++ b/versions/pcx86/1.30.2/pcx86.js @@ -664,7 +664,7 @@ else return this.la[b]=c,c.onclick=function(){var a=qn(d,!0);if(a){var b=!!(d.B& function qn(a,b){var c=a.C;c||((c=xa("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=Bn(a,c))||a.Ba("The user ID is invalid.")):b&&a.Ba("Browser local storage is not available"));return c} function Bn(a,b){a.C=null;b=sa(ta()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ya("user",b.data),a.C=b.data)}catch(d){r(d.message+" ("+c+")")}return a.C}function rn(a){var b=null;a.C&&(b=ta()+"/api/v1/user?req=load&user="+a.C+"&state="+Cn(a,"1.30.2"));return b} function An(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Cn(a,"1.30.2");d.data=c;b=sa(ta()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0>>b.da;d=d+e-1>>>b.da;c.mg=0;for(c.fd=0;f<=d;)e=b.R[f],c.mg+=e.size,e.size&&(c.fg.push(qa(qb,f,0,0,e.type)),c.fd++),f++;a.B=c;a.ma=a.B.fd*a.ia.xb/691200;d=0;a.B.ii=0;a.B.Ke||(a.B.Ke=[]);e=-1;b=0;for(var g=-1,c=0;c>1),g=f.y+(f.A>>1),h=f.A,f.Fc>1,b.K+=(b.L>>1)-2,sb(b,e),b.da&&(b.G.restore(),b.da=!1)}}else sb(a,"This space intentionally left blank");a.context.drawImage(a.S,0,0,a.S.width,a.S.height,a.Oa,a.Xa,a.Da,a.Fa);a.ua=!1}} diff --git a/versions/pdpjs/1.30.2/pdp11-dbg.js b/versions/pdpjs/1.30.2/pdp11-dbg.js index 184188f24..4670c9fef 100644 --- a/versions/pdpjs/1.30.2/pdp11-dbg.js +++ b/versions/pdpjs/1.30.2/pdp11-dbg.js @@ -200,8 +200,8 @@ fh={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032 k.Ca=function(a,b,c,d){this.w=b;this.b=c;this.B=a;(a=Qc(a,"messages"))&&ch(this,a);this.bb=fh;this.qb=1145>this.b.fb?hh:[];ih(this,function(a){a:{var b=d.w.V,c=a[0],e=a=0,m=b.length;if(c){a=d.$(jh(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(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.$b=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Fa[a-8]:20>a?b=this.b.wa[a-16]:20==a&&(b=Lb(this.b)));return b}; @@ -262,8 +262,9 @@ c,c.onclick=function(){var a=Lh(d,!0);if(a){var b=!!(d.f&&!d.H||d.N),c=Hh(d,b);b function Lh(a,b){var c=a.g;c||((c=Ga("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=Wh(a,c))||a.ia("The user ID is invalid.")):b&&a.ia("Browser local storage is not available"));return c} function Wh(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 Nh(a){var b=null;a.g&&(b=ra()+"/api/v1/user?req=load&user="+a.g+"&state="+Xh(a,"1.30.2"));return b} function Vh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Xh(a,"1.30.2");d.data=c;b=Ba(ra()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0>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.o){var c;a.o&&(c=(1<>>a.j;0h&&(t=h);if(!e&&n&&n.size){if(n.type==d){if(f+h<=n.ya)return n.Xa+=n.ya-f,n.ya=f,!0;if(f>=n.ya+n.Xa){t=n.size-(f-q);t>h&&(t=h);n.Xa=f-n.ya+t;f=q+a.c;h-=t;l++;continue}}return mb(1,f,h)}f=new F(a,f,t,a.c,d,e);eb(f,a.D,n);a.b[l++]=f;f=q+a.c;h-=t}if(0>=h){c/=1024;var z;e="";z?10>>a.j;0h&&(t=h);if(!e&&n&&n.size){if(n.type==d){if(f+h<=n.xa)return n.Xa+=n.xa-f,n.xa=f,!0;if(f>=n.xa+n.Xa){t=n.size-(f-q);t>h&&(t=h);n.Xa=f-n.xa+t;f=q+a.c;h-=t;l++;continue}}return mb(1,f,h)}f=new F(a,f,t,a.c,d,e);eb(f,a.D,n);a.b[l++]=f;f=q+a.c;h-=t}if(0>=h){c/=1024;var z;e="";z?10>>=a.j;0>>=a.j;0>>a.j].fb(b&a.g,b)}function pb(a,b){return a.b[(b&a.h)>>>a.j].S(b&a.g,b)}$a.prototype.Ja=function(a,b){this.m++;this.b[(a&this.h)>>>this.j].lb(a&this.g,b&255,a);this.m--}; function qb(a,b,c){a.b[(b&a.h)>>>a.j].Ya(b&a.g,c&65535,b)}function rb(a){for(var b=0,c=[],d=0;da.a.Ka)){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,q=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&&q&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(q)));sb(a,e,e,h,l,n,q,f[4])}}}function ub(a,b){a.s.push(b)}function H(a,b){a.m||G(a.a,4,b)} @@ -66,133 +66,134 @@ g.Qb=function(){var a=this.b.pa;this.b.pa&=-129;return a};g.Ec=function(a){this. g.Tb=function(){var a=this.a.qa;a&65280&&(a=(a<<8|a>>8)&65535);return a};g.Ub=function(){return this.a.hb};g.Vb=function(){return this.a.ra};g.Hc=function(a){var b=this.a;1170>b.Ka&&(a&=-49);b.ra!=a&&(b.ra=a,a&16?(b.bb=4194303,b.Oa=3915776):(b.bb=262143,b.Oa=253952),zb(b));Ab(this)};function Ab(a){a.c.Wa=a.c.Wa&-8|(a.a.Ha?a.a.ra&16?1:2:4)}g.ic=function(a){return this.a.F[1][a>>1&7]};g.Vc=function(a,b){this.a.F[1][b>>1&7]=a&65295};g.gc=function(a){return this.a.F[1][(a>>1&7)+8]}; g.Tc=function(a,b){this.a.F[1][(b>>1&7)+8]=a&65295};g.hc=function(a){return this.a.U[1][a>>1&7]};g.Uc=function(a,b){b=b>>1&7;this.a.U[1][b]=a;this.a.F[1][b]&=65295};g.fc=function(a){return this.a.U[1][(a>>1&7)+8]};g.Sc=function(a,b){b=(b>>1&7)+8;this.a.U[1][b]=a;this.a.F[1][b]&=65295};g.Pb=function(a){return this.a.F[0][a>>1&7]};g.Dc=function(a,b){this.a.F[0][b>>1&7]=a&65295};g.Nb=function(a){return this.a.F[0][(a>>1&7)+8]};g.Bc=function(a,b){this.a.F[0][(b>>1&7)+8]=a&65295}; g.Ob=function(a){return this.a.U[0][a>>1&7]};g.Cc=function(a,b){b=b>>1&7;this.a.U[0][b]=a;this.a.F[0][b]&=65295};g.Mb=function(a){return this.a.U[0][(a>>1&7)+8]};g.Ac=function(a,b){b=(b>>1&7)+8;this.a.U[0][b]=a;this.a.F[0][b]&=65295};g.oc=function(a){return this.a.F[3][a>>1&7]};g.ad=function(a,b){this.a.F[3][b>>1&7]=a&65295};g.mc=function(a){return this.a.F[3][(a>>1&7)+8]};g.Zc=function(a,b){this.a.F[3][(b>>1&7)+8]=a&65295};g.nc=function(a){return this.a.U[3][a>>1&7]}; -g.$c=function(a,b){b=b>>1&7;this.a.U[3][b]=a;this.a.F[3][b]&=65295};g.lc=function(a){return this.a.U[3][(a>>1&7)+8]};g.Yc=function(a,b){b=(b>>1&7)+8;this.a.U[3][b]=a;this.a.F[3][b]&=65295};g.Aa=function(a){a&=7;return this.a.A&2048?this.a.xa[a]:this.a.f[a]};g.Ca=function(a,b){b&=7;this.a.A&2048?this.a.xa[b]=a:this.a.f[b]=a};g.$b=function(){return this.a.A&49152?this.a.aa[0]:this.a.f[6]};g.Mc=function(a){this.a.A&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.Ba=function(a){a&=7;return this.a.A&2048?this.a.f[a]:this.a.xa[a]};g.Da=function(a,b){b&=7;this.a.A&2048?this.a.f[b]=a:this.a.xa[b]=a};g.ac=function(){return 1==(this.a.A&49152)>>14?this.a.f[6]:this.a.aa[1]};g.Nc=function(a){1==(this.a.A&49152)>>14?this.a.f[6]=a:this.a.aa[1]=a};g.bc=function(){return 3==(this.a.A&49152)>>14?this.a.f[6]:this.a.aa[3]};g.Oc=function(a){3==(this.a.A&49152)>>14?this.a.f[6]=a:this.a.aa[3]=a};g.Lb=function(a){return this.a.xb[a-65504>>1]}; +g.$c=function(a,b){b=b>>1&7;this.a.U[3][b]=a;this.a.F[3][b]&=65295};g.lc=function(a){return this.a.U[3][(a>>1&7)+8]};g.Yc=function(a,b){b=(b>>1&7)+8;this.a.U[3][b]=a;this.a.F[3][b]&=65295};g.za=function(a){a&=7;return this.a.A&2048?this.a.wa[a]:this.a.f[a]};g.Ba=function(a,b){b&=7;this.a.A&2048?this.a.wa[b]=a:this.a.f[b]=a};g.$b=function(){return this.a.A&49152?this.a.aa[0]:this.a.f[6]};g.Mc=function(a){this.a.A&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.Aa=function(a){a&=7;return this.a.A&2048?this.a.f[a]:this.a.wa[a]};g.Ca=function(a,b){b&=7;this.a.A&2048?this.a.f[b]=a:this.a.wa[b]=a};g.ac=function(){return 1==(this.a.A&49152)>>14?this.a.f[6]:this.a.aa[1]};g.Nc=function(a){1==(this.a.A&49152)>>14?this.a.f[6]=a:this.a.aa[1]=a};g.bc=function(){return 3==(this.a.A&49152)>>14?this.a.f[6]:this.a.aa[3]};g.Oc=function(a){3==(this.a.A&49152)>>14?this.a.f[6]=a:this.a.aa[3]=a};g.Lb=function(a){return this.a.xb[a-65504>>1]}; g.zc=function(a,b){this.a.xb[b-65504>>1]=a};g.vb=function(a){return 65520==a?61183:0};g.Bb=function(){};g.kc=function(){return 1};g.Xc=function(){};g.Kb=function(){return this.a.I};g.yc=function(){this.a.I=0};g.Rb=function(){return this.a.wb};g.Fc=function(a,b){b&1||(a&=255);this.a.wb=a};g.Wb=function(a){return a?this.a.ib:0};g.Ic=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.ib=a;b.l|=2};g.jc=function(a){return a?this.a.sa&65280:0};g.Wc=function(a){this.a.sa=a|255}; g.Zb=function(){return Za(this.a)};g.Lc=function(a){Bb(this.a,a&-1809|Za(this.a)&1808);this.a.l|=128};g.Ab=function(){}; var K={},J=(K[62592]=[null,null,I.prototype.ic,I.prototype.Vc,"SISDR",1145],K[62608]=[null,null,I.prototype.gc,I.prototype.Tc,"SDSDR",1145],K[62624]=[null,null,I.prototype.hc,I.prototype.Uc,"SISAR",1145],K[62640]=[null,null,I.prototype.fc,I.prototype.Sc,"SDSAR",1145],K[62656]=[null,null,I.prototype.Pb,I.prototype.Dc,"KISDR",1145],K[62672]=[null,null,I.prototype.Nb,I.prototype.Bc,"KDSDR",1145],K[62688]=[null,null,I.prototype.Ob,I.prototype.Cc,"KISAR",1145],K[62704]=[null,null,I.prototype.Mb,I.prototype.Ac, "KDSAR",1145],K[62798]=[null,null,I.prototype.Vb,I.prototype.Hc,"MMR3",1145],K[65382]=[null,null,I.prototype.Qb,I.prototype.Ec,"LKS"],K[65400]=[null,null,I.prototype.Jb,I.prototype.xc,"CNSL"],K[65402]=[null,null,I.prototype.Sb,I.prototype.Gc,"MMR0",1145],K[65404]=[null,null,I.prototype.Tb,I.prototype.Ab,"MMR1",1145],K[65406]=[null,null,I.prototype.Ub,I.prototype.Ab,"MMR2",1145],K[65408]=[null,null,I.prototype.oc,I.prototype.ad,"UISDR",1145],K[65424]=[null,null,I.prototype.mc,I.prototype.Zc,"UDSDR", -1145],K[65440]=[null,null,I.prototype.nc,I.prototype.$c,"UISAR",1145],K[65456]=[null,null,I.prototype.lc,I.prototype.Yc,"UDSAR",1145],K[65472]=[null,null,I.prototype.Aa,I.prototype.Ca,"R0SET0"],K[65473]=[null,null,I.prototype.Aa,I.prototype.Ca,"R1SET0"],K[65474]=[null,null,I.prototype.Aa,I.prototype.Ca,"R2SET0"],K[65475]=[null,null,I.prototype.Aa,I.prototype.Ca,"R3SET0"],K[65476]=[null,null,I.prototype.Aa,I.prototype.Ca,"R4SET0"],K[65477]=[null,null,I.prototype.Aa,I.prototype.Ca,"R5SET0"],K[65478]= -[null,null,I.prototype.$b,I.prototype.Mc,"R6KERNEL"],K[65479]=[null,null,I.prototype.cc,I.prototype.Pc,"R7KERNEL"],K[65480]=[null,null,I.prototype.Ba,I.prototype.Da,"R0SET1",1145],K[65481]=[null,null,I.prototype.Ba,I.prototype.Da,"R1SET1",1145],K[65482]=[null,null,I.prototype.Ba,I.prototype.Da,"R2SET1",1145],K[65483]=[null,null,I.prototype.Ba,I.prototype.Da,"R3SET1",1145],K[65484]=[null,null,I.prototype.Ba,I.prototype.Da,"R4SET1",1145],K[65485]=[null,null,I.prototype.Ba,I.prototype.Da,"R5SET1",1145], +1145],K[65440]=[null,null,I.prototype.nc,I.prototype.$c,"UISAR",1145],K[65456]=[null,null,I.prototype.lc,I.prototype.Yc,"UDSAR",1145],K[65472]=[null,null,I.prototype.za,I.prototype.Ba,"R0SET0"],K[65473]=[null,null,I.prototype.za,I.prototype.Ba,"R1SET0"],K[65474]=[null,null,I.prototype.za,I.prototype.Ba,"R2SET0"],K[65475]=[null,null,I.prototype.za,I.prototype.Ba,"R3SET0"],K[65476]=[null,null,I.prototype.za,I.prototype.Ba,"R4SET0"],K[65477]=[null,null,I.prototype.za,I.prototype.Ba,"R5SET0"],K[65478]= +[null,null,I.prototype.$b,I.prototype.Mc,"R6KERNEL"],K[65479]=[null,null,I.prototype.cc,I.prototype.Pc,"R7KERNEL"],K[65480]=[null,null,I.prototype.Aa,I.prototype.Ca,"R0SET1",1145],K[65481]=[null,null,I.prototype.Aa,I.prototype.Ca,"R1SET1",1145],K[65482]=[null,null,I.prototype.Aa,I.prototype.Ca,"R2SET1",1145],K[65483]=[null,null,I.prototype.Aa,I.prototype.Ca,"R3SET1",1145],K[65484]=[null,null,I.prototype.Aa,I.prototype.Ca,"R4SET1",1145],K[65485]=[null,null,I.prototype.Aa,I.prototype.Ca,"R5SET1",1145], K[65486]=[null,null,I.prototype.ac,I.prototype.Nc,"R6SUPER",1145],K[65487]=[null,null,I.prototype.bc,I.prototype.Oc,"R6USER",1145],K[65504]=[null,null,I.prototype.Lb,I.prototype.zc,"CTRL",1170],K[65520]=[null,null,I.prototype.vb,I.prototype.Bb,"LSIZE",1170],K[65522]=[null,null,I.prototype.vb,I.prototype.Bb,"HSIZE",1170],K[65524]=[null,null,I.prototype.kc,I.prototype.Xc,"SYSID",1170],K[65526]=[null,null,I.prototype.Kb,I.prototype.yc,"CPUERR",1170],K[65528]=[null,null,I.prototype.Rb,I.prototype.Fc, "MB",1170],K[65530]=[null,null,I.prototype.Wb,I.prototype.Ic,"PIR"],K[65532]=[null,null,I.prototype.jc,I.prototype.Wc,"SL"],K[65534]=[null,null,I.prototype.Zb,I.prototype.Lc,"PSW"],K);J[62594]=J[62592];J[62596]=J[62592];J[62598]=J[62592];J[62600]=J[62592];J[62602]=J[62592];J[62604]=J[62592];J[62606]=J[62592];J[62610]=J[62608];J[62612]=J[62608];J[62614]=J[62608];J[62616]=J[62608];J[62618]=J[62608];J[62620]=J[62608];J[62622]=J[62608];J[62626]=J[62624];J[62628]=J[62624];J[62630]=J[62624];J[62632]=J[62624]; J[62634]=J[62624];J[62636]=J[62624];J[62638]=J[62624];J[62642]=J[62640];J[62644]=J[62640];J[62646]=J[62640];J[62648]=J[62640];J[62650]=J[62640];J[62652]=J[62640];J[62654]=J[62640];J[62658]=J[62656];J[62660]=J[62656];J[62662]=J[62656];J[62664]=J[62656];J[62666]=J[62656];J[62668]=J[62656];J[62670]=J[62656];J[62674]=J[62672];J[62676]=J[62672];J[62678]=J[62672];J[62680]=J[62672];J[62682]=J[62672];J[62684]=J[62672];J[62686]=J[62672];J[62690]=J[62688];J[62692]=J[62688];J[62694]=J[62688];J[62696]=J[62688]; J[62698]=J[62688];J[62700]=J[62688];J[62702]=J[62688];J[62706]=J[62704];J[62708]=J[62704];J[62710]=J[62704];J[62712]=J[62704];J[62714]=J[62704];J[62716]=J[62704];J[62718]=J[62704];J[65410]=J[65408];J[65412]=J[65408];J[65414]=J[65408];J[65416]=J[65408];J[65418]=J[65408];J[65420]=J[65408];J[65422]=J[65408];J[65426]=J[65424];J[65428]=J[65424];J[65430]=J[65424];J[65432]=J[65424];J[65434]=J[65424];J[65436]=J[65424];J[65438]=J[65424];J[65442]=J[65440];J[65444]=J[65440];J[65446]=J[65440];J[65448]=J[65440]; J[65450]=J[65440];J[65452]=J[65440];J[65454]=J[65440];J[65458]=J[65456];J[65460]=J[65456];J[65462]=J[65456];J[65464]=J[65456];J[65466]=J[65456];J[65468]=J[65456];J[65470]=J[65456];J[65506]=J[65504];J[65508]=J[65504];J[65510]=J[65504];J[65512]=J[65504];J[65514]=J[65504];J[65516]=J[65504];J[65518]=J[65504];r(function(){for(var a=B(document,"pdp11","device"),b=0;b>1),this.a=new Int32Array(this.c,0,this.size>>2),Ib(this,Eb?Jb:Kb);else{a=this.a=Array(this.size>> +function F(a,b,c,d,e,f){this.j=a;this.id=Fb+=2;this.a=null;this.xa=b;this.Xa=c;this.size=d||0;this.type=e||Gb;this.g=e==Hb;this.controller=null;eb(this);this.na=this.Db=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.a=a[0],Ib(this,f.Cb);else if(Ua)this.c=new ArrayBuffer(this.size),this.u=new DataView(this.c,0,this.size),this.b=new Uint8Array(this.c,0,this.size),this.s=new Uint16Array(this.c,0,this.size>>1),this.a=new Int32Array(this.c,0,this.size>>2),Ib(this,Eb?Jb:Kb);else{a=this.a=Array(this.size>> 2);for(f=0;f>2),b=0;b>8,c)},L:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ca:function(a,b){a&1&&H(this.j,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.na=!0}, G:function(a,b){return this.H(a,b)},P:function(a,b){return this.V(a,b)},ea:function(a,b,c){this.g?this.h(a,b,c):this.lb(a,b,c)},ja:function(a,b,c){this.g?this.h(a,b,c):this.ta(a,b,c)},C:function(a){return this.b[a]},J:function(a){return this.b[a]},M:function(a,b){a&1&&H(this.j,b);return this.u.getUint16(a,!0)},W:function(a,b){a&1&&H(this.j,b);return this.s[a>>1]},da:function(a,b){this.b[a]=b;this.na=!0},ga:function(a,b){this.b[a]=b;this.na=!0},ia:function(a,b,c){a&1&&H(this.j,c);this.u.setUint16(a, b,!0);this.na=!0},ua:function(a,b,c){a&1&&H(this.j,c);this.s[a>>1]=b;this.na=!0}};function eb(a,b,c){a.D=b;a.o=a.m=0;c&&((a.o=c.o)&&Mb(a,Nb,!1),(a.m=c.m)&&Ob(a,Nb,!1))}function Ob(a,b,c){c&&a.m||(a.kb=!a.g&&b[1]||a.h,a.Ya=!a.g&&b[3]||a.B);if(c||void 0===c)a.lb=b[1]||a.h,a.ta=b[3]||a.B}function Mb(a,b,c){c&&a.o||(a.fb=b[0]||a.v,a.S=b[2]||a.w);if(c||void 0===c)a.H=b[0]||a.v,a.V=b[2]||a.w}function Ib(a,b){b||(b=Pb);Mb(a,b,void 0);Ob(a,b,void 0)} var Pb=[],Lb=[F.prototype.L,F.prototype.ha,F.prototype.ca,F.prototype.va],Nb=[F.prototype.G,F.prototype.ea,F.prototype.P,F.prototype.ja];if(Ua)var Kb=[F.prototype.C,F.prototype.da,F.prototype.M,F.prototype.ia],Jb=[F.prototype.J,F.prototype.ga,F.prototype.W,F.prototype.ua]; -function Qb(a,b){u.call(this,"CPU",a,Qb);var c=a.multiplier||1;this.Ta=a.cycles||b;this.ea=c;this.ab=Math.round(this.Ta/1E4)/100;this.ga=this.ab*this.ea;this.i.X=!1;this.i.yb=!1;this.i.Ga=a.autoStart;this.i.Sa=!1;this.Qa=this.ia=0;this.Ra=a.csStart;this.ua=a.csInterval;this.va=a.csStop;this.H=[];this.ub=this.tc.bind(this);C(this)}w(Qb);var Rb=["power","reset"];g=Qb.prototype; -g.fa=function(a,b,c,d){this.o=a;this.j=b;this.D=d;for(b=0;ba.ca/a.ga&&(b=1);a.ea=b;b=a.ab*a.ea;if(a.ga!=b){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var d=a.u.setSpeed;d&&(d.textContent=b);a.R("target speed: "+b)}c&&a.o&&(c=a.o,c.wa&&c.wa.focus())}a.L+=a.V;a.V=0;a.P=sa();a.da=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.Ta*a.ea/1E3*c|0,a.H[b][0]=c+Zb(a))}function Zb(a,b){var c=a.ha-=a.a;a.a=a.G=0;b&&(a.ha=0);return c} -g.tc=function(){if(this.i.X){this.cb>=this.Ta&&Xb(this,!0);this.Fa=0;this.Pa=sa();if(this.da){var a=this.Pa-this.da;a>this.sb&&(this.P+=a,this.P>this.Pa&&(this.P=this.Pa))}try{do{for(var b,c=this.i.Sa?1:this.Ua,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.zb(b)}catch(n){if("number"!=typeof n)throw n;}b=Zb(this,!0);this.Fa+=b;this.V+=b;a=b;if(this.i.Sa){var f=!1;this.Qa=this.Qa+this.ob()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.ua,f=!0);0<=this.va&&this.va<=Yb(this)&& -(this.ua=this.va=-1,Ub(this),D(this),f=!0);f&&this.R(Yb(this)+" cycles: checksum="+ja(this.Qa))}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.Ea-=b;if(0>=this.Ea){this.Ea+=this.Ua;15<=++this.tb&&(this.o&&this.o.ba(),this.tb=0);break}}while(this.i.X)}catch(n){D(this);this.o&&this.o.stop(sa(),Yb(this));b=n.stack||n.message;this.i.error=!0;this.K(b);return}if(this.i.X){b=setTimeout;c=this.ub;this.da=sa();d=this.sb;this.Fa&&(d=Math.round(d*this.Fa/ -this.Ua));d-=this.da-this.Pa;if(e=this.da-this.P)this.ca=Math.round(this.V/(10*e))/100,864E5<=e&&(this.L=0,Wb(this));if(0>d||this.cad&&(this.P-=d),d=0;this.cb+=this.Fa;this.da+=d;b(c,d)}}};function Vb(a,b){var c;a.i.error?(a.R(a.toString()+" error"),c=!0):c=!1;if(!c)if(a.i.X)a.R(a.toString()+" busy");else{Wb(a);a.i.X=!0;a.i.yb=!0;if(c=a.u.run)c.textContent="Halt";a.o&&(b&&(b=a.o,b.wa&&b.wa.focus()),a.o.start(a.P,Yb(a)));setTimeout(a.ub,0)}}g.zb=function(){return 0}; -function D(a){if(a.i.X){Zb(a);a.L+=a.V;a.V=0;a.i.X=!1;var b=a.u.run;b&&(b.textContent="Run");a.o&&a.o.stop(sa(),Yb(a))}a.i.complete=void 0}function $b(a){this.Ka=+a.model||1170;this.qb=a.addrReset||0;Qb.call(this,a,6666667);this.decode=1120==this.Ka?ac.bind(this):bc.bind(this);cc(this);this.eb=0;this.W=null;this.i.complete=!1}w($b,Qb);g=$b.prototype;g.reset=function(){this.status("model "+this.Ka);this.i.X&&D(this);cc(this);Tb(this);this.i.error=!1;this.parent.reset.call(this)}; -function cc(a){a.m=65536;a.g=32768;a.h=65535;a.s=32768;a.A=15;a.f=[0,0,0,0,0,0,0,a.qb];a.xa=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.v=0;a.Na=0;a.Gb=[4,2,0,1];a.F=[[0,0,0,0,0,0,0,0,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.U=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.xb=[0,0,0,0,0,0,0,0];a.wb=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.sa=255;a.I=0;a.ib=0;a.w=0;a.qa=0;a.hb=0;a.ra=0;a.Ha=0;a.Ma=0;a.bb=262143;a.Oa=253952;a.l|=2;a.j&&zb(a)}function zb(a){a.Ha?(a.M=65536,a.J=a.Fb,a.S=a.qc,a.Ya=a.cd,hb(a.j,a.ra&16?22:18)):(a.M=0,a.J=a.Eb,a.S=a.pc,a.Ya=a.bd,hb(a.j,16))}function ec(a,b,c){a.qb=b;M(a,b);!c&&a.D&&(D(a),a.D.ba())}g.ob=function(){return 0}; +c,!0;case "setSpeed":return this.u[b]=c,c.onclick=function(){Wb(d,d.ea<<1,!0)},c.textContent=this.ga.toFixed(2)+"Mhz",!0}return!1};g.ba=function(){var a=this.u.speed;a&&(a.textContent=this.i.X&&this.ca?this.ca.toFixed(2)+"Mhz":"Stopped")};function Xb(a,b){var c=1;b&&1a.ca/a.ga&&(b=1);a.ea=b;b=a.ab*a.ea;if(a.ga!=b){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var d=a.u.setSpeed;d&&(d.textContent=b);a.R("target speed: "+b)}c&&a.o&&Zb(a.o)}a.L+=a.V;a.V=0;a.P=sa();a.da=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.Ta*a.ea/1E3*c|0,a.H[b][0]=c+$b(a))}function $b(a,b){var c=a.ha-=a.a;a.a=a.G=0;b&&(a.ha=0);return c} +g.tc=function(){if(this.i.X){this.cb>=this.Ta&&Xb(this,!0);this.Ea=0;this.Pa=sa();if(this.da){var a=this.Pa-this.da;a>this.sb&&(this.P+=a,this.P>this.Pa&&(this.P=this.Pa))}try{do{for(var b,c=this.i.Sa?1:this.Ua,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.zb(b)}catch(n){if("number"!=typeof n)throw n;}b=$b(this,!0);this.Ea+=b;this.V+=b;a=b;if(this.i.Sa){var f=!1;this.Qa=this.Qa+this.ob()|0;this.ia-=a;0>=this.ia&&(this.ia+=this.ua,f=!0);0<=this.va&&this.va<=Yb(this)&& +(this.ua=this.va=-1,Ub(this),D(this),f=!0);f&&this.R(Yb(this)+" cycles: checksum="+ja(this.Qa))}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.Da-=b;if(0>=this.Da){this.Da+=this.Ua;15<=++this.tb&&(this.o&&this.o.ba(),this.tb=0);break}}while(this.i.X)}catch(n){D(this);this.o&&this.o.stop(sa(),Yb(this));b=n.stack||n.message;this.i.error=!0;this.K(b);return}if(this.i.X){b=setTimeout;c=this.ub;this.da=sa();d=this.sb;this.Ea&&(d=Math.round(d*this.Ea/ +this.Ua));d-=this.da-this.Pa;if(e=this.da-this.P)this.ca=Math.round(this.V/(10*e))/100,864E5<=e&&(this.L=0,Wb(this));if(0>d||this.cad&&(this.P-=d),d=0;this.cb+=this.Ea;this.da+=d;b(c,d)}}};function Vb(a,b){var c;a.i.error?(a.R(a.toString()+" error"),c=!0):c=!1;if(!c)if(a.i.X)a.R(a.toString()+" busy");else{Wb(a);a.i.X=!0;a.i.yb=!0;if(c=a.u.run)c.textContent="Halt";a.o&&(b&&Zb(a.o,!0),a.o.start(a.P,Yb(a)));setTimeout(a.ub,0)}}g.zb=function(){return 0}; +function D(a){if(a.i.X){$b(a);a.L+=a.V;a.V=0;a.i.X=!1;var b=a.u.run;b&&(b.textContent="Run");a.o&&a.o.stop(sa(),Yb(a))}a.i.complete=void 0}function ac(a){this.Ka=+a.model||1170;this.qb=a.addrReset||0;Qb.call(this,a,6666667);this.decode=1120==this.Ka?bc.bind(this):cc.bind(this);dc(this);this.eb=0;this.W=null;this.i.complete=!1}w(ac,Qb);g=ac.prototype;g.reset=function(){this.status("model "+this.Ka);this.i.X&&D(this);dc(this);Tb(this);this.i.error=!1;this.parent.reset.call(this)}; +function dc(a){a.m=65536;a.g=32768;a.h=65535;a.s=32768;a.A=15;a.f=[0,0,0,0,0,0,0,a.qb];a.wa=[0,0,0,0,0,0];a.aa=[0,0,0,0];a.v=0;a.Na=0;a.Gb=[4,2,0,1];a.F=[[0,0,0,0,0,0,0,0,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.U=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.xb=[0,0,0,0,0,0,0,0];a.wb=0;a.l=0;a.B=a.C=0;a.c=a.b=a.$a=0;a.ja=-1;ec(a)}function ec(a){a.sa=255;a.I=0;a.ib=0;a.w=0;a.qa=0;a.hb=0;a.ra=0;a.Ha=0;a.Ma=0;a.bb=262143;a.Oa=253952;a.l|=2;a.j&&zb(a)}function zb(a){a.Ha?(a.M=65536,a.J=a.Fb,a.S=a.qc,a.Ya=a.cd,hb(a.j,a.ra&16?22:18)):(a.M=0,a.J=a.Eb,a.S=a.pc,a.Ya=a.bd,hb(a.j,16))}function fc(a,b,c){a.qb=b;M(a,b);!c&&a.D&&(D(a),a.D.ba())}g.ob=function(){return 0}; g.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.L,this.ea]);a.set(2,rb(this.j));return a.data()};g.restore=function(a){var b=a[1];this.L=b[1];Wb(this,b[3]);a:{b=this.j;a=a[2];var c;for(c=0;c>14&3;c=a.A>>14&3;a.v!=c&&(a.aa[c]=a.f[6],a.f[6]=a.aa[a.v]);a.A=b;a.l|=2}function P(a,b){a.l&128||(a.s=a.h=b,a.g=0)}function Q(a,b,c){a.l&128||(a.s=a.h=a.m=b,a.g=c||0)}function hc(a,b,c,d){a.l&128||(a.s=a.h=a.m=b,a.g=(c^b)&(d^b))}function R(a,b){a.l&128||(a.s=a.h=a.m=b,a.g=a.s^a.m>>1)}function ic(a,b,c,d){a.l&128||(a.s=a.h=a.m=b,a.g=(c^d)&(d^b))} -function G(a,b,c){if(!a.eb){var d=!1;0>a.ja?a.ja=Za(a):a.v||(b=4,d=!0);a.w&57344||(a.qa=63222,a.hb=b);a.v=0;var e=a.S(b|a.M),f=a.S(b+2&65535|a.M);Bb(a,f&-12289|a.ja>>2&12288);d&&(a.I|=4,a.f[6]=4);jc(a,a.ja);jc(a,a.f[7]);M(a,e);a.l&=-113;a.ja=-1;a.l|=8;if(26!=c)throw b;}}function kc(a){var b=lc(a),c=lc(a)&-1793;a.A&49152&&(c=c&-225|a.A&63712);M(a,b);Bb(a,c);a.l&=-17} -function mc(a,b,c){var d,e,f,h=0;d=b>>13;a.ra&a.Gb[a.v]||(d&=7);e=a.F[a.v][d];f=(a.U[a.v][d]<<6)+(b&8191)&a.bb;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.ra&32&&(f=a.Ib[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Oa&&4186112>f&&(a.I|=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.F[a.v][d]=e;if(4194170!==f||a.v)a.Ma=a.v,a.Na=d;h&&(h&57344&&(0<=a.ja&&(h|=128),a.w&57344||(a.w=a.w|h|a.Ma<<5|a.Na<<1),G(a,168,16)),a.w&61440||!(4191360>f||4194239>>a.j].kb(b&a.g,c&255,b)}function lc(a){var b=a.S(a.f[6]|a.M);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.qa=a.qa<<8|246);!a.v&&c<=a.sa&&4c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=h);e=a.S(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.S(e)|h;a.a-= -8;break;case 6:return e=a.S(gc(a,2)),e=e+a.f[c]&65535|h,a.a-=6,e;case 7:return e=a.S(gc(a,2)),e=e+a.f[c]&65535,e=a.S(e|a.M)|h,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!h||a.w&57344||(a.qa=a.qa<<8|f<<3&248|c);6==c&&!a.v&&d&4&&0>=f&&(a.f[6]<=a.sa||65534<=a.f[6])&&(a.f[6]<=a.sa-32?(a.I|=4,a.f[6]=4,G(a,4,24)):(a.I|=8,a.l|=64));return e}g.Ja=function(a,b){this.Ha?(this.eb++,nc(this,mc(this,a,5),b),this.eb--):this.j.Ja(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.j,a)};g.qc=function(a){return pb(this.j,mc(this,a,2))};g.bd=function(a,b){qb(this.j,a,b&65535)};g.cd=function(a,b){qb(this.j,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.A&61440)&&(d&=65535),a.v=a.A>>12&3,c=a.S(d|c&a.M),a.v=a.A>>14&3):c=6!=d||(a.A>>2&12288)===(a.A&12288)?a.f[d]:a.aa[a.A>>12&3];return c} -function qc(a,b,c,d){a.w&57344||(a.qa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=oc(a,b,e,4),c&65536||(e&=65535),a.v=a.A>>12&3,e=mc(a,e|c&65536,4),a.v=a.A>>14&3,qb(a.j,e,d)):6!=e||(a.A>>2&12288)===(a.A&12288)?a.f[e]=d:a.aa[a.A>>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.j,c)):a=a.f[c]&255;return a}function S(a,b){b>>=6;var c=a.C=b&7;return(b=a.B=(b&56)>>3)?pb(a.j,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.j,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.j,a.J(b,c,2)):a.f[c]}function T(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.$a=a.J(b,e,7),nc(a,e,d.call(a,c,ob(a.j,e)))):a.f[e]=a.f[e]&65280|d.call(a,c,a.f[e])}function U(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.J(b,e,6),qb(a.j,e,d.call(a,c,pb(a.j,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.j,a.J(b,d,4),c):a.f[d]=c&65535;return c}function V(a,b,c){c&&(M(a,a.f[7]+(b<<24>>23)),a.a-=2);a.a-=3} -g.zb=function(a){this.i.complete=!0;this.i.yb=!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.ib&224)>>5;if(a=this.W&&this.W.za>c?this.W:null)b=a.wc,c=a.za;c>(this.A&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.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.l&1&&this.l++;this.l=this.l& -7|this.A&16;this.decode(fc(this))}while(0>1|b<<16;R(this,a);return a&65535}function Cc(a,b){a=b&2048|b>>1|b<<8;R(this,a<<8);return a&255}function Dc(a,b){a=b&~a;P(this,a);return a}function Ec(a,b){a=b&~a;P(this,a<<8);return a}function Fc(a,b){a|=b;P(this,a);return a}function Gc(a,b){a|=b;P(this,a<<8);return a}function Hc(a,b){a=~b|65536;Q(this,a);return a&65535}function Ic(a,b){a=~b|256;Q(this,a<<8);return a&255}function Jc(a,b){a=b-a;this.l&128||(this.s=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.s=this.h=c,this.g=b&(b^c));return a&255}function Lc(a,b){a=b+a;this.l&128||(this.s=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.s=this.h=c,this.g=c&(b<<8^c));return a&255}function Nc(a,b){a=-b;Q(this,a,a&b&32768);return a&65535}function Oc(a,b){a=-b;Q(this,a<<8,(a&b&128)<<8);return a&255}function Pc(a,b){a=b<<1|this.m>>16&1;R(this,a);return a&65535} -function Qc(a,b){a=b<<1|this.m>>16&1;R(this,a<<8);return a&255}function Rc(a,b){a=(this.m&65536|b)>>1|b<<16;R(this,a);return a&65535}function Sc(a,b){a=((this.m&65536)>>8|b)>>1|b<<8;R(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.s=this.h=b&65280,this.g=this.m=0);return(b<<8|b>>8)&65535}function Wc(a,b){a^=b;P(this,a);return a&65535} -function Xc(a){U(this,a,S(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.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.s=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.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.s=d>>16;this.h=d>>16|d;this.a-=(this.c?6:7)+b}function $c(a){V(this,a,!O(this))}function ad(a){V(this,a,O(this))} -function bd(a){U(this,a,S(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){T(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){U(this,a,S(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){T(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){P(this,S(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){P(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){V(this,a,this.h&65535?0:4)}function id(a){V(this,a,!this.oa()==!(this.g&32768))}function jd(a){V(this,a,!!(this.h&65535)&&!this.oa()==!(this.g&32768))}function kd(a){V(this,a,!O(this)&&!!(this.h&65535))} -function ld(a){V(this,a,(this.h&65535?0:4)||!this.oa()!=!(this.g&32768))}function md(a){V(this,a,O(this)||(this.h&65535?0:4))}function nd(a){V(this,a,!this.oa()!=!(this.g&32768))}function od(a){V(this,a,this.oa())}function pd(a){V(this,a,!!(this.h&65535))}function qd(a){V(this,a,!this.oa())}function rd(){G(this,12,1);this.a-=5}function sd(a){V(this,a,!0)}function td(a){V(this,a,!(this.g&32768))}function ud(a){V(this,a,this.g&32768?2:0)} -function W(a){a&1&&(this.m=0);a&2&&(this.g=0);a&4&&(this.h=1);a&8&&(this.s=0);this.a-=5}function vd(a){var b=S(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.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.h=d>>16|d,this.s=d>>16):(this.g=32768,this.h=d>>15|d,this.s=c>>16,-1===b&&65534===this.f[a]&&(this.f[a]=this.f[a|1]=1));this.a-=53}else this.h=this.s=0,this.g=32768,this.m=65536,this.a-=7}function yd(){G(this,24,2);this.a-=25} -function zd(){this.A&49152?(this.I|=128,G(this,4,3)):this.D?this.D.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 Cd(a){this.G=this.a;M(this,sc(this,a));this.a=this.G-Bd[this.c]}var Dd=[0,14,14,17,14,18,16,20];function Ed(a){this.G=this.a;var b=sc(this,a);a=a>>6&7;jc(this,this.f[a]);this.f[a]=this.f[7];M(this,b);this.a=this.G-Dd[this.c]}var Fd=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17]; -function Gd(a){var b=S(this,a);this.G=this.a;P(this,wc(this,a,b));this.a=this.G-Fd[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)}function Hd(a){var b=rc(this,a);P(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 Id=[7,13,13,17,14,18,17,21]; -function Jd(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.s=b>>16,this.h=this.s|b,this.g=0,this.m=-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 Pd(a){U(this,a,S(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 Qd(a){U(this,a,0,Vc);this.a-=this.c?9:3+(7==this.b?2:0)}function Rd(){G(this,28,5);this.a-=5}function Sd(){this.l&4||this.o.ba();this.l|=4;gc(this,-2);this.a-=3}function Td(a){U(this,a,S(this,a),Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){G(this,8,6)}function ac(a){Ud[a>>12].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>>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 Ud=[function(a){ke[a>>8&15].call(this,a)},Gd,vd,fd,bd,dd,Xc,Y,function(a){le[a>>8&15].call(this,a)},Hd,wd,gd,cd,ed,Pd,Y],ke=[function(a){me[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Ed,Ed,Vd,Xd,Zd,Y,Y,Y],Wd=[function(a){Q(this,wc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,Hc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,1,Lc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,1,Jc);this.a-=this.c?9:3+(7==this.b?2:0)}],Yd=[function(a){U(this,a,0,Nc); -this.a-=this.c?11:6},function(a){U(this,a,O(this)?1:0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,O(this)?1:0,Tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=uc(this,a);Q(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],$d=[function(a){U(this,a,0,Rc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,Pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,Bc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(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,Cd,Cd,Cd,Cd,Nd,Y,ae,ce,Qd,Qd,Qd,Qd],ne=[zd,Sd,Md,rd,Ad,Ld,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],be=[Kd,function(){this.m=0;this.a-=5},function(){this.g=0;this.a-=5},W,function(){this.h=1;this.a-=5},W,W,W,function(){this.s=0;this.a-=5},W,W,W,W,W,W,W],de=[Kd,function(){this.m=65536;this.a-=5},function(){this.g=32768;this.a-=5},X,function(){this.h=0;this.a-=5},X,X,X,function(){this.s=32768;this.a-=5},X,X,X,X,X,X,X],le=[qd,od,kd,md,td,ud,$c,ad,yd,Rd,ee,ge,ie,Y,Y,Y],fe=[function(a){Q(this,vc(this, -a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Ic);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,Mc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)}],he=[function(a){T(this,a,0,Oc);this.a-=this.c?11:6},function(a){T(this,a,O(this)?1:0,yc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,O(this)?1:0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=tc(this,a);Q(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}], -je=[function(a){T(this,a,0,Sc);this.a-=this.c?9+(this.$a&1):3+(7==this.b?2:0)},function(a){T(this,a,0,Qc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Cc);this.a-=this.c?9+(this.$a&1):3+(7==this.b?2:0)},function(a){T(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)},Gd,vd,fd,bd,dd,Xc,function(a){qe[a>>8&15].call(this,a)},function(a){re[a>>8&15].call(this,a)},Hd,wd,gd,cd,ed,Pd,Y],pe=[function(a){se[a>>4&15].call(this,a)},sd,pd,hd,id,nd,jd,ld,Ed,Ed,Vd,Xd,Zd,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.S(a|this.M);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);P(this,a);this.a-=11},function(a){var b=lc(this);this.G= -this.a;qc(this,a,0,b);P(this,b);this.a=this.G-Id[this.c]},function(a){P(this,wc(this,a,this.oa?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,Cd,Cd,Cd,Cd,Nd,function(a){a&8?(this.A&49152||(this.A=this.A&-2017|(a&7)<<5,this.l|=1),this.a-=5):G(this,8,6)},ae,ce,Qd,Qd,Qd,Qd],ue=[zd,Sd,Md,rd,Ad,Ld,function(){kc(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],qe=[Jd,Jd,xd,xd,Yc,Yc,Zc,Zc,Td,Td,Y,Y,Y,Y,Od,Od],re=[qd,od,kd,md,td,ud,$c,ad,yd,Rd,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);P(this,a);this.a-=11},function(a){var b=lc(this);this.G=this.a;qc(this,a,65536,b);P(this,b);this.a=this.G-Id[this.c]},Y]; -function we(a){u.call(this,"ROM",a,we);this.T=this.b=null;this.o=a.addr;this.c=a.size;this.h=a.alias;this.g=a.file;this.m=ka(this.g);if(this.g){a=this.g;var b=la(this.m);"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.ta,a,b),(a=ua(a,b))?(c.b=a.N,c.T=a.T):c.g=null,xe(c))})}}w(we);we.prototype.fa=function(a,b,c,d){this.j=b;this.a=c;this.D=d;xe(this)}; -we.prototype.$=function(){this.T&&(this.D&&this.D.a(this.id,this.o,this.c,this.T),delete this.T);return!0};we.prototype.Z=function(){return!0}; -function xe(a){if(!Ta(a)){if(a.g){if(!a.b||!a.j)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.o;if(kb(a.j,b,a.c,Hb)){var c;for(c=0;c>>a.j;0=b.length)break;for(var l=l+2,q=b[l++]&255|(b[l++]&255)<<8,t=b[l++]&255|(b[l++]&255)<<8,n=n+((q&255)+(q>>8)+(t&255)+(t>>8)),z=l,Ra=q-=6;0=b.length)break;n+=b[l++]&255;if(n&255)break;if(Ra)for(;Ra--;)a.a.Ja(t++,b[z++]&255);else t&1?D(a.a):ec(a.a,t,f);h=!0}else l++;else l+=2}if(!h&&(null==c&&(c=e),null!=c)){for(e=0;e=b)a.preventDefault&&a.preventDefault(),64e.w&&(e.w-=32),e.b|=128,e.b&64&&wb(e.a,e.V))});this.W=yb(52,4);this.M=vb(this.a,function(){e.c|=128;e.c&64&&wb(e.a,e.W)});tb(b,this,De);C(this)}; +g.oa=function(){return this.s&32768?8:0};function gc(a){var b=a.f[7];a.w&57344||(a.qa=0,a.hb=b);a.f[7]=b+2&65535;return a.S(b)}function hc(a,b){var c=a.f[7];a.f[7]=c+b&65535;return c}function M(a,b){a.f[7]=b&65535}function yb(a,b){return{wc:a,ya:b,next:null}}function wb(a,b){if(b!=a.W){var c=a.W;if(!c||c.ya<=b.ya)b.next=c,a.W=b;else{do{var d=c.next;if(!d||d.ya<=b.ya){b.next=d;c.next=b;break}c=d}while(c)}}a.l|=2}function Za(a){return a.A=a.A&63728|a.oa()|(a.h&65535?0:4)|(a.g&32768?2:0)|O(a)} +function Bb(a,b){a.s=b<<12;a.h=~b&4;a.g=b<<14;a.m=b<<16;if((b^a.A)&2048)for(var c=a.wa.length;0<=--c;){var d=a.f[c];a.f[c]=a.wa[c];a.wa[c]=d}a.v=b>>14&3;c=a.A>>14&3;a.v!=c&&(a.aa[c]=a.f[6],a.f[6]=a.aa[a.v]);a.A=b;a.l|=2}function P(a,b){a.l&128||(a.s=a.h=b,a.g=0)}function Q(a,b,c){a.l&128||(a.s=a.h=a.m=b,a.g=c||0)}function ic(a,b,c,d){a.l&128||(a.s=a.h=a.m=b,a.g=(c^b)&(d^b))}function R(a,b){a.l&128||(a.s=a.h=a.m=b,a.g=a.s^a.m>>1)}function jc(a,b,c,d){a.l&128||(a.s=a.h=a.m=b,a.g=(c^d)&(d^b))} +function G(a,b,c){if(!a.eb){var d=!1;0>a.ja?a.ja=Za(a):a.v||(b=4,d=!0);a.w&57344||(a.qa=63222,a.hb=b);a.v=0;var e=a.S(b|a.M),f=a.S(b+2&65535|a.M);Bb(a,f&-12289|a.ja>>2&12288);d&&(a.I|=4,a.f[6]=4);kc(a,a.ja);kc(a,a.f[7]);M(a,e);a.l&=-113;a.ja=-1;a.l|=8;if(26!=c)throw b;}}function lc(a){var b=mc(a),c=mc(a)&-1793;a.A&49152&&(c=c&-225|a.A&63712);M(a,b);Bb(a,c);a.l&=-17} +function nc(a,b,c){var d,e,f,h=0;d=b>>13;a.ra&a.Gb[a.v]||(d&=7);e=a.F[a.v][d];f=(a.U[a.v][d]<<6)+(b&8191)&a.bb;if(ff){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.ra&32&&(f=a.Ib[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Oa&&4186112>f&&(a.I|=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.F[a.v][d]=e;if(4194170!==f||a.v)a.Ma=a.v,a.Na=d;h&&(h&57344&&(0<=a.ja&&(h|=128),a.w&57344||(a.w=a.w|h|a.Ma<<5|a.Na<<1),G(a,168,16)),a.w&61440||!(4191360>f||4194239>>a.j].kb(b&a.g,c&255,b)}function mc(a){var b=a.S(a.f[6]|a.M);a.f[6]=a.f[6]+2&65535;return b} +function kc(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.w&57344||(a.qa=a.qa<<8|246);!a.v&&c<=a.sa&&4c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=h);e=a.S(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.S(e)|h;a.a-= +8;break;case 6:return e=a.S(hc(a,2)),e=e+a.f[c]&65535|h,a.a-=6,e;case 7:return e=a.S(hc(a,2)),e=e+a.f[c]&65535,e=a.S(e|a.M)|h,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!h||a.w&57344||(a.qa=a.qa<<8|f<<3&248|c);6==c&&!a.v&&d&4&&0>=f&&(a.f[6]<=a.sa||65534<=a.f[6])&&(a.f[6]<=a.sa-32?(a.I|=4,a.f[6]=4,G(a,4,24)):(a.I|=8,a.l|=64));return e}g.Ja=function(a,b){this.Ha?(this.eb++,oc(this,nc(this,a,5),b),this.eb--):this.j.Ja(a,b)};g.Eb=function(a,b,c){return pc(this,a,b,c)}; +g.Fb=function(a,b,c){return nc(this,pc(this,a,b,c),c)};g.pc=function(a){return pb(this.j,a)};g.qc=function(a){return pb(this.j,nc(this,a,2))};g.bd=function(a,b){qb(this.j,a,b&65535)};g.cd=function(a,b){qb(this.j,nc(this,a,4),b)};function qc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=pc(a,b,d,2),c&65536||61440!==(a.A&61440)&&(d&=65535),a.v=a.A>>12&3,c=a.S(d|c&a.M),a.v=a.A>>14&3):c=6!=d||(a.A>>2&12288)===(a.A&12288)?a.f[d]:a.aa[a.A>>12&3];return c} +function rc(a,b,c,d){a.w&57344||(a.qa=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=pc(a,b,e,4),c&65536||(e&=65535),a.v=a.A>>12&3,e=nc(a,e|c&65536,4),a.v=a.A>>14&3,qb(a.j,e,d)):6!=e||(a.A>>2&12288)===(a.A&12288)?a.f[e]=d:a.aa[a.A>>12&3]=d}function sc(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.j,c)):a=a.f[c]&255;return a}function S(a,b){b>>=6;var c=a.C=b&7;return(b=a.B=(b&56)>>3)?pb(a.j,a.J(b,c,2)):a.f[c]}function tc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return pc(a,b,c,8)} +function uc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.J(b,c,3),a=ob(a.j,c)):a=a.f[c]&255;return a}function vc(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?pb(a.j,a.J(b,c,2)):a.f[c]}function T(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.$a=a.J(b,e,7),oc(a,e,d.call(a,c,ob(a.j,e)))):a.f[e]=a.f[e]&65280|d.call(a,c,a.f[e])}function U(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.J(b,e,6),qb(a.j,e,d.call(a,c,pb(a.j,e)))):a.f[e]=d.call(a,c,a.f[e])} +function wc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?oc(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 xc(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?qb(a.j,a.J(b,d,4),c):a.f[d]=c&65535;return c}function V(a,b,c){c&&(M(a,a.f[7]+(b<<24>>23)),a.a-=2);a.a-=3} +g.zb=function(a){this.i.complete=!0;this.i.yb=!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.ib&224)>>5;if(a=this.W&&this.W.ya>c?this.W:null)b=a.wc,c=a.ya;c>(this.A&224)>>5?(this.l&4&&(hc(this,2),this.l&=-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.l&1&&this.l++;this.l=this.l& +7|this.A&16;this.decode(gc(this))}while(0>1|b<<16;R(this,a);return a&65535}function Dc(a,b){a=b&2048|b>>1|b<<8;R(this,a<<8);return a&255}function Ec(a,b){a=b&~a;P(this,a);return a}function Fc(a,b){a=b&~a;P(this,a<<8);return a}function Gc(a,b){a|=b;P(this,a);return a}function Hc(a,b){a|=b;P(this,a<<8);return a}function Ic(a,b){a=~b|65536;Q(this,a);return a&65535}function Jc(a,b){a=~b|256;Q(this,a<<8);return a&255}function Kc(a,b){a=b-a;this.l&128||(this.s=this.h=a,this.g=b&(b^a));return a&65535} +function Lc(a,b){a=b-a;var c=a<<8;b<<=8;this.l&128||(this.s=this.h=c,this.g=b&(b^c));return a&255}function Mc(a,b){a=b+a;this.l&128||(this.s=this.h=a,this.g=a&(b^a));return a&65535}function Nc(a,b){a=b+a;var c=a<<8;this.l&128||(this.s=this.h=c,this.g=c&(b<<8^c));return a&255}function Oc(a,b){a=-b;Q(this,a,a&b&32768);return a&65535}function Pc(a,b){a=-b;Q(this,a<<8,(a&b&128)<<8);return a&255}function Qc(a,b){a=b<<1|this.m>>16&1;R(this,a);return a&65535} +function Rc(a,b){a=b<<1|this.m>>16&1;R(this,a<<8);return a&255}function Sc(a,b){a=(this.m&65536|b)>>1|b<<16;R(this,a);return a&65535}function Tc(a,b){a=((this.m&65536)>>8|b)>>1|b<<8;R(this,a<<8);return a&255}function Uc(a,b){var c=b-a;jc(this,c,a,b);return c&65535}function Vc(a,b){var c=b-a;jc(this,c<<8,a<<8,b<<8);return c&255}function Wc(a,b){this.l&128||(this.s=this.h=b&65280,this.g=this.m=0);return(b<<8|b>>8)&65535}function Xc(a,b){a^=b;P(this,a);return a&65535} +function Yc(a){U(this,a,S(this,a),yc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)}function Zc(a){var b=vc(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.s=this.h=c;this.a-=(this.c?6:7)+b} +function $c(a){var b=vc(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.s=d>>16;this.h=d>>16|d;this.a-=(this.c?6:7)+b}function ad(a){V(this,a,!O(this))}function bd(a){V(this,a,O(this))} +function cd(a){U(this,a,S(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,sc(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){U(this,a,S(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){T(this,a,sc(this,a),Hc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} +function gd(a){P(this,S(this,a)&vc(this,a));this.a-=this.c?4+(this.C&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)}function hd(a){P(this,(sc(this,a)&uc(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 id(a){V(this,a,this.h&65535?0:4)}function jd(a){V(this,a,!this.oa()==!(this.g&32768))}function kd(a){V(this,a,!!(this.h&65535)&&!this.oa()==!(this.g&32768))}function ld(a){V(this,a,!O(this)&&!!(this.h&65535))} +function md(a){V(this,a,(this.h&65535?0:4)||!this.oa()!=!(this.g&32768))}function nd(a){V(this,a,O(this)||(this.h&65535?0:4))}function od(a){V(this,a,!this.oa()!=!(this.g&32768))}function pd(a){V(this,a,this.oa())}function qd(a){V(this,a,!!(this.h&65535))}function rd(a){V(this,a,!this.oa())}function sd(){G(this,12,1);this.a-=5}function td(a){V(this,a,!0)}function ud(a){V(this,a,!(this.g&32768))}function vd(a){V(this,a,this.g&32768?2:0)} +function W(a){a&1&&(this.m=0);a&2&&(this.g=0);a&4&&(this.h=1);a&8&&(this.s=0);this.a-=5}function wd(a){var b=S(this,a);a=vc(this,a);jc(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=sc(this,a)<<8;a=uc(this,a)<<8;jc(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 yd(a){var b=vc(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.h=d>>16|d,this.s=d>>16):(this.g=32768,this.h=d>>15|d,this.s=c>>16,-1===b&&65534===this.f[a]&&(this.f[a]=this.f[a|1]=1));this.a-=53}else this.h=this.s=0,this.g=32768,this.m=65536,this.a-=7}function zd(){G(this,24,2);this.a-=25} +function Ad(){this.A&49152?(this.I|=128,G(this,4,3)):this.D?this.D.c():D(this);this.a-=7}function Bd(){G(this,16,4);this.a-=25}var Cd=[0,7,7,10,7,11,9,13];function Dd(a){this.G=this.a;M(this,tc(this,a));this.a=this.G-Cd[this.c]}var Ed=[0,14,14,17,14,18,16,20];function Fd(a){this.G=this.a;var b=tc(this,a);a=a>>6&7;kc(this,this.f[a]);this.f[a]=this.f[7];M(this,b);this.a=this.G-Ed[this.c]}var Gd=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17]; +function Hd(a){var b=S(this,a);this.G=this.a;P(this,xc(this,a,b));this.a=this.G-Gd[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)}function Id(a){var b=sc(this,a);P(this,wc(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 Jd=[7,13,13,17,14,18,17,21]; +function Kd(a){var b=vc(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.s=b>>16,this.h=this.s|b,this.g=0,this.m=-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 Qd(a){U(this,a,S(this,a),Uc);this.a-=this.c?9+(this.C&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)} +function Rd(a){U(this,a,0,Wc);this.a-=this.c?9:3+(7==this.b?2:0)}function Sd(){G(this,28,5);this.a-=5}function Td(){this.l&4||this.o.ba();this.l|=4;hc(this,-2);this.a-=3}function Ud(a){U(this,a,S(this,a),Xc);this.a-=this.c?9:3+(7==this.b?2:0)}function Y(){G(this,8,6)}function bc(a){Vd[a>>12].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>>6&3].call(this,a)}function be(a){ce[a&15].call(this,a)}function de(a){ee[a&15].call(this,a)} +function fe(a){ge[a>>6&3].call(this,a)}function he(a){ie[a>>6&3].call(this,a)}function je(a){ke[a>>6&3].call(this,a)} +var Vd=[function(a){le[a>>8&15].call(this,a)},Hd,wd,gd,cd,ed,Yc,Y,function(a){me[a>>8&15].call(this,a)},Id,xd,hd,dd,fd,Qd,Y],le=[function(a){ne[a>>4&15].call(this,a)},td,qd,id,jd,od,kd,md,Fd,Fd,Wd,Yd,$d,Y,Y,Y],Xd=[function(a){Q(this,xc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,Ic);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,1,Mc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,1,Kc);this.a-=this.c?9:3+(7==this.b?2:0)}],Zd=[function(a){U(this,a,0,Oc); +this.a-=this.c?11:6},function(a){U(this,a,O(this)?1:0,yc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,O(this)?1:0,Uc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=vc(this,a);Q(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],ae=[function(a){U(this,a,0,Sc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,Qc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,Cc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){U(this,a,0,Ac);this.a-=this.c?9:3+(7==this.b?2:0)}],ne=[function(a){oe[a& +15].call(this,a)},Y,Y,Y,Dd,Dd,Dd,Dd,Od,Y,be,de,Rd,Rd,Rd,Rd],oe=[Ad,Td,Nd,sd,Bd,Md,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y],ce=[Ld,function(){this.m=0;this.a-=5},function(){this.g=0;this.a-=5},W,function(){this.h=1;this.a-=5},W,W,W,function(){this.s=0;this.a-=5},W,W,W,W,W,W,W],ee=[Ld,function(){this.m=65536;this.a-=5},function(){this.g=32768;this.a-=5},X,function(){this.h=0;this.a-=5},X,X,X,function(){this.s=32768;this.a-=5},X,X,X,X,X,X,X],me=[rd,pd,ld,nd,ud,vd,ad,bd,zd,Sd,fe,he,je,Y,Y,Y],ge=[function(a){Q(this,wc(this, +a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Jc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,Nc);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)}],ie=[function(a){T(this,a,0,Pc);this.a-=this.c?11:6},function(a){T(this,a,O(this)?1:0,zc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,O(this)?1:0,Vc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=uc(this,a);Q(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}], +ke=[function(a){T(this,a,0,Tc);this.a-=this.c?9+(this.$a&1):3+(7==this.b?2:0)},function(a){T(this,a,0,Rc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,Dc);this.a-=this.c?9+(this.$a&1):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 cc(a){pe[a>>12].call(this,a)} +var pe=[function(a){qe[a>>8&15].call(this,a)},Hd,wd,gd,cd,ed,Yc,function(a){re[a>>8&15].call(this,a)},function(a){se[a>>8&15].call(this,a)},Id,xd,hd,dd,fd,Qd,Y],qe=[function(a){te[a>>4&15].call(this,a)},td,qd,id,jd,od,kd,md,Fd,Fd,Wd,Yd,$d,function(a){ue[a>>6&3].call(this,a)},Y,Y],ue=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.S(a|this.M);M(this,this.f[5]);this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=qc(this,a,0);kc(this,a);P(this,a);this.a-=11},function(a){var b=mc(this);this.G= +this.a;rc(this,a,0,b);P(this,b);this.a=this.G-Jd[this.c]},function(a){P(this,xc(this,a,this.oa?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],te=[function(a){ve[a&15].call(this,a)},Y,Y,Y,Dd,Dd,Dd,Dd,Od,function(a){a&8?(this.A&49152||(this.A=this.A&-2017|(a&7)<<5,this.l|=1),this.a-=5):G(this,8,6)},be,de,Rd,Rd,Rd,Rd],ve=[Ad,Td,Nd,sd,Bd,Md,function(){lc(this);this.a-=13},Y,Y,Y,Y,Y,Y,Y,Y,Y],re=[Kd,Kd,yd,yd,Zc,Zc,$c,$c,Ud,Ud,Y,Y,Y,Y,Pd,Pd],se=[rd,pd,ld,nd,ud,vd,ad,bd,zd,Sd,fe,he,je,function(a){we[a>>6& +3].call(this,a)},Y,Y],we=[Y,function(a){a=qc(this,a,65536);kc(this,a);P(this,a);this.a-=11},function(a){var b=mc(this);this.G=this.a;rc(this,a,65536,b);P(this,b);this.a=this.G-Jd[this.c]},Y]; +function xe(a){u.call(this,"ROM",a,xe);this.T=this.b=null;this.o=a.addr;this.c=a.size;this.h=a.alias;this.g=a.file;this.m=ka(this.g);if(this.g){a=this.g;var b=la(this.m);"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.ta,a,b),(a=ua(a,b))?(c.b=a.N,c.T=a.T):c.g=null,ye(c))})}}w(xe);xe.prototype.fa=function(a,b,c,d){this.j=b;this.a=c;this.D=d;ye(this)}; +xe.prototype.$=function(){this.T&&(this.D&&this.D.a(this.id,this.o,this.c,this.T),delete this.T);return!0};xe.prototype.Z=function(){return!0}; +function ye(a){if(!Ta(a)){if(a.g){if(!a.b||!a.j)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.o;if(kb(a.j,b,a.c,Hb)){var c;for(c=0;c>>a.j;0=b.length)break;for(var l=l+2,q=b[l++]&255|(b[l++]&255)<<8,t=b[l++]&255|(b[l++]&255)<<8,n=n+((q&255)+(q>>8)+(t&255)+(t>>8)),z=l,Ra=q-=6;0=b.length)break;n+=b[l++]&255;if(n&255)break;if(Ra)for(;Ra--;)a.a.Ja(t++,b[z++]&255);else t&1?D(a.a):fc(a.a,t,f);h=!0}else l++;else l+=2}if(!h&&(null==c&&(c=e),null!=c)){for(e=0;e=b)a.preventDefault&&a.preventDefault(),64e.w&&(e.w-=32),e.b|=128,e.b&64&&wb(e.a,e.V))});this.W=yb(52,4);this.M=vb(this.a,function(){e.c|=128;e.c&64&&wb(e.a,e.W)});tb(b,this,Ee);C(this)}; g.pb=function(){if(!this.v){var a=Sb(this.o,"connection");if(a){var b=a.split("->");if(2==b.length){var c=qa(b[0]);if(c!=this.La)return;b=qa(b[1]);if(this.v=Qa(b)){var d=this.v.exports;if(d){var e=d.connect;e&&e.call(this.v);if(this.B=d.receiveData){this.status(this.ta+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.$=function(a,b){if(!b)if(this.pb(),!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 N(this);a.set(0,[]);return a.data()};g.restore=function(){return Ee(this)};function Ee(a){a.w=0;a.b=0;a.c=128;a.h=[];return!0}g.gb=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.J||8,c=a-this.s%a,this.J&&(b=" ".slice(0,c)));this.G&&!this.s&&c&&(b=String.fromCharCode(this.G)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.s+=c}else if(null!=this.m){if(10==a||1024<=this.m.length)this.R(this.m), -this.m="";10!=a&&(this.m+=String.fromCharCode(a))}this.c&=-129;xb(this.a,this.M,1E3/Math.round(this.H/10))}};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);r(function(){for(var a=B(document,"pdp11","serial"),b=0;b'+b+"");a.innerHTML=b}},!0;case "descTape":return this.u[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.u[b]=c,c.onclick=function(){var a= -d.u.listTapes;a&&Ie(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.C){c.parentNode.removeChild(c);break}this.u[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};return!0;case "readProgress":return this.u[b]=c,!0}return!1}; -g.fa=function(a,b,c,d){this.o=a;this.j=b;this.a=c;this.D=d;this.H=Je(a);var e=this;if((this.c=Sb(this.o,"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.M=vb(this.a,function(){1==(e.b&32769)&&!(e.b&128)&&e.wc.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.o&&!a.o.i.O;h?a.K('Unable to load tape "'+b+'" (error '+h+": "+e+")",l):(Pa(a.ta,e,f),(e=ua(e,f))&&Se(a,b,c,d,e.N,e.ma,e.la)); -a.i.Za=!1;a.h&&(a.h--,a.h||C(a));Pe(a)})}function Me(a,b,c,d){if((a=a.u.listTapes)&&a.options){for(var e=0;e\nLicense: GPL version 3 or later ");this.R("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bWe){if(Ye(d,this.v)){this.o=new N(this,"1.30.2","failsafe");Ye(this.o)&&(cf(this,d),a=2,df(this.o));this.o.set("timestamp",ta());ef(this.o);var e=this.b&&!this.m;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.R(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.v;delete this.w}e=x(this.id);for(f=0;fa[1];a=a[2];this.P=!0;this.i.O=!0;var d=this.u.power;d&&(d.textContent="Shutdown");this.a&&(ff(this,this.a,b,c,a),this.a.Ga());this.G&&(cf(this,b),b.clear());!c&&this.o&&(this.o.clear(),delete this.o);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.2"};d.url=a.M;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 N(a,"1.30.2"),h=new N(a,"1.30.2","validate"),l=ta();h.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.2");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.O=!1,!1===d&&(e=null)));for(var l=x(a.id),n=0;n'+b+"");a.innerHTML=b}},!0;case "descTape":return this.u[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.u[b]=c,c.onclick=function(){var a= +d.u.listTapes;a&&Je(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.C){c.parentNode.removeChild(c);break}this.u[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;Je(d,ka(b,!0),b,1,a)}return!1};return!0;case "readProgress":return this.u[b]=c,!0}return!1}; +g.fa=function(a,b,c,d){this.o=a;this.j=b;this.a=c;this.D=d;this.H=Ke(a);var e=this;if((this.c=Sb(this.o,"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.M=vb(this.a,function(){1==(e.b&32769)&&!(e.b&128)&&e.wc.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.o&&!a.o.i.O;h?a.K('Unable to load tape "'+b+'" (error '+h+": "+e+")",l):(Pa(a.ta,e,f),(e=ua(e,f))&&Te(a,b,c,d,e.N,e.ma,e.la)); +a.i.Za=!1;a.h&&(a.h--,a.h||C(a));Qe(a)})}function Ne(a,b,c,d){if((a=a.u.listTapes)&&a.options){for(var e=0;e\nLicense: GPL version 3 or later ");this.R("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis ");for(b=0;bXe){if(Ze(d,this.v)){this.o=new N(this,"1.30.2","failsafe");Ze(this.o)&&(df(this,d),a=2,ef(this.o));this.o.set("timestamp",ta());ff(this.o);var e=this.b&&!this.m;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=cf(d)){var f=d.get("code"),h=d.get("data");f&&("ok"==f?Ze(d,h):("error"== +f&&"no machine state"!=h?(this.K("Error: "+h),"unable to verify user"==h&&(za("user",""),this.c=null)):this.R(f+": "+h),ef(d),Ze(d)?(c=cf(d),e=!0):c=!1))}e&&bf(this,c?d:null)}else 2==a&&d.clear()}else bf(this);delete this.v;delete this.w}e=x(this.id);for(f=0;fa[1];a=a[2];this.P=!0;this.i.O=!0;var d=this.u.power;d&&(d.textContent="Shutdown");this.a&&(gf(this,this.a,b,c,a),this.a.Fa());this.G&&(df(this,b),b.clear());!c&&this.o&&(this.o.clear(),delete this.o);this.g=0}; +function df(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.2"};d.url=a.M;d.user=c;d.type="bug";d.data=b;k("http://www.pcjs.org/api/v1/report",d,!0)}} +function hf(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new N(a,"1.30.2"),h=new N(a,"1.30.2","validate"),l=ta();h.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.2");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.O=!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],q,t=/( [a-z]+=)(['"])(.*?)\2/g;q=t.exec(f);)n=0>n.indexOf(q[1])?n.replace(">",q[0]+">"):n.replace(new RegExp(q[1]+"(['\"])(.*?)\\1"),q[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 q;if("object"==typeof resources&&(q=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],z=document.createElement("style");z.type="text/css";z.styleSheet?z.styleSheet.cssText=q:z.appendChild(document.createTextNode(q));t.appendChild(z)}c|| -(c="/versions/pdpjs/1.30.2/components.xsl");q=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,q):nf(b,null,a,d,!1,e,q)}else f("missing machine element: "+a)}catch(Ra){f(Ra.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.2/pdp11.map +g.Y=function(a,b,c){var d=this;switch(b){case "power":return this.u[b]=c,c.onclick=function(){d.g||(d.i.O?hf(d,!1,!0):af(d,d.Ia))},!0;case "reset":return this.u[b]=c,c.onclick=function(){if(d.i.O&&!d.g)if(d.b&&!d.s){var a=va("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");hf(d,a,!0);!a&&d.C?window&&window.location.reload():d.Ia(Xe)}else d.reset(),d.a&&d.a.Fa()},!0;case "save":if(ma())c.parentNode.removeChild(c);else return this.u[b]= +c,c.onclick=function(){var a=Ye(d,!0);if(a){var b=!!(d.b&&!d.s||d.C),c=hf(d,b);b?jf(d,a,c):d.K("Resume disabled, machine state not saved")}},!0}return!1}; +function Ye(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=kf(a,c))||a.K("The user ID is invalid.")):b&&a.K("Browser local storage is not available"));return c} +function kf(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 $e(a){var b=null;a.c&&(b=na()+"/api/v1/user?req=load&user="+a.c+"&state="+lf(a,"1.30.2"));return b} +function jf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=lf(a,"1.30.2");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],q,t=/( [a-z]+=)(['"])(.*?)\2/g;q=t.exec(f);)n=0>n.indexOf(q[1])?n.replace(">",q[0]+">"):n.replace(new RegExp(q[1]+"(['\"])(.*?)\\1"),q[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);pf(a,b,c)}})}else c(a,null)} +function qf(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&&(--mf||Ga(!0));n=!1}var h,l,n=!0;mf++;Oa[a]={};try{if(h=document.getElementById(a)){var q;if("object"==typeof resources&&(q=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],z=document.createElement("style");z.type="text/css";z.styleSheet?z.styleSheet.cssText=q:z.appendChild(document.createTextNode(q));t.appendChild(z)}c|| +(c="/versions/pdpjs/1.30.2/components.xsl");q=function(d,l){l?nf(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,--mf||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),--mf||Ga(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?nf(b,a,d,!0,e,q):of(b,null,a,d,!1,e,q)}else f("missing machine element: "+a)}catch(Ra){f(Ra.message)}return n}window.embedPDP11=function(a,b,c,d){Ga(!1);return qf(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.30.2/pdp11.map