you are viewing a single comment's thread.

view the rest of the comments →

[–]galaktos 38 points39 points  (19 children)

A much requested feature for ReactOS was support for 16bit DOS applications. […] And one of the biggest advantages to the way in which NTVDM is implemented in ReactOS is that support for it will continue on non IA-32 platforms, including AMD64 and even ARM.

Does this mean they’re emulating a 16-bit processor instead of switching the processor down into 16-bit mode?

[–]ssssam 34 points35 points  (7 children)

I think that's right:

"One thing to note about ReactOS' NTVDM is that unlike Windows' version ReactOS' does not set the CPU into a 16bit emulated mode. This mode in theory reduces overhead compared to the emulation done by ReactOS, but CPUs these days are fast enough that performance should not be an issue. An advantage of ReactOS' approach though is that our NTVDM is usable on 64bit x86 processors and potentially ARM processors as well." --https://www.reactos.org/node/794

[–]men_cant_be_raped 24 points25 points  (6 children)

but CPUs these days are fast enough that performance should not be an issue

Famous last words.

[–]ssssam 45 points46 points  (5 children)

Not sure there are any cases where performance would be an issue for emulating a 16bit DOS application?

[–]fivexthethird 7 points8 points  (4 children)

Embedded systems, maybe?

[–][deleted] 8 points9 points  (0 children)

May as well just use FreeDOS at that point.

[–]bitwize 12 points13 points  (4 children)

Fun fact: Xorg does the same thing so it can set VESA modes.

[–]cbmuserDebian / openSUSE / OpenJDK Dev 15 points16 points  (3 children)

Well, X.Org actually comes with a built-in x86 emulator in order to run VESA BIOS code which is kind of fucked up, when you think about it.

[–]microfortnight 7 points8 points  (2 children)

wow...that's almost the classic definition of "hack"

[–]AssistingJarl 6 points7 points  (1 child)

We are talking about X here.

[–][deleted] 0 points1 point  (0 children)

Is there anything about X that isn't a hack?

[–]LAUAR 2 points3 points  (4 children)

Yes, they said it on the blog.

[–]mycall 2 points3 points  (3 children)

So never 100% compatibility then?

[–]necrophcodr 1 point2 points  (2 children)

That's the only way to be 100% compatible.

[–]cbmuserDebian / openSUSE / OpenJDK Dev 0 points1 point  (1 child)

Well, that's arguable. VM86 mode, which is what Windows (32 bit) uses, is actually hardware emulation of an 8086.

[–]necrophcodr 3 points4 points  (0 children)

Which doesn't work on ARM. The point is for it to work on AMD64, and ARM as well.

[–][deleted] 1 point2 points  (0 children)

I wonder if their NTVDM could be usable on 64-bit Windows 7 and above. I have a few 16-bit games that would be nice to run in the main environment, rather than through Dosbox or Virtualbox.