Tuesday, 01 December 2015 18:11

A Year's Progress: NTVDM (Part 1)

Written by 

Hi everyone, this is another update in the "A Year's Progress" series where we’ll cover one of the biggest achievements in the making of ReactOS 0.4 the past year: NTVDM.

Therefore, we would like to present it to you along with an overview about the work that has been done to get it where it is now. Due to the 2500 characters limit of Indiegogo updates, we split this update into two parts.

For those who don't know what NTVDM stands for yet, let's start with some basics:

What is NTVDM

NTVDM stands for NT Virtual DOS Machine. It allows users to run applications and games that are designed for DOS in an NT environment such as Windows 2000, XP, and Server 2003.

Unfortunately, with Windows Vista and later, Microsoft began removing native DOS support. Games could no longer be run in fullscreen mode. 16-bit support was disabled by default with the release of Windows 8. The only ways left to run these applications were in DOSBox or through virtualization software. With it's new NTVDM, now ReactOS can too. ;)

There is no doubt that many of you are nostalgic about the DOS era and all its awesome applications like WordPerfect, Lotus 1-2-3, DBase, Acrobat Reader, Image v2.90, Norton Commander and games like Doom II, Commander Keen 1-7, Leisure Suit Larry, SimCity, Prince of Persia, Super Street Fighter II and many more! With NTVDM, we are able to run those applications and games in Windows inside this "Virtual DOS Machine" without them suffering any loss of user experience or performance. For those who are adventurous, you can even install and run Windows 3.11 on NTVDM!

Imagine having something like this in ReactOS :)

History of ReactOS NTVDM:

The earliest revision that NTVDM existed in was r3662. Originally committed by Community Member Robert Dickenson over 13 years ago, it did not do much. Development was extremely slow back then and nothing exciting really happened about it.

At this point, and with this first incarnation of NTVDM in ReactOS, it did nothing except display memory usage and had one command that worked: quit.

Not even DOS applications could be run yet using this skeletal framework. It remained in this state until Aleksandar Andrejevic joined the project and decided to start writing a proper implementation.

Stay tuned for the upcoming part where you'll learn more about the amazing progress and the current state of NTVDM in ReactOS :)

Please don't hesitate to interact with us via comments, we would love to hear your thoughts ;)

Leave a comment

Make sure you enter the (*) required information where indicated. HTML code is not allowed.