TREQ
return !(portb & TREQ);
out_8(&via[DIRB], (in_8(&via[DIRB]) | TACK | TIP) & ~TREQ); /* TACK & TIP out */
status = in_8(&via[B]) & (TIP | TACK | TREQ);
out_8(&via2[B], in_8(&via2[B]) & ~TREQ); /* assert TREQ */
out_8(&via2[B], in_8(&via2[B]) & ~TREQ);
if (in_8(&via2[B]) & TREQ) {
out_8(&via2[B], in_8(&via2[B]) | TREQ);
via2[B] &= ~TREQ; eieio();
via2[B] |= TREQ; eieio();
out_8(&via2[B], in_8(&via2[B]) | TREQ);
out_8(&via2[DIRB], (in_8(&via2[DIRB]) | TREQ) & ~TACK);