diff --git a/_posts/2016-02-24-compaq-revisited.md b/_posts/2016-02-24-compaq-revisited.md
new file mode 100644
index 000000000..0e4f72830
--- /dev/null
+++ b/_posts/2016-02-24-compaq-revisited.md
@@ -0,0 +1,182 @@
+---
+layout: post
+title: "COMPAQ Revisited"
+date: 2016-02-24 14:00:00
+permalink: /blog/2016/02/24/
+---
+
+I finally obtained a [ROM Dump](/devices/pc/rom/compaq/bios/portable/) from COMPAQ's first machine,
+the [COMPAQ Portable](#compaq-portable).
+
+At the same time, I thought it would be a good idea to create my own roughly chronological list of COMPAQ machines from
+the 1980s, since they are all machines I would like to see PCjs eventually support:
+
+ + [COMPAQ Portable](#compaq-portable)
+ + COMPAQ [Portable] Plus
+ + COMPAQ DeskPro
+ + COMPAQ DeskPro 286
+ + COMPAQ Portable 286
+ + COMPAQ Portable II
+ + [COMPAQ DeskPro 386](#compaq-deskpro-386)
+ + [COMPAQ Portable III](#compaq-portable-iii)
+ + COMPAQ Portable 386
+ + COMPAQ 386/20e
+ + COMPAQ SLT Series
+ + COMPAQ SLT/286
+ + COMPAQ LTE Series
+ + COMPAQ LTE 286
+ + COMPAQ LTE 386
+
+It's hard to stop at this point, because COMPAQ did produce other 80386-based systems, like those in the "LTE Lite"
+series. But I think I need to stick my original plan and draw a line at the end of the 1980s.
+
+Below is a random assortment of information I've gathered about some of the above models, with gaping holes for others.
+Currently, the *most* gaping is the [COMPAQ DeskPro 386](#compaq-deskpro-386), because that's the one COMPAQ machine
+that PCjs *already* supports. I just need more time to organize and fill in the details.
+
+---
+
+COMPAQ Portable
+---
+
+PCjs now has a [ROM Dump](/devices/pc/rom/compaq/bios/portable/).
+
+Reviewed in Byte Magazine, Jan 1983. Reprinted [here](http://blog.modernmechanix.com/byte-reviews-the-compaq-first-pc-clone/).
+
+Also see [Wikipedia](https://en.wikipedia.org/wiki/Compaq_Portable).
+
+
+COMPAQ Portable Plus (aka COMPAQ Plus)
+---
+
+Reviewed in Byte Magazine, Jul 1984, pp. 247-251: "The Compaq Plus".
+
+
+COMPAQ DeskPro
+---
+
+Introduced June 28, 1984. Reviewed in Byte Magazine, May 1985, pp. 260-267. For use with MS-DOS 2.11.
+
+**Model** | **Price** | **CPU** | **Options**
+:-------- | :-------- | :---------------- | :------------------------------------------
+Model 1 | $2495 | 4.77-7.14Mhz 8086 | 128Kb RAM, 1 FDD
+Model 2 | $2995 | 4.77-7.14Mhz 8086 | 256Kb RAM, 2 FDD
+Model 3 | $4995 | 4.77-7.14Mhz 8086 | 256Kb RAM, 1 FDD, 10Mb HDD
+Model 4 | $7195 | 4.77-7.14Mhz 8086 | 640Kb RAM, 1 FDD, 10Mb HDD, 10Mb Tape Drive
+ | | |
+
+COMPAQ DeskPro 286
+---
+
+Released in 1985 at the same time as the [COMPAQ Portable 286](#compaq-portable-286).
+
+Reviewed in [InfoWorld](https://books.google.com/books?id=2i4EAAAAMBAJ&lpg=PA15&dq=infoworld%20compaq%20deskpro%201985&pg=PA15#v=onepage&q&f=false),
+May 20, 1985: "Compaq Edges Past AT Speed and Memory: New Products Use Intel 80286 Processor For 30 Percent Speed Boost".
+
+Updated to 12Mhz in 1987.
+From [InfoWorld](https://books.google.com/books?id=yzAEAAAAMBAJ&lpg=PA56&ots=jBzxR3wcps&dq=%22compaq%20deskpro%20286%22&pg=PA56#v=onepage&q&f=false),
+June 1987: "Compaq Brings 12-Mhz Machine to 286 Market"
+
+
+COMPAQ Portable 286
+---
+
+Introduced in 1985.
+
+**Model** | **Price** | **CPU** | **Options**
+:-------- | :-------- | :---------------- | :----------------------------------------------------
+ | | 8Mhz 80286 | Up to 2.6Mb RAM, 1.2Mb FDD, 20Mb HDD, 10Mb Tape Drive
+ | | |
+
+See this [COMPAQ Advertisement](http://www.computerhistory.org/revolution/mobile-computing/18/343/1658).
+
+On July 8, 1985, the [Los Angeles Times](http://articles.latimes.com/1985-07-08/business/fi-9857_1_hard-disk-drive)
+reported:
+
+>It's not cheap and it's not for everyone. Equipped as described, the portable lists for $10,378 and contains
+about $3,000 worth of extra RAM memory that cannot be utilized by any application software programs now on the market.
+(It can be used to simulate a disk drive to speed up programs, however.)
+
+>A standard Compaq Deskpro 286 with 512 kilobytes of RAM memory, a 30-megabyte hard disk and a monitor is priced
+at $6,254, compared to IBM's similarly equipped enhanced PC AT that offers only a 20-megabyte hard disk. The Portable
+286 with 512K of memory and 20-megabyte hard disk lists for $6,299.
+
+
+COMPAQ Portable II
+---
+
+The COMPAQ Portable II ("slimmed-down version of the Portable 286", as described in Byte Magazine, Oct 1986) was
+released on February 20, 1986. For use with MS-DOS 3.10.
+
+**Model** | **Price** | **CPU** | **Options**
+:-------- | :-------- | :---------------- | :------------------------------------------
+Model 1 | $3499 | 6-8Mhz 80286 | 256Kb RAM, 1 FDD
+Model 2 | $3599 | 6-8Mhz 80286 | 256Kb RAM, 2 FDD
+Model 3 | $4799 | 6-8Mhz 80286 | 640Kb RAM, 1 FDD, 10Mb HDD
+Model 4 | $4999 | 6-8Mhz 80286 | 640Kb RAM, 1 FDD, 20Mb HDD
+ | | |
+
+Also see [Wikipedia](https://en.wikipedia.org/wiki/Compaq_Portable_II).
+
+
+COMPAQ DeskPro 386
+---
+
+Released in late 1986.
+
+PCjs has detailed information about the [DeskPro 386 ROMs](/devices/pc/rom/compaq/bios/deskpro386/) and system boards.
+
+I also have the hard-to-find **COMPAQ Technical Reference Guide** for the DeskPro 386/25 (Vol. 1), which I'll post
+at a later date.
+
+
+COMPAQ Portable III
+---
+
+Reportedly intended to be an 80386-based machine, the Portable III was first released in 1987 as a 12Mhz
+80286-based system.
+
+PCjs also has information about [COMPAQ Portable III ROMs](/devices/pc/rom/compaq/bios/portable3/).
+
+**Model** | **Price** | **CPU** | **Options**
+:-------- | :-------- | :---------------- | :----------------------------
+ | $5000+ | 12Mhz 80286 | 640Kb RAM, 1 FDD, 20-40Mb HDD
+ | | |
+
+
+COMPAQ Portable 386
+---
+
+[TBD]
+
+
+COMPAQ 386/20e
+---
+
+Released in late 1988. For use with MS-DOS 3.31.
+
+
+COMPAQ SLT Series
+---
+
+From [Wikipedia](https://en.wikipedia.org/wiki/History_of_laptops#Compaq_SLT.2F286): "The COMPAQ SLT/286 debuted
+in October 1988, being the first battery-powered laptop to support an internal hard disk drive and a VGA compatible
+LCD screen. It weighed 14 lbs."
+
+
+COMPAQ LTE Series
+---
+
+First model in 1989.
+
+Also see [Wikipedia](https://en.wikipedia.org/wiki/Compaq_LTE).
+
+### COMPAQ LTE 286
+
+Various models, such as the [Model 40](http://www.overclockers.com/compaq-lte-286-model-40/).
+
+### COMPAQ LTE 386
+
+
+*[@jeffpar](http://twitter.com/jeffpar)*
+*February 24, 2016*
diff --git a/devices/pc/rom/README.md b/devices/pc/rom/README.md
index c5bbf2a47..86309be76 100644
--- a/devices/pc/rom/README.md
+++ b/devices/pc/rom/README.md
@@ -11,22 +11,21 @@ BASIC ROMs
The project contains the following IBM PC BASIC ROMs:
-* [IBM BASIC 1.00](5150/basic/BASIC100.json)
-* [IBM BASIC 1.10](5160/basic/BASIC110.json)
+ * [IBM BASIC 1.00](5150/basic/BASIC100.json)
+ * [IBM BASIC 1.10](5160/basic/BASIC110.json)
BIOS ROMs
---
The project contains the following IBM PC BIOS ROMs:
-* [Model 5150: Apr 24, 1981](5150/bios/1981-04-24/PCBIOS-REV1.json)
-* [Model 5150: Oct 19, 1981](5150/bios/1981-10-19/PCBIOS-REV2.json)
-* [Model 5150: Oct 27, 1982](5150/bios/1982-10-27/PCBIOS-REV3.json)
-* [Model 5160: Nov 08, 1982](5160/bios/1982-11-08/XTBIOS-REV1.json)
-* [Model 5160: May 09, 1986](5160/bios/1986-05-09/XTBIOS-REV3.json)
+ * [Model 5150: Apr 24, 1981](5150/bios/1981-04-24/PCBIOS-REV1.json)
+ * [Model 5150: Oct 19, 1981](5150/bios/1981-10-19/PCBIOS-REV2.json)
+ * [Model 5150: Oct 27, 1982](5150/bios/1982-10-27/PCBIOS-REV3.json)
+ * [Model 5160: Nov 08, 1982](5160/bios/1982-11-08/XTBIOS-REV1.json)
+ * [Model 5160: May 09, 1986](5160/bios/1986-05-09/XTBIOS-REV3.json)
As well as BIOS ROMs, with more detailed information, for the following machines:
-* [Model 5170](5170/bios/)
-* [Compaq DeskPro 386](compaq/bios/deskpro386/)
-* [Compaq Portable III](compaq/bios/portable3/)
+ * [IBM PC AT Model 5170](5170/bios/)
+ * [COMPAQ Portable and DeskPro Machines](compaq/bios/)
diff --git a/devices/pc/rom/compaq/bios/README.md b/devices/pc/rom/compaq/bios/README.md
new file mode 100644
index 000000000..4ea28d6ac
--- /dev/null
+++ b/devices/pc/rom/compaq/bios/README.md
@@ -0,0 +1,26 @@
+---
+layout: post
+title: COMPAQ BIOS ROMs
+date: 2016-02-24 14:00:00
+permalink: /blog/2016/02/24/
+---
+
+COMPAQ BIOS ROMs
+---
+
+Since the PCjs Project is focused on the 1980's, this roughly chronological list of COMPAQ machines is limited to
+that era:
+
+ + [COMPAQ Portable](portable/)
+ + COMPAQ [Portable] Plus
+ + COMPAQ DeskPro
+ + COMPAQ DeskPro 286
+ + COMPAQ Portable 286
+ + COMPAQ Portable II
+ + [COMPAQ DeskPro 386](deskpro386/)
+ + [COMPAQ Portable III](portable3/)
+ + COMPAQ Portable 386
+ + COMPAQ SLT Series
+ + COMPAQ LTE Series
+ + COMPAQ LTE 286
+ + COMPAQ LTE 386
diff --git a/devices/pc/rom/compaq/bios/deskpro386/README.md b/devices/pc/rom/compaq/bios/deskpro386/README.md
index 4287f9ad4..4d381903c 100644
--- a/devices/pc/rom/compaq/bios/deskpro386/README.md
+++ b/devices/pc/rom/compaq/bios/deskpro386/README.md
@@ -1,21 +1,22 @@
---
layout: page
-title: Compaq DeskPro 386 ROMs
+title: COMPAQ DeskPro 386 ROMs
permalink: /devices/pc/rom/compaq/bios/deskpro386/
redirect_from:
- /devices/pc/bios/compaq/deskpro386/
---
-Compaq DeskPro 386 ROMs
+COMPAQ DeskPro 386 ROMs
---
-The oldest Compaq DeskPro 386 ROM I have is a Rev J.4 ROM from a "Version 2" motherboard designed
+
+The oldest COMPAQ DeskPro 386 ROM I have is a Rev J.4 ROM from a "Version 2" motherboard designed
in 1987 and released in 1988.
[
](http://archive.pcjs.org/pubs/pc/reference/compaq/images/Compaq_DeskPro_386-16_System_Board_V2.jpg)
Thanks to folks on the [Vintage Computer](http://www.vintage-computer.com/) forums, I also have a Rev N.1 ROM from 1989.
-However, I'm still on the lookout for any "Version 1" motherboards from 1986, so that I can obtain dumps of Compaq's
+However, I'm still on the lookout for any "Version 1" motherboards from 1986, so that I can obtain dumps of COMPAQ's
ROMs for their earliest 80386-based systems.
### System ROM Locations on COMPAQ DESKPRO 386 System Board Version 2 (Assembly No. 000558-001)
@@ -58,22 +59,23 @@ from the two 16Kb BIN files provided by [Al Kossow](http://www.vintage-computer.
Dumping the ROMs
---
-The *.hex* files for the 1988-01-28 DeskPro ROM were produced by running [eeprom_read](http://github.com/phooky/PROM/blob/master/tools/eeprom_read/eeprom_read.pde)
-on a [chipKIT Uno32](http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,892,893&Prod=CHIPKIT-UNO32) Arduino-compatible
-prototyping board, and capturing the serial port output on my MacBook Pro -- as outlined in
+The *.hex* files for the 1988-01-28 DeskPro ROM were produced by running
+[eeprom_read](http://github.com/phooky/PROM/blob/master/tools/eeprom_read/eeprom_read.pde)
+on a [chipKIT Uno32](http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,892,893&Prod=CHIPKIT-UNO32)
+Arduino-compatible prototyping board, and capturing the serial port output on my MacBook Pro -- as outlined in
"[Stick a Straw in Its Brain and Suck: How to Read a ROM](http://www.nycresistor.com/2012/07/07/stick-a-straw-in-its-brain-and-suck-how-to-read-a-rom/)"
by [NYC Resistor](http://www.nycresistor.com/) contributor [phooky](http://www.nycresistor.com/author/phooky/).
-The DeskPro 386 ROMs were P27128A-2 chips, so I wired my Uno32 based on this [27128A](http://archive.pcjs.org/pubs/pc/datasheets/27128A.pdf)
-datasheet -- the closest match I could find online.
+The DeskPro 386 ROMs were P27128A-2 chips, so I wired my Uno32 based on this
+[27128A](http://archive.pcjs.org/pubs/pc/datasheets/27128A.pdf) datasheet -- the closest match I could find online.

-On my first dump attempt, every ROM address returned 0xFF. After looking at the 27128A datasheet more closely, I noticed
-the DEVICE OPERATION table indicated that, for a READ operation, /CE and /OE pins should be connected to INPUT LOW VOLTAGE,
-while the /PGM should be connected to INPUT HIGH VOLTAGE. So I wired pin 27 (/PGM) to +5V instead of GND, and the dump
-worked perfectly. The NYC Resistor article implied that every *active low* pin should be connected to GND, but apparently
-there are exceptions to that general rule.
+On my first dump attempt, every ROM address returned 0xFF. After looking at the 27128A datasheet more closely,
+I noticed the DEVICE OPERATION table indicated that, for a READ operation, /CE and /OE pins should be connected to
+INPUT LOW VOLTAGE, while the /PGM should be connected to INPUT HIGH VOLTAGE. So I wired pin 27 (/PGM) to +5V instead
+of GND, and the dump worked perfectly. The NYC Resistor article implied that every *active low* pin should be
+connected to GND, but apparently there are exceptions to that general rule.
Recreating ROM Source Code
---
@@ -104,7 +106,7 @@ However, it does NOT produce a binary identical to the original ROM, in part bec
instructions that can be assembled multiple ways). It's possible the reassembled ROM may still work, but more research
is required.
-One interesting section of the Compaq DeskPro ROM is this string at offset 0xE002:
+One interesting section of the COMPAQ DeskPro ROM is this string at offset 0xE002:
db 'AUTHORS CAB93GLB93RWS93DJC93NPB(C)Copyright COMPAQ Computer Corporation 1982,83,84,85,86'
diff --git a/devices/pc/rom/compaq/bios/portable/100666-001-REVC.hex b/devices/pc/rom/compaq/bios/portable/100666-001-REVC.hex
new file mode 100644
index 000000000..f10957104
--- /dev/null
+++ b/devices/pc/rom/compaq/bios/portable/100666-001-REVC.hex
@@ -0,0 +1,512 @@
+CD 18 28 43 29 20 43 6F 70 79 72 69 67 68 74 20
+43 4F 4D 50 41 51 20 43 6F 6D 70 75 74 65 72 20
+43 6F 72 70 6F 72 61 74 69 6F 6E 2C 20 31 39 38
+33 2C 20 41 6C 6C 20 72 69 67 68 74 73 20 72 65
+73 65 72 76 65 64 2E 20 2A 4A 53 46 2A 50 4E 41
+2A 43 48 4C 2A 43 52 4A 2A 20 20 FA B0 99 E6 63
+B0 4D E6 61 B0 0C BA F2 03 EE 8C C8 8E D8 FC BB
+0E E1 BD 02 00 B0 01 8A 17 EE B4 00 8B 77 03 8A
+57 01 8A C4 EE AC 42 EE 4A FE C4 80 FC 10 75 F2
+8A 17 80 FA D8 75 05 42 B0 30 EE 4A B8 20 07 8E
+47 05 33 FF 8B 4F 07 F3 AB 8A 47 02 EE 83 C3 09
+4D 75 C2 B0 74 E6 43 B0 13 E6 41 B0 00 E6 41 E6
+0D B0 00 E6 08 B0 58 E6 0B E6 0C B0 00 E6 00 E6
+00 E6 83 B0 FF E6 01 E6 01 B0 0E E6 0F 33 C0 8E
+D0 BC 00 04 B0 13 E6 20 B0 08 E6 21 B0 09 E6 21
+B0 FF E6 21 B0 36 E6 43 B0 FF E6 40 E6 40 B8 40
+00 8E D8 A1 72 00 3D 34 12 75 15 E9 92 02 B8 B4
+29 D4 F0 00 B0 00 08 D8 D4 2D B4 F0 00 B8 00 20
+BD 26 E1 E9 95 00 33 DB 33 D2 33 C9 8E C2 33 FF
+8B C7 32 C4 32 C6 32 C3 AA E2 F5 80 C6 08 80 FE
+38 72 02 B5 80 77 03 80 C6 08 3B D6 72 DE E4 61
+0C 30 E6 61 24 CF E6 61 33 D2 33 C9 8E DA 33 FF
+8B C7 32 C4 32 C6 32 C3 32 05 75 25 47 E2 F1 E4
+62 A8 C0 B0 00 75 1A 80 C6 08 80 FE 38 72 02 B5
+80 77 03 80 C6 08 3B D6 72 D2 80 F3 FF 75 99 EB
+24 B2 80 84 C2 75 04 D0 EA 73 F8 BD A1 E1 E9 85
+00 47 47 BA 01 02 BD AC E1 E9 72 00 BB 70 17 BD
+B5 E1 E9 5D 00 B8 00 40 E9 E5 01 BE 01 00 BB 00
+08 8E DB C6 04 00 80 C7 08 80 FF A0 72 F3 BB 00
+08 8E DB 80 34 FF 74 08 80 C7 08 80 FF A0 72 F1
+8B F3 E4 61 0C 80 E6 61 93 E4 60 93 24 7F E6 61
+FF E5 B0 B6 E6 43 B8 38 05 E6 42 8A C4 E6 42 E4
+61 0C 03 E6 61 95 E8 08 00 95 E4 61 24 FD E6 61
+C3 5D B9 04 01 E2 FE 4B 75 F8 FF E5 10 00 B9 04
+00 D3 E2 49 EB 05 33 FF B9 04 00 B8 00 B8 8E C0
+92 2E F7 26 1C E2 92 04 90 27 14 40 27 AA 47 E2
+EF FF E5 F6 C6 C0 74 11 BB E8 03 E8 A4 FF BB FA
+00 E8 BD FF 80 EE 40 EB EA F6 C6 30 74 11 BB FA
+00 E8 8E FF BB FA 00 E8 A7 FF 80 EE 10 EB EA 8A
+C6 E8 19 00 8A C2 E8 09 00 B0 0D E8 17 00 B0 0A
+EB 13 8A E8 B1 04 D2 E8 E8 02 00 8A C5 24 0F 04
+90 27 14 40 27 BB 07 00 B4 0E CD 10 C3 51 B9 64
+00 B2 F4 F6 E2 EC A8 80 75 05 E2 F7 E9 79 03 F6
+E2 EC 42 59 A8 40 C3 03 DF 02 07 00 08 FF FF FF
+FF FF FF 50 E4 62 A8 C0 75 02 58 CF FC BA D4 03
+B8 2D 30 BE B4 F0 BF 10 00 8C CB 8E DB BD E3 E2
+E9 C0 0F BB 00 B8 8E C3 B9 00 20 33 FF B8 20 07
+F3 AB BB F4 01 BD FB E2 E9 17 FF B0 2D 83 C2 04
+EE 33 FF B9 0D 00 BE 19 E3 A4 47 E2 FC E4 62 A8
+80 B0 31 75 02 B0 32 AA F4 50 41 52 49 54 59 20
+43 48 45 43 4B 20 50 33 C0 B9 00 01 EE EE EC 3A
+C4 75 0D EC 3A C4 75 08 FE C0 FE C4 E2 EE 58 C3
+58 59 FF E3 23 FF 23 FF C3 E2 23 FF 23 FF 54 FF
+23 FF 23 FF A5 FE 87 E9 23 FF 23 FF 23 FF 23 FF
+57 EF 23 FF 65 F0 4D F8 41 F8 59 EC 39 E7 59 F8
+2E E8 D2 EF 48 F9 F2 E6 6E FE 53 FF 53 FF A4 F0
+C7 EF 00 00 1E E7 F8 03 F8 02 BC 03 78 03 78 02
+14 14 14 14 01 01 01 01 1E 00 3E 00 03 01 03 07
+92 BD A7 E3 E9 14 FE 33 ED 33 C0 33 FF 8E C5 B9
+00 40 F3 AB 81 C5 00 08 3B EE 72 EF 8E C0 BE 44
+E3 33 FF B9 21 00 8C C8 2E A5 AB E2 FB B0 80 E6
+A0 B8 40 00 8E D8 B1 06 D3 ED 89 2E 13 00 89 16
+72 00 32 FF F6 C3 01 74 0B 26 8C 45 FA 83 ED 40
+89 2E 15 00 8E C0 BA 01 02 EC A8 0F 75 03 80 CF
+10 BE 86 E3 BF 00 00 B9 02 00 2E AD 05 03 00 92
+EC F6 D0 EE 8A E0 EC 3A C4 75 08 80 C7 02 92 2D
+03 00 AB E2 E5 BE 8A E3 BF 08 00 B1 03 2E AD 92
+EC F6 D0 EE 8A E0 EC 3A C4 75 05 80 C7 40 92 AB
+E2 EB F6 C3 01 75 0D BF 78 00 B9 06 00 F3 2E A5
+85 C9 75 F9 89 1E 10 00 C6 06 6A 00 00 E8 C4 07
+8A C3 24 30 BB 9C E3 B1 04 D2 E8 2E D7 98 CD 10
+B8 00 C0 E8 E0 01 3D 00 C8 72 F8 B8 40 00 8E D8
+A0 65 00 24 F7 BA D8 03 EE BF 02 00 B9 55 AA 81
+E1 FF 3F BA D4 03 B3 0E E8 C2 0E 4A B0 0E EE 42
+EC 3A C5 75 43 4A B0 0F EE 42 EC 3A C1 75 39 F7
+D1 4F 75 DB B8 00 B8 8E C0 33 DB 33 FF B9 00 40
+8B C7 32 C4 7B 02 FE C0 32 C3 AA E2 F3 33 FF B9
+00 40 8B C7 32 C4 7B 02 FE C0 32 C3 AE E1 F3 75
+07 80 F3 FF 75 D5 EB 06 BA 01 65 E8 55 FD B8 20
+07 33 FF B9 00 20 F3 AB BA D4 03 B3 0E E8 5D 0E
+A0 65 00 0C 08 BA D8 03 EE E9 03 00 E9 D2 00 BE
+00 E0 33 D2 B9 00 10 2E AD 03 D0 E2 FA 85 D2 74
+06 BA 01 51 E8 1C FD BB 81 E5 BA 21 00 E8 F6 FD
+B0 FF EE E4 61 8A D8 24 FE E6 61 33 C0 B9 00 01
+B0 B6 E6 43 8A C4 E6 42 E6 42 B0 80 E6 43 E4 42
+3A C4 75 2D E4 42 3A C4 75 27 FE C4 E2 E2 8A C3
+E6 61 E4 61 BB 81 E5 BA 61 00 E8 B9 FD E6 61 BA
+02 00 E6 C0 B9 06 00 91 E8 AB FD 91 42 E2 F8 EB
+06 BA 01 01 E8 BC FC E4 61 0C 80 24 BF E6 61 24
+7F E6 61 BB 28 00 E8 78 FC 0C 40 E6 61 B3 14 E8
+6F FC E8 53 04 86 C4 3C AA 75 0E B3 14 E8 61 FC
+E8 45 04 86 C4 0A C0 74 12 0A C0 74 03 E8 C2 FC
+B0 20 E8 D0 FC BA 01 03 E8 78 FC BA BC 03 EC BB
+D7 E5 E8 51 FD EB 06 BA 01 04 E8 66 FC BA BC 03
+EE 0E 1F BE B7 E2 BB 04 00 FC BA F2 03 B0 FF E6
+21 B0 00 EE B8 64 00 E8 BF 09 B0 0C EE B8 64 00
+E8 B6 09 E8 C6 19 B0 1C B2 F2 EE E8 BE 19 B8 F4
+01 E8 A5 09 E8 B5 19 B9 64 00 E8 80 FC E1 FB 74
+07 F6 E2 EC A8 C0 74 06 BA 01 06 E8 15 FC B0 00
+BA F2 03 EE B8 00 C8 E8 1C 00 3D 00 F4 76 F8 BB
+2C 01 E8 AD FB 9C FA E4 21 24 BC E6 21 9D B0 EC
+BA BE 03 EE CD 19 8E D8 33 DB 81 3F 55 AA 75 0F
+FC 33 F6 33 C9 8A 6F 02 D1 E1 AC 02 D8 E2 FB BB
+80 00 75 14 B8 40 00 8E C0 1E B8 03 00 50 8B EC
+FF 5E 00 58 58 BB 00 02 03 C3 C3 8A E3 B9 FF FF
+EC 84 C7 74 00 75 09 E2 F7 FE CC 75 F0 B4 80 C3
+B4 00 C3 0D 0A 44 69 73 6B 65 74 74 65 20 65 72
+72 6F 72 0D 0A 52 65 70 6C 61 63 65 20 61 6E 64
+20 73 74 72 69 6B 65 20 61 6E 79 20 6B 65 79 20
+77 68 65 6E 20 72 65 61 64 79 0D 0A 24 E9 81 03
+50 56 1E B8 40 00 8E D8 B8 03 00 E8 5E 02 1F 5E
+58 CF FB BB 40 00 8E DB B9 03 00 51 BA 00 00 8E
+C2 B4 00 CD 13 BB 00 7C B9 01 00 B8 01 02 CD 13
+59 73 06 E2 E6 CD 20 EB DA EA 00 7C 00 00 FB FC
+50 53 56 BE A3 E6 2E AC 3C 24 74 05 E8 66 FB EB
+F5 B4 00 CD 16 5E 5B 58 CF FB 53 51 52 56 1E BB
+40 00 8E DB 81 E2 03 00 8B F2 B3 01 E8 FE 17 75
+04 8A 9C 7C 00 D1 E6 8B 94 00 00 0B D2 74 10 84
+E4 74 12 FE CC 74 41 FE CC 74 75 FE CC 74 2F 1F
+5E 5A 59 5B CF 50 96 83 C2 03 B0 80 EE 83 EA 03
+B1 04 D3 EE 81 E6 0E 00 2E 8B 84 1E E8 EE 8A C4
+42 EE 42 42 58 24 1F EE 4A 4A 32 C0 EE 4A 83 C2
+05 EC 8A E0 42 EC EB C7 50 52 83 C2 04 B0 03 EE
+42 42 B7 20 E8 D4 FE 74 0D B7 10 E8 CD FE 74 06
+4A B7 20 E8 C5 FE 5A 59 8A C1 84 E4 75 01 EE E8
+7B 17 75 0A 83 C2 05 EC 24 60 0A E0 8A C1 EB 8F
+83 C2 04 B0 01 EE 42 42 B7 20 E8 9E FE 74 22 BE
+71 00 80 24 7F 4A B7 01 B4 80 B9 FF FF EC 84 C7
+75 11 84 24 75 0B E2 F5 E8 42 17 75 ED FE CB 75
+E9 EB CB 8A E0 83 EA 05 EC 80 E4 1E EB C0 17 04
+00 03 80 01 C0 00 60 00 30 00 18 00 0C 00 FB FC
+1E 56 55 8B EC BE 40 00 8E DE 84 E4 74 0E FE CC
+74 31 FE CC 74 3E 5D 5E 1F CF FB 90 FA E8 CA 03
+74 F8 E8 F8 16 75 0C 3B 36 82 00 75 0F 8B 36 80
+00 EB 09 81 FE 3E 00 75 03 BE 1E 00 89 36 1A 00
+FB EB D3 80 4E 0A 40 FA E8 9F 03 FB 74 C8 80 66
+0A BF EB C2 A0 17 00 EB BD 0A E4 74 03 79 05 F9
+C3 E9 94 00 80 FC 39 7F F7 8A DC 32 FF 2E 8A 87
+7B F8 F6 05 08 75 EA F6 05 04 75 0E 24 7F F6 05
+03 75 52 F6 05 40 75 41 EB 26 0A C0 78 25 80 FC
+03 74 24 80 FC 0E 74 23 80 FC 1C 74 22 80 FC 37
+74 13 3C 20 7E 0A 3C 61 7C 15 3C 7B 7D 11 24 1F
+E8 69 00 F9 C3 B4 72 32 C0 EB F5 B0 7F EB F1 BE
+F8 F8 E8 6F 0F 72 E9 EB EA 3C 61 7C E3 3C 7A 7F
+DF 2C 20 EB DB 80 FC 0F 74 09 7F 0B 2E 8A 87 B5
+F8 EB CD 32 C0 EB C9 BE C5 F8 E8 47 0F 72 C1 F6
+05 40 75 BC 2C 20 EB B8 24 7F 3C 20 74 14 80 FC
+02 7C 12 80 FC 0E 7C 0F 3C 61 7C 09 3C 7A 7F 05
+32 C0 E8 07 00 F9 C3 80 C4 76 EB F4 FA 8B 36 1C
+00 89 04 46 46 E8 F5 15 75 0C 3B 36 82 00 75 0F
+8B 36 80 00 EB 09 81 FE 3E 00 75 03 BE 1E 00 3B
+36 1A 00 74 06 89 36 1C 00 FB C3 FB 50 BB F3 00
+E8 C2 00 58 C3 FF FF FB FC 50 53 51 52 55 56 57
+1E 06 BB 40 00 8E DB BF 17 00 E4 60 8A E0 33 ED
+B0 20 E6 20 E8 60 00 F6 06 18 00 08 74 21 80 FC
+46 74 10 E8 D4 00 72 2E 80 FC 52 74 29 84 E4 78
+25 EB 05 F6 05 04 74 1E 80 26 18 00 F7 EB 17 E8
+FC 00 72 12 E8 B3 00 72 0D E8 A7 01 72 08 E8 D2
+01 72 03 E8 A3 FE 85 ED 07 1F 5F 5E 5D 5A 59 5B
+75 04 FA E8 06 00 58 CF E4 60 8A E0 E4 61 0C 80
+E6 61 24 7F E6 61 C3 A0 6A 00 F6 05 08 74 1C F6
+05 04 74 17 80 FC 4E 75 04 FE C0 EB 07 80 FC 4A
+75 09 FE C8 78 0B A2 6A 00 EB 06 3A 26 69 00 74
+13 88 26 69 00 84 E4 78 0B 33 DB 0A 1E 6A 00 74
+03 E8 01 00 C3 E4 61 50 24 FC E6 61 B9 40 00 E2
+FE 0C 02 E6 61 B9 40 00 E2 FE 4B 75 EB 58 E6 61
+C3 1E 50 B8 40 00 8E D8 B8 0B FF E6 20 E4 20 84
+C0 74 06 8A E0 B0 20 E6 20 88 26 6B 00 58 1F CF
+FF C7 06 72 00 34 12 E9 D1 F5 8A C4 24 7F 0E 07
+8B F7 57 BF C6 EA B7 08 B9 08 00 AE 74 09 D0 CF
+73 01 46 E2 F6 5F C3 5F 0A E4 79 06 F6 D7 20 3C
+F9 C3 08 3C FA 8A 3E 18 00 80 E7 F0 30 3D FB 80
+FC 52 74 01 F9 C3 38 1D 2A 36 52 3A 45 46 80 FC
+45 74 28 80 FC B8 74 3C 80 FC 53 74 48 80 FC 37
+74 55 80 FC 52 74 5F 80 FC 46 74 63 80 FC 33 74
+05 80 FC 34 75 03 EB 6D 90 F8 C3 F6 05 04 74 F9
+80 0E 18 00 08 FA E8 F3 FE 45 FB F6 06 18 00 08
+75 F9 F9 C3 50 33 C0 86 06 19 00 84 C0 74 03 E8
+2A FE 58 EB D4 F6 05 08 74 CF F6 05 04 74 CA FA
+E8 C9 FE FB E9 4A FF F6 05 03 74 BD FA E8 BC FE
+45 CD 05 FB F9 C3 F6 06 18 00 80 74 AC F9 C3 F6
+05 04 74 A5 80 0E 71 00 80 E8 C8 00 CD 1B 33 C0
+E8 E9 FD F9 C3 F6 05 08 74 13 F6 05 04 74 0E 80
+3E 49 00 02 74 0A 80 3E 49 00 03 74 03 E9 79 FF
+E9 69 13 0A E4 78 0A 80 FC 3B 7C 05 80 FC 44 7E
+02 F8 C3 B0 2D F6 05 08 75 10 B0 23 F6 05 04 75
+09 B0 19 F6 05 03 75 02 32 C0 02 E0 32 C0 E8 9B
+FD F9 C3 0A E4 78 0C 8A C4 24 7F 3C 47 7C 04 3C
+53 7E 02 F8 C3 8A DC 80 EB 47 32 FF BE DD F8 2E
+8A 00 F6 05 08 75 32 BE EA F8 F6 05 04 75 21 F6
+05 03 75 15 F6 05 20 75 0B 3C 2E 7C 07 80 FC 4C
+74 05 32 C0 E8 55 FD F9 C3 F6 05 20 75 EB EB F4
+E8 61 0C 8A E0 72 EB EB EE 3C 30 7C EA 2C 30 8A
+26 19 00 D5 0A A2 19 00 EB DD 8B 36 1A 00 3B 36
+1C 00 AD C3 E8 26 13 B8 1E 00 9C FA 75 03 A1 80
+00 A3 1A 00 A3 1C 00 9D C3 24 F1 D7 F2 23 F3 C2
+F2 73 F7 12 F2 43 F5 42 F5 6F F3 6D F4 57 F4 3A
+F2 1D F7 0D F7 6F F6 60 F2 FB 55 1E 06 57 56 52
+51 53 50 8B EC 33 C0 8E D8 C4 36 78 00 B8 40 00
+8E D8 C6 06 40 00 FF 73 02 CD 18 32 E4 8A 46 01
+3D 06 00 7C 07 B4 01 32 C0 E9 62 01 A8 02 74 02
+EB 21 A8 04 74 03 E9 07 01 A8 01 74 02 EB 0C E8
+2F 02 88 26 41 00 32 C0 E9 43 01 A0 41 00 32 E4
+E9 3B 01 E8 65 02 33 C0 8A 46 00 26 8A 4C 03 BA
+80 00 D3 E2 F7 E2 2D 01 00 E6 05 86 C4 E6 05 86
+C4 03 C3 73 0C 8A 66 01 F6 C4 04 75 04 B4 09 EB
+6B E8 73 01 75 66 32 E4 8A 46 01 8B D8 D1 E3 2E
+8B 87 4B EF E6 0B B0 02 E6 0A 8A FC E8 4E 12 75
+03 80 CF 80 E8 17 01 E8 31 02 8A 7E 07 E8 0E 01
+8A 7E 04 E8 08 01 83 C6 03 E8 F5 00 46 46 E8 F0
+00 83 EE 05 E8 8A 01 75 3E B9 07 00 BF 42 00 E8
+76 02 74 FB F6 E2 EC 88 05 47 E2 F3 F6 06 42 00
+C0 74 22 F6 06 42 00 08 74 04 B4 80 EB 19 8A 26
+43 00 F6 C4 30 74 04 D0 EC EB 0C F6 C4 03 74 03
+80 C4 01 EB 02 B4 00 88 26 41 00 B0 06 E6 0A 32
+C0 F6 C4 54 EB 28 91 E6 0C E4 05 8A D8 E4 05 8A
+F8 26 8A 4C 03 B8 80 00 D3 E0 48 93 33 D2 F7 F3
+0B D2 74 01 40 8A 66 00 2A E0 8A C4 8A E5 EB 4E
+A8 01 75 0E E9 0C FF FA 8A 66 01 80 FC 04 73 02
+CD 18 B0 4A E6 0B E8 62 01 B0 FF E6 05 E6 05 E8
+95 00 74 02 EB A1 B0 02 E6 0A B7 4D E8 4F 00 8A
+7E 07 D0 E7 D0 E7 0A 7E 06 E8 42 00 83 C6 03 E8
+2F 00 83 C6 04 E8 29 00 83 EE 07 E9 36 FF 26 8A
+5C 02 88 1E 40 00 80 66 16 FE 0A E4 74 04 80 4E
+16 01 5B 5B 59 5A 5E 5F 07 1F 5D CF B7 03 E8 0D
+00 E8 94 01 75 FB F6 E2 26 8B 1C 8A C3 EE E8 87
+01 75 FB F6 E2 8A C7 EE C3 E8 3E 01 B9 64 00 E8
+76 01 74 07 49 75 F8 B4 80 EB 19 F6 E2 B0 07 EE
+8A 7E 06 E8 D8 FF E8 68 00 75 09 E8 47 00 A8 C0
+B4 80 EB 02 0A E4 C3 B0 01 8A 4E 06 D2 E0 84 06
+3E 00 75 09 08 06 3E 00 E8 BE FF 75 27 E8 FA 00
+B7 0F E8 A9 FF E8 C3 00 E8 36 00 75 17 33 C0 26
+0A 44 09 74 08 B9 04 01 E2 FE 48 75 F8 E8 05 00
+A8 C0 B4 40 C3 B7 08 E8 84 FF B1 02 E8 09 01 74
+FB F6 E2 EC FE C9 74 05 A2 42 00 EB EF A0 42 00
+C3 B8 04 00 B9 FF FF F6 06 3E 00 80 75 0B E2 F7
+FE C8 75 F0 E8 0A 00 B4 80 80 26 3E 00 7F 0A E4
+C3 BA F2 03 A0 3F 00 24 0F 74 12 D0 E8 A8 04 74
+02 B0 03 8A 26 3F 00 B1 04 D2 E4 0A C4 0C 08 EE
+50 F6 E2 58 80 26 3E 00 00 0C 04 EE B9 FF FF F6
+06 3E 00 80 75 07 49 75 F6 B4 80 EB 0D 80 26 3E
+00 7F E8 80 FF E8 F4 FE 32 E4 C3 BA 10 00 8B 46
+0C F7 E2 8B 5E 02 03 C3 12 D6 E6 0C E6 04 86 C4
+E6 04 86 C4 8B D8 8A C2 E6 81 C3 8A 7E 07 D0 E7
+D0 E7 0A 7E 06 E8 D6 FE 8A 7E 05 E8 D0 FE C3 46
+66 4A 45 42 66 FF FF 50 1E B8 40 00 8E D8 80 0E
+3E 00 80 B0 20 E6 20 1F 58 CF FA C6 06 40 00 FF
+B0 10 8A 4E 06 D2 E0 0C 0C 0A 46 06 BA F2 03 EE
+B1 04 D2 E8 84 06 3F 00 75 1C A2 3F 00 B0 01 84
+46 01 74 12 FB B8 7D 00 26 8A 54 0A F6 E2 3D 00
+00 74 03 E8 13 00 FB C3 BA F4 03 F6 E2 EC A8 80
+74 F9 F6 E2 EC 42 A8 40 C3 B9 04 01 E2 FE 48 75
+F8 C3 FF FF FF FF FF DF 02 25 02 08 2A FF 50 F6
+00 04 FB 53 51 52 56 1E BB 40 00 8E DB 81 E2 03
+00 8B F2 B3 12 E8 65 0F 75 04 8A 9C 78 00 D1 E6
+8B 94 08 00 0B D2 74 16 50 FE CC 7C 17 FE CC 7C
+38 FE CC 7C 44 58 EB 06 58 8A E7 80 F4 48 1F 5E
+5A 59 5B CF EE 42 B9 00 E0 EC 24 F8 8A F8 A8 80
+75 0B E2 F5 FE CB 75 EE 80 CF 01 EB DB 42 EC 24
+1F 0C 01 EE 24 1E EE EB 0D 42 42 B0 08 EE B9 40
+05 E2 FE 0C 04 EE 4A EB 01 42 EC 24 F8 8A F8 EB
+B7 BA 82 03 B4 27 CD 21 36 8B 0E 04 00 36 8B 1E
+14 00 B4 27 C3 FB 80 FC 0F 77 37 06 1E 55 57 56
+53 51 52 50 FC 8B EC BE 40 00 8E DE 8B 16 63 00
+BE 00 B8 F7 C2 40 00 75 03 BE 00 B0 8E C6 86 C4
+8B F0 86 C4 81 E6 FF 00 D1 E6 2E FF 94 39 EC E9
+74 07 CF FF 38 28 2D 0A 1F 06 19 1C 02 07 06 07
+00 00 00 00 71 50 5A 0A 19 06 19 19 02 0D 0B 0C
+00 00 00 00 38 28 2D 0A 7F 06 64 70 02 01 06 07
+00 00 00 00 61 50 52 0F 19 06 19 19 02 0D 0B 0C
+00 00 00 00 38 28 2D 0A 1F 06 19 1C 02 07 06 07
+00 00 00 00 71 50 5A 0A 1F 06 19 1C 02 07 06 07
+00 00 00 00 38 28 2D 0A 7F 06 64 70 02 01 06 07
+00 00 00 00 61 50 52 0F 19 06 19 19 02 0D 0B 0C
+00 00 00 00 3C 07 76 01 C3 8A 1E 10 00 80 E3 30
+80 FB 30 75 0F BA B4 03 B0 07 BB 00 B0 B9 00 08
+B4 01 EB 0B BA D4 03 BB 00 B8 B9 00 20 32 E4 A2
+49 00 8E C3 89 16 63 00 86 E0 83 C2 04 EE 86 E0
+51 83 EA 04 C7 06 4E 00 00 00 C6 06 62 00 00 32
+E4 8B F0 D1 E6 2E 8B 84 73 F2 A3 4A 00 2E 8B 84
+83 F2 A3 4C 00 D1 EE 2E 8A 84 93 F2 A2 65 00 2E
+8A A4 9B F2 88 26 66 00 BF 10 00 E8 3E 00 59 B8
+67 00 E8 A8 0D 75 03 B8 07 06 A3 60 00 A0 49 00
+33 FF 3C 07 74 08 3C 04 7C 04 33 C0 EB 03 B8 20
+07 F3 AB 1E 07 BF 50 00 33 C0 B1 08 F3 AB BB F4
+01 E8 3D F0 A0 65 00 83 C2 04 EE C3 8A 2E 49 00
+1E 33 DB 8E DB C5 36 74 00 80 FD 02 7C 1B 83 C6
+10 80 FD 04 7C 13 83 C6 10 80 FD 07 7C 0B 83 C6
+10 F6 C2 40 74 03 83 EE 20 BD 0F F2 E9 94 00 FB
+1F C3 24 07 A2 62 00 98 F7 26 4C 00 A3 4E 00 91
+D1 E9 B3 0C 8B 16 63 00 E8 32 01 A0 62 00 98 D1
+E0 96 8B 8C 50 00 E8 09 01 C3 0A FF 75 0C 80 E3
+1F A0 66 00 24 E0 0A C3 EB 0E B1 05 D2 E3 80 E3
+20 A0 66 00 24 DF 0A C3 A2 66 00 83 C2 05 EE C3
+A0 49 00 88 46 00 A0 4A 00 88 46 01 A0 62 00 88
+46 07 C3 28 00 28 00 50 00 50 00 28 00 28 00 50
+00 50 00 00 08 00 08 00 10 00 10 00 40 00 40 00
+40 00 40 2C 28 2D 29 2A 2E 1E 29 30 30 30 30 30
+30 3F 30 FA 24 F7 83 C2 04 EE 86 E0 42 EE 83 EA
+05 32 E4 8B CF 8A C4 EE 42 FE C4 AC EE 4A E2 F5
+FF E5 86 FB 32 FF D1 E3 8B 97 50 00 89 56 02 8B
+0E 60 00 89 4E 04 C3 89 0E 60 00 A0 49 00 24 FE
+3C 02 75 2A 33 DB 8E DB C5 36 74 00 80 7C 19 0D
+75 1C F7 C1 18 18 75 16 8B D9 81 E3 60 60 8A C5
+E8 11 00 8A E8 8A C1 E8 0A 00 8A C8 0B CB B3 0A
+E8 4A 00 C3 24 0F B4 0E F6 E4 D1 E8 D1 E8 D1 E8
+14 00 C3 80 FF 07 77 19 86 FB 32 FF D1 E3 8B 4E
+02 89 8F 50 00 8A 7E 07 3A 3E 62 00 75 03 E8 01
+00 C3 33 C0 86 C5 F7 26 4A 00 03 C8 A1 4E 00 D1
+E8 03 C8 8B 16 63 00 B3 0E E8 01 00 C3 8A C3 EE
+42 8A C5 EE 4A FE C3 8A C3 EE 42 8A C1 EE C3 8A
+26 49 00 80 FC 04 72 05 80 EC 06 76 0A E8 6C 00
+26 8B 05 89 46 00 C3 E8 84 00 8C C1 8E D9 8B F7
+8C D1 8E C1 83 EC 08 8B FC B7 04 B3 02 8A 04 D0
+FC 79 13 8A F0 8A 54 01 B9 08 00 D1 E2 79 01 F9
+D0 D0 D1 E2 E2 F5 AA 81 F6 00 20 FE CB 75 DE 83
+C6 50 FE CF 75 D5 8C C8 8E D8 BE 6E FA 8B FC E8
+5E 00 73 11 33 C0 8E D8 C5 36 7C 00 8B FC E8 4F
+00 72 02 04 80 83 C4 08 89 46 00 C3 8B F8 8A DF
+32 FF A1 4C 00 F7 E3 8B D0 D1 E3 8B 9F 50 00 A0
+4A 00 F6 E7 32 FF 03 C3 D1 E0 03 C2 97 C3 8A DF
+32 FF D1 E3 8B 9F 50 00 33 D2 86 DA 8B FB D1 EF
+D1 EF 03 FB F6 06 49 00 02 75 02 D1 E2 03 FA C3
+8B C6 8B DF 32 ED BA 80 00 56 8B F0 8B FB B1 04
+F3 A7 74 0B 05 08 00 4A 75 F0 5E 33 C0 F9 C3 5E
+2B C6 B1 03 D3 E8 C3 80 3E 49 00 04 72 07 80 3E
+49 00 07 75 1E E8 84 FF AA 47 E2 FC C3 80 3E 49
+00 04 72 07 80 3E 49 00 07 75 08 8A E3 E8 6C FF
+F3 AB C3 E8 88 FF 8A 5E 06 8A 3E 49 00 8C CA 8E
+DA BE 6E FA 0A C0 79 08 33 D2 8E DA C5 36 7C 00
+25 7F 00 D1 E0 D1 E0 D1 E0 03 F0 80 FF 06 74 63
+83 EC 10 8B C4 57 06 8C D7 8E C7 51 53 8B F8 80
+E3 03 B5 08 AC B1 08 D1 E2 D1 E2 D0 E0 73 02 0A
+D3 FE C9 75 F2 8A C6 8A E2 AB FE CD 75 E6 5B 5A
+07 5F 8C D0 8E D8 B9 04 00 8B F4 AD D0 FB 79 03
+26 33 05 AB 81 C7 FE 1F AD D0 FB 79 03 26 33 05
+AB 81 EF B2 1F E2 E4 81 EF 3E 01 4A 75 D8 83 C4
+10 EB 2E 8A E3 8B D1 8B DE B9 04 00 8B F3 AC D0
+FC 79 03 26 32 05 AA 81 C7 FF 1F AC D0 FC 79 03
+26 32 05 AA 81 EF B1 1F E2 E4 81 EF 3F 01 4A 75
+D8 C3 FD 8A 1E 4A 00 8B 56 02 3A D3 72 04 8A D3
+FE CA F6 C4 01 74 0C 87 CA 2A F5 2A D1 F6 DE F6
+DA EB 04 2A F5 2A D1 FE C6 FE C2 80 3E 49 00 04
+72 07 80 3E 49 00 07 75 59 8B EB 2B EA 81 E5 FF
+00 D1 E5 8B F8 8A C5 F6 E3 32 ED 03 C1 D1 E0 03
+06 4E 00 97 8C C6 8E DE 8B F0 F6 E3 F7 C6 00 01
+74 04 F7 D8 F7 DD D1 E0 03 C7 96 0A C0 74 14 3A
+C6 73 10 2A F0 8A CA F3 A5 03 F5 03 FD FE CE 75
+F4 8A F0 8A E7 B0 20 8A CA F3 AB 03 FD FE CE 75
+F6 C3 80 3E 49 00 06 74 04 D0 E1 D0 E2 BD 50 00
+52 8B F8 8A C5 32 ED 98 BA 40 01 F7 E2 03 C1 03
+06 4E 00 97 8B F0 98 BA 40 01 F7 E2 F7 C6 00 01
+74 10 F7 D8 F7 DD 81 C7 F0 20 80 3E 49 00 06 74
+01 47 03 C7 8C C2 8E DA 96 5A 53 8B DF 0A C0 74
+30 3A C6 73 2C 2A F0 50 D0 E6 D0 E6 8B C6 8B F0
+8B FB 8A CA F3 A4 8B F0 8B FB 81 F6 00 20 81 F7
+00 20 8A CA F3 A4 03 C5 03 DD FE CE 75 E0 58 8A
+F0 D0 E6 D0 E6 58 8A C4 8B FB 8A CA F3 AA 8B FB
+81 F7 00 20 8A CA F3 AA 03 DD FE CE 75 EA C3 E8
+DB 08 75 04 8A 3E 62 00 3C 07 74 50 3C 08 74 38
+3C 0A 74 4F 3C 0D 74 3C B9 01 00 B4 0A CD 10 B4
+03 CD 10 FE C2 3A 16 4A 00 75 18 32 D2 FE C6 80
+FE 19 75 0F FE CE B4 02 CD 10 B4 08 CD 10 8A FC
+E8 37 00 B4 02 CD 10 C3 B4 03 CD 10 0A D2 74 F7
+FE CA EB EF B4 03 CD 10 32 D2 EB E7 BB F4 01 E8
+20 EB C3 B4 03 CD 10 80 FE 18 74 04 FE C6 EB D3
+B4 08 CD 10 8A FC E8 01 00 C3 51 52 80 3E 49 00
+07 74 09 80 3E 49 00 03 76 02 B7 00 B8 01 06 33
+C9 B6 18 8A 16 4A 00 4A CD 10 5A 59 C3 E8 24 00
+26 8A 05 F6 D7 22 C7 D2 E8 88 46 00 C3 E8 14 00
+98 22 C3 D2 E0 D0 FC 79 04 26 30 05 C3 26 22 3D
+0A C7 AA C3 33 FF 8B 56 02 D1 EA 73 03 BF 00 20
+D1 E2 D1 E2 D1 E2 D1 E2 03 FA D1 E2 D1 E2 03 FA
+B7 FE 80 3E 49 00 06 73 04 D1 D1 D0 E7 8A DF F6
+D3 8B D1 D1 EA D1 EA D1 EA F6 D1 80 E1 07 D2 C7
+03 FA C3 C6 46 01 00 83 C2 06 EC 83 EA 06 A8 04
+75 6F A8 02 74 6F C6 46 01 01 B0 10 EE 42 EC 8A
+E0 4A B0 11 EE 42 EC 4A 2B 06 4E 00 3D 05 10 7C
+02 33 C0 32 FF 8A 1E 49 00 2E 8A 8F 0E F8 32 ED
+2B C1 79 02 33 C0 8A 0E 4A 00 80 FB 04 72 37 80
+FB 07 74 32 B1 28 F6 F1 8A C8 D0 E9 D0 E9 88 4E
+03 88 66 02 D0 E0 88 46 05 B1 03 86 E0 32 E4 D3
+E0 89 46 06 80 3E 49 00 06 75 06 D0 66 02 D1 66
+06 83 C2 07 EE C3 F6 F1 88 46 03 88 66 02 B1 03
+8A DC D3 E3 89 5E 06 D2 E0 88 46 05 EB E3 03 03
+05 05 03 03 03 04 58 5A 59 5B 5E 5F 5D 1F 07 CF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FB 1E B8 40 00 8E D8 A1 13 00 1F CF FB 1E B8
+40 00 8E D8 A1 10 00 1F CF 55 8B EC 80 4E 06 01
+B4 86 5D CF 51 2E 8B 0C 46 46 2E 3A 24 74 05 E2
+F7 F8 59 C3 46 2E 8A 04 F9 59 C3 FF 1B B1 32 B3
+B4 B5 36 B7 B8 B9 B0 2D BD 08 89 71 77 65 72 74
+79 75 69 6F 70 5B 5D 0D FF 61 73 64 66 67 68 6A
+6B 6C BB A7 E0 FF 5C 7A 78 63 76 62 6E 6D AC AE
+AF FF 2A FF 20 FF 1B 21 40 23 24 25 5E 26 2A 28
+29 5F 2B 08 0F 0B 00 1A 7B 1B 7D 1C 0D 27 3A 28
+22 29 7E 2B 7C 33 3C 34 3E 35 3F 39 20 37 38 39
+2D 34 35 36 2B 31 32 33 30 2E 06 00 47 77 49 84
+4B 73 4D 74 4F 75 51 76 06 00 07 1E 0C 1F 1A 1B
+1B 1D 1C 0A 2B 1C FC BF 00 03 BE E0 F9 F3 2E A5
+A1 50 02 2B 06 58 02 75 04 48 A2 00 03 BF 24 00
+B8 87 E9 AB 8C C8 AB 83 C7 44 B8 E0 E6 AB 8C C8
+AB B8 53 FF AB 8C C8 AB 8E C5 26 C4 06 12 00 A3
+90 00 8C 06 92 00 FB C3 33 C9 8E D9 8B 1E 52 02
+8B EB 83 C3 10 FA 8E D3 8B E1 8E C1 B9 47 00 E8
+A4 FF 8E DC 53 BF 01 03 BA 82 03 B4 0F CD 21 0A
+C0 74 2E BA 02 03 B4 09 CD 21 B8 01 0C CD 21 80
+3D 00 75 0D C6 05 FF 3C 0D 75 06 B4 19 CD 21 04
+41 24 5F 3C 41 72 DC A2 56 03 24 0F A2 82 03 EB
+C4 33 C9 89 0E A3 03 89 0E A5 03 41 C7 06 90 03
+00 02 33 D2 1E 8E DB B4 1A CD 21 1F E8 92 F6 49
+53 CD 21 80 3D 00 74 0C BA 37 03 B4 09 CD 21 B8
+08 0C CD 21 8E C5 8E DD BA 80 00 B4 1A CD 21 CB
+00 00 0D 0A 49 6E 73 65 72 74 20 43 4F 4D 50 41
+51 20 44 4F 53 20 64 69 73 6B 65 74 74 65 0D 0A
+45 6E 74 65 72 20 64 72 69 76 65 20 73 70 65 63
+69 66 69 65 72 20 24 0D 0A 0D 0A 52 65 69 6E 73
+65 72 74 20 64 69 73 6B 65 74 74 65 20 69 6E 20
+64 72 69 76 65 20 41 20 69 66 20 6E 65 63 65 73
+73 61 72 79 0D 0A 53 74 72 69 6B 65 20 61 6E 79
+20 6B 65 79 20 77 68 65 6E 20 72 65 61 64 79 0D
+0A 24 00 42 41 53 49 43 41 20 20 45 58 45 00 00
+00 00 00 00 00 00 7E 81 A5 81 BD 99 81 7E 7E FF
+DB FF C3 E7 FF 7E 6C FE FE FE 7C 38 10 00 10 38
+7C FE 7C 38 10 00 38 7C 38 FE FE 7C 38 7C 10 10
+38 7C FE 7C 38 7C 00 00 18 3C 3C 18 00 00 FF FF
+E7 C3 C3 E7 FF FF 00 3C 66 42 42 66 3C 00 FF C3
+99 BD BD 99 C3 FF 0F 07 0F 7D CC CC CC 78 3C 66
+66 66 3C 18 7E 18 3F 33 3F 30 30 70 F0 E0 7F 63
+7F 63 63 67 E6 C0 99 5A 3C E7 E7 3C 5A 99 80 E0
+F8 FE F8 E0 80 00 02 0E 3E FE 3E 0E 02 00 18 3C
+7E 18 18 7E 3C 18 66 66 66 66 66 00 66 00 7F DB
+DB 7B 1B 1B 1B 00 3E 63 38 6C 6C 38 CC 78 00 00
+00 00 7E 7E 7E 00 18 3C 7E 18 7E 3C 18 FF 18 3C
+7E 18 18 18 18 00 18 18 18 18 7E 3C 18 00 00 18
+0C FE 0C 18 00 00 00 30 60 FE 60 30 00 00 00 00
+C0 C0 C0 FE 00 00 00 24 66 FF 66 24 00 00 00 18
+3C 7E FF FF 00 00 00 FF FF 7E 3C 18 00 00 00 00
+00 00 00 00 00 00 30 78 78 30 30 00 30 00 6C 6C
+6C 00 00 00 00 00 6C 6C FE 6C FE 6C 6C 00 30 7C
+C0 78 0C F8 30 00 00 C6 CC 18 30 66 C6 00 38 6C
+38 76 DC CC 76 00 60 60 C0 00 00 00 00 00 18 30
+60 60 60 30 18 00 60 30 18 18 18 30 60 00 00 66
+3C FF 3C 66 00 00 00 30 30 FC 30 30 00 00 00 00
+00 00 00 30 30 60 00 00 00 FC 00 00 00 00 00 00
+00 00 00 30 30 00 06 0C 18 30 60 C0 80 00 7C C6
+CE DE F6 E6 7C 00 30 70 30 30 30 30 FC 00 78 CC
+0C 38 60 CC FC 00 78 CC 0C 38 0C CC 78 00 1C 3C
+6C CC FE 0C 1E 00 FC C0 F8 0C 0C CC 78 00 38 60
+C0 F8 CC CC 78 00 FC CC 0C 18 30 30 30 00 78 CC
+CC 78 CC CC 78 00 78 CC CC 7C 0C 18 70 00 00 30
+30 00 00 30 30 00 00 30 30 00 00 30 30 60 18 30
+60 C0 60 30 18 00 00 00 FC 00 00 FC 00 00 60 30
+18 0C 18 30 60 00 78 CC 0C 18 30 00 30 00 7C C6
+DE DE DE C0 78 00 30 78 CC CC FC CC CC 00 FC 66
+66 7C 66 66 FC 00 3C 66 C0 C0 C0 66 3C 00 F8 6C
+66 66 66 6C F8 00 FE 62 68 78 68 62 FE 00 FE 62
+68 78 68 60 F0 00 3C 66 C0 C0 CE 66 3E 00 CC CC
+CC FC CC CC CC 00 78 30 30 30 30 30 78 00 1E 0C
+0C 0C CC CC 78 00 E6 66 6C 78 6C 66 E6 00 F0 60
+60 60 62 66 FE 00 C6 EE FE FE D6 C6 C6 00 C6 E6
+F6 DE CE C6 C6 00 38 6C C6 C6 C6 6C 38 00 FC 66
+66 7C 60 60 F0 00 78 CC CC CC DC 78 1C 00 FC 66
+66 7C 6C 66 E6 00 78 CC E0 70 1C CC 78 00 FC B4
+30 30 30 30 78 00 CC CC CC CC CC CC FC 00 CC CC
+CC CC CC 78 30 00 C6 C6 C6 D6 FE EE C6 00 C6 C6
+6C 38 38 6C C6 00 CC CC CC 78 30 30 78 00 FE C6
+8C 18 32 66 FE 00 78 60 60 60 60 60 78 00 C0 60
+30 18 0C 06 02 00 78 18 18 18 18 18 78 00 10 38
+6C C6 00 00 00 00 00 00 00 00 00 00 00 FF 30 30
+18 00 00 00 00 00 00 00 78 0C 7C CC 76 00 E0 60
+60 7C 66 66 DC 00 00 00 78 CC C0 CC 78 00 1C 0C
+0C 7C CC CC 76 00 00 00 78 CC FC C0 78 00 38 6C
+60 F0 60 60 F0 00 00 00 76 CC CC 7C 0C F8 E0 60
+6C 76 66 66 E6 00 30 00 70 30 30 30 78 00 0C 00
+0C 0C 0C CC CC 78 E0 60 66 6C 78 6C E6 00 70 30
+30 30 30 30 78 00 00 00 CC FE FE D6 C6 00 00 00
+F8 CC CC CC CC 00 00 00 78 CC CC CC 78 00 00 00
+DC 66 66 7C 60 F0 00 00 76 CC CC 7C 0C 1E 00 00
+DC 76 66 60 F0 00 00 00 7C C0 78 0C F8 00 10 30
+7C 30 30 34 18 00 00 00 CC CC CC CC 76 00 00 00
+CC CC CC 78 30 00 00 00 C6 D6 FE FE 6C 00 00 00
+C6 6C 38 6C C6 00 00 00 CC CC CC 7C 0C F8 00 00
+FC 98 30 64 FC 00 1C 30 30 E0 30 30 1C 00 18 18
+18 00 18 18 18 00 E0 30 30 1C 30 30 E0 00 76 DC
+00 00 00 00 00 00 00 10 38 6C C6 C6 FE 00 1E 50
+B8 40 00 8E D8 58 50 FE CC 7C 07 FE CC 7C 15 58
+1F CF 58 32 C0 86 06 70 00 50 8B 0E 6E 00 8B 16
+6C 00 EB EB 89 0E 6E 00 89 16 6C 00 C6 06 70 00
+00 EB DC FF FF 1E 52 50 B8 40 00 8E D8 FF 06 6C
+00 75 04 FF 06 6E 00 83 3E 6E 00 18 75 13 B8 B0
+00 2B 06 6C 00 75 0A A3 6C 00 A3 6E 00 40 A2 70
+00 FE 0E 40 00 75 0B B0 0C BA F2 03 EE 80 26 3F
+00 F0 B0 20 E6 20 CD 1C 58 5A 1F CF 33 FF 8E C7
+BF 74 00 80 FC 33 74 05 B8 A4 F0 EB 03 B8 E4 F0
+26 3B 05 74 44 FA AB 8C C8 AB FB A0 65 00 8A 26
+66 00 8B 16 63 00 BF 0C 00 E8 C0 F2 BB F4 01 EB
+05 FF FF E9 3B EB E8 E8 E2 8B 16 63 00 83 C2 04
+A0 65 00 EE B4 0F CD 10 B4 03 CD 10 B4 02 CD 10
+83 F9 67 74 04 B4 01 CD 10 33 ED F9 C3 F6 06 10
+00 01 C3 CF 50 53 51 52 1E BB 40 00 8E DB B0 01
+86 06 00 01 3C 01 74 40 FB B4 0F CD 10 8A EC 51
+B4 03 CD 10 59 52 33 D2 B4 02 CD 10 B4 08 CD 10
+E8 34 00 72 17 FE C2 3A D5 72 ED E8 20 00 72 0C
+32 D2 FE C6 80 FE 19 72 DF E8 12 00 1A C9 5A B4
+02 CD 10 FA 88 0E 00 01 1F 5A 59 5B 58 CF B0 0D
+E8 04 00 72 16 B0 0A 52 33 D2 84 C0 75 02 B0 20
+B4 00 CD 17 F6 C4 01 74 01 F9 5A C3 4B 8B CB 51
+B9 64 00 E8 C7 E2 74 05 E2 F9 E9 4B E6 F6 E2 AC
+EE 59 E2 EB C3 FF 43 20 20 20 43 4F 4D 50 41 51
+EA 5B E0 00 F0 FF FF FF FF FF FF FF FF FF 9A 00
diff --git a/devices/pc/rom/compaq/bios/portable/100666-001-REVC.json b/devices/pc/rom/compaq/bios/portable/100666-001-REVC.json
new file mode 100644
index 000000000..0f0cd14a9
--- /dev/null
+++ b/devices/pc/rom/compaq/bios/portable/100666-001-REVC.json
@@ -0,0 +1,130 @@
+{"data":[
+1126701261,1866670121,1769109872,544499815,1347243843,1126191425,1970302319,544367988,1886547779,1952543343,745434985,943272224,1092627507,1914727532,1952999273,1701978227,
+1987208563,539911269,1179863594,1095651370,1279804202,1246905130,-98557910,1676057008,1642483120,-222688080,-930288125,-1141057394,45998350,-1979600896,11857431,-1979484277,
+-997588649,-297620242,-2134573494,-227208964,-92268662,1107654104,1257124016,-1912135496,-13433529,-217624693,38242987,163808238,-1329433267,-1337727372,-1337858541,-431888896,
+-436162547,-430395384,-1341331957,-436148736,-1333533184,-436082945,-435245055,-1900006641,67157200,551949232,568723632,568723888,568786864,1139160752,1088880560,1085817062,
+-1579643392,876413042,-384469742,-1263009134,15782953,-670564176,-256627244,536918016,-371120451,-617414507,-919350733,-13385074,-1003305077,-1020082638,-2131369302,-25163578,
+-1258130888,-2147256448,-700774202,1642389106,1642475532,1642516260,-919350733,-13378930,-1003305077,-1020082638,628426034,-453909945,-1329551262,-2145749760,-25163578,-1258130888,
+-2147256448,-700774202,-209661326,-342264321,-2071940572,-805014078,-1107790870,-2048269919,-1169733888,-1396899327,7530977,-1122537285,1575608757,1073788928,-1107171863,12255233,
+-958689784,-947912700,-1593868280,12317554,-2133094904,141885236,-2146908288,-244145921,1642394507,1642496012,-1822366573,1642495780,-1229920769,951600102,-1975327227,-465377596,
+-436007839,149460321,1642370304,1642528036,79257027,1274995201,-436209547,79233040,1239601920,-13433365,-1207958343,-1064388608,653733522,76735004,1075062672,-498619865,
+-152698897,292864198,-402396997,-88342620,-4331520,-348066176,818345706,-88403596,-7411712,-402588997,-293535833,-1964315888,1697990,166249098,-401756160,179306519,
+-393604117,-388889423,-1979710744,68101317,1075062672,506663,281874100,1689866691,-151735808,-2136412958,-136182411,-167544343,1497558242,63127720,459487,-248,
+1358954495,-1062706460,-816315787,64273148,-1104138824,281014452,-1899262976,-488391205,-1156595479,-1014056960,857735353,119585023,-189027341,-486818559,-1325459479,79856429,
+-1174457362,431882253,-498621213,-1469913860,1966190720,-1439518718,1380012276,542725193,1128613955,860889163,16824768,988606190,-334662204,141935674,-989937410,-1017581854,
+-469804712,-14418141,-14425405,-11206877,-14418141,-376963419,-14418141,-14418141,-14422185,-129109915,-329648063,-128325831,-271390674,-420284088,-11272594,-257622189,
+61383,66643742,62653176,41419640,336860180,16843009,4063262,117637379,-475546222,872289513,868234221,-1178235137,-1410121728,134268289,-277680581,1153351822,
+-1174457373,-930349023,-492067538,-427773701,4241568,112318606,780791251,378077203,-13500302,1946272758,1166812683,1089307642,1388169,29016206,262728706,-813694091,
+-477708784,-1191182145,-1389494270,-1845492987,-288295188,988602506,-2146929212,764543687,-492109821,-477446427,-1325397825,-1834144253,-288295188,988602506,-2147125820,-1416478521,
+-1007227934,-1089637119,112787576,-1523649792,-109721211,1056393,6948550,130344960,807715722,-1310483269,787010052,281909463,-390070088,3998176,-1191677240,-661782464,
+604005792,64535287,180206,-2119543367,-1170210847,246612948,1242481384,1122897584,1975859948,263211587,988562158,-147229247,-613068847,-1900543816,870003648,1073789439,
+-1003305077,-1057095045,-492125390,-1174457357,-947175424,41665586,-1020083970,1978917294,-819193,116118901,-396033606,548994389,-1174457593,-1410129920,-1291594566,241035278,
+201352608,64535048,256494,-1107242263,-768352256,772800697,-489684051,1959953914,1359067654,-1141039896,565896577,-34150400,-454099024,618170977,862054142,16824768,
+1139193520,1122419850,-2135932186,1122255846,762692666,-1002814748,-989976715,-1014308126,1642357222,-1159364165,-1175977887,-1167988995,-1058668542,-1862269255,-1845646360,-336010686,
+16890374,-453198616,612371553,610395839,-1151211905,2028470312,-432009988,-401296543,1407777903,1019512324,-1290898006,-60692460,-2046540312,1958742724,1958742546,-54335485,
+-790093648,50445052,-1157859096,-1142160452,1374217687,-1173951491,1726481409,62700284,-1105260818,79422135,-222626816,-419450877,-301944799,-402627400,212863423,6600942,
+-402016536,481302982,-386993486,-189261378,161867777,-1189497368,-2132279196,1962664444,-320670201,108314792,-402259526,11598869,-301731142,-389545800,3997724,-1141344524,
+-1377304276,-453337861,-423877599,-323969759,-301744454,-661775923,1065474867,259369557,871773180,40864457,44884433,-1141120296,343212160,-1912586056,62398144,-326414336,
+1476419327,33602392,-1966882045,-17949,1959232748,-502696704,1976368887,-1014975248,230883508,1936278538,1953785195,1919230053,225603442,1885688330,1701011820,1684955424,
+1920234272,543517545,544829025,544826731,1852139639,1634038304,168655204,58845476,-1205971376,-661782464,-402652232,1579090526,-1141125288,-611450816,1358955449,-1912602438,
+-855591742,2080422675,-1207959111,332202497,-502893735,-350171674,2080434906,-50659328,-1101638832,-1406212445,91497532,-335845656,-855591691,1482382870,1364458447,-1155639726,
+-611450816,254593,28570251,1964506856,2090633732,-1947807488,184549524,-2079296302,-32344860,-29264692,-25856820,523203788,1532582494,-2087300913,-2135948350,65700846,
+-288160591,976513,512002862,-997527832,1111682626,-299948968,-1070446006,-1031582994,-527766523,-940839870,-1031581104,-301748220,548880962,1962857704,-401557747,108330701,
+-400509110,1499135685,-461061750,-387055243,175445883,-335166845,-536190940,-1880374902,-1341865341,1111682561,-1628954441,-1105038082,612368497,28789375,-4620108,-947589889,
+612634997,-169735307,1964458728,1976303341,-1966347287,99255264,518291692,68665579,25166592,6291648,1572912,-50659316,-1957341666,4243180,-461054322,-855765388,
+-855756428,1583169140,-1862545633,63629562,-118949772,990672150,1962967606,-2143909105,-2130056448,1962950398,2014723,1717897,-2133595141,-96466354,-83648536,1719715956,
+-1024737526,-352315488,1961102013,-117081853,9759171,2134506624,853314295,-2020987137,100071547,-152406776,242549765,100040484,-162368253,1098203141,-1073076501,-58710664,
+-2145094653,594808572,1948056704,939294754,540808052,1631324798,2067535228,522457469,-117413400,846378179,-1326060608,-1091441793,1877539064,-337022449,2086747370,2138717411,
+-350212897,268206299,192874868,-1249408466,852356088,-1094063168,1206450373,-155094513,-1133166587,-1192550356,540835620,-58715020,-2146272254,259788540,159146300,92240444,
+132694066,-2134640384,-185895228,473336826,1174702336,368437318,909839477,259326082,8402571,-25097749,57999422,989863614,1946163766,473336070,-71042304,15973200,
+1476444904,-67108925,1364414716,1465275730,1085998622,-1076130304,1625554967,-315367286,551952560,-167747352,134223878,-58711692,-401574842,779223252,1951595648,2028241961,
+-167384283,510919685,1582720,-401085449,309461244,1912648680,27781133,-756545422,-402427391,-309985629,1583292167,1532582493,-386268043,-816316410,-527802140,-2146672156,
+2133090790,-1597808154,100008042,-165907448,393479173,1968110720,-339673596,1258061831,-922875531,1789004664,973531904,1946183974,1764132883,2028241920,182137611,1946184222,
+124931,1348592835,1642527780,-503299911,-436073218,4241761,1967914722,1642485995,-1202708797,-661782464,-419492936,-2078219232,-1979288384,-434065184,1797687328,-820029440,
+1913047039,-384683008,-997526063,118390564,-1084754037,146270918,-1375729479,-808449676,-498728589,1606639606,108651530,1008785398,1007207417,406751994,-253263872,-2131018448,
+24400636,490259449,978466346,-58702267,-2144832443,1014282492,1951661184,939294792,-58698380,-2141227950,1668564732,1949564032,888963077,1844118389,-154929008,-109837307,
+1576576,-202835448,-151304706,134223878,-1007027851,-2034224304,-2080368378,-402426688,-346489302,134608596,100061044,-87395324,-67188248,-151041303,-1116470523,-21174022,
+-83505851,116835321,1954545688,-154928724,-1519123451,7409280,13166720,-1070392371,-100800024,134608579,100012916,-2146536444,33573182,1048578676,1946353737,-8787709,
+169044457,-2146797340,92027900,2118450304,-1329334270,134608429,598741109,1963197942,-166088695,41222917,-536690638,-1679245262,180615677,-1978894108,1014965444,1006926919,
+-134054317,-2133030205,-13482005,788061630,100008074,-1103989496,100071658,-165579516,359990021,1965032950,2083404811,1291616263,-1070463628,-100837912,537261763,-185865355,
+-1978899992,-336891168,2083536110,-1976554262,-721413850,1679882,915135979,909836314,-1012072420,-1206704408,-90439650,-2136931467,1745664,-1660937053,-672062269,-1024252942,
+318206962,1123369970,1844670453,989091828,234298866,1626763255,508951538,1381390086,-1957670063,-1900006420,2016855256,4241408,113694862,1946091584,840486146,21400292,
+2080376381,838972423,23259584,41157288,78127595,132711284,1946265601,-401806590,646447663,-1070464959,-1610529815,-466485183,-402572311,-1070398875,637552266,-1174188918,
+-489488256,19784439,-2046433792,-2046433596,1942160324,23497228,1963246838,-351685628,24373355,-466459019,-1962850678,786682328,-280262773,45091814,-58062106,1964134120,
+-2133884925,-402581528,2122973745,17754119,-402358646,-964493048,16115715,-253213114,99517184,1963035368,506174,-402636097,-76283274,-1997741322,-203274491,4327158,
+-165514048,134234630,-2135686028,646584811,-990511037,-805014480,-166925332,57934788,-352205696,-2013219838,-1342160602,839575046,1422194368,-426694421,-1979325428,-1979325224,
+1284122360,8435715,-1823940397,-201862605,24433163,6720064,-997531606,1324082570,242549160,-83948311,-2147391862,41092348,1253054669,1659374566,-419450879,-402266619,
+41156757,45130219,1303841510,-1979691032,-405796994,2114643920,4384774,-402405757,-964493265,2746372,-385356157,-1977155786,512229980,1719664704,-469041642,1317012596,
+1532690710,1600019033,-815980793,233309111,26535936,-487130251,-1977840858,-2014777661,-151292671,-288912670,20900035,-402627399,125043062,-1258785463,-166073472,-301485854,
+-402227574,1760100312,-402033408,-1062731705,48988340,-1329339382,105810433,109371602,158662718,4064776,1979694824,16443431,-1444409417,12839167,1962948328,650130199,
+1946764298,17086728,1967718114,387320,1085587624,-402081853,45219716,1946225128,-320669957,91539966,-352304478,4366575,309443,-150995015,-2147467770,-136180875,
+-260716290,-1275065624,1042710656,-469074176,66239171,603996064,-804097009,1946462440,-1979469822,-1325383898,182768132,-301462332,1491269200,4073088,-301724672,-150995015,
+-2147467770,1967720309,-343886602,1042710541,-2132246784,-17504001,-1161567182,1183514640,-1948059892,-1023212962,216454674,-997849882,-997849882,-1031087989,-1966898714,-405796994,
+2114643920,-19470330,-402293110,1187249872,1111837286,1358954342,4241438,243325070,-1333788610,522249760,-956641448,-16760826,1317671088,216060422,105253388,-301731142,
+-388889423,4130436,1067588725,-2080264192,309592390,8239355,173312550,4055798,-402426880,-1006960621,-167512902,-2136412958,-487130764,1084769004,17086915,1967718114,
+-15368,-536870913,134358274,-162463958,1408959488,508973649,-1912586053,65176027,-1275950336,258336786,-1668676491,-422510472,562315,376754699,2093809232,2093809175,
+2093809208,116086852,-2132309416,1579108596,-816096934,12141294,-131797792,-2136409974,-169735307,-294269954,-352202880,619463387,-301921249,-336716252,-1337834995,1085926920,
+218030597,-347410940,619463169,-336033032,58899127,567093172,68062006,512439808,666107924,-58655805,104298255,1448563998,1347572051,-1091793924,-561119168,6493835,
+-138936130,1962950850,-1342128637,-997800306,-997789557,16770689,-13703471,-370394732,-3209356,170731576,471402015,117835522,0,173690993,421070361,202050818,
+0,170731576,1885603455,117833986,0,257052769,421070361,202050818,0,170731576,471402015,117835522,0,173690993,471402015,117835522,
+0,170731576,1885603455,117833986,0,257052769,421070361,202050818,0,24512316,270437059,820215808,1966144384,62175759,12257200,134265264,
+199950772,-1157376838,12171264,-1562103264,-1014103991,6493833,-1031544698,-528028156,82477905,5113543,113639424,838860898,-772764700,-2071253274,1252258419,-2071253504,
+1285812867,787403008,-225213302,771777954,-224680822,6694536,-402648897,-1202126786,-1461190553,-1207732979,1621296647,4825088,121438003,71043188,-1070398340,548930539,
+514585351,5291783,145866803,-189027341,-264378367,-2097125984,-1007811390,4796042,-1898237154,1949746651,50167808,-964486276,83722256,-964488324,134053904,-964490372,
+1086518800,-293403788,-233849568,-83847959,119849759,-1744805214,4990711,-1862250845,213117393,6493835,-1610534168,-778567582,-1937008928,166199376,-16071935,-478147467,
+6725663,-1022697436,95489771,-478092334,6725664,-1022697692,-2097125726,-1007811134,-2013247072,1251999814,21399552,-2013240672,683870022,1342187520,671109120,1342187520,
+20480,524296,1048592,4194368,742391872,707341608,808001070,808464432,-97501392,-1031538908,-528028156,-360452542,-1947979259,-289109297,-1396375998,-169719058,
+-75045377,-472776910,5281675,-1962781047,-1996464114,-1983708082,-1610588146,-31195063,712311356,-611394765,7616197,219774080,-1040769931,376772632,-478029429,-980787104,
+-1979706904,-389969176,-930480118,179555083,-1023391000,246681380,-388897546,-388896559,-2134704108,427231231,-13436026,1317790673,1351584002,125733376,6438458,31982453,
+-1070349568,653772166,-939327414,-788509023,-1949826072,-1291820266,124942,-289174845,-289043902,-1966866870,-1975324989,-1966870847,-2147464922,91358460,1980165248,7137290,
+-1996125402,-389873594,-1047789436,-141829746,-1047604852,-1962349437,-1291536388,-805008894,-1978435076,22317808,-788526919,-117343774,-489566000,-2119502366,-31457034,-2082572853,
+-805416762,-930294411,1858001038,-386102278,292749406,-661733325,8140485,1340669067,67269120,147096448,-1023392119,-544540533,1285685042,-1947994368,-1948003888,-1610592097,
+-403308470,-1023148238,-1039933231,-544554089,-472776910,5283723,-628698573,-271451253,-83628079,4785910,-788368126,-1007025182,-544487797,-2135233230,-259303936,78773131,
+192194547,1241516037,861859957,1589901760,61982251,-2134644525,67127614,1048577906,1963393097,-8067042,-52279382,1228832963,124912640,4800128,-1979157241,-9639709,
+-389829645,1586167688,1228835334,-1899328512,-93405478,142196746,-628174285,8140485,-788496603,-773795360,-2131754016,1668548351,-1961825149,-1945741372,1372032727,-2131195053,
+146080739,-787959380,-790441502,167932896,1976172243,-1966699790,-838947870,1515972213,-796107001,79288462,-1376482560,58325968,-1425722586,536790913,2046546093,87238147,
+-1292926549,-2115706337,1241595631,-997992331,-1976636656,-1949201437,309726,-793971829,637762044,-2119563982,-1407189049,58326224,-1442500058,531754881,-276699934,1967784255,
+-1963080744,-1962915298,-751173034,-745929614,-990459138,-2029227007,720710346,-153159983,704965594,-19846411,-2134704442,67127614,1048577906,1963393097,736856921,-1736214,
+-1947873024,-154825992,65876707,65065409,-1761587706,-561068404,-470355829,16828151,-654900108,-523117065,177653507,974419136,705721286,-204829968,66388901,1976499965,
+-1963947276,-1977569049,61600714,1976499965,1048626166,1946550345,-790507516,5291490,-1963422894,-1729285435,-150912838,62981090,-1761587706,-1164382069,-487128768,16828151,
+-654897036,-947790345,1048584432,1946550345,-956086527,-628178292,-1957471594,1958742751,1942370864,1357916716,-422517040,-259275125,-896861301,-259283725,-159253621,-142532608,
+-896917504,-989616909,-822158077,-1973886859,-790179600,-997566234,-896861301,-74732813,536934273,-1426863478,-822158077,-389813643,74778843,6438538,1349781308,947128380,
+1333004860,1014238524,-1275067975,-1273967350,-32453373,1242970818,840463616,-2134442286,259332606,45403902,146018509,-58060595,-1275054104,-1022309118,281871284,-143338998,
+-269759746,281871284,-403975630,-402524997,-1262228704,-2146382589,74717438,-739522818,281872564,32046218,1381090048,4800128,-2146864121,50350398,11993718,856031672,
+-1978091831,1241532950,1499074765,2418883,-167409114,-758701353,4622568,1370307,-758963560,2046611680,87041540,1025648323,-1012218102,1452015411,1944768770,536919811,
+-489561391,-489561391,-489555453,-100408623,1048641207,1929773129,-791555836,-153122073,-774796333,-773139990,-2133723414,-942536735,-960235005,-2097151674,-2081683774,78120682,
+44593013,1187409780,279970049,-1964227858,296766176,1256997614,5113387,2081424701,851456770,1226738431,-1886769664,-315426802,41533739,243974195,-75497398,-2143849980,
+846465019,-235525967,-372193142,1317595600,40273923,1183375568,-2046578427,-740019488,105286112,4800128,-804883194,1724973670,130188038,-235486226,-2013051256,61932134,
+-472654710,-771334519,88508640,50586603,50529541,1515717635,1600019289,-821616803,-1,-1,-1,-1,-1,-1,-1,-1,
+-1205928961,-661782464,520098721,-1205929009,-661782464,520097953,-326412849,17190528,-815954252,210447953,976111174,-502959068,-1017513737,76164678,-3974663,-1288523493,
+-1221151308,766556600,1904806077,1953654135,1869182329,224222064,1685283327,1785227110,-1480889237,2052915168,1651925880,-1364431506,-13959249,555482912,623125312,673850974,
+137060137,436210447,477961083,674899725,729688354,876360572,960443710,959985440,909456429,858927403,405040,-2075560121,1951232843,1985049935,503775238,454696716,
+169614619,-1073996757,-524418304,-1523649543,721572001,1963087878,10635268,2408195,-1410758728,-2085894004,-524794681,-930305050,-11290453,-1412920149,-1004092018,-1560276474,
+109838480,-1006960494,-644953805,38936203,-1014764661,-745604592,-1047600757,-402634823,-594608220,50446163,-1274838342,169987343,-1171360576,162792194,28844493,-2145268468,
+225771581,1023346118,-1274645235,69324057,1012868161,-1562611135,254018390,-352091486,-1983302716,-1996250354,1090757902,59770567,-768409088,-1260679650,522308890,1240896232,
+-2145268397,208928829,-1274857542,-1205744375,567086088,-577845874,-1275035462,-886977254,168624128,1702063689,1126200434,1095781711,1329864785,1768169555,1952803699,168650100,
+1702129221,1919164530,543520361,1667592307,1701406313,220471410,1376390410,1936615781,544502373,1802725732,1702130789,544106784,1986622052,541139045,1847617129,1936024421,
+2037539187,1951599117,1701538162,2037276960,2036689696,1701345056,1701978222,226059361,1107305482,1128878913,1159733313,17752,0,-2122448896,-1715633755,-8487295,
+-406585381,-26444033,947715838,940572688,947715708,2084044816,2097086008,269515832,2097052728,31800,406600728,-65536,-406600729,1006698495,1715618406,-1006698436,
+-1715618407,118489027,-859013873,1715239116,406611558,859773054,1882206271,1669325040,1734566783,1520025830,1021830972,-528443046,-520552712,235012224,239009342,1008205826,
+2115508350,1717966908,6710886,-612433818,454786011,1665007643,946629688,30924,2122186752,1008205950,1014896766,1008271128,404232318,404226072,1014896664,402653208,
+403504652,805306368,811662944,0,-20922176,603979776,610729830,402653184,-33220,-16777216,406617855,0,0,2016411648,3158136,1819017264,
+108,1819017216,1828613374,2083520620,-133400384,-973078480,1714428108,1815609542,-857967048,1616904310,192,806879232,811622496,811597848,806885400,1711276128,
+1715273532,805306368,808516656,0,805306368,24624,64512,0,805306368,201719856,-1067438056,-964951936,-420028722,1882194044,808464432,-864550660,
+-866109428,-864550660,-871614452,1008468088,218025068,-1057226722,-871625480,1614282872,-858982208,-855900040,808458252,-864550864,-859014964,-864550792,403471564,805306480,
+805306416,805306416,805306416,806903856,811647072,24,-67108612,811597824,806882328,-864550816,3151884,-964952016,-1059135778,2016411768,-855847732,1727791308,
+1717992550,1715208444,1723908288,1828192316,1818650214,1660813560,1651013736,1660813566,1617459304,1715208432,1724825792,-859045826,-858981172,813170892,808464432,203292792,
+-859042804,1726349432,1718384748,1626341606,1717723232,-289013506,-958988546,-423231290,-959521034,1815609542,1824966342,1727791160,1616936038,-864550672,2027736268,1727791132,
+1718385766,-864550682,-870551328,-1258553224,808464432,-859045768,-858993460,-859045636,2026687692,-960102352,-285288762,-960102202,1815623788,-859045690,808483020,-956432264,
+1714559116,1618477310,1616928864,1623195768,101455920,410517506,404232216,940572792,50796,0,0,808517376,24,0,-864285576,1625292918,
+1717992544,220,-859779976,203161720,-859014132,118,-1057174408,1815609464,1616965728,240,2093796470,1625356300,1717991020,3145958,808464496,786552,
+-871625716,1625323724,1819831398,812646630,808464432,120,-687931700,198,-858993416,204,-858993544,120,2087085788,61536,2093796470,7692,
+1617327836,240,209240188,806355192,875573372,24,-858993460,118,2026687692,48,-16853306,108,1815637190,198,2093796556,63500,
+1680906492,807141628,808509488,404226076,404226072,819986456,808459312,-596246304,0,268435456,-960074696,1344143614,-1912586056,-28288808,-33063732,1477803212,
+844680991,1879475904,244011008,378208366,-336920468,7212681,7083657,7341766,-2299136,1347559167,-1912586056,1812398040,-16485120,-2097123834,402681406,-1330113675,
+1812343552,-1559595776,1856176236,1889681408,1074724352,-1341426432,66238988,1059487982,548466688,483205350,-820028840,-946929869,-2147453761,91501564,-336550728,-253446141,
+1946499878,-1934886332,-1594119224,646578277,378208358,213844067,-222238720,-352193349,-369099003,-387388613,1662421986,79856384,-301963872,281874356,281871284,281871028,
+1952971139,-855526396,-101895408,268891843,-809303808,1381061456,4242206,28367758,16778886,1081344316,-854608645,1374456336,281871284,-768388519,281871028,281872564,
+1912616168,985857559,-387091755,208797728,-956378574,1914306176,1239263,-1269118694,-99562238,16780936,1532582431,229691224,1912603880,1376432150,-1065037261,548405877,
+399311028,1946273014,-1017448191,1372293963,-402627399,91546311,1273625058,-1394411802,-337487378,541327299,1329799200,1363234893,14703594,-16,-1,10158079]
+}
\ No newline at end of file
diff --git a/devices/pc/rom/compaq/bios/portable/README.md b/devices/pc/rom/compaq/bios/portable/README.md
new file mode 100644
index 000000000..57701a4ca
--- /dev/null
+++ b/devices/pc/rom/compaq/bios/portable/README.md
@@ -0,0 +1,52 @@
+---
+layout: page
+title: Compaq Portable Computer ROMs
+permalink: /devices/pc/rom/compaq/bios/portable/
+---
+
+Compaq Portable Computer ROMs
+---
+
+The oldest COMPAQ Portable Computer ROM I have is an 8Kb [Rev C ROM](100666-001-REVC.json) from a REV D system board.
+
+[
](http://archive.pcjs.org/pubs/pc/reference/compaq/images/COMPAQ_Portable_System_Board-FULL.jpg)
+
+Printed on the back of the system board:
+
+ (C) COMPAQ COMPUTER CORP. 1982
+ BOARD NO. 000006-001 REV D 84490
+
+Curiously, the system board contains two mask ROMs (AM9265DPC), both labeled `1000666-001 REV.C` but with two different
+identifiers: `34569 8350KME` on the ROM in socket U40, and `34569 8350LME` on the ROM the socket below U40. However,
+when I dumped the ROMs with my homemade ROM reader, their contents were identical.
+
+I've seen pictures of other COMPAQ Portable system boards with only one mask ROM installed, so I'm puzzled as to why
+my board contains two. Do the contents of the second ROM show up in a different part of the address space? Unless
+I'm someday able to power and test this board, I may never know.
+
+Some clues can be found in this
+[COMPAQ Portable/Plus Maintenance Guide (Excerpt)](http://archive.pcjs.org/pubs/pc/reference/compaq/portable/Compaq_Portable_Plus_Support_Discontinued.pdf).
+Older (REV B) system boards apparently *did* require 2 ROMs, at locations U40 and U47. REV C and later system boards
+required only 1 (REV C or later) ROM at location U40.
+
+That's all well and good, but it still doesn't explain why my REV D system board contains 2 ROMs. It just raises
+more questions. For example, why did *older* system boards require 2 ROMs? Were the earlier BIOS revisions larger
+or the ROMs smaller (eg, 4Kb instead of 8Kb)?
+
+Also, I've come across some other computer history sites that claim the COMPAQ Portable contained "12Kb" of ROM.
+Hmmm.
+
+### System ROM Revisions
+
+Thanks to the aforementioned Maintenance Guide excerpt, we know that these other COMPAQ Portable ROM revisions existed;
+however, REV C is the only revision currently available here.
+
+ Rev ROM # Size Date
+ --- ---------- ---- ----
+ B 100518-001
+ C 100666-001 8Kb None
+ E 100298-004
+ F 100298-005
+ G 105681-001
+ H 106265-001
+ J 106265-002
diff --git a/devices/pc/rom/compaq/bios/portable/cpqpatch/CPQPATCH.C b/devices/pc/rom/compaq/bios/portable/cpqpatch/CPQPATCH.C
new file mode 100644
index 000000000..8b964ce92
--- /dev/null
+++ b/devices/pc/rom/compaq/bios/portable/cpqpatch/CPQPATCH.C
@@ -0,0 +1,166 @@
+/* CPQPATCH 1.0 by John Elliott.
+ *
+ * Patches the BIOS ROM of the Compaq Portable (revision C) to support
+ * booting from a hard drive.
+ *
+ * This program is public domain.
+ */
+
+#include
+#include
+#include
+
+unsigned char rom[8192];
+
+#ifdef __PACIFIC__
+#define AV0 "CPQPATCH"
+#define EXIT_FAILURE -1
+#define EXIT_SUCCESS 0
+#else
+#define AV0 argv[0]
+#endif
+
+/* First patch: New INT19 vector */
+static unsigned char p0[] = { 0x20, 0xf8 }; /* DW 0xF820 */
+
+/* Second patch: Convert old INT19 into a subroutine */
+static unsigned char p1[] = { /* Enter with DH = 0 DL = drive */
+ 0xbb, 0x40, 0x00, /* P1: MOV BX, 0x40 ;BIOS dseg */
+ 0x8E, 0xDB, /* MOV DS, BX */
+ 0xB9, 0x03, 0x00, /* MOV CX, 0x0003 ;Try 3 times */
+ 0x51, /* TRY: PUSH CX ;Save count */
+ 0x52, /* PUSH DX ;Save drive */
+ 0xBB, 0x00, 0x00, /* MOV BX, 0x0000 ;Load to */
+ 0x8E, 0xC3, /* MOV ES, BX ;segment 0 */
+ 0xB4, 0x00, /* MOV AH, 0x00 ;Reset FDC */
+ 0xCD, 0x13, /* INT 0x13 ;BIOS disk */
+ 0x5A, /* POP DX ;Get drive */
+ 0x52, /* PUSH DX ;Save again */
+ 0xBB, 0x00, 0x7C, /* MOV BX, 0x7C00 ;Load addr */
+ 0xB9, 0x01, 0x00, /* MOV CX, 0x0001 ;Cyl 0 sec 1 */
+ 0xB8, 0x01, 0x02, /* MOV AX, 0x0201 ;Read sector */
+ 0xCD, 0x13, /* INT 0x13 ;BIOS disk */
+ 0x5A, /* POP DX ;drive */
+ 0x59, /* POP CX ;count */
+ 0x73, 0x03, /* JNC OK ;It worked */
+ 0xE2, 0xE2, /* LOOP TRY ;Retry */
+ 0xF9, /* STC ;It failed */
+ 0xC3, /* RET */
+ 0x00, 0x00, 0x00, 0x00, /* ;Unused */
+};
+
+/* Third patch: New INT19 entry point. This replaces an unused area. */
+static unsigned char p2[] = {
+ 0xfb, /* STI */
+ 0xBA, 0x00, 0x00, /* TR2: MOV DX, 0x0000 ;Floppy */
+ 0xE8, 0xCB, 0xEE, /* CALL P1 ;Try it */
+ 0x73, 0x0B, /* JNC GO ;It worked! */
+ 0xB2, 0x80, /* MOV DL, 0x80 ;Hard drive */
+ 0xE8, 0xC4, 0xEE, /* CALL P1 ;Try it */
+ 0x73, 0x04, /* JNC GO ;It worked! */
+ 0xCD, 0x20, /* INT 0x20 ;See below */
+ 0xEB, 0xED, /* JMPS TR2 ;Loop forever*/
+
+ 0xEA, 0x00, 0x7C, /* GO: JMPF 0x0000:0x7C00 ;Go to sector*/
+ 0x00, 0x00,
+ 0x00, /* DB 0 ;word align */
+ 0xEC, 0x7E, /* DW 07EECh ;checksum */
+ 0x00, 0x00, 0x00, 0x00, /* ;Unused */
+/* Note on the INT 0x20: This is not 'program termination' at boot time. The
+ * Compaq BIOS hooks it and uses it to display the message:
+ *
+ * Diskette error
+ * Replace and strike any key when ready
+ *
+ */
+};
+
+
+void patch()
+{
+ memcpy(rom + 0x0376, p0, sizeof(p0));
+ memcpy(rom + 0x06f2, p1, sizeof(p1));
+ memcpy(rom + 0x1820, p2, sizeof(p2));
+}
+
+unsigned short checksum()
+{
+ unsigned short total, cur;
+ int n;
+
+ total = 0;
+ for (n = 0; n < 8192; n++)
+ {
+ cur = rom[n];
+ ++n;
+ cur |= (((unsigned short)rom[n]) << 8);
+ total += cur;
+ }
+ return total;
+}
+
+int main(int argc, char **argv)
+{
+ FILE *fp;
+ unsigned short sum;
+
+ if (argc < 3)
+ {
+ fprintf(stderr, "Syntax: %s old_rom new_rom\n\n"
+ /* 1...5...10...15...20...25...30...35...40*/
+ "Patches the BIOS ROM of the Compaq\n"
+ "Portable (revision C) to support booting\n"
+ "from a hard drive.\n\n"
+ "This program is public domain.", AV0);
+ return EXIT_SUCCESS;
+ }
+ fp = fopen(argv[1], "rb");
+ if (!fp)
+ {
+ perror(argv[1]);
+ return EXIT_FAILURE;
+ }
+ if (fread(rom, 1, sizeof(rom), fp) < (int)sizeof(rom))
+ {
+ fprintf(stderr, "Could not read 8k from %s\n", argv[1]);
+ fclose(fp);
+ return EXIT_FAILURE;
+ }
+ fclose(fp);
+ if (memcmp(rom + 0x1FEA, "COMPAQ", 6))
+ {
+ fprintf(stderr, "COMPAQ signature not found in %s\n", argv[1]);
+ return EXIT_FAILURE;
+ }
+ if (rom[0x1FE6] != 'C')
+ {
+ fprintf(stderr, "ROM revision is not C. This may not work.\n");
+ }
+ sum = checksum();
+ if (sum != 0)
+ {
+ fprintf(stderr, "ROM checksum is 0x%04x (should be 0). This "
+ "may not work.\n", sum);
+ }
+ patch();
+ sum = checksum();
+ if (sum != 0)
+ {
+ fprintf(stderr, "New checksum is 0x%04x (should be 0). This "
+ "may not work.\n", sum);
+ }
+ fp = fopen(argv[2], "wb");
+ if (!fp)
+ {
+ perror(argv[2]);
+ return EXIT_FAILURE;
+ }
+ if (fwrite(rom, 1, sizeof(rom), fp) < (int)sizeof(rom))
+ {
+ fprintf(stderr, "Could not write 8k to %s\n", argv[2]);
+ fclose(fp);
+ return EXIT_FAILURE;
+ }
+ fclose(fp);
+ return EXIT_SUCCESS;
+}
diff --git a/devices/pc/rom/compaq/bios/portable/cpqpatch/CPQPATCH.EXE b/devices/pc/rom/compaq/bios/portable/cpqpatch/CPQPATCH.EXE
new file mode 100644
index 000000000..ca6e4dc3f
Binary files /dev/null and b/devices/pc/rom/compaq/bios/portable/cpqpatch/CPQPATCH.EXE differ
diff --git a/devices/pc/rom/compaq/bios/portable/cpqpatch/CPQPATCH.TXT b/devices/pc/rom/compaq/bios/portable/cpqpatch/CPQPATCH.TXT
new file mode 100644
index 000000000..b138eed82
--- /dev/null
+++ b/devices/pc/rom/compaq/bios/portable/cpqpatch/CPQPATCH.TXT
@@ -0,0 +1,67 @@
+CPQPATCH v1.0 12 August 2008, John Elliott
+=============================================================================
+
+ CPQPATCH patches the BIOS ROM of a Compaq Portable so that it can boot from
+a hard drive whose own ROM doesn't support booting an XT.
+
+ To explain a little:
+
+- On the original PC and XT, the BIOS ROM doesn't know anything about hard
+drives. The hard drive controller comes with its own ROM, and this handles all
+aspects of the drives, including booting from them.
+
+- On AT-class machines, the BIOS ROM does know about hard drives, and supports
+ATA drives itself. Additional hard drive controllers (eg: SCSI) can get away
+with just adding the drives to the system; the BIOS handles booting.
+
+ So, I had a Compaq portable, and an add-on drive for it (2Mb of flash on an
+ISA card) which left booting up to the BIOS. The attached program will patch
+the revision C ROM so that it will boot from my add-on drive. It should also
+work with the Future Domain TMC-850 (firmware 8.4 or 8.5).
+
+ The C source (cpqpatch.c) includes the assembly language source code for
+the changes made.
+
+To use CPQPATCH:
+~~~~~~~~~~~~~~~~
+
+You will need:
+* A Compaq Portable
+* An EPROM burner
+* A 2764 EPROM, 28c64 EEPROM, or compatible chip.
+
+1. Get hold of a Compaq Portable BIOS image (revision C). This should be an 8k
+file. If you have a Portable, you can check the BIOS revision with DEBUG:
+
+A>DEBUG
+
+-DFFFE:6,f
+FFFE:0006 43 20 20 20 43 4F 4D 50 51 51 C COMPAQ
+-
+
+ The 'C' by itself is the revision number.
+
+ Either save the ROM with DEBUG, or image it once you've dismantled the PC.
+
+2. Take the motherboard out of the Portable.
+
+3. Remove the BIOS ROM. This should be marked 100666-1 (or 1006661) and be
+ plugged into a socket near the DIP switches. If you haven't imaged it, do so
+ now.
+
+4. Run CPQPATCH:
+
+ CPQPATCH bios.bin new.bin
+
+ where "bios.bin" is the original BIOS, and "new.bin" is the name you want to
+ give to the patched version.
+
+5. Burn "new.bin" to an EPROM or EEPROM.
+
+6. Put that EPROM/EEPROM in the socket where the BIOS ROM came from. The
+ silkscreening on the board should show you which way round it goes, but in
+ case it doesn't, the end with the notch should point in the direction of the
+ ISA slots.
+
+7. Put the whole thing back together, power it up, and hope it works.
+
diff --git a/devices/pc/rom/compaq/bios/portable3/README.md b/devices/pc/rom/compaq/bios/portable3/README.md
index 0f266370c..04d97c527 100644
--- a/devices/pc/rom/compaq/bios/portable3/README.md
+++ b/devices/pc/rom/compaq/bios/portable3/README.md
@@ -1,12 +1,12 @@
---
layout: page
-title: Compaq Portable III Information
+title: Compaq Portable III ROMs
permalink: /devices/pc/rom/compaq/bios/portable3/
redirect_from:
- /devices/pc/bios/compaq/portable3/
---
-Compaq Portable III Information
+Compaq Portable III ROMs
---
### System ROM Locations