Chapter 5: Programming
Sample Programs
There are sample programs provided with the card in C, Pascal, QuickBASIC, and several
Windows languages. DOS samples are located in the DOS directory and Windows samples are
located in the WIN32 directory.
Windows Programming
The card installs into Windows as COM ports. Thus the Windows standard API functions can
be used. In particular:
►
CreateFile() and CloseHandle() for opening and closing a port.
►
SetupComm(), SetCommTimeouts(), GetCommState(), and SetCommState() to set
and change a port’s settings.
►
ReadFile() and WriteFile() for accessing a port.
See the documentation for your chosen language for details.
Under DOS, the process is very different. The remainder of this chapter describes DOS
programming.
Initialization
Initializing the chip requires knowledge of the UART's register set. The first step is to set the
baud rate divisor. You do this by first setting the DLAB (Divisor Latch Access Bit) high. This bit
is Bit 7 at Base A3. In C code, the call would be:
outportb(BA3,0x80);
You then load the divisor into Base A0 (low byte) and Base A1 (high byte).
The following equation defines the relaionship between baud rate and divisor:
Desired Baud Rate = (UART clock frequency) ÷ (32 divisor)
When the BAUD jumper is in the X1 position, the UART clock frequency is 1.8432MHz. When
the jumper is in the X4 position, the clock frequency is 7.3728 MHz. The following table lists
popular divisor frequencies. Note that there are two columns to consider depending on the
position of the BAUD jumper.