Documentation updates

This commit is contained in:
Jeff Parsons 2016-03-13 17:44:59 -07:00
commit 06094fcd48
20 changed files with 298 additions and 122 deletions

View file

@ -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.

View file

@ -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)

View 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/)

View 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" %}

View 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/))

View 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/))

View file

@ -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/)

View file

@ -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.

View file

@ -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/).

View file

@ -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:

View file

@ -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:

View file

@ -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
;

View file

@ -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).