MCR
outb(port + MCR, 0x08); /* IMD */
outb(port + MCR, mcr | OUT2);
uint32_t MCR:1; /* 25 */
mcr = INB(MCR);
OUTB(MCR, mcr|DTR);
OUTB(MCR, INB(MCR) & ~ ASY_LOOP);
OUTB(MCR, OUT2);
OUTB(MCR, RTS|OUT2);
OUTB(MCR, DTR|RTS|OUT2);
val = INB(MCR);
OUTB(MCR, (val & ~DTR));
val = INB(MCR);
OUTB(MCR, val | ASY_LOOP);
mcr_r = INB(MCR);
OUTB(MCR, mcr_r);
mcr = INB(MCR);
OUTB(MCR, (mcr ^ RTS));
OUTB(MCR, 0x08); /* IMD */
OUTB(MCR, (DTR | RTS| OUT2));