ieee1284_read_data, ieee1284_write_data, ieee1284_data_dir, ieee1284_wait_data - control the data lines
Contents
Copyright
Copyright © 2001-2003 Tim Waugh
09/18/2007 IEEE1284_DATA(3)
Description
These functions manipulate the data lines of the parallel port associated with port (which must have been
claimed using ieee1284_claim(3)). The lines are represented by an 8-bit number (one line per bit) and a
direction. The data lines are driven as a group; they may be all host-driven (forward direction) or not
(reverse direction). When the peripheral is driving them the host must not.
For ieee1284_data_dir the reverse parameter should be zero to turn the data line drivers on and non-zero
to turn them off. Some port types may be unable to switch off the data line drivers.
Setting the data lines may have side effects on some port types (for example, some Amiga ports pulse
nStrobe).
ieee1284_wait_data waits, up until the timeout, for the data bits specified in mask to have the
corresponding values in val.
Name
ieee1284_read_data, ieee1284_write_data, ieee1284_data_dir, ieee1284_wait_data - control the data lines
Return Value
ieee1284_read_data returns the 8-bit number representing the data lines unless it is not possible to
return such a value with this port type, in which case it returns an error code. Possible error codes:
E1284_NOTAVAIL
Bi-directional data lines are not available on this system.
E1284_INVALIDPORT
The port parameter is invalid (perhaps it has not been claimed, for instance).
E1284_SYS
There was an error at the operating system level, and errno has been set accordingly.
E1284_TIMEDOUT
The timeout has elapsed.
Whereas ieee1284_read_data may return E1284_NOTAVAIL on its first invocation on the port, if it does not
do so then it cannot until ieee1284_close is called for that port.
Synopsis
#include<ieee1284.h>intieee1284_read_data(structparport*port);voidieee1284_write_data(structparport*port,unsignedchardt);intieee1284_data_dir(structparport*port,intreverse);intieee1284_wait_data(structparport*port,unsignedcharmask,unsignedcharval,structtimeval*timeout);
