philo said:
No way will you get "real mode" DOS access on any machine running Vista ,
XP
or Win2k
I belive that is incorrect.
DOS applications can certainly run on Windows 2000, XP and Vista. They are
enabled by the "NTVDM" 16 bit subsystem which is an integral part of all
these operating systems. Many customers run legacy DOS applications such as
POS apps, on XP and Vista.
Specific DOS applications may have compatibility problems; it's always best
to test, before making too big a commitment. But in general terms, a
"well-behaved" DOS program should work. DOS apps which try to directly
address the hardware will often fail.
Any printer - USB, network, LPR etc - can be mapped to a DOS device port, by
using the "NET USE" command. For example, say you have a new USB printer
attached to the computer. Let's call it "Printer1".
In Control Panel, Printers, highlight Printer1 and right-click.
Choose "Sharing" from the context menu.
Make the Printer shareable - give it a share name, can be the same as
printer name eg "Printer1".
Go to Start Menu, Accessories, and right-click the Command Prompt icon.
Select "Run as Administrator".
In the administrative command prompt, run this command:
C:\>NET USE LPT1: \\computername\Printer1
The command should respond with "The command completed successfully". Now,
any DOS application which tries to print to LPT1:, will print to Printer1 -
even if it is not attached to a real, physical parallel port.
You should only need to set this up once. After that, the device mapping
will remain persistent, until you explicitly remove it with:
C:\>NET USE LPT1: /D
to delete the mapping.
Note that you need to enable file and print sharing in Vista, in order to
share printers.
There are a few caveats. There were many different ways you could program a
DOS application to print. The NTVDM in Vista copes with a few of the most
common DOS printing techniques. However, if an application tries to use a
less common printing method, it may continue to fail on Vista, even after
you map an LPT port. So, as I say, you really need to test and confirm,
before laying down big bucks or burning any bridges.
Note also that all the above only applies to 32-bit Vista. You cannot run
DOS apps on 64-bit Vista, or on any 64-bit version of Windows (XP, Server
2003, Server 2008).
There are some other alternative strategies to enable a DOS application on
Vista, which may help if the above does not work. Microsoft's canonical
solution is to download and install Virtual PC:
Virtual PC 2007
http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx
You create a virtual machine using VPC and install DOS into that VM. Then
you run the DOS app, in the DOS VM, running in a Window on your Vista
Desktop. The DOS app then has a pure DOS environment to work in. Virtual PC
will redirect any printing in the VM to any Windows printer - doesn't need
to be parallel attached.
If a commercial customer doesn't mind using unsupported, open source
software, DosBox is also a very good DOS emulator for Vista.
Good luck with it,