Microsoft Knowledge Base Article
This article contents is Microsoft Copyrighted material.
©2005-©2007 Microsoft Corporation. All rights reserved.
Terms
of Use |
Trademarks
Article ID: 252184 - Last Review: January 27, 2007 - Revision: 2.1
MS-DOS-Based Programs Unable to Initialize COM Ports on Computers with ACPI Support
This article was previously published under Q252184
If this article does not describe your hardware-related issue, please see the following Microsoft Web site to view more articles about hardware:
IMPORTANT: This article contains information about modifying the registry. Before you
modify the registry, make sure to back it up and make sure that you understand how to restore
the registry if a problem occurs. For information about how to back up, restore, and edit the
registry, click the following article number to view the article in the Microsoft Knowledge Base:
256986Â
(http://kbalertz.com/Feedback.aspx?kbNumber=256986/EN-US/
)
Description of the Microsoft Windows Registry
When you are running Windows 98 Second Edition or Windows Millennium Edition (Me) on a computer that supports the Advanced Configuration and Power Interface (ACPI) specification, MS-DOS-based programs that use the Extended Communication Service Int 14h function 05 do not work during the first attempt. To observe this behavior, use the Mode.com tool, type
MODE COMx:19200, and then press ENTER. You then receive the following error message:
Function not supported on this computer.
NOTE: The information in this article is applicable only if you are able to start your computer to an MS-DOS prompt and you are able to run the preceding command successfully. If you receive an error message when you run the preceding command, your computer's Basic Input/Output System (BIOS) does not support the extended communication INT 14h function 05 command. For additional information about this issue, click the article number below
to view the article in the Microsoft Knowledge Base:
119595Â
(http://kbalertz.com/Feedback.aspx?kbNumber=119595/EN-US/
)
Function Not Supported on This Computer
This behavior can occur because the virtual communication device (Vcd.vxd) incorrectly initializes the default state of the COM ports for MS-DOS virtual machines (VMs) when you start your computer because the COM ports have already been detected and powered off. The virtual COM ports are initialized with 0xFF for all of its states instead of the actual values of the port. Each time a new VM is created, the default state that was detected at startup is copied to the VM. Because the COM ports are trapped and virtualized, some of the responses to in/out commands are based on the default state at startup instead of the current state of the hardware. There are many in/out commands that non-virtualize the port. When this occurs, power is applied to the port, the current state is copied into the virtual settings, and the COM ports operate properly.
To work around this behavior, use either of the following methods:
Method 1
Run the MODE command twice to properly initialize the port.
Method 2
Disable the power management of the COM ports:
- Use Registry Editor (Regedit.exe) to locate the EnablePowerManagement value in the following registry key:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VCOMM
- On the Edit menu, click Modify, change 01 to 00, and then click OK.
- Quit Registry Editor.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.
This behavior does not affect 32-bit Windows programs and MS-DOS-based programs that program the UART directly, because in both of these cases power is applied to the COM ports and the COM ports are initialized properly.
APPLIES TO
- Microsoft Windows Millennium Edition
- Microsoft Windows 98 Second Edition
| kberrmsg kbhardware kbprb KB252184 |
Retired KB Content DisclaimerThis article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.
Community Feedback System
Very often, it takes hours to solve a problem. Very often, you've looked high
and low, and have tried a lot of solutions. When you finally found it, chances
are, it was because someone else helped you. Here's your chance to give back.
Use our community feedback tool to let others know what worked for you and what
didn't.
Please also understand that the community feedback system is not warranted to be
correct, it's simply a system that we've built to let people try and help each
other. If something in a feedback response doesn't make sense to you, or you're
not comfortable making changes that the feedback talks about (like registry
edits), please consult a professional.
Thank you for using kbAlertz.com Feedback System.
-- Scott Cate