3 ms·
That depends on if they are using 64 bit or not. The 16bit VDM was deprecated on that move from 32 to 64. Which is the majority of most installs these days.
by sumtechguy 3y ago
That depends on if they are using 64 bit or not. The 16bit VDM was deprecated on that move from 32 to 64. Which is the majority of most installs these days.
What is kind of neat is every windows application/dll is a valid DOS application. The first part of all of them is a valid MZ DOS 16 EXEcutable. Windows just treats it as a skippable header and reads the real header that is about 100 bytes in and then decides which subsystem to fire up (win3x, win32, OS/2, etc). But if you take a exe compiled today with current tools and put it on a DOS 3.3 box it would run the exe and print out it can not run (the exe has that in there).
Also from that era not all DOS applications were exclusively 16 bit. Many were hybrid. Just to have better control over the memory space instead of using segmentation was usually worth the speed boost (as well as the bigger registers). Windows from that era usually had extra 'pid' file where you could basically tag the executable as 'hey you are about to run a 32 bit app get out of the way windows oh and support dpmi while you are at it'.
- touseol 3y agoIf that was a Windows 10 screenshot then yes there would have been the possibility of it being the 32-bit edition running a DOS app through NTVDM. But the poster says Windows 11, which does not have a 32-bit edition. I’m not aware of 64-bit Windows being able to run 32-bit DPMI DOS apps natively, I think those still required NTVDM.
- sumtechguy 3y ago> I think those still required NTVDM Pretty sure you are right. As I think that is what setup the interrupts for it. Win9x did it very differently and would basically just put command.com back in charge of stuff to sort of make it work with a sys file. NT with DPMI programs was usually very hit or or miss (more miss). If they did not play just right with windows the thing would just crash out. Think there might be a win11 32 bit out there. But nothing that MS sells to normal end customers. But my brain may be playing tricks on me and I am confusing different articles I have read. But that would probably be some sort of weird kiosk ODM build. Not what most normal people would have (like in that post).
- Dwedit 3y agoOTVDM will allow running 16-bit windows programs on modern 64-bit windows.
- TillE 3y agoOTVDM is great, but it's just using Wine. Windows really ripped out the whole 16-bit compatibility layer, which is a little sad.
- deaddodo 3y agoThey were kind of forced to. WoW (classic, not WoW64) relied on the CPU being able to switch to a 16-bit context, in much the way modern WoW uses amd64's compatibility mode. OTVDM's project page directly mentions this as a core component: > CPU Emulator > 64-bit Windows cannot modify LDT(NtSetInformationProcess(,ProcessLdtInformation,,) always returns error) They would have had to replace/extend WoW with an architecture emulator. Raising the development/support complexity quite a bit for little gain (few people that use Windows 11 are running DOS or Win16 applications today, beyond retro gamers who use DOSBox anyways).
- MarkSweep 3y agoIt’s not that Microsoft chose to rip it out. NTVDM relied on Virtual 8086 mode. X86 processors cannot transition to this mode from 64-bit mode. https://en.m.wikipedia.org/wiki/Virtual_8086_mode https://en.m.wikipedia.org/wiki/Virtual_8086_mode Intel is proposing to remove 16-but support entirely: https://www.intel.com/content/www/us/en/developer/articles/technical/envisioning-future-simplified-architecture.html https://www.intel.com/content/www/us/en/developer/articles/t...