# rs232 -- Interrupt-Driven UART Driver

Low-level serial driver for up to 4 simultaneous COM ports.  Handles
UART type detection (8250 / 16450 / 16550 / 16550A), IRQ sharing, ring
buffering, hardware and software flow control, and auto-detection of
port base address and IRQ from BIOS data.  This is the bottom layer of
the DVX serial stack.

## Documentation

Full reference is in the combined serial stack doc:
`../serial.dhs` (the `rs232` section).  It compiles into the DVX System
Reference -- open via the Help Viewer app, or read
`docs/dvx_system_reference.html` after `make`.

Topics covered: open/close, read/write, baud rates, handshake modes,
ring-buffer capacity, flow-control watermarks, UART register map,
error codes, and the DMA / polling performance trade-offs.

## Source Files

- `rs232.h`   -- public API and error codes
- `rs232.c`   -- implementation (ISRs, ring buffers, UART detection)

## Build

`make -C src/libs/kpunch/serial/rs232` (invoked by the top-level `make`
via the serial subdirectory).
