Win31DOSBox: Windows 3.1 for 64-bit Windows

Microsoft Windows 3.1 was an evolution to Windows 3.0 and undoubtably the most popular, poster child version in the Windows 3.x series. Among the changes in Windows 3.1 include a drop of real mode support (see more below), the removal of the Reversi game, updated icons with richer colors, an improved setup process with better hardware detection. ADosBox is a port of DOSBOX on Android, which is basically a X86 emulator with DOS. Thought there isn’t any benefits you can see by running Windows 3.1 on Android but its ultimate geeky stuff. The complete instructions on how to install and run Windows 3.1 on any Android Phone is up here. And yea download of Windows 3.1 can be found here.

  • Frontend for windows DOSShell: 1.4 Frontend for windows AmpShell: 1.1.2.0 Frontend in.NET DosPanel: 1.1 Frontend for windows Launchbox: 1.1 Frontend for windows Radnor: 1.0 Frontend for Mac OS X dosboxer: 1.0 Win,Linux,Mac OS X frontend Jamyda: 1.0 Frontend in java DOSBox Game Launcher.
  • A DOSBox-based Windows 3.1 system. 64-bit Windows can run software written for Windows 3.x only through the use of an emulator such as DOSBox. This page provides a setup program that makes it easy to create a Windows 3.11 system that runs under DOSBox.

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

Windows

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

For most Windows 3.1 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.1 system

64-bit Windows can run software written for Windows 3.x only through the use of an emulator such as DOSBox.

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

Windows 3.1 Emulator Online

Note: This system was updated 2 December 2018 with a copy of DOSBox.exe based on the latest official code.

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

How to install Win31DOSBox

1. Find the Win31DOSBoxSETUP folder in the files that you extracted from the downloaded system setup archive. (I assume that you have Windows 3.11, but the installation should work with the earlier 3.1 version.)

2. Then copy any of the following into the Win31DOSBoxSetup folder, depending on how you obtained the Windows 3.11 installation files:

  • An .ISO file that contains the Windows for Workgroups 3.11 installation files (typically found with a name like Winfw311.iso). Just copy the .ISO file into the folder; do not mount it or extract items from it.
  • A set of the six to nine .IMG files containing disk images of the Windows 3.11 or Windows for Workgroups 3.11 installation floppy disks. Just copy the full set of image files; do not mount them or extract them. (Different versions will have different numbers of disks.)
  • A copy of the Microsoft Developer Network self-extracting archive of the Windows for Workgroups 3.11 installation files, named en_wfw311.exe. (or the corresponding file for any other roman-alphabet version). Just copy the archive; you need not extract the contents.
  • If you have all the installation files (from an ISO or a set of IMG files) in a single folder, then copy the full set of installation files. Do not make separate subfolders; simply copy all the files into the Win31DOSBoxSetup folder.

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 Win31DOSBoxC-DRIVEWINDOWS 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:

  • If you use an ISO or EXE version of the installation files, it expands the files and tests whether you are installing Windows 3.1x or Windows for Workgroups 3.11.
  • It then makes a copy of the Windows 3.x installer's SETUP.SHH automated setup file, modifies it (manipulating its format to use ANSI instead of Unicode) by adding printers, changing various options, etc.
  • It then runs the Windows 3.1 setup program, using the customized automated setup file created in the previous step, and exits the new installation.
  • It then copies system files, sound, video, and other drivers from the StorageAddFiles folder into the Windows folder, and modifies SYSTEM.INI and WIN.INI to use the S3 video drivers, SoundBlaster sound driver, and the joystick driver.
  • It also copies two PC Magazine utilities by Douglas Boling, HK and WINCMD, and a program-group creator program by Alan G. Hill named GROUPBLD.
  • It then starts up Windows 3.1x again, using WINCMD to run GROUPBLD and create and modify program manager groups, and then exits Windows 3.1x again.
  • It then offers to start the fully-installed Windows 3.1x system.

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.

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.

How to use Win31DOSBox

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 Win311, 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 Win311 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 Win311 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 Win311, 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):

  • Win10 Printer: This is the default host Windows printer. If you use the Win311 Control Panel, Printers menu, you can 'connect' to a different output, named C:PTRSELECT.PS. When you print to this output, the host system will pop up a list of installed printers for you to choose the one to print to.
  • Win10 Clipboard: This 'prints' to the host Windows clipboard. Mostly used for copying text to the clipboard as described below.
  • PDF to Win10: This 'prints' a PDF file to the host Windows desktop. If the document you are printing is untitled, the resulting PDF will have an arbitrary filename based on the current date and time.

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. 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) or Ctrl-Alt-F4 (on any keyboard); these use different methods 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; the method used by Ctrl-Alt-F4 will only import plain ASCII text.

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

  • Ctrl-Alt-Enter: Toggles between full-screen and windowed mode
  • Alt-Pause: Pause DOSBox
  • Ctrl-Alt-F4: pastes ASCII text into DOSBox
  • Ctrl-Alt-F5: Rescans directories in DOSBox (use this if Win31 can't find a file, or displays an invalid list of files)
  • Ctrl-Alt-F7: Speeds up graphics by decreasing frameskip
  • Ctrl-Alt-F8: Slows down graphics by increasing frameskip
  • Ctrl-Alt-F10: Capture or release mouse to/from DOSBox window (or use Alt-Tab)
  • Ctrl-Alt-F11: Slow down the emulation
  • Ctrl-Alt-F12: Speed up the emulation
  • Ctrl-Alt-Home: Restart DOSBox
  • Ctrl-Shift-Alt-C: Copies Win31 clipboard to host clipboard (if HK.EXE is running in Win31)
  • Ctrl-Shift-Alt-V: Copies host clipboard to Win31 clipboard (if HK.EXE is running in Win 31); press Ctrl-V in a Win31 application to paste the transferred clipboard into the document
  • Pause: Pastes text into DOSBox

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 Win31DOSBoxC-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 windowssystem32), 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 Win31DOSBoxA-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-DRIVEWINDOWS folder. Change the line that reads shell=progman.exe so that it reads instead shell=X:PathToMyapp.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-DRIVEWINDOWSSYSTEM 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).

3.1x

To force Win31DOSBox to run in a second monitor, or at any specific position on screen: Go to the Win31DOSBoxDOSBox 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 Win31DOSBoxDOSBoxWin31DOSBox.ini. The options are these.

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

  • MountHostDrives=true Change this to false if you do not want any host drives mounted in DOSBox. Whether this setting is true or false, you can still specify that host CDROM drives will be mapped in DOSBox, or that specific host drives will be mapped in DOSBox, by using the options below.
  • MountCDROMsOnly=false If this is set to true then only host CD-ROM drives will be mapped, not other drive letters, unless you specify additional drive letters in the next setting.
  • MountOnlyDriveLetters= By default, this value is empty (nothing after the equals sign). If you enter one or more host drive letters - for example DGHK - then only these drive letters will be mapped in DOSBox. If you include a drive letter that does not exist on the host system, that drive letter will be ignored.
  • MountWindowsDrives=false By default this system does not map host drives that have modern Windows systems installed on that drive. Change this option to true if you want to map host drives that have modern Windows systems. Use this option with extreme caution, and don't say I didn't warn you that you can seriously mess up a Windows system if you choose to enable it!
  • MountCasX=false Change this option to true if you want to map your host drive C:, which probably contains your Windows system to drive X: in DOSBox. Use this option with extreme caution, and don't say I didn't warn you that you can seriously mess up a Windows system if you choose to enable it!

Under [printer] the only current option is:

  • UseThisPrinter= By default this value is empty (nothing after the equals sign), and when you print from Win31DOSBox (without choosing the option to select a printer at each print job), the system prints to your default Windows printer. If you want Win31DOSBox to print by default to a printer that is not your default printer in your host system, enter its name (as the name appears in Windows Print dialogs) after the equals sign, for example: Office LaserJet 400 - and do not use quotation marks. Of course, Office LaserJet 400 is only an example; use the name of an actual printer attached to your system.

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:PTROUTPUT.RAW=
C:PTRSELPTR.RAW=

If you then use the Printers applet in the Control Panel to 'Connect' C:PTROUTPUT.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:PTRSELPTR.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 Win31DOSBoxC-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 Win311, read on:

To install new software in Win31 from installation files, start by creating a new folder in the host system's Win31DOSBoxC-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; available under earlier versions if you install, for example, Virtual Clone Drive); this assigns a drive letter to the ISO image. Restart Win311 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. 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.

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 Win31DOSBoxDOSBox folder. This will launch Win31DOSBox with only drive C: mounted in DOSBox; this drive contains the Windows folder. Drive C: in DOSBox is the Win31DOSBoxC-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 Win31DOSBoxDOSBox 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-DRIVEUTIL 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-DRIVEWINDOWS folder; this is used by the installation program to create and modify Program Manager groups.

Third-party (non-PCMag) utilities:

  • Printclp – Prints the contents of the clipboard
  • RunExit – Runs a program than exits Windows; use from the command line
  • SprLoad (SuperLoad) – More options forth LOAD= and RUN= lines in WIN.INI
  • WinExit – When WinExit runs, you can click on its icon to exit Windows
    without going through Program Manager

PC Magazine utilities:

  • InCtrl2 – Records files installed by an installation program so that
    they can be removed later
  • RecEdit – Edits files created by the Windows 3.1 Recorder utility
  • TapeCalc – A calculator that creates a paper-type record of calculations
  • WinCmd – Runs automated macros (used in installing this system)
  • COA – Lets you change the location of an installed program without
    reinstalling it
  • Defedit – Lets you set a default editor for document files with extensions
    that haven't been associated with a particular program
  • Dropkick - Launches programs from a popup menu when you click a mouse
    button on a blank space in the Windows 3.1 desktop.
  • Find – A text-search utility
  • HK – A hotkey manager (used by this system)
  • LnchCtrl – Lets you set the environment variables and the window size
    and position when launching an application; also controls the behavior
    of DOS applications run from Windows 3.1
  • MyGrps - Lets you use customize icons for Program Manager groups
  • Paste (PasteBoard) - lets you cut, copy, and paste text from several
    sources or several areas within a file without switching back and forth
  • PLIcon - Controls the position of minimized icons on the desktop
  • SaveIt - Restores your Windows desktop to the state it was in when you
    shut Windows down; programs running when you exited Windows are reopened
  • ScInvoke – Launches the default screensaver
  • SuperPad - A replacement for Microsoft Windows' Notepad that can edit
    files of any size
  • WCompare – Highlights the differences in two text files; provides full
    editing and printing capabilities
  • WinBar - Configurable rendition of the Windows 95 Taskbar that runs
    under Windows 3.1
  • WinTidy – Saves and restores the layout of Program Manager groups
  • WMatch – Compares files in two directories
  • WSwin – A file and text-search utility

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.

PlayStation 3 (PS3) | PSX-Place

Further notes

This system is a work in progress. Please send suggestions for further development.

The copy of DOSBox.exe used in this system is a custom build that does not use the same keyboard assignments as the original DOSBox, 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. Another is that the system cannot be shut down from the Close button in the upper right corner.

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 (em thirty-six [at] columbia [dot] edu, but with two initials and two numerals before the [at] sign, not spelled out as shown here).

What's new in 3.0.4

  • Bug fixes and improvements in GL_TEXTURE_EXTERNAL_OES texture target support.
Note: For Linux we strongly recommend the use of the .tgz package; the .deb package will make the Emulator implementation of OpenGL ES the preferred system-wide implementation, replacing any native version, which has been observed to cause problems with some Window Managers.
  • EULA
Windows 64-bit
File: Mali_OpenGL_ES_Emulator-v3.0.4-2-g8d905-Windows-64bit.zip (7.12 MB)
Windows 64-bit
File: Mali_OpenGL_ES_Emulator-v3.0.4-2-g8d905-Windows-64bit.exe (5.82 MB)

Windows 3.1 Emulator Download

Linux 64-bit

Windows 3.1x Simulator

File: Mali_OpenGL_ES_Emulator-v3.0.4-2-g8d905-Linux-64bit.tgz (5.08 MB)

Windows 3.1 (3.10.026) (beta) (4-5-1991) (3.5-1.44mb)

Linux 64-bit
File: Mali_OpenGL_ES_Emulator-v3.0.4-2-g8d905-Linux-64bit.deb (3.56 MB)