From bd94f5a5345814fe22ad10a3b7c2b2b7cb659779 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Tue, 26 Jul 2016 15:25:27 -0700 Subject: [PATCH 01/30] Started collecting DEC resources, with initial focus on the VT100 --- .gitignore | 1 + devices/README.md | 4 + devices/roms/README.md | 12 + devices/roms/dec/README.md | 661 ++++++++++++++++++++++++++++++++ devices/vt100/README.md | 12 + devices/vt100/rom/23-018E2.json | 130 +++++++ devices/vt100/rom/README.md | 37 ++ devices/vt100/rom/VT100.json | 514 +++++++++++++++++++++++++ 8 files changed, 1371 insertions(+) create mode 100644 devices/roms/README.md create mode 100644 devices/roms/dec/README.md create mode 100644 devices/vt100/README.md create mode 100644 devices/vt100/rom/23-018E2.json create mode 100644 devices/vt100/rom/README.md create mode 100644 devices/vt100/rom/VT100.json diff --git a/.gitignore b/.gitignore index 1bdc20843..480b80b31 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ *.log *.dump *.heapsnapshot +index.html .DS_Store .buildpath .idea diff --git a/devices/README.md b/devices/README.md index b2e5cafab..a2f0ac890 100644 --- a/devices/README.md +++ b/devices/README.md @@ -17,5 +17,9 @@ All PCjs machines are built from the following sets of devices: * [8080-based Devices](pc8080/) (e.g., [Space Invaders](pc8080/machine/invaders/)) * [8086-based Devices](pcx86/) (e.g., [IBM PC and compatibles](pcx86/machine/)) +The directory also contains an assortment of [ROMs](roms/) and other devices, including: + +* [VT100 Terminal](vt100/) + These devices are user-installable components that you would typically find in a real personal computer, such as keyboards, disk drive controllers with one or more drives, video cards, etc. diff --git a/devices/roms/README.md b/devices/roms/README.md new file mode 100644 index 000000000..f3010dbef --- /dev/null +++ b/devices/roms/README.md @@ -0,0 +1,12 @@ +--- +layout: page +title: Miscellaneous ROMs +permalink: /devices/roms/ +--- + +Miscellaneous ROMs +------------------ + +This directory contains ROMs from the following manufacturers: + +* [Digital Equipment Corp.](dec/) diff --git a/devices/roms/dec/README.md b/devices/roms/dec/README.md new file mode 100644 index 000000000..283e76907 --- /dev/null +++ b/devices/roms/dec/README.md @@ -0,0 +1,661 @@ +--- +layout: page +title: DEC ROMs +permalink: /devices/roms/dec/ +--- + +Digital Equipment Corp. (DEC) ROMs +================================== + +This directory describes a variety of ROMs for DEC equipment, originally made available by Pete Turnbull at +[http://www.dunnington.u-net.com/public/DECROMs/](https://web.archive.org/web/20140723115846/http://www.dunnington.u-net.com/public/DECROMs/). + +* [README](#readme) +* [INDEX](#index) +* [ROMLIST](#romlist) +* [WANTED](#wanted) + +### README + + This directory contains a repository of ROM images, as BINARY files. + + Please note that these ROMs contain software which may be subject to + copyright. They are provided here as a convenience to collectors of + classic computers, for use only in repairing machines and peripherals. + + They are not here for free upgrades, and any misuse may result in + them going away. If you are the owner of the copyright on any of + these images, and wish them to be removed, please contact me + (pete at dunnington dot u hyphen net dot com). + + Contributions of additional PDP-11 ROM images are welcome. See the + file "Wanted!" for images I'd especially like to get. See the file + "ROMlist" for a description of each image. + + If you download any of these images, make sure you do so in binary + mode, not text. The size of each ROM is an exact power of two; if + the file you end up with after download is not exactly right, your + browser scrambled it. + + DEC ROM part numbers all begin with "23-". + The next three digits+letter+digit are the ROM number, eg "123E2" + In some parts lists, numbers are shown with a trailing "-00". + However, my parts microfiches show hundreds of ROM numbers, and only + about eight have digits other than "-00" so in general it's redundant. + + The final letter+digit gives the general ROM type and size: + + A indicates 4-bit bipolar PROM + F indicates 4-bit bipolar PROM + D ?? same as E? (mine are MOS EPROMs) + E indicates 8-bit MOS EPROM (or occasionally a masked ROM) + J indicates a PAL or HAL + K indicates a registered PAL + L ?? + U ?? + + A9 means 512 x 4 16-pin, eg 82S131, MMI6306, 75S171, 27S13 etc + F1 means 1024 x 4 18-pin, eg 82S137, 24S41, MMI6353, 27S573, 27S33, etc + E2 means 2048 bytes, eg a 2716 + E3 means 4096 bytes, eg a 2732 + E4 means 8192 bytes, eg a 2764 or MCM68766 + E5 means 16384 bytes, eg a 27128 + E6 means 32768 bytes, eg a 27256 + E7 means 65536 bytes, eg a 27512 + E8 means 128K bytes or 64K x 16, eg a 27C210 + E9 means 256K bytes or 128K x 16 + +### INDEX + + 00ReadMe 09-Sep-2009 19:51 2k + 23-015E8.bin 12-Aug-2004 01:04 128k + 23-017E3.bin 09-Sep-2009 19:52 4k + 23-018E2.bin 23-Nov-2009 21:10 2k + 23-021E3.bin 09-Sep-2009 19:52 4k + 23-032E2.bin 07-May-2008 08:00 2k + 23-033E2.bin 27-May-2004 23:22 2k + 23-034E2.bin 27-May-2004 23:22 2k + 23-039D1.bin 27-May-2004 23:43 1k + 23-040D1.bin 27-May-2004 23:43 1k + 23-042E5.bin 27-May-2004 23:22 16k + 23-043E5.bin 27-May-2004 23:23 16k + 23-045E2.bin 27-May-2004 23:43 2k + 23-046E2.bin 27-May-2004 23:43 2k + 23-054E7.bin 27-May-2004 23:23 64k + 23-061E2.bin 25-Mar-2006 01:28 2k + 23-088E8.bin 12-Aug-2004 01:05 128k + 23-089E2.bin 09-Sep-2009 19:52 2k + 23-089E8.bin 12-Aug-2004 01:06 128k + 23-110E6.bin 27-May-2004 23:23 32k + 23-111E6.bin 27-May-2004 23:44 32k + 23-115E4.bin 11-Aug-2004 11:55 8k + 23-115E8.bin 12-Aug-2004 01:06 128k + 23-116E4.bin 27-May-2004 23:47 8k + 23-116E5.bin 05-Sep-2004 00:47 16k + 23-117E5.bin 05-Sep-2004 00:47 16k + 23-126E4.bin 27-May-2004 23:47 8k + 23-127E4.bin 27-May-2004 23:47 8k + 23-134E8.bin 12-Aug-2004 01:07 128k + 23-134K5.bin 22-Jan-2011 15:23 51k + 23-135E8.bin 12-Aug-2004 01:08 128k + 23-145E4.bin 27-May-2004 23:47 8k + 23-146E4.bin 27-May-2004 23:47 8k + 23-153D2.bin 22-Jan-2011 15:23 1k + 23-154D2.bin 22-Jan-2011 15:23 1k + 23-157E4.bin 09-Sep-2009 19:52 8k + 23-158E4.bin 09-Sep-2009 19:53 8k + 23-168E5.bin 27-May-2004 23:47 16k + 23-169E5.bin 27-May-2004 23:47 16k + 23-172E5.bin 27-May-2004 23:48 16k + 23-173E5.bin 27-May-2004 23:48 16k + 23-178E5.bin 05-Sep-2004 00:47 16k + 23-179E5.bin 05-Sep-2004 00:47 16k + 23-183E4.bin 27-May-2004 23:48 8k + 23-184E4.bin 27-May-2004 23:48 8k + 23-188E5.bin 27-May-2004 23:48 16k + 23-189E5.bin 27-May-2004 23:48 16k + 23-194E7.bin 12-Aug-2004 01:08 64k + 23-195E7.bin 12-Aug-2004 01:09 64k + 23-199E7.bin 12-Aug-2004 01:09 64k + 23-208E5.bin 27-May-2004 23:48 16k + 23-209E5.bin 27-May-2004 23:48 16k + 23-213E4.bin 09-Sep-2009 19:52 8k + 23-214E4.bin 09-Sep-2009 19:52 8k + 23-216E5.bin 11-Aug-2004 14:01 16k + 23-217E5.bin 11-Aug-2004 14:01 16k + 23-238E4.bin 27-May-2004 23:48 8k + 23-239E4.bin 27-May-2004 23:48 8k + 23-243E5.bin 28-May-2004 00:01 16k + 23-244E5.bin 28-May-2004 00:01 16k + 23-248E5.bin 12-Aug-2004 01:09 16k + 23-249E5.bin 12-Aug-2004 01:09 16k + 23-254E6.bin 27-May-2004 23:54 32k + 23-261E5.bin 18-May-2001 22:06 16k + 23-262E5.bin 18-May-2001 22:07 16k + 23-264E4.bin 27-May-2004 23:54 8k + 23-265E4.bin 27-May-2004 23:54 8k + 23-285E5.bin 27-May-2004 23:55 16k + 23-286E5.bin 27-May-2004 23:55 16k + 23-330E5.bin 10-Aug-2004 10:23 16k + 23-331E5.bin 10-Aug-2004 10:24 16k + 23-334E5.bin 27-May-2004 23:55 16k + 23-335E5.bin 27-May-2004 23:55 16k + 23-339E2.bin 27-May-2004 23:55 2k + 23-339E5.bin 27-May-2004 23:55 16k + 23-340E2.bin 27-May-2004 23:55 2k + 23-340E5.bin 27-May-2004 23:59 16k + 23-365E5.bin 09-Sep-2009 19:53 16k + 23-366E5.bin 09-Sep-2009 19:52 16k + 23-380E4.bin 27-May-2004 23:55 8k + 23-381E4.bin 27-May-2004 23:56 8k + 23-381E6.bin 27-May-2004 23:56 32k + 23-382E6.bin 27-May-2004 23:58 32k + 23-383E5.bin 27-May-2004 23:58 16k + 23-384E5.bin 27-May-2004 23:58 16k + 23-398E4.bin 27-May-2004 23:58 8k + 23-399E4.bin 27-May-2004 23:58 8k + 23-419E4.bin 22-Jan-2011 15:23 8k + 23-420E4.bin 22-Jan-2011 15:23 8k + 23-451E4.bin 09-Sep-2009 19:52 8k + 23-452E4.bin 09-Sep-2009 19:53 8k + 23-453E6.bin 25-May-2001 21:44 32k + 23-465E4.bin 09-Sep-2009 19:52 8k + 23-466E4.bin 09-Sep-2009 19:53 8k + 23-529E6.bin 05-Sep-2004 00:49 32k + 23-530E6.bin 05-Sep-2004 00:51 32k + ROMlist 07-Jan-2012 00:17 24k + Wanted! 22-Jan-2011 15:24 1k + +### ROMLIST + + ROM number goes with for module size (K) socket function High byte + ========== ========= ========== ======== ====== =============================== ========= + + 23-015E8 128K MicroVAX III + KA655-A VMB Rev.5.3 + See also 23-194/5E7 + + 23-018E2 n/a 2K VT100 character generator + + 23-017E3 23-021E3 4K VT18x "Robin" boot ROMs + Version 2.1 + + 23-021E3 23-017E3 4K VT18x "Robin" boot ROMs + Version 2.1 + + 23-031E2 032/33/34 2K ROM0 Terminalboard ROM, VT100 + 031/32/33/34 = VT100 + 061/32/33/34 = VT125/105 + + 23-032E2 061/33/34 2K ROM1 Terminalboard ROM, VT100 + 031/32/33/34 = VT100 + 061/32/33/34 = VT125/105 + + 23-033E2 061/32/34 2K ROM2 Terminalboard ROM, VT100 + 031/32/33/34 = VT100 + 061/32/33/34 = VT125/105 + + 23-034E2 061/32/33 2K ROM3 Terminalboard ROM, VT100 + 031/32/33/34 = VT100 + 061/32/33/34 = VT125/105 + + 23-039D1 23-040D1 M8047-AC 2K E57 MXV11-A2 Bootstrap 0 + 039 => XE57 (low byte) + + 23-040D1 23-039D1 M8047-AC 2K E67 MXV11-A2 Bootstrap 1 + 040 => XE67 + + 23-042E5 23-043E5 M8639-YA 16K RQDX1 T-11 code, issue 2 0 + RD51,RD52,RX50 support + Firmware V9.0; rewrites + RCT/FCT so not back-compatible + + 23-043E5 23-042E5 M8639-YA 16K RQDX1 T-11 code, issue 2 1 + RD51,RD52,RX50 support + Firmware V9.0; rewrites + RCT/FCT so not back-compatible + + 23-045E2 23-046E2 M8012 2K Standard BDV11 Boot ROMs 0 + (only about half used) + + 23-046E2 23-045E2 M8012 2K Standard BDV11 Boot ROMs 1 + (note only about 1K used) + + 23-051L1 M7546 E3 ROM on TQK50 Rev.D1 + + 23-054E7 64K VT320 code ROM + + 23-061E2 032/33/34 2K ROM0 Terminalboard ROM, VT100 1 + 031/32/33/34 = VT100 + 061/32/33/34 = VT125/105 + + 23-065L1 M7546 E3 ROM on TQK50 Rev.J1, + FC0 TQK50-R002 + + 23-077E5 23-078E5 M8190-B 16K E116 KDJ-11B (PDP11/73+) boot 0 + Version 6 + See also 116/117 + + 23-078E5 23-077E5 M8190-B 16K E117 KDJ-11B (PDP11/73+) boot 1 + Version 6 + See also 116/117 + + 23-088E8 23-089E8 128K MicroVAX 3100 + KA42 V015 + + 23-089E2 2K TU-58 firmware, as used on + standalone serial and VT103 + integrated units + + 23-089E8 23-088E8 128K MicroVAX 3100 + KA42 V015 + + 23-094E2 2K extra chargen, VT100-WC-WK + use with 095/096/139/140 + see also 097/098,180-183 + + 23-095E2 096/97/98 2K ROM0 Terminalboard ROM, VT100 + 095/096/139/140 = VT1xxAC + Add CharGen 094 for -WC/WK + see also 097/098,180-183 + + 23-096E2 095/97/98 2K ROM1 Terminalboard ROM, VT100 + 095/096/139/140 = VT1xxAC + Add CharGen 094 for -WC/WK + see also 097/098,180-183 + + 23-097E2 095/96/98 2K ROM2 Terminalboard ROM, VT132 + 095/096/139/140 = VT1xxAC + Add CharGen 094 for -WC/WK + see also 097/098,180-183 + + 23-098E2 095/96/97 2K ROM3 Terminalboard ROM, VT132 + 095/096/139/140 = VT1xxAC + Add CharGen 094 for -WC/WK + see also 097/098,180-183 + + 23-110E6 23-111E6 M7606 32K uVax2 boot 0 + (this one nearest centre of PCB) + + 23-111E6 23-110E6 M7606 32K uVax2 boot 1 + (this one nearest edge of PCB) + + 23-115E4 23-116E4 8K Pro350 bootstrap + in MCM68766C + (8k x 8, 24-pin) + + 23-115E8 128K VAXstation framebuffer? + WS01 V013 + + 23-116E4 23-115E4 8K Pro350 bootstrap + in MCM68766C's + (8k x 8, 24-pin) + + 23-116E5 23-117E5 M8190-B 16K E116 KDJ-11B (PDP11/73+) boot 0 + Version 7 + See also 077/078 + + 23-117E5 23-116E5 M8190-B 16K E117 KDJ-11B (PDP11/73+) boot 1 + Version 7 + See also 077/078 + + 23-126E4 23-127E4 ????? 8K unknown - data welcome + + 23-127E4 23-126E4 ????? 8K unknown - data welcome + + 23-134E8 23-135E8 128K MicroVAX 3100 + KA43 V012 + + 23-134K5 M7169 E68 VCB02 framebuffer PAL + (VAXstation II) + See also 23-419/420E4, 23-153/4D2 + + 23-135E8 23-134E8 128K MicroVAX 3100 + KA43 V012 + + 23-139E2 095/6,140 2K ROM2 Terminalboard ROM, VT100-WC,-WK + 095/096/139/140 = VT1xxAC + Add CharGen 094 for -WC/WK + see also 097/098,180-183 + + 23-140E2 095/6,139 2K ROM3 Terminalboard ROM, VT100-WC,-WK + 095/096/139/140 = VT1xxAC + Add CharGen 094 for -WC/WK + see also 097/098,180-183 + + 23-145E4 23-146E4 M7195 8K MXV11-B2 boot ROMs 0 + + 23-146E4 23-145E4 M7195 8K MXV11-B2 boot ROMs 1 + + 23-153D2 23-154E4 M7169 8K E58 VCB02 framebuffer PROM + (VAXstation II) + See also 23-419/420E4, 23-134K5 + + 23-153D2 23-154E4 M7169 8K E53 VCB02 framebuffer PROM + (VAXstation II) + See also 23-419/420E4, 23-134K5 + + 23-157E4 23-158E4 M8189-BE 8K early KDF11-BE boot ROMs V0.8 + Not listed in KDF11-B + Maintenance Manual. + + 23-158E4 23-157E4 M8189-BE 8K early KDF11-BE boot ROMs V0.8 + Not listed in KDF11-B + Maintenance Manual. + + 23-166E5 23-167E5 M7555 16K Don't exist: wrongly numbered 0 + on parts list. + Should be 216/217. Ver.1.10 + + 23-167E5 23-166E5 M7555 16K Dont't exist: wrongly numbered 1 + on parts list. + Should be 216/217. + + 23-168E5 23-169E5 M8190 16K microPDP-11/83 bootrom 0 + Rev 8? + + 23-169E5 23-168E5 M8190 16K microPDP-11/83 bootrom 1 + Rev 8? + + 23-170E5 23-171E5 M7546 16K TQK50 ROMs, rev.1 0 + see also 180/181, 208/209 + 248/249, 330/331 + + 23-171E5 23-170E5 M7546 16K TQK50 ROMs, rev.1 1 + see also 180/181, 208/209 + 248,249, 330,331 + + 23-172E5 23-173E5 M8639-YA 16K RQDX1 T-11 code, issue 3 0 + RD51,RD52,RX50 support + Firmware V9.4E; rewrites + FCT so not back-compatible + + 23-173E5 23-172E5 M8639-YA 16K RQDX1 T-11 code, issue 3 1 + RD51,RD52,RX50 support + Firmware V9.4E; rewrites + FCT so not back-compatible + + 23-178E5 23-179E5 M8639-YB 16K RQDX2 T-11 code, issue 1 0 + RD51,RD52,RD53,RX50 support + Firmware V10.0D + + 23-179E5 23-178E5 M8639-YB 16K RQDX2 T-11 code, issue 1 1 + RD51,RD52,RD53,RX50 support + Firmware V10.0D + + 23-180E2 181/2/3 2K ROM0 Terminalboard ROM, VT132 + see also 095-098,181-183 + + 23-180E5 23-181E5 M7546 16K TQK50 ROMs, rev.2 (C1) 0 + see also 170/171, 208/209. + 248/249, 330/331 + + 23-181E2 180/2/3 2K ROM1 Terminalboard ROM, VT132 + see also 095-098,180-183 + + 23-181E5 23-180E5 M7546 16K TQK50 ROMs, rev.2 (C1) 1 + see also 170/171, 208/209. + 248/249, 330/331 + + 23-182E2 180/1/3 2K ROM2 Terminalboard ROM, VT132 + see also 095-098,180-182 + + 23-183E2 180/1/2 2K ROM3 Terminalboard ROM, VT132 + see also 095-098,180-182 + + 23-183E4 23-184E4 M8189-BF 8K KDF11-BF (µPDP11) Boot 0 + See also 157/158, 238/239, + 339/340 + (-BE v.0.9)ok:BDV11 (mod) + + 23-184E4 23-183E4 M8189-BF 8K KDF11-BF (µPDP11) Boot 1 + See also 157/158, 238/239, + 339/340, 380/381, + 453/454 + (-BE v.0.9)ok: BDV11(mod) + + 23-188E5 23-189E5 M8639-YB 16K RQDX2 T-11 code, issue 2 0 + RD51,RD52,RD53,RX50 support + Firmware V10.0E + + 23-189E5 23-188E5 M8639-YB 16K RQDX2 T-11 code, issue 2 1 + RD51,RD52,RD53,RX50 support + Firmware V10,0E + + 23-194E7 23-195E7 64K MicroVAX III + KA650-B VMB Rev.5.3 + See also 23-015E8 + + 23-195E7 23-194E7 64K MicroVAX III + KA650-B VMB Rev.5.3 + See also 23-015E8 + + 23-199E7 64K VAXstation framebuffer? + VX40X + + 23-208E5 23-209E5 M7546 16K TQK50 ROMs, rev.3 (E1) 0 + see also 170/171, 180/181. + 248/249, 330/331 + + 23-209E5 23-208E5 M7546 16K TQK50 ROMs, rev.3 (E1) 1 + see also 170/171, 180/181. + 248/249, 330/331 + + 23-213E4 23-214E4 8K DCT-11-EM boot ROMs + for T-11 Evaluation Board + + 23-214E4 23-213E4 8K DCT-11-EM boot ROMs + for T-11 Evaluation Board + + 23-216E5 23-217E5 M7555 16K RQDX3 T-11 code issue 1 0 + + 23-217E5 23-216E5 M7555 16K RQDX3 T-11 code issue 1 1 + + 23-228E4 23-229E4 M7792 8K DEUNA Port Module + + 23-229E4 23-228E4 M7792 8K DEUNA Port Module + + 23-238E4 23-239E4 M8189-BE 8K KDF11-BE (µPDP11) Boot 0 + See also 183/184,339/340 + + 23-239E4 23-238E4 M8189-BE 8K KDF11-BE (µPDP11) Boot 1 + See also 183/184,339/340 + + 23-243E5 23-244E5 M7555 16K RQDX3 T-11 code issue 2 0 + + 23-244E5 23-243E5 M7555 16K RQDX3 T-11 code issue 2 1 + + 23-248E5 23-249E5 M7546 16K TQK50 (probably Rev.4) + See 170/1, 180/1, 208/9, 330/1 + + 23-249E5 23-248E5 M7546 16K TQK50 (probably Rev.4) + See 170/1, 180/1, 208/9, 330/1 + + 23-254E6 TK50Z 32K TK50Z-FA ROM + The "not-so-good" version + + 23-261E5 23-262E5 M7554 etc 16K PDP11/53 (KDJ11-SD) Boot 0 + See also 23-529E6/23-530E6 + + 23-262E5 23-261E5 M7554 16K KDJ11-SD boot (PDP11/53) 1 + See also 23-529E6/23-530E6 + + 23-264E4 23-265E4 M8639 8K RQDX2 T-11 code, issue 1a 0 + RD51,RX50 support only + Firmware V8.0 + 238E4/239E4 = V7.0 + + 23-265E4 23-264E4 M8639 8K RQDX2 T-11 code, issue 1a 1 + RD51,RX50 support only + Firmware V8.0 + 238E4/239E4 = V7.0 + + 23-285E5 23-286E5 M7555 16K RQDX3 T-11 code issue 3 0 + up to RD53 only(?) + + 23-286E5 23-285E5 M7555 16K RQDX3 T-11 code issue 3 1 + up to RD53 only(?) + + 23-287E8 23-288E8 32K VAXstation 4000 VLC + 40-pin 16K x 16, 27C201 + + 23-288E8 23-287E8 32K VAXstation 4000 VLC + 40-pin 16K x 16, 27C201 + + 23-330E5 23-331E5 M7546 16K E29 TQK50 ROMs, Rev.? (J1 etc) 0 + E29 = low byte, FC0 TQK50-R002 + + 23-331E5 23-330E5 M7546 16K E28 TQK50 ROMs, Rev.? (J1 etc) 1 + E28 = high byte, FC0 TQK50-R002 + + 23-334E5 23-335E5 M7516 16K DELQA ROMs + + 23-335E5 23-334E5 M7516 16K DELQA ROMs + + 23-339E2 23-340E2 M8189-BA 2K KDF-11BA (PDP11/23+) boot 0 + See also 380/381,183/184, + 238/239,453/454 + + 23-339E5 23-340E5 M7555 16K RQDX3 T-11 code issue 4 0 + Handles RD54 + + 23-340E2 23-339E2 M8189-BA 2K KDF-11BA (PDP11/23+) boot 1 + See also 380/381,183/184, + 238/239,453/454 + + 23-340E5 23-339E5 M7555 16K RQDX3 T-11 code issue 4 1 + Handles RD54 + + 23-365E5 23-366E5 M7516-YM 16K DELQA-Plus aka Turbo DELQA + Ver.2.0.0 Replaces 334/335 + + 23-366E5 23-365E5 M7516-YM 16K DELQA-Plus aka Turbo DELQA + Ver.2.0.0 Replaces 334/335 + + 23-368E9 23-E89J5 256K E7 KZMSA-F001 FCO + Needs new PAL E89J at E110 + + 23-380E4 23-381E4 M8189-BG 8K KDF11-BG (uPDP11/23) boot 0 + See also 339/340,183/184, + 238/239,453/454 + KDF11-B Maintenance + Manual calls this -BH + + 23-381E4 23-380E4 M8189-BG 8K KDF11-BG (uPDP11/23) boot 1 + See also 339/340, 183/184 + 238/239,453/454 + KDF11-B Maintenance + Manual calls this -BH + + 23-381E6 23-382E6 M7554 32K DECserver 500 (KDJ11-SD) 0 + (same board as 11/53, but + S-box mounting) + + 23-382E6 23-381E6 M7554 32K DECserver 500 (KDJ11-SD) 1 + (same board as 11/53, but + S-box mounting) + + 23-383E5 23-384E5 M7769 16K KFQSA 0 + + 23-384E5 23-383E5 M7769 16K KFQSA 1 + + 23-398E4 23-399E4 ????? 8K unknown - data welcome + + 23-399E4 23-398E4 ????? 8K unknown - data welcome + + 23-410E6 23-411E6 M7559 32K E27 TKQ70 FCO TQK70-R001 + 410 at E27, 411 at E28 + + 23-411E6 23-410E6 M7559 32K E28 TKQ70 FCO TQK70-R001 + 410 at E27, 411 at E28 + + 23-419E4 23-420E4 M7169 8K E36 VCB02 framebuffer diagnostics + (VAXstation II) + See also 23-153/4D2, 23-134K5 + + 23-420E4 23-419E4 M7169 8K E43 VCB02 framebuffer diagnostics + (VAXstation II) + See also 23-153/4D2, 23-134K5 + + 23-432E4 23-433E4 M7521 8K DELUA ROMs, old + Replaced by 23-451/452E4 + + 23-433E4 23-432E4 M7521 8K DELUA ROMs , FC0 DELUA-I002 + Replaced by 23-451/452E4 + + 23-451E4 23-452E4 M7521 8K E31 DELUA ROMs, FC0 DELUA-I002 + Replaces 23-432E4 + See also 23-465/466E4 + + 23-452E4 23-451E4 M7521 8K E56 DELUA ROMs, FC0 DELUA-I002 + Replaces 23-433E4 + + 23-453E4 23-454E4 8189-BJ 8K KDF11-BJ (uPDP11/23) boot 0 + Last release + See also 339/340,238/239, + 158/159,183/184, + 380/381. + + 23-453E6 TK50Z 32K TK50Z-GA ROM + The "best" version + + 23-454E4 23-453E4 8189-BJ 8K KDF11-BJ (uPDP11/23) boot 1 + Last release + See also 339/340,238/239, + 158/159,183/184, + 380/381. + + 23-465E4 23-466E4 M7521 8K E31 DELUA ROMs + later than 23-451/452E4?? + + 23-466E4 23-465E4 M7521 8K E56 DELUA ROMs + later than 23-451/452E4?? + + 23-529E6 23-530E6 M7554 etc 32K DECserver 500 (KDJ11-SD) Boot 0 + See also 23-261E5/262E5 + + 23-530E6 23-529E6 M7554 etc 32K KDJ11-SD (DECserver 500) Boot 1 + See also 23-261E5/262E5 + +### WANTED + + To Get: + + 23-031E2 VT100 terminal ROM + 23-051L1 M7546 TQK50 Rev.D1 E3 ROM + 23-065L1 M7546 TQK50 Rev.J1 E3 ROM + 23-077E5 M8190 KDJ-11B (PDP11/73+) boot Version 6 + 23-078E5 M8190 KDJ-11B (PDP11/73+) boot Version 6 + 23-094E2 VT100 extra chargen + 23-095E2 VT100 extra chargen + 23-096E2 VT100 extra chargen + 23-097E2 VT132 extra chargen + 23-098E2 VT132 extra chargen + 23-139E2 VT100 terminal board ROM + 23-140E2 VT100 terminal board ROM + 23-170E5 M7546 TQK50 ROMs, rev.1 + 23-171E5 M7546 TQK50 ROMs, rev.1 + 23-180E2 VT132 terminal board ROM + 23-180E5 M7546 TQK50 ROMs, rev.2 (C1) + 23-181E2 VT132 terminal board ROM + 23-181E5 M7546 TQK50 ROMs, rev.2 (C1) + 23-182E2 VT132 terminal board ROM + 23-183E2 VT132 terminal board ROM + 23-228E4 M7792 DEUNA Port Module ROM + 23-229E4 M7792 DEUNA Port Module ROM + 23-287E8 VAXstation 4000 VLC (40-pin EPROM) + 23-288E8 VAXstation 4000 VLC (40-pin EPROM) + 23-368E9 KZMSA-F001 FCO (goes with PAL 23-E89J5) + 23-410E6 M7559 TKQ70 FCO TQK70-R001 + 23-411E6 M7559 TKQ70 FCO TQK70-R001 + 23-432E4 M7521 DELUA ROM, FC0 DELUA-I002 + 23-433E4 M7521 DELUA ROM, FC0 DELUA-I002 + 23-453E6 TK50Z-GA ROM + 23-453E4 M8189 KDF11-BJ (uPDP11/23) boot, last release + 23-454E4 M8189 KDF11-BJ (uPDP11/23) boot, last release + + What is: + 23-126E4 + 23-127E4 + 23-398E4 + 23-399E4 diff --git a/devices/vt100/README.md b/devices/vt100/README.md new file mode 100644 index 000000000..67157a3e5 --- /dev/null +++ b/devices/vt100/README.md @@ -0,0 +1,12 @@ +--- +layout: page +title: VT100 Terminal Resources +permalink: /devices/vt100/ +--- + +VT100 Terminal Resources +------------------------ + +For emulation of Digital Equipment Corporation's VT100 terminal, this directory contains the following resources: + +* [ROMs](rom/) diff --git a/devices/vt100/rom/23-018E2.json b/devices/vt100/rom/23-018E2.json new file mode 100644 index 000000000..03f62b193 --- /dev/null +++ b/devices/vt100/rom/23-018E2.json @@ -0,0 +1,130 @@ +{"bytes": [ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000000 ................ + 0x10,0x38,0x7C,0xFE,0x7C,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000010 .8|.|8.......... + 0x92,0x44,0x92,0x44,0x92,0x44,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000020 .D.D.D.......... + 0x88,0x88,0xF8,0x88,0x88,0x3E,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000030 ................ + 0xF0,0x80,0xE0,0x80,0x9E,0x10,0x1C,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000040 ................ + 0x78,0x80,0x80,0x78,0x3C,0x22,0x3C,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000050 x..x.".""....... + 0x80,0x80,0x80,0xF8,0x3E,0x20,0x3C,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000060 ..... . ....... + 0x38,0x44,0x44,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000070 8DD8............ + 0x00,0x10,0x10,0xFE,0x10,0x10,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000080 ................ + 0x88,0xC8,0xA8,0x98,0x88,0x20,0x20,0x20,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000090 ..... ........ + 0x88,0x88,0x50,0x20,0x3E,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000000A0 ..P ............ + 0x10,0x10,0x10,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10, // 0x000000B0 ................ + 0x00,0x00,0x00,0xF0,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000000C0 ................ + 0x00,0x00,0x00,0x1F,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000000D0 ................ + 0x10,0x10,0x10,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10, // 0x000000E0 ................ + 0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x10, // 0x000000F0 ................ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, // 0x00000100 ................ + 0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000110 ................ + 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000120 ................ + 0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000130 ................ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000140 ................ + 0x10,0x10,0x10,0x1F,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x10, // 0x00000150 ................ + 0x10,0x10,0x10,0xF0,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x10, // 0x00000160 ................ + 0x10,0x10,0x10,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10, // 0x00000170 ................ + 0x00,0x00,0x00,0xFF,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000180 ................ + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x10, // 0x00000190 ................ + 0x02,0x08,0x20,0x80,0x20,0x08,0x02,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000001A0 .. . ........... + 0x80,0x20,0x08,0x02,0x08,0x20,0x80,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000001B0 . ... .......... + 0x00,0x00,0xFE,0x24,0x24,0x24,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000001C0 ...$$$D......... + 0x02,0x04,0xFE,0x10,0xFE,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000001D0 .....@.......... + 0x1C,0x22,0x20,0xF8,0x20,0x78,0xA6,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000001E0 ." . x.@........ + 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000001F0 ................ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000200 ................ + 0x10,0x10,0x10,0x10,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000210 ................ + 0x24,0x24,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000220 $$$............. + 0x48,0x48,0xFC,0x48,0xFC,0x48,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000230 HH.H.HH......... + 0x10,0x7C,0x90,0x7C,0x12,0x7C,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000240 .|.|.|.......... + 0xC2,0xC4,0x08,0x10,0x20,0x46,0x86,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000250 .... F.......... + 0x70,0x88,0x88,0x70,0x8A,0x84,0x7A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000260 p..p..z......... + 0x18,0x10,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000270 .. ............. + 0x08,0x10,0x20,0x20,0x20,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000280 .. ........... + 0x20,0x10,0x08,0x08,0x08,0x10,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000290 ..... ......... + 0x00,0x44,0x28,0xFE,0x28,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000002A0 .D(.(D.......... + 0x00,0x10,0x10,0xFE,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000002B0 ................ + 0x00,0x00,0x00,0x00,0x00,0x30,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000002C0 .....0 @........ + 0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000002D0 ................ + 0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000002E0 .....00......... + 0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000002F0 .... @.......... + 0x38,0x44,0x82,0x82,0x82,0x44,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000300 8D...D8......... + 0x10,0x30,0x50,0x10,0x10,0x10,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000310 .0P...|......... + 0x78,0x84,0x02,0x1C,0x60,0x80,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000320 x...`........... + 0xFE,0x04,0x08,0x1C,0x02,0x82,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000330 ......|......... + 0x08,0x18,0x28,0x48,0xFE,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000340 ..(H............ + 0xFE,0x80,0xBC,0xC2,0x02,0x82,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000350 ......|......... + 0x3C,0x42,0x80,0xBC,0xC2,0x42,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000360 .B...B.......... + 0xFE,0x02,0x04,0x08,0x10,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000370 ..... @......... + 0x7C,0x82,0x82,0x7C,0x82,0x82,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000380 |..|..|......... + 0x78,0x84,0x86,0x7A,0x02,0x84,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000390 x..z..x......... + 0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000003A0 .00..00......... + 0x00,0x30,0x30,0x00,0x00,0x30,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000003B0 .00..0 @........ + 0x02,0x08,0x20,0x80,0x20,0x08,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000003C0 .. . ........... + 0x00,0x00,0xFE,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000003D0 ................ + 0x80,0x20,0x08,0x02,0x08,0x20,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000003E0 . ... .......... + 0x7C,0x82,0x0C,0x10,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000003F0 |............... + 0x7C,0x82,0x8A,0x92,0x9C,0x80,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000400 |.....|......... + 0x10,0x28,0x44,0x82,0xFE,0x82,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000410 .(D............. + 0xFC,0x42,0x42,0x7C,0x42,0x42,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000420 .BB|BB.......... + 0x3C,0x42,0x80,0x80,0x80,0x42,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000430 .B...B.......... + 0xF8,0x44,0x42,0x42,0x42,0x44,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000440 .DBBBD.......... + 0xFE,0x80,0x80,0xF8,0x80,0x80,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000450 ................ + 0xFE,0x80,0x80,0xF8,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000460 ................ + 0x3C,0x42,0x80,0x80,0x8E,0x42,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000470 .B...B.......... + 0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000480 ................ + 0x7C,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000490 |.....|......... + 0x0E,0x04,0x04,0x04,0x04,0x84,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000004A0 ......x......... + 0x82,0x8C,0xB0,0xC0,0xB0,0x8C,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000004B0 ................ + 0x80,0x80,0x80,0x80,0x80,0x80,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000004C0 ................ + 0x82,0xC6,0xAA,0x92,0x82,0x82,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000004D0 ................ + 0x82,0xC2,0xA2,0x92,0x8A,0x86,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000004E0 ................ + 0x7C,0x82,0x82,0x82,0x82,0x82,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000004F0 |.....|......... + 0xFC,0x82,0x82,0xFC,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000500 ................ + 0x7C,0x82,0x82,0x82,0x8A,0x84,0x7A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000510 |.....z......... + 0xFC,0x82,0x82,0xFC,0x88,0x84,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000520 ................ + 0x7C,0x82,0x80,0x7C,0x02,0x82,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000530 |..|..|......... + 0xFE,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000540 ................ + 0x82,0x82,0x82,0x82,0x82,0x82,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000550 ......|......... + 0x82,0x82,0x44,0x44,0x28,0x28,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000560 ..DD((.......... + 0x82,0x82,0x82,0x92,0x92,0xAA,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000570 ......D......... + 0x82,0x44,0x28,0x10,0x28,0x44,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000580 .D(.(D.......... + 0x82,0x44,0x28,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000590 .D(............. + 0xFE,0x04,0x08,0x10,0x20,0x40,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000005A0 .... @.......... + 0x3C,0x20,0x20,0x20,0x20,0x20,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000005B0 . .......... + 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000005C0 .@ ............. + 0x78,0x08,0x08,0x08,0x08,0x08,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000005D0 x.....x......... + 0x10,0x28,0x44,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000005E0 .(D............. + 0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000005F0 ................ + 0x30,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000600 0............... + 0x00,0x00,0x7C,0x02,0x7E,0x82,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000610 ..|.~.~......... + 0x80,0x80,0xBC,0xC2,0x82,0xC2,0xBC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000620 ................ + 0x00,0x00,0x3C,0x42,0x80,0x40,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000630 ...B.@.......... + 0x02,0x02,0x7A,0x86,0x82,0x86,0x7A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000640 ..z...z......... + 0x00,0x00,0x7C,0x82,0xFE,0x80,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000650 ..|...|......... + 0x1C,0x22,0x20,0xF8,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000660 ." . ......... + 0x00,0x02,0x7A,0x84,0x84,0x7C,0x04,0x84,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000670 ..z..|..x....... + 0x80,0x80,0xBC,0xC2,0x82,0x82,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000680 ................ + 0x10,0x00,0x30,0x10,0x10,0x10,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000690 ..0...|......... + 0x04,0x00,0x04,0x04,0x04,0x04,0x84,0x84,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000006A0 ........x....... + 0x80,0x80,0x88,0x90,0xE0,0x88,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000006B0 ................ + 0x30,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000006C0 0.....8......... + 0x00,0x00,0xC4,0xAA,0x92,0x92,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000006D0 ................ + 0x00,0x00,0xBC,0xC2,0x82,0x82,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000006E0 ................ + 0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000006F0 ..|...|......... + 0x00,0x00,0xBC,0xC2,0xC2,0xBC,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000700 ................ + 0x00,0x00,0x7A,0x86,0x86,0x7A,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000710 ..z..z.......... + 0x00,0x00,0x9C,0x62,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000720 ...b@@@......... + 0x00,0x00,0x7C,0x80,0x7C,0x02,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000730 ..|.|........... + 0x20,0x20,0xF8,0x20,0x20,0x24,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000740 . $.......... + 0x00,0x00,0x84,0x84,0x84,0x84,0x7A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000750 ......z......... + 0x00,0x00,0x82,0x82,0x44,0x28,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000760 ....D(.......... + 0x00,0x00,0x82,0x82,0x92,0xAA,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000770 ......D......... + 0x00,0x00,0x84,0x48,0x30,0x48,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000780 ...H0H.......... + 0x00,0x00,0x84,0x84,0x8C,0x74,0x04,0x84,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00000790 .....t..x....... + 0x00,0x00,0xFE,0x04,0x18,0x20,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000007A0 ..... .......... + 0x0E,0x10,0x10,0x60,0x10,0x10,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000007B0 ...`............ + 0x10,0x10,0x10,0x00,0x00,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000007C0 ................ + 0xE0,0x10,0x10,0x0C,0x10,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000007D0 ................ + 0x62,0x92,0x8C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x000007E0 b............... + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00] // 0x000007F0 ................ +} \ No newline at end of file diff --git a/devices/vt100/rom/README.md b/devices/vt100/rom/README.md new file mode 100644 index 000000000..b4b5f22b4 --- /dev/null +++ b/devices/vt100/rom/README.md @@ -0,0 +1,37 @@ +--- +layout: page +title: VT100 ROMs +permalink: /devices/vt100/rom/ +--- + +VT100 ROMs +---------- + +The VT100 used four 2Kb ROMs to store the code used by its 8080 processor. +Their combined contents are stored in [VT100.json](VT100.json). + +As Trammell Hudson's [VT100 Page](https://trmm.net/VT100) explains: + + There are four 8316E ROM chips for the 8080 CPU on the logic board. Since they are custom mask ROMs, + Digital was able to have a different chip-select bit pattern and avoided having separate NOT gates on the inputs. + Note that the schematic appears to be incorrect -- E56 is the low order, and E40 is the high order address bits. + +He then describes the memory mapping as follows: + + ROM chip CS1 (20) A11/CS2 (18) A12/CS3 (21) Mapped address + E40 H H H 0x1800 + E45 H L H 0x1000 + E52 H H L 0x0800 + E56 H L L 0x0000 + +The above PCB chip locations correspond to the following [DEC ROM](/devices/roms/dec/) dumps: + +* E56: [23-061E2.bin](https://web.archive.org/web/20140723115846/http://www.dunnington.u-net.com/public/DECROMs/23-061E2.bin) +* E52: [23-032E2.bin](https://web.archive.org/web/20140723115846/http://www.dunnington.u-net.com/public/DECROMs/23-032E2.bin) +* E45: [23-033E2.bin](https://web.archive.org/web/20140723115846/http://www.dunnington.u-net.com/public/DECROMs/23-033E2.bin) +* E40: [23-034E2.bin](https://web.archive.org/web/20140723115846/http://www.dunnington.u-net.com/public/DECROMs/23-034E2.bin) + +And sure enough, concatenating those DEC ROM four dumps produces a perfect match for Trammell Hudson's +[VT100.bin](http://trmm.net/images/2/20/VT100.bin). + +The VT100 also used one 2Kb character generator ROM, which is stored in [23-018E2.json](23-018E2.json). diff --git a/devices/vt100/rom/VT100.json b/devices/vt100/rom/VT100.json new file mode 100644 index 000000000..217fd08da --- /dev/null +++ b/devices/vt100/rom/VT100.json @@ -0,0 +1,514 @@ +{"bytes": [ + 0xF3,0x31,0x4E,0x20,0xC3,0x3B,0x00,0x00,0xCD,0xFD,0x00,0xFB,0xC9,0x00,0x00,0x00, // 0x00000000 .1N .;.......... + 0xCD,0xCC,0x03,0xFB,0xC9,0x00,0x00,0x00,0xCD,0xCC,0x03,0xCD,0xFD,0x00,0xFB,0xC9, // 0x00000010 ................ + 0xCD,0xCF,0x04,0xC9,0x00,0x00,0x00,0x00,0xCD,0xCF,0x04,0xC9,0x00,0x00,0x00,0x00, // 0x00000020 ................ + 0xCD,0xCC,0x03,0xCD,0xCF,0x04,0xFB,0xC9,0xC3,0x30,0x00,0x1E,0x01,0xF3,0x3E,0x0F, // 0x00000030 .........0...... + 0xD3,0x62,0x2F,0xD3,0x42,0xAF,0x57,0x6F,0x67,0x3C,0x47,0xD3,0x82,0x0E,0x08,0x07, // 0x00000040 .b/.B.Wog.G..... + 0xAE,0x2C,0xC2,0x4F,0x00,0x24,0x0D,0xC2,0x4F,0x00,0xB7,0xC2,0x5B,0x00,0x78,0xFE, // 0x00000050 .,.O.$..O...[.x. + 0x04,0xC2,0x49,0x00,0x3C,0xD3,0x82,0x0E,0xAA,0x06,0x2C,0xDB,0x42,0xE6,0x02,0xC2, // 0x00000060 ..I.......,.B... + 0x74,0x00,0x06,0x40,0x60,0x2B,0x36,0x00,0x2B,0x7C,0xFE,0x1F,0xC2,0x76,0x00,0x23, // 0x00000070 t..@`+6.+|...v.# + 0x7E,0xB7,0xCA,0x90,0x00,0xE6,0x0F,0x7C,0xC2,0xA1,0x00,0xFE,0x30,0xDA,0xA1,0x00, // 0x00000080 ~......|....0... + 0x71,0x7E,0xA9,0xCA,0xA8,0x00,0xE6,0x0F,0x7C,0xC2,0xA1,0x00,0xFE,0x30,0xD2,0xA8, // 0x00000090 q~......|....0.. + 0x00,0x16,0x01,0xFE,0x2C,0xDA,0xA5,0x00,0xAF,0x23,0xB5,0xC2,0x80,0x00,0xB4,0xB8, // 0x000000A0 ....,....#...... + 0xC2,0x80,0x00,0x79,0x07,0x4F,0xDA,0x74,0x00,0xD5,0xCD,0xA4,0x02,0xCD,0xEB,0x02, // 0x000000B0 ...y.O.t........ + 0xCD,0x5B,0x17,0xD1,0xCA,0xCB,0x00,0x7A,0xF6,0x02,0x57,0x3E,0x2F,0x32,0xC9,0x21, // 0x000000C0 .[.....z..W./2.! + 0xD3,0x62,0x01,0xFF,0x0F,0xFB,0x3E,0x08,0xA3,0x3E,0x7F,0xC2,0xE0,0x00,0x3E,0xFF, // 0x000000D0 .b.............. + 0xD3,0x82,0x0B,0x78,0xB1,0xC2,0xD6,0x00,0xD3,0x82,0x3A,0x68,0x20,0xB7,0xFA,0xF5, // 0x000000E0 ...x......:h ... + 0x00,0x7A,0xF6,0x04,0x57,0xD5,0xCD,0xA2,0x03,0xD1,0xC3,0x75,0x08,0xF5,0xDB,0x82, // 0x000000F0 .z..W......u.... + 0xE5,0xC5,0x47,0xD6,0x7C,0xFA,0x1A,0x01,0x67,0x24,0x3E,0x10,0x0F,0x07,0x25,0xC2, // 0x00000100 ..G.|...g$....%. + 0x0D,0x01,0x21,0x68,0x20,0xB6,0x77,0xC3,0x2D,0x01,0x21,0x68,0x20,0x3E,0x07,0xA6, // 0x00000110 ..!h .w.-.!h ... + 0xFE,0x04,0xF2,0x2D,0x01,0x34,0x21,0x6A,0x20,0xCD,0xDE,0x13,0x70,0xC1,0xE1,0xF1, // 0x00000120 ...-.4!j ...p... + 0xC9,0xE6,0x7F,0x4F,0x3A,0x7B,0x20,0xB7,0xC2,0xFF,0x01,0x79,0xFE,0x01,0xCA,0xC3, // 0x00000130 ...O:{ ....y.... + 0x01,0x3A,0xA7,0x21,0xE6,0x20,0xC2,0x75,0x01,0x3A,0x78,0x21,0xB7,0xC2,0x5F,0x01, // 0x00000140 .:.!. .u.:x!.._. + 0x79,0xFE,0x41,0xFA,0x5B,0x01,0x3E,0x1B,0xCD,0x18,0x0F,0x79,0xC3,0x0D,0x08,0x3E, // 0x00000150 y.A.[......y.... + 0x1B,0xCD,0x18,0x0F,0x79,0xFE,0x41,0xF2,0x5B,0x01,0x3E,0x3F,0xCD,0x18,0x0F,0x79, // 0x00000160 ....y.A.[..?...y + 0xC6,0x40,0xC3,0x0D,0x08,0x3A,0x78,0x21,0xB7,0xC2,0x9E,0x01,0x79,0xFE,0x41,0xFA, // 0x00000170 .@...:x!....y.A. + 0x5B,0x01,0xFE,0x50,0xFA,0x9E,0x01,0x3E,0x1B,0xCD,0x18,0x0F,0x3E,0x4F,0xCD,0x18, // 0x00000180 [..P.........O.. + 0x0F,0xC3,0x5B,0x01,0x3E,0x1B,0xCD,0x18,0x0F,0x3E,0x5B,0xC3,0x8E,0x01,0x3A,0xBC, // 0x00000190 ..[.......[...:. + 0x21,0xB7,0xCA,0xB5,0x01,0x79,0xFE,0x41,0xF2,0x87,0x01,0x3E,0x1B,0xCD,0x18,0x0F, // 0x000001A0 !....y.A........ + 0x3E,0x4F,0xC3,0x6C,0x01,0x79,0xFE,0x41,0xFA,0xAB,0x01,0xFE,0x50,0xFA,0x94,0x01, // 0x000001B0 .O.l.y.A....P... + 0xC3,0x87,0x01,0x21,0x15,0x08,0xE5,0x3A,0xA5,0x21,0xB7,0xC0,0xCD,0x53,0x08,0x01, // 0x000001C0 ...!...:.!...S.. + 0x0E,0x02,0x21,0x68,0x20,0x7E,0xE6,0x10,0xC2,0x00,0x09,0x7E,0xE6,0x20,0xCA,0xE4, // 0x000001D0 ..!h ~.....~. .. + 0x01,0x01,0xD2,0x00,0x3E,0x25,0xF6,0x08,0xB0,0xD3,0x01,0x3A,0x7F,0x20,0x81,0x4F, // 0x000001E0 .....%.....:. .O + 0xC5,0xCD,0x93,0x14,0xC1,0x3A,0x7F,0x20,0xB9,0xC2,0xF0,0x01,0xC3,0x94,0x03,0x21, // 0x000001F0 .....:. .......! + 0x12,0x08,0xE5,0xAF,0x32,0x30,0x21,0x32,0xB8,0x21,0x21,0xA3,0x21,0x79,0xD6,0x41, // 0x00000200 ....20!2.!!.!y.A + 0x47,0x7E,0xCA,0x22,0x02,0x05,0xCA,0x26,0x02,0x05,0xCA,0x15,0x18,0x05,0xCA,0x1E, // 0x00000210 G~."...&........ + 0x18,0xC9,0x3D,0xF8,0x77,0xC9,0x3C,0xFE,0x20,0xC8,0x77,0xC9,0x3A,0xA7,0x21,0x2F, // 0x00000220 ..=.w... .w.:.!/ + 0xE6,0x10,0x21,0xA5,0x21,0xB6,0xC2,0x41,0x08,0x3A,0xBF,0x21,0x01,0x11,0x02,0xA0, // 0x00000230 ..!.!..A.:.!.... + 0xC2,0x45,0x02,0x0E,0x13,0x79,0xD6,0x11,0x32,0xC4,0x21,0xCD,0x7E,0x0F,0xC3,0x12, // 0x00000240 .E...y..2.!.~... + 0x08,0xF3,0x31,0x4E,0x20,0x21,0x00,0x20,0xE5,0x7E,0x1F,0xDA,0x65,0x02,0xDB,0x42, // 0x00000250 ..1N !. .~..e..B + 0xE6,0x02,0xCA,0x69,0x02,0x3C,0x32,0xC8,0x21,0xCD,0xA2,0x03,0x3A,0x50,0x20,0x3D, // 0x00000260 ...i..2.!...:P = + 0x32,0x53,0x21,0xE1,0x7E,0x36,0x7F,0xB7,0xCA,0x98,0x02,0xF2,0x85,0x02,0x21,0xCB, // 0x00000270 2S!.~6........!. + 0x21,0x36,0x0A,0xE6,0x7F,0x32,0xBD,0x21,0xC6,0x30,0x2A,0xF6,0x20,0x77,0xFE,0x34, // 0x00000280 !6...2.!.0*. w.4 + 0xCA,0x98,0x02,0x3E,0x20,0x32,0xA5,0x21,0xCD,0xF2,0x0B,0x01,0x11,0x00,0xCD,0x7E, // 0x00000290 .... 2.!.......~ + 0x0F,0xC3,0xAE,0x03,0x21,0x4E,0x20,0x11,0xB2,0x0F,0x06,0x00,0xCD,0x83,0x10,0x2F, // 0x000002A0 ....!N ......../ + 0x32,0x04,0x21,0x21,0x04,0x20,0x22,0x52,0x20,0x21,0xD0,0x22,0x22,0xF6,0x20,0xC9, // 0x000002B0 2.!!. "R !."". . + 0xCD,0x15,0x0A,0x21,0x00,0x20,0x11,0xD9,0x02,0x06,0x12,0xCD,0x8B,0x03,0x21,0x00, // 0x000002C0 ...!. ........!. + 0x30,0x11,0x00,0x10,0x06,0xFF,0xC3,0x83,0x10,0x7F,0x70,0x03,0x7F,0xF2,0xD0,0x7F, // 0x000002D0 0.........p..... + 0x70,0x06,0x7F,0x70,0x0C,0x7F,0x70,0x0F,0x7F,0x70,0x03,0x21,0x12,0x02,0x22,0x2D, // 0x000002E0 p..p..p..p.!.."- + 0x21,0x3E,0x35,0x32,0x2C,0x21,0x3E,0x01,0x32,0x5B,0x20,0x32,0x76,0x21,0x21,0xFF, // 0x000002F0 !.52,!..2[ 2v!!. + 0x07,0x22,0x49,0x21,0x3E,0x02,0x32,0x73,0x20,0x3E,0xF7,0x32,0xFA,0x20,0xDB,0x42, // 0x00000300 ."I!..2s ..2. .B + 0xE6,0x04,0x3E,0x01,0xC2,0x1A,0x03,0x32,0x79,0x20,0x3E,0xFF,0x32,0x0E,0x21,0x32, // 0x00000310 .......2y ..2.!2 + 0xBA,0x21,0x26,0x80,0x6C,0x22,0xC0,0x20,0xC9,0x3E,0x40,0xD3,0x01,0x3A,0x58,0x21, // 0x00000320 .!&.l". ..@..:X! + 0xD3,0x02,0x3A,0xA4,0x21,0xD3,0x01,0xCD,0x94,0x03,0x3E,0x10,0x32,0xC9,0x21,0xD3, // 0x00000330 ..:.!.......2.!. + 0x62,0xC9,0x3A,0xA2,0x21,0xB7,0xCA,0x4B,0x03,0x3E,0x10,0x47,0xD3,0xC2,0x3A,0x7C, // 0x00000340 b.:.!..K...G..:| + 0x20,0xD3,0xC2,0xFE,0x20,0x21,0x70,0x09,0xC2,0x5E,0x03,0x21,0x70,0x03,0x22,0x01, // 0x00000350 ... !p..^.!p.". + 0x20,0x3A,0xA8,0x21,0xE6,0x10,0xC8,0x78,0xD3,0xC2,0xC9,0x3A,0xA6,0x21,0xE6,0x20, // 0x00000360 :.!...x...:.!. + 0xC2,0x75,0x03,0x3E,0x01,0xF6,0x0A,0xD3,0xA2,0x3A,0x5B,0x21,0xF6,0x0C,0xD3,0xA2, // 0x00000370 .u.......:[!.... + 0xC9,0x3A,0xA2,0x21,0xB7,0xCA,0x63,0x0B,0xC3,0x77,0x0B,0x1A,0x77,0x23,0x13,0x05, // 0x00000380 .:.!..c..w..w#.. + 0xC2,0x8B,0x03,0xC9,0x3A,0xA5,0x21,0xB7,0x3E,0x01,0xC2,0x9F,0x03,0x3E,0x05,0xC3, // 0x00000390 ....:.!......... + 0x7B,0x1F,0xCD,0x81,0x03,0xCD,0xDB,0x1D,0xCD,0x6B,0x03,0xC3,0x42,0x03,0xCD,0x88, // 0x000003A0 {........k..B... + 0x14,0xCD,0x87,0x05,0x21,0x77,0x21,0x7E,0xB7,0x36,0x00,0xC4,0x20,0x1A,0x3A,0xA5, // 0x000003B0 ....!w!~.6.. .:. + 0x21,0xB7,0xCA,0xAE,0x03,0xAF,0x32,0x44,0x21,0xC3,0xAE,0x03,0xF5,0xC5,0xE5,0xDB, // 0x000003C0 !.....2D!....... + 0x00,0xE6,0x7F,0xCA,0x3A,0x04,0x4F,0x3A,0xA5,0x21,0xB7,0xC2,0x3A,0x04,0xDB,0x01, // 0x000003D0 ....:.O:.!..:... + 0xE6,0x38,0xCA,0xED,0x03,0x0E,0x1A,0x3E,0x27,0xF6,0x10,0xD3,0x01,0x79,0xFE,0x7F, // 0x000003E0 .8......'....y.. + 0xCA,0x37,0x04,0x3A,0xA7,0x21,0xE6,0x10,0x79,0xCA,0x09,0x04,0x21,0xC2,0x21,0xFE, // 0x000003F0 .7.:.!..y...!.!. + 0x11,0xCA,0x3E,0x04,0xFE,0x13,0xCA,0x44,0x04,0x21,0xC0,0x20,0x4E,0x44,0x02,0x79, // 0x00000400 .......D.!. ND.y + 0x3C,0xE6,0xBF,0x77,0x47,0x3A,0xC1,0x20,0x90,0xC2,0x27,0x04,0x71,0x78,0x3C,0xE6, // 0x00000410 ...wG:. ..'.qx.. + 0xBF,0x6F,0x36,0x1A,0xC3,0x31,0x04,0xF2,0x2C,0x04,0xC6,0x40,0xFE,0x20,0xC2,0x37, // 0x00000420 .o6..1..,..@. .7 + 0x04,0x01,0x13,0x01,0xCD,0x7E,0x0F,0xCD,0x47,0x0E,0xE1,0xC1,0xF1,0xC9,0x3E,0xFE, // 0x00000430 .....~..G....... + 0xA6,0xC3,0x47,0x04,0x3E,0x01,0xB6,0x77,0xC3,0x37,0x04,0x30,0x29,0x31,0x21,0x32, // 0x00000440 ..G....w.7.0)1!2 + 0x40,0x33,0x23,0x34,0x24,0x35,0x25,0x36,0x5E,0x37,0x26,0x38,0x2A,0x39,0x28,0x2D, // 0x00000450 @3#4$5%6^7&8*9(- + 0x5F,0x3D,0x2B,0x60,0x7E,0x5B,0x7B,0x5D,0x7D,0x3B,0x3A,0x2F,0x3F,0x27,0x22,0x2C, // 0x00000460 _=+`~[{]};:/?'", + 0x3C,0x2E,0x3E,0x5C,0x7C,0x20,0x20,0x7F,0x7F,0x7F,0x00,0x70,0x6F,0x79,0x74,0x77, // 0x00000470 ...\| ....poytw + 0x71,0xC3,0x00,0x00,0x00,0x5D,0x5B,0x69,0x75,0x72,0x65,0x31,0xC4,0x00,0xC2,0x81, // 0x00000480 q....][iure1.... + 0x60,0x2D,0x39,0x37,0x34,0x33,0x1B,0xC1,0xD2,0xD0,0x08,0x3D,0x30,0x38,0x36,0x35, // 0x00000490 `-9743.....=0865 + 0x32,0x09,0xB7,0xD3,0xD1,0xB0,0x0A,0x5C,0x6C,0x6B,0x67,0x66,0x61,0xB8,0x8D,0xB2, // 0x000004A0 2......\lkgfa... + 0xB1,0x00,0x27,0x3B,0x6A,0x68,0x64,0x73,0xAE,0xAC,0xB5,0xB4,0x0D,0x2E,0x2C,0x6E, // 0x000004B0 ..';jhds......,n + 0x62,0x78,0x82,0xB9,0xB3,0xB6,0xAD,0x00,0x2F,0x6D,0x20,0x76,0x63,0x7A,0xFF,0xF5, // 0x000004C0 bx....../m vcz.. + 0xE5,0xD5,0xCD,0x4E,0x10,0xC5,0x3E,0x09,0xD3,0xA2,0xFB,0x3A,0x65,0x20,0xB7,0xC2, // 0x000004D0 ...N.......:e .. + 0x0B,0x05,0x21,0x51,0x20,0xB6,0xCA,0x3E,0x05,0x3E,0x01,0x32,0x65,0x20,0xB6,0x36, // 0x000004E0 ..!Q ......2e .6 + 0x00,0x3E,0x01,0x32,0x5B,0x20,0x3A,0x56,0x21,0xF2,0x05,0x05,0x3E,0x99,0x32,0x5B, // 0x000004F0 ...2[ :V!.....2[ + 0x20,0x3A,0x55,0x21,0x3D,0xCD,0x2F,0x12,0x32,0x7A,0x20,0x01,0x5B,0x20,0x0A,0x21, // 0x00000500 :U!=./.2z .[ .! + 0x5A,0x20,0x86,0x27,0xE6,0x0F,0x77,0x57,0xE6,0x03,0xD3,0xA2,0x7A,0x1F,0xA7,0x1F, // 0x00000510 Z .'..wW....z... + 0xF6,0x04,0xD3,0xA2,0x7A,0xB7,0xC2,0x3E,0x05,0x32,0x65,0x20,0x0A,0xB7,0x3A,0x56, // 0x00000520 ....z....2e ..:V + 0x21,0xFA,0x38,0x05,0x3A,0x55,0x21,0x3D,0xCD,0xCE,0x11,0x32,0x7A,0x20,0x21,0x78, // 0x00000530 !.8.:U!=...2z !x + 0x20,0x7E,0xB7,0xCA,0x4F,0x05,0x35,0xE6,0x04,0x0F,0x0F,0x0F,0x32,0x46,0x21,0x21, // 0x00000540 ~..O.5.....2F!! + 0x2C,0x21,0x7E,0x3D,0xC2,0x69,0x05,0x36,0x35,0x3E,0x08,0xD3,0xA2,0x21,0xCB,0x21, // 0x00000550 ,!~=.i.65....!.! + 0x7E,0xB7,0xCA,0x6A,0x05,0xD3,0xA2,0xEE,0x01,0x77,0x3E,0x40,0x32,0x48,0x21,0x21, // 0x00000560 ~..j.....w.@2H!! + 0x7F,0x20,0x34,0x3A,0xA3,0x21,0xD3,0x42,0x3A,0x58,0x21,0xD3,0x02,0x3A,0xC9,0x21, // 0x00000570 . 4:.!.B:X!..:.! + 0xD3,0x62,0xC1,0xD1,0xE1,0xF1,0xC9,0x3A,0xA5,0x21,0x21,0x7B,0x20,0xB6,0xC0,0xCD, // 0x00000580 .b.....:.!!{ ... + 0x75,0x06,0xC8,0x47,0x3A,0x7B,0x20,0xB7,0x78,0xC2,0xA9,0x05,0x3A,0x79,0x20,0x07, // 0x00000590 u..G:{ .x...:y . + 0x78,0xDA,0xA9,0x05,0xFE,0x20,0xDA,0xB2,0x08,0x2A,0x40,0x21,0xE9,0xFE,0x1B,0xC2, // 0x000005A0 x.... ...*@!.... + 0xCC,0x05,0x21,0xB8,0x05,0xC3,0x18,0x0A,0xFE,0x32,0xC2,0xC5,0x05,0x3E,0x01,0x32, // 0x000005B0 ..!......2.....2 + 0x79,0x20,0xC3,0x15,0x0A,0x47,0x3E,0x1B,0xCD,0xD2,0x05,0x78,0xCD,0xD2,0x05,0xC3, // 0x000005C0 y ...G.....x.... + 0x62,0x0C,0x4F,0xC5,0xCD,0x88,0x14,0xC1,0xDB,0x42,0xE6,0x04,0xC2,0xD3,0x05,0x79, // 0x000005D0 b.O......B.....y + 0xD3,0xE2,0xC9,0xCD,0x46,0x0C,0xF5,0xFE,0x7F,0xCA,0x73,0x06,0xE5,0xD5,0xC5,0x4F, // 0x000005E0 ....F.....s....O + 0x21,0xFC,0x20,0x56,0x23,0x7A,0x85,0x6F,0x7A,0xD6,0x02,0xF2,0xFF,0x05,0x7A,0x32, // 0x000005F0 !. V#z.oz.....z2 + 0xFC,0x20,0x56,0x3A,0xFA,0x20,0xB2,0x47,0x7A,0x07,0x79,0xD2,0x16,0x06,0xD6,0x5F, // 0x00000600 . V:. .Gz.y...._ + 0xFE,0x20,0xD2,0x16,0x06,0x4F,0x7A,0xE6,0x40,0x79,0xCA,0x24,0x06,0xFE,0x23,0xC2, // 0x00000610 . ...Oz.@y.$..#. + 0x24,0x06,0x0E,0x1E,0x3A,0xFB,0x20,0xB1,0x4F,0x3A,0x42,0x21,0xB7,0xCA,0x41,0x06, // 0x00000620 $...:. .O:B!..A. + 0x21,0xF8,0x20,0x3A,0x53,0x21,0xBE,0xC2,0x41,0x06,0x36,0x00,0xC5,0xCD,0x55,0x09, // 0x00000630 !. :S!..A.6...U. + 0xC1,0x2A,0xF6,0x20,0x71,0x7C,0xC6,0x10,0x67,0x70,0x78,0x32,0xF5,0x20,0x21,0xF4, // 0x00000640 .*. q|..gpx2. !. + 0x20,0x71,0x21,0xF8,0x20,0x3A,0x53,0x21,0xBE,0xC2,0x68,0x06,0x79,0x32,0xF4,0x20, // 0x00000650 q!. :S!..h.y2. + 0x3A,0xA8,0x21,0xE6,0x40,0xC3,0x6D,0x06,0x34,0xCD,0x36,0x16,0xAF,0x32,0x42,0x21, // 0x00000660 :.!.@.m.4.6..2B! + 0xC1,0xD1,0xE1,0xF1,0xC9,0x3A,0xC4,0x21,0xB7,0xC2,0x85,0x06,0x21,0xC0,0x20,0x7E, // 0x00000670 .....:.!....!. ~ + 0x23,0x96,0xC2,0x87,0x06,0xAF,0xC9,0x6E,0x26,0x20,0x56,0x21,0xC1,0x20,0x7E,0x3C, // 0x00000680 #......n& V!. ~. + 0xE6,0xBF,0xF6,0x80,0x77,0x2B,0x96,0xF2,0x9C,0x06,0xC6,0x40,0xFE,0x30,0xC2,0xA7, // 0x00000690 ....w+.....@.0.. + 0x06,0x01,0x11,0x01,0xCD,0x7E,0x0F,0x7A,0xB7,0xC9,0x3A,0x68,0x20,0x5F,0xE6,0x80, // 0x000006A0 .....~.z..:h _.. + 0xC8,0x21,0x41,0x08,0xE5,0x7B,0xE6,0x07,0xFE,0x04,0xFA,0xC2,0x06,0xAF,0x32,0x67, // 0x000006B0 .!A..{........2g + 0x20,0xC9,0x57,0x0E,0x00,0x06,0x04,0x21,0x6E,0x20,0x7E,0xB7,0xCA,0xE8,0x06,0xE5, // 0x000006C0 .W....!n ~..... + 0xC5,0x06,0x03,0x21,0x6A,0x20,0xBE,0xCA,0xDF,0x06,0x23,0x05,0xF2,0xD6,0x06,0xC1, // 0x000006D0 ...!j ....#..... + 0xE1,0xCA,0xE7,0x06,0x36,0x00,0x0D,0x0C,0x23,0x05,0xC2,0xCA,0x06,0x7B,0xE6,0x08, // 0x000006E0 ....6...#....{.. + 0xC0,0xB2,0xC2,0xFB,0x06,0x3E,0xE1,0x32,0x72,0x20,0xC9,0x21,0x47,0x07,0xE5,0x3A, // 0x000006F0 .......2r .!G..: + 0x72,0x20,0x3C,0xCA,0x09,0x07,0x32,0x72,0x20,0x3A,0xA6,0x21,0xE6,0x40,0xC8,0x7B, // 0x00000700 r ....2r :.!.@.{ + 0xE6,0x10,0xC0,0x3A,0x50,0x21,0x21,0x5F,0x08,0x06,0x05,0xBE,0xC8,0x23,0x05,0xC2, // 0x00000710 ...:P!!_.....#.. + 0x1B,0x07,0x21,0x73,0x20,0x35,0xC0,0x36,0x02,0x3A,0x72,0x20,0xFE,0xFF,0xC0,0x79, // 0x00000720 ..!s 5.6.:r ...y + 0xFE,0x01,0xC0,0x06,0x04,0x21,0x6E,0x20,0x7E,0xB7,0xC2,0x43,0x07,0x23,0x05,0xC2, // 0x00000730 .....!n ~..C.#.. + 0x38,0x07,0xC9,0xE1,0xC3,0x76,0x07,0x79,0xFE,0x04,0xF0,0x01,0x6A,0x20,0x21,0x6E, // 0x00000740 8....v.y....j !n + 0x20,0x7E,0xB7,0xCA,0x5B,0x07,0x0A,0xBE,0xCA,0x66,0x07,0x23,0x7D,0xFE,0x72,0xC2, // 0x00000750 ~..[....f.#}.r. + 0x51,0x07,0x0A,0xC3,0x6C,0x07,0x03,0x15,0xC2,0x4E,0x07,0xC9,0x47,0x3A,0x67,0x20, // 0x00000760 Q...l....N..G:g + 0xB8,0x78,0x32,0x67,0x20,0xC0,0xE1,0x32,0x50,0x21,0xFE,0x7B,0xCA,0x1A,0x1A,0xFE, // 0x00000770 .x2g ..2P!.{.... + 0x6A,0xCA,0x2C,0x02,0x43,0x5F,0x3A,0x44,0x21,0xB7,0xC2,0x41,0x08,0x7B,0xE6,0xF0, // 0x00000780 j.,.C_:D!..A.{.. + 0x0F,0x0F,0x57,0x0F,0x0F,0x82,0x57,0x7B,0x92,0x21,0x76,0x04,0x5F,0x16,0x00,0x19, // 0x00000790 ..W...W{.!v._... + 0x4E,0x79,0xB7,0xFA,0x31,0x01,0xFE,0x20,0xDA,0xFF,0x07,0x78,0xE6,0x70,0xCA,0xFF, // 0x000007A0 Ny..1.. ...x.p.. + 0x07,0x79,0xFE,0x7B,0xD2,0xC2,0x07,0xFE,0x61,0xDA,0xC2,0x07,0xE6,0xDF,0x4F,0xC3, // 0x000007B0 .y.{....a.....O. + 0xD7,0x07,0x78,0xE6,0x30,0xCA,0xD7,0x07,0x21,0x4B,0x04,0x7E,0xB9,0xCA,0xD5,0x07, // 0x000007C0 ..x.0...!K.~.... + 0x23,0x23,0xC3,0xCB,0x07,0x23,0x4E,0x78,0xE6,0x10,0xCA,0xFF,0x07,0x79,0xFE,0x41, // 0x000007D0 ##...#Nx.....y.A + 0xDA,0xE8,0x07,0xFE,0x5B,0xDA,0xFC,0x07,0xFE,0x3F,0xCA,0xFC,0x07,0xFE,0x20,0xCA, // 0x000007E0 ....[....?.... . + 0xFC,0x07,0xFE,0x7B,0xDA,0x41,0x08,0xFE,0x7F,0xD2,0x41,0x08,0xE6,0x9F,0x4F,0xB1, // 0x000007F0 ...{.A....A...O. + 0xF5,0x3A,0xA7,0x21,0xE6,0x80,0xCA,0x0C,0x08,0x32,0x54,0x21,0xF1,0xF6,0x80,0xCD, // 0x00000800 .:.!.....2T!.... + 0x18,0x0F,0xCD,0x53,0x08,0x3A,0x50,0x21,0x16,0x04,0x21,0x6E,0x20,0xBE,0xCA,0x41, // 0x00000810 ...S.:P!..!n ..A + 0x08,0x23,0x15,0xC2,0x1D,0x08,0x16,0x04,0x21,0x6E,0x20,0x7E,0xB7,0xCA,0x38,0x08, // 0x00000820 .#......!n ~..8. + 0x23,0x15,0xC2,0x2B,0x08,0xC3,0x41,0x08,0x3A,0x50,0x21,0x77,0x3E,0xE1,0x32,0x72, // 0x00000830 #..+..A.:P!w..2r + 0x20,0xAF,0x21,0x68,0x20,0x56,0x77,0x23,0x72,0x23,0x16,0x04,0x77,0x23,0x15,0xC2, // 0x00000840 .!h Vw#r#..w#.. + 0x4C,0x08,0xC9,0x3A,0xA7,0x21,0xE6,0x40,0xC8,0x3E,0x80,0x32,0x47,0x21,0xC9,0x7B, // 0x00000850 L..:.!.@...2G!.{ + 0x2A,0x6A,0x3A,0x64,0x3A,0x30,0x21,0xD6,0x02,0xC0,0x57,0x3A,0x31,0x21,0x5F,0x3E, // 0x00000860 *j:d:0!...W:1!_. + 0x01,0xA3,0xC2,0x3D,0x00,0x7A,0xB7,0xC4,0xA7,0x08,0xD5,0xCD,0xBE,0x17,0xD1,0x3E, // 0x00000870 ...=.z.......... + 0x02,0xA3,0xC4,0x11,0x1F,0x3E,0x08,0xDC,0xA7,0x08,0x3E,0x04,0xA3,0xC4,0x62,0x1F, // 0x00000880 ..............b. + 0x3E,0x10,0xDC,0xA7,0x08,0x7A,0xB7,0xC2,0xA0,0x08,0x3E,0x08,0xA3,0xC2,0x6F,0x08, // 0x00000890 .....z........o. + 0x7A,0x32,0x00,0x20,0xC3,0x51,0x02,0xB2,0x57,0x3E,0x08,0xA3,0xC8,0x3E,0x80,0xB2, // 0x000008A0 z2. .Q..W....... + 0x57,0xC9,0xFE,0x1B,0xCA,0x9E,0x09,0xFE,0x10,0xDA,0xD4,0x08,0x5F,0xD6,0x18,0xE6, // 0x000008B0 W..........._... + 0xFD,0xC0,0x7B,0xFE,0x1A,0xCA,0xCB,0x08,0xFE,0x18,0xC0,0xCD,0x15,0x0A,0x3E,0x02, // 0x000008C0 ..{............. + 0xC3,0xE6,0x05,0xC9,0xD6,0x05,0xF8,0x21,0xE5,0x08,0x87,0x5F,0x16,0x00,0x19,0x5E, // 0x000008D0 .......!..._...^ + 0x23,0x56,0xEB,0xAF,0xE9,0x00,0x09,0x97,0x09,0x38,0x09,0x41,0x09,0xF9,0x0D,0x55, // 0x000008E0 #V.......8.A...U + 0x09,0x55,0x09,0x55,0x09,0x4B,0x09,0xFB,0x08,0xFC,0x08,0x3C,0x32,0xFC,0x20,0xC9, // 0x000008F0 .U.U.K......2. . + 0x3A,0xA5,0x21,0xB7,0xC0,0x2A,0x7B,0x21,0x7C,0xBD,0xC8,0x21,0x72,0x21,0x3E,0x10, // 0x00000900 :.!..*{!|..!r!.. + 0xB6,0x77,0xC9,0x21,0x72,0x21,0x7E,0xE6,0xEF,0x77,0x21,0x7B,0x21,0x46,0x23,0x0E, // 0x00000910 .w.!r!~..w!{!F#. + 0x14,0x11,0x5C,0x21,0x7E,0xB8,0xCA,0x30,0x09,0x12,0x13,0x23,0x0D,0xC2,0x24,0x09, // 0x00000920 ..\!~..0...#..$. + 0x1B,0x1A,0xF6,0x80,0x12,0xC3,0xF3,0x0E,0x21,0x78,0x20,0x7E,0xC6,0x08,0xD8,0x77, // 0x00000930 ........!x ~...w + 0xC9,0x21,0xF8,0x20,0x7E,0xB7,0xC8,0x35,0xC3,0x36,0x16,0xAF,0x32,0xF8,0x20,0xC3, // 0x00000940 .!. ~..5.6..2. . + 0x36,0x16,0xCD,0x4B,0x09,0x3A,0xA8,0x21,0xE6,0x20,0xC4,0x4B,0x09,0x21,0xF9,0x20, // 0x00000950 6..K.:.!. .K.!. + 0x56,0x3A,0x56,0x21,0xBA,0xCA,0x73,0x09,0xCD,0xBF,0x11,0x78,0xBA,0xC8,0x14,0x72, // 0x00000960 V:V!..s....x...r + 0xC3,0x36,0x16,0x3A,0xA6,0x21,0xE6,0x80,0xCA,0x98,0x09,0x0E,0x01,0xCD,0x8E,0x10, // 0x00000970 .6.:.!.......... + 0x3E,0xFF,0x32,0xC3,0x21,0x34,0xCD,0xE6,0x0F,0x3A,0xC3,0x21,0xB7,0xC2,0x89,0x09, // 0x00000980 ..2.!4...:.!.... + 0x32,0xF4,0x20,0x3D,0x32,0xF5,0x20,0xC9,0xCD,0x1A,0x10,0xC3,0x12,0x10,0xAF,0x32, // 0x00000990 2. =2. ........2 + 0x7D,0x20,0x32,0xB8,0x21,0x21,0xAB,0x09,0xC3,0x18,0x0A,0xFE,0x30,0xD2,0xBD,0x09, // 0x000009A0 } 2.!!......0... + 0x21,0x7D,0x20,0x4F,0x7E,0xB7,0xCA,0xBB,0x09,0x0E,0xFF,0x71,0xC9,0x32,0x7E,0x20, // 0x000009B0 !} O~......q.2~ + 0x21,0x15,0x0A,0xE5,0x3A,0x7D,0x20,0xB7,0xC2,0xDC,0x09,0x3A,0xA7,0x21,0xE6,0x20, // 0x000009C0 !...:} ....:.!. + 0x21,0x50,0x0A,0xC2,0xD9,0x09,0x21,0x1C,0x0A,0xC3,0xF7,0x09,0x47,0x3A,0xA7,0x21, // 0x000009D0 !P....!.....G:.! + 0xE6,0x20,0x78,0xC8,0xFE,0x28,0x11,0xFD,0x20,0xCA,0x32,0x0C,0xFE,0x29,0xCA,0x31, // 0x000009E0 . x..(.. .2..).1 + 0x0C,0xFE,0x23,0x21,0x7B,0x0A,0xC0,0x11,0xB9,0x21,0xAF,0x12,0x3A,0x7E,0x20,0x4F, // 0x000009F0 ..#!{....!..:~ O + 0xAF,0x86,0xC8,0x23,0xB9,0xCA,0x0D,0x0A,0x23,0x23,0xC3,0x00,0x0A,0x12,0x7E,0x23, // 0x00000A00 ...#....##....~# + 0x66,0x6F,0xAF,0xE9,0xE1,0x21,0xE6,0x05,0x22,0x40,0x21,0xC9,0x41,0x9B,0x0A,0x42, // 0x00000A10 fo...!.."@!.A..B + 0x9B,0x0A,0x43,0x9B,0x0A,0x44,0x9B,0x0A,0x46,0x0A,0x0C,0x47,0x0F,0x0C,0x48,0x96, // 0x00000A20 ..C..D..F..G..H. + 0x0A,0x49,0xA3,0x0B,0x4A,0x9B,0x0A,0x4B,0x9B,0x0A,0x59,0x11,0x0B,0x5A,0xC6,0x0C, // 0x00000A30 .I..J..K..Y..Z.. + 0x3D,0xDF,0x0B,0x3E,0xE5,0x0B,0x31,0x57,0x0C,0x3C,0xEB,0x0B,0x5D,0x60,0x0D,0x00, // 0x00000A40 =.....1W....]`.. + 0x63,0x00,0x00,0x45,0x52,0x09,0x4D,0xA3,0x0B,0x31,0x57,0x0C,0x5B,0x8E,0x0A,0x48, // 0x00000A50 c..ER.M..1W.[..H + 0xDF,0x0D,0x44,0x55,0x09,0x37,0x68,0x0C,0x38,0x71,0x0C,0x3D,0xDF,0x0B,0x3E,0xE5, // 0x00000A60 ..DU.7h.8q.=.... + 0x0B,0x5A,0xC6,0x0C,0x4E,0x46,0x0C,0x4F,0x46,0x0C,0x00,0x33,0xA8,0x12,0x34,0xAC, // 0x00000A70 .Z..NF.OF..3..4. + 0x12,0x35,0x4A,0x13,0x36,0xA4,0x12,0x37,0x60,0x0D,0x38,0xA7,0x0D,0x00,0x21,0xC2, // 0x00000A80 .5J.6..7`.8...!. + 0x16,0x22,0x40,0x21,0xE1,0xC9,0x3E,0x48,0x32,0x7E,0x20,0x21,0x00,0x00,0x22,0x30, // 0x00000A90 ."@!...H2~ !.."0 + 0x21,0xE1,0x21,0x15,0x0A,0xE5,0x3A,0x7D,0x20,0xB7,0xC0,0x21,0xD9,0x0A,0xCD,0xF7, // 0x00000AA0 !.!...:} ..!.... + 0x09,0x3A,0xB9,0x21,0xB7,0xC0,0x21,0x30,0x21,0x3A,0x4B,0x21,0xB7,0x5F,0xC2,0xC2, // 0x00000AB0 .:.!..!0!:K!._.. + 0x0A,0x1C,0x7E,0xE5,0xD5,0x21,0xF5,0x0A,0x47,0xCD,0xF7,0x09,0xD1,0xE1,0x3A,0xB9, // 0x00000AC0 ..~..!..G.....:. + 0x21,0xB7,0xC8,0x23,0x1D,0xC2,0xC2,0x0A,0xC9,0x44,0x1E,0x18,0x42,0x07,0x18,0x43, // 0x00000AD0 !..#.....D..B..C + 0x15,0x18,0x48,0x53,0x18,0x41,0xFE,0x17,0x72,0xA6,0x15,0x66,0x53,0x18,0x78,0xDF, // 0x00000AE0 ..HS.A..r..fS.x. + 0x12,0x79,0x64,0x08,0x00,0x63,0xC1,0x0C,0x71,0x16,0x0C,0x6E,0x03,0x0D,0x4A,0x41, // 0x00000AF0 .yd..c..q..n..JA + 0x15,0x4B,0xFC,0x14,0x6C,0xED,0x13,0x6D,0x7F,0x0C,0x68,0xF2,0x13,0x67,0xCF,0x0D, // 0x00000B00 .K..l..m..h..g.. + 0x00,0x21,0x19,0x0B,0x22,0x40,0x21,0xE1,0xC9,0x47,0xFE,0x20,0xDA,0xB2,0x08,0xFE, // 0x00000B10 .!.."@!..G. .... + 0x1B,0x21,0x51,0x21,0xC2,0x2E,0x0B,0x21,0xAB,0x09,0x22,0x40,0x21,0xC9,0x7E,0xB7, // 0x00000B20 .!Q!...!.."@!.~. + 0xC2,0x42,0x0B,0x36,0x01,0x78,0xD6,0x20,0x32,0x52,0x21,0x21,0x19,0x0B,0x22,0x40, // 0x00000B30 .B.6.x. 2R!!.."@ + 0x21,0xC9,0x36,0x00,0x78,0xD6,0x20,0xFE,0x50,0xD2,0x4F,0x0B,0x32,0xF8,0x20,0xCD, // 0x00000B40 !.6.x. .P.O.2. . + 0xBF,0x11,0x3A,0x52,0x21,0x04,0xB8,0xD2,0x5D,0x0B,0x32,0xF9,0x20,0xCD,0x15,0x0A, // 0x00000B50 ..:R!...].2. ... + 0xC3,0x36,0x16,0xAF,0x32,0xA2,0x21,0xCD,0xAD,0x10,0x0E,0x50,0xCD,0xF9,0x10,0xCD, // 0x00000B60 .6..2.!....P.... + 0x4C,0x11,0x0E,0x50,0xC3,0x89,0x0B,0x3E,0x01,0x32,0xA2,0x21,0xCD,0xAD,0x10,0x0E, // 0x00000B70 L..P.....2.!.... + 0x84,0xCD,0xF9,0x10,0xCD,0x4C,0x11,0x0E,0x84,0xAF,0x32,0x55,0x21,0xCD,0xBF,0x11, // 0x00000B80 .....L....2U!... + 0x78,0x32,0x56,0x21,0x79,0x32,0x50,0x20,0xCD,0x42,0x03,0xCD,0x48,0x18,0x3E,0x01, // 0x00000B90 x2V!y2P .B..H... + 0xC3,0xAA,0x0F,0x21,0xF9,0x20,0x3A,0x55,0x21,0x47,0x7E,0xB8,0xCA,0xB8,0x0B,0xB7, // 0x00000BA0 ...!. :U!G~..... + 0xC8,0x21,0xF9,0x20,0x35,0xC3,0x36,0x16,0x3A,0xA6,0x21,0xE6,0x80,0xCA,0xD9,0x0B, // 0x00000BB0 .!. 5.6.:.!..... + 0x0E,0x01,0xCD,0x8E,0x10,0x3E,0xFF,0x32,0xC3,0x21,0x35,0xCD,0xEB,0x0F,0x3A,0xC3, // 0x00000BC0 .......2.!5...:. + 0x21,0xB7,0xC2,0xCE,0x0B,0x32,0xF4,0x20,0xC9,0xCD,0x2D,0x10,0xC3,0x12,0x10,0x21, // 0x00000BD0 !....2. ..-....! + 0x78,0x21,0x36,0x01,0xC9,0x21,0x78,0x21,0x36,0x00,0xC9,0x21,0xA7,0x21,0x7E,0xF6, // 0x00000BE0 x!6..!x!6..!.!~. + 0x20,0x77,0x3A,0xA8,0x21,0xE6,0x80,0x26,0x08,0xCA,0xFE,0x0B,0x26,0x48,0x6C,0x22, // 0x00000BF0 w:.!..&....&Hl" + 0xFD,0x20,0x22,0xFF,0x20,0xAF,0x32,0xFC,0x20,0xC9,0x26,0x88,0xC3,0x11,0x0C,0x26, // 0x00000C00 . ". .2. .&....& + 0x08,0x6C,0x22,0xFD,0x20,0xC9,0x21,0x45,0x21,0x78,0xB7,0xC2,0x23,0x0C,0x7E,0xE6, // 0x00000C10 .l". .!E!x..#.~. + 0xF0,0x77,0xC9,0xD6,0x05,0xF0,0x47,0xAF,0x37,0x17,0x04,0xC2,0x29,0x0C,0xB6,0x77, // 0x00000C20 .w....G.7...)..w + 0xC9,0x13,0x3A,0x7E,0x20,0x47,0x21,0x4A,0x0C,0x23,0x23,0x7E,0xB7,0xC8,0xB8,0xC2, // 0x00000C30 ..:~ G!J.##~.... + 0x39,0x0C,0x23,0x7E,0x12,0xC9,0x21,0xFC,0x20,0x34,0x34,0xC9,0x41,0x48,0x42,0x08, // 0x00000C40 9.#~..!. 44.AHB. + 0x30,0x88,0x31,0x00,0x32,0x80,0x00,0x21,0x79,0x20,0x7E,0xB7,0xCA,0x14,0x0A,0x36, // 0x00000C50 0.1.2..!y ~....6 + 0x81,0xE1,0x21,0xAD,0x05,0xC3,0x18,0x0A,0x21,0x02,0x21,0x11,0xF8,0x20,0xC3,0x77, // 0x00000C60 ..!.....!.!.. .w + 0x0C,0x21,0xF8,0x20,0x11,0x02,0x21,0x06,0x0B,0xCD,0x8B,0x03,0xC3,0x36,0x16,0x21, // 0x00000C70 .!. ..!......6.! + 0x8A,0x0C,0x78,0xB7,0xCA,0x97,0x0C,0xC3,0xFF,0x09,0x01,0xA2,0x0C,0x04,0xA7,0x0C, // 0x00000C80 ..x............. + 0x05,0xB3,0x0C,0x07,0xBB,0x0C,0x00,0x32,0xFB,0x20,0x21,0xFA,0x20,0x7E,0xF6,0xF7, // 0x00000C90 .......2. !. ~.. + 0x77,0xC9,0x3E,0xFB,0xC3,0xB5,0x0C,0x3A,0xC8,0x21,0xB7,0xC2,0xBB,0x0C,0x3E,0xFD, // 0x00000CA0 w......:.!...... + 0xC3,0xB5,0x0C,0x3E,0xFE,0x21,0xFA,0x20,0xA6,0x77,0xC9,0x3E,0x80,0x32,0xFB,0x20, // 0x00000CB0 .....!. .w...2. + 0xC9,0x3A,0x30,0x21,0xB7,0xC0,0x21,0x72,0x21,0x7E,0xF6,0x04,0x77,0xC9,0x3E,0xFB, // 0x00000CC0 .:0!..!r!~..w... + 0xCD,0xBF,0x0D,0x3A,0xA7,0x21,0xE6,0x20,0xC2,0xE3,0x0C,0x36,0xDA,0x2B,0x36,0x2F, // 0x00000CD0 ...:.!. ...6.+6/ + 0xC3,0xF3,0x0E,0x36,0x3F,0x23,0x3E,0x31,0xCD,0xB9,0x0D,0xDB,0x42,0x47,0x2F,0xE6, // 0x00000CE0 ...6?#.1....BG/. + 0x06,0x4F,0x78,0xE6,0x08,0xCA,0xF9,0x0C,0x0C,0x79,0xF6,0x30,0x77,0x23,0x36,0xE3, // 0x00000CF0 .Ox......y.0w#6. + 0xC3,0xF3,0x0E,0x3A,0xB8,0x21,0xB7,0xC0,0x78,0x21,0x72,0x21,0xFE,0x06,0xCA,0x32, // 0x00000D00 ...:.!..x!r!...2 + 0x0D,0xFE,0x05,0xC0,0x7E,0xF6,0x08,0x77,0xC9,0x3E,0xF7,0xCD,0xBF,0x0D,0x06,0x03, // 0x00000D10 ....~..w........ + 0x3A,0xBD,0x21,0xB7,0x78,0xC2,0x29,0x0D,0xAF,0xF6,0x30,0x77,0x23,0x36,0xEE,0xC3, // 0x00000D20 :.!.x.)...0w#6.. + 0xF3,0x0E,0x7E,0xF6,0x01,0x77,0xC9,0x3E,0xFE,0xCD,0xBF,0x0D,0x3A,0xF9,0x20,0x47, // 0x00000D30 ..~..w......:. G + 0x3A,0x01,0x21,0xB7,0xCA,0x4A,0x0D,0x3A,0x55,0x21,0x4F,0x78,0x91,0x3C,0xCD,0x7A, // 0x00000D40 :.!..J.:U!Ox...z + 0x0D,0xCD,0xBB,0x0D,0x3A,0xF8,0x20,0x3C,0xCD,0x7A,0x0D,0x36,0xD2,0xC3,0xF3,0x0E, // 0x00000D50 ....:. ..z.6.... + 0xDB,0x42,0xE6,0x04,0xC0,0x0E,0x81,0xCD,0x8E,0x10,0x3E,0xFF,0xD3,0xE2,0x00,0xCD, // 0x00000D60 .B.............. + 0x88,0x14,0xDB,0x42,0xE6,0x04,0xC2,0x6F,0x0D,0xC9,0x5F,0x16,0x30,0x0E,0x64,0xCD, // 0x00000D70 ...B...o.._.0.d. + 0x99,0x0D,0xCA,0x88,0x0D,0x77,0x23,0x15,0x0E,0x0A,0xCD,0x99,0x0D,0xCA,0x93,0x0D, // 0x00000D80 .....w#......... + 0x15,0x77,0x23,0x7B,0xF6,0x30,0x77,0x23,0xC9,0x7B,0x06,0x30,0x04,0x91,0xF2,0x9C, // 0x00000D90 .w#{.0w#.{.0.... + 0x0D,0x81,0x05,0x5F,0x78,0xBA,0xC9,0x3E,0x45,0x32,0xC7,0x21,0xCD,0x81,0x03,0x3E, // 0x00000DA0 ..._x...E2.!.... + 0x45,0x32,0xF4,0x20,0xAF,0x32,0xC7,0x21,0xC9,0x77,0x23,0x36,0x3B,0x23,0xC9,0x21, // 0x00000DB0 E2. .2.!.w#6;#.! + 0x72,0x21,0xA6,0x77,0x21,0x5C,0x21,0x36,0x1B,0x23,0x36,0x5B,0x23,0xC9,0x42,0x78, // 0x00000DC0 r!.w!\!6.#6[#.Bx + 0xB7,0xC2,0xD8,0x0D,0xCD,0xE5,0x0D,0xC9,0xFE,0x03,0xC0,0xCD,0xEC,0x0D,0xC9,0xCD, // 0x00000DD0 ................ + 0x23,0x0E,0xB6,0x77,0xC9,0xCD,0x23,0x0E,0x2F,0xA6,0x77,0xC9,0x21,0x91,0x21,0xAF, // 0x00000DE0 #..w..#./.w.!.!. + 0x77,0x23,0x7D,0xFE,0xA2,0xC2,0xEF,0x0D,0xC9,0xCD,0x23,0x0E,0x0C,0xB7,0x1F,0xDA, // 0x00000DF0 w#}.......#..... + 0x0B,0x0E,0x57,0xA6,0x7A,0xCA,0xFC,0x0D,0xC3,0x15,0x0E,0x23,0x7D,0xFE,0xA2,0x3E, // 0x00000E00 ..W.z......#}... + 0x80,0xC2,0x02,0x0E,0x0D,0x3A,0x53,0x21,0xB9,0xDA,0x1D,0x0E,0x79,0x32,0xF8,0x20, // 0x00000E10 .....:S!....y2. + 0xC3,0x36,0x16,0x3A,0xF8,0x20,0x4F,0x57,0x21,0x91,0x21,0x0F,0x0F,0x0F,0xE6,0x1F, // 0x00000E20 .6.:. OW!.!..... + 0x85,0x6F,0x7A,0xE6,0x07,0x57,0x3E,0x80,0x15,0xF8,0x0F,0xC3,0x38,0x0E,0x3A,0xA5, // 0x00000E30 .oz..W......8.:. + 0x21,0x21,0x7B,0x20,0xB6,0x47,0xC0,0xDB,0x42,0xE6,0x01,0xC8,0x21,0xC1,0x21,0x7E, // 0x00000E40 !!{ .G..B...!.!~ + 0xB7,0x36,0x00,0x2B,0xC8,0x7E,0xD3,0x00,0xC9,0xF3,0xCD,0x3E,0x0E,0xFB,0x78,0xB7, // 0x00000E50 .6.+.~........x. + 0xC2,0x6D,0x0E,0xDB,0x42,0xE6,0x01,0xC8,0x3A,0xC2,0x21,0xB7,0xC0,0x21,0x73,0x21, // 0x00000E60 .m..B...:.!..!s! + 0x7E,0xB7,0xCA,0x79,0x0E,0x2A,0x74,0x21,0xE9,0x3A,0x72,0x21,0xB7,0xC8,0x1E,0x00, // 0x00000E70 ~..y.*t!.:r!.... + 0x1F,0xDA,0x89,0x0E,0x1C,0x1C,0xC3,0x80,0x0E,0x16,0x00,0x21,0x94,0x0E,0x19,0x7E, // 0x00000E80 ...........!...~ + 0x23,0x66,0x6F,0xE9,0x37,0x0D,0xF0,0x12,0xCE,0x0C,0x19,0x0D,0x13,0x09,0xA0,0x0E, // 0x00000E90 #fo.7........... + 0x21,0x5C,0x20,0x46,0x54,0x5D,0x13,0x0E,0x08,0x1A,0x77,0x23,0x13,0x0D,0xC2,0xA9, // 0x00000EA0 !\ FT]....w#.... + 0x0E,0x21,0x43,0x21,0x35,0x7E,0x4F,0xC2,0xC1,0x0E,0x21,0x72,0x21,0x7E,0xE6,0xDF, // 0x00000EB0 .!C!5~O...!r!~.. + 0x77,0x3A,0xA5,0x21,0xB7,0xC2,0xCF,0x0E,0x79,0xFE,0x05,0xD2,0xD2,0x0E,0xAF,0x32, // 0x00000EC0 w:.!....y......2 + 0x44,0x21,0x78,0xE6,0x80,0x17,0x3F,0x1F,0x32,0x73,0x21,0x21,0xA0,0x0E,0x22,0x74, // 0x00000ED0 D!x...?.2s!!.."t + 0x21,0x78,0xE6,0x7F,0x47,0x3A,0xA5,0x21,0x21,0x7B,0x20,0xB6,0x78,0xC2,0x93,0x05, // 0x00000EE0 !x..G:.!!{ .x... + 0xD3,0x00,0xC9,0x21,0x01,0x0F,0x22,0x74,0x21,0xAF,0x32,0x71,0x21,0x3C,0x32,0x73, // 0x00000EF0 ...!.."t!.2q!.2s + 0x21,0x21,0x71,0x21,0x7E,0x34,0x21,0x5C,0x21,0x85,0x6F,0x46,0x78,0xB7,0xF2,0xE1, // 0x00000F00 !!q!~4!\!.oFx... + 0x0E,0xAF,0x32,0x73,0x21,0xC3,0xE1,0x0E,0xE5,0xD5,0x57,0x3A,0xA7,0x21,0xE6,0x10, // 0x00000F10 ..2s!.....W:.!.. + 0xCA,0x2B,0x0F,0x7A,0xD6,0x91,0xE6,0xFD,0xCA,0x61,0x0F,0x21,0x72,0x21,0x7E,0xF6, // 0x00000F20 .+.z.....a.!r!~. + 0x20,0x77,0x21,0x43,0x21,0x7E,0x34,0x21,0x5C,0x20,0x5F,0x85,0x6F,0x72,0x3E,0x8D, // 0x00000F30 w!C!~4!\ _.or.. + 0xBA,0xC2,0x4E,0x0F,0x3A,0xA8,0x21,0xE6,0x20,0x16,0x8A,0xC2,0x32,0x0F,0x3A,0xA5, // 0x00000F40 ..N.:.!. ...2.:. + 0x21,0xB7,0xC2,0x5B,0x0F,0x3E,0x05,0xBB,0x3E,0x00,0x1F,0x32,0x44,0x21,0xD1,0xE1, // 0x00000F50 !..[.......2D!.. + 0xC9,0x7A,0xE6,0x7F,0x57,0x21,0xC1,0x21,0x7E,0xB7,0xC2,0x75,0x0F,0x2B,0x7E,0xBA, // 0x00000F60 .z..W!.!~..u.+~. + 0xC2,0x75,0x0F,0x23,0x72,0x4A,0x06,0x02,0xCD,0x7E,0x0F,0xC3,0x5E,0x0F,0x3A,0xA7, // 0x00000F70 .u.#rJ...~..^.:. + 0x21,0xE6,0x10,0xC8,0x3A,0xA5,0x21,0xB7,0xC0,0x79,0x21,0xBF,0x21,0xFE,0x13,0x78, // 0x00000F80 !...:.!..y!.!..x + 0xCA,0x9E,0x0F,0x2F,0xA6,0x77,0xF5,0xE6,0x02,0x32,0xC4,0x21,0xF1,0xC0,0xB6,0x77, // 0x00000F90 .../.w...2.!...w + 0x79,0x21,0xC0,0x21,0xBE,0xC8,0x77,0x23,0x77,0xC9,0x21,0x7F,0x20,0x86,0xBE,0xC8, // 0x00000FA0 y!.!..w#w.!. ... + 0xE5,0xF5,0x3A,0x7B,0x20,0xB7,0xCC,0x88,0x14,0xF1,0xE1,0xC3,0xAE,0x0F,0x2A,0x4E, // 0x00000FB0 ..:{ .........*N + 0x20,0x7C,0xF6,0xF0,0x67,0x22,0x4E,0x20,0x3A,0x50,0x20,0x47,0x7C,0xE6,0x0F,0xF6, // 0x00000FC0 |..g"N :P G|... + 0x20,0x67,0xC6,0x10,0x57,0x5D,0x3E,0xFF,0x36,0x00,0x12,0x13,0x23,0x05,0xC2,0xD8, // 0x00000FD0 g..W]..6...#... + 0x0F,0x3C,0x32,0xC3,0x21,0xC9,0x06,0xFF,0xC3,0xED,0x0F,0x06,0x01,0x21,0x55,0x21, // 0x00000FE0 ..2.!........!U! + 0x56,0x23,0x5E,0x78,0xB7,0x7A,0xF2,0xFA,0x0F,0x7B,0xCD,0xE6,0x13,0x7B,0x92,0x4F, // 0x00000FF0 V#^x.z...{...{.O + 0x3A,0x2B,0x21,0x56,0x77,0x78,0x85,0x6F,0x0D,0x7A,0xF2,0x03,0x10,0xE6,0x7F,0x32, // 0x00001000 :+!Vwx.o.z.....2 + 0x2B,0x21,0x3E,0xFF,0x32,0x0E,0x21,0xC3,0x36,0x16,0xCD,0x91,0x11,0x3A,0x56,0x21, // 0x00001010 +!..2.!.6....:V! + 0xCD,0x2F,0x12,0xCD,0xE6,0x0F,0x3A,0x55,0x21,0x3D,0xC3,0x3E,0x10,0xCD,0x91,0x11, // 0x00001020 ./....:U!=...... + 0x3A,0x55,0x21,0x3D,0xCD,0x2F,0x12,0xCD,0xEB,0x0F,0x3A,0x56,0x21,0x3D,0xCD,0xCE, // 0x00001030 :U!=./....:V!=.. + 0x11,0xFB,0x32,0x7A,0x20,0x21,0x56,0x21,0x7E,0x2B,0x96,0xFE,0x17,0xC0,0x21,0x7A, // 0x00001040 ..2z !V!~+....!z + 0x20,0x7E,0x36,0x00,0xB7,0xC8,0x2A,0x56,0x20,0xEB,0x2A,0x58,0x20,0x72,0x23,0x73, // 0x00001050 ~6...*V .*X r#s + 0x2A,0x79,0x21,0xEB,0x2A,0x75,0x20,0x72,0x23,0x73,0x21,0x56,0x20,0x22,0x58,0x20, // 0x00001060 *y!.*u r#s!V "X + 0x22,0x75,0x20,0xC9,0xCD,0xE3,0x13,0xE6,0x80,0x32,0x57,0x21,0xCD,0x8D,0x13,0x22, // 0x00001070 "u ......2W!..." + 0x4E,0x21,0xC9,0x70,0x23,0x1B,0x7A,0xB3,0xC2,0x83,0x10,0xC9,0x0E,0x00,0x21,0x51, // 0x00001080 N!.p#.z.......!Q + 0x20,0xF3,0x3A,0x65,0x20,0xB6,0xFB,0xCA,0xA7,0x10,0x79,0x1F,0xC5,0xDC,0x88,0x14, // 0x00001090 .:e .....y..... + 0xCD,0x93,0x14,0xC1,0xC3,0x8E,0x10,0x79,0x17,0xD0,0xC3,0x91,0x11,0x21,0x70,0x06, // 0x000010A0 .......y.....!p. + 0x22,0x04,0x20,0xAF,0x32,0x51,0x20,0x32,0x65,0x20,0x32,0x5A,0x20,0xD3,0xA2,0x3E, // 0x000010B0 ". .2Q 2e 2Z ... + 0x04,0xD3,0xA2,0xCD,0x6A,0x10,0xFB,0x3E,0x01,0xCD,0xAA,0x0F,0x21,0xD0,0x22,0x7C, // 0x000010C0 ....j.......!."| + 0xC6,0x10,0x57,0x5D,0x01,0x2F,0x0D,0x3A,0xC7,0x21,0x77,0x23,0x3E,0xFF,0x12,0x13, // 0x000010D0 ..W]./.:.!w#.... + 0x0B,0x78,0xB1,0xC2,0xD7,0x10,0x3A,0xC7,0x21,0x32,0xF4,0x20,0xAF,0x32,0xF9,0x20, // 0x000010E0 .x....:.!2. .2. + 0x32,0xF8,0x20,0x3E,0xFF,0x32,0xF5,0x20,0xC9,0xAF,0x32,0x51,0x20,0x3A,0x65,0x20, // 0x000010F0 2. ..2. ..2Q :e + 0xB7,0xC2,0xFD,0x10,0x21,0xD0,0x22,0x06,0x00,0x09,0xCD,0xBF,0x11,0x0C,0xCD,0x36, // 0x00001100 ....!."........6 + 0x11,0xE5,0x06,0x01,0xCD,0x36,0x11,0xE1,0x36,0x7F,0x23,0x22,0x54,0x20,0x36,0x70, // 0x00001110 .....6..6.#"T 6p + 0x23,0x36,0x06,0x79,0xCD,0xDE,0x13,0x36,0x7F,0x0D,0x3E,0x03,0x32,0x02,0x20,0x21, // 0x00001120 #6.y...6....2. ! + 0xF2,0xD0,0x22,0x04,0x20,0xC9,0x36,0x7F,0x23,0x54,0x5D,0x13,0x13,0x7A,0xF6,0xF0, // 0x00001130 ..". .6.#T]..z.. + 0x77,0x23,0x73,0x79,0xCD,0xDE,0x13,0x05,0xC2,0x36,0x11,0xC9,0x21,0xC2,0x20,0x0C, // 0x00001140 w#sy.....6..!. . + 0x0C,0x0C,0x11,0xD0,0x22,0x06,0x00,0x3E,0x19,0x73,0x23,0x72,0x23,0xEB,0x09,0xEB, // 0x00001150 ...."....s#r#... + 0x3D,0xC2,0x59,0x11,0x32,0x55,0x21,0xCD,0xBF,0x11,0x78,0x32,0x56,0x21,0x3C,0x32, // 0x00001160 =.Y.2U!...x2V!.2 + 0x2B,0x21,0x2A,0xF2,0x20,0x3E,0x17,0xB8,0xCA,0x7E,0x11,0x2A,0xDE,0x20,0x7C,0xF6, // 0x00001170 +!*. ....~.*. |. + 0xF0,0x67,0x22,0x4E,0x20,0x21,0x13,0x21,0xAF,0x77,0x2C,0x3C,0x05,0xF2,0x89,0x11, // 0x00001180 .g"N !.!.w,..... + 0xC9,0xF3,0x3A,0x7A,0x20,0xB7,0xCA,0xA0,0x11,0xFB,0xCD,0x88,0x14,0xC3,0x91,0x11, // 0x00001190 ..:z ........... + 0x3A,0x65,0x20,0xB7,0xC2,0xB0,0x11,0x3A,0x51,0x20,0xB7,0xFB,0xC8,0xC3,0x99,0x11, // 0x000011A0 :e ....:Q ...... + 0x3A,0x5B,0x20,0x21,0x5A,0x20,0x86,0x27,0xE6,0x0F,0xCA,0x99,0x11,0xFB,0xC9,0xE5, // 0x000011B0 :[ !Z .'........ + 0x06,0x17,0x3A,0xA2,0x21,0x21,0xC8,0x21,0xA6,0xE1,0xC8,0x06,0x0D,0xC9,0xB7,0xF2, // 0x000011C0 ..:.!!.!........ + 0xE8,0x11,0x21,0x04,0x20,0xE5,0x7E,0x23,0x6E,0xF6,0xF0,0x67,0x22,0x4E,0x20,0xCD, // 0x000011D0 ..!. .~#n..g"N . + 0x90,0x12,0xE1,0x42,0x4B,0xC3,0x0A,0x12,0xCD,0x7F,0x12,0xCD,0x90,0x12,0xE5,0xD5, // 0x000011E0 ...BK........... + 0xEB,0xCD,0x90,0x12,0x42,0x4B,0xD1,0x7A,0xF6,0xF0,0x67,0x6B,0x22,0x4E,0x20,0xE1, // 0x000011F0 ....BK.z..gk"N . + 0x7C,0xF6,0x9F,0x3C,0xC2,0x11,0x12,0xCD,0x99,0x12,0xF3,0x22,0x75,0x20,0xC3,0x28, // 0x00001200 |.........."u .( + 0x12,0xCD,0x9D,0x12,0x3A,0x50,0x20,0x0F,0x57,0xCD,0xDE,0x13,0x23,0xF3,0x22,0x75, // 0x00001210 ....:P .W...#."u + 0x20,0x7A,0xCD,0xDE,0x13,0x70,0x23,0x71,0x60,0x69,0x22,0x79,0x21,0xFB,0xC9,0xF5, // 0x00001220 z...p#q`i"y!... + 0xCD,0xBE,0x0F,0xF1,0xB7,0x21,0x04,0x20,0xFA,0x48,0x12,0xCD,0x7F,0x12,0x7C,0xF6, // 0x00001230 .....!. .H....|. + 0x9F,0x3C,0xC2,0x52,0x12,0xCD,0x99,0x12,0xF3,0x22,0x58,0x20,0x46,0x23,0x4E,0xC3, // 0x00001240 ...R....."X F#N. + 0x71,0x12,0xCD,0x9D,0x12,0x3A,0x50,0x20,0x0F,0x47,0xCD,0xDE,0x13,0x23,0xF3,0x22, // 0x00001250 q....:P .G...#." + 0x58,0x20,0x78,0x46,0x23,0x4E,0xCD,0xDE,0x13,0xEB,0x2A,0x4E,0x20,0xEB,0x73,0x2B, // 0x00001260 X xF#N....*N .s+ + 0x72,0x2A,0x4E,0x20,0x22,0x56,0x20,0xCD,0x99,0x12,0x70,0x23,0x71,0xFB,0xC9,0x3C, // 0x00001270 r*N "V ...p#q... + 0x47,0x21,0x04,0x20,0x7E,0x23,0x6E,0x67,0x05,0xC8,0xCD,0x99,0x12,0xC3,0x84,0x12, // 0x00001280 G!. ~#ng........ + 0xE5,0xCD,0x99,0x12,0x56,0x23,0x5E,0xE1,0xC9,0xCD,0xDB,0x13,0x23,0x7C,0xE6,0x0F, // 0x00001290 ....V#^.....#|.. + 0xF6,0x20,0x67,0xC9,0xCD,0xB0,0x12,0x50,0xCD,0xB0,0x12,0x30,0xCD,0xB0,0x12,0x10, // 0x000012A0 . g....P...0.... + 0xCD,0x91,0x11,0x21,0x13,0x21,0x3A,0xF9,0x20,0x85,0x6F,0x7E,0xF6,0x80,0x77,0xCD, // 0x000012B0 ...!.!:. .o~..w. + 0x8D,0x13,0xCD,0xC3,0x13,0xE1,0x7E,0xCD,0x95,0x13,0x3A,0x53,0x21,0x21,0xF8,0x20, // 0x000012C0 ......~...:S!!. + 0xB7,0x1F,0xBE,0xD2,0x12,0x10,0x21,0xF4,0x20,0x22,0xF6,0x20,0xC3,0x12,0x10,0x3A, // 0x000012D0 ......!. ". ...: + 0x30,0x21,0xFE,0x02,0xD0,0x32,0x76,0x21,0x21,0x72,0x21,0x7E,0xF6,0x02,0x77,0xC9, // 0x000012E0 0!...2v!!r!~..w. + 0x3E,0xFD,0xCD,0xBF,0x0D,0x3A,0x76,0x21,0xF6,0x32,0xCD,0xB9,0x0D,0x3A,0xA9,0x21, // 0x000012F0 .....:v!.2...:.! + 0xF5,0xE6,0xC0,0xF6,0x18,0x87,0x3C,0xF2,0x10,0x13,0x1F,0x07,0xF6,0x04,0xE6,0x7F, // 0x00001300 ................ + 0xCD,0xB9,0x0D,0x06,0x31,0xF1,0xE6,0x20,0xC2,0x1C,0x13,0x04,0x78,0xCD,0xB9,0x0D, // 0x00001310 ....1.. ....x... + 0x3A,0xAB,0x21,0x0F,0xCD,0x7A,0x0D,0xCD,0xBB,0x0D,0x3A,0xAC,0x21,0x0F,0xCD,0x7A, // 0x00001320 :.!..z....:.!..z + 0x0D,0xCD,0xBB,0x0D,0x3E,0x31,0xCD,0xB9,0x0D,0x3A,0xAA,0x21,0xE6,0xF0,0x0F,0x0F, // 0x00001330 .....1...:.!.... + 0x0F,0x0F,0xCD,0x7A,0x0D,0x36,0xF8,0xC3,0xF3,0x0E,0x21,0x57,0x21,0x7E,0xB7,0xC8, // 0x00001340 ...z.6....!W!~.. + 0xCD,0x91,0x11,0x21,0x13,0x21,0x3A,0xF9,0x20,0x85,0x6F,0x7E,0xE6,0x7F,0x77,0xCD, // 0x00001350 ...!.!:. .o~..w. + 0x8D,0x13,0x3A,0x50,0x20,0x0F,0x47,0xCD,0xDE,0x13,0xAF,0x77,0x23,0x05,0xC2,0x6B, // 0x00001360 ..:P .G....w#..k + 0x13,0x3E,0xF0,0x32,0x0E,0x21,0xCD,0x95,0x13,0xAF,0x32,0x57,0x21,0xC3,0x36,0x16, // 0x00001370 ...2.!....2W!.6. + 0x3A,0xF9,0x20,0xCD,0xE6,0x13,0x21,0xC2,0x20,0x87,0x85,0x6F,0xC9,0xCD,0x80,0x13, // 0x00001380 :. ...!. ..o.... + 0x7E,0x23,0x66,0x6F,0xC9,0xE6,0x70,0x47,0x3A,0xF9,0x20,0x3D,0x21,0x04,0x20,0xFA, // 0x00001390 ~#fo..pG:. =!. . + 0xBD,0x13,0xCD,0xE6,0x13,0x57,0xE6,0x7F,0xCD,0x86,0x13,0xCD,0x90,0x13,0x3A,0x50, // 0x000013A0 .....W........:P + 0x20,0x0F,0x5F,0x23,0x14,0x15,0x16,0x00,0x19,0xFC,0xBD,0x13,0x19,0x7E,0xE6,0x8F, // 0x000013B0 ._#.........~.. + 0xB0,0x77,0xC9,0x3A,0x50,0x20,0x0F,0x54,0x5D,0xCD,0xDE,0x13,0xEB,0xCD,0xDB,0x13, // 0x000013C0 .w.:P .T]....... + 0x06,0x03,0x7E,0x12,0x13,0x23,0x05,0xC2,0xD2,0x13,0xC9,0x3A,0x50,0x20,0x85,0x6F, // 0x000013D0 ..~..#.....:P .o + 0xD0,0x24,0xC9,0x3A,0xF9,0x20,0x21,0x13,0x21,0x85,0x6F,0x7E,0xC9,0x0E,0x00,0xC3, // 0x000013E0 .$.:. !.!.o~.... + 0xF4,0x13,0x0E,0xFF,0x3A,0xB8,0x21,0xB7,0x21,0x26,0x14,0xCA,0x04,0x14,0xFE,0x3F, // 0x000013F0 ....:.!.!&.....? + 0xC0,0x21,0x0A,0x14,0x78,0x41,0xCD,0xFF,0x09,0xC9,0x01,0x2A,0x14,0x02,0x2F,0x14, // 0x00001400 .!..xA.....*../. + 0x03,0x57,0x14,0x04,0x47,0x14,0x05,0x4E,0x14,0x06,0x3F,0x14,0x07,0x66,0x14,0x08, // 0x00001410 .W..G..N..?..f.. + 0x5F,0x14,0x09,0x6D,0x14,0x00,0x14,0x38,0x14,0x00,0x21,0xBC,0x21,0x70,0xC9,0xCD, // 0x00001420 _..m...8..!.!p.. + 0x76,0x14,0xA7,0x21,0x20,0xC3,0xF2,0x0B,0xCD,0x76,0x14,0xA8,0x21,0x20,0xC9,0x21, // 0x00001430 v..! ....v..! .! + 0x01,0x21,0x70,0xCD,0x48,0x18,0xC9,0xCD,0x76,0x14,0xA6,0x21,0x80,0xC9,0xCD,0x76, // 0x00001440 .!p.H...v..!...v + 0x14,0xA6,0x21,0x20,0xC3,0x6B,0x03,0x21,0xA2,0x21,0x70,0xCD,0x81,0x03,0xC9,0xCD, // 0x00001450 ..! .k.!.!p..... + 0x76,0x14,0xA6,0x21,0x40,0xC9,0xCD,0x76,0x14,0xA8,0x21,0x40,0xC9,0xCD,0x76,0x14, // 0x00001460 v..!@..v..!@..v. + 0xA8,0x21,0x10,0xC3,0x42,0x03,0xE1,0x5E,0x23,0x56,0x23,0x7E,0x23,0xEB,0x4F,0x2F, // 0x00001470 .!..B..^#V#~#.O/ + 0xA6,0x77,0x78,0xA1,0xB6,0x77,0xEB,0xE9,0xCD,0x93,0x14,0xE6,0x10,0xCC,0xAA,0x06, // 0x00001480 .wx..w.......... + 0xC3,0x59,0x0E,0xDB,0x42,0xE6,0x80,0xC8,0x21,0x44,0x21,0x7E,0xB7,0xCA,0xA2,0x14, // 0x00001490 .Y..B...!D!~.... + 0x3E,0x10,0x21,0xA5,0x21,0xB6,0x21,0x45,0x21,0xB6,0x23,0xB6,0x23,0xB6,0x36,0x00, // 0x000014A0 ..!.!.!E!.#.#.6. + 0x23,0xB6,0x36,0x00,0xD3,0x82,0x21,0x74,0x20,0x34,0x3A,0x77,0x20,0xB7,0xC0,0x3A, // 0x000014B0 #.6...!t 4:w ..: + 0x65,0x20,0x21,0x51,0x20,0xB6,0xC0,0x2A,0x2D,0x21,0x2B,0x7C,0xB5,0xCA,0xD4,0x14, // 0x000014C0 e !Q ..*-!+|.... + 0x22,0x2D,0x21,0xC9,0x3A,0xBA,0x21,0xEE,0xFF,0x32,0xBA,0x21,0x21,0x12,0x02,0xC2, // 0x000014D0 "-!.:.!..2.!!... + 0xE5,0x14,0x21,0x09,0x01,0x22,0x2D,0x21,0x2A,0xF6,0x20,0x46,0x3A,0x59,0x21,0xA8, // 0x000014E0 ..!.."-!*. F:Y!. + 0x77,0x11,0x00,0x10,0x19,0x3A,0x5A,0x21,0xAE,0x77,0xC9,0x74,0x78,0xB7,0xCA,0x15, // 0x000014F0 w....:Z!.w.tx... + 0x15,0x3D,0xCA,0x0A,0x15,0x3D,0xC0,0xCD,0x15,0x15,0x3A,0xF8,0x20,0x47,0x04,0x2A, // 0x00001500 .=...=....:. G.* + 0x4E,0x21,0xC3,0x29,0x15,0x3A,0xF8,0x20,0x47,0x3A,0x57,0x21,0xB7,0x3A,0x50,0x20, // 0x00001510 N!.).:. G:W!.:P + 0xCA,0x24,0x15,0x0F,0x90,0x47,0x2A,0xF6,0x20,0x7C,0xC6,0x10,0x57,0x5D,0x3E,0xFF, // 0x00001520 .$...G*. |..W].. + 0x12,0x36,0x00,0x23,0x13,0x05,0xC2,0x30,0x15,0x32,0xF5,0x20,0xAF,0x32,0xF4,0x20, // 0x00001530 .6.#...0.2. .2. + 0xC9,0x78,0xB7,0xCA,0x6A,0x15,0x3D,0xCA,0x55,0x15,0x3D,0xC0,0xCD,0x55,0x15,0xCD, // 0x00001540 .x..j.=.U.=..U.. + 0x6A,0x15,0xC3,0x4A,0x13,0x21,0xF9,0x20,0x7E,0xF5,0x47,0xAF,0x77,0x0E,0xFF,0xCD, // 0x00001550 j..J.!. ~.G.w... + 0x86,0x15,0xF1,0x77,0xCD,0x74,0x10,0xC3,0x0A,0x15,0x3A,0xF8,0x20,0xB7,0xCC,0x4A, // 0x00001560 ...w.t....:. ..J + 0x13,0xCD,0x15,0x15,0x21,0xF9,0x20,0x7E,0xF5,0x4F,0x3E,0x17,0x91,0x47,0xCD,0x86, // 0x00001570 ....!. ~.O...G.. + 0x15,0xF1,0x77,0xC3,0x74,0x10,0x05,0xF8,0x0C,0x71,0xC5,0xE5,0xCD,0xE3,0x13,0xE6, // 0x00001580 ..w.t....q...... + 0x7F,0x77,0x3E,0x70,0xCD,0x95,0x13,0xCD,0x74,0x10,0x3A,0x50,0x20,0x47,0xCD,0x29, // 0x00001590 .w.p....t.:P G.) + 0x15,0xE1,0xC1,0xC3,0x86,0x15,0x0E,0x81,0xCD,0x8E,0x10,0xCD,0xBF,0x11,0x3A,0x30, // 0x000015A0 ..............:0 + 0x21,0xB7,0xCA,0xB6,0x15,0x3D,0x57,0x3A,0x31,0x21,0xB7,0xC2,0xC0,0x15,0x78,0x3C, // 0x000015B0 !....=W:1!....x. + 0x3D,0x5F,0x78,0xBB,0xD8,0x7A,0xBB,0xD0,0x21,0x55,0x21,0x72,0x23,0x73,0x4B,0x42, // 0x000015C0 =_x..z..!U!r#sKB + 0x79,0x90,0x3C,0x5F,0x21,0x04,0x20,0x78,0xB7,0xCA,0xE8,0x15,0x50,0x7E,0xE6,0x7F, // 0x000015D0 y.._!. x....P~.. + 0x77,0xCD,0x2B,0x16,0x15,0xC2,0xDD,0x15,0x7E,0xF6,0x80,0x77,0xCD,0x2B,0x16,0x1D, // 0x000015E0 w.+.....~..w.+.. + 0xC2,0xE8,0x15,0x3E,0x17,0x91,0xCA,0x05,0x16,0x57,0x7E,0xE6,0x7F,0x77,0xCD,0x2B, // 0x000015F0 .........W~..w.+ + 0x16,0x15,0xC2,0xFA,0x15,0x78,0x32,0x55,0x21,0x79,0x32,0x56,0x21,0x21,0x13,0x21, // 0x00001600 .....x2U!y2V!!.! + 0x0E,0x18,0x7E,0xB7,0xF2,0x23,0x16,0xE5,0xCD,0x86,0x13,0x7E,0x23,0x66,0x6F,0xCD, // 0x00001610 ..~..#.....~#fo. + 0xC3,0x13,0xE1,0x23,0x0D,0xC2,0x12,0x16,0xC3,0x48,0x18,0x23,0x6E,0xE6,0x0F,0xF6, // 0x00001620 ...#.....H.#n... + 0x20,0x67,0x23,0xC3,0xDB,0x13,0x21,0x0D,0x00,0x22,0x2D,0x21,0xAF,0x32,0xBA,0x21, // 0x00001630 g#...!.."-!.2.! + 0x2A,0xF6,0x20,0x3A,0xF4,0x20,0x47,0x77,0x7C,0xC6,0x10,0x67,0x3A,0xF5,0x20,0x77, // 0x00001640 *. :. Gw|..g:. w + 0x3A,0x50,0x20,0x3D,0x5F,0x3A,0x7B,0x20,0xB7,0xC2,0x7B,0x16,0x3A,0xF9,0x20,0x21, // 0x00001650 :P =_:{ ..{.:. ! + 0x0E,0x21,0xBE,0xCA,0x7F,0x16,0x77,0xCD,0x74,0x10,0xAF,0x32,0x54,0x21,0x21,0x57, // 0x00001660 .!....w.t..2T!!W + 0x21,0x7E,0xB7,0xCA,0x7B,0x16,0x7B,0x3D,0xB7,0x1F,0x5F,0x7B,0x32,0x53,0x21,0x21, // 0x00001670 !~..{.{=.._{2S!! + 0x53,0x21,0x11,0xF8,0x20,0x1A,0xBE,0xDA,0x8C,0x16,0x7E,0x12,0x3A,0xBB,0x21,0xC6, // 0x00001680 S!.. .....~.:.!. + 0x08,0x96,0xC2,0xA1,0x16,0x23,0xB6,0xCA,0xA1,0x16,0xCD,0x38,0x09,0xAF,0x32,0x54, // 0x00001690 .....#.....8..2T + 0x21,0x3A,0xF8,0x20,0x32,0xBB,0x21,0x2A,0x4E,0x21,0xCD,0xDE,0x13,0x22,0xF6,0x20, // 0x000016A0 !:. 2.!*N!...". + 0x7E,0x32,0xF4,0x20,0x47,0x7C,0xC6,0x10,0x67,0x7E,0x32,0xF5,0x20,0x2A,0xF6,0x20, // 0x000016B0 ~2. G|..g~2. *. + 0x70,0xC9,0x47,0x21,0xF1,0x16,0x22,0x40,0x21,0xAF,0x32,0x2F,0x21,0x32,0x4B,0x21, // 0x000016C0 p.G!.."@!.2/!2K! + 0x32,0x7D,0x20,0x21,0x30,0x21,0x0E,0x0F,0xAF,0x77,0x23,0x0D,0xC2,0xD9,0x16,0x21, // 0x000016D0 2} !0!...w#....! + 0xB8,0x21,0x36,0x00,0x78,0xFE,0x40,0xD2,0xF2,0x16,0xFE,0x3C,0xDA,0xF2,0x16,0x77, // 0x000016E0 .!6.x.@........w + 0xC9,0x47,0x78,0xFE,0x3A,0xD2,0x17,0x17,0xD6,0x30,0xFA,0x17,0x17,0x4F,0x21,0x2F, // 0x000016F0 .Gx.:....0...O!/ + 0x21,0x7E,0xFE,0x1A,0xD2,0x13,0x17,0x07,0x47,0x07,0x07,0x80,0xDA,0x13,0x17,0x81, // 0x00001700 !~......G....... + 0xD2,0x15,0x17,0x3E,0xFF,0x77,0xC9,0x11,0x30,0x21,0xF5,0x21,0x4B,0x21,0x4E,0x06, // 0x00001710 .....w..0!.!K!N. + 0x00,0xEB,0x09,0x01,0x2F,0x21,0x0A,0x77,0xAF,0x02,0x1A,0xFE,0x0F,0xCA,0x32,0x17, // 0x00001720 ..../!.w......2. + 0x3C,0x12,0xF1,0x47,0xFE,0x3B,0xC8,0xE6,0xC0,0x78,0xCA,0x43,0x17,0x32,0x7E,0x20, // 0x00001730 ...G.;...x.C.2~ + 0xC3,0xA2,0x0A,0x21,0x7D,0x20,0x86,0xD2,0x4C,0x17,0x3E,0xFF,0x77,0x21,0x33,0x17, // 0x00001740 ...!} ..L...w!3. + 0x22,0x40,0x21,0xC9,0x16,0x00,0x06,0x01,0xC3,0x62,0x17,0xCD,0xC0,0x02,0x06,0x0A, // 0x00001750 "@!......b...... + 0x16,0x01,0xC5,0xD5,0xCD,0xBE,0x17,0xD1,0xF3,0x21,0x7B,0x21,0x1E,0x33,0x0E,0x01, // 0x00001760 .........!{!.3.. + 0xAF,0x32,0xAE,0x21,0x79,0x32,0xAD,0x21,0xD5,0xE5,0x7A,0xB7,0x7E,0x32,0xAF,0x21, // 0x00001770 .2.!y2.!..z.~2.! + 0xCC,0xAE,0x18,0xCD,0xA3,0x18,0xE1,0xD1,0x3A,0xAF,0x21,0x1D,0xCA,0x9E,0x17,0x77, // 0x00001780 ........:.!....w + 0x3A,0xAD,0x21,0x07,0xAE,0x4F,0x23,0x3A,0xAE,0x21,0x3C,0xC3,0x71,0x17,0xBE,0xC1, // 0x00001790 :.!..O#:.!..q... + 0x0E,0x00,0xCA,0xAC,0x17,0x05,0xC2,0x62,0x17,0xCD,0xD0,0x17,0x79,0xB7,0xF5,0x0E, // 0x000017A0 .......b....y... + 0x40,0x3E,0x63,0xCD,0x2B,0x19,0x21,0xF2,0xD0,0x22,0x04,0x20,0xF1,0xC9,0x11,0xEC, // 0x000017B0 @.c.+.!..". .... + 0x17,0x06,0x07,0x21,0xCC,0x21,0xCD,0x8B,0x03,0x21,0x71,0xCC,0x22,0x04,0x20,0xC9, // 0x000017C0 ...!.!...!q.". . + 0x21,0x7B,0x21,0x06,0x27,0x36,0x80,0x23,0x05,0xC2,0xD5,0x17,0x11,0xF3,0x17,0x06, // 0x000017D0 !{!.'6.#........ + 0x0B,0xCD,0x8B,0x03,0x0E,0x01,0x3E,0x30,0x32,0x78,0x20,0xC9,0x57,0x61,0x69,0x74, // 0x000017E0 .......02x .Wait + 0x7F,0x70,0x06,0x00,0x08,0x6E,0x20,0xD0,0x50,0x00,0x20,0x00,0xE0,0xE0,0x3A,0x55, // 0x000017F0 .p...n .P. ...:U + 0x21,0x01,0xFF,0x00,0xC3,0x0F,0x18,0xCD,0xBF,0x11,0x3A,0x56,0x21,0x0E,0x01,0x21, // 0x00001800 !.........:V!..! + 0xF9,0x20,0xC3,0x25,0x18,0x3A,0x53,0x21,0x01,0x01,0xFF,0xC3,0x22,0x18,0xAF,0x01, // 0x00001810 . .%.:S!...."... + 0xFF,0x00,0x21,0xF8,0x20,0x57,0x3A,0xB8,0x21,0xB7,0xC2,0x15,0x0A,0x3A,0x30,0x21, // 0x00001820 ..!. W:.!....:0! + 0xB7,0xC2,0x35,0x18,0x3C,0x5F,0x7E,0xBA,0xCA,0x44,0x18,0xB8,0xCA,0x44,0x18,0x81, // 0x00001830 ..5.._~..D...D.. + 0x1D,0xC2,0x37,0x18,0x77,0xC3,0x36,0x16,0x21,0x00,0x00,0x22,0x30,0x21,0x3E,0xFF, // 0x00001840 ..7.w.6.!.."0!.. + 0x32,0x0E,0x21,0x3A,0x01,0x21,0x4F,0x21,0x30,0x21,0x7E,0xB7,0xCA,0x60,0x18,0x3D, // 0x00001850 2.!:.!O!0!~..`.= + 0x47,0x79,0xB7,0xCA,0x69,0x18,0x3A,0x55,0x21,0x80,0x47,0x79,0xB7,0x3A,0x56,0x21, // 0x00001860 Gy..i.:U!.Gy.:V! + 0xC2,0x79,0x18,0x48,0xCD,0xBF,0x11,0x78,0x41,0xB8,0xDA,0x7E,0x18,0x78,0x32,0xF9, // 0x00001870 .y.H...xA..~.x2. + 0x20,0x23,0x7E,0xB7,0xCA,0x88,0x18,0x3D,0x47,0x79,0xB7,0xC2,0x95,0x18,0x3A,0x50, // 0x00001880 #~....=Gy....:P + 0x20,0x3D,0xC3,0x98,0x18,0x3A,0x53,0x21,0xB8,0xDA,0x9D,0x18,0x78,0x32,0xF8,0x20, // 0x00001890 =...:S!....x2. + 0xC3,0x36,0x16,0x0E,0x40,0xCD,0x28,0x19,0xCD,0xC1,0x18,0xC3,0xBC,0x18,0x0E,0x40, // 0x000018A0 .6..@.(........@ + 0xCD,0x28,0x19,0xCD,0xA8,0x19,0xCD,0x77,0x19,0xCD,0xD6,0x19,0x3E,0x30,0xD3,0x62, // 0x000018B0 .(.....w.....0.b + 0xC9,0xDB,0x42,0xA1,0xCA,0xC1,0x18,0xDB,0x42,0xA1,0xC2,0xC7,0x18,0x3E,0x2D,0xD3, // 0x000018C0 ..B.....B.....-. + 0x62,0xDB,0x42,0xA1,0xCA,0xD1,0x18,0xDB,0x42,0xA1,0xC2,0xD7,0x18,0x3E,0x2F,0xD3, // 0x000018D0 b.B.....B...../. + 0x62,0x21,0xD3,0x21,0x06,0x0E,0xDB,0x42,0xA1,0xCA,0xE6,0x18,0xDB,0x42,0xA1,0xC2, // 0x000018E0 b!.!...B.....B.. + 0xEC,0x18,0x3E,0x25,0xD3,0x62,0xDB,0x42,0xA1,0xCA,0xF6,0x18,0xDB,0x42,0x77,0x23, // 0x000018F0 ...%.b.B.....Bw# + 0xDB,0x42,0xA1,0xC2,0x00,0x19,0x05,0xC2,0xF6,0x18,0x3E,0x2F,0xD3,0x62,0x11,0xD3, // 0x00001900 .B........./.b.. + 0x21,0x06,0x0E,0x21,0x00,0x00,0x29,0x1A,0xE6,0x20,0x07,0x07,0x07,0xB5,0x6F,0x13, // 0x00001910 !..!..).. ....o. + 0x05,0xC2,0x16,0x19,0x22,0xAF,0x21,0xC9,0x3A,0xAE,0x21,0x06,0xFF,0x04,0xD6,0x0A, // 0x00001920 ....".!.:.!..... + 0xF2,0x2D,0x19,0xC6,0x0A,0x21,0xD3,0x21,0x1E,0x23,0x16,0x14,0x73,0x23,0x15,0xC2, // 0x00001930 .-...!.!.#..s#.. + 0x3C,0x19,0x36,0x2F,0x21,0xD3,0x21,0x5F,0x16,0x00,0x19,0x36,0x22,0x21,0xD3,0x21, // 0x00001940 ..6/!.!_...6"!.! + 0x3E,0x0A,0x80,0x5F,0x19,0x36,0x22,0xDB,0x42,0xA1,0xC2,0x57,0x19,0x21,0xD3,0x21, // 0x00001950 ..._.6".B..W.!.! + 0x06,0x15,0xDB,0x42,0xA1,0xCA,0x62,0x19,0x05,0xF8,0xDB,0x42,0xA1,0xC2,0x6A,0x19, // 0x00001960 ...B..b....B..j. + 0x7E,0xD3,0x62,0x23,0xC3,0x62,0x19,0x2A,0xAF,0x21,0x29,0x29,0x11,0xD3,0x21,0x06, // 0x00001970 ~.b#.b.*.!))..!. + 0x0E,0x3E,0x20,0x29,0x17,0x12,0x13,0x05,0xC2,0x81,0x19,0x3E,0x2F,0x12,0x21,0xD3, // 0x00001980 .. )......../.!. + 0x21,0x06,0x0F,0xDB,0x42,0xA1,0xCA,0x93,0x19,0xDB,0x42,0xA1,0xC2,0x99,0x19,0x7E, // 0x00001990 !...B.....B....~ + 0xD3,0x62,0x23,0x05,0xC2,0x93,0x19,0xC9,0xDB,0x42,0xA1,0xCA,0xA8,0x19,0xDB,0x42, // 0x000019A0 .b#......B.....B + 0xA1,0xC2,0xAE,0x19,0x3E,0x2B,0xD3,0x62,0xCD,0xC0,0x19,0x3E,0x2F,0xD3,0x62,0xC9, // 0x000019B0 .....+.b..../.b. + 0x21,0x3B,0x01,0xDB,0x42,0xA1,0xCA,0xC3,0x19,0xDB,0x42,0xA1,0xC2,0xC9,0x19,0x2B, // 0x000019C0 !;..B.....B....+ + 0x7C,0xB5,0xC2,0xC3,0x19,0xC9,0xDB,0x42,0xA1,0xCA,0xD6,0x19,0xDB,0x42,0xA1,0xC2, // 0x000019D0 |......B.....B.. + 0xDC,0x19,0x3E,0x29,0xD3,0x62,0xCD,0xC0,0x19,0x3E,0x2F,0xD3,0x62,0xC9,0xFE,0x20, // 0x000019E0 ...).b..../.b.. + 0x0E,0x43,0xCA,0xFF,0x01,0x21,0xB0,0x1B,0xE5,0xFE,0x0D,0xCA,0x4B,0x09,0xFE,0x09, // 0x000019F0 .C...!......K... + 0xCA,0xF9,0x0D,0xFE,0x3A,0xD2,0x60,0x1B,0xD6,0x30,0xF8,0x87,0x21,0xA2,0x1A,0xCD, // 0x00001A00 ....:.`..0..!... + 0xDE,0x13,0xCD,0x90,0x13,0x78,0x11,0xAC,0x21,0xE9,0x32,0x77,0x21,0xC3,0x12,0x08, // 0x00001A10 .....x..!.2w!... + 0x3A,0x7B,0x20,0xEE,0xFF,0x32,0x7B,0x20,0xCA,0x61,0x1A,0x0E,0x80,0xCD,0x8E,0x10, // 0x00001A20 :{ ..2{ .a...... + 0x2A,0x40,0x21,0x22,0x11,0x21,0x21,0xEE,0x19,0x22,0x40,0x21,0x21,0x00,0x00,0x22, // 0x00001A30 *@!".!!.."@!!.." + 0x43,0x21,0x22,0x72,0x21,0x2A,0x04,0x20,0x22,0xC5,0x21,0x2A,0xF8,0x20,0x22,0x0D, // 0x00001A40 C!"r!*. ".!*. ". + 0x21,0xCD,0xBA,0x1B,0x22,0x4E,0x21,0xAF,0x32,0xF8,0x20,0xCD,0xF9,0x1B,0xC3,0x36, // 0x00001A50 !..."N!.2. ....6 + 0x16,0x2A,0x11,0x21,0x22,0x40,0x21,0xCD,0xBA,0x1B,0x11,0x00,0x10,0x19,0x3A,0x50, // 0x00001A60 .*.!"@!.......:P + 0x20,0x36,0xFF,0x23,0x3D,0xC2,0x71,0x1A,0x21,0x0D,0x21,0x7E,0x32,0xF8,0x20,0x3E, // 0x00001A70 6.#=.q.!.!~2. . + 0xFF,0x23,0x77,0xCD,0x36,0x16,0x2A,0xC5,0x21,0x22,0x04,0x20,0xAF,0x32,0xC4,0x21, // 0x00001A80 .#w.6.*.!". .2.! + 0x32,0xC2,0x21,0xDB,0x42,0xE6,0x08,0xCA,0xA1,0x1A,0x3A,0x76,0x21,0xB7,0xCC,0xE8, // 0x00001A90 2.!.B.....:v!... + 0x12,0xC9,0xCF,0x1A,0x09,0x1B,0xD0,0x1A,0xF2,0x1A,0xFE,0x1A,0x0A,0x1B,0x22,0x1B, // 0x00001AA0 ..............". + 0x40,0x1B,0x41,0x1B,0xB6,0x1A,0xCD,0x52,0x1B,0xAF,0x32,0x0E,0x21,0x32,0x0D,0x21, // 0x00001AB0 @.A....R..2.!2.! + 0x3A,0xA2,0x21,0xB7,0xF5,0xCC,0x77,0x0B,0xF1,0xC4,0x63,0x0B,0xC3,0x45,0x1A,0xC7, // 0x00001AC0 :.!...w...c..E.. + 0xCD,0x52,0x1B,0x3A,0xF8,0x20,0xB7,0xC8,0xCD,0x23,0x0E,0xAE,0x77,0xCD,0x23,0x0E, // 0x00001AD0 .R.:. ...#..w.#. + 0xA6,0x06,0x54,0xC2,0xE8,0x1A,0x06,0x00,0x78,0x32,0xF4,0x20,0x3A,0xF8,0x20,0xC3, // 0x00001AE0 ..T.....x2. :. . + 0xEA,0x1E,0xCD,0x52,0x1B,0xCD,0xEC,0x0D,0xCD,0xCD,0x1C,0xC3,0xE6,0x1A,0x21,0xA5, // 0x00001AF0 ...R..........!. + 0x21,0x7E,0xEE,0x20,0x77,0xAF,0x32,0x44,0x21,0xC9,0xCD,0x4B,0x09,0x21,0x5A,0x22, // 0x00001B00 !~. w.2D!..K.!Z" + 0x7E,0xEE,0x03,0x77,0x32,0x65,0x22,0xE6,0x01,0x32,0xBE,0x21,0xCA,0xD3,0x1C,0xC3, // 0x00001B10 ~..w2e"..2.!.... + 0x35,0x1C,0xCD,0x59,0x1B,0x21,0xA6,0x21,0x3A,0xF8,0x20,0xD6,0x02,0xFE,0x28,0xD0, // 0x00001B20 5..Y.!.!:. ...(. + 0x00,0x00,0x00,0x00,0x57,0xCD,0x2B,0x0E,0xAE,0x77,0xCD,0xDB,0x1D,0xC3,0xD3,0x1C, // 0x00001B30 ....W.+..w...... + 0x1B,0xEB,0xCD,0x59,0x1B,0x32,0xF8,0x20,0x7E,0xC6,0x10,0x77,0xCD,0xDB,0x1D,0xC3, // 0x00001B40 ...Y.2. ~..w.... + 0xD3,0x1C,0x3A,0xBE,0x21,0xB7,0xC0,0xE1,0xC9,0x3A,0xBE,0x21,0xB7,0xC8,0xE1,0xC9, // 0x00001B50 ..:.!....:.!.... + 0x3A,0x69,0x20,0xE6,0x20,0xC8,0x78,0xFE,0x53,0xC2,0x72,0x1B,0xCD,0x54,0x17,0xC3, // 0x00001B60 :i . .x.S.r..T.. + 0x81,0x1B,0xFE,0x52,0xC2,0x86,0x1B,0xCD,0x5B,0x17,0xFB,0xCD,0xA2,0x03,0xCD,0x2B, // 0x00001B70 ...R....[......+ + 0x1A,0xFB,0xCD,0xF9,0x1B,0xC9,0xFE,0x41,0xC0,0xCD,0x59,0x1B,0xCD,0x4B,0x09,0x3E, // 0x00001B80 .......A..Y..K.. + 0x41,0xCD,0xE6,0x05,0x3E,0x3D,0xCD,0xE6,0x05,0x3E,0x20,0xCD,0xE6,0x05,0x21,0x9F, // 0x00001B90 A....=.... ...!. + 0x1E,0x22,0x40,0x21,0xE1,0xC9,0x98,0xFE,0x61,0xF8,0xFE,0x7B,0xF0,0xE6,0xDF,0xC9, // 0x00001BA0 ."@!....a..{.... + 0xCD,0x94,0x03,0x21,0xEE,0x19,0x22,0x40,0x21,0xC9,0x2A,0x4E,0x20,0xC3,0xC3,0x1B, // 0x00001BB0 ...!.."@!.*N ... + 0x21,0xCC,0x21,0x7C,0xE6,0x0F,0xF6,0x20,0x67,0xC9,0xCD,0xBA,0x1B,0xCD,0xC8,0x0F, // 0x00001BC0 !.!|... g....... + 0xE5,0x36,0x7F,0x23,0xEB,0xCD,0xC0,0x1B,0x7C,0xE6,0x0F,0xF6,0x70,0x12,0x13,0x7D, // 0x00001BD0 .6.#....|...p..} + 0x12,0xE1,0x3A,0x50,0x20,0x5F,0x06,0x54,0x7B,0xCD,0x27,0x0E,0xA6,0xCA,0xF4,0x1B, // 0x00001BE0 ..:P _.T{.'..... + 0x7B,0xCD,0xEA,0x1E,0x1D,0xC2,0xE8,0x1B,0xC9,0x01,0xAD,0x1C,0x21,0x53,0x22,0x3E, // 0x00001BF0 {...........!S". + 0xFA,0xCD,0x71,0x1C,0x0E,0x01,0x06,0x10,0xCD,0x8A,0x1C,0x01,0xAD,0x1C,0x3E,0xFA, // 0x00001C00 ..q............. + 0xCD,0x71,0x1C,0x0E,0x01,0x06,0x50,0xCD,0x8A,0x1C,0x01,0xB6,0x1C,0x3E,0xFD,0xCD, // 0x00001C10 .q....P......... + 0x71,0x1C,0x0E,0x13,0xCD,0x88,0x1C,0x36,0x7F,0x23,0xEB,0xCD,0xBA,0x1B,0x7C,0xF6, // 0x00001C20 q......6.#....|. + 0x70,0x12,0x13,0x7D,0x12,0xCD,0xC0,0x1B,0x3A,0x50,0x20,0x47,0x3E,0x31,0x77,0x23, // 0x00001C30 p..}....:P G.1w# + 0x4F,0xE6,0x0F,0x79,0xC2,0x49,0x1C,0xEE,0x80,0x3C,0x27,0xD2,0x50,0x1C,0xF6,0x80, // 0x00001C40 O..y.I....'.P... + 0xE6,0x8F,0xF6,0x30,0x05,0xC2,0x3E,0x1C,0xCD,0x9F,0x1C,0xCD,0xCA,0x1B,0x3E,0x01, // 0x00001C50 ...0............ + 0x32,0xBE,0x21,0x21,0x53,0x22,0x7C,0x65,0xE6,0x0F,0xF6,0x30,0x6F,0x22,0x04,0x20, // 0x00001C60 2.!!S"|e...0o". + 0xC9,0xE5,0x11,0x00,0x10,0x19,0xD1,0xF5,0x0A,0xB7,0xCA,0x86,0x1C,0x12,0xF1,0x77, // 0x00001C70 ...............w + 0x23,0x13,0x03,0xC3,0x77,0x1C,0xF1,0xC9,0x06,0x70,0xEB,0x36,0x7F,0x23,0x54,0x5D, // 0x00001C80 #...w....p.6.#T] + 0x13,0x13,0x7A,0xE6,0x0F,0xB0,0x77,0x23,0x73,0x23,0x0D,0xC2,0x8B,0x1C,0xC9,0x36, // 0x00001C90 ..z...w#s#.....6 + 0x7F,0x54,0x5D,0x23,0x7A,0xE6,0x0F,0xF6,0x70,0x77,0x23,0x73,0xC9,0x53,0x45,0x54, // 0x00001CA0 .T]#z...pw#s.SET + 0x2D,0x55,0x50,0x20,0x41,0x00,0x54,0x4F,0x20,0x45,0x58,0x49,0x54,0x20,0x50,0x52, // 0x00001CB0 -UP A.TO EXIT PR + 0x45,0x53,0x53,0x20,0x22,0x53,0x45,0x54,0x2D,0x55,0x50,0x22,0x00,0xCD,0xBA,0x1B, // 0x00001CC0 ESS "SET-UP".... + 0xC3,0xC8,0x0F,0xCD,0xCD,0x1C,0xCD,0xC0,0x1B,0xE5,0x3E,0x4E,0xCD,0xCB,0x0F,0xE1, // 0x00001CD0 ...........N.... + 0xE5,0x23,0x23,0x1E,0x00,0x06,0x04,0xDB,0x42,0xE6,0x08,0xF5,0xCA,0xF0,0x1C,0x04, // 0x00001CE0 .##.....B....... + 0x0E,0x04,0xCD,0xCC,0x1D,0xF6,0xB0,0x77,0x1C,0x23,0x0D,0xC2,0xF2,0x1C,0x0E,0x04, // 0x00001CF0 .......w.#...... + 0x36,0x00,0x1C,0x23,0x0D,0xC2,0x00,0x1D,0x05,0xC2,0xF0,0x1C,0x0E,0x04,0xF1,0xF5, // 0x00001D00 6..#............ + 0xC2,0x17,0x1D,0x79,0xC6,0x08,0x4F,0x36,0x00,0x23,0x0D,0xC2,0x17,0x1D,0x11,0x4B, // 0x00001D10 ...y..O6.#.....K + 0x1D,0x3A,0xAB,0x21,0xCD,0x61,0x1D,0x11,0x56,0x1D,0x3A,0xAC,0x21,0xCD,0x61,0x1D, // 0x00001D20 .:.!.a..V.:.!.a. + 0xCD,0x9F,0x1C,0x11,0x08,0x00,0x0E,0x04,0xF1,0xCA,0x3D,0x1D,0x0C,0x3E,0x31,0xE1, // 0x00001D30 ..........=...1. + 0x77,0x3C,0x19,0x0D,0xC2,0x40,0x1D,0xAF,0xC3,0x60,0x1C,0x20,0x20,0x20,0x54,0x20, // 0x00001D40 w....@...`. T + 0x53,0x50,0x45,0x45,0x44,0x20,0x20,0x20,0x20,0x52,0x20,0x53,0x50,0x45,0x45,0x44, // 0x00001D50 SPEED R SPEED + 0x20,0x4F,0x06,0x0B,0xCD,0x8B,0x03,0x79,0x0F,0x0F,0x4F,0x0F,0x0F,0x81,0x4F,0x06, // 0x00001D60 O.....y..O...O. + 0x00,0x11,0x7C,0x1D,0xEB,0x09,0xEB,0x06,0x05,0xC3,0x8B,0x03,0x20,0x20,0x20,0x35, // 0x00001D70 ..|......... 5 + 0x30,0x20,0x20,0x20,0x37,0x35,0x20,0x20,0x31,0x31,0x30,0x20,0x20,0x31,0x33,0x34, // 0x00001D80 0 75 110 134 + 0x20,0x20,0x31,0x35,0x30,0x20,0x20,0x32,0x30,0x30,0x20,0x20,0x33,0x30,0x30,0x20, // 0x00001D90 150 200 300 + 0x20,0x36,0x30,0x30,0x20,0x31,0x32,0x30,0x30,0x20,0x31,0x38,0x30,0x30,0x20,0x32, // 0x00001DA0 600 1200 1800 2 + 0x30,0x30,0x30,0x20,0x32,0x34,0x30,0x30,0x20,0x33,0x36,0x30,0x30,0x20,0x34,0x38, // 0x00001DB0 000 2400 3600 48 + 0x30,0x30,0x20,0x39,0x36,0x30,0x30,0x31,0x39,0x32,0x30,0x30,0xE5,0x21,0xA6,0x21, // 0x00001DC0 00 960019200.!.! + 0x53,0x7B,0xCD,0x2B,0x0E,0xA6,0xE1,0xC8,0x3E,0x01,0xC9,0x3A,0xAC,0x21,0xE6,0xF0, // 0x00001DD0 S{.+.......:.!.. + 0x0F,0x0F,0x0F,0x0F,0x47,0x3A,0xAB,0x21,0xE6,0xF0,0xB0,0x32,0x58,0x21,0xE6,0xF0, // 0x00001DE0 ....G:.!...2X!.. + 0xFE,0x20,0x3A,0xA4,0x21,0xCA,0xFF,0x1D,0xE6,0x3F,0xF6,0x80,0xC3,0x03,0x1E,0xE6, // 0x00001DF0 . :.!....?...... + 0x3F,0xF6,0xC0,0x32,0xA4,0x21,0xDB,0x42,0xE6,0x08,0xCA,0x19,0x1E,0x21,0xA7,0x21, // 0x00001E00 ?..2.!.B.....!.! + 0x7E,0xF6,0x10,0x77,0x3E,0x6E,0xC3,0x31,0x1E,0x3A,0xA9,0x21,0xE6,0xC0,0x47,0x3A, // 0x00001E10 ~..w.n.1.:.!..G: + 0xA9,0x21,0xE6,0x20,0x0F,0xF6,0x20,0xB0,0x0F,0x0F,0x47,0x3A,0xA4,0x21,0xE6,0xC3, // 0x00001E20 .!. .. ...G:.!.. + 0xB0,0x32,0xA4,0x21,0x3A,0xA9,0x21,0xE6,0x10,0xCA,0x3E,0x1E,0x3E,0x10,0xC6,0x20, // 0x00001E30 .2.!:.!........ + 0x32,0x7C,0x20,0x3A,0xA6,0x21,0xE6,0x10,0xCA,0x4D,0x1E,0x3E,0x01,0xCD,0x6E,0x1E, // 0x00001E40 2| :.!...M....n. + 0xCD,0x29,0x03,0x3A,0xF8,0x20,0xFE,0x15,0xCC,0x42,0x03,0xFE,0x1D,0xCC,0x42,0x03, // 0x00001E50 .).:. ...B....B. + 0xFE,0x0C,0xCC,0xF2,0x0B,0xFE,0x12,0xCC,0xF2,0x0B,0xCD,0x36,0x16,0xC9,0xB7,0xCA, // 0x00001E60 ...........6.... + 0x79,0x1E,0x32,0x5B,0x21,0xAF,0xC3,0x94,0x1E,0xDB,0x42,0xE6,0x02,0xC2,0x90,0x1E, // 0x00001E70 y.2[!.....B..... + 0x32,0x59,0x21,0x3E,0x01,0x32,0x5B,0x21,0x3E,0x02,0x32,0x5A,0x21,0xC3,0x6B,0x03, // 0x00001E80 2Y!..2[!..2Z!.k. + 0xAF,0x32,0x5B,0x21,0x32,0x5A,0x21,0x3E,0x80,0x32,0x59,0x21,0xC3,0x6B,0x03,0xCD, // 0x00001E90 .2[!2Z!..2Y!.k.. + 0xDD,0x1E,0x21,0x7B,0x21,0x77,0x23,0x22,0xB4,0x21,0x47,0x11,0x14,0x00,0xCD,0x83, // 0x00001EA0 ..!{!w#".!G..... + 0x10,0x21,0xB8,0x1E,0x22,0x40,0x21,0xC9,0xCD,0xDD,0x1E,0x2A,0xB4,0x21,0x47,0x3A, // 0x00001EB0 .!.."@!....*.!G: + 0x7B,0x21,0x4F,0xB8,0xCA,0xD3,0x1E,0x7D,0xFE,0x90,0xCA,0xD3,0x1E,0x70,0x23,0x22, // 0x00001EC0 {!O....}.....p#" + 0xB4,0x21,0xC9,0x71,0xCD,0xCD,0x1C,0xCD,0x4B,0x09,0xC3,0xB0,0x1B,0xF5,0xFE,0x20, // 0x00001ED0 .!.q....K...... + 0xD2,0xE5,0x1E,0x3E,0x01,0xCD,0xE3,0x05,0xF1,0xC9,0xE5,0x21,0x4E,0x20,0x4F,0x3A, // 0x00001EE0 ...........!N O: + 0xA2,0x21,0xB7,0xC2,0xFC,0x1E,0x79,0xFE,0x50,0xF2,0x0F,0x1F,0x7E,0x23,0x66,0x6F, // 0x00001EF0 .!....y.P...~#fo + 0x7C,0xE6,0x0F,0xF6,0x20,0x67,0x79,0x85,0x6F,0xD2,0x0D,0x1F,0x24,0x70,0x78,0xE1, // 0x00001F00 |... gy.o...$px. + 0xC9,0xD5,0xAF,0x32,0xA5,0x21,0x06,0x00,0x78,0x32,0x58,0x21,0xD3,0x02,0x0E,0x01, // 0x00001F10 ...2.!..x2X!.... + 0x79,0xD3,0x00,0x21,0x00,0xC0,0xC5,0xE5,0xCD,0x75,0x06,0xE1,0xC1,0xC2,0x48,0x1F, // 0x00001F20 y..!.....u....H. + 0x23,0x7C,0xB5,0xC2,0x26,0x1F,0x3E,0x05,0xD3,0x01,0x3A,0x58,0x21,0xD3,0x02,0x3E, // 0x00001F30 #|..&.....:X!... + 0x25,0x32,0xA5,0x21,0xAF,0x37,0xD1,0xC9,0xE6,0x7F,0xB9,0xC2,0x36,0x1F,0x79,0x07, // 0x00001F40 %2.!.7......6.y. + 0xFE,0x80,0x4F,0xC2,0x20,0x1F,0x78,0xC6,0x11,0x47,0xFE,0x10,0xC2,0x18,0x1F,0xAF, // 0x00001F50 ..O. .x..G...... + 0xD1,0xC9,0xD5,0x16,0x07,0x7A,0xCD,0x7B,0x1F,0xCD,0xA1,0x1F,0xBA,0xC2,0x36,0x1F, // 0x00001F60 .....z.{......6. + 0x15,0xC2,0x65,0x1F,0x3E,0x05,0xD3,0x01,0xAF,0xD1,0xC9,0x47,0xE6,0x02,0x0F,0x0F, // 0x00001F70 ..e........G.... + 0x0F,0x0F,0xF6,0x10,0x32,0xC9,0x21,0xD3,0x62,0x0E,0x05,0x78,0xE6,0x01,0xCA,0x93, // 0x00001F80 ....2.!.b..x.... + 0x1F,0x0E,0x25,0x78,0xE6,0x04,0xCA,0x9D,0x1F,0x79,0xF6,0x02,0x4F,0x79,0xD3,0x01, // 0x00001F90 ..%x.....y..Oy.. + 0xC9,0xDB,0x22,0x47,0x0E,0x01,0x78,0xE6,0x90,0xCA,0xB3,0x1F,0xFE,0x90,0x3E,0xFF, // 0x00001FA0 .."G..x......... + 0xC0,0x0E,0x00,0x78,0xE6,0x40,0xCA,0xBD,0x1F,0x79,0xF6,0x02,0x4F,0xDB,0x01,0x0F, // 0x00001FB0 ...x.@...y..O... + 0x0F,0x2F,0xE6,0x20,0xA8,0xE6,0x20,0x3E,0xFF,0xC0,0x78,0xE6,0x20,0xC2,0xD4,0x1F, // 0x00001FC0 ./. .. ...x. ... + 0x79,0xF6,0x04,0x4F,0xB7,0x79,0xC9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00001FD0 y..O.y.......... + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00001FE0 ................ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00] // 0x00001FF0 ................ +} \ No newline at end of file From 5b376917e33b867f60f6afe31d7fdb8bd7515bff Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Tue, 26 Jul 2016 16:03:16 -0700 Subject: [PATCH 02/30] Moved VT100 ROMs into the PC8080 directory --- devices/README.md | 4 ---- devices/pc8080/rom/README.md | 5 +++-- .../{vt100/rom => pc8080/rom/vt100}/23-018E2.json | 0 devices/{vt100/rom => pc8080/rom/vt100}/README.md | 10 +++++----- devices/{vt100/rom => pc8080/rom/vt100}/VT100.json | 0 devices/vt100/README.md | 12 ------------ 6 files changed, 8 insertions(+), 23 deletions(-) rename devices/{vt100/rom => pc8080/rom/vt100}/23-018E2.json (100%) rename devices/{vt100/rom => pc8080/rom/vt100}/README.md (90%) rename devices/{vt100/rom => pc8080/rom/vt100}/VT100.json (100%) delete mode 100644 devices/vt100/README.md diff --git a/devices/README.md b/devices/README.md index a2f0ac890..b2e5cafab 100644 --- a/devices/README.md +++ b/devices/README.md @@ -17,9 +17,5 @@ All PCjs machines are built from the following sets of devices: * [8080-based Devices](pc8080/) (e.g., [Space Invaders](pc8080/machine/invaders/)) * [8086-based Devices](pcx86/) (e.g., [IBM PC and compatibles](pcx86/machine/)) -The directory also contains an assortment of [ROMs](roms/) and other devices, including: - -* [VT100 Terminal](vt100/) - These devices are user-installable components that you would typically find in a real personal computer, such as keyboards, disk drive controllers with one or more drives, video cards, etc. diff --git a/devices/pc8080/rom/README.md b/devices/pc8080/rom/README.md index 2ff980469..6c8cf17af 100644 --- a/devices/pc8080/rom/README.md +++ b/devices/pc8080/rom/README.md @@ -16,5 +16,6 @@ for each ROM in the machine; eg: The project currently contains the following 8080-based ROMs: - * [Space Invaders (1978)](invaders/) - * [8080 Exerciser Tests](exerciser/) +* [8080 Exerciser Tests](exerciser/) +* [DEC VT100](vt100/) +* [Space Invaders (1978)](invaders/) diff --git a/devices/vt100/rom/23-018E2.json b/devices/pc8080/rom/vt100/23-018E2.json similarity index 100% rename from devices/vt100/rom/23-018E2.json rename to devices/pc8080/rom/vt100/23-018E2.json diff --git a/devices/vt100/rom/README.md b/devices/pc8080/rom/vt100/README.md similarity index 90% rename from devices/vt100/rom/README.md rename to devices/pc8080/rom/vt100/README.md index b4b5f22b4..d010d0b14 100644 --- a/devices/vt100/rom/README.md +++ b/devices/pc8080/rom/vt100/README.md @@ -1,13 +1,13 @@ --- layout: page -title: VT100 ROMs -permalink: /devices/vt100/rom/ +title: DEC VT100 ROMs +permalink: /devices/pc8080/rom/vt100/ --- -VT100 ROMs ----------- +DEC VT100 ROMs +-------------- -The VT100 used four 2Kb ROMs to store the code used by its 8080 processor. +The DEC VT100 Terminal used four 2Kb ROMs to store the code used by its 8080 processor. Their combined contents are stored in [VT100.json](VT100.json). As Trammell Hudson's [VT100 Page](https://trmm.net/VT100) explains: diff --git a/devices/vt100/rom/VT100.json b/devices/pc8080/rom/vt100/VT100.json similarity index 100% rename from devices/vt100/rom/VT100.json rename to devices/pc8080/rom/vt100/VT100.json diff --git a/devices/vt100/README.md b/devices/vt100/README.md deleted file mode 100644 index 67157a3e5..000000000 --- a/devices/vt100/README.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -layout: page -title: VT100 Terminal Resources -permalink: /devices/vt100/ ---- - -VT100 Terminal Resources ------------------------- - -For emulation of Digital Equipment Corporation's VT100 terminal, this directory contains the following resources: - -* [ROMs](rom/) From c8f5357689fd55ec9a8235923202eb2110e760e8 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Wed, 27 Jul 2016 12:03:12 -0700 Subject: [PATCH 03/30] More VT100 groundwork --- devices/pc8080/machine/README.md | 3 +- devices/pc8080/machine/vt100/README.md | 59 ++++++++++++++++++++++++ devices/pc8080/machine/vt100/machine.xml | 20 ++++++++ devices/pc8080/rom/README.md | 2 +- devices/pc8080/rom/vt100/README.md | 2 +- modules/pc8080/lib/video.js | 28 +++++++---- modules/shared/templates/components.xsl | 14 +++++- pubs/README.md | 8 +++- pubs/c1p/README.md | 11 +++++ pubs/dec/README.md | 10 ++++ pubs/dec/vt100/README.md | 19 ++++++++ 11 files changed, 162 insertions(+), 14 deletions(-) create mode 100644 devices/pc8080/machine/vt100/README.md create mode 100644 devices/pc8080/machine/vt100/machine.xml create mode 100644 pubs/c1p/README.md create mode 100644 pubs/dec/README.md create mode 100644 pubs/dec/vt100/README.md diff --git a/devices/pc8080/machine/README.md b/devices/pc8080/machine/README.md index f7e9a1079..1ad417684 100644 --- a/devices/pc8080/machine/README.md +++ b/devices/pc8080/machine/README.md @@ -9,5 +9,6 @@ PC8080 Machine Configurations The following 8080-based machines are currently available: +* [8080 Exerciser](exerciser/) * [Space Invaders (1978)](invaders/) -* [8080 Exerciser Test Machine](exerciser/) +* [DEC VT100 Terminal](vt100/) diff --git a/devices/pc8080/machine/vt100/README.md b/devices/pc8080/machine/vt100/README.md new file mode 100644 index 000000000..4da50c242 --- /dev/null +++ b/devices/pc8080/machine/vt100/README.md @@ -0,0 +1,59 @@ +--- +layout: page +title: VT100 Terminal +permalink: /devices/pc8080/machine/vt100/ +machines: + - type: pc8080 + id: vt100 + debugger: true +--- + +VT100 Terminal +-------------- + +This is where we'll be testing another 8080-based machine: a VT100 Terminal. Unlike other VT100 emulations, +this will simulate a VT100 by running the terminal's original firmware inside the [PC8080](/modules/pc8080/) CPU emulator. + +As described in the [Technical Manual (July 1982)](http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/terminal/vt100/EK-VT100-TM-003_VT100_Technical_Manual_Jul82.pdf), +p. 4-15, 8Kb (0x2000) of ROM is located at 0x0000, and 3Kb (0x0C00) of RAM immediately follows it at 0x2000. + +[vt100romhax](http://vt100romhax.tumblr.com/post/90697428973/the-vt100-memory-map-and-8080-disassembly) +(aka [phooky](https://github.com/phooky)) further explains VT100 memory usage: + + Start End Size Description + 0x0000 0x1fff 8K Basic ROM + 0x2000 0x2012 18B Blank lines for refresh (6 x 3B) + 0x2012 0x204f 61B Stack area (grows down from 0x204e) + 0x204f 0x22d0 641B Scratch Pad/Setup Area(?) + 0x22d0 0x2c00 2352B Screen RAM + +Normally, the PC8080 Video component allocates its own video buffer, based on the specified buffer address +(*bufferAddr*) and other dimensions (eg, *bufferCols* and *bufferRows*), but the VT100 is a little unusual: +it has a custom video processor that uses DMA to request character data from any region of RAM, one line at a time. +It always defaults to address 0x2000 for the first line of character data, but each line terminates with 3 bytes +containing line attributes and the address of the next line, so the location of subsequent lines will vary, +depending on the following line attributes: + +* Single-width characters (80 or 132 columns) +* Double-width characters (40 or 66 columns) + +In addition to single vs. double width, line attributes can also specify double height (along with whether the +top half or bottom half of the character should be displayed). + +The VT100 screen displays 800 dots per horizontal scan, and a total of 240 horizontal scans, +so for optimum scaling, we define our own screen using multiples of those dimensions (currently 1600x480), +and by default, it uses a 10x10 character cell, so the default display dimensions are 80 columns by 24 rows. + +In light of the above, the [machine XML file](machine.xml) must set the Video component's *bufferRAM* property +to "true", indicating that existing RAM should be used, and a new property, *bufferFormat* must be set to "vt100", +enabling support for the VT100's line data format; eg: + + +