Re: [PARPORT] parport read

From: Dave Strauss (
Date: Thu Oct 23 2003 - 10:10:49 EDT

  • Next message: Nate Jenkins: "Re: [PARPORT] parport read"

    There are two basic problems, the first being that the 1284 interface
    is not symmetrical -- in other words, there are more signals driven by
    the peripheral end than by the host end, so that even if you were to
    scramble the cable around (to make what are usually input signals on
    one end become output signals, and vice versa) you wouldn't have
    enough signals to go around. Because of this you wouldn't be able to
    do any sort of 1284 negotiation, so the PC which is acting as host
    wouldn't be able to put the channel into reverse mode. The second
    problem is that, even if you were able to swap enough signals around
    to get, say, compatibility mode to work, you wouldn't be able to use
    the hardware on the receiving end to handle the data strobing -- you
    would have to constantly poll the port and toggle the control signals
    programmatically. This might not seem so bad, but sad experience has
    shown that it's very difficult to do this in a way that avoids losing

    I wouldn't give up *all* hope, but it's certainly not as
    straightforward as you thought. I know, for example, that Windows has
    (had?) the capability of forming a "network" between 2 PC's connected
    via the parallel port, but I don't remember if that required a special
    cable or not (I *do* remember that the connection is/was fairly slow
    compared with a network connection!). Also I seem to remember a lot
    of discussion (on this list?) about doing PPP links via the parallel
    port in Linux. Can anyone shed any light on those activities?

    Doing a Google search on "1284 parallel port" should point you to
    some more information that would help you better understand the

    BTW, is there any particular reason you're trying to use the
    parallel port rather than, say, an ethernet crossover cable?

    -- Dave Strauss

    On Wed, 22 Oct 2003 18:26:32 -0700 (PDT), Cherry Cortes<> wrote:
    > Is there a way that we can cheat the host to see the other end as a
    > peripheral and not as another PC? Coz we should have in the host
    > side the standard way of sending data, and so I think doing our own
    > protocol wouldn't work.
    > Dave Strauss <> wrote:
    > On Wed, 22 Oct 2003 03:46:51 -0700 (PDT), Cherry Cortes wrote;
    > >
    > > We have a loop that only exits if there are some characters
    > > received from the parallel port but the loop never breaks even we
    > > have sent data. By the way, what we're trying to do is to connect 2
    > > pcs wherein 1 acts as sender and the other as receiver ^_^
    > >
    > Well, you can't really do that with two PCs. Both of them are the
    > host end of the IEEE-1284 standard, and in order to send data from one
    > to the other one of them has to act as host and one of them has to act
    > as a preipheral. I believe you should be able to transfer data by
    > manipulating the data and control lines directly, but you won't be
    > able to do it just by doing a read() call. You'll also probably have
    > to come up with your own protocol. LapLink used to do this sort of
    > thing -- they had a special cable and their own software. Are they
    > still in business?
    > -- Dave Strauss
    > > Tim Waugh wrote:On Wed, Oct 22, 2003 at 03:31:55AM -0700, Cherry Cortes wrote:
    > >
    > > > > errno was EAGAIN and call to PPCLAIM was successful.
    > > >
    > > > You set O_NONBLOCK?
    > > >
    > > > Tim.
    > > > */
    > > >
    > > >
    > > > Yes, we already did. Have we missed any procedures/calls?
    > >
    > > Then you need to call read() again. :-)
    > >
    > > EAGAIN Non-blocking I/O has been selected using O_NONBLOCK and no data
    > > was immediately available for reading.
    > >
    > > Tim.
    > > */
    > >
    > >

    -- To unsubscribe, send mail to: --
    -- with the single word "unsubscribe" in the body of the message. --

    This archive was generated by hypermail 2b29 : Thu Oct 23 2003 - 10:17:31 EDT