diff --git a/_config.yml b/_config.yml index b12b995fa..ab0cef8f4 100644 --- a/_config.yml +++ b/_config.yml @@ -17,7 +17,7 @@ right_brace: "}" # Build settings -exclude: ["index.html", "**/index.html", "**/archive", "**/c64", "blog/posts", "logs", "node_modules", "**/private", "src", "**/src", "tmp", "videos", "web", ".git", ".idea"] +exclude: ["index.html", "**/index.html", "**/archive", "**/c64", "logs", "node_modules", "**/private", "src", "**/src", "tmp", "**/tmp", "videos", "web", ".git", ".idea"] markdown: kramdown kramdown: input: GFM diff --git a/_developer.yml b/_developer.yml index 90ce20aaa..2836cc989 100644 --- a/_developer.yml +++ b/_developer.yml @@ -17,8 +17,6 @@ pcjs: # # bundle exec jekyll serve --config _config.yml,_developer.yml # - # so deal with it! ;-) - # # NOTE: If you're debugging PCjs source code, you'll probably be happier using a JetBrains IDE like WebStorm, # launching PCjs pages via Node rather than Jekyll, and using the JetBrains Chrome debugger plug-in. # diff --git a/_includes/machine-engines.html b/_includes/machine-engines.html index 233aa9d78..d1738adca 100644 --- a/_includes/machine-engines.html +++ b/_includes/machine-engines.html @@ -14,7 +14,8 @@ in the Front Matter of Markdown files, for compatibility with the Jekyll web ser And the following properties (along with any property not listed above) will be added to the 'parms' property: 'autoPower' (eg, "true") - 'autoMount' (eg, {"A":{"name":"OS/2 FOOTBALL Boot Disk (v7.68.17)","path":"/disks/pc/os2/misc/football/debugger/FOOTBALL-7.68.17.json"}}) + 'autoMount' (eg, {"A":{"name":"OS/2 FOOTBALL (v7.68.17)","path":"/disks/pc/os2/misc/football/FOOTBALL-76817.json"}}) + 'drives' (eg, '[{name:"68Mb Hard Disk",type:4,path:"http://archive.pcjs.org/disks/pc/fixed/68mb/win95.json"}]') 'state' (eg, "state.json") 'messages' (eg, "disk") @@ -31,9 +32,17 @@ here and in markout.js. Examples include 'autopower' ('autoPower') and 'automou {% endif %} {% capture machine_embed %}embed{{ machine_type | upcase }}{% endcapture %} {% if machine.automount != nil %} - {% capture machine_autoMount %}{{ machine.automount|jsonify }}{% endcapture %} + {% if machine.automount == '' %} + {% assign machine_autoMount = '{}' %} + {% else %} + {% capture machine_autoMount %}{{ machine.automount|jsonify }}{% endcapture %} + {% endif %} {% else %} - {% capture machine_autoMount %}{{ machine.autoMount|jsonify }}{% endcapture %} + {% if machine.autoMount == '' %} + {% assign machine_autoMount = '{}' %} + {% else %} + {% capture machine_autoMount %}{{ machine.autoMount|jsonify }}{% endcapture %} + {% endif %} {% endif %} {% if machine.autopower != nil %} {% capture machine_autoPower %}{{ machine.autopower }}{% endcapture %} @@ -47,12 +56,21 @@ here and in markout.js. Examples include 'autopower' ('autoPower') and 'automou {% else %} {% assign machine_config = machine.config %} {% endunless %} + {% if machine.drives != nil %} + {% if machine.drives == '' %} + {% assign machine_drives = '[]' %} + {% else %} + {% capture machine_drives %}{{ machine.drives }}{% endcapture %} + {% endif %} + {% else %} + {% capture machine_drives %}null{% endcapture %} + {% endif %} {% unless machine.template %} {% assign machine_template = '' %} {% else %} {% assign machine_template = machine.template %} {% endunless %} - {% capture machine_parms %}{{ site.left_brace }}autoPower:{{ machine_autoPower }},state:"{{ machine.state }}",autoMount:{{ machine_autoMount }},messages:"{{ machine.messages }}"{{ site.right_brace }}{% endcapture %} + {% capture machine_parms %}{{ site.left_brace }}autoMount:{{ machine_autoMount }},autoPower:{{ machine_autoPower }},drives:{{ machine_drives }},state:"{{ machine.state }}",messages:"{{ machine.messages }}"{{ site.right_brace }}{% endcapture %} {% if site.pcjs.compiled == true and machine.uncompiled != true %} {% capture machine_script %}{% endcapture %} {% unless machine_scripts contains machine_script %} diff --git a/_posts/2015-07-17-windows-95.md b/_posts/2015-07-17-windows-95.md index ce2f9d2d5..18487ef5f 100644 --- a/_posts/2015-07-17-windows-95.md +++ b/_posts/2015-07-17-windows-95.md @@ -4,6 +4,14 @@ title: Windows 95 date: 2015-07-17 11:00:00 category: Windows 95 permalink: /blog/2015/07/17/ +machines: + - type: pc + id: deskpro386 + debugger: true + state: /disks/pc/windows/win95/4.00.950/deskpro386.json + config: /devices/pc/machine/compaq/deskpro386/vga/4096kb/machine.xml + drives: '[{name:"68Mb Hard Disk",type:4,path:"http://archive.pcjs.org/disks/pc/fixed/68mb/win95.json"}]' + autoMount: '' --- This week (July 14, 2015) was the 20th anniversary of Windows 95 RTM ("Release To Manufacturing"). So I decided to @@ -186,9 +194,9 @@ Lots of bugs have been squashed in the past few weeks -- not enough to finish se closer. More details on recent releases can be found [here](https://github.com/jeffpar/pcjs/releases). The machine below has been reconfigured with a hard disk image containing all the Windows 95 Setup files. The machine -is at the point where Windows 95 SETUP has just rebooted. Click the "Run" button to start the machine. +is at the point where Windows 95 SETUP has just rebooted. -[Embedded DeskPro 386](/devices/pc/machine/compaq/deskpro386/vga/4096kb/machine.xml "PCjs:deskpro386:::debugger") +{% include machine.html id="deskpro386" %} *[@jeffpar](http://twitter.com/jeffpar)* *July 17, 2015 (updated September 12, 2015)* 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 ac11bbf09..920fbc377 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 @@ -8,7 +8,10 @@ machines: - type: pc id: deskpro386 debugger: true + state: /disks/pc/windows/win95/4.00.950/deskpro386.json config: /devices/pc/machine/compaq/deskpro386/vga/4096kb/machine.xml + drives: '[{name:"68Mb Hard Disk",type:4,path:"http://archive.pcjs.org/disks/pc/fixed/68mb/win95.json"}]' + autoMount: '' --- Today, the last serious bug preventing a successful boot of Windows 95 was fixed. I won't bore you with @@ -19,7 +22,7 @@ converts an immediate signed byte into a signed word. Those variations were fai a 16-bit operand size was in effect, and if the destination was a register, the upper 16 bits of that register could become corrupted. -The [Windows 95 Test Machine](/devices/pc/machine/compaq/deskpro386/vga/4096kb/) hard disk has been updated +The [Windows 95 Test Machine](/disks/pc/windows/win95/4.00.950/) hard disk has been updated with a complete set of Windows 95 files from a "Compact" installation, and first boot has finished, so instead of the initial "Getting ready to run Windows 95 for the first time..." splash screen, you'll see the normal Windows 95 startup screen. diff --git a/_posts/2015-12-10-rebuilding-the-pcjs-website.md b/_posts/2015-12-10-rebuilding-the-pcjs-website.md index 692d2f603..67b5d3372 100644 --- a/_posts/2015-12-10-rebuilding-the-pcjs-website.md +++ b/_posts/2015-12-10-rebuilding-the-pcjs-website.md @@ -74,8 +74,8 @@ You may also use `config` to specify a machine XML configuration file if not usi 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, so this appears at the top of the root -[README.md](https://raw.githubusercontent.com/jeffpar/pcjs/master/README.md): +For example, the PCjs Home page contains two machines, so this appears at the top of the +[Markdown file](https://raw.githubusercontent.com/jeffpar/pcjs/master/index.md): machines: - type: pc @@ -92,14 +92,22 @@ FDC `autoMount` setting, making it easy to reuse the same machine XML file with - type: pc id: deskpro386 debugger: true - config: /devices/pc/machine/compaq/deskpro386/ega/4096kb/machine.xml autoMount: A: path: /disks/pc/os2/misc/football/FOOTBALL-76817.json + config: /devices/pc/machine/compaq/deskpro386/ega/4096kb/machine.xml -`messages`, `state`, and `autoPower` are some other settings that can be overridden, and support for more can -easily be added. +Other settings that can currently be overridden include: + + `autoPower` + + `drives` + + `messages` + + `state` + +Additional overrides will be added as needed. See the [Windows 95 Demo](/disks/pc/windows/win95/4.00.950/) +machine and its associated [Markdown file](https://raw.githubusercontent.com/jeffpar/pcjs/master/disks/pc/windows/win95/4.00.950/README.md) +for more override examples, including how to set `autoMount` to *not* mount any diskettes. + I will continue to include a Node web server with the PCjs project, but it's now intended for development purposes only (not production servers). I've updated the PCjs MarkOut component to parse any "Front Matter" at the top of the PCjs Markdown files, and to convert all new Jekyll-style embedded machines and screenshots diff --git a/devices/pc/machine/compaq/deskpro386/README.md b/devices/pc/machine/compaq/deskpro386/README.md index 1738e16a0..e8137359e 100644 --- a/devices/pc/machine/compaq/deskpro386/README.md +++ b/devices/pc/machine/compaq/deskpro386/README.md @@ -10,4 +10,5 @@ COMPAQ DeskPro 386 Machines * [COMPAQ DeskPro 386 with 2Mb RAM and COMPAQ EGA](ega/2048kb/) * [COMPAQ DeskPro 386 with 4Mb RAM and COMPAQ EGA](ega/4096kb/) * [COMPAQ DeskPro 386 with 2Mb RAM and IBM VGA](vga/2048kb/) -* [COMPAQ DeskPro 386 with 4Mb RAM and IBM VGA, running Windows 95](vga/4096kb/) +* [COMPAQ DeskPro 386 with 4Mb RAM and IBM VGA](vga/4096kb/) +* [COMPAQ DeskPro 386 with 4Mb RAM and IBM VGA running Windows 95](/disks/pc/windows/win95/4.00.950/) diff --git a/devices/pc/machine/compaq/deskpro386/vga/4096kb/README.md b/devices/pc/machine/compaq/deskpro386/vga/4096kb/machine.md similarity index 88% rename from devices/pc/machine/compaq/deskpro386/vga/4096kb/README.md rename to devices/pc/machine/compaq/deskpro386/vga/4096kb/machine.md index 0cf5eaf2f..07280c980 100644 --- a/devices/pc/machine/compaq/deskpro386/vga/4096kb/README.md +++ b/devices/pc/machine/compaq/deskpro386/vga/4096kb/machine.md @@ -8,7 +8,4 @@ machines: debugger: true --- -Windows 95 Test Machine ---- - {% include machine.html id="deskpro386" %} diff --git a/devices/pc/machine/compaq/deskpro386/vga/4096kb/machine.xml b/devices/pc/machine/compaq/deskpro386/vga/4096kb/machine.xml index aaaafcfee..32f50463c 100644 --- a/devices/pc/machine/compaq/deskpro386/vga/4096kb/machine.xml +++ b/devices/pc/machine/compaq/deskpro386/vga/4096kb/machine.xml @@ -2,18 +2,18 @@ COMPAQ DeskPro 386, 4Mb RAM, IBM VGA, 20Mb Hard Disk - +