9

I wonder if anyone has tried the following approach to run a 16-bit application under Win64?

I can install a VMware virtual machine, load Linux, and use Wine to simulate the old Windows environment. I don't see why that won't work but I find no information from previous questions about 16-bit Windows on Win64.

9
  • 4
    Why not just install a 32-bit of windows inside of VMWare or VirtualBox? That will work much better than Wine+Linux Aug 12 '13 at 17:34
  • Why not try it and report back?
    – daxlerod
    Aug 12 '13 at 18:25
  • @Ramhound - Using a virtual machine is exactly what Charlie was proposing. Their idea of running Wine inside the Linux virtual machine is somewhat novel, so yes, it is worth a try.
    – daxlerod
    Aug 12 '13 at 20:08
  • @daxlerod 64-bit Windows doesn't include the WOW32 subsystem used by Windows to support 16 bit Windows programs. Therefore, 16-bit Windows programs will NOT run on a 64-bit Windows.
    – Mark Allen
    Aug 12 '13 at 20:32
  • @MarkAllen No kidding? Hence the virtual machine.
    – daxlerod
    Aug 12 '13 at 20:47
8

64-bit Windows does not include WOW - but according to Wikipedia, 64-bit Wine does!

Source: http://en.wikipedia.org/wiki/Wine_(software)#Backward_compatibility

http://en.wikipedia.org/wiki/File:Wineon64bit.png

Backward compatibility in Wine is superior to that of Windows, as newer versions of Windows can force users to upgrade legacy Windows applications. In many cases, Wine can offer better legacy support than newer versions of Windows with "Compatibility Mode". As illustrated by screenshot on the left, Wine can run 16-bit Windows programs on a 64-bit operating system, which uses an x86-64 (64-bit) CPU. 64-bit versions of Microsoft Windows cannot run 16-bit Windows programs

Source: http://en.wikipedia.org/wiki/Windows_on_Windows

The Win16 subsystem is available in 32-bit editions of Windows NT, 2000, XP, Server 2003, Vista, Server 2008, 7, and 8. The 64-bit editions of Windows versions that have them, however, do not include the WoW Win16-support subsystem and therefore cannot run Win16 applications, nor do they provide the NTVDM emulator. DOS and 16-bit Windows applications, therefore cannot run in 64-bit versions of Windows without third-party emulation software (e.g. DOSBox) or a virtual machine with either a 32-bit version of Windows, Windows XP Mode, or DOS itself.

If you can, run two VMs - one with 32-bit Windows, one with 64-bit Windows, assuming you specifically need 64-bit Windows for something.

3
  • Your answer stopped me from voting to close this thread! Good find! Aug 14 '13 at 13:17
  • Try it and report - I'd love to. But the machine and the program are my wife's and I don't think I can support her down this path. Seems it would work, but I've only run Wine under 32-bit versions of Ubuntu. Her machine is our first Win64 in the family. Unable to run the old program was a rude awakening.
    – Charlie
    Aug 25 '13 at 23:51
  • I still don't have experience with this either, but what I've been reading seems to indicate you need to run wine in 32-bit mode (using export WINEARCH=win32 and a separate -wineprefix folder for this to work. There was also a security fix in kernel 3.14 that broke some things, so avoid that.
    – trlkly
    Jan 2 '15 at 11:28
3

This is now possible with winevdm: https://github.com/otya128/winevdm. To run 16 bit applications on a 64 bit Windows, a x86 CPU has to be emulated because the Local Descriptor Table (LDT) cannot be changed on Windows x64 (which is neessary to run 16 bit code). The linked project on GitHub includes all the necessary changes to Wine and the x86 emulator. I have tested it and it seem to work very good.

To install the latest version, go to https://ci.appveyor.com/project/otya128/winevdm, select "Environment: THIS_BUILD_IS_RECOMMENDED__VCXPROJ_BUILD=1", then "Artifacts". Unpack the zip archive and run "install" to add the registry keys so 16 bit executable are opened with otvdm.

1
  • 1
    Please note that the same is true with official ntvdm. I found programs using mmx instructions triggering an invalid instruction on ntvdm while working on Windows98. It’s a bit more than this. Jul 14 '19 at 16:18
1

I can confirm this works for Ubuntu Bionic. I am using Zorin 15 :

Winetricks:

  1. Select the default wineprefix, change settings, winxp
  2. Expanded ftp://ftp.lotus.com/pub/lotusweb/product/smartsuite/Kvlotus.exe to my (wine) downloads folder.
  3. Ran the installer. (SETUP.EXE) "Open with Install Windows Application"

Now I can run Kvlotus (16 bit) from my Destop.

1
  • Nice. Someone finally actually answered the question asked. (+1) On the other hand, the person posting the question could have simply run a 16bit OS since they were running VMWare. Apr 17 at 1:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.