IBM PC Disk Library
The focus here is on historically significant PC software from the early 1980s through the early 1990s, which required nothing more than a machine equipped with an 8088 (or 80286 or 80386) CPU and a standard IBM video card.
Whenever possible, PCjs uses unmodified copies of the original software. Exceptions include application “Demo Disks” that we’ve created for our IBM PC Application Demos and copy-protected software that requires a patch in order to run. However, if patching is necessary, we try to identify and explain the patch involved; see Lotus 1-2-3 Release 1A* for an example.
Any disk loaded into a PCjs machine can also be saved to your local machine, but be aware that any changes you made to the disk will be saved as well, and if it’s a DOS disk, PCjs may also update the disk’s signature and BPB, to help with disk identification and mounting; see the description of the PC DOS 0.90 Boot Sector for an example. macOS has built-in support for mounting .IMG disk images, and Windows can mount them with the help of third-party software like OSFMount.
The summary below is not a complete list of everything in our Disk Manifests, just highlights. For some of the disks, we have provided more information about the software, and in some cases, machines that automatically run the software. Eventually, everything in the library should be listed here, with links to pages that describe the software in more detail, along with live demonstrations.
Applications and Demos
- Ashton-Tate dBase II
- IBM Fantasy Land EGA Demo
- IBM TopView
- Lotus 1-2-3
- MicroPro WordStar
- Microsoft Applications
- Software Arts VisiCalc
Also see our collection of selected IBM PC Application Demos.
- PC-SIG Library 8th Edition CD-ROM (April 1990)
- PC Magazine (Vols. 6-14)
- PC Tech Journal (1985-1989)
- Unprotect Files
Diagnostics and ROMs
- DOS Internals software by Geoff Chappell
- Undocumented PC software by Frank van Gilluwe
- Unauthorized Windows 95 software by Andrew Schulman
- Undocumented DOS software by Schulman, Michels, Kyle, Paterson, Maxey, Brown
- Undocumented Windows software by Schulman, Maxey, Pietrek
Typically, all the distribution disks for a single version of a piece of software are placed in a single folder, along with a manifest.xml file containing metadata about the software and a list of the individual disks. This is generally referred to as a Software Manifest, but when dealing specifically with disk images, it’s also known as a Disk Manifest. All Disk Manifests are then bundled into a Disk Library.
A Disk Manifest can then be added to a Floppy Drive Controller (FDC) configuration file, making all its disks available to any machine loading that particular configuration file.
A simple FDC configuration file, such as samples.xml, could contain individual <disk> entries like:
<fdc id="fdcNEC"> <disk path="/disks/pcx86/dos/ibm/1.00/PCDOS100.json">PC DOS 1.00</disk> <disk path="/disks/pcx86/dos/ibm/1.10/PCDOS110.json">PC DOS 1.10</disk> <disk path="/disks/pcx86/dos/ibm/2.00/PCDOS200-DISK1.json">PC DOS 2.00 (Disk 1)</disk> <disk path="/disks/pcx86/dos/ibm/2.00/PCDOS200-DISK2.json">PC DOS 2.00 (Disk 2)</disk> ... </fdc>
However, listing individual diskettes like that is tedious, so support was added for Disk Manifest references:
Instead of listing the PC DOS 2.00 diskettes individually, they can now be added to an XML configuration file with a single Disk Manifest reference:
<manifest ref="/disks/pcx86/dos/ibm/2.00/manifest.xml" disk="*"/>
When you want to include only one particular disk from a manifest, set the disk value to the id of the disk. Here’s how you would include only the first disk from PC DOS 2.00:
<manifest ref="/disks/pcx86/dos/ibm/2.00/manifest.xml" disk="disk01"/>
Here’s what the entire Disk Manifest for PC DOS 2.00 currently looks like:
<manifest type="software"> <title>PC DOS</title> <version>2.00</version> <type>DOS</type> <category>Operating System</category> <author>IBM/Microsoft</author> <releaseDate/> <disk id="disk01" size="184320" chs="40:1:9" img="archive/PCDOS200-DISK1.img" href="/disks/pcx86/dos/ibm/2.00/PCDOS200-DISK1.json" md5="d57ceef82122790d1c0ff7bebc12f90a" md5json="2507c02da6cbafe9a94a35cbdd993be2"> <name>PC DOS 2.00 (Disk 1)</name> </disk> <disk id="disk02" size="184320" chs="40:1:9" img="archive/PCDOS200-DISK2.img" href="/disks/pcx86/dos/ibm/2.00/PCDOS200-DISK2.json" md5="1c7aac53c78446992f8821cf42d04c4a" md5json="b66e296319c1f97990b596b1aa376d39"> <name>PC DOS 2.00 (Disk 2)</name> </disk> </manifest>