diff --git a/apps/pc/README.md b/apps/pc/README.md
index b94e7a4a1..da00d01c0 100644
--- a/apps/pc/README.md
+++ b/apps/pc/README.md
@@ -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 %}
diff --git a/devices/README.md b/devices/README.md
index 862789700..dce9ef2f0 100644
--- a/devices/README.md
+++ b/devices/README.md
@@ -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/).
diff --git a/devices/c1p/README.md b/devices/c1p/README.md
index aa103d4f5..7ddc4e791 100644
--- a/devices/c1p/README.md
+++ b/devices/c1p/README.md
@@ -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.
diff --git a/devices/pc/README.md b/devices/pc/README.md
index 0fcff73c9..7dae979d2 100644
--- a/devices/pc/README.md
+++ b/devices/pc/README.md
@@ -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:
+
+
+ IBM PC (Model 5150) with Monochrome Display
+
+
+
+
+
+
+ Run
+ Reset
+
+
+
+
+
diff --git a/devices/pc/basic/README.md b/devices/pc/basic/README.md
new file mode 100644
index 000000000..ad3c317ab
--- /dev/null
+++ b/devices/pc/basic/README.md
@@ -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:
+
+
diff --git a/devices/pc/bios/README.md b/devices/pc/bios/README.md
new file mode 100644
index 000000000..4e0470594
--- /dev/null
+++ b/devices/pc/bios/README.md
@@ -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/)
diff --git a/devices/pc/machine/README.md b/devices/pc/machine/README.md
index dad7965b1..1ddaed556 100644
--- a/devices/pc/machine/README.md
+++ b/devices/pc/machine/README.md
@@ -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/).
---
diff --git a/devices/pc/video/README.md b/devices/pc/video/README.md
new file mode 100644
index 000000000..99e8ba46f
--- /dev/null
+++ b/devices/pc/video/README.md
@@ -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/)
diff --git a/devices/pc/video/compaq/vga/README.md b/devices/pc/video/compaq/vga/README.md
index 703912506..e2d455516 100644
--- a/devices/pc/video/compaq/vga/README.md
+++ b/devices/pc/video/compaq/vga/README.md
@@ -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:
diff --git a/devices/pc/video/ibm/ega/ibm-ega-128kb-lockfs.xml b/devices/pc/video/ibm/ega/ibm-ega-128kb-lockfs.xml
new file mode 100644
index 000000000..69eb493eb
--- /dev/null
+++ b/devices/pc/video/ibm/ega/ibm-ega-128kb-lockfs.xml
@@ -0,0 +1,13 @@
+
+
diff --git a/devices/pc/video/ibm/vga/README.md b/devices/pc/video/ibm/vga/README.md
new file mode 100644
index 000000000..d4c2968ce
--- /dev/null
+++ b/devices/pc/video/ibm/vga/README.md
@@ -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).
diff --git a/devices/pc/video/paradise/vga/README.md b/devices/pc/video/paradise/vga/README.md
index 9a4e7414d..c6fb47608 100644
--- a/devices/pc/video/paradise/vga/README.md
+++ b/devices/pc/video/paradise/vga/README.md
@@ -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:
diff --git a/disks/pc/os2/ibm/1.0/machine.xml b/disks/pc/os2/ibm/1.0/machine.xml
index a6516a119..9f58218b7 100644
--- a/disks/pc/os2/ibm/1.0/machine.xml
+++ b/disks/pc/os2/ibm/1.0/machine.xml
@@ -8,7 +8,7 @@
-
+