![one_one_two.png](https://cdn-learn.adafruit.com/user_assets/assets/000/000/597/large1024/one_one_two.png?1704666501)
MS-DOS generally has two distinct types of disk drives: floppy drives and hard drives. Floppy drives are fixed size drives generally with capacities of 360kB, 720kB, 1200kB, 1440 kB or 2880kB (though there are older 160kB, 180kB, and 320kB models). Hard drives can come in different sizes with early models generally 10MB and more.
In a modern context, disk image files capture the files from a physical disk and store it as a single, specially formatted file called a disk image. The disk image may be used with modern software (or hardware) for various purposes:
- Archiving physical disks
- Taking archival snapshots and making physical media copies
- Perform forensic studies of physical disks
- Transfer files from one environment to another
- Emulating vintage systems
Disk images may now be created that are not copies of physical disks but rather containers to put vintage software for use in vintage hardware or emulators. While appearing to be a clunky way of aggregating files (compared to zip files, etc.), the disk image is useful in a number of scenarios.
![one_one.jpg](https://cdn-learn.adafruit.com/user_assets/assets/000/000/618/large1024/one_one.jpg?1705094602)
Disk Basics
How disks are physically structured and how data is recorded on them is a lengthy discussion. See Brutman Working with Disks for some background.
With physical disk drives being circular, areas were broken into circular tracks. Pieces of the circle, semicircular, were usually of a fixed size and called sectors. (Wikipedia) In general, each sector of an IBM compatible disk has 512 byte sectors. The number of sectors per circular track varies depending on the disk density.
Files contain one or more sectors. One or more sectors can be aggregated into a cluster for ease of allocation. Special data sections on the disk keep track of which locations on disk belong to what files.
MS-DOS assigns each disk a drive letter to identify different drives, followed by a colon. Floppy drives were generally designated A: and B:, hard drives usually started at C:. There are exceptions, of course. Also software can be used to create special drives that don't correspond to physical local disks but are software defined. Examples may be a network drive or RAM disk.
Hard drives used to sometimes be bigger than the maximum drive letter size. They can be divided into smaller virtual hard drives through a process called partitioning. A 120MB hard drive using the older FAT16 disk format can only handle 32MB drives. Partitioning it to use 4 partitions of 30MB would use the entire disk. Each partition generally has a drive letter (C:, D:, etc.)
![one_one.png](https://cdn-learn.adafruit.com/user_assets/assets/000/000/617/large1024/one_one.png?1705094319)
Contents of a Disk Image
Disk images may be contain of any type of file. If they files are to be used in a physical machine or emulated environment, they should conform to that environment, re. if one is using an IBM PC/AT machine or emulator, files should be MS-DOS compatible for the hardware and operating system used.
For MS-DOS, the file systems the operating system understands can vary from DOS version to DOS version. For example MS-DOS 1.x did not use subdirectories or understand hard disks. Starting with MS-DOS 2, the File Allocation Table file system (Wikipedia) has been used for all floppies and hard drives. In the documentation for NetDrive, Michael Brutman discusses various disk formats used by MS-DOS.
- FAT12:
- Required for DOS 2.x.
- Supports hard drives up to 32MB. (65535 sectors max)
- Maximum number of files: Just under 4K
- Max format: Just under 4K clusters at 16 sectors per cluster
- Used by floppy disks and small hard drives
- FAT16 (also known as original FAT16):
- Introduced with DOS 3.x.
- Supports hard drives up to 32MB, but more efficiently than FAT12. (Also 65535 sectors max)
- Maximum number of files: Just under 64K
- Max format: 64K clusters at 1 sector per cluster
- FAT16B (also known as final FAT16):
- Introduced with Compaq MS-DOS 3.31, widely available in DOS 4.x and up
- Supports hard drives up to 2GB
- Max format: 64K clusters at 64 sectors per cluster
The sector size must be 512 bytes to ensure maximum compatibility.
There are places on a disk for file directory entries, a file allocation table (where each file is, it's size and which sectors/clusters comprise the file).
![one_one.png](https://cdn-learn.adafruit.com/user_assets/assets/000/000/621/large1024/one_one.png?1705094878)
How we can Perceive a Disk Image Structure
Rather than know all about physical layouts, we can leave the MS-DOS file system to worry about details. Images can be files that have all the details about disks inside them and work like disks with the appropriate software.
In the context of disk images:
An empty disk image has no formatting as to what the disk is, re no FAT information. It cannot be written to without formatting to put the directory (and possibly system files) on it via formatting.
A blank disk image has been formatted by a version of MS-DOS to a particular FAT structure (FAT12, FAT16, FAT16B) so it is ready to receive files. For a hard disk image, a partition manager like MS-DOS FDISK has been used to designate what partitions exist prior to formatting.
A bootable disk image has a Boot Sector (floppies) or Master Boot Record (hard drives) letting MS-DOS know the disk is bootable and the locations of the required boot files (hidden files MSDOS.SYS and IO.SYS) and the command interpreter (COMMAND.COM).
A formatted disk image has some files on it and may or may not be bootable.
![one_one.png](https://cdn-learn.adafruit.com/user_assets/assets/000/000/615/large1024/one_one.png?1705093437)
Finding Disk Images on the Internet
Bootable Disks / Operating System Disk Images
Generally it is best to make your own bootable operating system disks from media you own. Or obtain them from a company that has released them into the public domain.
FreeDOS is an open source DOS-compatible operating system that you can use to play classic DOS games, run legacy business software, or develop embedded systems. Any program that works on MS-DOS should also run on FreeDOS.
MS-DOS was released by Microsoft. PC-DOS was IBM's version of MS-DOS. Note they can be different from each other. Other companies also released versions of MS-DOS licensed from Microsoft, most notably Compaq. See Wikipedia: MS-DOS. There was a competitor to MS-DOS, DR-DOS, starting in 1988 Wikipedia). Wikipedia also has a comparison of DOS operating systems as a good reference (Wikipedia). And also a timeline of DOS operating systems (Wikipedia).
A general source for operating system and application software is the Internet Archive, which has thousands of programs. Be sure to save software either in a disk image format or you may have to copy it over to a disk image (an extra, sometimes not easy, step).
Obtaining MS-DOS Disk Images
MS-DOS versions 1.25 and 2.11 have been released by Microsoft as open source under an MIT license. FreeDOS is also an open source GPL license. Other versions of DOS likely have copyright. If one has a disk image, one should have a license, usually physical media like floppy disks or a CD-ROM.
Images are being hosted on the internet, of course. It is up to the reader to do their homework as to the licensing of software they wish to obtain.
Websites with MS-DOS operating system disk images:
- A site that has MS-DOS 3 to 6: https://www.allbootdisks.com/download/dos.html (tested ok)
- A site which has DOS 1 to 7.1: https://winworldpc.com/product/ms-dos/1x (untested)
As with all software download sites, use a good antivirus / antimalware suite. For example, bootdisk.com claims they have boot disk images but they are flagged for malware by some software.
Locations to Obtain Application Disk Images
Throughout the history of MS-DOS systems, there have been numerous software licensing models. Some free, some shareware / donationware, and various commercial models. As companies went out of business, many packages became abandonware.
The licensing of non-free software is a complex subject. To that end, there are places to get disk images of vintage software.
- The Internet Archive
- https://www.goodolddays.net/diskimages/ (untested)
![Screenshot_2024-01-22_111822.jpg](https://cdn-learn.adafruit.com/user_assets/assets/000/001/000/large1024/Screenshot_2024-01-22_111822.jpg?1721248748)
Disk Images and Emulation
The sire PCjs.org features emulation of IBM PCs in the browser (and emulation of some non-PC architectures). A number of PC, PS/XT, PC/AT, and PCjr models are emulated (with various configurations of hardware).
The site comes with a wide range of hard disk and floppy images. The application software library is impressive. Images may be imported to emulated systems and images may be exported to a hard disk. Machines can also use images referenced by an web URL. Very flexible and handy.
Blank Images for Your Use
Here are some blank floppy images I've made to get folks started. They are not formatted, they are empty containers.
![one_one.jpg](https://cdn-learn.adafruit.com/user_assets/assets/000/000/616/large1024/one_one.jpg?1705093600)
Using Disk Images
Once you have disk images, what are they good for? They are snapshots of physical disks, so as said earlier, they can be used for archival purposes, used on vintage hardware, or on emulated hardware. An example is use of a Gotek floppy emulator. Originally for organs which had failed floppy drives, a Gotek devics looks like a floppy drive to vintage equipment but typically has a USB interface where a thumb drive full of floppy images can be plugged in. This allows the vintage hardware to use disk images at will. Handy.
There are some other modern hardware add-ons that allow mounting disk images. The PicoMEM card by FreddyV is in beta tests. It allows floppy images saved to microSD card to us used in the computer the card is placed in (with an ISA card slot, 8088/8086/80286 processor).
Using Disk Images Over a Network
Another modern use is with networking vintage computers (or virtual machines emulating vintage computers). The mTCP networking software suite allows vintage IBM compatible hardware to access other machines via TCP/IP internet protocols. mTCP NetDrive can use a modern machine to host floppy and hard drive disk images and allow vintage machines to access them like local/networked drives.
This topic is covered in a separate Playground Note: Accessing Remote Disks on MS-DOS via TCP.
Advanced: Mounting/Making/Using Disk Images in MS-DOS
This is a whole topic in of itself. See the Vogon Forum thread here for some recommended utilities. I hope to try them out and provide a new Playground Note on this topic.
![one_one.png](https://cdn-learn.adafruit.com/user_assets/assets/000/000/619/large1024/one_one.png?1705094733)
Manipulating Floppy Disk Images in Modern Windows
You might want to make your own disk images to copy period software for use. Or If you have disk images, you may want to work with them like typical disks, re. add files, remove files, view what's on a disk image etc.
While in the past it took command like software to work with disk images on modern hardware, there is some software that provides methods to work with disk images.
WinImage (highly recommended)
WinImage (https://www.winimage.com/winimage.htm) is a GUI-based program. One can create images, open existing images and change images. The interface is relatively basic, not dissimilar to manipulating Zip files. Unlike Zip files, the container files are fixed size and have the internal structure of a physical disk with FAT file system, sectors and clusters. WinImage is shareware. It has a 30 day evaluation period and needs to be licensed for use after 30 days.
ImDisk
ImDisk Toolkit Files (https://sourceforge.net/projects/imdisk-toolkit/) is a WinXP through Win 10 GUI set of programs. Disk images (floppy or hard drive) can be opened as a drive letter (or directory mount point) in modern Windows. Files can be copied back and forth freely.
- Website - http://www.ltr-data.se/opencode.html/#ImDisk
- GitHub - https://github.com/LTRData/ImDisk
Arsenal Image Mounter
Arsenal Image Mounter (https://arsenalrecon.com/products/arsenal-image-mounter) is a modern tool typically used for forensics of disk image snapshots. GitHub https://github.com/ArsenalRecon/Arsenal-Image-Mounter
Making Floppy Disk Images on a Modern Windows Machine (besides above)
To make empty floppy and hard drive images, use NetDrive in a Windows Command Box:
https://www.brutman.com/mTCP/mTCP_NetDrive.html
- netdrive create floppy 360 360.img
- netdrive create floppy 1200 1200.img
- netdrive create floppy 720 720.img
- netdrive create floppy 1440 1440.img
- netdrive create floppy 2880 2880.img
Hard disk images can also be created with various sizes, FAT versions and other parameters. NetDrive does not format disk images or provide a capability to make them bootable.
![20240113_191134.jpg](https://cdn-learn.adafruit.com/user_assets/assets/000/000/628/large1024/20240113_191134.jpg?1705191934)
Making Disk Images on a Vintage Machine
The beauty of making disk images on modern equipment is that vintage equipment may not be available.
If you have a vintage MS-DOS machine, there are tools to create disk images. Due to the limited processing capabilities of vintage hardware, manipulating images is usually not possible. Any changes should be contemplated on the actual disk, if possible, before writing an image.
DSKIMAGE
DSKIMAGE by Michael B. Brutman (maker of mTCP) works for MS-DOS 2 and greater. (Screen above) https://www.brutman.com/DskImage/
FDimage
FDimage or My Floppy Drive Image tool - the latest is 1.06 on the third page of the thread https://forum.vcfed.org/index.php?threads/my-floppy-drive-image-tool-1-00.62346/
FREAD
This tool by Freddy can create a .IMG from a physical floppy. https://github.com/FreddyVRetro/FREAD-DOS-Disk-Image-Creator (in development)
With a PicoMEM hardware card installed
Be sure you have a physical floppy drive for the media you want the image of. Get a blank disk image put onto your PicoMEM microSD card in the /FLOPPY directory. Use WinImage or NetDrive on your modern Windows box to make the correct size blank file. Assuming your physical drive is A: and your PicoMEM virtual drive with blank floppy image is B:, do:
DISKCOPY A: B:
Making a New Disk Image Bootable on a Vintage Machine with PicoMEM
Place two images on your PicoMEM microSD card: a blank floppy or hard drive image and an operating system floppy (obtainable above).
Boot to the operating system floppy into MS-DOS.
If the second image is C: (it could be B: etc., change accordingly)
- If the image is a hard drive image: FDISK to create a partition structure
- FORMAT /S C: to make the new image bootable with minimal system files
- Copy any other DOS system files from the DOS image to the new image.
If the new image is already formatted, you can use SYS C: to make the image bootable with minimal files.
Making Floppy Disk Images with Linux
This is beyond the scope of this guide. The linux dd
command can work with MS-DOS disk images. GNU Mtools is a collection of utilities for access MS-DOS disks from GNU and Unix without mounting them.
A more common method in Linux distributions is mkdosfs.msdos and mkdosfs.vfat (man page).
Please consult other references on using Linux with MS-DOS disk images.
![one_one.png](https://cdn-learn.adafruit.com/user_assets/assets/000/000/620/large1024/one_one.png?1705094801)
Information About Floppy Disks
See a comprehensive discussion by Michael Brutman: Working with Disks.