It applies to ALL 8255s. For some uses this is not a
problem, others just
plain annoying. All a side effect of putting 10# in a 5# bag if you ask me.
However of all the parallel devices it's widely available (even in CMOS)
and despite it's flaws it's still more versitile than any other PPI.
I guess it depends on what you consider 'versatile' to mean, but
considering the 8255 doesn't let you individually select the direction of
each port line (the 6821, 6522 and Z80-PIO all do, I think the Z8536 does
too), considering you can't change the mode without clearing all outputs
(AFAIK no other parallel chip has that 'feature'), and considering it's
just a plain parallel port with handshakes (the 6522 contains a shift
register, counters, etc too), I think it's one of the _least_ versatile
paralell chips around.
Once you know this it's less a problem. Hint: if
you invert the outputs
and add pullups you can hide the problem for some cases.
Not really. At reset all the lines are inputs (thank %deity they got that
right, or we'd have contentions to deal with too). A TTL input connected
to one of those lines would float high (and it would be a lot easier to
pull the line high than to pull it low). After writing to the mode
register and making that line an output, it will be low. Then you write
to the port and maybe make it high again.
You either have to pull it low externally, or design your circuit to be
happy with this high-on-reset, low-after-configuration setup.
Actually, if any write to the mode register had made all outputs high it
would have been a nicer chip.
-tony