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
| DX |
Port Number (0=Com 1, 1=Com2, etc.) |
|
Upon returning from INT 14H
|
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
|
AH=02H -- Read Character
Prior to issuing INT 14H
| DX |
Port Number (0=Com 1, 1=Com2, etc.) |
|
Upon returning from INT 14H
|
AH=03H -- Status Request
Prior to issuing INT 14H
| DX |
Port Number (0=Com1, 1=Com2, etc.) |
|
Upon returning from INT 14H
|