When you have problems with MS-DOS programs:

Test the NTVDM (Windows Virtual DOS Machine) subsystem:

1. Start / Run / Command.com / OK.

2. If a C:\Windows\System32\Command.com session does NOT open, the NTVDM is misconfigured. Check the Config.nt and Autoexec.nt files in the %SystemRoot%\System32 folder for non-standard entries:

Config.nt                              ---------                              REM Windows MS-DOS Startup File                              REM                              REM CONFIG.SYS vs CONFIG.NT                              REM CONFIG.SYS is not used to initialize the MS-DOS environment.                              REM CONFIG.NT is used to initialize the MS-DOS environment unless a                              REM different startup file is specified in an application's PIF.                              REM                              REM ECHOCONFIG                              REM By default, no information is displayed when the MS-DOS environment                              REM is initialized. To display CONFIG.NT/AUTOEXEC.NT information, add                              REM the command echoconfig to CONFIG.NT or other startup file.                              REM                              REM NTCMDPROMPT                              REM When you return to the command prompt from a TSR or while running an                              REM MS-DOS-based application, Windows runs COMMAND.COM. This allows the                              REM TSR to remain active. To run CMD.EXE, the Windows command prompt,                              REM rather than COMMAND.COM, add the command ntcmdprompt to CONFIG.NT or                              REM other startup file.                              REM                              REM DOSONLY                              REM By default, you can start any type of application when running                              REM COMMAND.COM. If you start an application other than an MS-DOS-based                              REM application, any running TSR may be disrupted. To ensure that only                              REM MS-DOS-based applications can be started, add the command dosonly to                              REM CONFIG.NT or other startup file.                              REM                              REM EMM                              REM You can use EMM command line to configure EMM(Expanded Memory Manager).                              REM The syntax is:                              REM                              REM EMM = \[A=AltRegSets\] \[B=BaseSegment\] \[RAM\]                              REM                              REM     AltRegSets                              REM         specifies the total Alternative Mapping Register Sets you                              REM         want the system to support. 1 <= AltRegSets <= 255. The                              REM         default value is 8.                              REM     BaseSegment                              REM         specifies the starting segment address in the Dos conventional                              REM         memory you want the system to allocate for EMM page frames.                              REM         The value must be given in Hexdecimal.                              REM         0x1000 <= BaseSegment <= 0x4000. The value is rounded down to                              REM         16KB boundary. The default value is 0x4000                              REM     RAM                              REM         specifies that the system should only allocate 64Kb address                              REM         space from the Upper Memory Block(UMB) area for EMM page frames                              REM         and leave the rests(if available) to be used by DOS to support                              REM         loadhigh and devicehigh commands. The system, by default, would                              REM         allocate all possible and available UMB for page frames.                              REM                              REM     The EMM size is determined by pif file(either the one associated                              REM     with your application or _default.pif). If the size from PIF file                              REM     is zero, EMM will be disabled and the EMM line will be ignored.                              REM                              dos=high, umb                              device=%SystemRoot%\system32\himem.sys                              files=40                              Autoexec.nt                              -----------                              @echo off                              REM AUTOEXEC.BAT is not used to initialize the MS-DOS environment.                              REM AUTOEXEC.NT is used to initialize the MS-DOS environment unless a                              REM different startup file is specified in an application's PIF.                              REM Install CD ROM extensions                              lh %SystemRoot%\system32\mscdexnt.exe                              REM Install network redirector (load before dosx.exe)                              lh %SystemRoot%\system32\redir                              REM Install DPMI support                              lh %SystemRoot%\system32\dosx                              REM The following line enables Sound Blaster 2.0 support on NTVDM.                              REM The command for setting the BLASTER environment is as follows:                              REM    SET BLASTER=A220 I5 D1 P330                              REM    where:                              REM        A    specifies the sound blaster's base I/O port                              REM        I    specifies the interrupt request line                              REM        D    specifies the 8-bit DMA channel                              REM        P    specifies the MPU-401 base I/O port                              REM        T    specifies the type of sound blaster card                              REM                 1 - Sound Blaster 1.5                              REM                 2 - Sound Blaster Pro I                              REM                 3 - Sound Blaster 2.0                              REM                 4 - Sound Blaster Pro II                              REM                 6 - SOund Blaster 16/AWE 32/32/64                              REM                              REM    The default value is A220 I5 D1 T3 and P330.  If any of the switches is                              REM    left unspecified, the default value will be used. (NOTE, since all the                              REM    ports are virtualized, the information provided here does not have to                              REM    match the real hardware setting.)  NTVDM supports Sound Blaster 2.0 only.                              REM    The T switch must be set to 3, if specified.                              SET BLASTER=A220 I5 D1 P330 T3                              REM To disable the sound blaster 2.0 support on NTVDM, specify an invalid                              REM SB base I/O port address.  For example:                              REM    SET BLASTER=A0                              lh %SystemRoot%\System32\Nw16     (only if CSNW is installed)                              lh %SystemRoot%\System32\Vwipxspx (only if CSNW is installed)
NOTE: Use REM to ignore any other entries for troubleshooting.

NOTE: You can copy these files from %SystemRoot%\Repair or expand the autoexec.nt_ and Config.nt_ files from the I386 folder of the Windows XP CD-ROM.

3.Press CTRL+SHIFT+ESC to start Task Manager and close all running programs.

4. Make sure that no other instance of NTVDM is running.

5. Use MSConfig to temporarily disable all programs in the Startup groups, the registry Run and RunOnce keys, and the "run=" and "load=" lines in the Win.ini file. 

6. Make sure that the following files exist in the %SystemRoot%\System32 folder, that they have dates consistent with the initial install or your last service pack (Expand from the media):

   command.com                                 Ntio.sys                                 Ntdos.sys                                 Ntvdm.exe                                 Ntvdmd.dll                                 Redir.exe
Any environment variables required must be located in the registry at HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment.

Any device drivers used in the NTVDM session should have been installed by Windows and recorded at:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\VirtualDeviceDrivers\VDD.

MS-DOS Program-Specific Issues

01. All MS-DOS program functions except task-switching functions are supported.

02. The MS-DOS program may not use block mode drivers, APIs that deal with block devices, and SETDPB.

03. Interrupt 10 function 1A returns 0; all other functions are passed to read-only memory (ROM).

04. Interrupt 13 calls that deal with prohibited disk access are not supported.

05. Interrupt 18 (ROM BASIC) generates a message that says that ROM BASIC is not supported.

06. Interrupt 19 does not restart the computer, but cleanly closes the current NTVDM.

07. Interrupt 2F, which deals with the DOSKEY program callouts (AX = 4800), is not supported.

08. Microsoft CD-ROM Extensions (MSCDEX) functions 2, 3, 4, 5, 8, E, and F are not supported.

09. Programs that require unrestricted access to hardware are not supported.

10. If the program uses custom versions of Autoexec.nt and Config.nt, these should NOT be stored in the %SystemRoot%\System32 folder. These are referenced by using the Advanced button on the Program tab of the shortcut, program, or .pif Properties.

11. Make sure that all the tabs in the Properties dialog are properly set per the author's specifications.

Other references:

NTVDM Error: There Is No Disk in the Drive.

Entries in CONFIG.NT or AUTOEXEC.NT May Cause NTVDM Errors.

Err: 'Hidden Console of WOW VDM' Running 16-bit or DOS App.