16-bit Applications Won't Run

G

Gordon Quayle

On a Win XP Home computer, 16-bit applications suddenly
stopped working today. They will open up briefly and
then just terminate and go away. The only change that we
can identify on the computer was a Norton anti-virus
update between the time it was working and when it
stopped working.

Any ideas as to the cause and the solution?
 
D

David Candy

Troubleshooting MS-DOS-Based Programs in Windows NT 4.0

Q165214


--------------------------------------------------------------------------------
The information in this article applies to:

a.. Microsoft Windows NT Server version 4.0
b.. Microsoft Windows NT Workstation version 4.0
c.. Microsoft Windows 2000 Professional
d.. Microsoft Windows 2000 Server
e.. Microsoft Windows 2000 Advanced Server

--------------------------------------------------------------------------------


SUMMARY
This article describes how to troubleshoot MS-DOS-based program problems in Windows NT 4.0 and Windows 2000.



MORE INFORMATION

Test the Ntvdm Subsystem
The first thing to test when you are having problems with MS-DOS-based programs is the Windows NT Virtual Dos Machine (NTVDM) subsystem. You can use Command.com to test whether the NTVDM subsystem is running properly. You can start Command.com by performing the following steps:
1.. Click the Start button, and then click Run.


2.. In the Open box, type "command.com" (without quotation marks) and then click OK


This should start a command prompt window. If this does not work properly, there is a problem with the NTVDM subsystem and you should check the following items:
a.. Check the Config.nt and Autoexec.nt files in the %systemroot%\system32 folder for non-standard settings.

Using a REM statement, remark out all entries *except* the following default entries:


Config.nt
---------
dos=high, umb
device=%SystemRoot%\system32\himem.sys
files=20

Autoexec.nt
-----------

lh %SystemRoot%\system32\mscdexnt.exe
lh %SystemRoot%\system32\redir
lh %SystemRoot%\system32\dosx
lh %SystemRoot%\system32\nw16 (only if CSNW is installed)
lh %SystemRoot%\system32\vwipxspx (only if CSNW is installed)
NOTE: Another way to accomplish this is to expand Autoexec.nt_ and Config.nt_ from the Windows NT or Windows 2000 CD-ROM disc to the %SystemRoot%\SYSTEM32 folder.


b.. Close all other running programs. This can be accomplished by running Task Manager, closing all running programs, and making sure that there are no other NTVDM processes running. To start Task Manager, press CTRL+SHIFT+ESC.


c.. Prevent all programs from running at startup. Programs can run from three places at startup: the Startup groups, the Run and Runonce lines in the registry, and the "run=" and "load=" lines in the Win.ini file. You can check these places as follows:


a.. The Startup groups are folders on the local hard disk located in the %SystemRoot%\profiles\%username%\start menu\programs and %systemroot%\profiles\default user\start menu\programs folders.


b.. The Run and Runonce lines can be found in the registry under the
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ key.


c.. You can edit the Win.ini file using Notepad. It is in the %SystemRoot% folder.


d.. Verify the NTVDM system files in the %SystemRoot%\System32 folder. Check the following files and make sure they are the correct version by checking the size and date:


Ntio.sys
Ntdos.sys
Ntvdm.exe
Ntvdm.dll (Windows NT 3.1 only)
Redir.exe


e.. The registry entries associated with the NTVDM subsystem are:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment.

This key stores the environment variables from the Config.sys and Autoexec.bat files for use in Windows NT or Windows 2000.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ VirtualDeviceDrivers.

This key stores the device drivers to be used in a NTVDM session. These entries are created by Windows NT or Windows 2000 Setup when a device driver is installed.


Program-Specific Issues
The following functions do not work in Windows NT and Windows 2000:
a.. All MS-DOS functions except task-switching APIs (program programming interface functions) are supported.


b.. Block mode device drivers are not supported. (Block devices are not supported, so MS-DOS IOCTL APIs that deal with block devices and SETDPB functions are not supported.)


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


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


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


f.. Interrupt 19 will not reboot the computer, but will cleanly terminate the current virtual DOS machine (VDM).


g.. Interrupt 2F dealing with the DOSKEY program call outs (AX = 4800) is not supported.


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


i.. The 16-bit Windows subsystem on an x86 computer supports enhanced mode programs; it does not, however, support 16-bit VxDs (virtual device drivers). The subsystem on a non-x86 computer emulates the Intel 40486 instruction set, which lets the computer run Enhanced-mode programs, such as Microsoft Visual Basic, on RISC computers.


This means that Windows NT and Windows 2000 do not support 16-bit programs that require unrestricted access to hardware. If your program requires this, it will not work in Windows NT or Windows 2000.

You should next check to see if the Autoexec.nt and Config.nt file settings are correct. Always try the default settings listed above. Some programs require special settings or drivers to run in the Config.sys or Autoexec.bat file. If this is the case, there are two options for initializing these files when starting your program:
a.. Enter these lines in the Config.nt and Autoexec.nt files in the %SystemRoot%\System32 folder.


b.. Create new Config and Autoexec files to be run when starting this program. To do so, follow these steps:


1.. Create the files and save them with the extension .nt in a folder other than %SystemRoot%\System32 (these files are usually saved in the same folder as the program.


2.. Use the right mouse button to click the desktop, point to New, and then click Shortcut.


3.. In the Command Line box, type the full path to the file you want to run, and then click Next.


4.. In the "Select a name for the shortcut" box, type the name for the shortcut, and then click Finish. This creates a new shortcut on the desktop.


5.. Use the right mouse button to click the new shortcut, and then click Properties.


6.. On the Program tab, click Windows NT. This opens a dialog box for the path to the Autoexec and Config files.


7.. Type the full path to the files you created, and then click OK in both dialog boxes.


Every time this icon is started, it runs the Autoexec and Config files specified for the program. These settings are subject to the same restrictions as listed for MS-DOS-based programs.
There are other settings in a program's properties. If your program is not working properly, you may want to check all the tabs and make sure that the program settings are set to the manufacturer's specification. If the program is still not working, the vendor of the program should be contacted to see if the program is supported under Windows NT.

For additional information, please see the following articles in the Microsoft Knowledge Base:
ARTICLE-ID: Q171940
TITLE : MS-DOS Application I/O Operations Cause Floppy Drive Access

ARTICLE-ID: Q102418
TITLE : NTVDM Error: There Is No Disk in the Drive

ARTICLE-ID: Q156687
TITLE : Entries in CONFIG.NT or AUTOEXEC.NT May Cause NTVDM Errors

ARTICLE-ID: Q142026
TITLE : Err: "Hidden Console of WOW VDM" Running 16-bit or DOS App
For additional information about printing in an MS-DOS-based program, please see the following article in the Microsoft Knowledge Base:
ARTICLE-ID: Q163551
TITLE : Troubleshooting Printing Problems in Windows NT 4.0

Additional query words: apps msdos application

Keywords :
Issue type :
Technology : kbWinNTsearch kbWinNTWsearch kbWinNTW400 kbWinNTW400search kbWinNT400xsearch kbwin2000AdvServ kbwin2000AdvServSearch kbwin2000Serv kbWinNTSsearch kbWinNTS400xsearch kbWinNTS400 kbwin2000ServSearch kbwin2000Search kbwin2000ProSearch kbwin2000Pro kbWinAdvServSearch


Last Reviewed: January 29, 2000
© 2001 Microsoft Corporation. All rights reserved. Terms of Use.
 
G

Guest

I had looked at KB article and checked some of the settings and couldn't find any that were wrong. It seems to address an issue of 16-bit apps not ever working on a computer untill it is configured correctly.

I need something to explain why it has been working for years and then all of a sudden stop. A virus, perhaps? and what to fix to get it going again.
 
P

Plato

Gordon said:
On a Win XP Home computer, 16-bit applications suddenly
stopped working today. They will open up briefly and
then just terminate and go away. The only change that we
can identify on the computer was a Norton anti-virus
update between the time it was working and when it
stopped working.

You're lucky that's all the norton app. killed. It could have been
worse.
 
D

David Candy

Which exact things did you try and what did you find. Also post c:\autoexec.bat if you have one.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top