Myria wrote:
I've wanted to write an NTVDM for ReactOS, but I'm not sure when I'd ever have time.
Windows NT's DOS subsystem, NTVDM, is a user-mode program that runs on top of Win32. It runs DOS programs as Windows processes, using v86 mode to run the programs. DPMI programs are supported by asking the kernel to allocate LDT segments and running directly. (If you write a DOS32 program and know the correct addresses, you can call MessageBoxW in user32.dll and it will work.)
This differs significantly from DOSBox, which is effectively a machine emulator rather than an API translator. DOSEmu, in comparison, is essentially the same design as NTVDM but for Linux.
FreeDOS in DOSBox works very well, because the FreeDOS kernel is its normal self and is unaware that it's inside a VM. However, this doesn't work for NTVDM/DOSEmu. In these, the FreeDOS kernel will need to be heavily modified, particularly because the NT kernel handles file I/O. Programs inside the virtual DOS environment use illegal opcodes to talk to NTVDM.
Melissa
True Closest Freedos to Windows NT NTVDM is http://freedos-32.sourceforge.net/. Its was newer version under development. It could be stalled from 2005.
Peter Dolding