Universal Parallel Bus -- why not?

Mar 20, 2010 75 Replies

You sure about that? I recall that inputs had to be done 4 bits at a time (nibble mode) to assure compatibility. I have a chunk of code around somewhere that defines all the printer control signals in a sensible way for general purpose control (some are inverted IIRC...)

Checking Jan Axelson's seminal publication "Parallel Port Complete", I see she says:-

The original PC's parallel port had eight outputs, five inputs, and four bidirectional lines.... On many newer PCs, the eight oututs can also serve as inputs..."

Now, the really crotchety old farts will remember that there was a hardware modification you could do to the original parallel port cards (wot used LS TTL parts) to cut the /ENABLE pin of the output latch so it wasn't permanently grounded, and jumper it to allow it to be controlled for birectional I/O, but I wouldn't claim that this "had all the hardware on board" when soldering irons and dremels are involved...

Of course all this stuff has been in a corner of an LSI chip for decades now, so you're stuck with whatever IP is used for the chip, but you used to be able to do it.

Best regards, Spehro Pefhany

"it's the network..." "The Journey is the reward" speff@interlog.com Info for manufacturers: http://www.trexon.com Embedded software/hardware/analog Info for designers: http://www.speff.com

Hoisted by your own petard:

In early parallel ports the data lines were unidirectional (data out only) so it was not easily possible to feed data in to the computer. However, a workaround was possible by using 4 of the 5 status lines. A circuit could be constructed to split each 8-bit byte into two 4-bit nibbles which were fed in sequentially through the status lines. Each pair of nibbles was then re-combined into an 8-bit byte. This same method (with the splitting and recombining done in software) was also used to transfer data between PCs using a laplink cable.

i.e. bidirectional.

The 8255 *was* bidirectional.

IKWYABWAI is just SUCH a convincing argument. What a maroon!

No. It originated with the Monochrome Display/Parallel Port card for the PC, which was hardwired at I/O address 0x3bc. (Later versions had jumpers so you could move it to 0x378). It could be modded to run bidirectionally--I've done several--but it was unidirectional to start with. Later parallel port hardware, especially mobo parallel ports, usually used 0x378 or 0x278 (originally LPT2: and LPT3) to avoid conflicts with the monochrome/parallel card.

The old LapLink parallel file sharing software used the data lines to talk in one direction and the control lines in the other.

Cheers

Phil Hobbs

Dr Philip C D Hobbs Principal ElectroOptical Innovations 55 Orchard Rd Briarcliff Manor NY 10510 845-480-2058 hobbs at electrooptical dot net http://electrooptical.net

I have had NO trouble using 100 feet of cable on a parallel port (R/W too...).

Well, it turns out that the ORIGINAL PC/XT in 1980 had all of the hardware on board to do full 8-bit I/O. Are you perhaps alluding to an earlier version??

The PC-AT in '84 was bidirectional in the sense that there was a '245 or like to read output data pins, but no output disable on the on the output data latch/driver. I had the PC-AT technical manual with circuits, been a while since I read it though.

So if you wrote all ones to port, you could read 8 bit input, providing external device was TTL logic that sinks many times the high level output current. IOW, TTL can be active low wire ORed. The nybble r/w method is far more reliable for any type of parallel port.

Grant.

Duh: the data lines were not bidirectional.

I do not know of any other definition of "bidirectional" which allows different unidirectional wires to count as bidirectional. Bidirectional means two directions on the same wire (and in terms of implementation, usually two directions on the same port address, which certainly isn't true of the four status bits on the parallel port).

Still is. But they never used it. They used discrete latches, hence unidirectional.

Tim

Deep Friar: a very philosophical monk. Website: http://webpages.charter.net/dawill/tmoranwms

Bullshit.

The Monochrome and printer adapter pinout:

Pin No Signal Direction Register-bit DB25 Name

1 nStrobe Out Control-0 2 Data0 In/Out Data-0 3 Data1 In/Out Data-1 4 Data2 In/Out Data-2 5 Data3 In/Out Data-3 6 Data4 In/Out Data-4 7 Data5 In/Out Data-5 8 Data6 In/Out Data-6 9 Data7 In/Out Data-7 10 nAck In Status-6 11 Busy In Status-7 12 Paper-Out In Status-5 13 Select In Status-4 14 Linefeed Out Control-1 15 nError In Status-3 16 nInitialize Out Control-2 17 nSelect Out Control-3 18-25 Ground

IF all you wanted to do on the Old Original Printer ports was get 8 bits OUT and 8 bits IN AND you were willing to write you own code, you just used the Bi- Directional bits as inputs, and that added up to 8 input bits..

If you want to play with the Old Skool stuff, try this:

formatting link

Quote: All you need to do is think of your machine as having

  1. An 8-bit OUTPUT port, with the 8 bits connected to pins 2 thru 9 on the connector 2. An 8-bit INPUT port, with the 8 bits connected to pins 10 thru
17 on the connector (Pins 18 thru 25 are GROUND).

You've probably heard of how weird the parallel port is! It's true, but this software fixes it by moving the funny input bits around and inverting those that need it. This level of software is for those who write their own programs in Turbo Pascal (From Borland) and want to control the parallel port.

If you're just starting out and don't want to write any software YET, use SEEBITS.EXE (Above)

I had a lot of fun with school kids wiring all kinds of junk up to the bits, back in the day...

he

n

Perhaps I am corrected. My PC was not a real IBM.

Well, include me as one of those crotchety old farts that did the mod _without_ the use of a dremel tool (am a bit sneaky at times, then being a new dog at old tricks). The hardware was there, only a slight improvement was needed...

Nope; IBM Technical Reference Manual, First Edition, August 1981 on page D-34 clearly shows a LS374 for data out, and a LS244 for data in.

Yep, that is just what PCIExpress does, up to 16 lanes (serial line=20 group?) does.

lines,

Next the poly bus packet trains. No, i am not kidding. The=20 time has come. It will be normal in about 5 to 10 years.

the=20

using=20

Can't=20

Right so far, see USB 3.0.

parallel=20

=20

Bidirectional=20

true=20

Not 8255. The 8 databus lines of the printer port (Centronics) were=20 implemented with a 74LS374 in XT and earlier. Bidirectional was later.

You are just referring to the wrong connector, those were ISA card slots. The 74LS374 running the printer port data lines is not a bidirectional = device. Get a schematic if you do not believe me.

Yep, and any "0" being output by the ls374 tended to override any "1"=20 from any other device. Wired and, which ever device said "0" (low) won. With the PC or XT ls374 wired on, it did not really make that good of=20 bidirectional.

Gladly, PATA-133 does 125 MBytes/s; SATA-2 at 3.0 Gb/s does about=20

240 MBytes/s. There is some transaction overhead for each of them. The disk spinning at 7200 rpm can provide about 50 MBytes/s. The=20 difference in real use: not all that much, you are still getting=20 eaten alive by rotational latency.=20

Does PCI-E dynamically deskew each lane?

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required