BBS: Inland Empire Archive
Date: 07-04-92 (13:31) Number: 2176
From: STEVE CRAVER Refer#: NONE
To: MAX VAUGHAN Recvd: NO
Subj: RE: PC's as Controllers Conf: (2) Quik_Bas
MV->All I had to do on my particular card was to cut the ground connection
MV->on pin #1 of the 74ls374 and hook it up on pin 15 of the 74ls174
MV->which is normally was already in existance. Now my question is how do
MV->I READ from this port?
The port is bit-mapped. From what you are saying, this must
be an older type of parallel card, since most of the newer
ones no longer support that trick.
The newer ones don't use the 174 and 175's.
MV->the data lines high or do I pull them low to get the data on the
99% of all TTL lines are active LOW, meaning the external connections rarely
need to generate a voltage. All they need to do is supply a ground.
Ok gang, here it is in a nutshell:
FOR THE I/O TYPE OF PORT, you must first set bit 5 at lpt.address + 2:
OUT (LPT.Address + 2), 32
That tells the port to accept data, then read the word:
x = INP(LPT.Address)
x will be from 0 to 255, representing the bit status of the 8 data lines.
Remember to reset bit 5 if you wish to output any data:
OUT (LPT.Address + 2), 0
TO READ A STANDARD PORT, you must "fool" the system. The
output data lines of the port are of open collector type,
meaning you cannot damage anything by shorting any or all
of the pins (there is NO active +5v supply lines on the
parallel port). Knowing this, when you want to READ a
status, you must first set all of the lines high:
OUT (LPT.Address), 255
The port retains the registers upon writing, so now that
all lines are high, have your application supply a ground
to the appropriate pins. Then, turn right around and READ
x = INP(LPT.Address)
x will be from 0 to 255
*** NOTICE ***
Since these type of ports were not meant for input, and by
the simple fact that they are open collector, a simple TTL
"lo", such as the output of a buffer, etc., cannot sink
enough current to change the registers. You must either
supply a dry contact (relay?), or use a transistor
(2N2222). The output of a TTL application can feed the base
of the 2N2222, its' emitter tied to ground (pin 15-25 of
the parallel port), and its' collector tied to the
appropriate data line.
Both of these configurations have been tested and used by
me. As I said in an earlier message, I've been
experimenting with the port for about a year now. If I can
help any further, let me know.
--- DB B1073/071082
* Origin: RadioLink! Columbus, OH (614)766-2162 HST/DS (1:226/140)