COMPORT
outb(COMPORT + com_dlbh, COMC_BPS(COMSPEED) >> 8);
outb(COMPORT + com_cfcr, COMC_FMT);
outb(COMPORT + com_mcr, MCR_RTS | MCR_DTR);
outb(COMPORT + com_fifo, FIFO_ENABLE);
inb(COMPORT + com_data);
if (inb(COMPORT + com_lsr) & LSR_TXRDY) {
outb(COMPORT + com_data, (u_char)c);
return(comc_ischar() ? inb(COMPORT + com_data) : -1);
return(inb(COMPORT + com_lsr) & LSR_RXRDY);
#ifndef COMPORT
if (inb(COMPORT + com_lsr) == 0xFF)
inb(COMPORT + com_data);
outb(COMPORT + com_cfcr, CFCR_DLAB | COMC_FMT);
outb(COMPORT + com_dlbl, COMC_BPS(COMSPEED) & 0xff);
const int COMPORT = 0x2f8; /* 0x3f8 COM1, 0x2f8 COM2 */
outb(COMPORT+3, 0x83); /* DLAB + 8N1 */
outb(COMPORT+0, (115200 / BAUD) & 0xFF);
outb(COMPORT+1, (115200 / BAUD) >> 8);
outb(COMPORT+3, 0x03); /* 8N1 */
outb(COMPORT+4, 0x03); /* RTS+DTR */
outb(COMPORT+2, 0x01); /* FIFO_ENABLE */
if (inb(COMPORT + com_lsr) & LSR_TXRDY) {
outb(COMPORT + com_data, (u_char)c);