diff --git a/_includes/machine-engines.html b/_includes/machine-engines.html
index 50c07d087..025eb04ee 100644
--- a/_includes/machine-engines.html
+++ b/_includes/machine-engines.html
@@ -15,7 +15,7 @@
{% else %}
{% assign machine_state = machine.state %}
{% endunless %}
- {% if site.pcjs_compiled %}
+ {% if site.pcjs_compiled == true and machine.uncompiled != true %}
{% capture machine_script %}{% endcapture %}
{% unless machine_scripts contains machine_script %}
{{ machine_script }}
diff --git a/_includes/machine-styles.html b/_includes/machine-styles.html
index f9b535712..0a5c86c16 100644
--- a/_includes/machine-styles.html
+++ b/_includes/machine-styles.html
@@ -1,5 +1,5 @@
{% for machine in page.machines %}
- {% unless site.pcjs_compiled %}
+ {% unless site.pcjs_compiled == true and machine.uncompiled != true %}
{% capture machine_style %}{{ site.baseurl }}/modules/{{ machine.type | remove:'-dbg' }}js/templates/components.css{% endcapture %}
{% else %}
{% capture machine_style %}{{ site.baseurl }}/versions/{{ machine.type | remove:'-dbg' }}js/{{ site.pcjs_version }}/components.css{% endcapture %}
diff --git a/blog/2013/11/README.md b/_posts/2013-11-20-a-blog-thats-not-a-blog.md
similarity index 96%
rename from blog/2013/11/README.md
rename to _posts/2013-11-20-a-blog-thats-not-a-blog.md
index 1ed6914d2..c9ecd7ee3 100644
--- a/blog/2013/11/README.md
+++ b/_posts/2013-11-20-a-blog-thats-not-a-blog.md
@@ -1,5 +1,11 @@
-A Blog That's Not A Blog
---
+layout: post
+title: "A Blog That's Not A Blog"
+date: 2013-11-20 11:00:00
+category: News
+permalink: /blog/2013/11/20/
+---
+
As you may have noticed (or not), the [JSMachines](http://jsmachines.net/) website had a very modest makeover
recently.
diff --git a/blog/2014/01/README.md b/_posts/2014-01-01-new-year-new-directions.md
similarity index 79%
rename from blog/2014/01/README.md
rename to _posts/2014-01-01-new-year-new-directions.md
index 0b2ec7c08..0758c2455 100644
--- a/blog/2014/01/README.md
+++ b/_posts/2014-01-01-new-year-new-directions.md
@@ -1,6 +1,12 @@
-New Year, New Directions
---
-Initial goals for 2014 include:
+layout: post
+title: New Year, New Directions
+date: 2014-01-01 11:00:00
+category: Goals
+permalink: /blog/2014/01/01/
+---
+
+Initial goals for 2014 include
- Setting up a new web server running node.js, using either AWS, Google Compute Engine or Windows Azure;
- Porting this project to work with node.js, which includes rewriting all the PHP code as server-side JavaScript;
diff --git a/blog/2014/03/30/README.md b/_posts/2014-03-30-running-on-azure.md
similarity index 94%
rename from blog/2014/03/30/README.md
rename to _posts/2014-03-30-running-on-azure.md
index 34633633f..de40a4958 100644
--- a/blog/2014/03/30/README.md
+++ b/_posts/2014-03-30-running-on-azure.md
@@ -1,5 +1,11 @@
-Running on Azure
---
+layout: post
+title: Running on Azure
+date: 2014-03-30 11:00:00
+category: Web Servers
+permalink: /blog/2014/03/30/
+---
+
Publishing a Node-based site to [Azure](http://azure.com) was painless, thanks to their friendly web portal and
GitHub integration. Getting a fully operational site, however, took a bit more time.
@@ -42,7 +48,7 @@ would happily report:
but it would NEVER display anything but deployment information. Instead, I had to browse the log files using Azure's
"FTP DIAGNOSTIC LOGS" link on the web portal -- which presents the logs as one big, ugly, fragmented mess:
-
+
Sigh. But at least the site is up and fully operational now.
diff --git a/blog/2014/03/31/README.md b/_posts/2014-03-31-browser-compatibility-woes.md
similarity index 91%
rename from blog/2014/03/31/README.md
rename to _posts/2014-03-31-browser-compatibility-woes.md
index cb3f88690..2f29a656e 100644
--- a/blog/2014/03/31/README.md
+++ b/_posts/2014-03-31-browser-compatibility-woes.md
@@ -1,5 +1,11 @@
-Browser Compatibility Woes
---
+layout: post
+title: Browser Compatibility Woes
+date: 2014-03-31 11:00:00
+category: JavaScript
+permalink: /blog/2014/03/31/
+---
+
While JavaScript has been doing a good job of delivering on the old "write once, run everywhere" promise that its
[unrelated namesake](http://www.java.com) coined, the "hook once, deliver everywhere" promise seems less fulfilled.
@@ -18,7 +24,7 @@ I've done what testing I can with the Android SDK and the "Android Virtual Devic
looks fine -- you click/tap on the PC's screen, the soft keyboard pops up, and typing works. So I guess Silk is just
an outlier. I'm not sure what I'll do about it yet (or even what I can do).
-
+
---
@@ -38,4 +44,4 @@ If you're having a problem (or trouble with a device) that I've not already ment
Thanks.
*[@jeffpar](http://twitter.com/jeffpar)*
-*March 31, 2014*
\ No newline at end of file
+*March 31, 2014*
diff --git a/blog/2014/04/01/README.md b/_posts/2014-04-01-the-latest-in-emulator-technology.md
similarity index 84%
rename from blog/2014/04/01/README.md
rename to _posts/2014-04-01-the-latest-in-emulator-technology.md
index 75ac0b78f..a33a6b948 100644
--- a/blog/2014/04/01/README.md
+++ b/_posts/2014-04-01-the-latest-in-emulator-technology.md
@@ -1,5 +1,11 @@
-The Latest in Emulator Technology
---
+layout: post
+title: The Latest in Emulator Technology
+date: 2014-04-01 11:00:00
+category: JavaScript
+permalink: /blog/2014/04/01/
+---
+
Announcing **InternetJS: The Internet Emulator**, the world's smallest JavaScript application capable of emulating the entire Internet.
And like all PCjs applications, there's nothing to install. It runs safely and securely from any web browser.
@@ -14,4 +20,4 @@ Disclaimer: InternetJS may not be suitable for everyone. Ask your doctor if Int
- Inability to forget things you never wanted to remember
*[@jeffpar](http://twitter.com/jeffpar)*
-*April 1, 2014*
\ No newline at end of file
+*April 1, 2014*
diff --git a/blog/2014/04/12/README.md b/_posts/2014-04-12-whats-new-in-1.13.0.md
similarity index 90%
rename from blog/2014/04/12/README.md
rename to _posts/2014-04-12-whats-new-in-1.13.0.md
index cfab94aae..85c20c901 100644
--- a/blog/2014/04/12/README.md
+++ b/_posts/2014-04-12-whats-new-in-1.13.0.md
@@ -1,5 +1,11 @@
-What's New in 1.13.0
---
+layout: post
+title: "What's New in 1.13.0"
+date: 2014-04-12 11:00:00
+category: Releases
+permalink: /blog/2014/04/12/
+---
+
The latest version adds support for "software manifests", which you can read more about [here](/apps/). Basically, manifests
are simple XML files that describe a piece of software (an application, an operating system, whatever). They can also
link to a PCjs machine configuration capable of running the software, along with a "ready-to-run" machine state file.
@@ -17,4 +23,4 @@ Almost nothing has changed in the PCjs client-side code (which is where the emul
the new **diskdump** API.
*[@jeffpar](http://twitter.com/jeffpar)*
-*April 12, 2014*
\ No newline at end of file
+*April 12, 2014*
diff --git a/blog/2014/04/14/README.md b/_posts/2014-04-14-node-express-safari.md
similarity index 96%
rename from blog/2014/04/14/README.md
rename to _posts/2014-04-14-node-express-safari.md
index 012cb75c2..762cba759 100644
--- a/blog/2014/04/14/README.md
+++ b/_posts/2014-04-14-node-express-safari.md
@@ -1,14 +1,20 @@
-Node + Express != Safari
---
+layout: post
+title: "Node + Express != Safari"
+date: 2014-04-14 11:00:00
+category: Browsers
+permalink: /blog/2014/04/14/
+---
+
There's something very odd going on with between Node+Express and Safari, resulting in blank web pages.
Don't believe me? Just ask [Google](https://www.google.com/#q=node+express+safari+blank+page).
-[pcjs.org](http://www.pcjs.org/) contains a lot of XML files that are rendered as web pages using XML
+[{{ site.pcjs_domain }}]({{ site.url }}/) contains a lot of XML files that are rendered as web pages using XML
stylesheets. And occasionally Safari -- and ONLY Safari -- will render those XML files as blank pages.
For example, here's the
[machine.xml](/devices/pc/machine/5150/mda/64kb/machine.xml) file that's also embedded on the
-[pcjs.org](http://www.pcjs.org/) home page.
+[{{ site.pcjs_domain }}]({{ site.url }}/) home page.
When Safari fetched that XML file from an Apache web server (what I used before switching to Node),
the request would look like:
@@ -145,4 +151,4 @@ websites, who will probably get blank pages when they shouldn't, and other devel
this problem on their own.
*[@jeffpar](http://twitter.com/jeffpar)*
-*April 14, 2014*
\ No newline at end of file
+*April 14, 2014*
diff --git a/blog/2014/04/30/README.md b/_posts/2014-04-30-heading-to-new-york.md
similarity index 95%
rename from blog/2014/04/30/README.md
rename to _posts/2014-04-30-heading-to-new-york.md
index f39a9abe0..b76da214a 100644
--- a/blog/2014/04/30/README.md
+++ b/_posts/2014-04-30-heading-to-new-york.md
@@ -1,5 +1,11 @@
-Heading to New York
---
+layout: post
+title: Heading to New York
+date: 2014-04-30 11:00:00
+category: JavaScript
+permalink: /blog/2014/04/30/
+---
+
Lots of tinkering has been going on here at pcjs.org the past couple of weeks, but with nothing substantial to show for it.
Fixing lots of little problems requires only small bits of time, whereas buckling down and tackling "the next BIG thing" for
PCjs requires a much more serious time commitment, with limited interruptions.
@@ -36,4 +42,4 @@ Will [EmpireJS](http://2014.empirejs.org) answer any of these big questions? It
and learning is fun!
*[@jeffpar](http://twitter.com/jeffpar)*
-*April 30, 2014*
\ No newline at end of file
+*April 30, 2014*
diff --git a/blog/2014/05/12/README.md b/_posts/2014-05-12-chrome-kicks-butt.md
similarity index 91%
rename from blog/2014/05/12/README.md
rename to _posts/2014-05-12-chrome-kicks-butt.md
index 2cfc93755..ce7c6727d 100644
--- a/blog/2014/05/12/README.md
+++ b/_posts/2014-05-12-chrome-kicks-butt.md
@@ -1,5 +1,11 @@
-Chrome Kicks Butt
---
+layout: post
+title: Chrome Kicks Butt
+date: 2014-05-12 11:00:00
+category: JavaScript
+permalink: /blog/2014/05/12/
+---
+
I haven't been closely monitoring the performance of PCjs across various browsers. Most of my browser testing has
been limited to "Does the latest version still work in all current web browsers?"
@@ -24,4 +30,4 @@ Chrome's approach to making regular JavaScript run faster seems to be a winning
like PCjs.
*[@jeffpar](http://twitter.com/jeffpar)*
-*May 12, 2014*
\ No newline at end of file
+*May 12, 2014*
diff --git a/blog/2014/06/14/README.md b/_posts/2014-06-14-halt-and-catch-liar.md
similarity index 91%
rename from blog/2014/06/14/README.md
rename to _posts/2014-06-14-halt-and-catch-liar.md
index 6f7403ca7..fe2dd65c6 100644
--- a/blog/2014/06/14/README.md
+++ b/_posts/2014-06-14-halt-and-catch-liar.md
@@ -1,5 +1,11 @@
-Halt and Catch Liar
---
+layout: post
+title: Halt and Catch Liar
+date: 2014-06-14 11:00:00
+category: TV Shows
+permalink: /blog/2014/06/14/
+---
+
I had high hopes for the new AMC series "[Halt and Catch Fire](http://www.amctv.com/shows/halt-and-catch-fire),"
but it has proven to be an utter disappointment. I think I can suspend my disbelief as well as anyone, but this
show requires you to completely turn your brain off in order to be believed. I'm also baffled by the show's
@@ -21,7 +27,7 @@ And centerpiece of this whole conceit -- the cloning of the IBM PC ROM BIOS. Wh
scene from Episode 2, where Brilliant Engineer looks at Hot Programmer's whiteboard in awe. Apparently, he
is easily awed, because he did the same thing when Sales Guy wrote "2x fast, 1/2 price" on an earlier whiteboard.
-
+[
](/blog/images/halt-and-catch-liar.jpg)
So if you deconstruct the code on this whiteboard, you quickly notice that while it IS assembly language, it is
NOT the sort of assembly language you would find in a ROM BIOS, let alone ANYTHING that would leave you in awe.
@@ -66,10 +72,10 @@ This turns out to be code largely copied from a file I found online: [PCTRACE.AS
Another curiosity is that searching for this resulted in a "[Googlewhack](http://en.wikipedia.org/wiki/Googlewhack)"
of sorts:
-
+
Technically, a Googlewhack (a two-word search that yields exactly one result) must use two words found in an actual
dictionary. But dictionaries are so passé.
*[@jeffpar](http://twitter.com/jeffpar)*
-*June 14, 2014*
\ No newline at end of file
+*June 14, 2014*
diff --git a/blog/2014/06/26/README.md b/_posts/2014-06-26-more-under-the-hood-changes.md
similarity index 79%
rename from blog/2014/06/26/README.md
rename to _posts/2014-06-26-more-under-the-hood-changes.md
index 0bbfe3ff6..98cb8c30b 100644
--- a/blog/2014/06/26/README.md
+++ b/_posts/2014-06-26-more-under-the-hood-changes.md
@@ -1,5 +1,11 @@
-More Under-The-Hood Changes
---
+layout: post
+title: More Under-The-Hood Changes
+date: 2014-06-26 11:00:00
+category: Releases
+permalink: /blog/2014/06/26/
+---
+
v1.13.7 of PCjs contains a few minor improvements, mostly in terms of rendering video modes a little more
efficiently. The rest of the changes to the website involved beefing up support for both "software manifests"
and "document manifests."
@@ -9,4 +15,4 @@ with more on the way. I have a TON of old diskette images, and it has taken mor
manifests than I would like.
*[@jeffpar](http://twitter.com/jeffpar)*
-*June 26, 2014*
\ No newline at end of file
+*June 26, 2014*
diff --git a/blog/2014/07/30/README.md b/_posts/2014-07-30-ega-support.md
similarity index 83%
rename from blog/2014/07/30/README.md
rename to _posts/2014-07-30-ega-support.md
index 131a9ab27..0018303f4 100644
--- a/blog/2014/07/30/README.md
+++ b/_posts/2014-07-30-ega-support.md
@@ -1,14 +1,20 @@
-EGA Support
---
+layout: post
+title: EGA Support
+date: 2014-07-30 11:00:00
+category: Video
+permalink: /blog/2014/07/30/
+---
+
PCjs v1.14.0 now includes basic EGA support. It emulates the EGA hardware well enough to pass the IBM EGA BIOS
diagnostics and run [Windows 1.01](/devices/pc/machine/5160/ega/640kb/win101/) in color. Check out our
[Windows 1.01 "Server Array"](/devices/pc/machine/5160/ega/640kb/array/) demo.
-
+[
](/blog/images/win101-array-demo.jpg)
EGA support is added to a **machine.xml** file using two XML elements; eg:
-
+
The *model* attribute must be set to "ega" and the *memory* attribute should be set to the amount of memory
desired on the card; valid memory sizes are:
@@ -35,4 +41,4 @@ this attribute corresponds to the actual switch settings on the EGA card; our de
which selects an Enhanced Color Monitor, enabling the EGA's maximum resolution of 640x350.
*[@jeffpar](http://twitter.com/jeffpar)*
-*July 30, 2014*
\ No newline at end of file
+*July 30, 2014*
diff --git a/blog/2014/08/01/README.md b/_posts/2014-08-01-pc-tech-journal-1987.md
similarity index 87%
rename from blog/2014/08/01/README.md
rename to _posts/2014-08-01-pc-tech-journal-1987.md
index 7e99bfe74..2519874ac 100644
--- a/blog/2014/08/01/README.md
+++ b/_posts/2014-08-01-pc-tech-journal-1987.md
@@ -1,5 +1,11 @@
-PC Tech Journal, 1987
---
+layout: post
+title: PC Tech Journal, 1987
+date: 2014-08-01 11:00:00
+category: PC Tech Journal
+permalink: /blog/2014/08/01/
+---
+
As part of an ongoing effort to make classic PC technical literature more accessible, I just finished
scanning and posting the 12 issues of [PC Tech Journal](/pubs/pc/magazines/pctj/) from 1987.
@@ -23,4 +29,4 @@ I'd be happy to buy them, scan them, and recycle them.
Thanks.
*[@jeffpar](http://twitter.com/jeffpar)*
-*August 1, 2014*
\ No newline at end of file
+*August 1, 2014*
diff --git a/blog/2014/08/28/README.md b/_posts/2014-08-28-supporting-the-80286.md
similarity index 95%
rename from blog/2014/08/28/README.md
rename to _posts/2014-08-28-supporting-the-80286.md
index 210964af7..0556decd0 100644
--- a/blog/2014/08/28/README.md
+++ b/_posts/2014-08-28-supporting-the-80286.md
@@ -1,5 +1,11 @@
-Supporting the 80286
---
+layout: post
+title: Supporting the 80286
+date: 2014-08-28 11:00:00
+category: 80286
+permalink: /blog/2014/08/28/
+---
+
The next milestone for PCjs is complete 80286 emulation. My hope is to have it working by the end of the year.
PCjs version 1.15.0 is the first step on the path to full 80286 support. It includes changes to the physical
@@ -42,4 +48,4 @@ and posted excerpts. I'm sure none of this information is "new" at this point,
Enjoy.
*[@jeffpar](http://twitter.com/jeffpar)*
-*August 28, 2014*
\ No newline at end of file
+*August 28, 2014*
diff --git a/blog/2014/09/02/README.md b/_posts/2014-09-02-minor-fixes-and-additions.md
similarity index 91%
rename from blog/2014/09/02/README.md
rename to _posts/2014-09-02-minor-fixes-and-additions.md
index 2fde48256..b92fb52d7 100644
--- a/blog/2014/09/02/README.md
+++ b/_posts/2014-09-02-minor-fixes-and-additions.md
@@ -1,4 +1,9 @@
-Minor Fixes and Additions
+---
+layout: post
+title: Minor Fixes and Additions
+date: 2014-09-02 11:00:00
+category: Releases
+permalink: /blog/2014/09/02/
---
The following fixes were made in PCjs v1.15.1:
@@ -24,4 +29,4 @@ These two new functions are designed to assist in testing the starting up, shutt
by allowing scripts to control the overall process, without requiring use of the browser's back/forward/close controls.
*[@jeffpar](http://twitter.com/jeffpar)*
-*September 2, 2014*
\ No newline at end of file
+*September 2, 2014*
diff --git a/blog/2014/09/13/README.md b/_posts/2014-09-13-the-ibm-pc-at-alive-and-booting.md
similarity index 90%
rename from blog/2014/09/13/README.md
rename to _posts/2014-09-13-the-ibm-pc-at-alive-and-booting.md
index 344a550ef..ac381280b 100644
--- a/blog/2014/09/13/README.md
+++ b/_posts/2014-09-13-the-ibm-pc-at-alive-and-booting.md
@@ -1,4 +1,9 @@
-The IBM PC AT: Alive and Booting
+---
+layout: post
+title: "The IBM PC AT: Alive and Booting"
+date: 2014-09-13 11:00:00
+category: Releases
+permalink: /blog/2014/09/13/
---
My first IBM PC AT (Model 5170) [Test Configuration](/devices/pc/machine/5170/ega/640kb/rev1/) finally
@@ -20,8 +25,8 @@ Aside from the additional DMA Controller, other major new motherboard components
The Keyboard Controller and Real-Time Clock/CMOS components required the most tinkering to pass through the ROM BIOS
gauntlet.
-For example, at one point, the BIOS ("[TEST.21](../../../../pubs/pc/reference/ibm/static/5170/techref/1984-03/pages/IBM-5170-TECHREF 202.pdf)")
-reset the keyboard ("[KBD_RESET](../../../../pubs/pc/reference/ibm/static/5170/techref/1984-03/pages/IBM-5170-TECHREF 212.pdf)"),
+For example, at one point, the BIOS ("[TEST.21](http://static.pcjs.org/pubs/pc/reference/ibm/5170/techref/1984-03/pages/IBM-5170-TECHREF 202.pdf)")
+reset the keyboard ("[KBD_RESET](http://static.pcjs.org/pubs/pc/reference/ibm/5170/techref/1984-03/pages/IBM-5170-TECHREF 212.pdf)"),
which unmasked the keyboard IRQ and waited for an interrupt, using a loop where CX was initialized to zero and then
decremented until either CX wrapped around to zero again *or* an interrupt occurred. The "TEST.21" code then assumed
that if "KBD_RESET" returned zero in CX, no interrupt had occurred.
diff --git a/blog/2014/09/30/README.md b/_posts/2014-09-30-pcjs-coding-conventions.md
similarity index 99%
rename from blog/2014/09/30/README.md
rename to _posts/2014-09-30-pcjs-coding-conventions.md
index 4b834fb07..a6d7eb77a 100644
--- a/blog/2014/09/30/README.md
+++ b/_posts/2014-09-30-pcjs-coding-conventions.md
@@ -1,4 +1,9 @@
-PCjs Coding Conventions
+---
+layout: post
+title: PCjs Coding Conventions
+date: 2014-09-30 11:00:00
+category: JavaScript
+permalink: /blog/2014/09/30/
---
Here are a few highlights of the (evolving) JavaScript coding conventions used in PCjs.
diff --git a/blog/2014/10/12/README.md b/_posts/2014-10-12-pcjs-released-on-github.md
similarity index 89%
rename from blog/2014/10/12/README.md
rename to _posts/2014-10-12-pcjs-released-on-github.md
index 3589343f1..711c0f5a6 100644
--- a/blog/2014/10/12/README.md
+++ b/_posts/2014-10-12-pcjs-released-on-github.md
@@ -1,5 +1,11 @@
-PCjs Released on GitHub
---
+layout: post
+title: PCjs Released on GitHub
+date: 2014-10-12 11:00:00
+category: Releases
+permalink: /blog/2014/10/12/
+---
+
I've decided the time has come to make the [PCjs Project](https://github.com/jeffpar/pcjs) an open source project on
[GitHub](http://github.com/).
@@ -18,4 +24,4 @@ Longer term, I'm looking forward to building some new tools, including an "IBM P
of the pain out of building your own bootable PCjs machine configurations, and make them easier to share, embed, etc.
*[@jeffpar](http://twitter.com/jeffpar)*
-*October 12, 2014*
\ No newline at end of file
+*October 12, 2014*
diff --git a/blog/2014/10/13/README.md b/_posts/2014-10-13-the-8mhz-ibm-pc-at-5170.md
similarity index 90%
rename from blog/2014/10/13/README.md
rename to _posts/2014-10-13-the-8mhz-ibm-pc-at-5170.md
index 403d81daa..84fd75ea1 100644
--- a/blog/2014/10/13/README.md
+++ b/_posts/2014-10-13-the-8mhz-ibm-pc-at-5170.md
@@ -1,5 +1,11 @@
-The 8Mhz IBM PC AT 5170
---
+layout: post
+title: The 8Mhz IBM PC AT 5170
+date: 2014-10-13 11:00:00
+category: JavaScript
+permalink: /blog/2014/10/13/
+---
+
I just added my first [8Mhz IBM PC AT](/devices/pc/machine/5170/ega/1152kb/rev3/) machine configuration
to the list of [IBM PC Machine Configurations](/devices/pc/machine/), and not surprisingly, the new machine
fails to boot.
diff --git a/blog/2014/10/17/README.md b/_posts/2014-10-17-release-of-pcjs-v1.15.5.md
similarity index 96%
rename from blog/2014/10/17/README.md
rename to _posts/2014-10-17-release-of-pcjs-v1.15.5.md
index fbef2b7a2..40d2bb33e 100644
--- a/blog/2014/10/17/README.md
+++ b/_posts/2014-10-17-release-of-pcjs-v1.15.5.md
@@ -1,4 +1,9 @@
-Release of PCjs v1.15.5
+---
+layout: post
+title: Release of PCjs v1.15.5
+date: 2014-10-17 11:00:00
+category: Releases
+permalink: /blog/2014/10/17/
---
The [8Mhz IBM PC AT](/devices/pc/machine/5170/ega/1152kb/rev3/) machine configuration boots in
diff --git a/blog/2014/10/23/README.md b/_posts/2014-10-23-release-of-pcjs-v1.15.6.md
similarity index 89%
rename from blog/2014/10/23/README.md
rename to _posts/2014-10-23-release-of-pcjs-v1.15.6.md
index c74412d3a..8e23b930a 100644
--- a/blog/2014/10/23/README.md
+++ b/_posts/2014-10-23-release-of-pcjs-v1.15.6.md
@@ -1,5 +1,11 @@
-Release of PCjs v1.15.6
---
+layout: post
+title: Release of PCjs v1.15.6
+date: 2014-10-23 11:00:00
+category: Releases
+permalink: /blog/2014/10/23/
+---
+
This is a fairly minor update that fixes a few Floppy Disk Controller (FDC) issues and one CPU emulation bug
that prevented PC-DOS 7.00 from working properly.
diff --git a/blog/2014/10/26/README.md b/_posts/2014-10-26-javascript-negativity.md
similarity index 96%
rename from blog/2014/10/26/README.md
rename to _posts/2014-10-26-javascript-negativity.md
index ff49c745d..04744b98e 100644
--- a/blog/2014/10/26/README.md
+++ b/_posts/2014-10-26-javascript-negativity.md
@@ -1,5 +1,11 @@
-JavaScript Negativity
---
+layout: post
+title: JavaScript Negativity
+date: 2014-10-26 11:00:00
+category: JavaScript
+permalink: /blog/2014/10/26/
+---
+
Coming from the C programming language, it's easy to be "negative" about how JavaScript deals with 32-bit integers.
As a newcomer, you quickly learn that JavaScript supports only one numeric data type -- 64-bit floats -- and you groan.
diff --git a/blog/2014/12/04/README.md b/_posts/2014-12-04-os2-10.md
similarity index 94%
rename from blog/2014/12/04/README.md
rename to _posts/2014-12-04-os2-10.md
index 3b42be2e8..9268bd8d7 100644
--- a/blog/2014/12/04/README.md
+++ b/_posts/2014-12-04-os2-10.md
@@ -1,5 +1,11 @@
-OS/2 1.0
---
+layout: post
+title: OS/2 1.0
+date: 2014-12-04 11:00:00
+category: OS/2
+permalink: /blog/2014/12/04/
+---
+
Exciting news for OS/2 fans: PCjs (v1.16.1) is now able to run OS/2 1.0 on
[IBM PC AT Machine Configurations](/devices/pc/machine/#model-5170-machine-configurations). This is the culmination
of recent work in PCjs to fully emulate the Intel 80286 processor and 16-bit protected-mode, including undocumented
@@ -9,7 +15,7 @@ For a quick demo, try the "[OS/2 1.0 Debugger Boot Disk](/disks/pc/os2/misc/)".
you'll see a very rudimentary OS/2 shell (a slimmed-down version of the OS/2 Program Selector) that allows you to
start the protected-mode command interpreter ("Start a Program") or the real-mode command interpreter ("command.com").
-
+[
](/disks/pc/os2/misc/)
As an added bonus, the Model 5170 machines feature two serial ports, with COM1 connected to a simulated serial
mouse and COM2 connected to the **Control Panel** output window.
diff --git a/blog/2014/12/05/README.md b/_posts/2014-12-05-canvas-performance-and-contenteditable.md
similarity index 97%
rename from blog/2014/12/05/README.md
rename to _posts/2014-12-05-canvas-performance-and-contenteditable.md
index 2e2146925..f4df0f7ff 100644
--- a/blog/2014/12/05/README.md
+++ b/_posts/2014-12-05-canvas-performance-and-contenteditable.md
@@ -1,5 +1,11 @@
-Canvas Performance and ContentEditable
---
+layout: post
+title: Canvas Performance and ContentEditable
+date: 2014-12-05 11:00:00
+category: HTML5
+permalink: /blog/2014/12/05/
+---
+
From the beginning of the [JavaScript Machines](/docs/about/) Project, I've always used an HTML5
[Canvas](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API) object for both machine output
and input. It's the obvious choice for output, because the Canvas provides a 2D drawing API that's
diff --git a/_posts/2015-01-17-pcjs-uncompiled.md b/_posts/2015-01-17-pcjs-uncompiled.md
new file mode 100644
index 000000000..c31274c02
--- /dev/null
+++ b/_posts/2015-01-17-pcjs-uncompiled.md
@@ -0,0 +1,46 @@
+---
+layout: post
+title: PCjs Uncompiled
+date: 2015-01-17 11:00:00
+category: Features
+permalink: /blog/2015/01/17/
+machines:
+ - type: pc-dbg
+ id: at-ega-1152k-rev3
+ config: /devices/pc/machine/5170/ega/1152kb/rev3/machine.xml
+ uncompiled: true
+---
+
+Most machines on [{{ site.pcjs_domain }}](/) run with a compiled version of PCjs, which is produced
+by running PCjs JavaScript source code through Google's Closure Compiler, yielding a smaller (minified)
+version that loads and runs much faster than the original source code.
+
+However, certain features are disabled in the compiled versions, including a new BACKTRACK feature that
+makes it possible to track the contents of memory locations and registers back to their source (eg, to a ROM
+or file location). Once the BACKTRACK feature is finished, it will be folded into the compiled code, but until
+then, the only way to experiment with it is by running the uncompiled code.
+
+To make it easier to launch machines with uncompiled code, a PCjs machine definition can now set `uncompiled`
+to *true*, overriding the value of `site.pcjs_compiled` in **_config.yml**.
+
+Here's what a typical Markdown file would look like:
+
+{% raw %}
+ ---
+ ...
+ machines:
+ - type: pc-dbg
+ id: at-ega-1152k-rev3
+ config: /devices/pc/machine/5170/ega/1152kb/rev3/machine.xml
+ uncompiled: true
+ ---
+ ...
+ {% include machine.html id="at-ega-1152k-rev3" %}
+{% endraw %}
+
+In fact, that's what we've done in the Markdown file you are reading right now.
+
+{% include machine.html id="at-ega-1152k-rev3" %}
+
+*[@jeffpar](http://twitter.com/jeffpar)*
+*January 17, 2015 (Updated December 10, 2015 to reflect the new `uncompiled` property)*
diff --git a/blog/2015/01/28/README.md b/_posts/2015-01-28-new-pcjs-control-panel.md
similarity index 55%
rename from blog/2015/01/28/README.md
rename to _posts/2015-01-28-new-pcjs-control-panel.md
index cc05ab199..19bd83f0f 100644
--- a/blog/2015/01/28/README.md
+++ b/_posts/2015-01-28-new-pcjs-control-panel.md
@@ -1,11 +1,22 @@
-New PCjs Control Panel
---
+layout: post
+title: New PCjs Control Panel
+date: 2015-01-28 11:00:00
+category: Control Panel
+permalink: /blog/2015/01/28/
+machines:
+ - type: pc-dbg
+ id: at-ega-1152k-rev3
+ config: /devices/pc/machine/5170/ega/1152kb/rev3/backtrack/machine.xml
+ uncompiled: true
+---
+
A new PCjs Control Panel is under development, featuring a new "Display Panel" that will provide a variety of
information about the machine, in real-time, and operate more efficiently than previous DOM-based Control Panels.
A preview of the layout is shown below. There's not much to see yet, as this is very much a work-in-progress.
-[Embedded IBM PC](/devices/pc/machine/5170/ega/1152kb/rev3/backtrack/ "PCjs:at-ega-1152k-rev3::uncompiled:debugger")
+{% include machine.html id="at-ega-1152k-rev3" %}
*[@jeffpar](http://twitter.com/jeffpar)*
*January 28, 2015*
diff --git a/blog/2015/02/22/README.md b/_posts/2015-02-22-compaq-deskpro-386.md
similarity index 76%
rename from blog/2015/02/22/README.md
rename to _posts/2015-02-22-compaq-deskpro-386.md
index 4e1f293dd..12e35d52d 100644
--- a/blog/2015/02/22/README.md
+++ b/_posts/2015-02-22-compaq-deskpro-386.md
@@ -1,5 +1,16 @@
-Compaq DeskPro 386
---
+layout: post
+title: Compaq DeskPro 386
+date: 2015-02-22 11:00:00
+category: 80386
+permalink: /blog/2015/02/22/
+machines:
+ - type: pc-dbg
+ id: deskpro386
+ config: /devices/pc/machine/compaq/deskpro386/ega/2048kb/machine.xml
+ uncompiled: true
+---
+
I finally dumped the [Compaq DeskPro 386/16 ROMs](/devices/pc/bios/compaq/deskpro386/) from the motherboard I bought
on ebay last year, so I'm ready to begin adding 80386 support to PCjs.
@@ -15,7 +26,7 @@ A Compaq DeskPro 386 test configuration is displayed below. It's located at:
The configuration doesn't run, and the debugger can't disassemble 80386-specific code yet, but this is what I will be
using to test and debug my changes over the next few months.
-[Embedded DeskPro 386](/devices/pc/machine/compaq/deskpro386/ega/2048kb/machine.xml "PCjs:deskpro386-ega-2048k::uncompiled:debugger")
+{% include machine.html id="deskpro386" %})
*[@jeffpar](http://twitter.com/jeffpar)*
*February 22, 2015*
diff --git a/blog/2015/02/23/README.md b/_posts/2015-02-23-early-80386-cpus.md
similarity index 99%
rename from blog/2015/02/23/README.md
rename to _posts/2015-02-23-early-80386-cpus.md
index f0d541be2..a7440d975 100644
--- a/blog/2015/02/23/README.md
+++ b/_posts/2015-02-23-early-80386-cpus.md
@@ -1,5 +1,11 @@
-Early 80386 CPUs
---
+layout: post
+title: Early 80386 CPUs
+date: 2015-02-23 11:00:00
+category: 80386
+permalink: /blog/2015/02/23/
+---
+
Assembling a detailed and accurate history of the 80386, including a complete listing of all the "steppings"
(revisions), when they were released, what "errata" (problems) each stepping suffered from, and which of those
problems were fixed by a later stepping, seems virtually impossible at this late date.
diff --git a/blog/2015/03/26/README.md b/_posts/2015-03-26-javascript-idiosyncrasies.md
similarity index 98%
rename from blog/2015/03/26/README.md
rename to _posts/2015-03-26-javascript-idiosyncrasies.md
index b98c065d0..7bceb98fa 100644
--- a/blog/2015/03/26/README.md
+++ b/_posts/2015-03-26-javascript-idiosyncrasies.md
@@ -1,5 +1,11 @@
-JavaScript Idiosyncrasies
---
+layout: post
+title: JavaScript Idiosyncrasies
+date: 2015-03-16 11:00:00
+category: JavaScript
+permalink: /blog/2015/03/16/
+---
+
Time to mention a few JavaScript idiosyncrasies, and how I deal with them.
Also, see my previous posts on [PCjs Coding Conventions](/blog/2014/09/30/) and [JavaScript Negativity](/blog/2014/10/26/).
diff --git a/blog/2015/04/16/README.md b/_posts/2015-04-16-compaq-deskpro-386-update.md
similarity index 95%
rename from blog/2015/04/16/README.md
rename to _posts/2015-04-16-compaq-deskpro-386-update.md
index ed815e0ba..8398d09b7 100644
--- a/blog/2015/04/16/README.md
+++ b/_posts/2015-04-16-compaq-deskpro-386-update.md
@@ -1,5 +1,16 @@
-Compaq DeskPro 386 Update
---
+layout: post
+title: Compaq DeskPro 386 Update
+date: 2015-04-16 11:00:00
+category: 80386
+permalink: /blog/2015/04/16/
+machines:
+ - type: pc-dbg
+ id: deskpro386
+ config: /devices/pc/machine/compaq/deskpro386/ega/2048kb/machine.xml
+ uncompiled: true
+---
+
PCjs can now boot the [Compaq DeskPro 386/16 ROM BIOS](/devices/pc/bios/compaq/deskpro386/).
There's still a problem with the hard disk controller, which I haven't looked into yet,
@@ -136,7 +147,7 @@ in the Debugger panel to see the above code in action. When the machine is oper
can use the "rp" command to dump all the registers, including the current base and limit values loaded into
the segment registers.
-[Embedded DeskPro 386](/devices/pc/machine/compaq/deskpro386/ega/2048kb/machine.xml "PCjs:deskpro386-ega-2048k::uncompiled:debugger")
+{% include machine.html id="deskpro386" %}
*[@jeffpar](http://twitter.com/jeffpar)*
*April 16-19, 2015*
diff --git a/blog/2015/05/20/README.md b/_posts/2015-05-20-pc-tech-journal-collection.md
similarity index 73%
rename from blog/2015/05/20/README.md
rename to _posts/2015-05-20-pc-tech-journal-collection.md
index 7b181a9a0..420ee8265 100644
--- a/blog/2015/05/20/README.md
+++ b/_posts/2015-05-20-pc-tech-journal-collection.md
@@ -1,5 +1,11 @@
-PC Tech Journal Collection
---
+layout: post
+title: PC Tech Journal Collection
+date: 2015-05-20 11:00:00
+category: PC Tech Journal
+permalink: /blog/2015/05/20/
+---
+
This is an update to my 2014 [post](/blog/2014/08/01/) on the PCjs online collection of old
[PC Tech Journal](/pubs/pc/magazines/pctj/) magazine issues.
@@ -12,7 +18,7 @@ however, even though it identifies itself as a 1987 issue, the editorial index o
October 1986, so "technically" it should be considered a late 1986 issue. It is officially Vol. 4, No. 13, which,
numerically, puts it squarely between the December 1986 and January 1987 issues.
-
+[
](/pubs/pc/magazines/pctj/)
Happy reading!
diff --git a/_posts/2015-06-01-debugging-the-ibm-vga-rom.md b/_posts/2015-06-01-debugging-the-ibm-vga-rom.md
index a2227d28f..b7db6fdb5 100644
--- a/_posts/2015-06-01-debugging-the-ibm-vga-rom.md
+++ b/_posts/2015-06-01-debugging-the-ibm-vga-rom.md
@@ -1,8 +1,8 @@
---
layout: post
-title: Debugging the IBM VGA ROM
-date: 2015-06-01 11:00:00
-categories: video
+title: Debugging the IBM VGA ROM
+date: 2015-06-01 11:00:00
+category: Video
permalink: /blog/2015/06/01/
---
diff --git a/_posts/2015-06-05-the-strange-case-of-the-ega-graphics-scroll-bug.md b/_posts/2015-06-05-the-strange-case-of-the-ega-graphics-scroll-bug.md
index e28a9ad03..d3d7de1db 100644
--- a/_posts/2015-06-05-the-strange-case-of-the-ega-graphics-scroll-bug.md
+++ b/_posts/2015-06-05-the-strange-case-of-the-ega-graphics-scroll-bug.md
@@ -1,8 +1,8 @@
---
layout: post
-title: The Strange Case of the EGA Graphics Scroll Bug
-date: 2015-06-05 11:00:00
-categories: video
+title: The Strange Case of the EGA Graphics Scroll Bug
+date: 2015-06-05 11:00:00
+category: Video
permalink: /blog/2015/06/05/
---
diff --git a/_posts/2015-07-17-windows-95.md b/_posts/2015-07-17-windows-95.md
index 79515cdf9..ce2f9d2d5 100644
--- a/_posts/2015-07-17-windows-95.md
+++ b/_posts/2015-07-17-windows-95.md
@@ -1,8 +1,8 @@
---
layout: post
-title: Windows 95
-date: 2015-07-17 11:00:00
-categories: windows-95
+title: Windows 95
+date: 2015-07-17 11:00:00
+category: Windows 95
permalink: /blog/2015/07/17/
---
diff --git a/_posts/2015-09-21-windows-95-in-your-web-browser.md b/_posts/2015-09-21-windows-95-in-your-web-browser.md
index cb0f871e1..0e0d63317 100644
--- a/_posts/2015-09-21-windows-95-in-your-web-browser.md
+++ b/_posts/2015-09-21-windows-95-in-your-web-browser.md
@@ -1,8 +1,8 @@
---
layout: post
-title: Windows 95 In Your Web Browser
-date: 2015-09-21 11:00:00
-categories: windows-95 80386
+title: Windows 95 In Your Web Browser
+date: 2015-09-21 11:00:00
+category: Windows 95
permalink: /blog/2015/09/21/
machines:
- type: pc-dbg
diff --git a/_posts/2015-10-27-windows-95-and-early-80386-cpus.md b/_posts/2015-10-27-windows-95-and-early-80386-cpus.md
index 6df7f8605..25d5f4296 100644
--- a/_posts/2015-10-27-windows-95-and-early-80386-cpus.md
+++ b/_posts/2015-10-27-windows-95-and-early-80386-cpus.md
@@ -1,8 +1,8 @@
---
layout: post
-title: Windows 95 and Early 80386 CPUs
-date: 2015-10-27 11:00:00
-categories: windows-95 80386
+title: Windows 95 and Early 80386 CPUs
+date: 2015-10-27 11:00:00
+categories: ['Windows 95', '80386']
permalink: /blog/2015/10/27/
---
diff --git a/_posts/2015-12-10-rebuilding-the-pcjs-website.md b/_posts/2015-12-10-rebuilding-the-pcjs-website.md
index 7da67501a..bf0a5358b 100644
--- a/_posts/2015-12-10-rebuilding-the-pcjs-website.md
+++ b/_posts/2015-12-10-rebuilding-the-pcjs-website.md
@@ -1,8 +1,9 @@
---
layout: post
-title: Rebuilding the PCjs Website
-date: 2015-12-10 11:03:00
-categories: blog
+title: Rebuilding the PCjs Website
+date: 2015-12-10 11:03:00
+category: Website
+permalink: /blog/2015/12/10/
---
It's been nice using Node.js to power the PCjs website, using Amazon's Elastic Beanstalk service, but that combination
@@ -67,9 +68,10 @@ the following values, depending on whether you want an IBM PC or Challenger 1P,
- c1p-dbg
and `id` can be any identifier you want to use to embed the machine. You may also use `config` to specify a machine XML
-configuration file if not using the default `machine.xml`, `template` to specify an alternate XSL template file if not
-using the default `components.xsl` file, and `state` to specify a JSON-encoded machine state file if the machine
-requires a predefined state.
+configuration file if not using the default `machine.xml`; `template` to specify an alternate XSL template file if not
+using the default `components.xsl` file; `state` to specify a JSON-encoded machine state file if the machine requires a
+predefined state; and `uncompiled` may be set to *true* to force a machine to use uncompiled sources, overriding the
+value of `site.pcjs_compiled` in **_config.yml**.
For example, the PCjs home page contains two machines, and so this appears at the top of the root [README.md](https://raw.githubusercontent.com/jeffpar/pcjs/gh-pages/README.md):
@@ -84,3 +86,6 @@ For example, the PCjs home page contains two machines, and so this appears at th
I will continue to include a Node web server with the PCjs project, but it remains to be seen whether I'll update the
Node components to parse the new Jekyll "Front Matter" that's been added to all the Markdown files, or whether I'll leave
leave the Node support as-is on the old "master" branch, and make the "gh-pages" the new default branch.
+
+*[@jeffpar](http://twitter.com/jeffpar)*
+*December 10, 2015*
diff --git a/blog/2015/01/17/README.md b/blog/2015/01/17/README.md
deleted file mode 100644
index 9826b6d67..000000000
--- a/blog/2015/01/17/README.md
+++ /dev/null
@@ -1,26 +0,0 @@
-PCjs Uncompiled
----
-Most machines on [pcjs.org](http://www.pcjs.org/) run with a compiled version of PCjs, which is produced
-by running PCjs JavaScript source code through Google's Closure Compiler, yielding a smaller (minified)
-version that loads and runs much faster than the original source code.
-
-However, certain features are disabled in the compiled versions, including a new BACKTRACK feature that
-makes it possible to track the contents of memory locations and registers back to their source (eg, to a ROM
-or file location). Once the BACKTRACK feature is finished, it will be folded into the compiled code, but until
-then, the only way to experiment with it is by running the uncompiled code.
-
-To make it easier to launch machines with the uncompiled code, the PCjs server now allows the *version* field
-of a PCjs machine link to specify "uncompiled"; previously, the only *version* values allowed were a specific
-version number (eg, "1.16.5") or an asterisk (which would default to the latest compiled version).
-
-Here's how you embed an "uncompiled" machine in a PCjs Markdown file:
-
- [Embedded IBM PC](/devices/pc/machine/5170/ega/1152kb/rev3/ "PCjs:at-ega-1152k-rev3::uncompiled:debugger")
-
-And here's that example in action, in the Markdown ([README.md]()) file you are reading right now -- assuming
-you are reading it on a [PCjs](http://www.pcjs.org/blog/2015/01/17/) web server:
-
-[Embedded IBM PC](/devices/pc/machine/5170/ega/1152kb/rev3/ "PCjs:at-ega-1152k-rev3::uncompiled:debugger")
-
-*[@jeffpar](http://twitter.com/jeffpar)*
-*January 17, 2015*
diff --git a/blog/2014/03/31/avd_tablet.png b/blog/images/avd_tablet.png
similarity index 100%
rename from blog/2014/03/31/avd_tablet.png
rename to blog/images/avd_tablet.png
diff --git a/blog/2014/06/14/googlewhack.jpg b/blog/images/googlewhack.jpg
similarity index 100%
rename from blog/2014/06/14/googlewhack.jpg
rename to blog/images/googlewhack.jpg
diff --git a/blog/2014/06/14/Halt_and_Catch_Liar-thumbnail.jpg b/blog/images/halt-and-catch-liar-thumbnail.jpg
similarity index 100%
rename from blog/2014/06/14/Halt_and_Catch_Liar-thumbnail.jpg
rename to blog/images/halt-and-catch-liar-thumbnail.jpg
diff --git a/blog/2014/06/14/Halt_and_Catch_Liar.jpg b/blog/images/halt-and-catch-liar.jpg
similarity index 100%
rename from blog/2014/06/14/Halt_and_Catch_Liar.jpg
rename to blog/images/halt-and-catch-liar.jpg
diff --git a/blog/2014/03/30/iisnode_logs.png b/blog/images/iisnode_logs.png
similarity index 100%
rename from blog/2014/03/30/iisnode_logs.png
rename to blog/images/iisnode_logs.png
diff --git a/blog/2014/12/04/OS210-DEBUGGER.jpg b/blog/images/os2-debugger.jpg
similarity index 100%
rename from blog/2014/12/04/OS210-DEBUGGER.jpg
rename to blog/images/os2-debugger.jpg
diff --git a/blog/2014/07/30/win101-array-demo-small.jpg b/blog/images/win101-array-demo-small.jpg
similarity index 100%
rename from blog/2014/07/30/win101-array-demo-small.jpg
rename to blog/images/win101-array-demo-small.jpg
diff --git a/blog/2014/07/30/win101-array-demo.jpg b/blog/images/win101-array-demo.jpg
similarity index 100%
rename from blog/2014/07/30/win101-array-demo.jpg
rename to blog/images/win101-array-demo.jpg
diff --git a/devices/pc/bios/5170/README.md b/devices/pc/bios/5170/README.md
index 9a2defcce..0a4f36c12 100644
--- a/devices/pc/bios/5170/README.md
+++ b/devices/pc/bios/5170/README.md
@@ -1,6 +1,12 @@
+---
+layout: page
+title: IBM PC AT (Model 5170) BIOS
+permalink: /devices/pc/bios/5170/
+---
+
IBM PC AT (Model 5170) BIOS
---
-[1984-01-10.json]() contains the original IBM PC AT BIOS.
+[1984-01-10.json](1984-01-10.json) contains the original IBM PC AT BIOS.
From [http://minuszerodegrees.net/bios/BIOS_5170_10JAN84_6MHZ.zip](http://minuszerodegrees.net/bios/):
@@ -13,8 +19,8 @@ From [http://minuszerodegrees.net/bios/BIOS_5170_10JAN84_6MHZ.zip](http://minusz
8 bit checksum of 6181028 = 36
8 bit checksum of 6181029 = CA
- --
- added = 00
+ --
+ added = 00
There are two BIN files in this ZIP file:
@@ -25,8 +31,8 @@ The JSON-encoded ROM image that PCjs uses was created using the *FileDump* comma
filedump --file=http://static.pcjs.org/devices/pc/bios/5170/BIOS_5170_10JAN84_U27_6181028_27256_6MHZ.BIN --merge=http://static.pcjs.org/devices/pc/bios/5170/BIOS_5170_10JAN84_U47_6181029_27256_6MHZ.BIN --output=1984-01-10.json --overwrite
-Since a MAP file ([1984-01-10.map]()) exists as well, it is automatically appended to the JSON file ([1984-01-10.json]())
-when using a ROM input file (or JSON output file) with a matching filename.
+Since a MAP file ([1984-01-10.map](1984-01-10.map)) exists as well, it is automatically appended to the JSON file
+([1984-01-10.json](1984-01-10.json)) when using a ROM input file (or JSON output file) with a matching filename.
It is also possible to create a merged binary ROM image ([1984-01-10.rom](http://static.pcjs.org/devices/pc/bios/5170/1984-01-10.rom))
by adding *--format=rom* to the command-line (the default is *--format=json*).
@@ -34,14 +40,14 @@ by adding *--format=rom* to the command-line (the default is *--format=json*).
These operations can only be performed using the *FileDump* command-line interface; the *FileDump* API does not support
either the *merge* option or the appending of MAP data. For the moment, the API can only dump unadorned ROM images; eg:
- http://www.pcjs.org/api/v1/dump/?file=http://static.pcjs.org/devices/pc/bios/5170/1984-01-10.rom
+ http://localhost:8088/api/v1/dump/?file=http://static.pcjs.org/devices/pc/bios/5170/1984-01-10.rom
---
IBM PC AT (Model 5170) BIOS ("Rev 2")
---
-[1985-06-10.json]() contains the second IBM PC AT BIOS, dated June 10, 1985, which expanded hard disk support from 15 to 23 drive types,
-fixed some bugs, and added support for 720Kb 3.5-inch floppy diskette drives.
+[1985-06-10.json](1985-06-10.json) contains the second IBM PC AT BIOS, dated June 10, 1985, which expanded hard disk
+support from 15 to 23 drive types, fixed some bugs, and added support for 720Kb 3.5-inch floppy diskette drives.
From [http://minuszerodegrees.net/bios/BIOS_5170_10JUN85_6MHZ.zip](http://minuszerodegrees.net/bios/):
@@ -54,8 +60,8 @@ From [http://minuszerodegrees.net/bios/BIOS_5170_10JUN85_6MHZ.zip](http://minusz
8 bit checksum of 6480090 = 71
8 bit checksum of 6480091 = 8F
- --
- added = 00
+ --
+ added = 00
There are two BIN files in this ZIP file:
@@ -70,8 +76,8 @@ The JSON-encoded ROM image that PCjs uses was created using the *FileDump* comma
IBM PC AT (Model 5170) BIOS ("Rev 3")
---
-[1985-11-15.json]() contains the third (and last) IBM PC AT BIOS, dated November 15, 1985, which added support for 101-key keyboards and 1.44Mb floppy
-diskette drives.
+[1985-11-15.json](1985-11-15.json) contains the third (and last) IBM PC AT BIOS, dated November 15, 1985,
+which added support for 101-key keyboards and 1.44Mb floppy diskette drives.
From [http://minuszerodegrees.net/bios/BIOS_5170_15NOV85_8MHZ_VARIATION_2.zip](http://minuszerodegrees.net/bios/):
@@ -84,8 +90,8 @@ From [http://minuszerodegrees.net/bios/BIOS_5170_15NOV85_8MHZ_VARIATION_2.zip](h
8 bit checksum of 61X9266 = 10
8 bit checksum of 61X9265 = F0
- --
- added = 00
+ --
+ added = 00
There are two BIN files in this ZIP file:
diff --git a/devices/pc/bios/compaq/deskpro386/README.md b/devices/pc/bios/compaq/deskpro386/README.md
index f207a6714..e00bcdd0f 100644
--- a/devices/pc/bios/compaq/deskpro386/README.md
+++ b/devices/pc/bios/compaq/deskpro386/README.md
@@ -1,9 +1,15 @@
+---
+layout: page
+title: Compaq DeskPro 386 ROMs
+permalink: /devices/pc/bios/compaq/deskpro386/
+---
+
Compaq DeskPro 386 ROMs
---
The oldest Compaq DeskPro 386 ROM I have is a Rev J.4 ROM from a "Version 2" motherboard designed
in 1987 and released in 1988.
-
+[
](http://static.pcjs.org/pubs/pc/reference/compaq/images/Compaq_DeskPro_386-16_System_Board_V2.jpg)
Thanks to folks on the [Vintage Computer](http://www.vintage-computer.com/) forums, I also have a Rev N.1 ROM from 1989.
@@ -39,9 +45,9 @@ 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/bios/compaq/deskpro386/1988-01-28/1988-01-28.json&format=rom](http://www.pcjs.org/api/v1/dump?file=http://www.pcjs.org/devices/pc/bios/compaq/deskpro386/1988-01-28/1988-01-28.json&format=rom)
+ http://localhost:8088/api/v1/dump?file=http://localhost:8088/devices/pc/bios/compaq/deskpro386/1988-01-28/1988-01-28.json&format=rom
-Similarly, [1989-04-14.json](1989-04-14/1989-04-14.json) was generated by first creating [1989-04-14.rom](http://www.pcjs.org/api/v1/dump?file=http://www.pcjs.org/devices/pc/bios/compaq/deskpro386/1989-04-14/1989-04-14.json&format=rom)
+Similarly, [1989-04-14.json](1989-04-14/1989-04-14.json) was generated by first creating **1989-04-14.rom**
from the two 16Kb BIN files provided by [Al Kossow](http://www.vintage-computer.com/vcforum/member.php?2256-Al-Kossow):
cd 1989-04-14
@@ -56,10 +62,10 @@ prototyping board, and capturing the serial port output on my MacBook Pro -- as
"[Stick a Straw in Its Brain and Suck: How to Read a ROM](http://www.nycresistor.com/2012/07/07/stick-a-straw-in-its-brain-and-suck-how-to-read-a-rom/)"
by [NYC Resistor](http://www.nycresistor.com/) contributor [phooky](http://www.nycresistor.com/author/phooky/).
-The DeskPro 386 ROMs were P27128A-2 chips, so I wired my Uno32 based on this [27128A](/pubs/pc/datasheets/static/27128A.pdf)
+The DeskPro 386 ROMs were P27128A-2 chips, so I wired my Uno32 based on this [27128A](http://static.pcjs.org/pubs/pc/datasheets/27128A.pdf)
datasheet -- the closest match I could find online.
-
+
On my first dump attempt, every ROM address returned 0xFF. After looking at the 27128A datasheet more closely, I noticed
the DEVICE OPERATION table indicated that, for a READ operation, /CE and /OE pins should be connected to INPUT LOW VOLTAGE,
diff --git a/devices/pc/machine/compaq/deskpro386/README.md b/devices/pc/machine/compaq/deskpro386/README.md
index 8ed81889f..0ed870a24 100644
--- a/devices/pc/machine/compaq/deskpro386/README.md
+++ b/devices/pc/machine/compaq/deskpro386/README.md
@@ -1,10 +1,11 @@
---
layout: page
-title: "Compaq DeskPro 386 Machines"
+title: Compaq DeskPro 386 Machines
permalink: /devices/pc/machine/compaq/deskpro386/
---
Compaq DeskPro 386 Machines
---
-* [Compaq DeskPro 386 with VGA Display running Windows 95](vga/4096kb/)
+* [Compaq DeskPro 386 with VGA, 2Mb RAM](vga/2048kb/)
+* [Compaq DeskPro 386 with VGA, 4Mb RAM, running Windows 95](vga/4096kb/)
diff --git a/devices/pc/machine/compaq/deskpro386/vga/2048kb/machine.md b/devices/pc/machine/compaq/deskpro386/vga/2048kb/machine.md
new file mode 100644
index 000000000..0c25663c8
--- /dev/null
+++ b/devices/pc/machine/compaq/deskpro386/vga/2048kb/machine.md
@@ -0,0 +1,10 @@
+---
+layout: page
+title: "Compaq DeskPro 386 with VGA, 2Mb RAM"
+permalink: /devices/pc/machine/compaq/deskpro386/vga/2048kb/
+machines:
+ - type: pc-dbg
+ id: deskpro386
+---
+
+{% include machine.html id="deskpro386" %}
diff --git a/devices/pc/machine/compaq/deskpro386/vga/4096kb/README.md b/devices/pc/machine/compaq/deskpro386/vga/4096kb/README.md
index 9f91bc10a..e6a79c355 100644
--- a/devices/pc/machine/compaq/deskpro386/vga/4096kb/README.md
+++ b/devices/pc/machine/compaq/deskpro386/vga/4096kb/README.md
@@ -1,6 +1,6 @@
---
layout: page
-title: "Compaq DeskPro 386 with VGA Display, 4Mb"
+title: "Compaq DeskPro 386 with VGA, 4Mb RAM"
permalink: /devices/pc/machine/compaq/deskpro386/vga/4096kb/
machines:
- type: pc-dbg
diff --git a/disks/pc/os2/misc/machine.md b/disks/pc/os2/misc/machine.md
new file mode 100644
index 000000000..e6e73b35c
--- /dev/null
+++ b/disks/pc/os2/misc/machine.md
@@ -0,0 +1,11 @@
+---
+layout: page
+title: "BM PC AT (8Mhz), 128Kb EGA, 1152Kb RAM, 20Mb Hard Disk"
+permalink: /disks/pc/os2/misc/
+machines:
+ - type: pc-dbg
+ id: ibm5170
+ config: /disks/pc/os2/misc/1.0/debugger/machine.xml
+---
+
+{% include machine.html id="ibm5170" %}
diff --git a/notes.md b/notes.md
index 29f8bd7e8..b22a59090 100644
--- a/notes.md
+++ b/notes.md
@@ -134,7 +134,7 @@ To convert PCjs' special links, such as:
to normal Markdown links, search using this regex:
- \!\[(.*?)\]\(([^ )]*) \"link:(.*?):([0-9]*):([0-9]*)\"\)
+ \!\[(.*?)\]\((.*?) \"link:(.*?):([0-9]*):([0-9]*)\"\)
and replace using this regex:
diff --git a/pubs/pc/magazines/pctj/README.md b/pubs/pc/magazines/pctj/README.md
index 93a8d9841..cfff30bd7 100644
--- a/pubs/pc/magazines/pctj/README.md
+++ b/pubs/pc/magazines/pctj/README.md
@@ -7,6 +7,8 @@ permalink: /pubs/pc/magazines/pctj/
PC Tech Journal
---
+(The nearly-complete collection!)
+
[
](PCTJ-1983-07/)
[
](PCTJ-1983-09/)
[
](PCTJ-1983-11/)