Subject: BIOS INT14 Function Description
Driver: RocketPort INT14/FOSSIL driver
Revised: 12/2/97
OVERVIEW
====================================
The original IBM PC INT14 functions ended with Function 3.
FOSSIL drivers extended INT14 by adding calls starting with
Function 4. IBM then extended INT14 with new Functions 4
and 5, with the result being an overlap between the two
implementations of INT14.
The -j switch option allows you to pick between the IBM or
FOSSIL functions 4 and 5. If you need both, FOSSIL functions
1EH and 1FH are the same as the IBM INT 14 functions 4 and 5,
respectively.
(See fu.c for functions and bit definitions written in C.)
FUNCTION DESCRIPTIONS
====================================
Function 0, Purpose: Initialize communications port
AH = 0 (function number)
DX = Port number, where 0=COM1, 1=COM2, 2=COM3, etc.
AL =
unsigned char Parm; Communications parameters, as follows:
Bits 7 - 5: Baud Rate:
000 = 19200 baud
001 = 38400 baud
010 = 300 baud
011 = 600 baud
100 = 1200 baud
101 = 2400 baud
110 = 4800 baud
111 = 9600 baud
Bits 4 - 3: Parity:
00 = None
10 = None
01 = Odd
11 = Even
Bit 2: Stop bits:
0 = 1 stop bit
1 = 2 stop bits
Bits 1 - 0: Data bits:
10 = 7 bits
11 = 8 bits
Returns:
AX = Modem status in low byte(AL), line status in high byte(AH).
(See function 03 for details)
====================================
Function 1, Purpose: Transmit a character
AH = 1 (function number)
DX = Port number, where 0=COM1, 1=COM2, 2=COM3, etc.
AL = character to transmit
Returns:
AX = Modem status in low byte(AL), line status in high byte(AH).
(See function 03 for details)
If the data byte cannot be transmitted within the time-out
period, LNSTAT_TIMEOUT will be returned in the high byte.
====================================
Function 2, Purpose: Receive a character.
AH = 2 (function number)
DX = Port number, where 0=COM1, 1=COM2, 2=COM3, etc.
Returns:
AL = character received
AH = line status in high byte(AH).
(See function 03 for details)
If the data byte cannot be recieved within the time-out
period, LNSTAT_TIMEOUT will be returned in the high byte.
====================================
Function 3, Purpose: Return Modem/Port Status.
AH = 3 (function number)
DX = Port number, where 0=COM1, 1=COM2, 2=COM3, etc.
Returns:
AX = Modem status in low byte(AL), line status in high byte(AH).
(See function 03 for details)
AH = High byte can be 0 or any of the following line status flags:
LNSTAT_DATARDY - on if receive data available and waiting
to be read.
LNSTAT_OVRRUN - on if a overrun error was detected
LNSTAT_PARITY - on if a parity error detected
LNSTAT_FRAMING - on if a receive framing error detected
LNSTAT_BREAK - on if a receive break condition detected
LNSTAT_THRE - on if transmitter has room in transmit buffer
LNSTAT_TE - on if transmitter is completely empty
LNSTAT_TIMEOUT - on if a timeout occurred in functions 1 or 2.
AL = Low byte can be 0 or any of the following modem control flags:
MDMSTAT_CTS - on if CTS input signal is active.
MDMSTAT_DSR - on if DSR input signal is active.
MDMSTAT_CD - on if DCD input signal is active.
MDMSTAT_DCTS - on if CTS has changed since last read.
MDMSTAT_DDSR - on if DSR has changed since last read.
MDMSTAT_DCD - on if DCD has changed since last read.
#define LNSTAT_DATARDY 0x0100
#define LNSTAT_OVRRUN 0x0200
#define LNSTAT_PARITY 0x0400
#define LNSTAT_FRAMING 0x0800
#define LNSTAT_BREAK 0x1000
#define LNSTAT_THRE 0x2000
#define LNSTAT_TE 0x4000
#define LNSTAT_TIMEOUT 0x8000
#define MDMSTAT_DCTS 0x0001
#define MDMSTAT_DDSR 0x0002
#define MDMSTAT_DRI 0x0004
#define MDMSTAT_DCD 0x0008
#define MDMSTAT_CTS 0x0010
#define MDMSTAT_DSR 0x0020
#define MDMSTAT_RI 0x0040
#define MDMSTAT_CD 0x0080
====================================
Function 4, Purpose: Extended Initialize communications port
AH = 4 (function number)
DX = Port number, where 0=COM1, 1=COM2, 2=COM3, etc.
AL = 0 to turn off break condition, 1 to turn on break condition.
BH = Parity setting, 0 = No parity, 1 = Odd parity,
2 = Even parity
3 = Stick parity odd (not supported)
4 = Stick parity even (not supported)
BL = Stop bits, 0=1 stop, 1=2 stop
CH = 2 = 7 bits, 3 = 8 bits
CL Baud rate:
00h 110 baud
01h 150 baud
02h 300 baud
03h 600 baud
04h 1200 baud
05h 2400 baud
06h 4800 baud
07h 9600 baud
08h 19200 baud
09h 38400 baud
0Ah 57600 baud
0Bh 76800 baud
0Ch 115200 baud
0dh 230400 baud
0eh 460800 baud
Returns:
AX = Modem status in low byte(AL), line status in high byte(AH).
(See function 03 for details)
====================================
Function 5, Purpose: Extended Read/Write Modem Control Registers.
AH = 4 (function number)
DX = Port number, where 0=COM1, 1=COM2, 2=COM3, etc.
AL = set to 0 to read modem control register,
set to 1 to write modem control register.
BL = Modem control register contents (if RegAL = 0x01)
Bit: Significance:
0 DTR
1 RTS
2 Out1 (not supported on RocketPort)
3 Out2 (not supported on RocketPort)
4 Loop
5-7 Reserved
Although bits 2 and 3 are not supported on RocketPort,
their state is saved and reported back when the modem
control register is read.
Returns:
AX = Modem status in low byte(AL), line status in high byte(AH).
(See function 03 for details)
Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.