You are currently offline, waiting for your internet to reconnect

MS-DOS-Based Applications and Command Prompts

This article was previously published under Q99279
This article has been archived. It is offered "as is" and will no longer be updated.
Windows NT provides a fully-integrated command prompt that enables youto launch both Windows-based and MS-DOS-based applications. Althoughthe concept of running an MS-DOS-based application in a Windows-basedenvironment may be familiar to you, Windows NT handles this somewhatdifferently than Windows (16-bit) does.

The essential difference lies in the command prompt itself; underWindows NT, the command prompt is a 32-bit Windows NT-basedapplication, not the virtual MS-DOS machine you would expect fromWindows. Under Windows NT, until you start an MS-DOS-basedapplication, no virtual MS-DOS machine is created. Furthermore, onceyou start an MS-DOS-based application, its virtual MS-DOS machine isused for all subsequent MS-DOS-based applications started from thesame command prompt.

As in Windows, each MS-DOS-based application can have a programinformation file (PIF). If there is no PIF for a particularapplication, the default PIF, _DEFAULT.PIF, is used. Because WindowsNT only uses the PIF from the first application started in any givencommand prompt, you may need to take special care in the way you startyour applications. For example, if you design a PIF that allocatessome EMS memory, it is important that you start the associatedapplication first; otherwise, the EMS memory may never be allocated.You may start a Windows NT command prompt and then run the MS-DOScommand, MEM, to see how much memory you have free. Because MEM isanother MS-DOS-based application, Windows NT creates a virtual MS-DOSmachine, probably using _DEFAULT.PIF. After MEM finishes, you startthe application you created the PIF for. Unfortunately, because_DEFAULT.PIF doesn't instruct Windows NT to allocate EMS memory, yourapplication reports that it can find no EMS memory. Rechecking the PIFyou created does not solve the problem. You need to start anothercommand prompt and then make sure to start your EMS-requiringapplication first, before you start any other MS-DOS-basedapplications.

There is one more difference to be aware of: each PIF contains apointer to AUTOEXEC and CONFIG files. Usually these default to theWindows NT versions, AUTOEXEC.NT and CONFIG.NT. If you want to changeenvironment variables for your MS-DOS-based applications, you need topoint their PIFs to different files or modify the default ones. (Tosee these files and their locations, run PIF Editor and choose WindowsNT.)
prodnt wow

Article ID: 99279 - Last Review: 12/04/2015 09:28:06 - Revision: 3.1

Microsoft Windows NT Advanced Server 3.1, Microsoft Windows NT Workstation 3.1

  • kbnosurvey kbarchive KB99279