Please note: Under Windows 3.1, some of the settings mentioned below now must be modified via the Windows Control Panel. Q63482 Enhanced Mode Error: COM Port Assigned to DOS Application Microsoft Windows 3 Retail Product (WIN3) 3.00 MS-DOS Summary: This article contains information on possible causes for the following Microsoft Windows version 3.00 enhanced mode error: The COM port is currently assigned to a DOS application. Do you want to reassign the port to Windows? 1. If the Port in Question Is COM3 or COM4 ------------------------------------------ COM3 or COM4 may NEVER be used from Microsoft Windows 3.00 enhanced mode by ANY Windows or DOS application without making a modification to the SYSTEM.INI file as follows. Insert the following two lines in the [386ENH] section: COM3Base=3E8h COM4Base=2E8h This modification should eliminate the problem. If the problem persists after this modification, verify that you have properly inserted the lines as shown above (they are not case-sensitive). If they are correct, the hardware interrupt (IRQ) and/or base I/O addresses may be incorrect for one or more hardware COM ports in your system. The following are the IBM standard port settings for COM3 and COM4. For further information about this topic, and IBM standard settings for COM1 and COM2, see Section 2, below. COM3 - hardware interrupt (IRQ) 4, base I/O address 3E8 COM4 - hardware interrupt (IRQ) 3, base I/O address 2E8 2. If the Port in Question Is COM1 or COM2 ------------------------------------------ Is COM3 or COM4 being used? COM1 and COM3, or COM2 and COM4, cannot be used simultaneously on any machine that does not have a micro channel (MCA) bus, such as IBM PS/2 machines, or the new extended industry standard architecture (EISA) bus, such as the COMPAQ SystemPro. This is a hardware limitation; there is no workaround. See the More Information section for further details. If neither COM3 or COM4 is being used, then the hardware interrupt (IRQ) channels and/or base I/O addresses for COM1 and COM2 may be set incorrectly. On a non-PS/2 machine, these settings are made by using hardware DIP switches or jumpers. Consult your hardware documentation for information on such settings. If you need further assistance in properly configuring your hardware, contact your hardware vendor or manufacturer. The correct IBM standard settings for COM1 and COM2 are as follows: COM1 - hardware interrupt (IRQ) 4, base I/O address 3F8 COM2 - hardware interrupt (IRQ) 3, base I/O address 2F8 More Information: COM1 and COM3, or COM2 and COM4, may not be used simultaneously on any system that does not use an MCA bus, such as an IBM PS/2, or an EISA bus, such as a COMPAQ SystemPro. This is because the normal Industry Standard Architecture (ISA) bus does not implement hardware interrupt (IRQ) sharing. IRQ sharing allows multiple devices, such as COM ports, to use the same hardware interrupt. Note that by default, the COM1/COM3 and COM2/COM4 pairs of ports use the same interrupts. This is a hardware limitation; there is no possible workaround other than not using these pairs of ports simultaneously. The Windows version 3.00 enhanced mode SYSTEM.INI setting "ComIRQSharing=true" (without the quotation marks) is not intended for use on ISA bus equipment. It will have little or no impact on this problem. It is present for such rare cases as when Windows could conceivably identify an MCA or EISA bus machine incorrectly, and fail to implement IRQ sharing. In such cases, IRQ sharing could be properly enabled with this switch. COPYRIGHT Microsoft Corporation, 1990. Updated 90/07/10 15:43 Q64818 Troubleshooting Commmunications Under Windows 3.00 Microsoft Windows 3 Retail Product (WIN3) 3.00 MS-DOS Summary: The following table depicts the standard settings for the four communications ports that Microsoft Windows 3.00 and DOS (4.01) support. This information is useful for troubleshooting communications problems under Windows 3.00. A brief description for each column appears below the table. (Note: In the table below, Windows 3.00 is abbreviated as WIN3.) WIN3 COMM.DRV WIN3 Default WIN3 Desired Procom Plus SYSTEM.INI Settings SYSTEM.INI Settings Port I/O Range IRQ I/O Range I/O Range ---- ---------------- ------------------ ------------------ [386ENH] [386ENH] COM1 3F8h 4 COM1BASE=3F8h COM1BASE=3F8h COM2 2F8h 3 COM2BASE=2F8h COM2BASE=2F8h COM3 3E8h 4 COM3BASE=2E8h COM3BASE=3E8h COM4 2E8h 3 COM4BASE=2E0h COM4BASE=2E8h The first column lists the ports. The second column describes the settings for the ports that both the Windows COMM.DRV and most popular communications packages use by default. The third column shows what Windows 3.00 sets by default and the fourth column shows what should be set in the [386ENH] section of the SYSTEM.INI file for proper functioning of the ports under enhanced-mode Windows 3.00. Note: You must make the changes shown in column 4 above if you want to share IRQs. These procedures are described in good detail in SYSINI2.TXT under the [386ENH] section. More Information: The headings "I/O Range" specify the base port addresses for the respective ports. IRQ represents the normal interrupts used in IBM-AT compatible computers and should not be changed under normal conditions. Under enhanced-mode Windows 3.00, you can change the base port addresses, IRQ lines, communications protocol, and communications IRQ sharing. For complete information on any of these topics, please consult the file SYSINI2.TXT. Troubleshooting Communications Problems Under Windows 3.00 ---------------------------------------------------------- 1. You can use two communication ports simultaneously that share the same interrupt (for example, COM1 and COM3, or COM2 and COM4) only if the hardware is capable of it. The ability to share communications port IRQs is hardware dependent. Currently, the only hardware that you can be assured that IRQ sharing is supported on is MicroChannel. Although EISA (Extended Industry Standard Architecture) does have IRQ sharing as part of its specifications, implementation on current machines is spotty. If you are unable to successfully share an IRQ with the COMIrqSharing switch set to true, the hardware does not support IRQ sharing and Windows 3.00 is not able to overcome the lack of support for this feature using software. 2. COM3 and COM4 may not be reliable under Windows 3.00 (standard and real mode) unless both COM1 and COM2 are first activated. If you use only COM3 and/or COM4, you may experience problems (with printing, communications, your mouse). If you use COM1 and COM3 without using COM2, you also may have problems. The easiest way to remember this is to not use a higher serial port (2, 3, or 4) unless all lower number ports (1, 2, and 3) are first activated (or in use). 3. Standard- and real-mode Windows 3.00 use the COMM.DRV directly whereas enhanced-mode Windows 3.00 virtualizes the ports using a device called the virtual communications driver (VCD). For this reason, serial communication can theoretically be considered more reliable under standard and real mode because there can be no miscommunication between the VCD and the COMM.DRV. In cases where you are using multiple communications ports under Windows 3.00 enhanced mode, verify that the base port addresses are set as described in the table located earlier in this article. Note: IRQ sharing is possible under enhanced-mode Windows 3.00 only if you make the necessary changes to the [386ENH] section of the SYSTEM.INI file as outlined above. COPYRIGHT Microsoft Corporation, 1990. Updated 90/11/21 05:24 Q65796 Debugging Communications Problems in Terminal (TERMINAL.EXE) Microsoft Windows 3 Retail Product (WIN3) 3.00 MS-DOS Summary: Most problems associated with the Terminal program packaged with Microsoft Windows version 3.00 occur when your machine does not recognize that you have the specified COM port available. This generates the message "The COMx port is currently assigned to a DOS application. Do you want to reassign the port to Windows?" More Information: To determine if the machine is recognizing the existence of the COM port, do the following: 1. Use the DOS DEBUG command to look at the BIOS table. 2. At the DOS prompt (outside of Windows), type "DEBUG" (without the quotation marks). This will return a hyphen prompt (-). 3. At the hyphen prompt, type "d40:0" (without the quotation marks) and it will return a listing of the BIOS data. You will be back at a hyphen prompt where you can type Q to quit DEBUG. 4. Look at this table of data on the screen. The first row is the important one. It will show something as follows: 0040:0000 F8 03 F8 02 E8 03 00 00-BC 03 78 03 00 00 00 00 Everything to the left of the center hyphen is COM ports; everything to the right is LPT ports. The example above shows that the computer has COM1 at address 03F8 (it is listed in reverse byte order), COM2 at 02F8, and COM3 at 03E8. COM4 is not found, thus displaying 0000 just to the left of the hyphen. If the machine does not recognize the COM port desired to be used by Terminal (identified by the 0000 entries), continue as follows. If the machine does recognize the desired COM port, skip to the SYSTEM.INI Modifications section below in this article. 5. Make a script file for DEBUG to execute in the AUTOEXEC.BAT. The script can be made using NOTEPAD.EXE. To illustrate this, the following examples for COM ports are provided. The second line of the examples provided should be edited to match the hardware that is in use in the computer. Although the examples given are the most popular, there will be exceptions to these. COM1 COM2 ---- ---- E40:0 E40:2 F8 03 F8 02 q <-Followed by ENTER q <-Followed by ENTER COM3 COM4 ---- ---- E40:4 E40:6 E8 03 E8 02 q <-Followed by ENTER q <-Followed by ENTER Do the following: 1. Save the three-line file from Notepad giving it a name such as C:\FIXCOM3.DEB or C:\FIXCOM4.DEB, depending on which port it is. 2. Add a line to the end of the AUTOEXEC.BAT such as the following: DEBUG < FIXCOM3.DEB > NUL or DEBUG < FIXCOM4.DEB > NUL 3. Save the AUTOEXEC.BAT and reboot the machine. The > NUL ending is just to keep the script from being echoed back to the screen. You can use DEBUG again to look at d40:0 and see if the change has taken effect. SYSTEM.INI Modifications ------------------------ If the port is recognized by the machine, note the address that is listed when using DEBUG and edit the SYSTEM.INI COMxBase= lines to coincide with the base I/O address used by the hardware. The examples given above for COM1 and COM2 would not require any changes to the SYSTEM.INI file. However, the examples given below for COM3 and COM4 would require the following entries to the [386enh] section of the SYSTEM.INI file: COM1Base=3F8h COM2Base=2F8h COM3Base=3E8h COM4Base=2E8h Additional Considerations ------------------------- If you are using a serial mouse on COM1 and you have an internal modem on COM3, this configuration won't work because the mouse is tying up the interrupt that is desired to be shared by COM3. This behavior also occurs if you are using a serial mouse on COM2 and want to use an internal modem on COM4. You may also use the following steps to test what port the modem is connected to from the DOS command line: 1. At the DOS prompt, type "Mode com1: 1200,e,7,1" (without the quotation marks). 2. Type "COPY CON COM1:" (without the quotation marks) and press ENTER. 3. Type "ATDT 12345678901234567890" (without the quotation marks) and press ENTER. 4. Press CTRL+Z or F6. This sends a command to the selected port and tells the modem to dial the numbers 1-10 twice. The internal speaker on the modem should emit an audible series of tones if it is connected to the named port. If no tones are heard, try the test on the remaining COM ports until you get a response. If the modem does not respond, try connecting the modem to a different port and repeat the test sequence above. COPYRIGHT Microsoft Corporation, 1990. Updated 90/12/05 06:33