Resolving Windows 98 ACPI Serial Port Issues

Kenn's
Tech
Notes

20001105: Resolving Windows 98 ACPI Serial Port Issues

November/2000
Tech Note #5

Technicians have been reporting problems using some older serial devices and their associated software on the new Dell Optiplex GX110 workstations. Dell has confirmed that the serial ports on these systems - while complying with the RS-232 and UART 16550A specifications - do indeed behave differently in Windows 98 Second Edition than the legacy ports most technicians are familiar with. Although these ports support all serial devices from Microsoft's PC99 Hardware Compatibility List, certain older devices may not work properly or at all. Such devices were designed and built at a time when the waveform amplitude output from serial ports was several volts higher than from today's ACPI-controlled, Green PC-compliant ports. Problem devices discovered so far include the Scantron scanner and Videx Time Wand 1, among others.

Note that this is not a Dell problem, but rather an issue created by the evolving standards for PCs. All PC99-certified systems running Windows 98 in ACPI mode will demonstrate these same symptoms. But all is not lost. We do have some solutions!

The GX110s are the first workstations the Division has purchased which have a purely ACPI-based BIOS. ACPI is Advanced Configuration and Power Interface, and its essential difference from APM is that its implementation is based in the operating system, instead of in the BIOS. In previous years, all workstations supported APM, and some (notably the 1999 Pentium II 333 workstations which the Division purchased) supported both APM and ACPI. On systems which support both, such as the 1999 workstations, the serial ports work with all legacy devices, unless you reconfigure Windows 98 to run in ACPI mode. If you make this change, those workstations show the same "fault" as the Dell workstations. Since APM has been replaced by ACPI in the PC Design Guide, the Dells (and all new HCL-certified systems) do not have the option to run in APM mode. For users with an older serial device, the problem is not easily solved. At this time, Dell has no software solution to offer, but suggests three workarounds: a) discard the device and replace it with one from the Microsoft HCL; b) install a PCI serial port which supplies the higher voltage levels which ACPI power management disables; and c) purchase a repeater box which boosts the serial port signal levels to pre-ACPI amplitude.

In addition to those three relatively expensive solutions, A/V Computer Repair offers the following three free workarounds. All methods have been confirmed in the shop, using the Videx Time Wand 1, which exhibits the symptoms noted above.

Method 1 (preferred): If the problem device is used only by DOS-based applications and not by any Windows applications, you can modify the properties of the shortcut which launches the program(s) to allow the port to work. On the Program tab, click Advanced. Place a checkmark in "MS-DOS Mode". Clear the checkmark from "Warn before entering MS-DOS Mode." Select the radio button for "Specify a new MS-DOS configuration." It is not necessary to edit the new configuration - although you may if you wish, or if the program in question has additional requirements - but it is necessary to select the "new configuration" button. The result of this method is that when the user launches the application from the modified shortcut, Windows will exit and boot clean. In this mode, the ACPI drivers in Windows are not active, and the output amplitude at the serial ports is at legacy levels.

Method 2 (convenient): If the problem device is used only by DOS-based applications and not by any Windows applications, but the user does not wish to have the system do a clean DOS boot every time the program is run, this method is more convenient, but since it involves editing the registry, it is more dangerous.

You will need to modify one value in the registry and reboot. To find where the value is located, look at the subkeys of HKEY_LOCAL_MACHINE\Enum\ACPI\*PNP0501. They will be named 00000001, 00000002, etc. Usually 00000001 will be COM1 and 00000002 will be COM2. However, you must confirm this by looking at the values "PORTNAME", "FRIENDLYNAME", and "DeviceDesc". These values will tell you whether you are in the correct subkey for the COM port you wish to change. Remember, modifying the registry is dangerous. Don't do it if you're not sure.

When you have confirmed that you have found the registry key corresponding to the COM port you wish to modify, find the value "ConfigFlags" in that key and set the 7th bit in the first octet. What this will normally mean is that you change the value 00 00 00 00 to 02 00 00 00.

If you know the correct number of the subkey in question you can make the change by importing a registry file. For example, on our test system, the change to COM2 could be made by importing the following file:

REGEDIT4

[HKEY_LOCAL_MACHINE\Enum\ACPI\*PNP0501\00000002]
"ConfigFlags"=hex:02,00,00,00
What you will notice after you have made the change to the registry and rebooted is that, in Device Manager, the entry for the port in question no longer exists. This means that Windows applications will not have access to the port. Assuming the device you are using is constantly connected, and is used only by a DOS-based app, this will not be a problem. Because the driver is flagged not to be loaded, the ACPI power management restrictions are not imposed, and the DOS app will have no problem "talking" to the device.

Method 3 (dangerous): This method is for advanced users only. Use this method only if you require Windows to be active while accessing the device in question, and only if you are knowledgeable in the use of Microsoft Registry Editor.

First, create a file called C:\DELCOM.REG. Here's the really dangerous part. This file must contain the registry keys for the com ports of the system, preceded by a minus sign. While the enumeration ACPI key should be standard, the Ports keys are assigned dynamically, and may vary from system to system. On our test system, the file looked like this:

REGEDIT4

[-HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Ports\0000]
[-HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Ports\0001]
[-HKEY_LOCAL_MACHINE\Enum\ACPI\*PNP0501]
However, that file will only work on another system where the two serial ports are enumerated as ports 0000 and 0001. To activate the file at boot, place the following line at the end of C:\AUTOEXEC.BAT:

REGEDIT C:\DELCOM.REG

The result of this method - if you create the file correctly - is that the drivers for the serial ports are not loaded when the ACPI layer initializes. Instead, when the user logs on after booting (each and every boot), they will see Windows detect new hardware and install the software for the two serial ports. It adds about five to ten seconds to the boot process, but the serial ports do then support legacy devices such as the Time Wand 1. Because all power management settings were made prior to the serial port drivers loading, power management restrictions are not in force for those ports.

Again, this is a dangerous method, which must be customized to the individual system. If you create the registry file incorrectly, you can damage Windows irreparably. (Also, the use of REGEDIT in C:\AUTOEXEC.BAT may stop functioning at some time in the future. Because it is running in DOS mode, it is bound by the restrictions of conventional memory. Eventually, if enough software is installed, the registry will be too large to support this file import during the boot process.) If you feel you need to implement this, please contact A/V Computer Repair so that we can confirm your methodology for the specific system in question, prior to implementation.

At the date of writing, all three methods have only been tested with the Videx Time Wand 1, so we have no guarantee this will work with other devices. Also, method 3 appears to be the only solution for allowing Windows applications access to a legacy serial device without ACPI control, but we have not found a Windows app to verify this with. Division technicians should not hesitate to contact A/V Computer Repair if they have such a device which they would like to connect to a Windows 98 ACPI BIOS based system.



DISCLAIMER: This document is intended for the reference of computer support personnel within Winnipeg School Division No. 1. There is no warranty or liability if procedures recommended here have an adverse affect on any systems. Use them at your own risk. Any trademarks mentioned are the property of their owners, none of whom have certified any information provided here. Opinions expressed here are personal only and do not represent the policy of Winnipeg School Division No. 1 or any other organization anywhere.


Got a Tech Note to share? Submissions are most welcome! [Click here.]

To return to the Tech Notes home page, click here.

To download a copy of all the November/2000 Tech Notes in Rich Text Format, click here.
Click here to visit the Information "Super-Cul-De-Sac". This page was updated
2001 June 9


This page hosted by
Get your own Free Homepage
Check out my neighbours here in Silicon Valley Peaks by clicking here.