> You can run many Windows apps from the 3.1 days in current versions of Windows without emulation
Only on 32 bit versions of Windows (and even this only sometimes works by this time). But note that the main reason why you cannot run Win16 applications on 64 bit Windows is not:
- that you cannot run 16 bit applications in long mode (you can - look up the details of in the Intel documentation if you don't believe; just generate a suitable segment descriptor)
- Virtual 8086 is not supported in Long Mode (it is indeed not - but this is only important for applications running in real mode (e.g. DOS applications) and thus is not of importance for Win16 applications)
as it is often claimed in the internet, but has to do with Windows' architecture:
"Note that 64-bit Windows does not support running 16-bit Windows-based applications. The primary reason is that handles have 32 significant bits on 64-bit Windows. Therefore, handles cannot be truncated and passed to 16-bit applications without loss of data. Attempts to launch 16-bit applications fail with the following error: ERROR_BAD_EXE_FORMAT.".
Only on 32 bit versions of Windows (and even this only sometimes works by this time). But note that the main reason why you cannot run Win16 applications on 64 bit Windows is not:
- that you cannot run 16 bit applications in long mode (you can - look up the details of in the Intel documentation if you don't believe; just generate a suitable segment descriptor)
- Virtual 8086 is not supported in Long Mode (it is indeed not - but this is only important for applications running in real mode (e.g. DOS applications) and thus is not of importance for Win16 applications)
as it is often claimed in the internet, but has to do with Windows' architecture:
> https://msdn.microsoft.com/en-us/library/aa384249.aspx
"Note that 64-bit Windows does not support running 16-bit Windows-based applications. The primary reason is that handles have 32 significant bits on 64-bit Windows. Therefore, handles cannot be truncated and passed to 16-bit applications without loss of data. Attempts to launch 16-bit applications fail with the following error: ERROR_BAD_EXE_FORMAT.".