README and JSON updates

This commit is contained in:
Jeff Parsons 2016-05-23 13:16:25 -07:00
commit a54d5564a7
43 changed files with 15526 additions and 3931 deletions

View file

@ -42,20 +42,22 @@ provides more detail.
VisiCalc is stored in an [/apps folder](/apps/pcx86/1981/visicalc/), and two relevant files are
described by <file> entries in its [manifest](/apps/pcx86/1981/visicalc/manifest.xml):
<manifest>
<title>VisiCalc</title>
<version>VC-176Y2-IBM-TEST</version>
<type>Application</type>
<category>Productivity</category>
<company>Software Arts</company>
<releaseDate>December 16, 1981</releaseDate>
<machine href="/devices/pcx86/machine/5150/mda/64kb/machine.xml" state="/apps/pcx86/1981/visicalc/state.json"/>
<disk id="disk" dir="/apps/pcx86/1981/visicalc/bin/">
<file>VC.COM</file>
<file dir="../">README.md</file>
<link href="http://www.bricklin.com/history/vclicense.htm">VisiCalc License</link>
</disk>
</manifest>
```xml
<manifest>
<title>VisiCalc</title>
<version>VC-176Y2-IBM-TEST</version>
<type>Application</type>
<category>Productivity</category>
<company>Software Arts</company>
<releaseDate>December 16, 1981</releaseDate>
<machine href="/devices/pcx86/machine/5150/mda/64kb/machine.xml" state="/apps/pcx86/1981/visicalc/state.json"/>
<disk id="disk" dir="/apps/pcx86/1981/visicalc/bin/">
<file>VC.COM</file>
<file dir="../">README.md</file>
<link href="http://www.bricklin.com/history/vclicense.htm">VisiCalc License</link>
</disk>
</manifest>
```
Since this [manifest](/apps/pcx86/1981/visicalc/manifest.xml) also contains a &lt;machine&gt; entry,
the default manifest stylesheet will automatically load and launch the associated
@ -63,12 +65,16 @@ the default manifest stylesheet will automatically load and launch the associate
to its own &lt;[computer](/docs/pcx86/computer/)&gt; settings, unless the manifest overrides the machine's
default state with its own *state* setting; eg:
<machine href="/devices/pcx86/machine/5150/mda/64kb/machine.xml" state="/apps/pcx86/1981/visicalc/state.json"/>
```xml
<machine href="/devices/pcx86/machine/5150/mda/64kb/machine.xml" state="/apps/pcx86/1981/visicalc/state.json"/>
```
The machine.xml file, in turn, refers to a [sample set](/disks/pcx86/samples.xml) of disk images, one of which is:
<manifest ref="/apps/pcx86/1981/visicalc/manifest.xml" disk="*"/>
```xml
<manifest ref="/apps/pcx86/1981/visicalc/manifest.xml" disk="*"/>
```
which refers to the &lt;disk&gt; entry in the VisiCalc manifest -- which brings us full circle.
Since that &lt;disk&gt; entry is just a reference to a folder, PCjs must first convert it to a disk image,
@ -83,11 +89,13 @@ However, to avoid the PCjs web server re-generating the same disk image for ever
have saved that JSON-encoded image as static file on the server, and then added an *href* attribute to the manifest's
&lt;disk&gt; entry:
<manifest>
<disk id="disk01" dir="/apps/pcx86/1981/visicalc/archive/" href="/apps/pcx86/1981/visicalc/disk.json">
...
</disk>
</manifest>
```xml
<manifest>
<disk id="disk01" dir="/apps/pcx86/1981/visicalc/archive/" href="/apps/pcx86/1981/visicalc/disk.json">
...
</disk>
</manifest>
```
PCjs always prefers a resource specified by *href*. While the &lt;file&gt; entries are now superfluous, they
still serve to document the contents of the disk image, and are still necessary if the disk image ever needs to
@ -98,23 +106,25 @@ be re-generated.
CPM-86 is stored as two disk images in a [/disks folder](/disks/pcx86/cpm/1.1b/). The disk images are described in that
folder's [manifest](/disks/pcx86/cpm/1.1b/manifest.xml):
<manifest>
<title>CP/M-86</title>
<version>1.1B</version>
<type>OS</type>
<category>Operating System</category>
<company href="http://en.wikipedia.org/wiki/Digital_Research">Digital Research</company>
<publisher href="http://en.wikipedia.org/wiki/Eagle_Computer">Eagle Computer</publisher>
<releaseDate>May 20, 1983</releaseDate>
<machine href="/disks/pcx86/cpm/1.1b/machine.xml"/>
<disk id="disk01" href="/disks/pcx86/cpm/1.1b/cpm86-disk1.json">
<name>CP/M-86 (Disk 1)</name>
</disk>
<disk id="disk02" href="/disks/pcx86/cpm/1.1b/cpm86-disk2.json">
<name>CP/M-86 (Disk 2)</name>
</disk>
</manifest>
```xml
<manifest>
<title>CP/M-86</title>
<version>1.1B</version>
<type>OS</type>
<category>Operating System</category>
<company href="http://en.wikipedia.org/wiki/Digital_Research">Digital Research</company>
<publisher href="http://en.wikipedia.org/wiki/Eagle_Computer">Eagle Computer</publisher>
<releaseDate>May 20, 1983</releaseDate>
<machine href="/disks/pcx86/cpm/1.1b/machine.xml"/>
<disk id="disk01" href="/disks/pcx86/cpm/1.1b/cpm86-disk1.json">
<name>CP/M-86 (Disk 1)</name>
</disk>
<disk id="disk02" href="/disks/pcx86/cpm/1.1b/cpm86-disk2.json">
<name>CP/M-86 (Disk 2)</name>
</disk>
</manifest>
```
In this case, the software was "born" as disk images (non-DOS disk images at that), so we don't
bother listing the contents of those images with &lt;file&gt; entries inside the &lt;disk&gt; entries.
@ -123,10 +133,14 @@ the disk images.
If a machine file wanted to use only the first disk, then it would specify:
<manifest ref="/disks/pcx86/cpm/1.1b/manifest.xml" disk="disk01"/>
```xml
<manifest ref="/disks/pcx86/cpm/1.1b/manifest.xml" disk="disk01"/>
```
and if it wanted to use all the disks listed in the manifest, it would specify:
<manifest ref="/disks/pcx86/cpm/1.1b/manifest.xml" disk="*"/>
```xml
<manifest ref="/disks/pcx86/cpm/1.1b/manifest.xml" disk="*"/>
```
which is what our [CP/M Machine Configuration](/disks/pcx86/cpm/1.1b/machine.xml) does.