News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

ntvdm.dll

Started by nidud, December 14, 2012, 10:00:21 PM

Previous topic - Next topic

pcMike

Hi Hutch,

Ok, I won't try to convince you otherwise, I'll just put a note in my source code reminding me that if I upgrade MASM32 (or perform a clean install on a new computer), I will need to use a different version of NTVDM.LIB :)

I agree that DOS programs that use Win32 Virtual Device Drivers in this day and age are rather obscure. It's a shame that Microsoft is not willing to extend the NTVDM environment to support Win64.

Regards,  Mike


sinsi

>It's a shame that Microsoft is not willing to extend the NTVDM environment to support Win64.
Once you are in 64-bit mode you no longer have access to V86 mode. Blame Intel/AMD, not MS.

pcMike

Hi Sinsi,

>>It's a shame that Microsoft is not willing to extend the NTVDM environment to support Win64.
>Once you are in 64-bit mode you no longer have access to V86 mode. Blame Intel/AMD, not MS.

True... but if Microsoft wanted to, they could extend the NTVDM to run fully in software emulation mode under 64-bit Windows.   They already allow some 16-bit protected mode applications to run this way, such as legacy InstallShield and Acme installer files (16-bit installers used to install 32-bit applications). The performance of DOS applications would not be as fast as in Virtual 8086 mode, but as modern CPU's become faster the difference becomes marginal.

Regards,  Mike

sinsi

Well, they make VirtualPC (for older Windows) or more recently Hyper-V.
You also have bochs, qemu, dosbox, VirtualBox, VMWare...

Vortex

#34
Quote from: pcMike on September 13, 2015, 08:48:18 AM
I tested the version of NTVDM.LIB which Vortex created using his def2lib tool, and both versions he made available in this thread would not allow me to build a functional VDD DLL file, as the file could not be registered by a using a DOS BOP "register VDD" command. 

You didn't download the zip file I posted here :

http://masm32.com/board/index.php?topic=1086.msg49342#msg49342

The post count is zero so I assume you downloaded lib2def and def2lib from my website.

My ntdm.lib should work with your project. Are you sure that you specified the -e option to build the import library?

def2lib ntvdm.def -e

The -e switch will instruct def2lib to create the correct entries in the library, ntvdm.exe   Without the -e option, you will get the .dll extension instead of .exe




pcMike

Hi Vortex,

I downloaded both the def2lib and dll2inc tools from your web site.  I tested it today and the resulting DLL works perfectly. :)

Regards,  Mike

Vortex

Hello pcMike,

Glad to learn that it worked for you. Kindly, could you please tell if you used the -e option to build the import library? Thanks.

def2lib ntvdm.def -e

pcMike

Hi Vortex,

Yes, the -e option is needed in order for it to work with the DOS BOP "register VDD" function.
Otherwise the BOP command fails with AX=1 (Can't find DLL).

Regards,  Mike

pcMike

Hi Sensi,

>Well, they make VirtualPC (for older Windows) or more recently Hyper-V.
>You also have bochs, qemu, dosbox, VirtualBox, VMWare...

Someone has started an NTVDM-alike project for 64-bit Windows, but it is still far from complete.
http://sourceforge.net/projects/nxvdm/

Regards,  Mike

TouEnMasm


https://en.wikipedia.org/wiki/Virtual_DOS_machine
dosbox is a real good alternative who allow  old dos game to run on actual machine
Fa is a musical note to play with CL