Jump to content

Windows 64 bit- 16Bit app native?

Does anyone know when 16bit app support became standard on Windows 10 64bit? A few years ago I was trying to "rebuild" an "industrial" computer on something more up to date, because the apps it needed to run were 16 bit, it required me to run a Windows 7 32bit version to support them. Today I accidentally clicked on one of the 16 bit installer .EXE files and low and behold it installed and SEEMINGLY seems to be running on my windows 10 64bit machine. Where as before it would tell me that "cannot start or run due to incompatibity with 64-bit versions of Windows. Please contact the software vendor to ask if a 64-bit Windows compatible version is available." 

 

My question is, does anyone know when this changed and what exactly changed? I want to provide a write up for my colleagues for this so we can all move to a supported OS and want to make sure I have as much info as possible. Please note I am not an IT professional and this is simply something i am doing to help out my colleagues. Many Thanks!

Link to comment
https://linustechtips.com/topic/1255995-windows-64-bit-16bit-app-native/
Share on other sites

Link to post
Share on other sites

I know sometimes a ssd can run, but not all. Are there any that dint work?

I could use some help with this!

please, pm me if you would like to contribute to my gpu bios database (includes overclocking bios, stock bios, and upgrades to gpus via modding)

Bios database

My beautiful, but not that powerful, main PC:

prior build:

Spoiler

 

 

Link to post
Share on other sites

My understanding is that this is only available on 32 bit versions of Windows 10: NTVDM and 16-bit app support (microsoft.com)

Quote

NTVDM is a Feature on Demand and only supported on the x86 version of Windows. It is not supported on x64 and ARM versions of Windows, which do not support 16-bit x86 code of any kind, including DOS programs.

 

Maybe this has changed and they've now made NTVDM available on 64 bit Windows 10, but I can't find any info on this. I'd first confirm that you are in fact running a 64 bit edition of Windows 10 and not 32 bit. And if you are, I'd verify that this particular installer is indeed 16 bit.

 

As far as I know this isn't exactly a Windows limitation. A CPU running in native 64 bit mode no longer supports 16 bit, so you need some emulation layer that can emulate a 16 bit CPU. And apparently Microsoft has decided that running NTVDM (the 16 bit layer) in WoW64 (the 32 bit layer) is not a good idea.

Remember to either quote or @mention others, so they are notified of your reply

Link to post
Share on other sites

16 hours ago, Eigenvektor said:

My understanding is that this is only available on 32 bit versions of Windows 10: NTVDM and 16-bit app support (microsoft.com)

 

Maybe this has changed and they've now made NTVDM available on 64 bit Windows 10, but I can't find any info on this. I'd first confirm that you are in fact running a 64 bit edition of Windows 10 and not 32 bit. And if you are, I'd verify that this particular installer is indeed 16 bit.

 

As far as I know this isn't exactly a Windows limitation. A CPU running in native 64 bit mode no longer supports 16 bit, so you need some emulation layer that can emulate a 16 bit CPU. And apparently Microsoft has decided that running NTVDM (the 16 bit layer) in WoW64 (the 32 bit layer) is not a good idea.

16-Bit was completely dropped when x86 went 64 bits.

Link to post
Share on other sites

Here are your options that I recommend:

  • Use Windows 10 32-bit (keep in mind you can't use more than 4GB of RAM. Check your hardware for support)
  • Use a emulator like DOSBox which is free. You can also find additional free software to automate things with the emulator so that you can have a 1 click solution to run a program under it.
  • Install Windows 32-bit under a VM, and run your 16-bit application in there.
  • If your 16-bit program is a QBasic program, you can get a QBasic for 64-bit system to run your 16-bit QBasic program. QB64.org – BASIC for the modern era
Link to post
Share on other sites

1 hour ago, GoodBytes said:

Here are your options that I recommend:

  • Use Windows 10 32-bit (keep in mind you can't use more than 4GB of RAM. Check your hardware for support)
  • Use a emulator like DOSBox which is free. You can also find additional free software to automate things with the emulator so that you can have a 1 click solution to run a program under it.
  • Install Windows 32-bit under a VM, and run your 16-bit application in there.
  • If your 16-bit program is a QBasic program, you can get a QBasic for 64-bit system to run your 16-bit QBasic program. QB64.org – BASIC for the modern era

Isn't FreeBASIC still 32-bits?

Link to post
Share on other sites

14 hours ago, whm1974 said:

Isn't FreeBASIC still 32-bits?

Qbasic and FreeBasic is not the same. FreeBasic has no editor and some differences in syntax (at least as far as I remember Qbasic). For example - you don't must declare variables in Qbasic and it's mandatory in FreeBasic.

 

I may remember something wrong though.

Link to post
Share on other sites

29 minutes ago, whm1974 said:

I didn't say they are the same.

Ah, then if you're asking about 32/64 bit of FreeBasic then it's 64bit now. In theory. Or at least their compiler is.

https://sourceforge.net/projects/fbc/files/Binaries%20-%20Windows/

But don't know it's internal limitations. It may be only 64 bit compiler. I had no problem with allocate lot of memory for huge arrays, but never checked memory consumption.

Link to post
Share on other sites

3 minutes ago, homeap5 said:

Ah, then if you're asking about 32/64 bit of FreeBasic then it's 64bit now. In theory. Or at least their compiler is.

https://sourceforge.net/projects/fbc/files/Binaries%20-%20Windows/

But don't know it's internal limitations. It may be only 64 bit compiler. I had no problem with allocate lot of memory for huge arrays, but never checked memory consumption.

The last I read up on the FreeBASIC Compiler it was still at 32 Bits.

Link to post
Share on other sites

I use an old program called otvdm. It allows you to run 16-bit programs on your 64-bit Windows. You need to do some reading in order to make it work however. All links are now dead, so I've uploaded it here: 

http://s000.tinyupload.com/index.php?file_id=03874322623289076545

Link to post
Share on other sites

On 10/9/2020 at 11:55 PM, Eigenvektor said:

My understanding is that this is only available on 32 bit versions of Windows 10: NTVDM and 16-bit app support (microsoft.com)

 

Maybe this has changed and they've now made NTVDM available on 64 bit Windows 10, but I can't find any info on this. I'd first confirm that you are in fact running a 64 bit edition of Windows 10 and not 32 bit. And if you are, I'd verify that this particular installer is indeed 16 bit.

 

As far as I know this isn't exactly a Windows limitation. A CPU running in native 64 bit mode no longer supports 16 bit, so you need some emulation layer that can emulate a 16 bit CPU. And apparently Microsoft has decided that running NTVDM (the 16 bit layer) in WoW64 (the 32 bit layer) is not a good idea.

I am definitely running 64 bit OS, and it is definitely a 16 bit installer. Seems like its now natively supported in Windows 10 64 bit, I just cant figure out what version that became the case.

 

Regardless I am really excited that its working. 

Link to post
Share on other sites

On 10/11/2020 at 5:06 PM, GoodBytes said:

Here are your options that I recommend:

  • Use Windows 10 32-bit (keep in mind you can't use more than 4GB of RAM. Check your hardware for support)
  • Use a emulator like DOSBox which is free. You can also find additional free software to automate things with the emulator so that you can have a 1 click solution to run a program under it.
  • Install Windows 32-bit under a VM, and run your 16-bit application in there.
  • If your 16-bit program is a QBasic program, you can get a QBasic for 64-bit system to run your 16-bit QBasic program. QB64.org – BASIC for the modern era

I guess maybe I wasn't clear. It's working flawlessly, natively in the latest build of Windows 10 X64. I'm wondering if anyone knows what build it became "Natively" supported to install a 16bit app on 64 bit OS without any other software.

Link to post
Share on other sites

1 hour ago, Ajay_Brown said:

I guess maybe I wasn't clear. It's working flawlessly, natively in the latest build of Windows 10 X64. I'm wondering if anyone knows what build it became "Natively" supported to install a 16bit app on 64 bit OS without any other software.

I am on the latest and greatest version and build of Windows 10 that is publicly availability (Insider Program - Dev channel), and I tried a 16-bit program, and it doesn't run. So you did something, or the program you are using is actually 32-bit. It may look like an old 16-bit program, but probably compiled for 32bit system.

 

Anyway, it works, and that is what matters.

Link to post
Share on other sites

1 hour ago, GoodBytes said:

I am on the latest and greatest version and build of Windows 10 that is publicly availability (Insider Program - Dev channel), and I tried a 16-bit program, and it doesn't run. So you did something, or the program you are using is actually 32-bit. It may look like an old 16-bit program, but probably compiled for 32bit system.

 

Anyway, it works, and that is what matters.

From what I know, x86-64 Processors can not run 16-bit software when booting in 64-it Mode(or whatever it's called). I wouldn't surprise me if in the future both AMD and Intel decide to remove the 16-bit modes completely.

 

FreeDOS aside, it is rather pointless to want to use old OSes such DOS in 2020...

Link to post
Share on other sites

2 hours ago, Ajay_Brown said:

I guess maybe I wasn't clear. It's working flawlessly, natively in the latest build of Windows 10 X64. I'm wondering if anyone knows what build it became "Natively" supported to install a 16bit app on 64 bit OS without any other software.

When you run the program, try opening task manager and look for the processes. It should show something like (*32bit) for a 32-bit process, so I imagine it would do the same for 16-bit.

 

As I said above and @whm1974 confirmed, a 64-bit CPU can't run 16-bit code while in 64-bit mode. This means if the program is 16-bit and able to run, some kind of emulation needs to be involved. If that's the case, running the program should most likely spawn two processes. This might be a further clue as to how it is able to run. Have a look at task manager to see which additional processes show up when you run the program.

Remember to either quote or @mention others, so they are notified of your reply

Link to post
Share on other sites

1 hour ago, Eigenvektor said:

When you run the program, try opening task manager and look for the processes. It should show something like (*32bit) for a 32-bit process, so I imagine it would do the same for 16-bit.

 

As I said above and @whm1974 confirmed, a 64-bit CPU can't run 16-bit code while in 64-bit mode. This means if the program is 16-bit and able to run, some kind of emulation needs to be involved. If that's the case, running the program should most likely spawn two processes. This might be a further clue as to how it is able to run. Have a look at task manager to see which additional processes show up when you run the program.

Would 16-bit applications be really old by now? I mean Windows 3.x.x had 32-bit support since what, 1990?

Link to post
Share on other sites

3 hours ago, Eigenvektor said:

When you run the program, try opening task manager and look for the processes. It should show something like (*32bit) for a 32-bit process, so I imagine it would do the same for 16-bit.

 

As I said above and @whm1974 confirmed, a 64-bit CPU can't run 16-bit code while in 64-bit mode. This means if the program is 16-bit and able to run, some kind of emulation needs to be involved. If that's the case, running the program should most likely spawn two processes. This might be a further clue as to how it is able to run. Have a look at task manager to see which additional processes show up when you run the program.

64-bit CPUs can run 16-bit program just fine. It isn't a CPU limitation, it is an OS limitation.

Microsoft decided to not provide 16-bit support on their 64-bit CPUs. Basically, they decided to draw the line on legacy support.

 

Link to post
Share on other sites

Just for informational sakes. Here is a open source project that I found that claims to allows 16-bit programs to run under Win10 64-bit,

I have not tried it to know if it really works, and the creator English needs work, but something to know. as a possible option to add to my list:

https://github.com/otya128/winevdm

Link to post
Share on other sites

32 minutes ago, GoodBytes said:

64-bit CPUs can run 16-bit program just fine. It isn't a CPU limitation, it is an OS limitation.

Microsoft decided to not provide 16-bit support on their 64-bit CPUs. Basically, they decided to draw the line on legacy support.

 

I didn't say that x86-64 couldn't run 16-bit programs, but that they can't do so in full 64-bit mode(s). In order to use older 16-bit applications you will need a emulation program for this. DOSbox for playing DOS games is available.

Link to post
Share on other sites

2 hours ago, whm1974 said:

I didn't say that x86-64 couldn't run 16-bit programs, but that they can't do so in full 64-bit mode(s). In order to use older 16-bit applications you will need a emulation program for this. DOSbox for playing DOS games is available.

Here's a more thorough explanation:

https://www.dkia.at/en/node/180

Remember to either quote or @mention others, so they are notified of your reply

Link to post
Share on other sites

2 hours ago, Eigenvektor said:

Here's a more thorough explanation:

https://www.dkia.at/en/node/180

Thanks. There is FreeDOS which will run on x86-64 Processor that still have BIOS, but I have no idea about Systems that use UEFI only. Maybe there is support.

 

Of course it would be pointless to boot up FreeDOS on Modern Hardware...

 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×