Support for overriding machine hard drive(s)

This commit is contained in:
Jeff Parsons 2016-03-10 00:54:34 -08:00
commit e9e7ccf6f2
17 changed files with 370 additions and 310 deletions

View file

@ -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)*

View file

@ -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.

View file

@ -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