More COMPAQ tweaks
This commit is contained in:
parent
8cd37b58e9
commit
3d514e4d6b
21 changed files with 147 additions and 48 deletions
|
|
@ -6,17 +6,17 @@ permalink: /blog/2016/02/24/
|
|||
---
|
||||
|
||||
IBM is obviously the company everyone thinks of first when we talk about the IBM PC -- after all, IBM is right
|
||||
there in the name. And they designed the thing. So IBM deserves lots of credit, especially the folks who worked
|
||||
in Boca Raton at IBM's Entry Systems Division in the early 1980's.
|
||||
there in the name. And they designed the thing. So IBM deserves lots of credit for where we are today, especially
|
||||
the folks who worked in Boca Raton at IBM's Entry Systems Division in the early 1980's.
|
||||
|
||||
However, IBM was a huge company that existed *before* the IBM PC and which still exists today; they had some built-in
|
||||
advantages. The PC era also saw a lot of companies spring up from nowhere and then disappear just as quickly.
|
||||
Some of them didn't do anything particularly innovative or noteworthy -- they probably just wanted to ride the PC wave
|
||||
and make some easy money in the process.
|
||||
advantages. The PC era also saw the rise and fall of many other personal computer companies. Some of them didn't
|
||||
do anything particularly innovative or noteworthy -- perhaps they simply wanted to ride the PC wave and make some easy
|
||||
money in the process.
|
||||
|
||||
I think one of the more exceptional companies from that era is COMPAQ. It's easy to dismiss COMPAQ as just another
|
||||
"copy-cat" operation, but I think it's a mistake to dismiss any company in the PC business as simply "copying" or
|
||||
"cloning" the IBM design. Companies like COMPAQ were really in the *compatibility* business.
|
||||
One of the more exceptional companies from that era is COMPAQ. It's easy to dismiss COMPAQ as just another
|
||||
company that merely "copied" or "cloned" the IBM design, but COMPAQ's ambitions went beyond imitation: they were
|
||||
really in the *compatibility* business.
|
||||
|
||||
Innovation in the PC industry would not have been as rapid and diverse if IBM had been the only supplier of
|
||||
compatible machines and accessories. And IBM probably would have continued some of the monopolistic practices it had
|
||||
|
|
@ -69,14 +69,17 @@ since they are all machines I would like to see PCjs eventually support:
|
|||
+ COMPAQ Portable II
|
||||
+ [COMPAQ DeskPro 386](/devices/pc/machine/compaq/deskpro386/)
|
||||
+ COMPAQ Portable III
|
||||
+ COMPAQ DeskPro 386/20
|
||||
+ COMPAQ Portable 386
|
||||
+ COMPAQ 386/20e
|
||||
+ COMPAQ DeskPro 386/25
|
||||
+ COMPAQ DeskPro 386s
|
||||
+ COMPAQ DeskPro 386/20e
|
||||
+ COMPAQ SLT Series (SLT/286)
|
||||
+ COMPAQ LTE Series (LTE 286, LTE 386)
|
||||
+ COMPAQ DeskPro 386/33
|
||||
+ COMPAQ LTE Series (LTE and LTE/286)
|
||||
|
||||
It's hard to stop at this point, because PCjs supports the 80386, and COMPAQ produced other 80386-based systems,
|
||||
like those in the "LTE Lite" series. But I think I need to stick to my original plan and draw a line at the end of the
|
||||
1980s.
|
||||
It's hard to stop at this point, because COMPAQ produced other innovative 80386-based systems, like those in the LTE
|
||||
and LTE Lite series. But I think I need to stick to my original plan and draw a line at the end of the 1980s.
|
||||
|
||||
### Regarding The COMPAQ Name
|
||||
|
||||
|
|
@ -87,8 +90,9 @@ However, it seems that sometime between the release of [COMPAQ MS-DOS 3.10](/dis
|
|||
called themselves `The COMPAQ Personal Computer MS-DOS`, but in 3.31, the copyright string changed to
|
||||
`Compaq Computer Corp.`
|
||||
|
||||
Their all-caps practice also extended to at least *some* product names (eg, the `COMPAQ DESKPRO`), but I'm not sure
|
||||
how strict they were, and I'm decidedly less so, which is why I use the name `COMPAQ DeskPro`.
|
||||
Their all-caps practice also extended to product names (eg, `COMPAQ DESKPRO`), at least in their marketing literature.
|
||||
Contemporary news stories, however, tended to lower-case the product name (eg, `COMPAQ Deskpro`). I've decided to
|
||||
split the difference and use mixed-case where it seems appropriate (eg, `COMPAQ DeskPro`).
|
||||
|
||||
*[@jeffpar](http://twitter.com/jeffpar)*
|
||||
*February 24, 2016*
|
||||
|
|
|
|||
|
|
@ -18,10 +18,14 @@ support:
|
|||
+ [COMPAQ Portable II](#compaq-portable-ii)
|
||||
+ [COMPAQ DeskPro 386](#compaq-deskpro-386)
|
||||
+ [COMPAQ Portable III](#compaq-portable-iii)
|
||||
+ COMPAQ DeskPro 386/20
|
||||
+ [COMPAQ Portable 386](#compaq-portable-386)
|
||||
+ [COMPAQ 386/20e](#compaq-38620e)
|
||||
+ COMPAQ DeskPro 386/25
|
||||
+ COMPAQ DeskPro 386s
|
||||
+ [COMPAQ DeskPro 386/20e](#compaq-38620e)
|
||||
+ [COMPAQ SLT Series](#compaq-slt-series) (SLT/286)
|
||||
+ [COMPAQ LTE Series](#compaq-lte-series) (LTE 286, LTE 386)
|
||||
+ COMPAQ DeskPro 386/33
|
||||
+ [COMPAQ LTE Series](#compaq-lte-series) (LTE and LTE/286)
|
||||
|
||||
At the moment, only the [COMPAQ DeskPro 386](deskpro386/) is supported, but now that we have ROMs for a few other
|
||||
COMPAQ machines -- most importantly, their **first** machine, the [COMPAQ Portable](/devices/pc/rom/compaq/bios/portable/) --
|
||||
|
|
@ -36,8 +40,9 @@ However, it seems that sometime between the release of [COMPAQ MS-DOS 3.10](/dis
|
|||
called themselves `The COMPAQ Personal Computer MS-DOS`, but in 3.31, the copyright string changed to
|
||||
`Compaq Computer Corp.`
|
||||
|
||||
Their all-caps practice also extended to at least *some* product names (eg, the `COMPAQ DESKPRO`), but I'm not sure
|
||||
how strict they were, and I'm decidedly less so, which is why I use the name `COMPAQ DeskPro`.
|
||||
Their all-caps practice also extended to product names (eg, `COMPAQ DESKPRO`), at least in their marketing literature.
|
||||
Contemporary news stories, however, tended to lower-case the product name (eg, `COMPAQ Deskpro`). I've decided to
|
||||
split the difference and use mixed-case where it seems appropriate (eg, `COMPAQ DeskPro`).
|
||||
|
||||
The rest of this page will be used to collect information about the machines listed above.
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ permalink: /devices/pc/machine/compaq/deskpro386/
|
|||
COMPAQ DeskPro 386 Machines
|
||||
---
|
||||
|
||||
* [COMPAQ DeskPro 386 with 128Kb EGA and 2Mb RAM](ega/2048kb/)
|
||||
* [COMPAQ DeskPro 386 with 256Kb EGA and 4Mb RAM](ega/4096kb/)
|
||||
* [COMPAQ DeskPro 386 with VGA and 2Mb RAM](vga/2048kb/)
|
||||
* [COMPAQ DeskPro 386 with VGA and 4Mb RAM, running Windows 95](vga/4096kb/)
|
||||
* [COMPAQ DeskPro 386 with 2Mb RAM and COMPAQ EGA](ega/2048kb/)
|
||||
* [COMPAQ DeskPro 386 with 4Mb RAM and COMPAQ EGA](ega/4096kb/)
|
||||
* [COMPAQ DeskPro 386 with 2Mb RAM and IBM VGA](vga/2048kb/)
|
||||
* [COMPAQ DeskPro 386 with 4Mb RAM and IBM VGA, running Windows 95](vga/4096kb/)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
layout: page
|
||||
title: "COMPAQ DeskPro 386 (2Mb) with EGA Display"
|
||||
title: "COMPAQ DeskPro 386 (2Mb) with COMPAQ EGA"
|
||||
permalink: /devices/pc/machine/compaq/deskpro386/ega/2048kb/
|
||||
machines:
|
||||
- type: pc-dbg
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="/versions/pcjs/1.20.9/machine.xsl"?>
|
||||
<machine id="deskpro386" class="pc" border="1" pos="center" background="#FAEBD7">
|
||||
<name pos="center">COMPAQ DeskPro 386 (16Mhz), 128Kb EGA, 2048Kb RAM</name>
|
||||
<name pos="center">COMPAQ DeskPro 386, 2Mb RAM, COMPAQ EGA</name>
|
||||
<computer id="deskpro386-ega-2048k" name="COMPAQ DeskPro 386" buswidth="32"/>
|
||||
<cpu id="cpu386" model="80386" autostart="false"/>
|
||||
<ram id="ramLow" addr="0x00000" test="false" size="0xa0000" comment="ROM BIOS memory test has been disabled"/>
|
||||
<ram id="ramCPQ" addr="0xfa0000" size="0x60000" comment="COMPAQ memory at 0xFA0000"/>
|
||||
<ram id="ramExt" addr="0x100000" size="0x100000" comment="Extended memory at 0x100000"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/compaq/ega/000412-001B/compaq-ega.json" notify="videoEGA"/>
|
||||
<rom id="romBIOS" addr="0xf8000" size="0x8000" alias="[0xf0000,0xffff0000,0xffff8000]" file="/devices/pc/rom/compaq/bios/deskpro386/1988-01-28/1988-01-28.json"/>
|
||||
<video ref="/devices/pc/video/ibm/ega/ibm-ega-128kb-autolockfs.xml"/>
|
||||
<video ref="/devices/pc/video/compaq/ega/compaq-ega-256kb-autolockfs.xml"/>
|
||||
<keyboard ref="/devices/pc/keyboard/keyboard-minimal-arrows.xml"/>
|
||||
<debugger id="debugger" messages="" commands=""/>
|
||||
<panel ref="/devices/pc/panel/wide386.xml"/>
|
||||
<fdc ref="/disks/pc/compiled/library.xml" automount='{A: {name: "PC-DOS 3.30 (Disk 1)", path: "/disks/pc/dos/ibm/3.30/PCDOS330-DISK1.json"}, B: {name: "PC-DOS 3.30 (Disk 2)", path: "/disks/pc/dos/ibm/3.30/PCDOS330-DISK2.json"}}'/>
|
||||
<hdc id="hdcAT" type="at" drives='[{name: "20Mb Hard Disk", type: 2, path: "/disks/pc/fixed/20mb/pcdos330-empty.json"}]'/>
|
||||
<hdc id="hdcAT" type="at" drives='[{name:"20Mb Hard Disk",type:2,path:"/disks/pc/fixed/20mb/pcdos330-empty.json"}]'/>
|
||||
<chipset id="chipset" model="deskpro386" floppies="[1200,1200]"/>
|
||||
<serial id="com1" adapter="1"/>
|
||||
<serial id="com2" adapter="2" binding="print"/>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
layout: page
|
||||
title: "COMPAQ DeskPro 386 (4Mb) with EGA Display"
|
||||
title: "COMPAQ DeskPro 386 (4Mb) with COMPAQ EGA"
|
||||
permalink: /devices/pc/machine/compaq/deskpro386/ega/4096kb/
|
||||
machines:
|
||||
- type: pc-dbg
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="/versions/pcjs/1.20.9/machine.xsl"?>
|
||||
<machine id="deskpro386" class="pc" border="1" pos="center" background="#FAEBD7">
|
||||
<name pos="center">COMPAQ DeskPro 386 (16Mhz), 256Kb EGA, 4096Kb RAM</name>
|
||||
<name pos="center">COMPAQ DeskPro 386, 4Mb RAM, COMPAQ EGA</name>
|
||||
<computer id="deskpro386-ega-2048k" name="COMPAQ DeskPro 386" buswidth="32"/>
|
||||
<cpu id="cpu386" model="80386" autostart="false"/>
|
||||
<ram id="ramLow" addr="0x00000" test="false" size="0xa0000" comment="ROM BIOS memory test has been disabled"/>
|
||||
<ram id="ramCPQ" addr="0xfa0000" size="0x60000" comment="COMPAQ memory at 0xFA0000"/>
|
||||
<ram id="ramExt" addr="0x100000" size="0x300000" comment="Extended memory at 0x100000"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/compaq/ega/000412-001B/compaq-ega.json" notify="videoEGA"/>
|
||||
<rom id="romBIOS" addr="0xf8000" size="0x8000" alias="[0xf0000,0xffff0000,0xffff8000]" file="/devices/pc/rom/compaq/bios/deskpro386/1988-01-28/1988-01-28.json"/>
|
||||
<video ref="/devices/pc/video/ibm/ega/ibm-ega-256kb-autolockfs.xml"/>
|
||||
<video ref="/devices/pc/video/compaq/ega/compaq-ega-256kb-autolockfs.xml"/>
|
||||
<keyboard ref="/devices/pc/keyboard/keyboard-minimal-arrows.xml"/>
|
||||
<debugger id="debugger" messages="" commands=""/>
|
||||
<panel ref="/devices/pc/panel/wide386.xml"/>
|
||||
<fdc ref="/disks/pc/compiled/library.xml" automount='{A: {name: "PC-DOS 3.30 (Disk 1)", path: "/disks/pc/dos/ibm/3.30/PCDOS330-DISK1.json"}, B: {name: "PC-DOS 3.30 (Disk 2)", path: "/disks/pc/dos/ibm/3.30/PCDOS330-DISK2.json"}}'/>
|
||||
<hdc id="hdcAT" type="at" drives='[{name: "20Mb Hard Disk", type: 2, path: "/disks/pc/fixed/20mb/pcdos330-empty.json"}]'/>
|
||||
<hdc id="hdcAT" type="at" drives='[{name:"20Mb Hard Disk",type:2,path:"/disks/pc/fixed/20mb/pcdos330-empty.json"}]'/>
|
||||
<chipset id="chipset" model="deskpro386" floppies="[1200,1200]"/>
|
||||
<parallel id="lpt1" adapter="2"/>
|
||||
<serial id="com1" adapter="1"/>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
layout: page
|
||||
title: "COMPAQ DeskPro 386 (2Mb) with VGA Display"
|
||||
title: "COMPAQ DeskPro 386 (2Mb) with IBM VGA"
|
||||
permalink: /devices/pc/machine/compaq/deskpro386/vga/2048kb/
|
||||
machines:
|
||||
- type: pc-dbg
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="/versions/pcjs/1.20.9/machine.xsl"?>
|
||||
<machine id="deskpro386" class="pc" border="1" pos="center" background="#FAEBD7">
|
||||
<name pos="center">COMPAQ DeskPro 386 (16Mhz), IBM VGA, 2048Kb RAM, 20Mb Hard Disk</name>
|
||||
<name pos="center">COMPAQ DeskPro 386, 2Mb RAM, IBM VGA, 20Mb Hard Disk</name>
|
||||
<computer id="deskpro386-vga-2048k" name="COMPAQ DeskPro 386" buswidth="32"/>
|
||||
<cpu id="cpu386" model="80386" autostart="false"/>
|
||||
<ram id="ramLow" addr="0x00000" test="true" size="0xa0000" comment="ROM BIOS memory test has NOT been disabled"/>
|
||||
<cpu id="cpu386" model="80386" autostart="true"/>
|
||||
<ram id="ramLow" addr="0x00000" test="false" size="0xa0000" comment="ROM BIOS memory test has been disabled"/>
|
||||
<ram id="ramCPQ" addr="0xfa0000" size="0x60000" comment="COMPAQ memory at 0xFA0000"/>
|
||||
<ram id="ramExt" addr="0x100000" size="0x100000" comment="Extended memory at 0x100000"/>
|
||||
<rom id="romVGA" addr="0xc0000" size="0x6000" file="/devices/pc/video/ibm/vga/1986-10-27/ibm-vga.json" notify="videoVGA[0x378d,0x3f8d]"/>
|
||||
|
|
@ -13,8 +13,8 @@
|
|||
<keyboard ref="/devices/pc/keyboard/keyboard-minimal-functions.xml"/>
|
||||
<fdc ref="/disks/pc/compiled/library.xml" automount='{A: {name: "PC-DOS 3.30 (Disk 1)", path: "/disks/pc/dos/ibm/3.30/PCDOS330-DISK1.json"}, B: {name: "VGA Tests (Black Book)", path: "/tests/pc/vga/VGABIN.json"}}'/>
|
||||
<debugger id="debugger" messages="fault|int" commands=""/>
|
||||
<panel ref="/devices/pc/panel/btpanel.xml"/>
|
||||
<hdc id="hdcAT" type="at" drives='[{name:"20Mb Hard Disk",type:2}]'/>
|
||||
<panel ref="/devices/pc/panel/wide386.xml"/>
|
||||
<hdc id="hdcAT" type="at" drives='[{name:"20Mb Hard Disk",type:2,path:"/disks/pc/fixed/20mb/pcdos330-empty.json"}]'/>
|
||||
<chipset id="chipset" model="deskpro386" floppies="[1200,1200]" monitor="vga"/>
|
||||
<serial id="com1" adapter="1"/>
|
||||
<serial id="com2" adapter="2" binding="print"/>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
layout: page
|
||||
title: "COMPAQ DeskPro 386 (4Mb) with VGA Display"
|
||||
title: "COMPAQ DeskPro 386 (4Mb) with IBM VGA"
|
||||
permalink: /devices/pc/machine/compaq/deskpro386/vga/4096kb/
|
||||
machines:
|
||||
- type: pc-dbg
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="/versions/pcjs/1.20.9/machine.xsl"?>
|
||||
<machine id="deskpro386" class="pc" border="1" pos="center" background="#FAEBD7">
|
||||
<name pos="center">COMPAQ DeskPro 386 (16Mhz), IBM VGA, 2048Kb RAM, 20Mb Hard Disk</name>
|
||||
<name pos="center">COMPAQ DeskPro 386, 4Mb RAM, IBM VGA, 20Mb Hard Disk</name>
|
||||
<computer id="deskpro386-vga-4096k" name="COMPAQ DeskPro 386" buswidth="32" state="/devices/pc/machine/compaq/deskpro386/vga/4096kb/state.json"/>
|
||||
<cpu id="cpu386" model="80386" autostart="true"/>
|
||||
<ram id="ramLow" addr="0x00000" test="false" size="0xa0000" comment="ROM BIOS memory test has been disabled"/>
|
||||
|
|
|
|||
|
|
@ -12,3 +12,47 @@ Our COMPAQ [EGA ROM BIOS](000412-001B/compaq-ega.json) comes from
|
|||
|
||||
cd 000412-001B
|
||||
filedump --file=http://bitsavers.trailing-edge.com/pdf/compaq/firmware/000412-001B_EGA/108281-001.bin --output=compaq-ega.json
|
||||
|
||||
### Font Information
|
||||
|
||||
As noted in [Video.onROMLoad()](/modules/pcjs/lib/video.js), the Video component needs to know where the card's
|
||||
font data is located:
|
||||
|
||||
For EGA cards, in the absence of any parameters, we assume that we're receiving the original
|
||||
IBM EGA ROM, which stores its 8x14 font data at 0x2230 as one continuous sequence; the total size
|
||||
of the 8x14 font is 0xE00 bytes.
|
||||
|
||||
At 0x3030, there is an "ALPHA SUPPLEMENT" table, which contains 15 bytes per row instead of 14,
|
||||
because each row is preceded by one byte containing the corresponding ASCII code; there are 20
|
||||
entries in the supplemental table, for a total size of 0x12C bytes.
|
||||
|
||||
Finally, at 0x3160, we have the 8x8 font data (also known as the thicker "double dot" CGA font);
|
||||
the total size of the 8x8 font is 0x800 bytes. No other font data is present in the EGA ROM;
|
||||
the thin 5x7 "single dot" CGA font is notably absent, which is fine, because we never loaded it for
|
||||
the MDA/CGA either.
|
||||
|
||||
TODO: Determine how the supplemental table is used and whether we need to add some "run-time"
|
||||
font generation to support it (as opposed to "init-time" generation, which is all we do now).
|
||||
There's probably a similar need for user-defined fonts; for now, they're simply not supported.
|
||||
|
||||
For reference, here are the first 0x80 bytes at offset 0x2230 from this ROM, which should contain the font data
|
||||
for the first 9 8x14 characters:
|
||||
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00002230 ................
|
||||
0x7E,0x81,0xA5,0x81,0x81,0xBD,0x99,0x81,0x7E,0x00,0x00,0x00,0x00,0x00,0x7E,0xFF, // 0x00002240 ~.......~.....~.
|
||||
0xDB,0xFF,0xFF,0xC3,0xE7,0xFF,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x6C,0xFE,0xFE, // 0x00002250 ......~......l..
|
||||
0xFE,0xFE,0x7C,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x38,0x7C,0xFE,0x7C, // 0x00002260 ..|8........8|.|
|
||||
0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x3C,0x3C,0xE7,0xE7,0xE7,0x18,0x18, // 0x00002270 8...............
|
||||
0x3C,0x00,0x00,0x00,0x00,0x00,0x18,0x3C,0x7E,0xFF,0xFF,0x7E,0x18,0x18,0x3C,0x00, // 0x00002280 ........~..~....
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00,0x00,0x00,0x00, // 0x00002290 ................
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, // 0x000022A0 ................
|
||||
|
||||
Happily, COMPAQ provided excellent compatibility with IBM's EGA ROM, because if you compare the above font data to
|
||||
[IBM's EGA Font Data](/devices/pc/video/ibm/ega/#font-information), you'll see that it matches.
|
||||
|
||||
However, any card where the ROM font data is in a non-standard location can still be used. You simply
|
||||
add the 8x14 and 8x8 font data offsets to the ROM component's *notify* attribute.
|
||||
|
||||
For example, here's how we deal with the font data offsets used by the IBM VGA:
|
||||
|
||||
<rom id="romVGA" addr="0xc0000" size="0x6000" file="ibm-vga.json" notify="videoVGA[0x378d,0x3f8d]"/>
|
||||
|
|
|
|||
12
devices/pc/video/compaq/ega/compaq-ega-256kb-autolockfs.xml
Normal file
12
devices/pc/video/compaq/ega/compaq-ega-256kb-autolockfs.xml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<video id="videoEGA" model="ega" memory="0x40000" screenwidth="640" screenheight="350" touchscreen="mouse" autolock="true" pos="center" padding="8px">
|
||||
<menu>
|
||||
<title>COMPAQ Enhanced Color Display</title>
|
||||
<control type="container" pos="right">
|
||||
<control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
|
||||
<control type="led" label="Num" binding="num-lock" padleft="8px"/>
|
||||
<control type="led" label="Scroll" binding="scroll-lock" padleft="8px"/>
|
||||
<control type="button" binding="fullScreen" padleft="8px">Full Screen</control>
|
||||
</control>
|
||||
</menu>
|
||||
</video>
|
||||
|
|
@ -16,3 +16,37 @@ The symbol information in the MAP file will be automatically converted and appen
|
|||
The PCjs server's Dump API can be used as well:
|
||||
|
||||
http://www.pcjs.org/api/v1/dump?file=http://archive.pcjs.org/devices/pc/video/ibm/ega/ibm-ega.rom&format=bytes&decimal=true
|
||||
|
||||
### Font Information
|
||||
|
||||
As noted in [Video.onROMLoad()](/modules/pcjs/lib/video.js), the Video component needs to know where the card's
|
||||
font data is located:
|
||||
|
||||
For EGA cards, in the absence of any parameters, we assume that we're receiving the original
|
||||
IBM EGA ROM, which stores its 8x14 font data at 0x2230 as one continuous sequence; the total size
|
||||
of the 8x14 font is 0xE00 bytes.
|
||||
|
||||
At 0x3030, there is an "ALPHA SUPPLEMENT" table, which contains 15 bytes per row instead of 14,
|
||||
because each row is preceded by one byte containing the corresponding ASCII code; there are 20
|
||||
entries in the supplemental table, for a total size of 0x12C bytes.
|
||||
|
||||
Finally, at 0x3160, we have the 8x8 font data (also known as the thicker "double dot" CGA font);
|
||||
the total size of the 8x8 font is 0x800 bytes. No other font data is present in the EGA ROM;
|
||||
the thin 5x7 "single dot" CGA font is notably absent, which is fine, because we never loaded it for
|
||||
the MDA/CGA either.
|
||||
|
||||
TODO: Determine how the supplemental table is used and whether we need to add some "run-time"
|
||||
font generation to support it (as opposed to "init-time" generation, which is all we do now).
|
||||
There's probably a similar need for user-defined fonts; for now, they're simply not supported.
|
||||
|
||||
For reference, here are the first 0x80 bytes at offset 0x2230 from this ROM, which contain the font data
|
||||
for the first 9 8x14 characters:
|
||||
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x00002230 ................
|
||||
0x7E,0x81,0xA5,0x81,0x81,0xBD,0x99,0x81,0x7E,0x00,0x00,0x00,0x00,0x00,0x7E,0xFF, // 0x00002240 ~.......~.....~.
|
||||
0xDB,0xFF,0xFF,0xC3,0xE7,0xFF,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x6C,0xFE,0xFE, // 0x00002250 ......~......l..
|
||||
0xFE,0xFE,0x7C,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x38,0x7C,0xFE,0x7C, // 0x00002260 ..|8........8|.|
|
||||
0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x3C,0x3C,0xE7,0xE7,0xE7,0x18,0x18, // 0x00002270 8...............
|
||||
0x3C,0x00,0x00,0x00,0x00,0x00,0x18,0x3C,0x7E,0xFF,0xFF,0x7E,0x18,0x18,0x3C,0x00, // 0x00002280 ........~..~....
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00,0x00,0x00,0x00, // 0x00002290 ................
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, // 0x000022A0 ................
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" width="640px" autolock="true" pos="center" padding="8px">
|
||||
<menu>
|
||||
<title>Enhanced Color Display</title>
|
||||
<title>IBM Enhanced Color Display</title>
|
||||
<control type="container" pos="right">
|
||||
<control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
|
||||
<control type="led" label="Num" binding="num-lock" padleft="8px"/>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" touchscreen="mouse" autolock="true" pos="center" padding="8px">
|
||||
<menu>
|
||||
<title>Enhanced Color Display</title>
|
||||
<title>IBM Enhanced Color Display</title>
|
||||
<control type="container" pos="right">
|
||||
<control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
|
||||
<control type="led" label="Num" binding="num-lock" padleft="8px"/>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" touchscreen="mouse" pos="center" padding="8px">
|
||||
<menu>
|
||||
<title>Enhanced Color Display</title>
|
||||
<title>IBM Enhanced Color Display</title>
|
||||
<control type="container" pos="right">
|
||||
<control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
|
||||
<control type="led" label="Num" binding="num-lock" padleft="8px"/>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<video id="videoEGA" model="ega" memory="0x40000" screenwidth="640" screenheight="350" width="640px" autolock="true" pos="center" padding="8px">
|
||||
<menu>
|
||||
<title>Enhanced Color Display</title>
|
||||
<title>IBM Enhanced Color Display</title>
|
||||
<control type="container" pos="right">
|
||||
<control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
|
||||
<control type="led" label="Num" binding="num-lock" padleft="8px"/>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<video id="videoEGA" model="ega" memory="0x40000" screenwidth="640" screenheight="350" touchscreen="mouse" autolock="true" pos="center" padding="8px">
|
||||
<menu>
|
||||
<title>Enhanced Color Display</title>
|
||||
<title>IBM Enhanced Color Display</title>
|
||||
<control type="container" pos="right">
|
||||
<control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
|
||||
<control type="led" label="Num" binding="num-lock" padleft="8px"/>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<video id="videoEGA" model="ega" memory="0x40000" screenwidth="640" screenheight="350" touchscreen="mouse" pos="center" padding="8px">
|
||||
<menu>
|
||||
<title>Enhanced Color Display</title>
|
||||
<title>IBM Enhanced Color Display</title>
|
||||
<control type="container" pos="right">
|
||||
<control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
|
||||
<control type="led" label="Num" binding="num-lock" padleft="8px"/>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<video id="videoEGA" model="ega" memory="0x10000" screenwidth="640" screenheight="350" touchscreen="mouse" pos="center" padding="8px">
|
||||
<menu>
|
||||
<title>Enhanced Color Display</title>
|
||||
<title>IBM Enhanced Color Display</title>
|
||||
<control type="container" pos="right">
|
||||
<control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
|
||||
<control type="led" label="Num" binding="num-lock" padleft="8px"/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue