[net.micro] 8255 info request

csc (01/14/83)

Help! I am trying to get one 8255 to talk to another, in mode 1.
The sender should receive an interrupt after the receiver has read his data,
and the receiver should receive an interrupt from its 8255 indicating data is
ready to be read.

The current plan looks like this:
(*OBF == negative true Output Buffer Full
 *ACK == negative true ACKnowledge
 *STB == negative true STroBe
  IBF == Input Buffer Full)

8255 in mode 1 sending data                           8255 in mode 1 receiving

                      |                                  |
              *OBF(b) |--------------------------------->|  *STB(a)
                      |                                  |
                      |                                  |
              *ACK(b) |<----------<inverter<-------------|  IBF(a)
                      |                                  |
                      |                                  |
                      |---------------------------------\|
              Port B  |.........8 bits of data...........| Port A
                      |---------------------------------/|
                      |                                  |
I write a byte to the sender. It sets *OBF(b) low. The receiver's *STB
goes low, and he raises his IBF. The receiver gets and interrupt, reads the
byte, and drops IBF. While this was happening, *ACK went low, clearing *OBF.
Then, when IBF went low, *ACK went high, sending an interrupt to the sender
telling him the data has been sent.

This seems great to me. The question, however, is WHY DID iNTEL MAKE IBF
POSITIVE TRUE LOGIC?

Do any of you have experience with 8255s talking to each other? Did you need
the inverter? Is my scheme going to work?

Tremendous thanks, in advance,
Jan Gray   ...watmath!csc