40
19
Why is it that:
- a 32-bit OS, when installed on a 64-bit CPU, can run old 16-bit applications,
- but if you install a 64-bit OS it can't run those applications directly and need some sort of emulation (that doesn't always work perfectly)?
To be more specific, I have an 64-bit processor (Intel Core 2 Duo). When I had Windows XP and Windows 7 (both 32-bit) installed, they could run old DOS and 616-bit Windows applications.
Now I have installed the 64-bit edition of Windows 7. Why can't it run those same applications anymore?
3I think that has less to do with the bits and more with the guest operating system. What OS's are you referring to specifically? – Pekka – 2010-05-13T14:40:54.580
Will it run under DOSBox? – Penguat – 2010-05-13T15:30:52.820
1You're confusing Windows with all OS. – Ken Sharp – 2018-01-01T01:50:12.963
@Synetech the ᴄᴘᴜ can run directly enable 16‑bits pointers segments through the local descriptor table of the process. – user2284570 – 2019-07-21T08:59:38.420
@user2284570, gotta love backwards-compatibility. (Though to be fair, backwards-compatibility is also what results in piles of messy, tangled code and limitations that could be avoided by skipping it. ) – Synetech – 2019-07-22T12:21:44.997
I agree with Pekka, the fact is that a 64-bit (hardware) system can run 16-bit code (heck, even 1-bit code if the OS were so designed). The real catch is that the CPU cannot directly run the 16-bit code due to things like different pointer sizes, but these issues can be abstracted away by the OS. The limitation is an artificial one that Microsoft imposed to simplify things (though they still emulated 32-bit because there is still so much 32-bit code). There are other OSes (*nix?) that can run 16-bit code without issue. – Synetech – 2012-09-01T20:59:40.533
1
There is a utility called DOSBOX its a 16 bit emulator that gives your 16 bit program a virtual 16 bit computer to work on, and its free.
– None – 2012-01-20T04:22:42.937