Quote:> Does this imply that you can run three parallel printers over IRQ 7,
> decent hardware assumed? Does this checking bypass all PCI/EISA
I wouldn't think so at all on an ISA card. IF you have a PCI/EISA/MCA
parallel port, the odds are better, but I can't imagine that many of
those even exist.
Quote:> For it to work well, you'd need three parallel ports all of which knew
> to tristate their IRQ outputs when not in use. Otherwise, as Robert
> Lipe explained, probably only one of the three would be able to get its
> interrupts through. The three line drivers might even fight badly
Hmmm. Let me try another analogy. For this to work, you have to know
that on tandem bikes the front and rear cranksets [ the things the
pedals are attached to ] always turn at the same rate becuase the
synchronizer chain (the one on the left) holds them locked together.
Actually, it probably works better if you imagine clipless pedals
[ where your shoe is locked to the pedal ]. It works better yet
if the bikers in my little fairy tale only have one foot, but
let's not get crazy. :-)
Quote:> enough to damage the hardware. I've seen two on the same IRQ work
> (where "work" doesn't mean "work perfectly" -- you'll probably have at
> least one Slow Printer). Three on the same IRQ greatly enhances the
> probability of various bad things happening.
Imagine ISA interrupts being like bike pedals. Each can be either up
or down [ active or inactive ]. Like the rear cassette on your bike,
the ISA bus doesn't really care if it's up or down, only that it moved on
it's way to being up or down. [ Think about pedaling vs. coasting vs. just
jiggling the pedals around ] This is what "edge triggering" is all about.
The bus senses an interrupt "happening" when it changes from active to
inactive (a turn of the pedal), not the level of it being active or
inactive.
Now, let's imagine a tandem bike being ridden by two people that aren't
communicating . Each biker is a card. If each biker only has two
states for their pedals (push up/push down, active/inactive) it's very
hard for the other one to change the other's state. If you have a
stronger biker in one position, the other may not be able to change it
at all. If you have evenly matched/weighted bikers, you can each probably
change it, but you're going to bonk the other person's knees.
Twentieth century [ everything except ISA ] machines allow the bikers
to relax. They can "tristate" their legs. In this state, they're
neither pushing up nor down, but are just going with the flow. These
computers sense that the interrupt line is active, then roam around
all the cards whacking them until it goes away. After all the cards
have been satisified, the interrupt request goes away.
You earlier mentioned one of the printers being dog slow while the
other was printing. The dog slow one isn't getting the interrupts
through, becuase it's "pedals" are being bullied by the other. The
pa driver, as I recall, knows that most PC parallel ports are garbage
and if it doesn't get an interrupt in some * amount of time (a
second?) assumes it's been lost and sticks out the next byte.
The interaction here depends on whether the "bully" can push down
harder than he can pull up. You can get silly with my example and
put a fat person with an untied shoe, for example... So depending on
whether he was on an up or a down stroke, the other one may be able
to change it.
Quote:> Someone better qualified at electrical stuff needs to chime in here
> (Robert? Jeff?) The question: assuming they do fight, how likely are
> they do damage themselves? More importantly, is there any chance of
I don't recall there being a current limit specified in the AT specs
for max current sink, but it's been a long time since I looked and, being
a software guy, probably wouldn't remember it anyway.
On paper, every vendor is going to tell you "don't do that". In
reality, have I ever seen it make a fatal difference? Only once or
twice.
Most of the time, you just generate a little extra heat, but since
heat is probably the #1 enemy of silicon, you should probablyh not
do this long term.
Quote:> other parts (the bus, etc.) being damaged? Parallel cards are cheap
> enough I could imagine sacrificing a few as experimental subjects. I
> wouldn't want to toast a motherboard...
No promises from me either. :-)
Quote:> A real hardware hacker would modify his parallel cards to tristate the
> IRQ output -- should be pretty easy. Me, I have enough trouble with
> plain old unmodified hardware...
The problem is that you may have to teach the board how to relax it's
knees. I know some hardware [ at least two of our designs ] the
embedded software has to go whack a latch to make this happen. On
something like an IRQ line where you probably don't have to really
drive a line inactive, but could let it float inactive with the help
of some pulldowns, you might get away with it. But how that you're
talking about sticking three of those pullups in parallel on the same
line, you're surely back in the same tar pit.
The m*of this story is: Shared interrupts on ISA don't work.
You can*around with it and find combinations that might flail
around, but it's not an exercise for the faint at heart, and not likely
to be something that'll work with reproducable consistency.
The other m*of this story is to not let overstressed computer
geeks try to explain things in non-computer terms. :-)