异步通信BIOS功能调用
在PC系列机的ROM BIOS(操作系统基本输入/输出功能固化在ROM中的部分)中提供了异步通信功能,用户可通过INT 14H软中断调用。该功能包含四项子功能。
1.功能O
用来初始化通信口。它的入口参数有3个:DX=通信口号(0为COMl,1为COM2),AH=0(功能号),AL=初始化参数。初始化参数的D7、D6和D5用来设置波特率,取值组合000~111依次对应110、150、300、600、l 200、2 400、4 800和9 600 bps;D4和D3用来设置奇偶校
验:×0、01、11分别表示无校验、奇校验和偶校验;D2位用来设置停止位:0和1分别表示使用1个和2个停止位。D1和DO用来设置数据位:10和11分别表示使用7个和8个数据位。
到功能0调用返回时,AH=通信口状态,AL=Modem状态。AH中除了最高位AH7用于表示超时外,其他位为线路状态寄存器LSR相应位的内容,其含义同LSR相应位。AH7~AH0为1依次表示超时,发送移位寄存器空,发送保持寄存器空,检测到中止字符,帧格式错,奇偶校验错,溢出错(上一个字符CPU还未取走,又收到一个字符),接收数据就绪(已收到一个字符)。AL为Modem状态寄存器MSR的内容,其含义同MSR相应位。AL7~ALO为l依次表示收到载波检测,收到振铃指示,收到数据设备就绪,收到允许发送,载波检测信号发生变化,振铃指示信号发生变化,数据设备就绪信号发生变化,允许发送信号发生变化。
例如置COMl为9 600 bps、8位数据位、1个停止位、无奇偶校验的8086/8088汇编语言程序段为:
MOV AH,0 ;调用INT 14H的功能O
MOV AL,0E3H ;9600,8,l,N
MOV DX,O ;设置COMl
INT 14H ;调用BIOs的异步通信功能
2.功能1
用来向通信口写字符,即将待发送的字符写入发送保持寄存器。它的人口参数有3个:DX=通信口号(同功能0),AH=1(功能号),AL=所写字符。
功能1调用成功(即写入成功)时,AH7=0,AL的内容保持不变;调用失败时,AH7=1,AH6~AH0为LSR相应位的内容,含义同LSR,AL的内容不变。
3.功能2
用来从通信口读字符,即读取已收到的字符。入口参数只有两个:DX=通信口号(同功能0),AH=2(功能号)。
功能2调用成功时,AH7=0,AL=接收字符;调用失败时,AH7=1,AH6~AH0为LSR相应位的内容,含义同LSR,AL的内容不变。
4.功能3
用来读通信口的状态。它的入口参数也是两个:DX=通信口号(同功能0),AH=3(功能号)。
功能3调用返回时,AH=ISR的内容(含义同LSR),AL=MSR的内容(含义同MSR)。