TACK
out_8(&via[B], in_8(&via[B]) | TIP | TACK);
out_8(&via[B], in_8(&via[B]) & ~(TIP | TACK));
out_8(&via[B], in_8(&via[B]) | TACK);
out_8(&via[B], in_8(&via[B]) & ~TACK);
out_8(&via[B], in_8(&via[B]) ^ TACK);
out_8(&via[B], in_8(&via[B]) & ~TACK);
out_8(&via[B], in_8(&via[B]) | TACK);
out_8(&via[B], in_8(&via[B]) & ~(TIP | TACK));
out_8(&via[B], in_8(&via[B]) | TIP | TACK);
out_8(&via[DIRB], (in_8(&via[DIRB]) | TACK | TIP) & ~TREQ); /* TACK & TIP out */
status = in_8(&via[B]) & (TIP | TACK | TREQ);
while ((in_8(&via2[B]) & TACK) == 0) {
while ((in_8(&via2[B]) & TACK) != 0)
while ((via2[B] & TACK) != 0)
while ((via2[B] & TACK) == 0)
while ((via2[B] & TACK) == 0)
out_8(&via2[DIRB], (in_8(&via2[DIRB]) | TREQ) & ~TACK);