IBM PC Disk Archives --- Below are selected Disk Sets featuring "Ready-to-Boot" machine configurations: * [IBM PC (Model 5150), MDA, 64K, CP/M-86](/disks/pc/cpm/) * [IBM PC (Model 5150), MDA, 64K, IBM Diagnostics v2.20](/disks/pc/diags/ibm/2.20/) * [IBM PC (Model 5150), CGA, 64K, Zork I](/disks/pc/games/infocom/zork1/) You can browse the rest of our disk archives by type. There is no search capability at this time. Learn more about PCjs disk image formats [here](/disks/). Disk Sets --- Disks can be organized into *Disk Sets* (manifests) which can then be loaded by the FDC component of [IBM PC Machine Configurations](/devices/pc/machine/). ### Example An FDC (Floppy Disk Controller) XML file, such as [samples.xml](samples.xml), typically contains <disk> entries like: PC-DOS 1.0 PC-DOS 1.1 PC-DOS 2.0 (Disk 1) PC-DOS 2.0 (Disk 2) Microsoft Adventure VisiCalc However, if you wanted to load VisiCalc directly from the /apps folder, rather than using a pre-generated disk image, you could do that with an <manifest> entry that references the application's manifest.xml: The application must have a **manifest.xml** with <disk> section containing an *id* value that matches the *disk* value specified above: VC.COM README.md VisiCalc License If multiple disks are defined in the manifest, and you want to include them all, you can set the *disk* value to '*', as in: As an added bonus, PCjs will automatically display the descriptive <link> whenever this item is selected, and it will dynamically generate a disk image containing all the specified <file> entries when the selected item is loaded. Pre-generated images are still preferred, and you can now include those in the application **manifest.xml** as well, by adding an *href* value to the <disk> section that was used to create the image: VC.COM README.md VisiCalc License The PCjs DiskDump module is used to create all our pre-generated JSON-encoded disk images. In the above example, a pre-generated disk image could be created from the command-line with either the "--dir" option (which will traverse all subdirectories as well): node diskdump --dir=./apps/pc/1981/visicalc/bin/ --format=json --output=./apps/pc/1981/visicalc/disk.json or with the "--path" option, which specifies either a single file or a set files separated by semi-colons: node diskdump "--path=./apps/pc/1981/visicalc/bin/vc.com;../readme.md" --format=json --output=./apps/pc/1981/visicalc/disk.json or via the PCjs server's DiskDump API: http://www.pcjs.org/api/v1/dump?path=/apps/pc/1981/visicalc/bin/vc.com&format=json