Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

rplt_ctrl_rop(3)

intro(3)

xplot(7)



  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




Typewritten Software • bear@typewritten.org • Edmonds, WA 98026