README updates and a new EGA config

This commit is contained in:
Jeff Parsons 2015-12-22 12:56:25 -08:00
commit b93f6bf630
13 changed files with 143 additions and 19 deletions

View file

@ -19,9 +19,8 @@ Below are selected demos of classic IBM PC applications running on [PCjs](/docs/
Additional software is available in the [IBM PC Disk Archive](/disks/pc/).
Learn more about
[Application Demos](https://github.com/jeffpar/pcjs/tree/master/apps/pc) in the
[PCjs Project](https://github.com/jeffpar/pcjs) on [GitHub](https://github.com/).
More information about creating [Application Demos](https://github.com/jeffpar/pcjs/tree/master/apps/pc)
is available in the [PCjs Project](https://github.com/jeffpar/pcjs) on [GitHub](https://github.com/).
{% if page.developer %}

View file

@ -1,10 +1,15 @@
---
layout: page
title: Machine Configurations
title: Device Configurations
permalink: /devices/
---
Machine Configurations
Device Configurations
---
Browse [IBM PC](/devices/pc/machine/) and [Challenger 1P](/devices/c1p/machine/) machine configurations.
All PCjs machines, including the:
* [IBM PC](pc/machine/)
* [Challenger 1P](c1p/machine/)
are built from collections of [PC Devices](pc/) and [C1P Devices](c1p/).

View file

@ -1,13 +1,12 @@
---
layout: page
title: Challenger 1P Machine Configurations
title: Challenger 1P Device Configurations
permalink: /devices/c1p/
---
Challenger 1P Configurations
Challenger 1P Device Configurations
---
This folder contains Challenger 1P [Machine Configurations](machine/), along with [Control Panels](panel/) and
other components.
This folder contains [Control Panels](panel/) and other components for all [Challenger 1P Machine Configurations](machine/).
[Applications](/apps/c1p/) and [Disk Images](/disks/c1p/) are also available.

View file

@ -1,13 +1,48 @@
---
layout: page
title: PC Machine Configurations
title: IBM PC Device Configurations
permalink: /devices/pc/
---
PC Machine Configurations
IBM PC Device Configurations
---
This folder contains IBM PC [Machine Configurations](machine/), along with [Control Panels](/devices/pc/panel/),
[Keyboard Layouts](/devices/pc/keyboard/) and other components.
IBM PC [Machine Configurations](machine/) are built from a collection of devices, including:
[Application Demos](/apps/pc/) and [Disk Archives](/disks/pc/) are also available.
* CPU
* RAM
* ROMs (eg, [BASIC](basic/), [BIOS](bios/))
* [Keyboards](keyboard/)
* [Video Adapters](video/)
* Floppy Disk Controllers
* Hard Disk (Fixed Disk) Controllers
* [Control Panels](panel/)
Each of those devices can be configured in multiple ways, and also some support external UI controls.
For example, the IBM PC Keyboard component supports different keyboard models (eg, 83-key, 84-key, 101-key),
and each of those models can also be configured to have dedicated buttons for selected key combinations,
or even entire keyboard layouts.
Complete machine configurations are constructed from those devices. A machine configuration is a single XML file
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:
<machine id="ibm5150" class="pc" border="1" pos="center" background="#FAEBD7">
<name pos="center">IBM PC (Model 5150) with Monochrome Display</name>
<computer id="pc-mda-64k" name="IBM PC" resume="1"/>
<ram id="ramLow" addr="0x00000"/>
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.00.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5150/1981-04-24.json"/>
<video ref="/devices/pc/video/ibm/mda/ibm-mda.xml"/>
<cpu id="cpu8088" model="8088" autostart="true" padleft="8px">
<control type="button" binding="run">Run</control>
<control type="button" binding="reset">Reset</control>
</cpu>
<keyboard ref="/devices/pc/keyboard/keyboard-minimal.xml"/>
<fdc ref="/disks/pc/samples.xml" pos="right"/>
<chipset id="chipset" model="5150" sw1="01000001" sw2="11110000"/>
</machine>

View file

@ -0,0 +1,21 @@
---
layout: page
title: IBM PC BASIC ROMs
permalink: /devices/pc/basic/
---
BASIC ROMs
---
The project contains the following BASIC ROMs:
* [BASIC 1.00](ibm-basic-1.00.json)
* [BASIC 1.10](ibm-basic-1.10.json)
These built-in versions of BASIC were also referred to as *Cassette BASIC*, because no disk drive was required.
Only the original IBM PC (Model 5150) actually provided a cassette interface, but IBM continued to use that
name to describe the built-in BASIC at least up through the IBM PC AT (Model 5170).
Here's an [IBM PC Machine](/devices/pc/machine/) XML excerpt that shows how to include a BASIC ROM:
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>

21
devices/pc/bios/README.md Normal file
View file

@ -0,0 +1,21 @@
---
layout: page
title: IBM PC BIOS ROMs
permalink: /devices/pc/bios/
---
BIOS ROMs
---
The project contains the following IBM PC BIOS ROMs:
* [Model 5150: Apr 24, 1981](5150/1981-04-24.json)
* [Model 5150: Oct 19, 1981](5150/1981-10-19.json)
* [Model 5150: Oct 27, 1982](5150/1982-10-27.json)
* [Model 5160: Nov 08, 1982](5160/1982-11-08.json)
* [Model 5160: May 09, 1986](5160/1986-05-09.json)
As well as BIOS ROMs, with more detailed information, for the following machines:
* [Model 5170](5170/)
* [Compaq DeskPro 386](compaq/deskpro386/)

View file

@ -19,7 +19,7 @@ along with these IBM PC-compatibles:
* [Compaq DeskPro 386](compaq/deskpro386/)
Configurations for the [Challenger 1P](/devices/c1p/machine/) and other non-IBM machines are also [available](/devices/).
Browse the [Devices](/devices/) used by all PCjs machines, including the 6502-based [Challenger 1P](/devices/c1p/machine/).
---

View file

@ -0,0 +1,21 @@
---
layout: page
title: IBM PC Video Support
permalink: /devices/pc/video/
---
IBM PC Video Support
---
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)
More detailed information is available for the following IBM-compatible video adapters:
* [Compaq EGA](/devices/pc/video/compaq/ega/)
* [Compaq VGA](/devices/pc/video/compaq/vga/)
* [Paradise VGA](/devices/pc/video/paradise/vga/)

View file

@ -60,7 +60,7 @@ For a more human-readable dump, use the `--comments` option:
And for those who want a binary file, the FileDump API can be used to recreate binary data from JSON data:
> [http://www.pcjs.org/api/v1/dump?file=http://www.pcjs.org/devices/pc/video/compaq/vga/109360-001/1988-05-18.json&format=rom](http://www.pcjs.org/api/v1/dump?file=http://www.pcjs.org/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](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:

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" touchscreen="mouse" pos="center" padding="8px">
<menu>
<title>Enhanced Color Display</title>
<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="lockPointer" padleft="8px">Lock Pointer</control>
<control type="button" binding="fullScreen" padleft="8px">Full Screen</control>
</control>
</menu>
</video>

View file

@ -0,0 +1,10 @@
---
layout: page
title: "IBM Video Graphics Array (VGA)"
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).

View file

@ -23,7 +23,7 @@ For a more human-readable dump, use the `--comments` option:
And for those who want a binary file, the FileDump API can be used to recreate binary data from JSON data:
> [http://www.pcjs.org/api/v1/dump?file=http://www.pcjs.org/devices/pc/video/paradise/vga/1988-05-23.json&format=rom](http://www.pcjs.org/api/v1/dump?file=http://www.pcjs.org/devices/pc/video/paradise/vga/1988-05-23.json&format=rom)
> [http://localhost:8088/api/v1/dump?file=/devices/pc/video/paradise/vga/1988-05-23.json&format=rom](http://localhost:8088/api/v1/dump?file=/devices/pc/video/paradise/vga/1988-05-23.json&format=rom)
The first 128 bytes of the ROM BIOS contain:

View file

@ -8,7 +8,7 @@
<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="romBIOS" addr="0xf0000" size="0x10000" alias="0xff0000" file="/devices/pc/bios/5170/1985-11-15.json"/>
<video ref="/devices/pc/video/ibm/ega/ibm-ega-128kb-autolockfs.xml"/>
<video ref="/devices/pc/video/ibm/ega/ibm-ega-128kb-lockfs.xml"/>
<keyboard ref="/devices/pc/keyboard/keyboard-minimal-functions.xml"/>
<debugger id="debugger" messages="fault" commands=""/>
<panel ref="/devices/pc/panel/wide.xml"/>