第3章 BIOS相关函数库:bios.h 在程序设计中,有时需要涉及到BIOS的相应操作。BIOS是Basic Input Output System的缩写,BIOS对计算机是非常重要的,它是计算机的“基本输入/输出系统”,因此对它的相关信息的获取以及相关配置的设置都是必不可少的。
C语言专门提供了一个针对BIOS操作的函数库——bios.h,该文件库中存在的常用函数主要包括串行通信、键盘接口、设备检查等操作函数。 3.1 bioscom()——串行I/O通信函数 bioscom()函数
实用程度:★★★★☆
实例位置:配套资源\SL\03\01
bioscom()函数用于实现串行I/O通信。
语法
int bioscom( int cmd, char abyte, int port);
bioscom()函数的语法参数说明如下:
参数cmd为要执行的命令。
参数abyte为命令所需要参数。
参数port为通信端口。
bioscom()函数的返回值:一个16位的整数。
示例
本示例演示了bioscom()函数的使用方法,通过bioscom()函数与指定端口进行通信。其具体代码如下:
运行结果如图3.1所示。
图3.1 通过bioscom()函数与指定端口进行通信 3.2 biosdisk()——软硬盘I/O函数 biosdisk()函数
实用程度:★★★☆☆
实例位置:配套资源\SL\03\02
biosdisk()是软键盘I/O函数,用于对驱动器做相关操作。
语法
int biosdisk ( int cmd, int drive, int head, int track, int sector, int nsects, void *buffer);
biosdisk()函数的语法参数说明如表3.1所示。
表3.1 参数说明
biosdisk()函数的返回值:执行后将返回一个组合而成的状态字节。
示例
本示例演示用biosdisk()函数来检测A驱动器是否就绪,并根据结果输出相应的提示信息。其具体代码如下:
运行结果如图3.2所示。
图3.2 检测A驱动器是否就绪 3.3 biosequip()——检查设备函数 biosequip()函数
实用程度:★★★☆☆
实例位置:配套资源\SL\03\03
biosequip()函数用于检查设备状态。
语法
int biosequip ( void ) ;
biosequip()函数没有参数。
biosequip()函数的返回值:一个字节,每一位表示一个信息。
示例
本示例演示了biosequip()函数的使用方法,实现采用biosequip()函数检测处理器是否存在,并将检测结果输出在窗体上。其具体代码如下:
运行结果如图3.3所示。
图3.3 采用biosequip()函数检测处理器是否存在 3.4 bioskey()——键盘接口函数 bioskey()函数
实用程度:★★★★☆
实例位置:配套资源\SL\03\04
bioskey()函数直接使用bios服务的键盘接口。
语法
int bioskey( int cmd);
bioskey()函数的语法参数说明如下:
参数cmd为要执行的键盘命令。
bioskey()函数的返回值:根据命令返回不同的结果。
示例
本示例演示用bioskey()函数判断当前键盘的状态,然后返回键盘上的下一个键,最后将键盘的状态输出在窗体中。其代码如下:
运行结果如图3.4所示。
图3.4 使用bioskey()函数判断当前键盘的状态 3.5 biosmemory()——获取存储块大小函数 biosmemory()函数
实用程度:★★★☆☆
实例位置:配套资源\SL\03\05
biosmemory()函数用于获取存储块大小。
语法
int biosmemory ( void );
biosmemory()函数没有参数。
biosmemory()函数的返回值:存储块的大小。
示例
本示例演示用biosmemory()函数获取存储块的大小,并将获取的结果输出在窗体中。其具体代码如下:
运行结果如图3.5所示。
图3.5 使用biosmemory()函数获取存储块的大小 3.6 biostime()——设置bios时间函数 biostime()函数
实用程度:★★★☆☆
实例位置:配套资源\SL\03\06
biostime()函数用于读取或设置bios的时间。
语法
long biostime ( int cmd, long newtime );
biostime()函数的语法参数说明如下:
参数cmd为功能号,其值为0或1。
参数newtime为要设置的时间。
biostime()函数的返回值如下:
当参数cmd为0时,返回bios的时间。
当参数cmd为1时,将newtime设置为新的时间。
示例
本示例演示用biostime()函数读取和设置BIOS计时器。其具体代码如下:
运行结果如图3.6所示。
图3.6 读/写BIOS计时器