Question: I have a DOS COBOL legacy POS application that was written in-house. It's currently working fine on a Windows 98 platform, but when we run the same application on a Win XP/2000 PC, the code that sends/receives characters from the com1 port doesn't work.Is there a way to get a DOS application that needs to access the serial port on a Win XP PC to work? What's the difference between the Win 98 and Win XP OSs that the serial access on a Win 98 does work?
Answer: DOS programs assume that they have exclusive use of the computer and can therefore access the hardware however they want. Your in-house DOS program has been coded on this basis.
Windows 2000/XP is a completely differtent operating system from DOS and expects to run multiple programs at the same time. Direct access to hardware is therefore not permitted and special driver software needs to be used to interface between the application programs and the hardware to handle the fact that multiple programs may want to use the same hardware.
To get your DOS program to run on Windows 2000/XP will require that it be rewritten to call the appropriate module that controls access to the serial ports. The only other alternative is to continue to run the program on a DOS based operating system such as Windows 98 orWindows ME.
This article written by Stephen Chapman, Felgall Pty Ltd.