PART 1 - Some Basics of A Parallel Port
PART 1 - Some Basics of A Parallel Port
What is a port?
A port contains a set of signal lines that the CPU sends or receives data with other components. We use ports to
communicate via modem, printer, keyboard, mouse etc. In signaling, open signals are "1" and close signals are
"0" so it is like binary system [See Part 3]. A parallel port sends 8 bits and receives 5 bits at a time. The serial
port RS-232 sends only 1 bit at a time but it is multidirectional so it can send 1 bit and receive 1 bit at a time...
In my application, I used the data ports which can be seen in the picture from D0 to D7
These ports are made for reading signals. The range is like in data ports which are S0-S7. But S0, S1, S2 are
invisible in the connector (See my picture in the article). I mentioned these are for reading signals but S0 is
different, this bit is for timeout flag in EPP (Enhanced Parallel Port) compatible ports. The address of this status
port is 0x379 . this will always be refer to "DATA+1" and it can send 5 numeric data from the 10 - 11 - 12 - 13
- 15 th pins. So how can we reach the data ports? It is simple: every parallel port has an address. In Windows
2000, you can see yours by Settings > Control Panel > System > Hardware > Device Manager > Ports (COM &
LPT) > Printer Port(LPT1) > Properties = in Resources > Resource Setting and you can see your address for
your parallel port. For Ex: Mine is 0378-037F. This is hexadecimal like in math (mod 16). 0x378 belongs to
888 in decimal form. In this way you can look for your com port or game port addresses. Let's enlighten these
bits with a printer example:
S0: This bit becomes higher (1) if a timeout operation occurs in EPP mode.
S1: Not used (Maybe for decoration :))
S2: Mostly not used but sometime this bit shows the cut condition (PIRQ) of the port
S3: If the printer determines an error it becomes lower (0). Which is called nError or nFault
S4: It is high (1) when the data inputs are active. Which is called Select
S5: It is high(1) when there is no paper in printer. Which is called PaperEnd, PaperEmpty or PError
S6: It sends low impact signaling when the printer gets a one byte data. Which is called nAck or
nAcknowledge
S7: This is the only reversed pin on the connector (see my table in the article) . If the printer is busy and
it cannot get any additional data this pin becomes lower. Which is called Busy
This port usually used for outputting but these can be used for inputting. The range is like in data ports C0-C7
but C4, C5, C6, C7 are invisible in connector. And the address for this is 0x37A
C0: This pin is reversed. It sends a command to read D0-D7 on the port. When the computer starts it is
high in the connector. Which is called nStrobe
C1: This pin is reversed. It sends a command to the printer to feed the next line. It is high in the
connector after the machine starts. Which is called Auto LF
C2: This pin is for reset the printer and clear the buffer. Which is called nInit, nInitialize