═══ Unknown Initialization File Name ═══ The COMi device driver needs to read an initialization file during system startup to determine the location and configuration of any serial devices it is to control. The name of the file is the name of the device driver file (driver.SYS) with the extention .INI (e.g., driver.INI). When the device driver is loaded this configuration program can get the name of the initialization file by querying the device driver. If you are reading this message, and you are, then the device driver is not loaded, and you will have to supply a path and file name for the initialization file when the file info dialog is presented (next). You MUST name the file as described above, and supply a complete path to where the device driver file is located in order to complete COMi configuration and/or installation. ═══ TESTCFG device driver not loaded ═══ The configuration program cannot determine the architecture of this machine because the TESTCFG.SYS device driver is not loaded. The line DEVICE=d:\OS2\BOOT\TESTCFG.SYS is placed in your CONFIG.SYS file during the OS/2 installation process and should not be removed. It is recommended that you replace the missing line before you shutdown this OS/2 session. For this OS/2 session, you will need to indicate if this machine is an MCA machine. If you replace the missing TESTCFG line in your CONFIG.SYS, this configuration program will not need to bother you with this question again. ═══ Cannot Open CONFIG.SYS ═══ Your system configuration file (CONFIG.SYS) may have been opened by another process. You may either make the changes to your system configuration file maually or you can close any process that may have the file open and try again. Note: After you have re-enabled access to your CONFIG.SYS file you can complete this installation/configuration by selecting the Device | Install Device... menu again and just clicking on the OK push button after the dialog box re-appears. All of the configuration paramaters you have just entered will be remembered. You need only to give this process another chance to access your CONFIG.SYS file. ═══ CONFIG.SYS Modification ═══ Each load defined during COMi configuration will require a DEVICE=comdd.SYS statement in your system configuration file (CONFIG.SYS). Selecting the Yes button will cause the required load statements to be added or removed automatically. Selecting the No button will cause this configuration process to leave your CONFIG.SYS file unchanged and you will have to add or remove the required load statements manually. Note: If you inadvertantly select No you need only enter the installation/configuration process again and select the OK button to be asked to make this chioce again. ═══ Help for OEM Interrupt Processing ═══ The adapter you have selected has an interrupt ID register that allows COMi to share one interrupt request (IRQ) line with all of the UARTs on that adapter. For the adapter you selected, the interrupt ID register can be used in two different ways: 1. To indicate that at least one device on the adapter has an interrupt to be serviced. 2. To indicate which device, or devices, are in the interrupt state. You can set the manner in which the ID register is used by selecting the Interrupt Processing Algorithim to be used for this COMi load. There are three choices: 1. Poll active devices. This method causes each active port to be polled upon entry to the interrupt routine. After all devices that have interrupts pending have been serviced, COMi tests the ID register to see if any new interrupts have occurred on any device on that adapter. If the ID register indicates that new interrupts are pending, then each active port is polled again. This cycle is repeated until the ID register indicates that no device is in the interrupt state. 2. Select Interrupting Device. This method causes the interrut ID register to be read upon entry to the interrupt routine. The value in the ID register is used to determine which device to service. After each interrupting device has been serviced the ID register is read again to determine if there is another device that needs service. If another device needs service, the value in the ID regieter is again used to determine which device to service. This process continues until no device has an interrupt to service. 3. Select upon entry, then poll active devices. This method starts out like algorithim number two, method by servicing the highest priority device as indicated by the ID register upon entry to the interrupt routine, then polls all active devices until no pending interrupts are indicated by the ID register. Currently COMi supports two different types of interrupt ID registers: o The most common type is found on Comtrol Hostess adapters, Sealevel Systems COMM+8 and Turbo COMM+4 adapters, Quatech QS-XXX and ES-XXX adapters, Globetek's four port adpaters, and Connect Tech's DFLEX adapters. The ID register on these adapters use each bit in the ID register to indicate which device has an interrupt pending. The first device (lowest I/O base address) on the adapter will activate bit zero of the ID register when that device has an interrupt to be serviced. The second device (second lowest I/O base address) will cause bit one to activate when that device has an interrupt pending, and so on. Priority is determined only by bit position; the first device will have the highest priority and the last device will have the lowest priority. When the algorithim choice includes "Selecting" an interrupting device (items two and three, above), the highest priority device that has an interrupt pending will be selected and serviced each time the ID register is used to "select" an interrupting device and indicates there is an interrupt pending. o The second type is used by DigiBoard for their PC/x serial adapters. The ID register is assisted by a hardware state machine that polls each of the devices on an adapter. When a device enters the interrupt state and is polled by the state machine, an interrupt is raised to the system interrupt controller. The ID register value indicates which device is in the interrupt state. When that interrupting device has been serviced the state machine will continue its polling cycle. When ANY device has an interrupt pending the ID register will contain a value the indicates the next device in the polling cycle that has an interrupt pending. This method prevents any one device from "hogging" the interrupt by always polling the other devices (in order) on an adapter before comming back the just serviced device. The hardware state machine is transparent to the device driver and is fast enough to insure that no interrupt will be lost. When a "Polling" algorithim is selected (items one and three, above) the ID register will be used only to determine that there are NO interrupts pending before the interrupt routine returns to the operating system, for that cycle that uses "Polling" of the ID register. Note: For algorithims that include "Polling", a device is considered active only if it is currenty "open". Related Information: o Serial Adapters Supported o Shared Interrupt Adapter Types ═══ Help for Non-Exclusive Access ═══ Accessing more than one device connected to the same Interrupt Request (IRQ) circuit can cause unpredictable results. If you need simutaneous run-time access to serial devices connected to the same IRQ is recommended that you aquire a serial adapter that supports shared interrupts on ISA machines. Related Information: See Installing ISA Serial Devices for information on installing serial adapters that specifically support shared interrupts on ISA machines. ═══ Help for Shared Access ═══ Connecting two or more devices to the same hardware Interrupt Request circuit (IRQ) can cause unpredictable results. If your hardware supports the electrical characteristics required to allow more than one device to connect to an IRQ it will be safe to use such devices one-at-a-time. If your hardware does not support these electrical characteristics, you could cause your machine to lock-up anytime you access any device connected in this manner. Required Electrical Characteristics: In order to support interrupt connection sharing, a device must not place a load on the IRQ unless interrupts are explicitly enabled for that device. Related Information: See Installing ISA Serial Devices for information on installing serial adapters that specifically support shared interrupts on ISA ═══ Help for Device Hardware Setup Dialog ═══ Use I/O Base Adderess to define a base adderess for the device. Use Entry Base to select a numerical base to display and read the I/O base address. o Select Hexadecimal to to display/read the I/O base as a base 16 number. o Select Decimal to to display/read the I/O base as a base 10 number. Use Interrupt level to select the hardware interrupt level to which the device is connected. Select FIFO Setup to open the hardware FIFO setup dialog box. Note: If you have selected a specific adpater in the Adpter Set-up dialog box, you will not be able to select a hardware interrupt level here. ═══ Help for Default Baud Rate Dialog ═══ Select a standard baud rate from the drop down list box. You may enter an unlisted baud rate in the entry field. If the value you enter is not within 1% of a baud rate the device is capable of, the nearest valid baud rate will be used at system start-up. The current default baud rate will be displayed in the entry box upon entry to the dialog. If you have the device driver extension Explicit Baud Divisor selected for this port, the value you enter will be used as the baud rate divisor for this device and be written directly to the baud rate select registers on the UART. Note: In order to use the Explicit Baud Divisor feature, the device you are controlling must be capable of non-standard UART clock rate selection in hardware. See your serial adapter documentation for further information. ═══ Help for Default Protocol Dialog ═══ Select a standard baud rate from the drop down list box. You may enter an unlisted baud rate in the entry field. If the value you enter is not within 1% of a baud rate the device is capable of, the nearest valid baud rate will be used at system start-up. The current default baud rate will be displayed in the entry box upon entry to the dialog. If you have the device driver extension Explicit Baud Divisor selected for this port, the value you enter will be used as the baud rate divisor for this device and be written directly to the baud rate select registers on the UART. Note: In order to use the Explicit Baud Divisor feature, the device you are controlling must be capable of non-standard UART clock rate selection in hardware. See your serial adapter documentation for further information. Select the default line protocol for this device by checking the required buttons. Selecting parity to be Zero will cause the parity bit to be transmitted as a zero, and cause the receiver to expect a zero in the parity bit for any character it receives. Selecting parity to be One will cause the parity bit to be transmitted as a one, and cause the receiver to expect a one in the parity bit for any character it receives. ═══ Help for Device Driver Buffer Setup Dialog ═══ Use the sliders or scroll buttons to select the various COMi device driver buffer sizes. Deselecting Enable COMscope Access will disable COMscope access to this device for the next OS/2 session. Note: COMscope access will not be available unless you are configuring or installing the COMi device driver from within COMscope or from a COMscope distribution diskette. ═══ Help for Device Configuration Dialog ═══ Use Device Configuration dialog box to set the following device parameters for the device being configured: Use the Device Name field: To select the DOS name for the device being configured. This list box will only display device names that are not already selected for use by the COMi device driver and are available for installation. Note: If you select a device name used by the COM.SYS device driver, the COMi device driver will take presedence. Select Hardware...: To enter a device's I/O base address, select an interrupt level, and set the start-up defaults for FIFO control (for those devices that support FIFOs). Note: If you have selected a hardware interrupt level for this load from the Adpter Set-up dialog box, the hardware interrupt level selection field will be disabled. Select Buffers...: To set the size of transmit, receive, and COMscope buffers the device driver allocates at initialization and enable or disable COMscope run-time access. See COMi Buffer Limits for buffer size limits. Select Handshaking...: To set startup defaults for the various handshaking protocols supported by the device driver. Select Timeouts...: To set default time-out counts and processing for a device. Select Protocols...: To set the start-up defaults for line characteristics and baud rate. Select Extensions...: To set select various device driver extensions. Note: Next to the Device Name field, in red, is a suggested (guessed) I/O base address and interrupt level. If you select the OK push button the values shown there will be used for the device being configured. ═══ 1. Device Driver Extensions ═══ COMi has evolved over the years while attempting to solve specific problems for our customers. COMi "extends" the functionality of the serial device driver supplied with OS/2* in the following ways: Allows extended modem controls Allows an application to have runtime control of the OUT1 and LOOP signals of the UART. Lets you disable modem interrupts Modem input signals can be processed with or without interrupts. The purpose of this extention is to make it possible to use this device driver on some adapter boards that do not properly terminate all of the modem signal input pins of a UART. Modem signals are still monitored when this item is selected, just not as efficiently. Lets an application supply an explicit baud divisor This extension takes advantage of those adapter boards that allow a user to select non-standard clocks for the UART baud rate generator. Allows an application to disable startup UART tests This feature can disable extensive testing of the UART and its connections at initialization, including hardware interrupt connection, and interrupt ID register functionality. Allows enabling of application specific extensions An application can use COMi extensions designed for that application. These extensions are specific to some specialized applications. If you are using an application supported by one or more of these extensions, that application's documentation will explain its usage of these extensions. Allows activation of the OUT1 signal on startup This feature forces the OUT1 output signal to the active state during initialization at system startup. Note: Unless you turn off OUT1 via a DosDevIOCtl call when the COMi extention Enable Modem Extensions is enabled, OUT1 will remain active throughout the life of that OS/2 session. Supports special processing for the Texas Instruments 16C550A/B UART: This feature allows you to specify that the device you are configuring COMi for is a Texas Instruments 16C550A or 16C550B UART. These UARTs require some special processing when the receive FIFO is enabled. If the item is not checked when the device is a TI 16C550A or 16C550B your system WILL lock-up if this device is used with receive FIFOs enabled. Allows multiple devices to be connected to a single interrupt: This feature will allow more than one device to share an Interrupt Request (IRQ) connection. Note: When this item has been selected you can also select to allow more than one device connected to an interrupt level to be open at the same time by disabling exclusive access tests at run-time. Disabling exclusive access tests and opening two ports connected to the same interrupt level is not recommended, as it is possible for your system to stop responding to an interrupt level shared in this manner under certain conditions that may, or may not, be under your control. Note: When you are using an adapter that supports shared interrupts you MUST use the Adpter Set-up button in the Device Install... dialog box to configure this COMi load for that specific interrupt adapter. ═══ Help for Device Driver Extensions Dialog ═══ Use the Extensions dialog box to select the following extensions for the device being configured: Select Accept Extended Modem Controls: To allow an application to have runtime control of the OUT1 and LOOP signals of the UART. Select Disable Modem Interrupts: To process modem input signals without interrupts. The purpose of this extention is to make it possible to use this device driver on some adapter boards that do not properly terminate all of the modem signal input pins of a UART. Modem signals are still monitored when this item is selected, just not as efficiently. Select Use Explicit Baud Divisor: To take advantage of those adapter boards that allow a user to select non-standard clocks for the UART baud rate generator. Select Disable Startup UART tests: To disable extensive testing of the UART and its connections at initialization, including hardware interrupt connection, and interrupt ID register functionality. Select Enable Device Driver Extensions: To enable application specific COMi extensions. These extensions are specific to some specialized applications. If you are using an application supported by one or more of these extensions, that application's documentation will explain its usage of these extensions. Select Activate OUT1 on Startup: To force the OUT1 output pin active at initialization. Note: Unless you turn off OUT1 via a DosDevIOCtl call when the COMi extention Enable Modem Extensions is enabled, OUT1 will remain active throughout the life of that OS/2 session. Select Texas Instruments 16C550A/B: If the device you are configuring is a Texas Instruments 16C550A or 16C550B UART. These UARTs require some special processing when the FIFOs are enabled. Select Shared Interrupt Connection: To allow more than one device to share an Interrupt Request (IRQ) connection. Note: When this item has been selected you can also select to allow more than one device connected to an interrupt level to be open at the same time by deselecting the Exclusive Access check box. Deselecting Exclusive Access and opening two ports connected to the same interrupt level is not recommended, as it is possible for your system to stop responding to an interrupt level shared in this manner under certain conditions that may, or may not, be under your control. Warning: Unless a serial adapter has specialized hardware it will not be possible to share interrupts in any way. For this feature to be useful your hardware MUST not load its interrupt request (IRQ) line unless, and until, it has an interupput to be processed. If the device loads the IRQ when not in the interrupt state then any other device connected to that IRQ will not be able to signal an interrupt to the system interrupt controller. Note: When you are using an adapter that specifically supports shared interrupts you MUST use the Adpter Set-up button in the Device Install... dialog box to configure this COMi load for that specific interrupt adapter. ═══ Help for Adapter Configuration Dialog ═══ The Adapter Type group is used to select the type of serial adapter for which you are configuring the device driver. Note: Select Not Interrupt Sharing if your are configuring the device driver for any serial adapter that does not support interrupt sharing in hardware. Selecting this item disables hardware supported interrupt sharing for this device driver load, and will allow you to select a different interrupt for each device you define for this load. Use the Interrupt Status/ID Address field to define an interrpt ID register address for the device driver load you are configuring. Use Entry Base to select a numerical base to display and read the interrupt ID register address. o Select Hexadecimal to to display/read the interrupt ID register address as a base 16 number. o Select Decimal to to display/read the interrupt ID register address as a base 10 number. Use Interrupt Level to select the hardware Interrupt level to which the adapter is connected. Select the Interrupt Processing Algorithim button to select the manner in which the interrupt Status/ID register will be used to process adapter interrupts. Related Information: o Serial Adapters Supported o Shared Interrupt Adapter Types ═══ 2. Shared Interrupt Adapter Types ═══ In order for COMi to support shared interrupts on an ISA machine, an adapter of one of the types described below must be used. Type One: 1. All devices on an adapter can be connected to a single IRQ. 2. The adapter has an interrupt ID register at adapter base I/O address +7. 3. Each bit in the interrupt ID register represents one, and only one, serial device. 4. When there is no device with a pending interrupt, the ID register will be read as a zero. Type Two: 1. A Texas Instruments 16C550B UARTs are installed on the adapter. 2. All devices on an adapter can be connected to a single IRQ. 3. The adapter has an interrupt ID register at adapter base I/O address +7. 4. Each bit in the interrupt ID register represents one, and only one, serial device. 5. When there is no device with a pending interrupt, the ID register will be read as a zero. Type Three: 1. All devices on an adapter can be connected to a single IRQ. 2. The adapter has an interrupt ID register at a fixed or user defined address. 3. Each bit in the interrupt ID register represents one, and only one, serial device. 4. When there is no device with a pending interrupt, the ID register will be read as a zero. Type Four: 1. The adapter has an interrupt ID register at a user definable address. 2. The address of the interrupt ID register is as defined by the user for odd interrupts (3, 5, 7, 9, 11, 13, 15) and is at the user defined address +1 for even interrupts (2, 4, 6, 8, 10, 12, 14). 3. The value read from the interrupt ID register indicates the highest priority device that has an interrupt pending. 4. When there is no device with a pending interrupt, the ID register will be read as all ones (0xFF). This adapter type should be used to support DigiBoard's PC/4 and PC/8 serial adapters, only. Type Five: 1. The adapter has an interrupt ID register at a fixed address that is based on which of four available PALs is installed on the adapter. 2. The value read from the interrupt ID register indicates the highest priority device that has an interrupt pending. 3. When there is no device with a pending interrupt, the ID register will be read as all ones (0xFF). This adapter type should be used to support DigiBoard's PC/16 serial adapters, only. Related Information: o Serial Adapters Supported ═══ 3. Serial Adapters Supported ═══ COMi has been tested with the following serial adapters. ┌─────┬──────────────────┬────────────┐ │Type │Manufacturer │Model │ ├─────┼──────────────────┼────────────┤ │One │Sealevel Systems │COMM+4 │ ├─────┼──────────────────┼────────────┤ │ │ │TURBOCOMM+8 │ ├─────┼──────────────────┼────────────┤ │ │Globetek │Four Port │ ├─────┼──────────────────┼────────────┤ │ │Quatech │ES-xxx │ ├─────┼──────────────────┼────────────┤ │ │ │QS-xxx │ ├─────┼──────────────────┼────────────┤ │Two │Comtrol │Hostess RJ45│ ├─────┼──────────────────┼────────────┤ │ │ │Hostess RJ11│ ├─────┼──────────────────┼────────────┤ │Three│Connect Tech │DFLEX │ ├─────┼──────────────────┼────────────┤ │Four │DigiBoard │PC/4 │ ├─────┼──────────────────┼────────────┤ │ │ │PC/8 │ ├─────┼──────────────────┼────────────┤ │Five │DigiBoard │PC/16 │ └─────┴──────────────────┴────────────┘ COMi will support shared interrupt with all of the adapters listed above and any other adapter that uses one of the interrupt sharing schemes described under COMi Adapter Types. ═══ Help for Device Driver Configuration ═══ The COMi Load group is used to select the following parameters: This button will open the adapter set-up dialog box. Use this button to configure the COMi device driver for your serial adapter. This button appears only for ISA serial adapters and is not required for MCA adapter configuration. Device Driver Load Number This field is used to select the device driver load number to configure. Add Load This button will cause another device driver load to be opened for device installation. Remove Load This button will cause the currently selected device driver load to be deleted. Note: You will not be allowed to delete load number one. If you want to remove all COMi loads and remove all DEVICE=comdd.SYS statements from your CONFIG.SYS file you will have to delete each device from the Device Definitions list box for load number one. The Initialization Report group allows the user to select for additional information to be displayed at initialization: Verbose Sign-on This parameter, when selected, causes the device driver to display extended information during initialization. Wait for Keystroke or Timeout... This parameter, when selected, causes the device driver to wait until either the user presses the ENTER key or the timeout defined in the next parameter occurs. This is to allow a user time to read the extended information displayed when Verbose Sign-on is selected. The list box in the Device Definitions group shows a list of any installed devices for the currently selected device driver load. Each device driver load can have up to eight serial devices under its control. Each installed device will have the following information: o Device's logical name (COM1 through COM99) o Device's hardware base I/O address o Device's hardware interrupt level o Indicators for any device driver extensions selected for that device You can edit a defined device's configuration either by double clicking the mouse button one on that list item or selecting that device in the list and selecting the Edit Device button. If there are less than eight devices defined you can install a new device by selecting the Add Device button. If you are installing a sixteen port adapter (i.e., DigiBoards PC/16) the Add Device button will remain enabled until you have installed all sixteen serial devices. You can delete any defined device by selecting that device from the list and selecting the Remove Device button. Click on the OK button to close the dialog box and save the changes just made. Click on the CANCEL button to close the dialog box without saving any changes. ═══ 4. COMi Buffer Size Limits ═══ COMi buffer sizes can be set to the following: ┌────────┬───────┬───────┬───────┐ │Buffer │minimun│default│maximum│ ├────────┼───────┼───────┼───────┤ │Receive │1024 │4096 │64k │ ├────────┼───────┼───────┼───────┤ │COMscope│1024* │4096 │32k │ ├────────┼───────┼───────┼───────┤ │Transmit│128 │256 │8k** │ └────────┴───────┴───────┴───────┘ * If COMscope access is disabled no COMscope buffer will be allocated. ** A total of about 63k is available for all transmit buffers for each COMi load. ═══ 5. Installing ISA Serial Devices ═══ If you are installing a serial support in an ISA machine and you intend to connect multiple devices to a single hardware interrupt level you need to be aware of the following: 1. Your adapter must have special features to support interrupt sharing. 2. The adapter's special features that allow interrupt sharing must be enabled and configured correctly. 3. You must know the hardware address of your adapter's interrupt status or ID register. 4. You must open the adapter set-up dialog by clicking on the Adpter Set-up button from the COMi Configuration dialog to specify the adapter type, hardware interrupt level, and address of the interrupt status/ID register in order to define more than one device to a hardware interrupt level. Note: Sharing interrupts on an MCA machine requires no special configuation. Please note, though, that it is not recommended that you connect more than eight devices to any one hardware interrupt level. Related Information: o Serial Adapters Supported o Shared Interrupt Adapter Types ═══ 6. COMi Print Spooler Support ═══ To install and configure COMi Print Spooler support you must have selected to transfer the spooler support files while installing COMi by selecting the "Print Spooler Utilities" check box in the "Install Options" dialog, and you must have re-booted your machine since that install session. Once you have completed installing COMspool and configuring COMi you will need to do the following: 1. Click mouse button two (usually the right button) on a local printer object. If you have not created a local printer object yet then you will need to drag a non-network printer object from the "Templates" folder onto your desktop. Note: If you will be creating a printer object as part of this installation then skip to item three, as the printer object's settings notebook will have been presented immediately after you dragged the object from the "Templates" folder. You will also have to select a printer driver and possibly need to set other parameters in the printer's settings notebook. 2. Select the "Settings" menu item. 3. Click on the "Output" tab. 4. Click mouse button two on any port icon in the container window. 5. Select the "Install" menu item. 6. In the "Directory" entry field enter the following (without the quotes): "\OS2\DLL", then press the key, or select the "Refresh" button. 7. The OS/2** Spooler software (PMSPOOL) will read each spooler support library in that directory, including the COMi spooler support library and display an icon in the container area for each device the spooler support libraries support. 8. Select one, or more, of the COMi Spooler ports, then select the "Install" button. 9. When the PMSPOOL is finished installing the ports you have selected it will display a message box indicating that the ports you selected have been installed. Click on the "OK" button to continue. 10. When you are through installing Spooler Ports, click on the "Cancel" button. 11. Set the port parameters to match the requirements of the printer to be connected by clicking mouse button two on an icon in the "Ouptut" page container area and selecting the "Settings" menu item. Help for setting port parameters will be available once you have entered the setup dialog. IMPORTANT After installing COMspool, as described above, you will have to shutdown your system and re-boot before PMSPOOL will be able to initialize COMspool supported ports. Note: Configuration of spooler ports for printer initialization will always have to be done from a printer object's settings notebook. ═══ Help for Timeout Processing ═══ Use the Read Timeout Processing group to select the type of read time-out processing you need, and to set the read time-out count. Select : Normal read time-out processing: Causes the device driver to wait up to the designated read time-out count after each character received before returning to the calling application. Upon reception of a read request packet the device driver will first try to fill the request from the receive buffer. If all of the bytes requested are available in the buffer, the device driver will return immediately. If all of the requested bytes are not in the buffer, the device driver will wait for incomming bytes until either the request is filled (all requested bytes have been placed into the receive buffer by the hardware) or until more than the time represented by the read time-out count passes between bytes received by the hardware. Wait for Something read time-out processing: Causes the device driver to act like No Wait read time-out processing only if there are characters available in the buffer when the read request packet arrives. In this case the device driver will return to the calling process, immedialely, with any characters that are available, up to the number of characters requested. If there is nothing in the receive queue when the request packet arrives the device driver enters Normal read time-out processing and returns only after either the request is filled (all requested bytes have been placed into the receive buffer by the hardware) or until more than the time represented by the read time-out count passes between bytes received by the hardware. No Wait read time-out processing: Causes the device driver to transfer up to the requested number of bytes from the receive buffer and return immediately. The read time-out count is ignored. Upon reception of a read request packet, if no bytes are available the device driver still returns immediately. Use the Write Timeout Processing group to select the type of write time-out processing you need, and to set the write time-out count. Normal write time-out processing: Causes the device driver to wait up to the designated write time-out count for any output handshaking request that caused the device driver to stop transmitting . Upon reception of a write request packet the device driver will try to begin transmitting. If some output handshaking signal (CTS, DSR, DCD, or reception of an Xoff character) indicates that the device driver should not be transmitting the device driver will wait up to the write time-out count for all signals to indicate it is OK to start transmitting again and all bytes remaining to be transmitted are transmitted, before returning to the calling application. Infinite write time-out processing: Causes the device driver to wait forever for a handshaking signal to indicate that it is OK to transmit. "Forever" can be limited by sending a "flush output buffer" command. Upon reception of a write request packet the device driver will try to begin transmitting. If some output handshaking signal (CTS, DSR, DCD, or reception of an Xoff character) indicates that the device driver should not transmit, the device driver will wait until it has been signaled to start transmitting again and all bytes remaining to be transmitted are transmitted, before returning to the calling application. Timeout Counts Both time-out counts represent the number of ten millisecond intervals to wait, zero based. For example: a count of 99 will cause the device driver to wait up to one second before returning. ═══ Help for Handshaking ═══ Selecting Transmit Xon/Xoff handshaking will cause the device driver to stop transmitting characters when an Xoff character is received and to start transmitting again when an Xon character is received. Selecting Receive Xon/Xoff handshaking will cause the device driver to transmit an Xoff character when the receive buffer is close to full (off threshold) and to transmit an Xon character when the receive buffer is less than half full (on threshold). Selecting Full Duplex will allow the device driver to continue transmitting after transmitting an Xoff character. Otherwise the device driver will stop transmitting after transmitting an Xoff character and will begin transmitting againg after it sends an Xon character. When either of the ASCII Handshaking protocols are selected you will be able to enter values for the Xon Character and the Xoff Character. These characters have standard values and should only be changed if you have special requirements. These values are displayed, and can only be entered, in Hexadecimal (base 16) format. Selecting any of the Output Handshaking signals will cause the device driver to stop transmitting when that signal is detected to be in the inactive, or off, state. Selecting DSR Input Sensitivity will cause the device driver to ignore any bytes received while the DSR signal is detected to be inactive. Selecting RTS or DTR Input Handshaking will cause the device driver to make those respective signals inactive when the receive buffer is close to full (off threshold) and to make them active when the receive buffer is less than half full (on threshold). Selecting RTS Toggling on Transmit will cause the device driver to make RTS active whenever it begins transmitting. When transmitting has been stopped for approximately 30 milliseconds the device driver will make RTS inactive. Selecting Enable or Disable RTS or DTR will cause those respective signals to be enabled or disabled. Make the required selection by checking the required buttons. ═══ Help for Input Stream Filtering ═══ Select Enable Error Replacement Character to cause the device driver to replace any character received with a parity or overrun error with the currently defined Error Replacement Character. When Enable Error Replacement Character is enabled you can enter an Error Replacement Character value. This value can only be entered in Hexadecimal (base 16) format. Select Enable Break Replacement Character to cause the device driver to replace any character received during a transition to the break condition with the currently defined Break Replacement Character. When Enable Break Replacement Character is enabled you can enter a Break Replacement Character value. This value can only be entered in Hexadecimal (base 16) format. Select Enable NULL Striping to cause device driver to NOT place received NULL characters (zeros) into the receive buffer. ═══ Help for Line Protocol ═══ Select the line protocol for this device by checking the required buttons. Selecting parity to be Zero will cause the parity bit to be transmitted as a zero, and cause the receiver to expect a zero in the parity bit for any character it receives. Selecting parity to be One will cause the parity bit to be transmitted as a one, and cause the receiver to expect a one in the parity bit for any character it receives. ═══ Help for Hardware Buffer Control ═══ Select the required FIFO Control parameters by checking the required button. When Automatic Protocol Override is selected the device driver will automatically disable the receive FIFO whenever Receive Xon/Xoff handshaking, RTS or DTR Input Handshaking, or DTR Input Sensitivity are enabled, and disable the transmit FIFO whenever any Output Handshaking is enabled. Select the required FIFO depth by checking the required buttons. Note: The COMi device driver has sufficient handshanking threshold padding to accomodate bytes received in the FIFO after a handshake signal occurs. Unless your application MUST stop receiving and/or transmitting on exactly the byte received and/or transmitted when a handshake signal is detected it is recommended that Enable FIFO be selected. ═══ Help for Baud Rate Selection ═══ Select a standard baud rate from the drop down list box. You may enter a non-standard baud rate in the entry field. If the value you enter is not within 1% of a baud rate the device is capable of, it will be rejected. If you have Explicit Baud Divisor selected for this port, the value you enter will be used as the baud rate divisor for this device. In order to use the Explicit Baud Divisor feature, the device you are controlling must be capable of non-standard UART clock rate selection in hardware. See your serial adapter documentation for further information. ═══ Help for Spooler Port Setup ═══ The DOS device name, hardware address, and interrupt level of the port you are configuring is displayed in red near the top of the dialog box. Use the Port Setup group to set the various run-time parameters for port you are configuring. o Select the Line Characteristics... button to set the data word size, the number of stop bits, and the parity the connected printer requires. o Select the Baud Rate... button to set the baud rate to match that of the printer's. o Select the Handshaking... button to set the handshaking protocol the connected printer requires. o Select the UART Buffers (FIFOs)... to set the devices hardware buffer processing. o Select the Timeouts... button to set the timeout processing and timeout counts for the Port you are configuring. o Select the Stream Filters... button to enable or disable error and break character replacement and NULL stripping for this port. Note: All of the port parameters set from buttons in the Port Setup group will used to initialize communications to the printer each time the print spooler software begins to send a print job to this spooled port. Use the Device Driver Setup group to set up device driver parameters that require a system reset to take effect. o Select the Device Driver Buffers... button to set the sizes of the device driver's transmit, receive, and COMscope buffers and to enable or disable COMscope access. o Select the Device Driver Extensions... button to enable or disable various device driver extensions. ═══ ═══ Each device to be controlled by the COMi device driver owns a set of eight contiguous I/O space addresses. The I/O base address is the first address in that device's address space. See your adapter board documentation to determine what I/O base address to use. ═══ ═══ Each device to be controlled by the COMi device driver must be connected to one, and only one, hardware interrupt level. See your adapter board documentation to determine what interrupt level to select. Note: An exception to this rule is when you use a serial adapter that supports shared interrupts in an ISA machine. If you are using such an adapter you must take care not to use more than one interrupt level for each COMi load. You may use any combination of interrupt levels MCA machines. ═══ ═══ A first level DosOpen is the first time a device is opened by any application. Any other DosOpen calls, without first calling DosClose, are considered second level opens. When all applications have closed a device then the next DosOpen for that device will, again, be considered a first level DosOpen. The device driver returns some device operating parameters back to device driver defaults whenever a first level DosOpen occurs. Device driver operating parameters that are set back to device driver defaults are: o Handshaking Parameters o Time-out Values o Time-out Processing o Stream Filters Note: COMi start-up defaults are configurable by the user. The parameters in the above list are returned to defaults defined explicitly by the user or implicitly by OS/tools. If the user has not defined a given parameter default during configuration that parameter will be returned to the default defined by OS/tools. ═══ ═══ Industry Standard Architecture Machines that are compatible with the IBM AT personal computer are of this type. IBM and AT are registerd trademarks of International Business Machines. ═══ ═══ Micro Channel Architecture. Machines that are compatible with the IBM PS/2 are of this type. IBM, Micro Channel, and PS/2 are registerd tradmarks of International Business Machines. ═══ ═══ The active device is the device selected from the "Device | Select Device..." menu dialog box. The name of the currently active device is displayed in the title bar of the COMscope main window, in the title bar of all COMscope monitor and control dialog boxes, and is shown as the title of any visible icon when a COMscope instance has been minimized. ═══ ═══ A COM device's main purpose in life is to send/receive data to/from some external device. All data written to a device, and/or read from a device, is considered to be that device's I/O Data Stream. Once a valid device has been selected COMscope can be made to capture, and save, any data that is part of that I/O Data Stream. The bytes of an I/O Data Stream are stored in the order in which they are transmitted and/or received. ═══ ═══ Ordinarily each byte received or transmitted is displayed in order of transfer to/from the hardware, with each new byte is placed for viewing into the next character position on the screen. When display compression is selected the character position is not incremented when a received byte follows a transmitted byte. ═══ ═══ Each DEVICE=comdd.SYS statement in your CONFIG.SYS file is considered a load of the COMi Asynchronous Device Driver. ═══ ═══ You can check (select) a button either by clicking mouse button one on the item or by using the TAB and/or cursor keys to move so the required item has the focus then pressing the space bar. ═══ ═══ A symbol that shows that a menu choice is currently active. ═══ ═══ In the lexical display format only characters that are not excluded by the user with display filters are displayed. ═══ ═══ When the lexical display format is in the "line" oriented mode the transmit and receive streams can be synchronized. This means that a stream direction being synchronized "to" is displayed starting at the first character of that "line" and the stream direction that is to be in synchronization is displayed starting at the first character of the first "line" the begins immediately after the first character of the sync to stream direction. ═══ ═══ Stream direction is either into the device (receive), or out of the device (transmit). ═══ ═══ Different adapter manufacturers use different schemes to allow shared interrupts in ISA machines. Currently the COMi device driver supports the following schemes: o Interrupt ID register is at the adapter base I/O address +7 (type one) Sealevel Systems COMM+8 and Turbo COMM+4, Connect Tech DFLEX, and GlobeTeks four port adapter use this interrupt sharing scheme. o Interrupt ID register is at the adapter base I/O address +7 and the Texas Instruments 16C550B UART is used (type one). Comtrol Hostess serial adapters use this interrupt sharing scheme. o Interrupt ID register is aliased at each device's base I/O address +7 (type three). Quatechs' ES-XXX and QS-XXX adapters use this scheme. o Interrupt ID register address is at a user defined location for odd interrupts ans is at the user defined address +1 for even interrupt levels (type four). DigiBoard's PC/4 and PC/8 use this interrupt sharing scheme. o Interrupt ID register address is at a user defined location (type five). DigiBoard's PC/16 uses this interrupting scheme. ═══ ═══ IBM, OS/2, PS/2, and Micro Channel are trademarks of International Business Machines. ═══ ═══ Windows is a trademark of Microsoft, Incorporated.