AH  BIOS Service
00H Initialize communications port

01H send a character

02H receive a character

03H Query communications port status

These functions provide access to the four RS-232 ports supported by BIOS.

Note: BIOS provides only the most rudimentary of unbuffered serial I/O
(DOS is just as bad) and can initialize only up to 9600 baud.
For performance reasons, most communications programs perform
direct I/O port access.

The base address of each of up to four serial ports is stored starting at
0040:0000.  If the POST does not detect a serial port, it writes 0000H
into the corresponding BIOS Data Area variable.  Also, POST quits checking
as soon as it hits an unused port (it will never find COM3 if there is no

DOS Fn 4403H (IOCTL write control data)
- -

INT 14H: Serial Port I/O