Input/Output Device Driver Reference/Physical Bidirectional Parallel Port Device Driver

The OS/2 base device driver, PAR1284.SYS, is a bus-independent device driver that supports bidirectional communication across the parallel port to bidirectional capable peripherals. The protocol is described as half-duplex (either the host or peripheral can transmit at a given point in time) in a master-slave relationship (the host determines who can transmit and when).

Overview
The OS/2 bidirectional parallel port device driver supports the Standard Parallel Port (SPP) in compatible, FIFO, and extended mode and supports the Extended Capabilities Port (ECP) in standard, PS/2, FIFO and ECP FIFO modes.

The enhanced parallel port modes, while maintaining compatibility with the "classic" IBM PC parallel port, also provide FIFO buffer capability for improved performance, several modes which enable bidirectional data transfer (nibble mode, byte mode, and ECP mode), and a mode that enables hardware controlled handshaking of multiple data bytes in both directions (ECP FIFO mode). The FIFO mode generates the lowest CPU overhead thus providing improved system response for the user while data is being transfered to/from the peripheral.

ECP mode also includes a method for addressing multiple devices attached to the same ECP capable port. This feature enables other software to be written to control multifunction office devices such as a FAX/scanner/printer/copier machine attached with a single cable to an ECP parallel port on the computer.

The bidirectional parallel port device driver conforms to the Standard Signaling Method for a Bidirectional Parallel Peripheral Interface for Personal Computers (IEEE 1284-1994) for bidirectional communications. Bidirectional communication enables the host system (IBM PC compatible) to communicate with the peripheral and the peripheral to communicate with the host. The bidirectional communication protocols supported are nibble, byte, and ECP modes.

Typically, the host communicates with the peripheral for identification, configuration, and status information. The identification data can be used to auto configure the system with the correct device drivers for the specific device. Configuration data can be returned to the device driver so that the user can make decisions based upon actual configuration rather than possible configuration. Status data can be used to present real time information to the user by way of an interactive graphical application. A remote operator panel is an example of an interactive graphical application for a printer. The application can display a window in the likeness of the operator panel found on the front of a printer. The user is able to make menu selections from a remote system without having to be physically next to the printer.

Installation
The bidirectional parallel port device driver should be installed to the \OS2\BOOT directory of the OS/2 partition on your disk. The BASEDEV=PAR1284.SYS statement must exist in the CONFIG.SYS file. The BASEDEV=PRINT0?.SYS statement (where ? can be 1 or 2 as appropriate) must be removed from the CONFIG.SYS file. The OS/2 operating system must be shutdown and restarted for the bidirectional parallel port device driver to become active.

Functional Support
The bidirectional parallel port device driver is a functional replacement for the OS/2 parallel port device drivers (PRINT01.SYS and PRINT02.SYS). The bidirectional parallel port device driver supports the following strategy commands: For more information on the IOCtl commands supported, refer to the Category 05h Parallel Port Control IOCtl Commands found in the Physical Device Driver Reference.
 * open
 * read
 * write
 * close
 * ioctl
 * input flush
 * output flush
 * initialize device driver
 * initialization complete

Character Monitors
The bidirectional parallel port device driver does not support character monitors and therefore does not support the category 0Ah and 0Bh monitor IOCtl commands. It also does not support the following category 05h Parallel Port Control IOCtl commands related to code page and font switching (previously performed by a character monitor). The PRINTMONBUFSIZE= CONFIG.SYS statement is not used by the bidirectional parallel port device driver.
 * Activate Font
 * Query Active Font
 * Verify Font

Parallel Port Timeout Processing
The bidirectional parallel port device driver supports timeout processing on an inter-character and a request packet basis for both read and write requests. For more information on the timeout IOCtl commands supported, refer to the Category 05h Parallel Port Control IOCtl commands found in the Physical Device Driver Reference.

Sharing the Parallel Port With Other Device Drivers
Refer to for details on how this function works. The bidirectional parallel port device driver provides this capability.