Win31DOSBox: Windows 3.1x for 64-bit Windows


About this system | How to install it | Better mouse integration | How to use it | Drive and printer options | Install other programs | The Utilities folder | Notes


Note: You probably do not need this system; use winevdm instead!

For most Windows 3.x applications, this system is no longer needed. Instead, use the winevdm system that lets you run 16-bit Windows applications transparently in 64-bit Windows. I have created an installer that effortlessly installs winevdm (also known as otvdm), and you may read about and download it here. If you find an application that does not run under winevdm, then post a bug report on the winevdm GitHub page linked above.


A DOSBox-based Windows 3.1x system

64-bit Windows can run software written for Windows 3.x only through the use of an emulator such as DOSBox-X or DOSBox, or through the winevdm system described above. If you only want to run one Windows 3.x program, install winevdm. If you want to run a full Windows 3.11 system, this page provides an easy method for doing so.

This page provides a setup program that makes it easy to create a Windows 3.11 system that runs under DOSBox-X or DOSBox. 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.)

Unlike most other Windows 3.1x implementations for modern Windows, this system can print to your current Windows default printer or any other printer installed in your host Windows system, and it can exchange text between the Windows 3.1x clipboard and the host Windows 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 September 2023; it now runs only under 64-bit Windows.

Windows 3.1x installation files (or disks , disk images, CD, or CD image) should be easy to find on eBay or elsewhere. VisualStudio.com (formerly MSDN) 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 the system setup archive here. Extract the contents of the archive to any convenient directory. The contents include a folder named Win31DOSBox with a number of subfolders.

A similar system that runs under macOS may be found on another page.


How to install Win31DOSBox

1. In the files that you extracted from the downloaded system setup archive, find the Win31DOSBox\SETUP folder.

2. Then copy any of the following into the Win31DOSBox\Setup folder, depending on how you obtained the Windows 3.11 installation files. (I assume that you have Windows 3.11, but the installation should work with the earlier 3.1 version.

3. Run InstallWin31DOSBox.exe. If you copied an ISO or a set of IMG files, this installer program will extract the contents of those files and then install Windows 3.11.

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.)

Troubleshooting: If you see any error messages while Windows is being installed, delete the entire contents of the Win31DOSBox\C-DRIVE\WINDOWS folder and try again. You may also need to empty the SETUP folder and copy the installation files into it again.

4. When the installer is done, it will offer to run Win31DOSBox.exe to start Windows 3.11. Use Win31DOSBox.exe in the future to run Windows 3.11.

Details: In brief summary this is what the InstallWin31DOSBox.exe program does:

After these steps are complete, the system is then ready to run at any time from the Win31DOSBox.exe program.

You may delete the SETUP and DRIVERS folders after you have the system working as you want it. However, if you want to install additional Windows drivers, you may need the Windows setup files, so you may want to copy the SETUP folder into the C-DRIVE folder so that, when Windows prompts you to insert a Windows setup disk in Drive A:, simply enter C:\SETUP in place of A:, and Windows will find the file it needs.

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.)

Note: If you want to emulate a Tseng 4000 video card instead of the default S3 card, you should change the dosbox.conf file in the DOSBox folder; study various DOSBox documents online for further information.


Better mouse integration

You can improve integration between the guest and host system by installing a special mouse driver that does not require you to click in the Windows 3.11 window when returning to it, and does not require you to use Ctrl-Alt-F10 to release the mouse from the Windows 3.11 window. To install this, perform the following steps:


How to use Win31DOSBox

To toggle the topline menu on or off, press Ctrl-Alt-F1.

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 Win31DOSBox.exe icon. 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 Win31DOSBox.exe icon. 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 Windows printer. Three printers are provided (the names will include the version number of the host Windows system, as shown below for Windows 10):

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.

You may also want to experiment with pressing the Pause key (on a full-sized keyboard); this uses a different method for importing text from the host directly to a Win31 applications; the method used by the Pause key may be able to copy accented characters. You can also use Ctrl-Alt-F4 to paste from the host clipboard.

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-Enter. (This and other keyboard shortcuts are different from those in standard DOSBox or DOSBox-X. Use the System Menu - the icon at the upper left corner of the DOSBox window - and choose Keyboard Help... for details.)

Keyboard shortcuts: These keyboard shortcuts may be useful; they are not the same as the shortcuts in standard DOSBox or DOSBox-X!

Drive letter mapping: When Win31DOSBox starts up, it automatically maps all the drive letters on the host system to the same drive letters in Win31 - except for host drives C: (used in DOSBox for the Win31DOSBox\C-DRIVE folder), X: (reserved for the option to map your actual host drive C: to a drive letter accessible in DOSBox), and Y: (used in DOSBox as the drive letter for the folder that contains a document file or folder dropped on the Win31DOSBox icon and opened in Win31DOSBox). This system does not automatically map any other drives that contain a modern Windows system (with folders like \windows\system32), to avoid any possible (though unlikely) damage.

Fine-tune the drive-mounting options by following the guide to Drive and printer option settings elsewhere on this page.

By default drive A: in Win31 is the folder Win31DOSBox\A-Drive. If you have a physical floppy drive in your system, it will be mapped as drive B: in Win31.

To use this system to run only one 16-bit Windows 3.x program and then close, use one of these three methods:

Either (a). Create a desktop shortcut to Win31DOSBox.exe. Select it; press Shift-F10; choose Properties, and in the Shortcut tab, in the Target field, add a space, then the name of the program you want to run, for example Write or Write.exe (no quotation marks). This method works most reliably when the program is in the Windows folder. You will see the Windows 3.11 desktop when the program runs, but Windows will close when you close the program. Note: This method uses Steven Henk Dom's RunExit utility, which this system installs in the Windows folder.

Or (b). First run the program (for example, Write) normally in Win31, and make sure its window is correctly positioned. Then shutdown Win31. Next, edit the SYSTEM.INI file in the C-DRIVE\WINDOWS folder. Change the line that reads shell=progman.exe so that it reads instead shell=X:\PathTo\Myapp.exe (using the drive and path of your application). Save the file. When you next run Win31, 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 Win31DOSBox.) You can now either rename the DOSBoxWin31.exe program with the name of your 16-bit program, or create a desktop shortcut that uses that name. (I use this method to run the old Windows 3.1 version of Instant Recall.)

Or (c). Create a desktop shortcut to Win31DOSBox.exe. Select it; press Shift-F10; choose Properties, and in the Shortcut tab, in the Target field, add a space and then a string that looks like this: /shell=write.exe (note the forward slash immediately before "shell="). The name after the equals sign should be the program that you want to run. Don't use spaces or quotation marks in this string. This method temporarily does what method (b) above does: When you launch the shortcut, the SYSTEM.INI file is modified so that the program you selected is used as the shell, instead of the Program Manager. Then, after Win31 starts up, the shell= line in SYSTEM.INI file is changed back to its original setting. With this method, you can create multiple shortcuts, each running a different program as the shell (but you can only run one at a time).

To force Win31DOSBox to run in a second monitor, or at any specific position on screen: Go to the Win31DOSBox\DOSBox folder and create inside it a text file named ScreenPos.txt. The file should consist of two lines, the first line with the desired horizontal position (in pixels) of the upper-left corner of the DOSBox window (counting from the left edge of your leftmost monitor, the second line with the desired vertical position of the upper-left corner, counting from the top of the topmost monitor. So, if you have two monitors, and you want DOSBox to run in monitor 2, you might have a file that looks like this - but remember that you will need to experiment to find the right numbers for your system:

1660
100

The temporary.conf and drives.bat files are re-created each time the program is run. Do not waste your time editing them.


Drive and printer option settings

You can fine-tune drive assignments ("mapping") and printer options by using Windows Notepad or any other text editor to modify the file Win31DOSBox\DOSBox\Win31DOSBox.ini. The options are these.

Under [drives], the options and their default settings are these:

Under [printer] the only current option is:

Send "raw" output to your printer: If you really, really know what you're doing, you can send "raw" output from Win31 to a PCL, PostScript, or other printer that uses its own printer language; Win31DOSBox will not create an intermediate PDF file before printing, as it usually does. To accomplish this, edit WIN.INI, and add one or both of these lines to the [ports] section:

C:\PTR\OUTPUT.RAW=
C:\PTR\SELPTR.RAW=

If you then use the Printers applet in the Control Panel to "Connect" C:\PTR\OUTPUT.RAW= to your PCL or PostScript printer, Win31DOSBox will send the "raw" output to your default host printer. If your default host printer cannot process the raw data, you will waste a lot of paper. If you "Connect" your printer to C:\PTR\SELPTR.RAW= then you will be prompted to select a printer each time you print. Again, if your default host printer cannot process the raw data, you will waste a lot of paper. You really need to know what you are doing if you want to use this feature. Don't even think about trying it unless you're an expert.


Install programs in your Win31DOSBox system

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 Win31DOSBox\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 Win31DOSBox\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 a CD-ROM: Insert the CD-ROM in the drive and run the setup program from inside Win31, using the drive letter of your CD-ROM. (You may - but possibly won't - need to insert the CD-ROM before starting Win31DOSBox.)

If you have an ISO image of a CD-ROM, right-click it in your host Windows system and choose the Mount option (available under Windows 10/11; available under earlier versions if you install, for example, Virtual Clone Drive); this assigns a drive letter to the ISO image. Restart Win31 to access the contents of the image under its drive letter.

To install new software from diskettes or diskette images: If you have a physical floppy drive, it will automatically be mounted as drive B: in DOSBox.-X However, you probably have disk image files of the software that you want to install; drop one or more such images on the Extract to A-Drive Folder.exe application the Win31DOSBox folder, and it will automatically extract the files into the A-DRIVE folder; the files will be accessible on Drive A: in DOSBox-X.

Also, you can drop a file in any common image file format on to the Win31DOSBox.exe icon, whether or not Win31 is already running. The program will offer to extract the image file to drive A: in DOSBox and will open an Explorer Window on to the drive A: folder. You will be able to access the files in Win31 through the File Manager.

If you have installation software that insists on scanning all your drives, save time by launching Win31DOSBox from the DOSBox No Host Drives.cmd shortcut in the Win31DOSBox\DOSBox folder. This will launch Win31DOSBox with only drive C: mounted in DOSBox;-X this drive contains the Windows folder. Drive C: in DOSBox-X is the Win31DOSBox\C-DRIVE folder in your host Windows system. That folder contains a dummy autoexec.bat and config.sys file that your software may want to write to. You may need to take further steps to add these commands to the standard dosbox.conf file in the same folder.

If your program requires SHARE.EXE (e.g. Microsoft Word 6.x), then proceed with caution, because these instructions are not designed for use with database applications! They will only work with applications like word-processors and spreadsheets. First, be certain that you have installed Windows for Workgroups 3.11, not plain Windows 3.1x. Edit the dosbox.conf file in the Win31DOSBox\DOSBox folder, and remove the "rem" comment from the line near the end that reads "rem fakeshar". This will cause a program to be launched that can, in some cases, fool Windows into acting as if SHARE.EXE were running, even though the actual sharing features will not be available. This trick should allow you to install Word 6.0c (and possibly other Microsoft Office applications, though I have not tested these). (Not tested with earlier versions than Word 6.0c!!!)


The UTIL (Utilities) folder

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. A function library for WinCmd, WCLIB.WCL (used in the Win31DOSBox system) was documented in the 25 May 1993 issue, and the scanned pages are here. WINCMD 1.3 and WCLIB2 version 1.1 were documented in the 27 June 1994 issue; scanned pages are here.


Further notes

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.

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.-X


Edward Mendelson (edward [dot] mendelson [at] columbia [dot] edu)