Merge branch 'next-release'
This commit is contained in:
commit
e6117ee58e
145 changed files with 7371 additions and 5097 deletions
10
Gruntfile.js
10
Gruntfile.js
|
|
@ -379,12 +379,12 @@ module.exports = function(grunt) {
|
|||
}
|
||||
}
|
||||
},
|
||||
"demos": {
|
||||
"examples": {
|
||||
files: [
|
||||
{
|
||||
cwd: "versions/pcjs/<%= pkg.version %>/",
|
||||
src: ["pc.js", "pc-dbg.js", "components.css", "components.xsl"],
|
||||
dest: "docs/pcjs/demos/",
|
||||
dest: "docs/pcjs/examples/",
|
||||
expand: true
|
||||
}
|
||||
],
|
||||
|
|
@ -457,8 +457,8 @@ module.exports = function(grunt) {
|
|||
cmd: "./modules/htmlout/bin/delete_indexes.sh",
|
||||
args: []
|
||||
},
|
||||
"zipify-demos": {
|
||||
options: {cwd: "docs/pcjs/demos"},
|
||||
"zip-examples": {
|
||||
options: {cwd: "docs/pcjs/examples"},
|
||||
cmd: "./zip.sh",
|
||||
args: ["v" + pkg.version + ".zip"]
|
||||
}
|
||||
|
|
@ -512,6 +512,6 @@ module.exports = function(grunt) {
|
|||
grunt.registerTask("promote", ["replace:promote-to-version"]);
|
||||
grunt.registerTask("clean", ["run:delete-indexes"]);
|
||||
grunt.registerTask("copyfiles", grunt.option("rebuild")? ["copy"] : ["newer:copy"]);
|
||||
grunt.registerTask("default-osx", ["compile", "copyfiles", "run:zipify-demos"]);
|
||||
grunt.registerTask("default-osx", ["compile", "copyfiles", "run:zip-examples"]);
|
||||
grunt.registerTask("default", ["compile", "copyfiles"]);
|
||||
};
|
||||
|
|
|
|||
14
README.md
14
README.md
|
|
@ -5,8 +5,12 @@ Welcome to [PCjs](/docs/about/pcjs/), the first IBM PC simulation to run in your
|
|||
It was added to the [JavaScript Machines](/docs/about/) project in Fall 2012, and it is now part of the
|
||||
[PCjs Project](https://github.com/jeffpar/pcjs) on [GitHub](http://github.com/). The project includes:
|
||||
|
||||
* [PCjs](/docs/pcjs/), a simulation of the original IBM PC (circa 1981)
|
||||
* [C1Pjs](/docs/c1pjs/), a simulation of the OSI Challenger 1P (circa 1978)
|
||||
* [PCjs](/docs/pcjs/), a simulation of the IBM PC and PC compatibles
|
||||
* [C1Pjs](/docs/c1pjs/), a simulation of the 6502-based OSI Challenger 1P
|
||||
|
||||
PCjs first simulated the 4.77Mhz 8088-based IBM PC, and has steadily evolved to support more classic machines,
|
||||
including the IBM PC XT, the 80286-based IBM PC AT, and the 80386-based COMPAQ DeskPro 386. PCjs fully supports
|
||||
the machines' original ROMs, video cards, etc, and all machines run at their original speeds.
|
||||
|
||||
All the simulations are written entirely in JavaScript. No Flash, Java or other plugins are required.
|
||||
Supported browsers include modern versions of Chrome, Safari, Firefox, Internet Explorer (v9.0 and up), Edge,
|
||||
|
|
@ -59,8 +63,8 @@ Developer Notes
|
|||
|
||||
The [PCjs repository](https://github.com/jeffpar/pcjs) on GitHub contains everything needed to run PCjs
|
||||
computer simulations. The [PCjs](/docs/pcjs/) and [C1Pjs](/docs/c1pjs/) emulators run in any modern web browser,
|
||||
with or without a web server, and examples are provided for both [local](/docs/pcjs/demos/) and [remote](http://www.pcjs.org/)
|
||||
operation.
|
||||
with or without a web server, and examples are provided for both [local](/docs/pcjs/examples/) and
|
||||
[remote](http://www.pcjs.org/) operation.
|
||||
|
||||
The project includes:
|
||||
|
||||
|
|
@ -76,7 +80,7 @@ JavaScript files to your browser will work. However, instructions for doing tha
|
|||
In fact, you can run PCjs simulations without a web server at all, using the "file:" protocol instead of "http:".
|
||||
However, most of the machine configurations require additional resource files (ROMs, disk images, etc), which are
|
||||
included in the project, but unless all the resource files are moved into a single directory (as they are in these
|
||||
[Demos](/docs/pcjs/demos/)), your browser will probably be unable to load all of them, due to security restrictions.
|
||||
[Demos](/docs/pcjs/examples/)), your browser will probably be unable to load all of them, due to security restrictions.
|
||||
Using the bundled web server is the preferred solution.
|
||||
|
||||
The project includes a large selection of disk images, and a powerful [DiskDump](modules/diskdump/) utility that
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ right_brace: "}"
|
|||
|
||||
# Build settings
|
||||
|
||||
exclude: ["index.html", "**/index.html", "**/archive", "logs", "node_modules", "**/c64", "**/private", "src", "**/src", "tmp", "videos", "web", ".git", ".idea"]
|
||||
exclude: ["index.html", "**/index.html", "**/archive", "**/c64", "blog/posts", "logs", "node_modules", "**/private", "src", "**/src", "tmp", "videos", "web", ".git", ".idea"]
|
||||
markdown: kramdown
|
||||
kramdown:
|
||||
input: GFM
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
developer: true
|
||||
url: "http://localhost:4000"
|
||||
|
||||
pcjs:
|
||||
compiled: false
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ here and in markout.js. Examples include 'autopower' ('autoPower') and 'automou
|
|||
|
||||
{% endcomment %}
|
||||
{% for machine in page.machines %}
|
||||
{% capture machine_embed %}window.embed{{ machine.type | remove:'-dbg' | upcase }}{% endcapture %}
|
||||
{% capture machine_embed %}embed{{ machine.type | remove:'-dbg' | upcase }}{% endcapture %}
|
||||
{% if machine.autopower == nil %}
|
||||
{% assign machine_autopower = "true" %}
|
||||
{% else %}
|
||||
|
|
|
|||
8
_includes/page-scripts.html
Normal file
8
_includes/page-scripts.html
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{% comment %}
|
||||
|
||||
Used by pages like the one in /api/v1/dump/ to implement a client-side API.
|
||||
|
||||
{% endcomment %}
|
||||
{% for script in page.scripts %}
|
||||
<script type="text/javascript" src="{{ site.baseurl }}{{ script }}"></script>
|
||||
{% endfor %}
|
||||
|
|
@ -17,6 +17,8 @@
|
|||
|
||||
{% include machine-engines.html %}
|
||||
|
||||
{% include page-scripts.html %}
|
||||
|
||||
{% include google-analytics.html %}
|
||||
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
layout: post
|
||||
title: Compaq DeskPro 386
|
||||
title: COMPAQ DeskPro 386
|
||||
date: 2015-02-22 11:00:00
|
||||
category: 80386
|
||||
permalink: /blog/2015/02/22/
|
||||
|
|
@ -11,15 +11,15 @@ machines:
|
|||
uncompiled: true
|
||||
---
|
||||
|
||||
I finally dumped the [Compaq DeskPro 386/16 ROMs](/devices/pc/bios/compaq/deskpro386/) from the motherboard I bought
|
||||
I finally dumped the [COMPAQ DeskPro 386/16 ROMs](/devices/pc/bios/compaq/deskpro386/) from the motherboard I bought
|
||||
on ebay last year, so I'm ready to begin adding 80386 support to PCjs.
|
||||
|
||||
I'd also like to locate a copy of the "Compaq DeskPro 386 Technical Reference Guide, Volumes 1 and 2". It's not hard
|
||||
to find Compaq Maintenance and Service guides online, but their Technical Reference guides are much rarer, perhaps because
|
||||
I'd also like to locate a copy of the "COMPAQ DeskPro 386 Technical Reference Guide, Volumes 1 and 2". It's not hard
|
||||
to find COMPAQ Maintenance and Service guides online, but their Technical Reference guides are much rarer, perhaps because
|
||||
they were expensive ($149) and not many were sold. Anyway, I'm hoping to either borrow or buy a copy, and then scan and
|
||||
post it.
|
||||
|
||||
A [Compaq DeskPro 386](/devices/pc/machine/compaq/deskpro386/ega/2048kb/) test configuration is displayed below.
|
||||
A [COMPAQ DeskPro 386](/devices/pc/machine/compaq/deskpro386/ega/2048kb/) test configuration is displayed below.
|
||||
The configuration doesn't run, and the debugger can't disassemble 80386-specific code yet, but this is what I will be
|
||||
using to test and debug my changes over the next few months.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
layout: post
|
||||
title: Compaq DeskPro 386 Update
|
||||
title: COMPAQ DeskPro 386 Update
|
||||
date: 2015-04-16 11:00:00
|
||||
category: 80386
|
||||
permalink: /blog/2015/04/16/
|
||||
|
|
@ -11,7 +11,7 @@ machines:
|
|||
uncompiled: true
|
||||
---
|
||||
|
||||
PCjs can now boot the [Compaq DeskPro 386/16 ROM BIOS](/devices/pc/bios/compaq/deskpro386/).
|
||||
PCjs can now boot the [COMPAQ DeskPro 386/16 ROM BIOS](/devices/pc/bios/compaq/deskpro386/).
|
||||
|
||||
There's still a problem with the hard disk controller, which I haven't looked into yet,
|
||||
but booting from a floppy works.
|
||||
|
|
@ -43,7 +43,7 @@ of the 80386's 4Gb address space are physically mapped to this ROM image.
|
|||
replacing the ROM in the first megabyte with write-protected RAM; the top 64Kb of that
|
||||
RAM must first be initialized with the 64Kb at %000F0000 prior to remapping. It's also
|
||||
possible to copy external ROMs from %000C0000 through %000EFFFF into the bottom 64Kb of
|
||||
that RAM, but this is only done for ROMs known to contain relocatable code; eg, a Compaq
|
||||
that RAM, but this is only done for ROMs known to contain relocatable code; eg, a COMPAQ
|
||||
Video Graphics Controller (VGC) Board.
|
||||
|
||||
> Every DeskPro 386 system must have a MINIMUM of 1Mb of RAM, of which either 256Kb,
|
||||
|
|
@ -53,7 +53,7 @@ to the top of the 16th megabyte (ending at address %00FFFFFF), the last 128Kb of
|
|||
is used by the "RAM Relocation" feature. The remaining memory immediately below that
|
||||
128Kb (ie, below %00FE0000) can only be accessed by special system software, such as CEMM.
|
||||
|
||||
> Compaq refers to that remaining memory as "Compaq Built-in Memory".
|
||||
> COMPAQ refers to that remaining memory as "Compaq Built-in Memory".
|
||||
|
||||
So there you have it. Once the ROM has relocated itself to RAM at the top of the 16th
|
||||
megabyte, there are no less than THREE physical address ranges where ROM code and data
|
||||
|
|
@ -75,7 +75,7 @@ accessible; the other two are not.
|
|||
April 19, 2015 Update
|
||||
---
|
||||
Thanks to some sleuthing by [Michal Necasek](http://os2museum.com/), it turns out that my
|
||||
assumptions about A20 management on the Compaq DeskPro 386 were incorrect.
|
||||
assumptions about A20 management on the COMPAQ DeskPro 386 were incorrect.
|
||||
|
||||
He noted that, on page 398 of "DOS Internals" by Geoff Chappell, (c) 1994, the author says:
|
||||
|
||||
|
|
@ -114,7 +114,7 @@ protected-mode with A20 disabled -- an unwise thing to do on most machines:
|
|||
;
|
||||
; When we arrive here, the A20 line has been disabled; on most systems, that would
|
||||
; mean that the ROM's GDT would only be accessible at the "low" ROM address (%0F0730),
|
||||
; not the "high" address (%FF0730). But fortunately, A20 management on Compaq
|
||||
; not the "high" address (%FF0730). But fortunately, A20 management on COMPAQ
|
||||
; DeskPros affects wrap-around only from the 1st to the 2nd megabyte; no other address
|
||||
; range is affected.
|
||||
;
|
||||
|
|
@ -140,12 +140,12 @@ I'm in the process of replacing that work-around with a much more compatible cha
|
|||
on 32-bit bus configurations, which involves changing the physical address map for the 2nd megabyte
|
||||
to match that of the 1st megabyte whenever A20 is disabled. I could probably get away with remapping
|
||||
only the first 64Kb of the 2nd megabyte, but until I'm actually able to run some tests on a real
|
||||
DeskPro 386, I'm going to assume Compaq's A20 implementation affected the entire 2nd megabyte.
|
||||
DeskPro 386, I'm going to assume COMPAQ's A20 implementation affected the entire 2nd megabyte.
|
||||
|
||||
Here's my Compaq DeskPro 386/16 PCjs test configuration. Set a breakpoint at F000:F498 ("bp f000:f498")
|
||||
in the Debugger panel to see the above code in action. When the machine is operating in real-mode, you
|
||||
can use the "rp" command to dump all the registers, including the current base and limit values loaded into
|
||||
the segment registers.
|
||||
Here's my [COMPAQ DeskPro 386/16](/devices/pc/machine/compaq/deskpro386/ega/2048kb/) test configuration.
|
||||
Set a breakpoint at F000:F498 ("bp f000:f498") in the Debugger panel to see the above code in action.
|
||||
When the machine is operating in real-mode, you can use the "rp" command to dump all the registers,
|
||||
including the current base and limit values loaded into the segment registers.
|
||||
|
||||
{% include machine.html id="deskpro386" %}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,31 +13,31 @@ machines:
|
|||
Just for fun (because I have a warped sense of fun), I decided to revisit some of the old OS/2 software I wrote
|
||||
almost 30 years ago. But first, I needed an OS/2 development environment.
|
||||
|
||||
So I started with a clean install of IBM's OS/2 1.0 in the [8Mhz IBM PC AT](/disks/pc/os2/ibm/1.0/) machine
|
||||
So I started with a clean install of [IBM OS/2 1.0](/disks/pc/os2/ibm/1.0/) in the 8Mhz IBM PC AT machine
|
||||
below, by booting from the "IBM OS/2 1.0 (1.44M Install)" diskette in drive A and reformatting the machine's 20Mb
|
||||
drive C.
|
||||
|
||||
Next, I installed the [MS OS/2 SDK 1.02](/disks/pc/tools/microsoft/os2/sdk/1.02/). This SDK was released
|
||||
in December 1987 along with [Microsoft OS/2 1.0](/disks/pc/os2/microsoft/1.0/). I don't have any of the
|
||||
printed documentation that came with the SDK, such as the *Installation Guide*, but I do have the
|
||||
[Microsoft® Operating System/2 Programmer’s Toolkit](/pubs/pc/programming/os2/microsoft/ptk/1.0/) documentation
|
||||
[Microsoft® Operating System/2 Programmer’s Toolkit](/pubs/pc/software/os2/microsoft/ptk10/) documentation
|
||||
from March 1988, thanks to the [OS/2 Museum](http://www.os2museum.com/wp/os2-history/os2-library/os2-1-x-programming/).
|
||||
|
||||
Aside from Microsoft's assembler (MASM) and C compiler (CL), the SDK included some other useful tools, such as the
|
||||
**SDK Editor** (SDKED), which was essentially an OS/2 port of Mark Zbikowski's Editor (Z) that was used internally
|
||||
at Microsoft for many years. It was renamed to the **Microsoft Editor** (M or MEP) with the release of Microsoft C
|
||||
5.1, and it was later integrated into **Programmer's Workbench** (PWB), the text-mode Integrated Development
|
||||
Environment (IDE) that came with Microsoft C 6.0.
|
||||
Aside from **Microsoft Macro Assembler 5.00A** (MASM) and **Microsoft C Compiler 5.10 (Beta)** (CL), the SDK
|
||||
included some other useful tools, such as the **SDK Editor** (SDKED), which was essentially an OS/2 port of
|
||||
Mark Zbikowski's full-screen editor (Z) that was used internally at Microsoft for many years. It was renamed
|
||||
to the **Microsoft Editor** (M or MEP) with the release of **Microsoft C Compiler 5.10**, and it was later integrated
|
||||
into **Programmer's Workbench** (PWB), the text-mode Integrated Development Environment (IDE) that came with
|
||||
**Microsoft C Compiler 6.0**.
|
||||
|
||||
With the introduction of graphical IDEs, such as Visual BASIC in 1991, Visual C++ in 1993, and Visual Studio in 1995,
|
||||
this stand-alone, text-mode editor became obsolete, but in the 1980s, it was an essential tool.
|
||||
this stand-alone, text-mode editor became obsolete, but in the 1980s, it was a valuable tool. You can learn more
|
||||
about [SDKED](/disks/pc/tools/microsoft/os2/sdk/1.02/#using-sdked) on the
|
||||
[MS OS/2 SDK 1.02](/disks/pc/tools/microsoft/os2/sdk/1.02/) page.
|
||||
|
||||
You can learn more about [SDKED](/disks/pc/tools/microsoft/os2/sdk/1.02/#using-sdked) on the
|
||||
[MS OS/2 SDK 1.02](/disks/pc/tools/microsoft/os2/sdk/1.02/) page. I'll be adding a complete list of all the files
|
||||
that came with SDK to that page in the near future.
|
||||
|
||||
To boot IBM OS/2 1.0 and tinker with the [SDK](/disks/pc/tools/microsoft/os2/sdk/1.02/), scroll down and
|
||||
click the "Run" button.
|
||||
Our [IBM OS/2 1.0](/disks/pc/os2/ibm/1.0/) demo machine (shown below) has the
|
||||
[MS OS/2 SDK 1.02](/disks/pc/tools/microsoft/os2/sdk/1.02/) pre-installed, so check out our copy of the
|
||||
[Microsoft® Operating System/2 Programmer’s Toolkit](/pubs/pc/software/os2/microsoft/ptk10/) and then write some code!
|
||||
|
||||
{% include machine.html id="ibm5170" %}
|
||||
|
||||
|
|
|
|||
94
_posts/2016-02-24-remembering-compaq.md
Normal file
94
_posts/2016-02-24-remembering-compaq.md
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
---
|
||||
layout: post
|
||||
title: Remembering COMPAQ
|
||||
date: 2016-02-24 14:00:00
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
perfected in the mainframe era, like exclusive service contracts. That might have been a win for IBM, but it almost
|
||||
certainly would *not* have been a win for customers.
|
||||
|
||||
In 1982, the founders of COMPAQ took a big gamble, by reportedly investing around a million dollars to create
|
||||
system software (ROM BIOS) that mimicked IBM's without infringing on it. I don't know if COMPAQ pioneered the concept
|
||||
of "clean room" design, where the engineers designing and coding have no direct contact with the hardware and software
|
||||
they're cloning, but they were certainly successful.
|
||||
|
||||
But that wasn't COMPAQ's most important contribution. That was just the price they had to "pay to play." Armed with
|
||||
compatible hardware and software, COMPAQ proceeded to innovate in ways that IBM did not.
|
||||
|
||||
Look at COMPAQ's first product: the COMPAQ Portable. For starters, it was *portable*. And unlike
|
||||
IBM machines, it didn't force you to choose between a higher-quality text-only (MDA) display or a lower-quality
|
||||
graphics-capable (CGA) display. COMPAQ improved on IBM's mutually-exclusive display choices by creating a monochrome
|
||||
display that could display both high-quality text *and* graphics.
|
||||
|
||||
IBM released their own portable unit a year later, but it looked suspciously COMPAQ-like, and it lacked COMPAQ's
|
||||
innovative display.
|
||||
|
||||
That tradition of innovation at COMPAQ continued for many years. Sometimes they even seemed *more* concerned about
|
||||
compatibility than IBM did. For example, faster machines sometimes broke speed-sensitive floppy-based copy protection
|
||||
schemes, which COMPAQ tried to avoid by automatically *slowing* the machine down whenever a floppy drive was spinning.
|
||||
|
||||
To my knowledge, IBM never bothered with such a feature -- maybe IBM was simply being pragmatic, or perhaps they were
|
||||
just a little arrogant, operating on the theory that if the universe revolves around IBM, then the planets will
|
||||
simply realign *themselves* (translation: software vendors will release new versions if they want to remain IBM-compatible).
|
||||
|
||||
Sadly, COMPAQ was ultimately absorbed by another behemoth -- Hewlett Packard -- and then simply disappeared. Today,
|
||||
all we have are the memories.
|
||||
|
||||
### Speaking of Memories
|
||||
|
||||
In particular, Read-Only Memories: we have precious few of those, too. I finally obtained
|
||||
a [ROM Dump](/devices/pc/rom/compaq/bios/portable/) from COMPAQ's first machine, the COMPAQ Portable, but I had to buy
|
||||
a system board on eBay to get it. Considering all the effort (and money) that COMPAQ invested in writing that code,
|
||||
you would think those things would be memorialized a bit better.
|
||||
|
||||
Looking ahead to the day when PCjs will be able to simulate the original COMPAQ Portable, I thought it would be a good
|
||||
idea to create my own roughly chronological list of [COMPAQ Machines](/devices/pc/machine/compaq/) from the 1980s,
|
||||
since they are all machines I would like to see PCjs eventually support:
|
||||
|
||||
+ COMPAQ Portable
|
||||
+ COMPAQ [Portable] Plus
|
||||
+ COMPAQ DeskPro
|
||||
+ COMPAQ DeskPro 286
|
||||
+ COMPAQ Portable 286
|
||||
+ COMPAQ Portable II
|
||||
+ [COMPAQ DeskPro 386](/devices/pc/machine/compaq/deskpro386/)
|
||||
+ COMPAQ Portable III
|
||||
+ COMPAQ Portable 386
|
||||
+ COMPAQ 386/20e
|
||||
+ COMPAQ SLT Series (SLT/286)
|
||||
+ COMPAQ LTE Series (LTE 286, LTE 386)
|
||||
|
||||
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 my original plan and draw a line at the end of the
|
||||
1980s.
|
||||
|
||||
### Regarding The COMPAQ Name
|
||||
|
||||
As best I can tell, COMPAQ preferred to print its company name in all-caps, so that's my practice as well.
|
||||
|
||||
However, it seems that sometime between the release of [COMPAQ MS-DOS 3.10](/disks/pc/dos/compaq/3.10/) and
|
||||
[COMPAQ MS-DOS 3.31](/disks/pc/dos/compaq/3.31/), there may have been a shift in policy. Both products still
|
||||
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`.
|
||||
|
||||
*[@jeffpar](http://twitter.com/jeffpar)*
|
||||
*February 24, 2016*
|
||||
31
api/v1/dump/README.md
Normal file
31
api/v1/dump/README.md
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
layout: page
|
||||
title: PCjs DiskDump and FileDump API
|
||||
permalink: /api/v1/dump/
|
||||
scripts: # the following list of scripts should mirror what /modules/diskdump/lib/diskdump.js requires
|
||||
- /modules/shared/lib/defines.js
|
||||
- /modules/shared/lib/netlib.js
|
||||
- /modules/shared/lib/strlib.js
|
||||
- /modules/shared/lib/weblib.js
|
||||
- /modules/shared/lib/diskapi.js
|
||||
- /modules/shared/lib/dumpapi.js
|
||||
- /modules/shared/lib/component.js
|
||||
- /modules/pcjs/lib/x86.js
|
||||
- /modules/diskdump/lib/diskdump.js
|
||||
---
|
||||
|
||||
PCjs DiskDump and FileDump API
|
||||
===
|
||||
|
||||
The PCjs [DiskDump](/modules/diskdump/) and [FileDump](/modules/filedump/) API are not fully supported
|
||||
by the current PCjs web server.
|
||||
When **pcjs.org** switched from a Node.js web server running on
|
||||
[Amazon Web Services](https://aws.amazon.com/elasticbeanstalk/) to
|
||||
[GitHub Pages](https://pages.github.com/), the original server-side API had to be abandoned.
|
||||
|
||||
However, we're working on a client-side replacement of the API that will run
|
||||
entirely in your browser, so hopefully portions of the original API will be available in the near future.
|
||||
In the meantime, check out the
|
||||
[Developer Notes](https://github.com/jeffpar/pcjs#user-content-developer-notes) section of the
|
||||
[PCjs Project](https://github.com/jeffpar/pcjs) for instructions on running your own local copy of Node.js and the
|
||||
PCjs web server.
|
||||
17
api/v1/report/README.md
Normal file
17
api/v1/report/README.md
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
layout: page
|
||||
title: PCjs Reporting API
|
||||
permalink: /api/v1/report/
|
||||
---
|
||||
|
||||
PCjs Reporting API
|
||||
===
|
||||
|
||||
The PCjs Reporting API is not supported by the current PCjs web server.
|
||||
When **pcjs.org** switched from a Node.js web server running on
|
||||
[Amazon Web Services](https://aws.amazon.com/elasticbeanstalk/) to
|
||||
[GitHub Pages](https://pages.github.com/), the original server-side API had to be abandoned.
|
||||
|
||||
However, if you're encountering a serious problem with any of the machines on **pcjs.org**, feel free to
|
||||
[send a note](mailto:Jeff@pcjs.org) about the problem, along with a link to the machine. However, there is
|
||||
no PCjs Customer Service Department, so we may or may not be able to help.
|
||||
19
api/v1/user/README.md
Normal file
19
api/v1/user/README.md
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
layout: page
|
||||
title: PCjs User API
|
||||
permalink: /api/v1/user/
|
||||
---
|
||||
|
||||
PCjs User API
|
||||
===
|
||||
|
||||
The PCjs User API is not supported by the current PCjs web server.
|
||||
When **pcjs.org** switched from a Node.js web server running on
|
||||
[Amazon Web Services](https://aws.amazon.com/elasticbeanstalk/) to
|
||||
[GitHub Pages](https://pages.github.com/), the original server-side API had to be abandoned.
|
||||
|
||||
Support for PCjs user accounts, including remote disk storage, is still partially supported by the
|
||||
Node.js server implementation, so if you really want to try it, you'll have to check out the
|
||||
[Developer Notes](https://github.com/jeffpar/pcjs#user-content-developer-notes) section of the
|
||||
[PCjs Project](https://github.com/jeffpar/pcjs) for instructions on running your own local copy of Node.js and the
|
||||
PCjs web server.
|
||||
|
|
@ -33,7 +33,7 @@ machines:
|
|||
redirect_from:
|
||||
- /configs/c1p/machines/array/
|
||||
- /configs/c1p/machines/8kb/array/
|
||||
- /devices/other/c1p/array.xml/
|
||||
- /devices/c1p/array.xml/
|
||||
---
|
||||
|
||||
Challenger 1P (8Kb) "Server Array"
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<computer id="xt-ega-256k" name="IBM PC XT"/>
|
||||
<cpu id="cpu8088" model="8088"/>
|
||||
<ram id="ramLow" addr="0x00000" test="false"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romHDC" addr="0xc8000" size="0x2000" file="/devices/pc/hdc/ibm-xebec-1982.json"/>
|
||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/rom/5160/basic/BASIC110.json"/>
|
||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/rom/5160/bios/1982-11-08/XTBIOS-REV1.json"/>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<name pos="center">IBM PC XT, 128K EGA, 640K RAM, 10Mb Hard Drive</name>
|
||||
<computer id="xt-ega-640k" name="IBM PC XT" state="/devices/pc/machine/5160/ega/640kb/win101/state.json"/>
|
||||
<ram id="ramLow" addr="0x00000" test="false" size="0xa0000" comment="0xa0000 (640Kb) size overrides SW1|ROM BIOS memory test has been disabled"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romHDC" addr="0xc8000" size="0x2000" file="/devices/pc/hdc/ibm-xebec-1982.json"/>
|
||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/rom/5160/basic/BASIC110.json"/>
|
||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/rom/5160/bios/1982-11-08/XTBIOS-REV1.json"/>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<computer id="xt-ega-640k" name="IBM PC XT"/>
|
||||
<cpu id="cpu8088" model="8088"/>
|
||||
<ram id="ramLow" addr="0x00000" test="false" size="0xa0000" comment="0xa0000 (640Kb) size overrides SW1|ROM BIOS memory test has been disabled"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romHDC" addr="0xc8000" size="0x2000" file="/devices/pc/hdc/ibm-xebec-1982.json"/>
|
||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/rom/5160/basic/BASIC110.json"/>
|
||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/rom/5160/bios/1982-11-08/XTBIOS-REV1.json"/>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<computer id="xt-ega-640k" name="IBM PC XT"/>
|
||||
<cpu id="cpu8088" model="8088"/>
|
||||
<ram id="ramLow" addr="0x00000" test="false" size="0xa0000" comment="0xa0000 (640Kb) size overrides SW1|ROM BIOS memory test has been disabled"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romHDC" addr="0xc8000" size="0x2000" file="/devices/pc/hdc/ibm-xebec-1982.json"/>
|
||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/rom/5160/basic/BASIC110.json"/>
|
||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/rom/5160/bios/1982-11-08/XTBIOS-REV1.json"/>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<computer id="xt-ega-640k" name="IBM PC XT" state="/devices/pc/machine/5160/ega/640kb/win101/state.json"/>
|
||||
<cpu id="cpu8088" model="8088"/>
|
||||
<ram id="ramLow" addr="0x00000" test="false" size="0xa0000" comment="0xa0000 (640Kb) size overrides SW1|ROM BIOS memory test has been disabled"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romHDC" addr="0xc8000" size="0x2000" file="/devices/pc/hdc/ibm-xebec-1982.json"/>
|
||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/rom/5160/basic/BASIC110.json"/>
|
||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/rom/5160/bios/1982-11-08/XTBIOS-REV1.json"/>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<name pos="center">IBM PC XT, 128K EGA, 640K RAM, 10Mb Hard Drive</name>
|
||||
<computer id="xt-ega-640k" name="IBM PC XT" state="/devices/pc/machine/5160/ega/640kb/win101/state.json"/>
|
||||
<ram id="ramLow" addr="0x00000" test="false" size="0xa0000" comment="0xa0000 (640Kb) size overrides SW1|ROM BIOS memory test has been disabled"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romHDC" addr="0xc8000" size="0x2000" file="/devices/pc/hdc/ibm-xebec-1982.json"/>
|
||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/rom/5160/basic/BASIC110.json"/>
|
||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/rom/5160/bios/1982-11-08/XTBIOS-REV1.json"/>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<cpu id="cpu286" model="80286"/>
|
||||
<ram id="ramLow" addr="0x00000" test="false" size="0xa0000" comment="ROM BIOS memory test has been disabled"/>
|
||||
<ram id="ramExt" addr="0x100000" size="0x80000" comment=""/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romBIOS" addr="0xf0000" size="0x10000" alias="0xff0000" file="/devices/pc/rom/5170/bios/1984-01-10/ATBIOS-REV1.json"/>
|
||||
<video ref="/devices/pc/video/ibm/ega/ibm-ega-128kb-autolockfs.xml"/>
|
||||
<keyboard ref="/devices/pc/keyboard/keyboard-minimal-functions.xml"/>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<cpu id="cpu286" model="80286" cycles="8000000"/>
|
||||
<ram id="ramLow" addr="0x00000" test="true" size="0xa0000" comment="ROM BIOS memory test has been disabled"/>
|
||||
<ram id="ramExt" addr="0x100000" size="0x80000" comment=""/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romBIOS" addr="0xf0000" size="0x10000" alias="0xff0000" file="/devices/pc/rom/5170/bios/1985-11-15/ATBIOS-REV3.json"/>
|
||||
<video ref="/devices/pc/video/ibm/ega/ibm-ega-128kb-autolockfs.xml"/>
|
||||
<keyboard ref="/devices/pc/keyboard/keyboard-minimal-functions.xml"/>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<cpu id="cpu286" model="80286" cycles="8000000"/>
|
||||
<ram id="ramLow" addr="0x00000" test="false" size="0xa0000" comment="ROM BIOS memory test has been disabled"/>
|
||||
<ram id="ramExt" addr="0x100000" size="0x80000" comment=""/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romBIOS" addr="0xf0000" size="0x10000" alias="0xff0000" file="/devices/pc/rom/5170/bios/1985-11-15/ATBIOS-REV3.json"/>
|
||||
<video ref="/devices/pc/video/ibm/ega/ibm-ega-128kb-autolockfs.xml"/>
|
||||
<keyboard ref="/devices/pc/keyboard/keyboard-minimal-arrows.xml"/>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<computer id="at-ega-640k" name="IBM PC AT" buswidth="24"/>
|
||||
<cpu id="cpu286" model="80286"/>
|
||||
<ram id="ramLow" addr="0x00000" size="0xa0000"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romBIOS" addr="0xf0000" size="0x10000" alias="0xff0000" file="/devices/pc/rom/5170/bios/1984-01-10/ATBIOS-REV1.json"/>
|
||||
<video ref="/devices/pc/video/ibm/ega/ibm-ega-128kb-autolockfs.xml"/>
|
||||
<keyboard ref="/devices/pc/keyboard/keyboard-minimal-functions.xml"/>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<computer id="at-ega-640k" name="IBM PC AT" buswidth="24"/>
|
||||
<cpu id="cpu286" model="80286"/>
|
||||
<ram id="ramLow" addr="0x00000" size="0xa0000"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romBIOS" addr="0xf0000" size="0x10000" alias="0xff0000" file="/devices/pc/rom/5170/bios/1984-01-10/ATBIOS-REV1.json"/>
|
||||
<video ref="/devices/pc/video/ibm/ega/ibm-ega-128kb-autolockfs.xml"/>
|
||||
<keyboard ref="/devices/pc/keyboard/keyboard-minimal.xml"/>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ PCjs supports these IBM PC models:
|
|||
|
||||
along with these IBM PC-compatibles:
|
||||
|
||||
* [Compaq DeskPro 386](/devices/pc/machine/compaq/deskpro386/)
|
||||
* [COMPAQ](/devices/pc/machine/compaq/) (eg, [DeskPro 386](/devices/pc/machine/compaq/deskpro386/))
|
||||
|
||||
We also support a few non-IBM [Devices](/devices/):
|
||||
|
||||
|
|
|
|||
187
devices/pc/machine/compaq/README.md
Normal file
187
devices/pc/machine/compaq/README.md
Normal file
|
|
@ -0,0 +1,187 @@
|
|||
---
|
||||
layout: page
|
||||
title: COMPAQ Machines
|
||||
permalink: /devices/pc/machine/compaq/
|
||||
---
|
||||
|
||||
COMPAQ Machines
|
||||
---
|
||||
|
||||
This is an evolving (and roughly chronological) list of COMPAQ machines from the 1980s, which PCjs may eventually
|
||||
support:
|
||||
|
||||
+ [COMPAQ Portable](#compaq-portable)
|
||||
+ [COMPAQ [Portable] Plus](#compaq-portable-plus-aka-compaq-plus)
|
||||
+ [COMPAQ DeskPro](#compaq-deskpro)
|
||||
+ [COMPAQ DeskPro 286](#compaq-deskpro-286)
|
||||
+ [COMPAQ Portable 286](#compaq-portable-286)
|
||||
+ [COMPAQ Portable II](#compaq-portable-ii)
|
||||
+ [COMPAQ DeskPro 386](#compaq-deskpro-386)
|
||||
+ [COMPAQ Portable III](#compaq-portable-iii)
|
||||
+ [COMPAQ Portable 386](#compaq-portable-386)
|
||||
+ [COMPAQ 386/20e](#compaq-38620e)
|
||||
+ [COMPAQ SLT Series](#compaq-slt-series) (SLT/286)
|
||||
+ [COMPAQ LTE Series](#compaq-lte-series) (LTE 286, LTE 386)
|
||||
|
||||
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/) --
|
||||
more should follow.
|
||||
|
||||
### Regarding The COMPAQ Name
|
||||
|
||||
As best I can tell, COMPAQ preferred to print its company name in all-caps, so that's my practice as well.
|
||||
|
||||
However, it seems that sometime between the release of [COMPAQ MS-DOS 3.10](/disks/pc/dos/compaq/3.10/) and
|
||||
[COMPAQ MS-DOS 3.31](/disks/pc/dos/compaq/3.31/), there may have been a shift in policy. Both products still
|
||||
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`.
|
||||
|
||||
The rest of this page will be used to collect information about the machines listed above.
|
||||
|
||||
---
|
||||
|
||||
COMPAQ Portable
|
||||
---
|
||||
|
||||
The PCjs Project now has a [ROM Dump](/devices/pc/rom/compaq/bios/portable/) (REV C).
|
||||
|
||||
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
|
||||
---
|
||||
|
||||
The PCjs Project now has a [ROM Dump](/devices/pc/rom/compaq/bios/portable3/) (REV K, 1987-01-29).
|
||||
|
||||
Reportedly intended to be an 80386-based machine, the Portable III was first released in 1987 as a 12Mhz
|
||||
80286-based system.
|
||||
|
||||
**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
|
||||
|
||||
[TBD]
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
layout: page
|
||||
title: Compaq DeskPro 386 Machines
|
||||
title: COMPAQ DeskPro 386 Machines
|
||||
permalink: /devices/pc/machine/compaq/deskpro386/
|
||||
---
|
||||
|
||||
Compaq DeskPro 386 Machines
|
||||
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 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/)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
layout: page
|
||||
title: "Compaq DeskPro 386 (2Mb) with EGA Display"
|
||||
title: "COMPAQ DeskPro 386 (2Mb) with EGA Display"
|
||||
permalink: /devices/pc/machine/compaq/deskpro386/ega/2048kb/
|
||||
machines:
|
||||
- type: pc-dbg
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
<?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>
|
||||
<computer id="deskpro386-ega-2048k" name="Compaq DeskPro 386" buswidth="32"/>
|
||||
<name pos="center">COMPAQ DeskPro 386 (16Mhz), 128Kb EGA, 2048Kb RAM</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="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/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-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"/>
|
||||
<keyboard ref="/devices/pc/keyboard/keyboard-minimal-arrows.xml"/>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
layout: page
|
||||
title: "Compaq DeskPro 386 (4Mb) with EGA Display"
|
||||
title: "COMPAQ DeskPro 386 (4Mb) with EGA Display"
|
||||
permalink: /devices/pc/machine/compaq/deskpro386/ega/4096kb/
|
||||
machines:
|
||||
- type: pc-dbg
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
<?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>
|
||||
<computer id="deskpro386-ega-2048k" name="Compaq DeskPro 386" buswidth="32"/>
|
||||
<name pos="center">COMPAQ DeskPro 386 (16Mhz), 256Kb EGA, 4096Kb RAM</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="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/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-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"/>
|
||||
<keyboard ref="/devices/pc/keyboard/keyboard-minimal-arrows.xml"/>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
<?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), Compaq VGA, 2048Kb RAM</name>
|
||||
<computer id="deskpro386-vga-2048k" name="Compaq DeskPro 386" buswidth="32"/>
|
||||
<name pos="center">COMPAQ DeskPro 386 (16Mhz), COMPAQ VGA, 2048Kb RAM</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"/>
|
||||
<ram id="ramCPQ" addr="0xfa0000" size="0x60000" comment="Compaq memory at 0xFA0000"/>
|
||||
<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="0x8000" file="/devices/pc/video/compaq/vga/109360-001/1987-10-27.json" notify="videoVGA"/>
|
||||
<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"/>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
layout: page
|
||||
title: "Compaq DeskPro 386 (2Mb) with VGA Display"
|
||||
title: "COMPAQ DeskPro 386 (2Mb) with VGA Display"
|
||||
permalink: /devices/pc/machine/compaq/deskpro386/vga/2048kb/
|
||||
machines:
|
||||
- type: pc-dbg
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
<?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>
|
||||
<computer id="deskpro386-vga-2048k" name="Compaq DeskPro 386" buswidth="32"/>
|
||||
<name pos="center">COMPAQ DeskPro 386 (16Mhz), IBM VGA, 2048Kb RAM, 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"/>
|
||||
<ram id="ramCPQ" addr="0xfa0000" size="0x60000" comment="Compaq memory at 0xFA0000"/>
|
||||
<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/ibm-vga.json" notify="videoVGA[0x378d,0x3f8d]"/>
|
||||
<rom id="romVGA" addr="0xc0000" size="0x6000" file="/devices/pc/video/ibm/vga/1986-10-27/ibm-vga.json" notify="videoVGA[0x378d,0x3f8d]"/>
|
||||
<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/vga/ibm-vga-autolockfs.xml"/>
|
||||
<keyboard ref="/devices/pc/keyboard/keyboard-minimal-functions.xml"/>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
layout: page
|
||||
title: "Compaq DeskPro 386 (4Mb) with VGA Display"
|
||||
title: "COMPAQ DeskPro 386 (4Mb) with VGA Display"
|
||||
permalink: /devices/pc/machine/compaq/deskpro386/vga/4096kb/
|
||||
machines:
|
||||
- type: pc-dbg
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
<?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>
|
||||
<computer id="deskpro386-vga-4096k" name="Compaq DeskPro 386" buswidth="32" state="/devices/pc/machine/compaq/deskpro386/vga/4096kb/state.json"/>
|
||||
<name pos="center">COMPAQ DeskPro 386 (16Mhz), IBM VGA, 2048Kb RAM, 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"/>
|
||||
<ram id="ramCPQ" addr="0xfa0000" size="0x60000" comment="Compaq memory at 0xFA0000"/>
|
||||
<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="romVGA" addr="0xc0000" size="0x6000" file="/devices/pc/video/ibm/vga/ibm-vga.json" notify="videoVGA[0x378d,0x3f8d]"/>
|
||||
<rom id="romVGA" addr="0xc0000" size="0x6000" file="/devices/pc/video/ibm/vga/1986-10-27/ibm-vga.json" notify="videoVGA[0x378d,0x3f8d]"/>
|
||||
<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/vga/ibm-vga-lockfs.xml"/>
|
||||
<keyboard id="keyboard"/>
|
||||
|
|
|
|||
|
|
@ -15,6 +15,6 @@ sitemap: false
|
|||
Build Your Own PC
|
||||
---
|
||||
|
||||
{% include build.html id="build-pc" %}
|
||||
{% include machine-build.html id="build-pc" %}
|
||||
|
||||
{% include machine.html id="custom-pc" %}
|
||||
|
|
|
|||
|
|
@ -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/)
|
||||
|
|
|
|||
26
devices/pc/rom/compaq/bios/README.md
Normal file
26
devices/pc/rom/compaq/bios/README.md
Normal file
|
|
@ -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
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
;
|
||||
; ROM BIOS for Compaq DeskPro 386-16
|
||||
; ROM BIOS for COMPAQ DeskPro 386-16
|
||||
; Rev J.4, from parts 109592-001 and 109591-001, dated '01/28/88'
|
||||
; (C)Copyright COMPAQ Computer Corporation 1982,83,84,85,86,87-All rights reserved.
|
||||
;
|
||||
|
|
@ -42,7 +42,7 @@
|
|||
; replacing the ROM in the first megabyte with write-protected RAM; the top 64Kb of that
|
||||
; RAM must first be initialized with the 64Kb at %000F0000 prior to remapping. It's also
|
||||
; possible to copy external ROMs from %000C0000 through %000EFFFF into the bottom 64Kb of
|
||||
; that RAM, but this is only done for ROMs known to contain relocatable code; eg, a Compaq
|
||||
; that RAM, but this is only done for ROMs known to contain relocatable code; eg, a COMPAQ
|
||||
; Video Graphics Controller (VGC) Board.
|
||||
;
|
||||
; Every DeskPro 386 system must have a MINIMUM of 1Mb of RAM, of which either 256Kb,
|
||||
|
|
@ -52,9 +52,9 @@
|
|||
; is used by the "RAM Relocation" feature. The remaining memory immediately below that
|
||||
; 128Kb (ie, below %00FE0000) can only be accessed by special system software, such as CEMM.
|
||||
;
|
||||
; Compaq refers to that remaining memory as "Compaq Built-in Memory".
|
||||
; COMPAQ refers to that remaining memory as "Compaq Built-in Memory".
|
||||
;
|
||||
; As the Compaq 386/25 TechRef explains:
|
||||
; As the COMPAQ 386/25 TechRef explains:
|
||||
;
|
||||
; A data structure in memory indicates how much of the COMPAQ Built-in Memory (F40000h
|
||||
; to FE0000h) is [available and] in use. This memory is allocated downward (decreasing
|
||||
|
|
@ -244,7 +244,7 @@ x80b3: xor dx,dx ; 000080B3 33D2 '3.'
|
|||
;
|
||||
; Returns ZF set if successful
|
||||
;
|
||||
; See Compaq 386/25 TechRef, p.4-98 for details
|
||||
; See COMPAQ 386/25 TechRef, p.4-98 for details
|
||||
;
|
||||
x80e2: push bx ; 000080E2 53 'S'
|
||||
push cx ; 000080E3 51 'Q'
|
||||
|
|
@ -4803,7 +4803,7 @@ xa9e9: cs rep movsw ; 0000A9E9 F32EA5 '...'
|
|||
call xc259 ; 0000A9FD E85918 '.Y.'
|
||||
;
|
||||
; Set bit 2 (reserved?) and bit 4 (memory size?) of ROM BIOS Video Mode Options byte @40:0087.
|
||||
; It would appear that Compaq had a different conception of this byte; however, in the case of an
|
||||
; It would appear that COMPAQ had a different conception of this byte; however, in the case of an
|
||||
; adapter like the IBM VGA, it doesn't matter, since the IBM VGA ROM will rewrite this byte anyway.
|
||||
;
|
||||
or byte [0x87],0x14 ; 0000AA00 800E870014 '.....'
|
||||
|
|
@ -10383,7 +10383,7 @@ xdabb: push bx ; 0000DABB 53 'S'
|
|||
out 0x84,al ; 0000DAC0 E684 '..'
|
||||
;
|
||||
; This is special: move BL into AL, and then move AL back into BL.
|
||||
; We'll give Compaq the benefit of the doubt and assume this is macro nonsense.
|
||||
; We'll give COMPAQ the benefit of the doubt and assume this is macro nonsense.
|
||||
;
|
||||
mov al,bl ; 0000DAC2 8AC3 '..'
|
||||
mov bl,al ; 0000DAC4 8AD8 '..'
|
||||
|
|
@ -10454,7 +10454,7 @@ xdb31: pop bx ; 0000DB31 5B '['
|
|||
;
|
||||
; We then proceed to test the 128Kb starting at %FE0000 through %FFFFFF (the top of the 16Mb range),
|
||||
; which is where this ROM (and potentially other ROMs) will be copied and then mapped to %0E0000
|
||||
; through %0FFFFF. Compaq refers to this as "relocatable RAM".
|
||||
; through %0FFFFF. COMPAQ refers to this as "relocatable RAM".
|
||||
;
|
||||
; On the second call (from xdb16), AH is 0x02 (the first 64Kb block after the first 128Kb), and on
|
||||
; successful completion of that call, "00768 KB OK" will be displayed, referring to the first 640Kb
|
||||
|
|
@ -10464,7 +10464,7 @@ xdb31: pop bx ; 0000DB31 5B '['
|
|||
; successfully tests another 1024Kb, a total of "01792 KB OK" will be displayed.
|
||||
;
|
||||
; There appears to be a fourth call (from xd82e), where AH is 0xF0 (the first 64Kb of the last 1Mb
|
||||
; of the first 16Mb); we place no memory there, and Compaq memory maps typically show no memory there,
|
||||
; of the first 16Mb); we place no memory there, and COMPAQ memory maps typically show no memory there,
|
||||
; so I'm not sure what that's all about. -JP
|
||||
;
|
||||
xdb33: push bx ; 0000DB33 53 'S'
|
||||
|
|
@ -12978,7 +12978,7 @@ xf494: mov al,0x0 ; 0000F494 B000
|
|||
;
|
||||
; When we arrive here, the A20 line has been disabled; on most systems, that would
|
||||
; mean that the ROM's GDT would only be accessible at the "low" ROM address (%0F0730),
|
||||
; not the "high" address (%FF0730). But fortunately, A20 management on Compaq
|
||||
; not the "high" address (%FF0730). But fortunately, A20 management on COMPAQ
|
||||
; DeskPros affects wrap-around only from the 1st to the 2nd megabyte; no other address
|
||||
; range is affected.
|
||||
;
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
[<img src="http://archive.pcjs.org/pubs/pc/reference/compaq/images/Compaq_DeskPro_386-16_System_Board_V2-640.jpg" alt="Compaq DeskPro 386 System Board Version 2"/>](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'
|
||||
|
||||
|
|
|
|||
512
devices/pc/rom/compaq/bios/portable/100666-001-REVC.hex
Normal file
512
devices/pc/rom/compaq/bios/portable/100666-001-REVC.hex
Normal file
|
|
@ -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
|
||||
130
devices/pc/rom/compaq/bios/portable/100666-001-REVC.json
Normal file
130
devices/pc/rom/compaq/bios/portable/100666-001-REVC.json
Normal file
|
|
@ -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]
|
||||
}
|
||||
52
devices/pc/rom/compaq/bios/portable/README.md
Normal file
52
devices/pc/rom/compaq/bios/portable/README.md
Normal file
|
|
@ -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.
|
||||
|
||||
[<img src="http://archive.pcjs.org/pubs/pc/reference/compaq/images/COMPAQ_Portable_System_Board.jpg" alt="Compaq Portable System Board REV D"/>](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
|
||||
166
devices/pc/rom/compaq/bios/portable/cpqpatch/CPQPATCH.C
Normal file
166
devices/pc/rom/compaq/bios/portable/cpqpatch/CPQPATCH.C
Normal file
|
|
@ -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 <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
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;
|
||||
}
|
||||
BIN
devices/pc/rom/compaq/bios/portable/cpqpatch/CPQPATCH.EXE
Normal file
BIN
devices/pc/rom/compaq/bios/portable/cpqpatch/CPQPATCH.EXE
Normal file
Binary file not shown.
67
devices/pc/rom/compaq/bios/portable/cpqpatch/CPQPATCH.TXT
Normal file
67
devices/pc/rom/compaq/bios/portable/cpqpatch/CPQPATCH.TXT
Normal file
|
|
@ -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.
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -17,6 +17,6 @@ PCjs supports the following IBM PC video adapters:
|
|||
More detailed information is available for the following IBM-compatible video adapters:
|
||||
|
||||
* [ATI VGA](/devices/pc/video/ati/vga/)
|
||||
* [Compaq EGA](/devices/pc/video/compaq/ega/)
|
||||
* [Compaq VGA](/devices/pc/video/compaq/vga/)
|
||||
* [COMPAQ EGA](/devices/pc/video/compaq/ega/)
|
||||
* [COMPAQ VGA](/devices/pc/video/compaq/vga/)
|
||||
* [Paradise VGA](/devices/pc/video/paradise/vga/)
|
||||
|
|
|
|||
|
|
@ -19,11 +19,11 @@ Each ROM chip apparently contains 32Kb of data, but only the upper 16Kb of each
|
|||
|
||||
and merge them into a single 64Kb file, using the PCjs [FileDump](/modules/filedump/lib/) utility:
|
||||
|
||||
filedump --file=VGA_Wonder_V3-1.02_EVEN.BIN --merge=VGA_Wonder_V3-1.02_ODD.BIN --format=rom --output=VGA_Wonder_V3-1.02.rom
|
||||
filedump --file=1988-11-11/archive/VGA_Wonder_V3-1.02_EVEN.BIN --merge=1988-11-11/archive/VGA_Wonder_V3-1.02_ODD.BIN --format=rom --output=1988-11-11/archive/VGA_Wonder_V3-1.02.rom
|
||||
|
||||
Then, within the resulting 64Kb file, we extract the ROM code+data from the upper 32Kb:
|
||||
|
||||
filedump --file=VGA_Wonder_V3-1.02.rom --offset=32768 --format=json --output=VGA_Wonder_V3-1.02.json
|
||||
filedump --file=1988-11-11/archive/VGA_Wonder_V3-1.02.rom --offset=32768 --format=json --output=1988-11-11/VGA_Wonder_V3-1.02.json
|
||||
|
||||
And now we have a JSON-encoded ROM image that PCjs machines can load.
|
||||
|
||||
|
|
@ -31,7 +31,7 @@ And now we have a JSON-encoded ROM image that PCjs machines can load.
|
|||
|
||||
To create a human-readable dump, you can use the following command:
|
||||
|
||||
filedump --file=VGA_Wonder_V3-1.02.json --format=bytes --comments
|
||||
filedump --file=1988-11-11/VGA_Wonder_V3-1.02.json --format=bytes --comments
|
||||
|
||||
Here are the first 12 lines from that dump:
|
||||
|
||||
|
|
@ -47,4 +47,3 @@ Here are the first 12 lines from that dump:
|
|||
0x72,0x20,0x42,0x69,0x6F,0x73,0x2C,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x20, // 0x00000090 r Bios, Version
|
||||
0x56,0x33,0x2D,0x31,0x2E,0x30,0x32,0x20,0x0D,0x0A,0x00,0x1E,0x06,0x57,0x56,0x55, // 0x000000A0 V3-1.02 .....WVU
|
||||
0x52,0x51,0x53,0x50,0xBA,0xE8,0x46,0xB0,0x16,0xEE,0xBA,0x02,0x01,0xB0,0x01,0xEE, // 0x000000B0 RQSP..F.........
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
layout: page
|
||||
title: "Compaq Enhanced Color Graphics Board (EGA)"
|
||||
title: "COMPAQ Enhanced Color Graphics Board (EGA)"
|
||||
permalink: /devices/pc/video/compaq/ega/
|
||||
---
|
||||
|
||||
Compaq Enhanced Color Graphics Board (EGA)
|
||||
COMPAQ Enhanced Color Graphics Board (EGA)
|
||||
---
|
||||
|
||||
Our Compaq [EGA ROM BIOS](000412-001B/compaq-ega.json) comes from
|
||||
Our COMPAQ [EGA ROM BIOS](000412-001B/compaq-ega.json) comes from
|
||||
[bitsavers](http://bitsavers.trailing-edge.com/pdf/compaq/firmware/000412-001B_EGA/).
|
||||
|
||||
cd 000412-001B
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
---
|
||||
layout: page
|
||||
title: "Compaq Video Graphics Controller (VGA)"
|
||||
title: "COMPAQ Video Graphics Controller (VGA)"
|
||||
permalink: /devices/pc/video/compaq/vga/
|
||||
---
|
||||
|
||||
Compaq Video Graphics Controller (VGA)
|
||||
COMPAQ Video Graphics Controller (VGA)
|
||||
---
|
||||
This is the Compaq Video Graphics Controller Board, one of the earliest VGA boards Compaq released
|
||||
This is the COMPAQ Video Graphics Controller Board, one of the earliest VGA boards COMPAQ released
|
||||
for its DeskPro 386 line.
|
||||
|
||||
[<img src="http://archive.pcjs.org/devices/pc/video/compaq/vga/109360-001/Compaq_VGA_109360-001-640.jpg" alt="Compaq VGA Board"/>](http://archive.pcjs.org/devices/pc/video/compaq/vga/109360-001/Compaq_VGA_109360-001.jpg)
|
||||
[<img src="http://archive.pcjs.org/devices/pc/video/compaq/vga/109360-001/Compaq_VGA_109360-001-640.jpg" alt="COMPAQ VGA Board"/>](http://archive.pcjs.org/devices/pc/video/compaq/vga/109360-001/Compaq_VGA_109360-001.jpg)
|
||||
|
||||
It was featured in the February 16, 1988 of PC Magazine (p.188). At that time, it retailed for $599, and it was described
|
||||
as "the sharpest, fastest IBM-standard video board you can slide into your PC." The article goes on to say:
|
||||
|
|
@ -62,7 +62,7 @@ And for those who want a binary file, the FileDump API can be used to recreate b
|
|||
|
||||
> [http://localhost:8088/api/v1/dump?file=/devices/pc/video/compaq/vga/109360-001/1988-05-18.json&format=rom](http://localhost:8088/api/v1/dump?file=/devices/pc/video/compaq/vga/109360-001/1988-05-18.json&format=rom)
|
||||
|
||||
The Compaq VGA ROM BIOS concludes with the usual copyright string and author initials:
|
||||
The COMPAQ VGA ROM BIOS concludes with the usual copyright string and author initials:
|
||||
|
||||
Copyright COMPAQ Computer Corporation, 1982, 1983, 1984, 1985, 1986, 1987, 1988
|
||||
RWS*PNA*NPB*DJC*CAB*ALL*
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;
|
||||
Aa;
|
||||
; ROM BIOS for IBM VGA Adapter (aka IBM PS/2 Display Adapter)
|
||||
; (C)COPYRIGHT IBM Corp. 1984, 1986 10/27/86
|
||||
;
|
||||
|
|
@ -13,10 +13,10 @@ Browse [IBM PC](pc/) and [Challenger 1P](c1p/) disk archives.
|
|||
PCjs works best with disk images in a **JSON** format, to save conversion time, so that's the only
|
||||
disk image format you'll find on the PCjs website.
|
||||
|
||||
To convert any of our **JSON** disk images back into an **IMG** file, you can use the DiskDump API
|
||||
To convert any of our **JSON** disk images back into an **IMG** file, you can use the [DiskDump API](/api/v1/dump)
|
||||
with the *format* parameter set to `img` instead of `json`. For example:
|
||||
|
||||
http://localhost:8088/api/v1/dump?disk=/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json&format=img
|
||||
{{ site.url }}/api/v1/dump?disk=/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json&format=img
|
||||
|
||||
In fact, when browsing the disk archives, the PCjs web server automatically provides "onclick" handlers
|
||||
for links to JSON-encoded disk images, which will invoke the API for you.
|
||||
|
|
|
|||
|
|
@ -211,9 +211,9 @@ or with the "--path" option, which specifies either a single file or a set files
|
|||
|
||||
node diskdump --path="./apps/pc/1981/visicalc/bin/vc.com;../readme.md" --format=json --output=./apps/pc/1981/visicalc/disk.json
|
||||
|
||||
or via the PCjs server's DiskDump API:
|
||||
or via the PCjs server's [DiskDump API](/api/v1/dump):
|
||||
|
||||
http://www.pcjs.org/api/v1/dump?path=/apps/pc/1981/visicalc/bin/vc.com&format=json
|
||||
{{ site.url }}/api/v1/dump?path=/apps/pc/1981/visicalc/bin/vc.com&format=json
|
||||
|
||||
Learn more about PCjs disk image formats [here](/disks/).
|
||||
|
||||
|
|
|
|||
|
|
@ -140,6 +140,7 @@
|
|||
<disk path="/disks/pc/os2/misc/1.0/OS210-88286.json">OS/2 1.0 Debugger</disk>
|
||||
<disk path="/disks/pc/os2/misc/cpdos/SIZZLE-76818-19870107.json">OS/2 SIZZLE (v7.68.18)</disk>
|
||||
<disk path="/disks/pc/os2/misc/cpdos/SIZZLE-76818-19870107-DEBUG.json">OS/2 SIZZLE (v7.68.18 DEBUG)</disk>
|
||||
<disk path="/disks/pc/os2/misc/cruiser/OS2SDK-048014.100.json">OS/2 CRUISER (048014.100)</disk>
|
||||
<disk path="/disks/pc/windows/1.00/WIN100-DISK1.json">Windows 1.00 (SETUP)</disk>
|
||||
<disk path="/disks/pc/windows/1.00/WIN100-DISK2.json">Windows 1.00 (BUILD)</disk>
|
||||
<disk path="/disks/pc/windows/1.00/WIN100-DISK3.json">Windows 1.00 (UTILITY)</disk>
|
||||
|
|
|
|||
|
|
@ -25,6 +25,10 @@ digits are the day of the year (294 or October 21).
|
|||
|
||||
Directory listings of the four 1.44Mb distribution diskettes are provided below.
|
||||
|
||||
IBM OS/2 1.0 has been pre-installed on this machine's 20Mb hard disk, along with a copy of the
|
||||
[Microsoft OS/2 SDK 1.02](/disks/pc/tools/microsoft/os2/sdk/1.02/), as discussed in this
|
||||
[blog post](/blog/2015/12/27/).
|
||||
|
||||
{% include machine.html id="ibm5170" %}
|
||||
|
||||
### Directory of IBM OS/2 1.0 (1.44M Install)
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@
|
|||
<machine id="ibm5170" class="pc" border="1" pos="center" background="#FAEBD7">
|
||||
<name>IBM PC AT (8Mhz), 128Kb EGA, 2Mb RAM, 20Mb Hard Disk</name>
|
||||
<computer id="at-ega-2048k" name="IBM PC AT" buswidth="24"/>
|
||||
<cpu id="cpu286" model="80286" cycles="8000000"/>
|
||||
<cpu id="cpu286" model="80286" cycles="8000000" autostart="true"/>
|
||||
<ram id="ramLow" addr="0x00000" test="false" size="0xa0000" comment="ROM BIOS memory test has been disabled"/>
|
||||
<ram id="ramExt" addr="0x100000" size="0x160000" comment=""/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romBIOS" addr="0xf0000" size="0x10000" alias="0xff0000" file="/devices/pc/rom/5170/bios/1985-11-15/ATBIOS-REV3.json"/>
|
||||
<video ref="/devices/pc/video/ibm/ega/ibm-ega-128kb-lockfs.xml"/>
|
||||
<keyboard ref="/devices/pc/keyboard/keyboard-minimal-arrows.xml"/>
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ of OS/2 when it was still a work-in-progress. Not all of the disks run properly
|
|||
|
||||
The [OS/2 FOOTBALL Boot Disk (v7.68.17)](/disks/pc/os2/misc/football/87058/) contained a prototype version of OS/2
|
||||
from February 1987 that was designed to test two important new features of the Intel 80386 processor: paging and V86-mode.
|
||||
This prototype was forked from pre-1.0 OS/2 sources, and the only hardware it supported was the Compaq DeskPro 386-16.
|
||||
This prototype was forked from pre-1.0 OS/2 sources, and the only hardware it supported was the COMPAQ DeskPro 386-16.
|
||||
|
||||
* **OS/2 FOOTBALL Boot Disk (v4.41.00)**
|
||||
|
||||
|
|
|
|||
1
disks/pc/os2/misc/cruiser/OS2SDK-048014.100.json
Normal file
1
disks/pc/os2/misc/cruiser/OS2SDK-048014.100.json
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -32,7 +32,7 @@ However, another underlying goal was to demonstrate to IBM that Microsoft was ah
|
|||
considerations for OS/2. Up to this point, all OS/2 design and development work had been 16-bit, since the
|
||||
dominant state-of-the-art Intel CPU at the time was the 80286.
|
||||
|
||||
The FOOTBALL prototype was based on pre-1.0 OS/2 sources, and the only hardware it supported was the Compaq DeskPro
|
||||
The FOOTBALL prototype was based on pre-1.0 OS/2 sources, and the only hardware it supported was the COMPAQ DeskPro
|
||||
386-16. The source code was later sent to IBM, who in early April 1987 was adapting it to run on the Model 80 PS/2.
|
||||
|
||||
After OS/2 1.0 was finished in October 1987, FOOTBALL changes were merged into a fresh set of 1.0 sources, which
|
||||
|
|
@ -47,7 +47,7 @@ We also have an original [FOOTBALL Design Document](#football-design-document) d
|
|||
Booting FOOTBALL
|
||||
---
|
||||
|
||||
When booting on a [Compaq DeskPro 386-16 with 4Mb of RAM](/devices/pc/machine/compaq/deskpro386/ega/4096kb/),
|
||||
When booting on a [COMPAQ DeskPro 386-16 with 4Mb of RAM](/devices/pc/machine/compaq/deskpro386/ega/4096kb/),
|
||||
the following information is output to COM2 by the kernel's built-in debugger:
|
||||
|
||||
bx=001d, cx=f905, dx=0700, cs=1770, ds=1b10
|
||||
|
|
|
|||
|
|
@ -20,4 +20,7 @@
|
|||
<disk id="disk06" size="1228800" chs="80:2:15" img="cpdos/archive/SIZZLE-76818-19870107-DEBUG.img" href="/disks/pc/os2/misc/cpdos/SIZZLE-76818-19870107-DEBUG.json" md5="9c9270b83aea4798f2618d38465f56b8" md5json="bd6baaa820d6ff254f81ec7d7ff07e67">
|
||||
<name>OS/2 SIZZLE (v7.68.18 DEBUG)</name>
|
||||
</disk>
|
||||
<disk id="disk07" size="1228800" chs="80:2:15" img="cruiser/archive/OS2SDK-048014.100.img" href="/disks/pc/os2/misc/cruiser/OS2SDK-048014.100.json" md5="348ee09ced86af5e3211fccff87113c5" md5json="41a64f6ee27fd064c9ae7c04d9eecb88">
|
||||
<name>OS/2 CRUISER (048014.100)</name>
|
||||
</disk>
|
||||
</manifest>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ that allows the SDK installation script to finish.
|
|||
|
||||
This SDK was released in December 1987 along with [Microsoft OS/2 1.0](/disks/pc/os2/microsoft/1.0/).
|
||||
We do not have any of the printed documentation that came with the SDK, such as the *Installation Guide*, but we do
|
||||
have the [Microsoft® Operating System/2 Programmer’s Toolkit](/pubs/pc/programming/os2/microsoft/ptk/1.0/) documentation
|
||||
have the [Microsoft® Operating System/2 Programmer’s Toolkit](/pubs/pc/software/os2/microsoft/ptk10/) documentation
|
||||
from March 1988, thanks to the [OS/2 Museum](http://www.os2museum.com/wp/os2-history/os2-library/os2-1-x-programming/).
|
||||
|
||||
Other documentation is available for selected OS/2 SDK tools:
|
||||
|
|
|
|||
|
|
@ -28,9 +28,9 @@ Our [Publication Archive](/pubs/) includes these PC-related resources:
|
|||
* [CPU Documents](/pubs/pc/reference/intel/)
|
||||
* [Datasheets](/pubs/pc/datasheets/)
|
||||
* [Magazines](/pubs/pc/magazines/)
|
||||
* [Programming Guides](/pubs/pc/programming/) (eg, [OS/2](/pubs/pc/programming/os2/))
|
||||
* [Programming Guides](/pubs/pc/programming/)
|
||||
* [Reference Manuals](/pubs/pc/reference/)
|
||||
* [Software User Guides](/pubs/pc/software/)
|
||||
* [Software User and Development Guides](/pubs/pc/software/) (eg, DOS, [OS/2](/pubs/pc/software/os2/), Windows)
|
||||
|
||||
And publications related to Ohio Scientific's 6502-based Challenger 1P:
|
||||
|
||||
|
|
|
|||
|
|
@ -28,10 +28,10 @@ capabilities can be found in the [Documentation](/docs/).
|
|||
The first JavaScript Machines simulation was [C1Pjs](/docs/c1pjs/), a simulation of the
|
||||
Challenger 1P, which was a 6502-based microcomputer introduced by Ohio Scientific in 1978.
|
||||
|
||||
C1Pjs v1.0 was released in July 2012, first on ecpsim.org and cpusim.org, then on [jsmachines.net](http://jsmachines.net/),
|
||||
and finally [{{ site.pcjs.domain }}]({{ site.url }}/). More information about the first release of C1Pjs was also
|
||||
[posted](http://osiweb.org/osiforum/viewtopic.php?f=3&t=103) on the [OSI Discussion Forum](http://osiweb.org/osiforum/index.php)
|
||||
at [osiweb.org](http://osiweb.org/).
|
||||
C1Pjs v1.0 was released in July 2012, originally on ecpsim.org and cpusim.org, and then
|
||||
[jsmachines.net](http://jsmachines.net/), which has since become [{{ site.pcjs.domain }}]({{ site.url }}/).
|
||||
More information about the first release of C1Pjs was also [posted](http://osiweb.org/osiforum/viewtopic.php?f=3&t=103)
|
||||
on the [OSI Discussion Forum](http://osiweb.org/osiforum/index.php) at [osiweb.org](http://osiweb.org/).
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -40,9 +40,10 @@ at [osiweb.org](http://osiweb.org/).
|
|||
The next JavaScript Machines simulation was [PCjs](/docs/about/pcjs/), which simulates the original IBM PC, IBM PC XT,
|
||||
and IBM PC AT.
|
||||
|
||||
[PCjs](/docs/about/pcjs/) emulates the Intel 8088 and 80286 CPUs, as well as IBM Monochrome Display Adapter (MDA),
|
||||
Color Graphics Adapter (CGA), and Enhanced Graphics Adapter (EGA) video cards, along with assorted motherboard and
|
||||
expansion bus components. It also includes an optional Debugger and a user-configurable Control Panel.
|
||||
[PCjs](/docs/about/pcjs/) emulates the Intel 8088, 80186, 80286 and 80386 CPUs, as well as IBM Monochrome Display
|
||||
Adapter (MDA), Color Graphics Adapter (CGA), Enhanced Graphics Adapter (EGA), and Video Graphics Array (VGA) video
|
||||
cards, along with assorted motherboard and expansion bus components. It also includes an optional
|
||||
[Debugger](/docs/pcjs/debugger/) and a user-configurable [Control Panel](/docs/pcjs/panel/).
|
||||
|
||||
PCjs v1.0 was released on [jsmachines.net](http://jsmachines.net/) in late 2012, and the JavaScript Machines Project,
|
||||
with its second full-featured machine emulation, was launched.
|
||||
|
|
|
|||
|
|
@ -15,65 +15,117 @@ fast, it works well in all modern web browsers (both desktop and mobile), and it
|
|||
the [PCjs Project](https://github.com/jeffpar/pcjs), an open source project on [GitHub](http://github.com/).
|
||||
|
||||
Check out the [Demos](/#demos) on the home page, and all the other PCjs [Application](/apps/pc/), [Disk](/disks/pc/),
|
||||
and [Machine](/devices/pc/machine/) demos, including an IBM PC XT "[Server Array](/devices/pc/machine/5160/cga/256kb/array/)"
|
||||
featuring multiple PCs running side-by-side.
|
||||
and [Machine](/devices/pc/machine/) demos, including an [IBM PC Dual Display System](/devices/pc/machine/5150/dual/64kb/)
|
||||
demo of multiple monitor support, and [IBM PC XT "Server Array"](/devices/pc/machine/5160/cga/256kb/array/) and
|
||||
[Windows 1.01 "Server Array"](/devices/pc/machine/5160/ega/640kb/array/) demos of multiple machines running side-by-side.
|
||||
|
||||
### Features
|
||||
|
||||
+ Build your own IBM PC, PC XT, and PC AT simulations using simple XML machine configuration files.
|
||||
You decide how much RAM you want, how many disk drives, which disk images to include (and which should be
|
||||
pre-loaded), what kind of video adapter (MDA, CGA or EGA), serial ports, mouse, and more. See the
|
||||
pre-loaded), what kind of video adapter (MDA, CGA, EGA or VGA), serial ports, mouse, and more. See the
|
||||
[Documentation](/docs/pcjs/) for details.
|
||||
|
||||
+ Excellent IBM hardware compatibility ensures all the original IBM BIOS ROMs operate properly, and that the
|
||||
machines run at their original speed. Even obsolete hardware, such as the original PC XT hard disk controller,
|
||||
is supported.
|
||||
|
||||
+ The CPU component is easily configured to emulate an 8088, 80186, 80286, or 80386. A target speed can also
|
||||
be specified, and in some cases, even specific CPU *steppings* (including specific errata) can be enabled.
|
||||
|
||||
+ Similarly, the FPU (floating-point) component can be configured to emulate an 8087, 80287, or 80387; however,
|
||||
only 8087 support is complete at this point.
|
||||
|
||||
+ The modular design allows you to specify which components to enable, and which external controls
|
||||
to display for each component. You can choose the size of the display window created by the [Video](/docs/pcjs/video/)
|
||||
component, add **Halt** or **Speed** buttons to the [CPU](/docs/pcjs/cpu/) component, display clickable "DIP Switches"
|
||||
for the [Chipset](/docs/pcjs/chipset/) component, or even design your own [Control Panel](/docs/pcjs/panel/).
|
||||
|
||||
+ The UI includes a responsive design that tailors itself to your browser and device, and support for touch events
|
||||
and soft keyboards means you get the best possible emulation experience -- better than any other browser-based
|
||||
emulator currently available. It almost feels like your DOS and Windows mouse-based applications have been rewritten
|
||||
to work with your iPad or iPhone -- almost. Please note, however, that some mobile devices provide better support than
|
||||
others.
|
||||
|
||||
+ A fully-integrated [Debugger](/docs/pcjs/debugger/) is available. Disassemble code, set breakpoints on
|
||||
memory write/read/execution addresses, dump and edit memory, dump disk sectors, enable/disable categories of diagnostic
|
||||
messages, and view instruction history, cycle counts and more. The Debugger does not rely on CPU breakpoint
|
||||
instructions or the trace flag, and does not alter the machine state in any way, allowing you to debug anything,
|
||||
including 8086 debuggers.
|
||||
|
||||
+ Machines created with the [Computer](/docs/pcjs/computer/) *resume* attribute set will save their entire machine
|
||||
state using your browser's local storage, so that any changes are preserved when your browser closes, including
|
||||
disk modifications. Any files you create or modify *inside* the machine will still be there when you return.
|
||||
TIP: To restore a diskette's original contents, simply press the "Download" button again.
|
||||
|
||||
+ Machine states can also be dumped (using the built-in [Debugger](/docs/pcjs/debugger/)), saved as JSON files, and
|
||||
pre-loaded into a machine, bypassing the normal boot process. You can even combine a pre-defined state with the
|
||||
"resume" feature, preserving any changes you make to the machine's original state.
|
||||
+ Most modern web browsers are supported, including IE (v9.0 and higher), Safari, Firefox, Chrome and Opera, and no
|
||||
JavaScript extensions (typed arrays) or third-party libraries are required. Safari is recommended for iOS users,
|
||||
Chrome or Firefox for other platforms.
|
||||
|
||||
+ Most modern web browsers are supported, including IE (v9.0 and higher), Edge, Safari, Firefox, Chrome and Opera,
|
||||
and no JavaScript extensions (typed arrays) or third-party libraries are required. Safari is recommended for iOS
|
||||
users, Chrome or Firefox for other platforms.
|
||||
|
||||
### Future
|
||||
|
||||
The following features are targeted for version 1.16.x:
|
||||
PCjs has been been steadily evolving for almost 4 years now, in much the same way that the PC architecture evolved,
|
||||
first with the 8088-based IBM PC in 1981, then with the 80286-based IBM PC AT in 1984, and finally the 80386 and the
|
||||
first 32-bit PC architecture introduced by COMPAQ in late 1986.
|
||||
|
||||
+ Improved EGA compatibility
|
||||
+ 80286 protected-mode support
|
||||
+ Improvements to PC AT hardware emulation
|
||||
PCjs will remain focused on 1980's era hardware and software, so there are currently no plans to move beyond the
|
||||
80386. Some of the PCjs demos do include software from the 1990's (eg, DOS 5.0, Windows 3.x, and Windows 95), but the
|
||||
project's priority is older software, especially software that is difficult and sometimes impossible to run on newer
|
||||
hardware.
|
||||
|
||||
Some of the features planned for future releases include:
|
||||
|
||||
+ Improved FPU compatibility, with accurate cycle counts
|
||||
|
||||
+ Improved Video compatibility (eg, custom EGA and VGA fonts)
|
||||
|
||||
### History
|
||||
|
||||
+ v1.15 introduced PC AT (Model 5170) emulation, as discussed in the [blog](/blog/2014/09/13/).
|
||||
+ v1.14 introduced limited EGA emulation, as discussed in the [blog](/blog/2014/07/30/).
|
||||
A more [complete list of releases](https://github.com/jeffpar/pcjs/releases) is on GitHub, but here are some highlights:
|
||||
|
||||
+ v1.20 added 8087 coprocessor (FPU) support, [OS/2 improvements](http://www.pcjs.org/blog/2016/02/08/),
|
||||
and new Disk/Machine [Save Options](http://www.pcjs.org/blog/2016/02/17/).
|
||||
|
||||
+ v1.19 improved 80386 compatibility and added support for [Windows 95](http://www.pcjs.org/blog/2015/09/21/).
|
||||
|
||||
+ v1.18 added basic 80386 CPU functionality and [COMPAQ DeskPro 386](http://www.pcjs.org/blog/2015/04/16/) emulation.
|
||||
|
||||
+ v1.16 added support for [OS/2 1.0](http://www.pcjs.org/blog/2014/12/04/), the Microsoft/IBM multitasking operating
|
||||
system introduced in December 1987 for 80286-based machines.
|
||||
|
||||
+ v1.15 introduced [IBM PC AT](http://www.pcjs.org/blog/2014/09/13/) (Model 5170) emulation.
|
||||
|
||||
+ v1.14 added basic [EGA Support](http://www.pcjs.org/blog/2014/07/30/) and the ability to run Windows 1.01
|
||||
in color.
|
||||
|
||||
+ v1.13 introduced manifest files that describe software packages that can be used with PCjs.
|
||||
More information on software manifests is available [here](/apps/).
|
||||
|
||||
+ v1.12.1 coincided with the first release of the new PCjs web server running on [Node.js](http://nodejs.org).
|
||||
The new server includes ROM and disk image conversion APIs, as well as a
|
||||
[Markdown](http://daringfireball.net/projects/markdown/syntax) module that supports link extensions
|
||||
for embedding C1Pjs and PCjs machine files in Markdown documents and automatically converts "README.md"
|
||||
files into "index.html" web pages.
|
||||
|
||||
+ v1.11 improved the *embedPC()* and *embedC1P()* functions, so now you can embed XML machine configuration files
|
||||
that reference other configuration files, such as an external [Keyboard](/docs/pcjs/keyboard/) or
|
||||
[Control Panel](/docs/pcjs/panel/) XML layout. It does this by building the entire XML configuration internally,
|
||||
rather than relying on XSLT's *document()* function, which doesn't seem to work in all JavaScript XSLT processors.
|
||||
|
||||
+ v1.10 fixed embedding in Internet Explorer 11 (Microsoft removed "MSIE" from their default user-agent string).
|
||||
The ability to embed multiple PCs on a single web page is now supported as well.
|
||||
|
||||
+ v1.08 added soft-keyboard support, which isn't quite finished (sticky-shift and auto-repeat will be added in a future
|
||||
version), but it's good enough for use on iPads. Browse [IBM PC Machine Configurations](/devices/pc/machine/) for
|
||||
machines that include a soft-keyboard.
|
||||
|
||||
+ v1.06c added support for user-defined diskette images. Select "Remote Disk" from the diskette list, click
|
||||
"Download", and enter a URL at the prompt. See **Creating PCjs-Compatible Disk Images** in the
|
||||
[PCjs Documentation](/docs/pcjs/) for more information about supported disk images.
|
||||
|
||||
+ v1.05b added support for webkitAudioContext, bringing your simulated IBM PC's speaker to life. Relive the thrill
|
||||
of running MUSIC.BAS and listening to those classic tunes. *Sound support is still experimental*.
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ PCjs Documentation
|
|||
---
|
||||
|
||||
[PCjs](/docs/about/pcjs/) is a full-featured IBM PC, PC XT and PC AT emulator written entirely in JavaScript.
|
||||
After you've read the Documentation, play with the [Demos](demos/).
|
||||
After you've read the Documentation, play with the [Examples](examples/).
|
||||
|
||||
{% include machine.html id="ibm5150" %}
|
||||
|
||||
|
|
@ -23,29 +23,29 @@ of XSL and CSS support files (included in the ZIP file below).
|
|||
|
||||
### Creating Machine XML Files
|
||||
|
||||
A PCjs machine XML file defines all a machine's components. Components include:
|
||||
A PCjs machine XML file defines all a machine's components, including:
|
||||
|
||||
* [Chipset](/docs/pcjs/chipset/)
|
||||
* [Computer](/docs/pcjs/computer/)
|
||||
* [Control Panel](/docs/pcjs/panel/)
|
||||
* [CPU](/docs/pcjs/cpu/)
|
||||
* [Debugger](/docs/pcjs/debugger/)
|
||||
* [Floppy Disk Controller](/docs/pcjs/fdc/)
|
||||
* [Hard Disk Controller](/docs/pcjs/hdc/)
|
||||
* [Keyboard](/docs/pcjs/keyboard/)
|
||||
* [Mouse](/docs/pcjs/mouse/)
|
||||
* [RAM](/docs/pcjs/ram/)
|
||||
* [ROM](/docs/pcjs/rom/)
|
||||
* [Parallel Port](/docs/pcjs/parallel/)
|
||||
* [Serial Port](/docs/pcjs/serial/)
|
||||
* [Video Adapter](/docs/pcjs/video/)
|
||||
* [Chipset](chipset/)
|
||||
* [Computer](computer/)
|
||||
* [Control Panel](panel/)
|
||||
* [CPU](cpu/)
|
||||
* [Debugger](debugger/)
|
||||
* [Floppy Disk Controller](fdc/)
|
||||
* [Hard Disk Controller](hdc/)
|
||||
* [Keyboard](keyboard/)
|
||||
* [Mouse](mouse/)
|
||||
* [RAM](ram/)
|
||||
* [ROM](rom/)
|
||||
* [Parallel Port](parallel/)
|
||||
* [Serial Port](serial/)
|
||||
* [Video Adapter](video/)
|
||||
|
||||
Here's a simple machine XML file that includes an 8088 CPU and 16Kb of RAM:
|
||||
|
||||
<machine id="ibm">
|
||||
<computer id="pc" name="IBM PC"/>
|
||||
<cpu id="cpu8088" model="8088"/>
|
||||
<ram id="ramLow" addr="0x00000" size="0x04000"/>
|
||||
<computer id="pc" name="IBM PC"/>
|
||||
<cpu id="cpu8088" model="8088"/>
|
||||
<ram id="ramLow" addr="0x00000" size="0x04000"/>
|
||||
</machine>
|
||||
|
||||
However, that machine isn't usable, since it lacks a keyboard, screen, or any code (ROMs) to execute.
|
||||
|
|
@ -53,115 +53,132 @@ However, that machine isn't usable, since it lacks a keyboard, screen, or any co
|
|||
A simple machine definition that actually works might look like:
|
||||
|
||||
<machine id="ibm" class="pc" width="720px">
|
||||
<computer id="pc" name="IBM PC"/>
|
||||
<cpu id="cpu8088" model="8088"/>
|
||||
<ram id="ramLow" addr="0x00000" size="0x04000"/>
|
||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="ibm-basic-1.00.json"/>
|
||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="1981-04-24.json"/>
|
||||
<keyboard id="keyboard"/>
|
||||
<video id="videoMDA" model="mda" screenwidth="720" screenheight="350" charset="ibm-mda-cga.json">
|
||||
<name>Monochrome Display</name>
|
||||
</video>
|
||||
<chipset id="chipset" model="5150" sw1="01000001" sw2="11110000"/>
|
||||
<computer id="pc" name="IBM PC"/>
|
||||
<cpu id="cpu8088" model="8088"/>
|
||||
<ram id="ramLow" addr="0x00000" size="0x04000"/>
|
||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="ibm-basic-1.00.json"/>
|
||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="1981-04-24.json"/>
|
||||
<keyboard id="keyboard"/>
|
||||
<video id="videoMDA" model="mda" screenwidth="720" screenheight="350" charset="ibm-mda-cga.json">
|
||||
<name>Monochrome Display</name>
|
||||
</video>
|
||||
<chipset id="chipset" model="5150" sw1="01000001" sw2="11110000"/>
|
||||
</machine>
|
||||
|
||||
Here is a [demo](/docs/pcjs/demos/sample1.html) of this machine's [XML](/docs/pcjs/demos/sample1.xml) file.
|
||||
Here is an [example](examples/example1.html) of this machine's [XML](examples/example1.xml) file.
|
||||
|
||||
Machine definitions can also include visual elements. For example, we can include a "Run" button with the CPU component.
|
||||
Note that as soon as the machine is ready and the CPU starts running, the "Run" button will change to "Halt".
|
||||
|
||||
<machine id="ibm" class="pc" width="720px">
|
||||
<computer id="pc" name="IBM PC"/>
|
||||
<cpu id="cpu8088" model="8088">
|
||||
<control type="button" class="input" binding="run">Run</control>
|
||||
</cpu>
|
||||
...
|
||||
<computer id="pc" name="IBM PC"/>
|
||||
<cpu id="cpu8088" model="8088">
|
||||
<control type="button" class="input" binding="run">Run</control>
|
||||
</cpu>
|
||||
...
|
||||
</machine>
|
||||
|
||||
Next, we can add a Floppy Disk Controller (FDC) component. And since we want to be able to "load" and "unload" floppy
|
||||
disks at will, we'll include some UI controls.
|
||||
|
||||
<machine id="ibm" class="pc" width="720px">
|
||||
<fdc id="fdcNEC" automount="{A: {name: 'PC-DOS 1.0', path: 'pcdos-1.00.json'}}">
|
||||
<control type="container">
|
||||
<control type="list" class="input" binding="listDrives"/>
|
||||
<control type="list" class="input" binding="listDisks">
|
||||
<disk path="">None</disk>
|
||||
<disk path="pcdos-1.00.json">PC-DOS 1.0</disk>
|
||||
</control>
|
||||
<control type="button" class="input" binding="loadDrive">Load</control>
|
||||
</control>
|
||||
</fdc>
|
||||
...
|
||||
<fdc id="fdcNEC" automount="{A: {name: 'PC-DOS 1.0', path: 'pcdos-1.00.json'}}">
|
||||
<control type="container">
|
||||
<control type="list" class="input" binding="listDrives"/>
|
||||
<control type="list" class="input" binding="listDisks">
|
||||
<disk path="">None</disk>
|
||||
<disk path="pcdos-1.00.json">PC-DOS 1.0</disk>
|
||||
</control>
|
||||
<control type="button" class="input" binding="loadDrive">Load</control>
|
||||
</control>
|
||||
</fdc>
|
||||
...
|
||||
</machine>
|
||||
|
||||
Here is a [demo](/docs/pcjs/demos/sample2.html) of the updated machine's [XML](/docs/pcjs/demos/sample2.xml) file.
|
||||
Here is an [example](examples/example2.html) of the updated machine's [XML](examples/example2.xml)
|
||||
file.
|
||||
|
||||
### Loading Machine XML Files
|
||||
|
||||
Inside a web page, add a <div> to contain the machine, load the **pc.js** script
|
||||
(**pc-dbg.js** if you need the PCjs [Debugger](/docs/pcjs/debugger/)), and then call *window.embedPC()*:
|
||||
Inside a web page, add a <div> to contain the machine, load the *pc.js* script
|
||||
(*pc-dbg.js* if you need the PCjs [Debugger](debugger/)), and then call *embedPC()*:
|
||||
|
||||
<div id="sample2"/>
|
||||
<div id="example2"/>
|
||||
<script type="text/javascript" src="pc.js"/>
|
||||
<script type="text/javascript">
|
||||
window.embedPC("sample2", "sample2.xml", "components.xsl");
|
||||
embedPC("example2", "example2.xml", "components.xsl");
|
||||
</script>
|
||||
|
||||
In fact, this is exactly what we did in the previous [demo](/docs/pcjs/demos/sample2.html).
|
||||
In fact, this is exactly what we did in the previous [example](examples/example2.html).
|
||||
|
||||
*window.embedPC()* requires 3 parameters:
|
||||
*embedPC()* accepts 4 parameters:
|
||||
|
||||
- The *id* of the machine <div> (e.g., "sample2");
|
||||
- The *url* of the machine XML file (e.g., "sample2.xml");
|
||||
- The *id* of the machine <div> (e.g., "example2");
|
||||
- The *url* of the machine XML file (e.g., "example2.xml");
|
||||
- The *url* of the components XSL file (e.g., "components.xsl")
|
||||
- Any *parms* that should be passed to the machine components during initialization
|
||||
|
||||
**components.xsl** (and the corresponding **components.css**) are included with the PCjs scripts in the samples download below.
|
||||
The first 3 parameters are required; the *parms* parameter is optional. If *parms* is specified, it should
|
||||
contain a single-quoted JSON object definition, with properties intended to override those specified in the
|
||||
machine XML file; eg:
|
||||
|
||||
'{messages:"warn",autoMount:{"A":{"path":"/disks/pc/dos/ibm/1.00/PCDOS100.json"}}}'
|
||||
|
||||
*components.xsl* (and the corresponding *components.css*) are included with the PCjs scripts in the
|
||||
[Examples](#running-pcjs-on-your-own-server) download. Every version of *components.xsl* has a corresponding
|
||||
*components.css*, which your web page should also load, usually with a <link> tag inside the <head>
|
||||
element; eg:
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="components.css">
|
||||
|
||||
### Using the PCjs Debugger
|
||||
|
||||
To create a configuration that includes the PCjs Debugger, you need to:
|
||||
|
||||
- Add [Debugger](/docs/pcjs/debugger/) and [Control Panel](/docs/pcjs/panel/) components to the machine XML file;
|
||||
- Add [Debugger](debugger/) and [Control Panel](panel/) components to the machine XML file;
|
||||
- Add debugger controls to the Control Panel, such as Run, Step, Reset, etc;
|
||||
- Change your web page to load **pc-dbg.js** instead of **pc.js**.
|
||||
- Change your web page to load *pc-dbg.js* instead of *pc.js*.
|
||||
|
||||
Take a look at the [sample3a](/docs/pcjs/demos/sample3a.html) demo (with [XML file](/docs/pcjs/demos/sample3a.xml)) for an example.
|
||||
Take a look at the [example3a](examples/example3a.html) example
|
||||
(with [XML file](examples/example3a.xml)).
|
||||
|
||||
The debugger gives you access to more capabilities than mere debugging. For example, you can use the **load** command
|
||||
to load diskette sectors into memory ("l <addr> <drive> ...") or dump an entire diskette as JSON ("l json <drive>").
|
||||
You can also **halt** a machine ("h") and **dump** its entire state as JSON ("d state"). You can save that state in a .json file,
|
||||
and then use that state to initialize a new machine (as long as it uses the same machine *id*).
|
||||
The debugger gives you access to more capabilities than mere debugging. For example, you can use the **load**
|
||||
command to load diskette sectors into memory ("l [addr] [drive #] ...") or the **dump** command to dump an entire
|
||||
diskette as JSON ("d disk [drive #]"). You can also **halt** a machine ("h") and **dump** its entire state as JSON
|
||||
("d state"). You can save that state in a .json file, and then use that state to initialize a new machine (as long as
|
||||
it uses the same machine *id*).
|
||||
|
||||
In fact, the [sample3b](/docs/pcjs/demos/sample3b.html) demo (with [XML file](/docs/pcjs/demos/sample3b.xml))
|
||||
does just that, using JSON dumps created from [sample3a](/docs/pcjs/demos/sample3a.html) after starting VisiCalc.
|
||||
See the *state* attribute on the [Computer](/docs/pcjs/computer/) component for more information on state files.
|
||||
In fact, the [example3b](examples/example3b.html) example (with [XML file](examples/example3b.xml))
|
||||
does just that, using JSON dumps created from [example3a](examples/example3a.html) after starting VisiCalc.
|
||||
See the *state* attribute on the [Computer](computer/) component for more information on state files.
|
||||
|
||||
### Running PCjs On Your Own Server
|
||||
|
||||
All of the demos described above are available for [download](/docs/pcjs/demos/).
|
||||
All of the examples described above are available for [download](examples/).
|
||||
|
||||
### Creating PCjs-Compatible Disk Images
|
||||
|
||||
If you have (or find) an IMG disk image file on a server, the PCjs web server provides a **DiskDump API** via endpoint
|
||||
"/api/v1/dump" that creates PCjs-compatible disks in JSON:
|
||||
If you have (or find) an IMG disk image file on a server, the PCjs web server provides a
|
||||
[DiskDump API](/api/v1/dump) via endpoint "/api/v1/dump" that creates PCjs-compatible disks in JSON:
|
||||
|
||||
http://localhost:8088/api/v1/dump?disk=(file|url)&format=json
|
||||
{{ site.url }}/api/v1/dump?disk=(file|url)&format=json
|
||||
|
||||
For example, let's say you found a disk image online:
|
||||
For example, let's say you found a disk image online, such as:
|
||||
|
||||
http://archive.pcjs.org/disks/pc/dos/ibm/1.00/PCDOS100.img
|
||||
|
||||
To convert it to a PCjs-compatible JSON format, use the following command:
|
||||
To convert it to a PCjs-compatible JSON format, issue the following
|
||||
[request](/api/v1/dump?disk=http://archive.pcjs.org/disks/pc/dos/ibm/1.00/PCDOS100.img&format=json),
|
||||
save the resulting JSON file to a folder on your server, and then update your machine XML file(s) to use that file.
|
||||
|
||||
http://localhost:8088/api/v1/dump?disk=http://archive.pcjs.org/disks/pc/dos/ibm/1.00/PCDOS100.img&format=json
|
||||
{{ site.url }}/api/v1/dump?disk=http://archive.pcjs.org/disks/pc/dos/ibm/1.00/PCDOS100.img&format=json
|
||||
|
||||
Save the resulting JSON file to a folder on your server, and then update your machine XML file(s) to use that file.
|
||||
If necessary, you can also reverse the process, converting a JSON disk image back into an IMG file:
|
||||
If necessary, you can also reverse the process and convert a JSON disk image back into an IMG file, with the
|
||||
this [request](/api/v1/dump?disk=http://www.pcjs.org/disks/pc/dos/ibm/1.00/PCDOS100.json&format=img):
|
||||
|
||||
http://localhost:8088/api/v1/dump?disk=http://www.pcjs.org/disks/pc/dos/ibm/1.00/PCDOS100.json&format=img
|
||||
{{ site.url }}/api/v1/dump?disk={{ site.url }}/disks/pc/dos/ibm/1.00/PCDOS100.json&format=img
|
||||
|
||||
Although PCjs will accept IMG disk image files, it must call the **DiskDump API** to convert the image
|
||||
Although PCjs will accept IMG disk image files, it must call the [DiskDump API](/api/v1/dump) to convert the image
|
||||
every time it's loaded, so it's *much* faster and more efficient to use pre-converted JSON-encoded disk images.
|
||||
|
||||
Remember that PC and PC XT machines supported only 160Kb diskettes (on any version of PC-DOS),
|
||||
|
|
|
|||
|
|
@ -1,34 +0,0 @@
|
|||
---
|
||||
layout: page
|
||||
title: PCjs Documentation Demos
|
||||
permalink: /docs/pcjs/demos/
|
||||
machines:
|
||||
- type: pc
|
||||
id: sample3
|
||||
config: /docs/pcjs/demos/sample3b.xml
|
||||
---
|
||||
|
||||
PCjs Documentation Demos
|
||||
---
|
||||
|
||||
This folder provides all the self-contained [PCjs](/docs/about/pcjs/) demos described in the [Documentation](/docs/pcjs/).
|
||||
|
||||
To use them, download [samples.zip](samples.zip), unzip it into a folder on your desktop computer or web server,
|
||||
and experiment with them in your web browser. Since all these samples are self-contained, they should work with either
|
||||
the "file:" or "http:" protocol.
|
||||
|
||||
+ Check out the sample HTML and XML files:
|
||||
- [sample1.html](sample1.html) and [sample1.xml](sample1.xml)
|
||||
- [sample2.html](sample2.html) and [sample2.xml](sample2.xml)
|
||||
- [sample3a.html](sample3a.html) and [sample3a.xml](sample3a.xml)
|
||||
- [sample3b.html](sample3b.html) and [sample3b.xml](sample3b.xml)
|
||||
+ Feel free to copy/paste additional components from other machine XML files on [pcjs.org](http://www.pcjs.org/).
|
||||
+ Remember to display the appropriate attribution on anything you share publicly; e.g.:
|
||||
[PCjs](http://pcjs.org) © 2012-2016 by [Jeff Parsons](mailto:Jeff@pcjs.org) ([@jeffpar](http://twitter.com/jeffpar))
|
||||
+ Stay in sync with the [PCjs repository](https://github.com/jeffpar/pcjs), to keep your copy of PCjs up-to-date.
|
||||
|
||||
Have fun!
|
||||
|
||||
{% include machine.html id="sample3" %}
|
||||
|
||||
[Return to [PCjs Documentation](..)]
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
Binary file not shown.
|
|
@ -1,4 +0,0 @@
|
|||
#!/bin/sh
|
||||
if [ ! -d zips ]; then mkdir zips; fi
|
||||
zip -q zips/$1 * -x samples*.zip zip.sh
|
||||
cp zips/$1 samples.zip
|
||||
36
docs/pcjs/examples/README.md
Normal file
36
docs/pcjs/examples/README.md
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
---
|
||||
layout: page
|
||||
title: PCjs Documentation Examples
|
||||
permalink: /docs/pcjs/examples/
|
||||
machines:
|
||||
- type: pc
|
||||
id: example3
|
||||
config: /docs/pcjs/examples/example3b.xml
|
||||
redirect_from:
|
||||
- /docs/pcjs/demos/
|
||||
---
|
||||
|
||||
PCjs Documentation Examples
|
||||
---
|
||||
|
||||
This folder provides all the self-contained [PCjs](/docs/about/pcjs/) examples described in the [Documentation](/docs/pcjs/).
|
||||
|
||||
To use them, download [examples.zip](examples.zip), unzip it into a folder on your desktop computer or web server,
|
||||
and experiment with them in your web browser. Since all these examples are self-contained, they should work with either
|
||||
the "file:" or "http:" protocol.
|
||||
|
||||
+ Check out the example HTML and XML files:
|
||||
- [example1.html](example1.html) and [example1.xml](example1.xml)
|
||||
- [example2.html](example2.html) and [example2.xml](example2.xml)
|
||||
- [example3a.html](example3a.html) and [example3a.xml](example3a.xml)
|
||||
- [example3b.html](example3b.html) and [example3b.xml](example3b.xml)
|
||||
+ Feel free to copy/paste additional components from other machine XML files on [pcjs.org](http://www.pcjs.org/).
|
||||
+ Remember to display the appropriate attribution on anything you share publicly; e.g.:
|
||||
[PCjs](http://pcjs.org) © 2012-2016 by [Jeff Parsons](mailto:Jeff@pcjs.org) ([@jeffpar](http://twitter.com/jeffpar))
|
||||
+ Stay in sync with the [PCjs repository](https://github.com/jeffpar/pcjs), to keep your copy of PCjs up-to-date.
|
||||
|
||||
Have fun!
|
||||
|
||||
{% include machine.html id="example3" %}
|
||||
|
||||
[Return to [PCjs Documentation](..)]
|
||||
|
|
@ -2,15 +2,15 @@
|
|||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>pcjs.org | /docs/pcjs/demos/sample2.html</title>
|
||||
<title>pcjs.org | /docs/pcjs/demos/example1.html</title>
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" type="text/css" href="components.css">
|
||||
<script type="text/javascript" src="pc.js"></script>
|
||||
</head>
|
||||
<body style="font-family: Helvetica, Arial, sans-serif;">
|
||||
<div id="sample2"></div>
|
||||
<div id="example1"></div>
|
||||
<script type="text/javascript">
|
||||
window.embedPC("sample2", "sample2.xml", "components.xsl");
|
||||
embedPC("example1", "example1.xml", "components.xsl");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<machine id="sample1" class="pc" width="720px">
|
||||
<machine id="example1" class="pc" width="720px">
|
||||
<computer id="pc" name="IBM PC"/>
|
||||
<cpu id="cpu8088" model="8088" autostart="true"/>
|
||||
<ram id="ramLow" addr="0x00000" size="0x10000"/>
|
||||
|
|
@ -2,15 +2,15 @@
|
|||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>pcjs.org | /docs/pcjs/demos/sample1.html</title>
|
||||
<title>pcjs.org | /docs/pcjs/demos/example2.html</title>
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" type="text/css" href="components.css">
|
||||
<script type="text/javascript" src="pc.js"></script>
|
||||
</head>
|
||||
<body style="font-family: Helvetica, Arial, sans-serif;">
|
||||
<div id="sample1"></div>
|
||||
<div id="example2"></div>
|
||||
<script type="text/javascript">
|
||||
window.embedPC("sample1", "sample1.xml", "components.xsl");
|
||||
embedPC("example2", "example2.xml", "components.xsl");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<machine id="sample2" class="pc" width="720px">
|
||||
<machine id="example2" class="pc" width="720px">
|
||||
<computer id="pc" name="IBM PC"/>
|
||||
<ram id="ramLow" addr="0x00000" size="0x10000"/>
|
||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="ibm-basic-1.00.json"/>
|
||||
1
docs/pcjs/examples/example3.json
Normal file
1
docs/pcjs/examples/example3.json
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -2,15 +2,15 @@
|
|||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>pcjs.org | /docs/pcjs/demos/sample3a.html</title>
|
||||
<title>pcjs.org | /docs/pcjs/demos/example3a.html</title>
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" type="text/css" href="components.css">
|
||||
<script type="text/javascript" src="pc-dbg.js"></script>
|
||||
</head>
|
||||
<body style="font-family: Helvetica, Arial, sans-serif;">
|
||||
<div id="sample3"></div>
|
||||
<div id="example3"></div>
|
||||
<script type="text/javascript">
|
||||
window.embedPC("sample3", "sample3a.xml", "components.xsl");
|
||||
embedPC("example3", "example3a.xml", "components.xsl");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<machine id="sample3" class="pc" border="0" width="900px">
|
||||
<machine id="example3" class="pc" border="0" width="900px">
|
||||
<computer id="pc" name="IBM PC"/>
|
||||
<cpu id="cpu8088" model="8088" autostart="true"/>
|
||||
<debugger id="debugger"/>
|
||||
|
|
@ -2,15 +2,15 @@
|
|||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>pcjs.org | /docs/pcjs/demos/sample3b.html</title>
|
||||
<title>pcjs.org | /docs/pcjs/demos/example3b.html</title>
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" type="text/css" href="components.css">
|
||||
<script type="text/javascript" src="pc.js"></script>
|
||||
</head>
|
||||
<body style="font-family: Helvetica, Arial, sans-serif;">
|
||||
<div id="sample3"></div>
|
||||
<div id="example3"></div>
|
||||
<script type="text/javascript">
|
||||
window.embedPC("sample3", "sample3b.xml", "components.xsl");
|
||||
embedPC("example3", "example3b.xml", "components.xsl");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<machine id="sample3" class="pc" width="720px">
|
||||
<computer id="pc" name="IBM PC" state="sample3.json"/>
|
||||
<machine id="example3" class="pc" width="720px">
|
||||
<computer id="pc" name="IBM PC" state="example3.json"/>
|
||||
<cpu id="cpu8088" model="8088" autostart="true"/>
|
||||
<ram id="ramLow" addr="0x00000" size="0x10000"/>
|
||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="ibm-basic-1.00.json"/>
|
||||
BIN
docs/pcjs/examples/examples.zip
Normal file
BIN
docs/pcjs/examples/examples.zip
Normal file
Binary file not shown.
1237
docs/pcjs/examples/pc-dbg.js
Normal file
1237
docs/pcjs/examples/pc-dbg.js
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue