第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()函数与指定端口进行通信。其具体代码如下:

    img31

    img32

    运行结果如图3.1所示。

    img33

    图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 参数说明

    img34

    biosdisk()函数的返回值:执行后将返回一个组合而成的状态字节。

    示例

    本示例演示用biosdisk()函数来检测A驱动器是否就绪,并根据结果输出相应的提示信息。其具体代码如下:

    img35

    运行结果如图3.2所示。

    img36

    图3.2 检测A驱动器是否就绪 3.3 biosequip()——检查设备函数 biosequip()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\03\03

    biosequip()函数用于检查设备状态。

    语法

    int biosequip ( void ) ;

    biosequip()函数没有参数。

    biosequip()函数的返回值:一个字节,每一位表示一个信息。

    示例

    本示例演示了biosequip()函数的使用方法,实现采用biosequip()函数检测处理器是否存在,并将检测结果输出在窗体上。其具体代码如下:

    img37

    运行结果如图3.3所示。

    img38

    图3.3 采用biosequip()函数检测处理器是否存在 3.4 bioskey()——键盘接口函数 bioskey()函数

    实用程度:★★★★☆

    实例位置:配套资源\SL\03\04

    bioskey()函数直接使用bios服务的键盘接口。

    语法

    int bioskey( int cmd);

    bioskey()函数的语法参数说明如下:

    参数cmd为要执行的键盘命令。

    bioskey()函数的返回值:根据命令返回不同的结果。

    示例

    本示例演示用bioskey()函数判断当前键盘的状态,然后返回键盘上的下一个键,最后将键盘的状态输出在窗体中。其代码如下:

    img39

    img40

    运行结果如图3.4所示。

    img41

    图3.4 使用bioskey()函数判断当前键盘的状态 3.5 biosmemory()——获取存储块大小函数 biosmemory()函数

    实用程度:★★★☆☆

    实例位置:配套资源\SL\03\05

    biosmemory()函数用于获取存储块大小。

    语法

    int biosmemory ( void );

    biosmemory()函数没有参数。

    biosmemory()函数的返回值:存储块的大小。

    示例

    本示例演示用biosmemory()函数获取存储块的大小,并将获取的结果输出在窗体中。其具体代码如下:

    img42

    运行结果如图3.5所示。

    img43

    图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计时器。其具体代码如下:

    img44

    运行结果如图3.6所示。

    img45

    图3.6 读/写BIOS计时器