plot_data_rop(3) CLIX plot_data_rop(3)
NAME
plot_data_rop: rplt_data, rplt_data_nw - Writes data to the ROP parallel
port
LIBRARY
Intergraph Device Library (libix.a)
SYNOPSIS
#include <sys/types.h>
#include <sys/immu.h>
#include <sys/pop.h>
#include <sys/xio/xio.h>
#include <sys/xio/xerr.h>
int rplt_data(
int interface ,
char *dbuf ,
int dcnt ,
int count ,
int ctrl ,
int timeout ,
int nctrl, ,
int pulse ,
int speed) );
int rplt_data_nw(
int interface ,
char *dbuf ,
int dcnt ,
int count ,
int ctrl ,
int timeout ,
int nctrl, ,
int pulse ,
int speed ,
struct xiosb *xiosb ,
int efn );
PARAMETERS
interface Represents an interface type. This value defines the signal
mapping for the target device, which must be one of the types
defined in <sys/pop.h>: CENTRONICS, VERSATEC, or
INTERGRAPH_DIFF.
2/94 - Intergraph Corporation 1
plot_data_rop(3) CLIX plot_data_rop(3)
dbuf Points to the data buffer.
dcnt Specifies the number of bytes transferred to the parallel
port.
count Specifies the number of bytes to transfer before a control
word is sent.
ctrl Specifies the 16-bit control word sent to the target device
after count bytes are sent. Bits 0-7 are data, and bits 8-15
correspond to the control mask:
______________________________________________________________
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
|_____|_______|_______|_______|_______|_______|_______|_______|
| NOT | RESET| RFFED| REOTR| RLTER| CLEAR| PICLK| PRINT|
| USED| H | H | H | H | H | H | H |
|_____|_______|_______|_______|_______|_______|_______|_______|
timeout Specifies the number of 1/60 second intervals to wait for the
target device to become ready before aborting the request.
This value is limited to 32767.
nctrl Specifies the control word sent with each byte transferred
from the data buffer. The format of nctrl is the same as ctrl
(shown in the figure above).
pulse Indicates whether bit 8 of the control mask (PRINT H) is
toggled as a control bit or interpreted as a data bit. If
pulse is nonzero, the bit is toggled as a control bit.
speed This parameter is not currently implemented.
xiosb Points to an xiosb structure updated upon completion of an
asynchronous request. The xfcnt member of the structure is
not used.
efn Specifies the event flag number associated with an
asynchronous request.
DESCRIPTION
The rplt_data() function writes data to a target parallel device by means
of the raster operation processor (ROP) graphics board. When the target
is ready, a byte in the buffer pointed to by dbuf is sent along with the
control signals specified by nctrl until dcnt bytes are sent. The ctrl
parameter is sent to the target device after each series of count bytes is
sent. It is possible for the target device to never become ready; thus, a
timeout parameter is provided. The pulse parameter indicates whether bit
8 (PRINT H) is toggled as a control bit or interpreted as a data bit.
2 Intergraph Corporation - 2/94
plot_data_rop(3) CLIX plot_data_rop(3)
The rplt_data_nw() function is the asynchronous version of rplt_data(),
providing the same capability without waiting for completion of the
request. The efn and xiosb parameters are necessary to support
asynchronous requests. (See intro(3) for information on asynchronous
requests.)
EXAMPLES
To write a 1K buffer to a Versatec-type tape device, strobing PICLK H with
each byte, and RLTER H after each series of 32 bytes:
void exit(), perror();
if (rplt_data(VERSATEC, buf, 1024, 32, 0x800, 600, 0x200, 0, 0) != NULL) {
perror("rplt_data");
exit(2);
}
RETURN VALUES
Upon successful completion of the synchronous request, a value of 0 is
returned. If the request was not accepted by the XIO system, XIO_FAILURE
is returned. If the request was not accepted by the driver, either
BAD_DATA_BUFFER_ADDRESS, BAD_DATA_BUFFER_SIZE, or PAGE_LOCK_FAILED is
returned. Upon completion of the request, if the target device did not
accept all of the data, a negative status is returned and bits 0-2 reflect
the state of the status signals from the target device.
If the asynchronous request is accepted by the XIO system, a value of 0 is
returned. Otherwise, XIO_FAILURE is returned. If the request completes
without error, the status member of the xiosb structure is set to 0. If
the driver did not accept the request, either BAD_DATA_BUFFER_ADDRESS,
BAD_DATA_BUFFER_SIZE, or PAGE_LOCK_FAILED is returned in the status
member. If the target device did not accept all of the data, a negative
status is returned in the status member and bits 0-2 reflect the state of
the status signals from the target device.
ERRORS
The rplt_data() and rplt_data_nw() functions fail if one of the following
is true:
[XIO_FAILURE]
The system does not contain the driver needed to support this
request or efn is invalid.
[BAD_DATA_BUFFER_ADDRESS]
The data buffer points to a invalid memory address.
[BAD_DATA_BUFFER_SIZE]
The size of the data buffer is invalid.
2/94 - Intergraph Corporation 3
plot_data_rop(3) CLIX plot_data_rop(3)
[PAGE_LOCK_FAILED]
The request is larger than the current available physical memory.
The request should be broken up into smaller sizes.
RELATED INFORMATION
Functions: rplt_ctrl_rop(3), intro(3)
Files: xplot(7)
4 Intergraph Corporation - 2/94