Notes on INT 14H, the serial communication interrupt
excerpted from Hogan, Thom,
The Programmer's PC Sourcebook
pp4-54 - 4-57.
AH=00h -- init Comm Port
AH=01H -- Write Character
AH=02H -- Read Character
AH=03H -- Status Request
AH=04H -- Extended Init -- I'm not including that here -- looks messy
AH=00h -- init Comm Port
Prior to issuing INT 14H
High
Low
AX
00h
Comm Parm Byte
BX
CX
DX
Port Number (0=Com 1, 1=Com2, etc.)
Upon returning from INT 14H
High
Low
AX
Line Status
Modem Status
BX
CX
DX
Modem Status Byte -- Low Byte
7
6
5
4
3
2
1
0
Description
x
Recieved Line signal detect
x
Ring Indicator
x
data set ready
x
clear to send
x
Delta recieve line signal detect
x
Trailing edge ring detector
x
delta data set ready
x
Delta clear to send
Line Status Byte
7
6
5
4
3
2
1
0
Description
x
Time-out
Unpredictable results in other bits when this bit is set to 1
x
Transmitter shift register empty
x
Transmitter holding register empty
x
Break detect
x
Framing error
x
Parity error
x
Overrun error
x
Data ready
Com Port Parameter Byte
7
6
5
4
3
2
1
0
Description
Allowable Values
x
x
x
Baud Rate
000=110 baud
001=150
010=300
011=600
100=1200(default)
101=2400
110=4800
111=9600
x
x
Parity
00=No parity
01=Odd
10=no
11=Even
x
Stop Bits
0=1 stop bit
1=2 stop bits
x
x
Word length
10=7 bits
11=8 bits
AH=01H -- Write Character
Prior to issuing INT 14H
High
Low
AX
01H
character
BX
CX
DX
Port Number (0=Com 1, 1=Com2, etc.)
Upon returning from INT 14H
High
Low
AX
Line Status
character
BX
CX
DX
AH=02H -- Read Character
Prior to issuing INT 14H
High
Low
AX
02H
BX
CX
DX
Port Number (0=Com 1, 1=Com2, etc.)
Upon returning from INT 14H
High
Low
AX
Line Status
Character
BX
CX
DX
AH=03H -- Status Request
Prior to issuing INT 14H
High
Low
AX
03H
Comm Parm Byte
BX
CX
DX
Port Number (0=Com1, 1=Com2, etc.)
Upon returning from INT 14H
High
Low
AX
Line Status
Modem Status
BX
CX
DX