diff --git a/_config.yml b/_config.yml
index 0fb610676..e96169cab 100644
--- a/_config.yml
+++ b/_config.yml
@@ -3,7 +3,7 @@ title: "PCjs: The Original IBM PC in a Browser"
email: Jeff@pcjs.org
description: > # this means to ignore newlines until "baseurl:"
PCjs: The Original IBM PC in your web browser, plus other retro-computing simulations and resources.
-baseurl: "" # "/pcjs" when using http://jeffpar.github.io/pcjs, or "" when using http://pcjs.net
+baseurl: "" # "/pcjs" when using http://jeffpar.github.io or "" when using http://pcjs.net
url: "http://pcjs.net" # "http://jeffpar.github.io" or "http://pcjs.net"
twitter_username: jeffpar
github_username: jeffpar
diff --git a/_posts/2014-06-26-more-under-the-hood-changes.md b/_posts/2014-06-26-more-under-the-hood-changes.md
index 98cb8c30b..09fd6deae 100644
--- a/_posts/2014-06-26-more-under-the-hood-changes.md
+++ b/_posts/2014-06-26-more-under-the-hood-changes.md
@@ -10,9 +10,9 @@ v1.13.7 of PCjs contains a few minor improvements, mostly in terms of rendering
efficiently. The rest of the changes to the website involved beefing up support for both "software manifests"
and "document manifests."
-To that end, there's a new [/pubs/]() directory for old documents, and [/disks/pc/]() contains more disk images,
-with more on the way. I have a TON of old diskette images, and it has taken more time to organize them and create
-manifests than I would like.
+To that end, there's a new [/pubs/](/pubs/) directory for old documents, and [/disks/pc/](/disks/pc/) contains
+more disk images, with more on the way. I have a TON of old diskette images, and it has taken more time to organize
+them and create manifests than I would like.
*[@jeffpar](http://twitter.com/jeffpar)*
*June 26, 2014*
diff --git a/apps/README.md b/apps/README.md
index 28d1367bc..21a6358f3 100644
--- a/apps/README.md
+++ b/apps/README.md
@@ -1,3 +1,9 @@
+---
+layout: page
+title: Application Archives
+permalink: /apps/
+---
+
Application Archives
---
Browse classic [IBM PC](pc/) and [Challenger 1P](c1p/) software that you can run with [PCjs](/docs/about/pcjs/)
diff --git a/apps/c1p/README.md b/apps/c1p/README.md
index e4ea1aa96..fbfc888e5 100644
--- a/apps/c1p/README.md
+++ b/apps/c1p/README.md
@@ -1,8 +1,16 @@
+---
+layout: page
+title: Challenger 1P Applications
+permalink: /apps/c1p/
+---
+
Challenger 1P Applications
---
+See [GitHub](https://github.com/jeffpar/pcjs/tree/gh-pages/apps/c1p) for program listings and configuration files.
+
The C1P serial port has no configurable hardware features. However, there is a "demo" property that can
be set, causing the machine to load some built-in demonstration code via the serial port when it starts up.
-The purpose of these configuration files is to create UI controls that allow you to choose from a set of programs
+The purpose of the configuration files is to create UI controls that allow you to choose from a set of programs
(eg, BASIC programs, 6502 machine code files) and send them to the C1P through the serial port.
diff --git a/apps/pc/1981/visicalc/README.md b/apps/pc/1981/visicalc/README.md
index 281fdee00..f7faa84e0 100644
--- a/apps/pc/1981/visicalc/README.md
+++ b/apps/pc/1981/visicalc/README.md
@@ -1,3 +1,19 @@
+---
+layout: page
+title: "VisiCalc (1981)"
+permalink: /apps/pc/1981/visicalc/
+machines:
+ - type: pc
+ id: ibm5150
+ config: /devices/pc/machine/5150/mda/64kb/machine.xml
+ state: /apps/pc/1981/visicalc/state.json
+---
+
+VisiCalc (1981)
+---
+
+{% include machine.html id="ibm5150" %}
+
VisiCalc History
---
See [http://www.bricklin.com/history/vcexecutable.htm](http://www.bricklin.com/history/vcexecutable.htm)
diff --git a/apps/pc/1982/esuite/README.md b/apps/pc/1982/esuite/README.md
new file mode 100644
index 000000000..affd7866a
--- /dev/null
+++ b/apps/pc/1982/esuite/README.md
@@ -0,0 +1,15 @@
+---
+layout: page
+title: "Executive Suite (1982)"
+permalink: /apps/pc/1982/esuite/
+machines:
+ - type: pc
+ id: ibm5160
+ config: /devices/pc/machine/5160/mda/256kb/fake188/machine.xml
+ state: /apps/pc/1982/esuite/state.json
+---
+
+Executive Suite (1982)
+---
+
+{% include machine.html id="ibm5160" %}
diff --git a/apps/pc/1985/rogue/README.md b/apps/pc/1985/rogue/README.md
new file mode 100644
index 000000000..07fe20a92
--- /dev/null
+++ b/apps/pc/1985/rogue/README.md
@@ -0,0 +1,15 @@
+---
+layout: page
+title: "Rogue (1985)"
+permalink: /apps/pc/1985/rogue/
+machines:
+ - type: pc
+ id: ibm5160
+ config: /devices/pc/machine/5160/cga/640kb/machine.xml
+ state: /apps/pc/1985/rogue/state.json
+---
+
+Rogue (1985)
+---
+
+{% include machine.html id="ibm5160" %}
diff --git a/apps/pc/1987/thinktank/README.md b/apps/pc/1987/thinktank/README.md
new file mode 100644
index 000000000..e58839aee
--- /dev/null
+++ b/apps/pc/1987/thinktank/README.md
@@ -0,0 +1,15 @@
+---
+layout: page
+title: "ThinkTank (1987)"
+permalink: /apps/pc/1987/thinktank/
+machines:
+ - type: pc
+ id: ibm5160
+ config: /devices/pc/machine/5160/cga/640kb/machine.xml
+ state: /apps/pc/1987/thinktank/state.json
+---
+
+ThinkTank (1987)
+---
+
+{% include machine.html id="ibm5160" %}
diff --git a/apps/pc/1988/moria/README.md b/apps/pc/1988/moria/README.md
new file mode 100644
index 000000000..6ac01e844
--- /dev/null
+++ b/apps/pc/1988/moria/README.md
@@ -0,0 +1,9 @@
+---
+layout: page
+title: "The Dungeons of Moria (1988)"
+permalink: /apps/pc/1988/moria/
+---
+
+The Dungeons of Moria (1988)
+---
+
diff --git a/apps/pc/1992/moria/README.md b/apps/pc/1992/moria/README.md
new file mode 100644
index 000000000..db3a7f95a
--- /dev/null
+++ b/apps/pc/1992/moria/README.md
@@ -0,0 +1,15 @@
+---
+layout: page
+title: "The Dungeons of Moria (1992)"
+permalink: /apps/pc/1992/moria/
+machines:
+ - type: pc
+ id: ibm5160
+ config: /devices/pc/machine/5160/cga/640kb/machine.xml
+ state: /apps/pc/1992/moria/state.json
+---
+
+The Dungeons of Moria (1992)
+---
+
+{% include machine.html id="ibm5160" %}
diff --git a/apps/pc/README.md b/apps/pc/README.md
index 5d8731fd2..1c3bf01da 100644
--- a/apps/pc/README.md
+++ b/apps/pc/README.md
@@ -1,3 +1,9 @@
+---
+layout: page
+title: IBM PC Application Demos
+permalink: /apps/pc/
+---
+
IBM PC Application Demos
---
@@ -15,7 +21,7 @@ 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/).
-
+{% if page.developer %}
### Developer Notes: How To Produce A Demo
@@ -61,4 +67,5 @@ the <machine> entry in the [Manifest](1981/visicalc/manifest.xml):
It's important to use a state file *only* with the machine configuration it was created with; in this case, we're OK,
because the only difference between the two chosen Model 5150 machines is the addition of the Debugger.
-
+{% endif %}
+
diff --git a/devices/pc/keyboard/README.md b/devices/pc/keyboard/README.md
index 5c4cf6ccd..576002589 100644
--- a/devices/pc/keyboard/README.md
+++ b/devices/pc/keyboard/README.md
@@ -1,10 +1,16 @@
+---
+layout: page
+title: 8042 Keyboard Controller Internals
+permalink: /devices/pc/keyboard/
+---
+
8042 Keyboard Controller Internals
---
The following documents were obtained from [halicery.com](http://halicery.com/):
-- [8042_INTERN.TXT]()
-- [8042_1503033.TXT]()
-- [dasm42.c]()
+- [8042_INTERN.TXT](8042_INTERN.TXT)
+- [8042_1503033.TXT](8042_1503033.TXT)
+- [dasm42.c](dasm42.c)
Additional information (eg, undocumented 8042 commands) is also available from [OS/2 Museum](http://www.os2museum.com/wp/?p=589).
diff --git a/devices/pc/panel/README.md b/devices/pc/panel/README.md
index 305769f51..cf8a1361d 100644
--- a/devices/pc/panel/README.md
+++ b/devices/pc/panel/README.md
@@ -1,6 +1,12 @@
+---
+layout: page
+title: IBM PC Control Panels
+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.
\ No newline at end of file
+and [Debugger](/docs/pcjs/debugger/) components.
diff --git a/disks/README.md b/disks/README.md
index 84667b1ee..adb26e5d8 100644
--- a/disks/README.md
+++ b/disks/README.md
@@ -1,3 +1,9 @@
+---
+layout: page
+title: Disk Archives
+permalink: /disks/
+---
+
Disk Archives
---
Browse [IBM PC](pc/) and [Challenger 1P](c1p/) disk archives.
@@ -10,7 +16,7 @@ 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
with the *format* parameter set to `img` instead of `json`. For example:
- http://www.pcjs.org/api/v1/dump?disk=/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json&format=img
+ http://localhost:8088/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.
diff --git a/disks/pc/README.md b/disks/pc/README.md
index 94eed88c1..a96e94170 100644
--- a/disks/pc/README.md
+++ b/disks/pc/README.md
@@ -1,19 +1,25 @@
+---
+layout: page
+title: IBM PC Disk Archive
+permalink: /disks/pc/
+---
+
IBM PC Disk Archive
---
Below are selected Disk Sets featuring "Ready-to-Boot" machine configurations:
-* [IBM PC (Model 5150), MDA, 64K, CP/M-86](/disks/pc/cpm/)
-* [IBM PC (Model 5150), MDA, 64K, IBM Diagnostics v2.20](/disks/pc/diags/ibm/2.20/)
-* [IBM PC (Model 5150), CGA, 64K, Zork I](/disks/pc/games/infocom/zork1/)
+* [IBM PC (Model 5150), MDA, 64K, CP/M-86](/disks/pc/cpm/)
+* [IBM PC (Model 5150), MDA, 64K, IBM Diagnostics v2.20](/disks/pc/diags/ibm/2.20/)
+* [IBM PC (Model 5150), CGA, 64K, Zork I](/disks/pc/games/infocom/zork1/)
You can browse the rest of the disk archive by type. There is no search capability at this time.
Learn more about
-[Disk Sets](https://github.com/jeffpar/pcjs/tree/master/disks/pc) in the
+[Disk Sets](https://github.com/jeffpar/pcjs/tree/gh-pages/disks/pc) in the
[PCjs Project](https://github.com/jeffpar/pcjs) on [GitHub](https://github.com/).
-
+{% if page.developer %}
### Developer Notes: Disk Sets and Manifests
@@ -84,4 +90,4 @@ or via the PCjs server's DiskDump API:
Learn more about PCjs disk image formats [here](/disks/).
-
+{% endif %}
diff --git a/disks/pc/diags/ibm/2.20/machine.md b/disks/pc/diags/ibm/2.20/machine.md
new file mode 100644
index 000000000..5d66d0d87
--- /dev/null
+++ b/disks/pc/diags/ibm/2.20/machine.md
@@ -0,0 +1,10 @@
+---
+layout: page
+title: "IBM PC (Model 5150) running IBM Advanced Diagnostics 2.20"
+permalink: /disks/pc/diags/ibm/2.20/
+machines:
+ - type: pc-dbg
+ id: ibm5150
+---
+
+{% include machine.html id="ibm5150" %}
diff --git a/disks/pc/tools/microsoft/README.md b/disks/pc/tools/microsoft/README.md
index afc24b340..e87c318f7 100644
--- a/disks/pc/tools/microsoft/README.md
+++ b/disks/pc/tools/microsoft/README.md
@@ -4,29 +4,29 @@ Microsoft Languages and Tools
Browse an assortment of old Microsoft software development tools on the left.
Below are all the "Microsoft Languages NewsLetters" that Microsoft published in
-[PC Tech Journal](../../../../pubs/pc/magazines/pctj/), before they decided to focus exclusively
-on their own publication, [Microsoft Systems Journal](../../../../pubs/pc/magazines/msj/).
+[PC Tech Journal](/pubs/pc/magazines/pctj/), before they decided to focus exclusively
+on their own publication, [Microsoft Systems Journal](/pubs/pc/magazines/msj/).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1986-01/pages/PCTJ-1986-01 30.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1986-02/pages/PCTJ-1986-02 30.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1986-03/pages/PCTJ-1986-03 30.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1986-04/pages/PCTJ-1986-04 34.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1986-05/pages/PCTJ-1986-05 30.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1986-06/pages/PCTJ-1986-06 32.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1986-07/pages/PCTJ-1986-07 30.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1986-08/pages/PCTJ-1986-08 32.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1986-09/pages/PCTJ-1986-09 32.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1986-10/pages/PCTJ-1986-10 34.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1986-11/pages/PCTJ-1986-11 34.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1986-12/pages/PCTJ-1986-12 34.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1987-01/pages/PCTJ-1987-01 39.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1987-02/pages/PCTJ-1987-02 27.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1987-03/pages/PCTJ-1987-03 25.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1987-04/pages/PCTJ-1987-04 25.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1987-05/pages/PCTJ-1987-05 25.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1987-06/pages/PCTJ-1987-06 27.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1987-07/pages/PCTJ-1987-07 43.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1987-08/pages/PCTJ-1987-08 27.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1987-09/pages/PCTJ-1987-09 27.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1987-10/pages/PCTJ-1987-10 21.pdf)
+[
](http://static.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1987-11/pages/PCTJ-1987-11 21.pdf)
diff --git a/disks/pc/tools/microsoft/c/4.00/README.md b/disks/pc/tools/microsoft/c/4.00/README.md
index 57a73c72f..66827312c 100644
--- a/disks/pc/tools/microsoft/c/4.00/README.md
+++ b/disks/pc/tools/microsoft/c/4.00/README.md
@@ -213,6 +213,6 @@ Microsoft C Compiler v4.00
[Manifest](manifest.xml) was updated using:
- find -L static -name "*" -type f -exec node ../../../../../../modules/diskdump/bin/diskdump --format=json --output=. --manifest --disk={} \;
+ find -L static -name "*" -type f -exec node http://static.pcjs.org/../../modules/diskdump/bin/diskdump --format=json --output=. --manifest --disk={} \;
The original diskettes are not part of the repository/website.
diff --git a/modules/c1pjs/templates/components.xsl b/modules/c1pjs/templates/components.xsl
index 93af7ad42..aeec96388 100644
--- a/modules/c1pjs/templates/components.xsl
+++ b/modules/c1pjs/templates/components.xsl
@@ -183,7 +183,7 @@