В контроллере COM-порта несколько регистров. Запись в них определённых значений меняет режим работы порта. Эти регистры адресуются от базового адреса контроллера.
_outp(COMBase+3,0x80); - Line Control Register (LCR). Установка старшего бита разрешает доступ к делителю.
_outp(COMBase,0x01); - установка младшего байта делителя (0x01 => 115200 tick/s).
_outp(COMBase+3,0x03); - отключение доступа к делителю и установка размера символа 8 бит, 1 стоп-бит, без контроля чётности.
_outp(COMBase+1,0x00); - Inerrupt Enable Register (IER), запрет всех прерываний.
_outp(COMBase+2,0xC7); - FIFO Control Register (FCR), разрешить буферы FIFO размером 14 байт и очистить их.
_inp(COMBase); - прочитать байт из буфера.
www.osdever.net/documents/CP_serial.pdf