Documentation updates
This commit is contained in:
parent
a05f9b58fd
commit
06094fcd48
20 changed files with 298 additions and 122 deletions
|
|
@ -28,8 +28,8 @@ Complete machine configurations are constructed from those devices. A machine c
|
|||
that lists all the device components to be used. A machine XML file can choose to configure every device itself,
|
||||
or it can include pre-configured device XML files, such as those provided above or elsewhere.
|
||||
|
||||
For example, here's what the machine located at [/devices/pc/machine/5150/mda/64kb/machine.xml](/devices/pc/machine/5150/mda/64kb/machine.xml)
|
||||
looks like:
|
||||
For example, here's what the machine located at
|
||||
[/devices/pc/machine/5150/mda/64kb/machine.xml](/devices/pc/machine/5150/mda/64kb/machine.xml) looks like:
|
||||
|
||||
<machine id="ibm5150" class="pc" border="1" pos="center" background="#FAEBD7">
|
||||
<name pos="center">IBM PC (Model 5150) with Monochrome Display</name>
|
||||
|
|
@ -47,5 +47,6 @@ looks like:
|
|||
<chipset id="chipset" model="5150" sw1="01000001" sw2="11110000"/>
|
||||
</machine>
|
||||
|
||||
All the devices are fully configured within the XML file, except for the Keyboard and Floppy Disk Controller (FDC)
|
||||
devices, which are defined in separate XML files.
|
||||
All the devices are fully configured within the XML file, except for the [Video](/docs/pcjs/video/),
|
||||
[Keyboard](/docs/pcjs/keyboard/), and [Floppy Disk Controller (FDC)](/docs/pcjs/fdc/) components, which are defined
|
||||
in separate XML files.
|
||||
|
|
|
|||
|
|
@ -1,12 +1,41 @@
|
|||
---
|
||||
layout: page
|
||||
title: 8042 Keyboard Controller Internals
|
||||
title: IBM PC Keyboard Devices
|
||||
permalink: /devices/pc/keyboard/
|
||||
---
|
||||
|
||||
8042 Keyboard Controller Internals
|
||||
IBM PC Keyboard Devices
|
||||
---
|
||||
|
||||
### Keyboard Configuration Files
|
||||
|
||||
The easiest way for a machine to include a *[Keyboard](/docs/pcjs/keyboard/)* component in its XML configuration file
|
||||
is to reference one of the project's keyboard configuration files, using the *ref* attribute; eg:
|
||||
|
||||
<keyboard ref="/devices/pc/keyboard/us83-buttons-minimal.xml"/>
|
||||
|
||||
The referenced XML file automatically defines the keyboard's hardware characteristics (eg, model) and
|
||||
any visual elements, such as buttons to simulate common keystrokes, or even complete "soft keyboard" layouts.
|
||||
|
||||
Here's what *us83-buttons-minimal.xml* currently looks like:
|
||||
|
||||
<keyboard id="keyboard" model="us83" pos="left" padleft="8px" padbottom="8px">
|
||||
<control type="button" binding="esc">ESC</control>
|
||||
<control type="button" binding="f1">F1</control>
|
||||
<control type="button" binding="f10">F10</control>
|
||||
</keyboard>
|
||||
|
||||
The following IBM keyboard configuration files are currently available:
|
||||
|
||||
- [us83-buttons-arrows.xml](us83-buttons-arrows.xml)
|
||||
- [us83-buttons-functions.xml](us83-buttons-functions.xml)
|
||||
- [us83-buttons-minimal.xml](us83-buttons-minimal.xml)
|
||||
- [us83-buttons-softkeys.xml](us83-buttons-softkeys.xml)
|
||||
- [us84-buttons-arrows.xml](us84-buttons-arrows.xml)
|
||||
- [us84-buttons-functions.xml](us84-buttons-functions.xml)
|
||||
|
||||
### 8042 Keyboard Controller Internals
|
||||
|
||||
The following documents were obtained from [halicery.com](http://halicery.com/):
|
||||
|
||||
- [8042_INTERN.TXT](8042_INTERN.TXT)
|
||||
|
|
|
|||
13
devices/pc/machine/5170/README.md
Normal file
13
devices/pc/machine/5170/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
layout: page
|
||||
title: IBM PC AT (Model 5170)
|
||||
permalink: /devices/pc/machine/5170/
|
||||
---
|
||||
|
||||
IBM PC AT Machines (Model 5170)
|
||||
---
|
||||
|
||||
All our Model 5170, aka IBM PC AT, configurations are located here, including:
|
||||
|
||||
* [IBM PC AT with EGA Display](/devices/pc/machine/5170/ega/)
|
||||
* [IBM PC AT with VGA Display](/devices/pc/machine/5170/vga/)
|
||||
10
devices/pc/machine/5170/ega/640kb/rev1/machine.md
Normal file
10
devices/pc/machine/5170/ega/640kb/rev1/machine.md
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
layout: page
|
||||
title: "IBM PC AT (Model 5170, 640Kb) with EGA Display"
|
||||
permalink: /devices/pc/machine/5170/ega/640kb/rev1/
|
||||
machines:
|
||||
- type: pc
|
||||
id: ibm5170
|
||||
---
|
||||
|
||||
{% include machine.html id="ibm5170" %}
|
||||
15
devices/pc/machine/5170/ega/README.md
Normal file
15
devices/pc/machine/5170/ega/README.md
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
layout: page
|
||||
title: "IBM PC AT (Model 5170) with Enhanced Color Display"
|
||||
permalink: /devices/pc/machine/5170/ega/
|
||||
---
|
||||
|
||||
IBM PC AT with Enhanced Color Graphics (EGA) Display
|
||||
---
|
||||
|
||||
All our Enhanced Color Graphics (EGA) configurations of the IBM PC AT (Model 5170) are located here, including:
|
||||
|
||||
* [IBM PC AT (6Mhz, 640Kb) with EGA Display (Debugger)](/devices/pc/machine/5170/ega/640kb/rev1/debugger/)
|
||||
* [IBM PC AT (6Mhz, 1Mb, 20Mb Drive) with EGA Display (Debugger)](/devices/pc/machine/5170/ega/1152kb/rev1/debugger/)
|
||||
* [IBM PC AT (8Mhz, 1Mb, 20Mb Drive) with EGA Display (Debugger)](/devices/pc/machine/5170/ega/1152kb/rev3/debugger/)
|
||||
* [IBM PC AT (8Mhz, 2Mb, 20Mb Drive) with EGA Display](/devices/pc/machine/5170/ega/2048kb/rev3/) ([Debugger](/devices/pc/machine/5170/ega/2048kb/rev3/debugger/))
|
||||
12
devices/pc/machine/5170/vga/README.md
Normal file
12
devices/pc/machine/5170/vga/README.md
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
layout: page
|
||||
title: "IBM PC AT (Model 5170) with VGA Display"
|
||||
permalink: /devices/pc/machine/5170/vga/
|
||||
---
|
||||
|
||||
IBM PC AT with VGA Display
|
||||
---
|
||||
|
||||
All our VGA configurations of the IBM PC AT (Model 5170) are located here, including:
|
||||
|
||||
* [IBM PC AT (8Mhz, 2Mb, 20Mb Drive) with VGA Display](/devices/pc/machine/5170/vga/2048kb/) ([Debugger](/devices/pc/machine/5170/vga/2048kb/debugger/))
|
||||
|
|
@ -21,9 +21,8 @@ along with these IBM PC-compatibles:
|
|||
|
||||
* [COMPAQ](/devices/pc/machine/compaq/) (eg, [DeskPro 386](/devices/pc/machine/compaq/deskpro386/))
|
||||
|
||||
We also support a few non-IBM [Devices](/devices/):
|
||||
|
||||
* [6502 Challenger 1P](/devices/c1p/machine/)
|
||||
Learn more about the [Devices](/devices/) used to build all our machines, such as the 6502-based
|
||||
[Ohio Scientific Challenger 1P](/devices/c1p/machine/).
|
||||
|
||||
### Ready-To-Run App Demos
|
||||
|
||||
|
|
@ -37,7 +36,7 @@ Machines from our [IBM PC Application Archive](/apps/pc/):
|
|||
|
||||
### Ready-To-Boot Disk Demos
|
||||
|
||||
And here are some machines from our [IBM PC Disk Archive](/disks/pc/):
|
||||
And here are some machines from our [IBM PC Disk Library](/disks/pc/):
|
||||
|
||||
* [CP/M-86 v1.1B](/disks/pc/cpm/1.1b/)
|
||||
* [PC-DOS 1.00](/disks/pc/dos/ibm/1.00/)
|
||||
|
|
@ -58,9 +57,11 @@ a predefined state, which automatically restores the machine and the specified a
|
|||
state, while others include a hard disk with preinstalled software.
|
||||
|
||||
However, most simply boot an early version of DOS, and the hard disk, if any, will generally be unformatted.
|
||||
From there, you can load another disk image
|
||||
From there, you can other disks and install other software.
|
||||
|
||||
### [Model 5150 Machine Configurations](/devices/pc/machine/5150/)
|
||||
### Model 5150 Machine Configurations
|
||||
|
||||
[Model 5150 Machines](/devices/pc/machine/5150/) include:
|
||||
|
||||
* [IBM PC (64Kb) with Monochrome Display](/devices/pc/machine/5150/mda/64kb/) ([Debugger](/devices/pc/machine/5150/mda/64kb/debugger/))
|
||||
* [IBM PC (64Kb) with Monochrome Display and Soft Keyboard (Debugger)](/devices/pc/machine/5150/mda/64kb/softkbd/)
|
||||
|
|
@ -69,7 +70,9 @@ From there, you can load another disk image
|
|||
* [IBM PC (384Kb) with Color Display and Soft Keyboard (Debugger)](/devices/pc/machine/5150/cga/384kb/softkbd/)
|
||||
* [IBM PC (64Kb) with Dual Displays (Monochrome and Color)](/devices/pc/machine/5150/dual/64kb/)
|
||||
|
||||
### [Model 5160 Machine Configurations](/devices/pc/machine/5160/)
|
||||
### Model 5160 Machine Configurations
|
||||
|
||||
[Model 5160 Machines](/devices/pc/machine/5160/) include:
|
||||
|
||||
* [IBM PC XT (64Kb, 10Mb Drive) with Monochrome Display](/devices/pc/machine/5160/mda/64kb/softkbd/)
|
||||
* [IBM PC XT (256Kb, 10Mb Drive) with Monochrome Display](/devices/pc/machine/5160/mda/256kb/) ([Debugger](/devices/pc/machine/5160/mda/256kb/debugger/))
|
||||
|
|
@ -87,6 +90,8 @@ From there, you can load another disk image
|
|||
|
||||
### Model 5170 Machine Configurations
|
||||
|
||||
[Model 5170 Machines](/devices/pc/machine/5170/) include:
|
||||
|
||||
* [IBM PC AT (6Mhz, 640Kb) with EGA Display (Debugger)](/devices/pc/machine/5170/ega/640kb/rev1/debugger/)
|
||||
* [IBM PC AT (6Mhz, 1Mb, 20Mb Drive) with EGA Display (Debugger)](/devices/pc/machine/5170/ega/1152kb/rev1/debugger/)
|
||||
* [IBM PC AT (8Mhz, 1Mb, 20Mb Drive) with EGA Display (Debugger)](/devices/pc/machine/5170/ega/1152kb/rev3/debugger/)
|
||||
|
|
|
|||
|
|
@ -7,6 +7,13 @@ permalink: /devices/pc/panel/
|
|||
IBM PC Control Panels
|
||||
---
|
||||
|
||||
[Control Panels](/docs/pcjs/panel/) are XML files that define a particular layout for controls provided by the
|
||||
[Computer](/docs/pcjs/computer/), [CPU](/docs/pcjs/cpu/), [Keyboard](/docs/pcjs/keyboard/)
|
||||
and [Debugger](/docs/pcjs/debugger/) components.
|
||||
[Control Panels](/docs/pcjs/panel/) are XML files that define layouts for Debugger-related controls.
|
||||
|
||||
The following IBM PC control panel configuration files are currently available:
|
||||
|
||||
- [default.xml](default.xml) (a simple layout for 8086/8088-based machines)
|
||||
- [wide.xml](wide.xml) (a wide version of default.xml)
|
||||
- [wide386.xml](wide386.xml) (a wide version of default.xml for 80386-based machines)
|
||||
|
||||
The visual controls described by these layouts are provided by the [Computer](/docs/pcjs/computer/),
|
||||
[CPU](/docs/pcjs/cpu/), [Keyboard](/docs/pcjs/keyboard/), and [Debugger](/docs/pcjs/debugger/) components.
|
||||
|
|
|
|||
|
|
@ -6,16 +6,22 @@ redirect_from:
|
|||
- /devices/pc/bios/
|
||||
---
|
||||
|
||||
BASIC ROMs
|
||||
IBM PC ROMs
|
||||
---
|
||||
|
||||
ROMs are added to machines by including one *[ROM](/docs/pcjs/rom/)* component in the machine XML configuration file
|
||||
for each ROM in the machine; eg:
|
||||
|
||||
<rom id="romBIOS" addr="0xf0000" size="0x10000" alias="0xff0000" file="/devices/pc/rom/5170/bios/1984-01-10/ATBIOS-REV1.json"/>
|
||||
|
||||
### 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)
|
||||
|
||||
BIOS ROMs
|
||||
---
|
||||
### BIOS ROMs
|
||||
|
||||
The project contains the following IBM PC BIOS ROMs:
|
||||
|
||||
|
|
@ -25,7 +31,14 @@ The project contains the following IBM PC BIOS ROMs:
|
|||
* [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:
|
||||
The project also contains BIOS ROMs, along with more detailed information, for the following machines:
|
||||
|
||||
* [IBM PC AT Model 5170](5170/bios/)
|
||||
* [COMPAQ Portable and DeskPro Machines](compaq/bios/)
|
||||
|
||||
### Other ROMs
|
||||
|
||||
The project contains other ROMs, including IBM [EGA](/devices/pc/video/ibm/ega/#ibm-ega-rom) and
|
||||
[VGA](/devices/pc/video/ibm/vga/#ibm-vga-rom) ROMs, the Xebec Hard Disk Controller ROM used in
|
||||
the PC XT, etc, but those ROMs seemed more appropriately filed in their respective component folders;
|
||||
eg, [IBM PC Video Devices](/devices/pc/video/).
|
||||
|
|
|
|||
|
|
@ -1,18 +1,21 @@
|
|||
---
|
||||
layout: page
|
||||
title: IBM PC Video Support
|
||||
title: IBM PC Video Devices
|
||||
permalink: /devices/pc/video/
|
||||
---
|
||||
|
||||
IBM PC Video Support
|
||||
IBM PC Video Devices
|
||||
---
|
||||
|
||||
Video devices are added to machines by including a *[Video](/docs/pcjs/video/)* component in the machine XML
|
||||
configuration file. See one of the following video adapters for examples of how to do this.
|
||||
|
||||
PCjs supports the following IBM PC video adapters:
|
||||
|
||||
* MDA (Monochrome Display Adapter)
|
||||
* CGA (Color Graphics Adapter)
|
||||
* EGA (Enhanced Graphics Adapter)
|
||||
* [VGA](ibm/vga/) (Video Graphics Adapter)
|
||||
* Monochrome Display Adapter (MDA)
|
||||
* Color Graphics Adapter (CGA)
|
||||
* [Enhanced Graphics Adapter (EGA)](ibm/ega/)
|
||||
* [Video Graphics Array (VGA)](ibm/vga/)
|
||||
|
||||
More detailed information is available for the following IBM-compatible video adapters:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,51 @@
|
|||
---
|
||||
layout: page
|
||||
title: IBM EGA ROM
|
||||
title: "IBM Enhanced Graphics Adapter (EGA)"
|
||||
permalink: /devices/pc/video/ibm/ega/
|
||||
---
|
||||
|
||||
IBM EGA ROM
|
||||
IBM Enhanced Graphics Adapter (EGA)
|
||||
---
|
||||
|
||||
### IBM EGA Configurations
|
||||
|
||||
The easiest way for a machine to include an EGA *[Video](/docs/pcjs/video/)* component in its XML configuration file
|
||||
is to reference one of the project's predefined EGA configuration files, using the *ref* attribute; eg:
|
||||
|
||||
<video ref="/devices/pc/video/ibm/ega/1984-09-13/64kb.xml"/>
|
||||
|
||||
The referenced XML file automatically defines visual elements (eg, dimensions of the display window and other
|
||||
visual indicators), display behaviors (eg, touchscreen support, mouse pointer locking), the ROM to load (and where
|
||||
to load it), and other video card hardware features (eg, *memory* and *switches*).
|
||||
|
||||
Here's what *64kb.xml* currently looks like:
|
||||
|
||||
<video id="videoEGA" model="ega" memory="0x10000" screenwidth="640" screenheight="350" touchscreen="mouse" pos="center" padding="8px">
|
||||
<menu>
|
||||
<title>IBM Enhanced Color Display</title>
|
||||
<control type="container" pos="right">
|
||||
<control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
|
||||
<control type="led" label="Num" binding="num-lock" padleft="8px"/>
|
||||
<control type="led" label="Scroll" binding="scroll-lock" padleft="8px"/>
|
||||
</control>
|
||||
</menu>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.json" notify="videoEGA"/>
|
||||
</video>
|
||||
|
||||
The following IBM EGA configuration files are currently available:
|
||||
|
||||
- [64kb.xml](1984-09-13/64kb.xml)
|
||||
- [128kb-autolock640.xml](1984-09-13/128kb-autolock640.xml)
|
||||
- [128kb-autolockfs.xml](1984-09-13/128kb-autolockfs.xml)
|
||||
- [128kb-lockfs.xml](1984-09-13/128kb-lockfs.xml)
|
||||
- [256kb-autolock640.xml](1984-09-13/256kb-autolock640.xml)
|
||||
- [256kb-autolockfs.xml](1984-09-13/256kb-autolockfs.xml)
|
||||
- [256kb-lockfs.xml](1984-09-13/256kb-lockfs.xml)
|
||||
|
||||
### IBM EGA ROM
|
||||
|
||||
We have only one IBM EGA ROM revision, dated September 13, 1984.
|
||||
|
||||
To (re)build the JSON-encoded IBM EGA ROM with symbols, run the following command:
|
||||
|
||||
filedump --file=archive/ibm-ega.rom --format=bytes --decimal
|
||||
|
|
@ -15,9 +54,9 @@ The symbol information in the MAP file will be automatically converted and appen
|
|||
|
||||
The PCjs server's Dump API can be used as well:
|
||||
|
||||
http://www.pcjs.org/api/v1/dump?file=http://archive.pcjs.org/devices/pc/video/ibm/ega/ibm-ega.rom&format=bytes&decimal=true
|
||||
http://www.pcjs.org/api/v1/dump?file=http://archive.pcjs.org/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.rom&format=bytes&decimal=true
|
||||
|
||||
### Font Information
|
||||
### IBM EGA Font Information
|
||||
|
||||
As noted in [Video.onROMLoad()](/modules/pcjs/lib/video.js), the Video component needs to know where the card's
|
||||
font data is located:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
;
|
||||
|
|
@ -7,4 +7,51 @@ permalink: /devices/pc/video/ibm/vga/
|
|||
IBM Video Graphics Array (VGA)
|
||||
---
|
||||
|
||||
The disassembled contents of the ROM from the IBM's PS/2 Display Adapter is available [here](ibm-vga.nasm).
|
||||
### IBM VGA Configurations
|
||||
|
||||
The easiest way for a machine to include an VGA *[Video](/docs/pcjs/video/)* component in its XML configuration file
|
||||
is to reference one of the project's VGA configuration files, using the *ref* attribute; eg:
|
||||
|
||||
<video ref="/devices/pc/video/ibm/vga/1986-10-27/256kb-autolockfs.xml"/>
|
||||
|
||||
The referenced XML file automatically defines visual elements (eg, dimensions of the display window and other
|
||||
visual indicators), display behaviors (eg, touchscreen support, mouse pointer locking), the ROM to load (and where
|
||||
to load it), and other video card hardware features (eg, *memory* and *switches*).
|
||||
|
||||
Here's what *256kb-autolockfs.xml* currently looks like:
|
||||
|
||||
<video id="videoVGA" model="vga" screenwidth="1280" screenheight="960" scale="true" touchscreen="mouse" autolock="true" pos="center" padding="8px">
|
||||
<menu>
|
||||
<title>IBM VGA Color Display</title>
|
||||
<control type="container" pos="right">
|
||||
<control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
|
||||
<control type="led" label="Num" binding="num-lock" padleft="8px"/>
|
||||
<control type="led" label="Scroll" binding="scroll-lock" padleft="8px"/>
|
||||
<control type="button" binding="fullScreen" padleft="8px">Full Screen</control>
|
||||
</control>
|
||||
</menu>
|
||||
<rom id="romVGA" addr="0xc0000" size="0x6000" file="/devices/pc/video/ibm/vga/1986-10-27/ibm-vga.json" notify="videoVGA[0x378d,0x3f8d]"/>
|
||||
</video>
|
||||
|
||||
The following IBM VGA configuration files are currently available:
|
||||
|
||||
- [256kb-autolockfs.xml](1986-10-27/256kb-autolockfs.xml)
|
||||
- [256kb-lockfs.xml](1986-10-27/256kb-lockfs.xml)
|
||||
|
||||
### IBM VGA ROM
|
||||
|
||||
We have only one IBM VGA ROM revision, dated October 27, 1986, from an IBM PS/2 Display Adapter. Which, BTW,
|
||||
has to be one of the *most* confusing product names ever, since the adapter was an 8-bit card designed for ISA
|
||||
machines, *not* PS/2 machines.
|
||||
|
||||
To (re)build the JSON-encoded IBM VGA ROM with symbols, run the following command:
|
||||
|
||||
filedump --file=archive/ibm-vga.rom --format=bytes --decimal
|
||||
|
||||
The symbol information in the MAP file will be automatically converted and appended to the dump of the ROM file.
|
||||
|
||||
The PCjs server's Dump API can be used as well:
|
||||
|
||||
http://www.pcjs.org/api/v1/dump?file=http://archive.pcjs.org/devices/pc/video/ibm/vga/1986-10-27/ibm-vga.rom&format=bytes&decimal=true
|
||||
|
||||
The disassembled contents of the 1986-10-27 ROM from the IBM PS/2 Display Adapter is available [here](1986-10-27/ibm-vga.asm).
|
||||
|
|
|
|||
Loading…
Reference in a new issue