23.3 Configuring Parallel Port Hardware
How you configure a parallel port may significantly impact performance and overall capabilities. Even on new systems that include capable parallel port hardware, the parallel port mode is often set to SPP by default. Many people unintentionally cripple the performance of their parallel ports simply because they don't know that better choices than the default are available.
The first step to configure a parallel port for optimum performance is to determine the capabilities of the port hardware. Examining the documentation may help, but documentation is often cursory, misleading, or missing entirely. Without detailed documentation, the easiest way to determine the capabilities of the parallel port hardware is to download and run Parallel.exe, which is available from many Internet file repository sites.
On older motherboards and expansion cards, you may have to set the mode by using a jumper. On newer systems, you can usually set the mode using the BIOS Setup program. The parallel port modes available are determined first by the capabilities of the port hardware itself. Even if the hardware supports all modes, however, the BIOS may not, so you may be limited in the choices you can make. In general, use the following guidelines when selecting a parallel port mode:
- SPP Mode
SPP Mode, which the BIOS may also call Standard Mode, Basic Mode, 4-bit Mode, or Unidirectional Mode, is the least-common-denominator choice, and corresponds to the original Centronics-compatible IBM parallel port. Use this mode only after determining that none of the more capable modes works with your cable or peripheral.
- Bidirectional Mode
Bidirectional Mode, which the BIOS may also call 8-bit Mode or PS/2 Mode, corresponds to the parallel modes introduced with the IBM PS/2 parallel ports. If you choose this mode, you may also be able to choose Type 1 sub-mode (also called Non-DMA sub-mode) or Type 3 sub-mode (also called DMA sub-mode). Choose Type 3 mode for better performance, as long as you don't mind consuming a DMA channel. Use this mode if only it and SPP work properly for your hardware. Also use this mode if you are using Windows NT, which does not support EPP and ECP modes.
- EPP Mode
EPP Mode, which the BIOS may instead call Enhanced Mode, is sometimes the best choice even if later modes are available. EPP includes some control features that are not provided by ECP, sometimes making EPP better suited for non-printer peripherals such as parallel port storage devices and scanners. Also, you may need to choose EPP mode explicitly to support some early EPP-compliant devices that do not function properly with the updated EPP mode supported by IEEE 1284-1994 compliant ports. EPP uses IRQ channels for flow control. It does not use DMA or provide data compression, making it somewhat slower than the ECP mode described below.
- ECP Mode
ECP Mode, which the BIOS may call Extended Mode, is usually the best choice for transferring data to high-speed printers, although it does require a DMA channel. Because it does not support some of the control features provided by EPP mode, ECP mode may not be the best choice to connect non-printer peripherals.
- IEEE 1284 Mode
IEEE 1284 Mode, which the BIOS may simply label Auto, is the most flexible choice. If the BIOS provides this option, choose it to allow the port to adjust automatically to the optimum mode for the device to which it is connected.
Parallel port support differs widely between Windows distributions, as described in the following sections.
23.3.1 Configuring Parallel Ports Under Windows NT
Windows NT through V4.0 does not support EPP or ECP bidirectional communications ports. If a parallel port is configured as EPP or ECP, Windows NT 4.0 and prior will not detect the port.
23.3.2 Configuring Parallel Ports Under Windows 2000/XP
Windows 2000/XP fully supports most parallel hardware, including standard parallel port devices, IEEE 1284-compatible and -compliant devices, and IEEE 1284.3 daisy-chain devices. Windows 2000/XP fully supports most parallel modes, including Centronics mode, IEEE 1284 modes, ECP mode, and EPP mode. Windows 2000/XP partially supports IEEE 1284.3 modes.
To configure a parallel port under Windows 2000/XP, right-click My Computer and choose Properties to display the System Properties dialog. Click the Hardware tab and then the Device Manager button. Locate and expand the Ports (COM and LPT) item within the Device Manager tree, and double-click the printer port you want to configure to display a dialog similar to that shown in Figure 23-1.
Figure 23-1. Under Windows 2000/XP, use Printer Port Properties to configure the port
The Filter Resource Method determines how Windows 2000/XP manages the port, as follows:
- Try not to use an interrupt
Marking this option causes the Windows parallel port driver to release any interrupt assigned to it if Plug-N-Play enumeration determines that the installed parallel port hardware does not require an interrupt to function properly. If the port hardware does require an interrupt for proper functioning, the Windows parallel port driver retains control of that interrupt. This setting works properly and automatically on most systems that use ACPI, and we can only suppose that Microsoft did not choose this as the default setting because the potential exists for conflicts on older hardware.
- Never use an interrupt
This is the default setting for Windows 2000 and Windows XP. Marking this option causes the Windows parallel port driver to release any interrupt assigned to it for use by another device, even if Plug-N-Play enumeration determines that an installed parallel port requires an interrupt to function properly. This setting works properly on most modern systems that use a default configuration. However, if you reconfigure the parallel port in BIOS Setup to function as an EPP port, this setting may cause that parallel port to malfunction or not be recognized.
- Use any interrupt assigned to the port
This option disables the Windows parallel port driver interrupt-filtering function, and allows the parallel port driver to accept and use any interrupt assigned to it. Enable this option only if (a) because of hardware, BIOS, or driver issues, the system does not operate properly unless an interrupt is available to the parallel port hardware, or (b) you have installed a high-speed parallel interface and driver that require an interrupt to function properly. Note that enabling this option may cause an interrupt conflict with legacy audio cards or network adapters. Enable this option as a last resort. Some parallel ports configured as EPP may require this option to be enabled.
- Enable legacy Plug-N-Play detection
Some older parallel port devices are not detected properly during Plug-N-Play enumeration. If Windows fails to detect such a device on your system, mark this checkbox and restart the system. If all devices are detected properly, leave the checkbox unmarked.
23.3.3 Configuring Parallel Ports Under Windows 9X
Windows 9X must be configured manually to use ECP, but supports ECP devices in any of the following five configurations.
- Basic Configuration 0
Standard I/O ranges for LPT ports only.
- Basic Configuration 1
Standard I/O ranges for LPT ports and any IRQ.
- Basic Configuration 2
Standard I/O ranges for LPT ports, IRQ, and any DMA.
- Basic Configuration 3
Any I/O ranges for LPT ports only.
- Basic Configuration 4
Any I/O ranges for LPT ports and IRQ.
To enable ECP support in Windows 9X, first use the system documentation, BIOS Setup, or a diagnostic utility to verify the IRQ and DMA settings assigned to the port you want to configure. In Device Manager, expand the Ports (COM and LPT) item and display the Properties dialog for the port to be configured. On the Resources page, the Resource Settings pane shows the I/O port that was detected automatically and assigned to the device. Clear the Use automatic settings checkbox and use the Setting based on drop-down list to choose the appropriate Basic Configuration, according to whether the ECP port uses standard or custom settings. Change the Input/Output Range, IRQ, and/or DMA settings as needed to correspond to the port hardware configuration, save the changes, and restart Windows.