About this system | How to install it | How to use it | Create a self-contained Windwows 3.1x app | Run a single program and exit | Install other programs | The Utilities folder | Notes
Current versions of macOS can run software written for Windows 3.x only through the use of an emulator such as DOSBox-X or DOSBox. Under older versions of macOS, Windows 3.x apps could be used with software based on the Wine project. Starting with macOS 10.15 Catalina, this is no longer possible.
This page provides a setup program that makes it easy to create a Windows 3.1x system that runs under DOSBox-X in macOS The setup program does the installation for you, but you will need to provide a full set of Windows 3.1x or Windows for Workgroups 3.11 installation files, disks, or disk images, or a Windows 3.1x or Windows for Workgroups 3.11 installation CD (or CD image file), or an MSDN download of Windows for Workgroups 3.11. You may use the installation files or disks from any roman-alphabet version of Windows 3.11. (No product code is required when installing Windows 3.x.)
This system requires macOS 10.14 Mojave or later, and runs on Intel or Apple Silicon machines.
This system can print to your current macOS default printer or any other printer installed in your host macOS system, and it can exchange text between the Windows 3.1x clipboard and the host macOS clipboard.
This system includes sound, display, and joystick drivers, but it does not include advanced features like WinG and Win32s, which can be added by following the guide described below. It also includes icons that will install WinVideo and QuickTime for Windows if you want them.
Note: This system was updated 8 January 2024 for improved performance.
Windows 3.1x installation files (or disks, disk images, CD, or CD image) should be easy to find on eBay or elsewhere. MSDN (VisualStudio.com) subscribers can download and use en_wfw311.exe, which contains the latest version of Windows for Workgroups 3.1x, or any other roman-alphabet language version of the MSDN download of WfW311 (e.g. fr_wfw311.exe). Microsoft's license agreement for Windows 3.x gave you the right to make an archival copy of the installation media. Perhaps you can find that copy and use it.
Note: The MD5 hash for the authentic MSDN version of en_wfw311.exe is AFA00ADE9F31F4C4470D2D5B1462D5D7
When you have the Windows 3.1x installation files or disks or disk images, download a disk image with the required macOS software here. Mount the disk image and follow the instructions below. The Win31DOSBoxMac app runs in native mode on both Intel Macs and Apple Silicon Macs, but the installation program is Intel-based, and, when you run it on an Apple Silicon Mac, will prompt you install the Rosetta2 translation software if your system has not installed it already.
This system is based on an earlier system for 64-bit Windows.
1. Run the InstallWin31DOSBoxMac app. Because it cannot be notarized, you will almost certainly need to run a terminal command before it will run. Open a terminal; type in this string, followed by a space
sudo xattr -rc
Don't forget the space! Then drag the InstallWin31DOSBoxMac app into the terminal window and press Return. You will be prompted for your Mac's password. Then close the terminal window and run the app.
2. When the installer app creates an alias to a SETUP folder on your Desktop, copy any of the following into the that folder, depending on how you obtained the Windows 3.1x installation files:
3. Continue to follow the prompts until the installer tells you it is finished. If you experience any problems, close the installer and try again.
Important note: When you see a message box saying "Please wait" while Windows gets installed behind it, don't click on that message box, because the installation will stop while that message box is selected. If you do click on it by mistake, then go back and click on the title bar of the DOSBox window behind it in order to resume the installation.
On an Apple Silicon Mac, if you have not installed Rosetta2, you will be prompted to do so. You can select and copy (from the prompt) the command that you will need to enter in the terminal. After entering it in the terminal, follow the prompts and then run the InstallWin31DOSBoxMac app again. Here, for convenience, is the command you need to enter, but it's easier to copy it from the prompt:
/usr/sbin/softwareupdate --install-rosetta
Note: If you are installing Windows for Workgroups, be prepared to wait a minute or more while Windows Setup displays a message saying it is trying to identify your network adapter. (It won't find a network adapter, but I can't figure out how to make it skip this step.)
4. When the installer is done, launch the Win31DOSBoxMac application to start Windows 3.11. Use Win31DOSBox.Mac in the future to run Windows 3.11.
Details: In brief summary this is what the InstallWin31DOSBoxMac program does:
You can use the Windows 3.11 Control Panel to change resolution and color depth.
I built this Windows 3.11 system by following the excellent guide provided by Dominus on the Vogons.org site. (I also got some ideas from an earlier, similar system.)
To open a document file from the host system in the default Windows 3.11 application for that file (for example, to open a .WRI file in Windows 3.11 Write.exe), drop the file on the Win31DOSBoxMac app. If all goes well, Windows 3.11 will open, and the file will open automatically in its default application. When you close the file, Windows 3.11 will automatically exit. (In Windows 3.11, the folder containing the document will be visible as drive Y:.)
To "map" a single folder in the host system to a drive letter in Win31, drop a folder from the host Windows Explorer on the Win31DOSBoxMac app. The folder will be visible in Windows 3.11 as drive Y:.
To open a document in your Win31 system in the default application for that document in the host Windows system (for example, to open a .DOC file in Word 2016), use the Open File with Host App program found in the Win31DOSBox program group.
To copy a file from your Win31 system to the desktop folder of your host Windows system, use the Copy File to Host Desktop item found in the Win31DOSBox program group.
To print from Win31, print to the default printer in Win31; the output will be sent to your default macOS printer. Three printers are provided:
Change the default host printer for this system by following the instructions in the Drive and printer options settings section elsewhere on this page.
To copy from the "host" clipboard to the Win31 clipboard, press Ctrl-Shift-Alt-V. (This runs the Clipboard to Host item in the Win31DOSBox program group.) A message will appear briefly saying that the clipboard has been imported. (You may need to press the keystroke twice or more.) Now press Ctrl-V to paste that text into the current Win31 application.
To copy text already in the Win31 clipboard to the "host" clipboard, press Ctrl-Shift-Alt-C. (This runs the Get Host Clipboard item in the Win31DOSBox program group.) A brief message will appear saying the text has been exported.
To toggle between windowed and full-screen mode, press Ctrl-Alt-Return.
Keyboard shortcuts: These keyboard shortcuts may be useful; they are not the same as the shortcuts in standard DOSBox!
By default, drive A: in Win31 is the folder ~/Win3Disk/A-Drive.
You can modify this app so that the Windows 3.11 disk folder is inside it, instead of in your user folder. To do this, either use your Win31DOSBoxMac app or make a copy of it and rename the copy anything you like (but do not run the copy yet). Drag the Win3Disk folder from your home folder on to the app or the copy of the app, and follow the prompts; a copy of the folder will be made inside the app, and the app will now contain its drives A: and C: inside itself.
If you use this method to create a self-contained app, and if you have a multi-user system, do not place the app in your /Applications folder. Instead, keep it somewhere in your home folder. Only the user who created the app will be able to use it from the /Applications folder. This warning does not apply to single-user systems.
To use this system to run only one 16-bit Windows 3.x program and then close, use either of these two methods:
a. Create a system that doesn't display the Windows 3.1 desktop when running a single application (requires a second copy of the Win3Disk folder)
Make a copy of the Win31DOSBoxMac application, and rename the copy with a name that describes the single application that you want to use. For example, if you intend to run Write and then exit, you might name the copy of Win31DOSBoxMac as Windows Write.
Next, make a copy of your Win3Disk folder in your user folder, and name it with the exact name that you gave the copy of the app, followed by a space and the word "Disk", like this: Windows Write Disk.
Launch the app that you named Windows Write. If you want to change the size of the window, use the Control Panel to change the size. Launch the program you want to use and make sure it fits into the window. Then shutdown Win31.
In your user folder, go to the Windows Write Disk/C-DRIVE/WINDOWS folder (or whatever you named the copy of Win3Disk folder). Use TextEdit or any other editor to edit the SYSTEM.INI file. Change the line that reads shell=progman.exe so that it reads instead shell=write.exe or, if the program is not in the main Windows folder, shell=C:\PathTo\Myapp.exe (using the drive and path of your application as visible in Windows 3.1x). Save the file.
When you next run the Windows Write app (or whatever you named the copy of the Win31DOSBoxMac app), your program will start automatically and will fill the Windows 3.11 window. When you exit the program, Win31 will close. (If you see an error message from your program saying that a .DLL file is required, find that file in your program's own folder and copy it into the C-DRIVE\WINDOWS\SYSTEM folder in the Windows Write Disk folder or whatever you named the copy of Win3Disk.)
Note that when you choose this method, the Windows 3.1x boot logo will not appear.
b. Create a system that runs a single program but also displays the Windows 3.1 desktop so you can access the Program Manager and other progrms (uses your existing Win3Disk folder)
Make a copy of the Win31DOSBoxMac app and rename it so that its name begins with Win (and can also begin Win31DOSBoxMac or any other string that begins with Win), followed by a space, then a hyphen, then the name of the program that you want to run. For example, you could name it Windows - Write. Be careful to use a hyphen with spaces on either side, and use the exact filename of the program that you want to run (no .exe needed). The program that you want to run must be in your Windows folder or (for expert users) accessible via the PATH statement in Win31.
Note that if you name the app Windows - Write (with the hyphen and spaces) it will use the copy of Windows in your default Win3Disk folder and start by running WRITE.EXE, but if you name the app Windows Write (without the hyphen), it will require a "Windows Write Disk" in your home folder and use the Windows system in that folder. The rules is: the app renamed with Win at the start, and a hyphen and space and the name of a Windows program will use the same Win3Disk folder used by the original Win31DOSBoxMac app.
If you set the name correctly, when you launch the renamed app, your chosen program will run, but the Program Manager icon will be visible on the desktop in the background. If you use the Program Manager to launch other programs, then Windows will close when you close the other programs and the Program Manager. If you do not launch another program, then Windows will close when you close your chosen program.
Note that when you next run Win31DOSBoxMac (not your copied and renamed app), the Program Manager will be minimized, and you will need to click on it to open it.
Also note that when you choose this method, the Windows 3.1x boot logo will not appear.
Add the required software or installation files to the C-DRIVE folder, which is drive C: in Win31, If your program does not need to be installed, simply create a folder for it in the Win3Disk/C-DRIVE folder with a name like MYAPP and copy the program into it. Then run it in Win31DOSBox from C:\MYAPP. If your software needs to be installed under Win31, read on:
To install new software in Win31 from installation files, start by creating a new folder in the host system's Win3Disk\C-DRIVE folder, perhaps called something like INSTALL. (This folder will appear in Win31DOSBox as C:\INSTALL.) Copy the installation files from your new software into this new folder. Startup Win31DOSBox. In the Program Manager, use File/Run, and navigate to your software's install program in the C:\INSTALL folder.
To install new software from an image of a floppy disk: Make sure that your disk image has the extension .IMG. Drop the .IMG file on to the Win31DOSBoxMac app. If Win31 is not running, the app will extract the files in the image file to the Win3Disk\A-DRIVE folder and exit. (You will be prompted to remove any existing file in the A-DRIVE folder if you want to do so.) If you have more than one disk image, drop each one separately, and its contents will be added to the A-DRIVE folder. If Win31 is already running, the contents of the image will be copied in the same way, and Win31 will continue to run; you will be able to access the files on drive A: from the File Manager.
To install new software from a CD-ROM: You will need an .ISO image of the CD. Shut down Win31 if it is running. Drop the .ISO file on the Win31DOSBox app; a message will tell you that the image will be mounted as drive M: in DOSBox. You may, if you want, copy the contents of drive M: to a folder in drive C: (or to the drive A: folder) to make it available the next time you run Win31. If you want instructions for creating a new drive letter with the contents of the .ISO image, get in touch with me at the address at the foot of this page.
If your program requires SHARE.EXE (e.g. Microsoft Word 6.x), then get in touch with me for detailed instructions; my address is at the foot of this page.
The C-DRIVE\UTIL folder contains a generous selection of utilities, mostly from PC Magazine, that may be useful in this system. One is used by the system (HK.exe) and the other is used by the installer (WINCMD) and can be used for many other purposes. You will also find the third-party GROUPBLD.EXE in the C-DRIVE\WINDOWS folder; this is used by the installation program to create and modify Program Manager groups.
Third-party (non-PCMag) utilities:
PC Magazine utilities:
A note on WINCMD: This system uses Douglas Boling's WINCMD when initializing. Different versions of WINCMD were separately documented in PC Magazine, and this documentation is available via Google Books. However, the 27 April 1993 issue of PC Magazine, which contained the full documentation of the first release of WINCMD is missing from Google Books, so I have posted a scan of that initial documentation here.
This system is a work in progress. Please send suggestions for further development.
The copy of DOSBox-X.exe used in this system is a custom build that does not use the same keyboard assignments as the original DOSBox-X, and has a few minor internal changes. One such change is that directories of hard-disk-folders are automatically refreshed and do not need the "rescan" command used in DOSBox-X.
I am grateful to Douglas Boling and to many people associated with DOSBox and its support forum, especially those who use the names Qbix, Dominus, and ripsaw8080.
The printing and clipboard-exchange techniques used in this system are based on my DOSBoxWP system for running WordPerfect for DOS under DOSBox.
Edward Mendelson (edward [dot] mendelson [at] columbia [dot] edu, but with two initials and two numerals before the [at] sign, not spelled out as shown here).