--- layout: page title: IBM PC Application Demos permalink: /apps/pcx86/ --- {% include_relative README.md %} --- ### Creating IBM PC Application Demos Demos in our [Application Archives](/apps/) combine [Software Application Manifests](/apps/#software-application-manifests) with [Machine Configurations](/devices/pcx86/machine/). We'll use the [VisiCalc Demo](1981/visicalc/) as an example. First, we choose a machine configuration. For VisiCalc, we chose a Model 5150 machine with a Monochrome Display, and then inserted a link to that machine in the demo's [manifest](1981/visicalc/manifest.xml): ```xml ``` Next, the [manifest](1981/visicalc/manifest.xml) requires a disk image containing the VisiCalc program (VC.COM). We used the [DiskDump](/modules/diskdump/) module to create that disk image: cd apps/pcx86/1981/visicalc node ../../../../modules/diskdump/bin/diskdump --dir=archive/visicalc.81 --format=json --output=VISICALC1981.json --manifest The DiskDump command creates a disk image named **VISICALC1981.json** containing the files the archive/visicalc.81 subdirectory (ie, **VC.COM**) and automatically added that disk image to the demo's [manifest](1981/visicalc/manifest.xml): ```xml VisiCalc (1981) VC.COM VisiCalc License ``` Now that the manifest contains a disk image, we were able to add the manifest to our set of [Sample Disks](/disks/pcx86/samples.xml): ```xml ``` Next, we started a version of our chosen machine that's also configured to use the Debugger, by loading the following **machine.xml** into a web browser (it's assumed the Node web server is already running on port 8088): http://localhost:8088/devices/pcx86/machine/5150/mda/64kb/debugger/machine.xml Then we booted DOS, loaded the VisiCalc disk, ran VisiCalc, pressed the Debugger's "Halt" button, pressed "Clear" to clear the Debugger's output window, and typed the following Debugger command: d state We copied-and-pasted the entire contents of the Debugger's output window into a file named "state.json", and then updated the <machine> entry in the [manifest](1981/visicalc/manifest.xml): ```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.