⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bios.h

📁 C语言库函数介绍
💻 H
字号:
@函数名称:     bioscom
函数原型:     int bioscom(int cmd,char byte,int port)
函数功能:     RS232串口通信口操作
函数返回:     16位的串口状态信息,各位的含义分别如下:
              当cmd=2时,低8位用于保存接收的数据
              高8位 低8位(cmd=0,1,3时) B15-超时错误
              B7-检测到线路信号 B14-发送移位寄存器空
              B6-振铃指示 B13-发送保持寄存器空
              B5-数据装置就绪 B12-中止检测错误
              B4-数据发送结束 B11-帧错误
              B3-线路信号变化 B10-奇偶错误
              B2-脉冲后沿振铃检测 B9-溢出错误
              B1-数据装置就绪变化 B8-数据准备就绪
              B0-数据发送结束变化
参数说明:     cmd-控制字:0-初始化串口,1-发送一个字符,2-接受一个字符,3-返回串口状态
              byte-波特率和发送位数设置:
              B7,B6,B5-波特率设置:
              9600波特-111,4800波特-110,2400波特-101 ,1200波特-100,600波特-011,300波特-010
              B4,B3-奇偶校验设置:
              00或10-无奇偶,01-奇校验,11-偶校验 
              B2-停止位个数:1-2个停止位,0-1个停止位 
              B1,B0 10-7个数据位,11-8个数据位 port 串口号:0,1,2,3等
所属文件:     <bios.h>

#include <bios.h>
#include <conio.h>
#define COM1       0
#define DATA_READY 0x100
#define TRUE       1
#define FALSE      0
#define SETTINGS ( 0x80 | 0x02 | 0x00 | 0x00)
int main()
{
    int in,out,status,DONE=FALSE;
    bioscom(0,SETTINGS,COM1);
    cprintf("... BIOSCOM [ESC] to exit ...");
    while (!DONE)
    {
        status=bioscom(3,0,COM1);
        if (status&DATA_READY)
        if ((out=bioscom(2,0,COM1)&0x7F)!=0)
        putch(out);
        if (kbhit())
        {
            if ((in=getch())=='')
           DONE=TRUE;
        bioscom(1,in,COM1);
        }
    }
    return 0;
}


@函数名称:     biosdisk
函数原型:     int biosdisk(int cmd,int driver,int head,int track,int sector,int nsets,void *buf)
函数功能:     RS232串口通信口操作
函数返回:     AH
参数说明:     使用INT13完成BIOS级的磁盘操作
所属文件:     <bios.h>

#include <bios.h>
#include <stdio.h>
int main()
{
    int result;
    char buffer[512];
    printf("Testing to see if drive a: is ready");
    result=biosdisk(4,0,0,0,0,1,buffer);
    result&=0x02;
    (result) ? (printf("Drive A: Ready")) : (printf("Drive A: Not Ready"));
    return 0;
}


@函数名称:     biosequip
函数原型:     int biosequip(void)
函数功能:     返回一个表示计算机设备配置的编码
函数返回:     一个字节:
FEDC BA98 7654 3210
---- ---- ---- ---1  磁盘已安装
---- ---- ---- --1-  浮点协处理器已安装
---- ---- ---- XX--  RAM:00=16k,01=32k,10=48k,11=64k
---- ---- --XX ----  初始显示模式:01=40彩,10=80彩,11=单色
---- ---- XX-- ----  磁盘数
---- ---1 ---- ----  无DMA
---- XXX- ---- ----  已安装的串口数
---1 ---- ---- ----  游戏卡已安装
--1- ---- ---- ----  modem
XX-- ---- ---- ----  并行打印机数
参数说明: 
所属文件:     <bios.h>

#include <bios.h>
#include <stdio.h>
int main()
{
    int equip_check;
    equip_check=biosequip();
    if(equip_check & 0X0002)
       printf("There is a math coprocessor installed.\n");
    else
       printf("No math coprocessor installed.\n");
    return 0;
}


@函数名称:     bioskey
函数原型:     int bioskey(int cmd)
函数功能:     读取键盘值
函数返回:     cmd=0:返回一个键盘值(ascii值放在低位,扫描码放在高位),若无按键,一直等
              cmd=1:查询键盘是否按下:0-无键按下,非0-有键按下 
              cmd=2:返回控制键状态,返回值保存在低8位中
              0-右边的shift键按下 5-已打开Scroll_Lock
              1-左边的shift键按下 6-已打开Num_Lock
              3-Ctrl键按下 7-已打开Caps_Lock
              4-Alt键按下 8-已打开Insert
参数说明:
所属文件:     <bios.h>

#include <stdio.h>
#include <bios.h>
#include <ctype.h>
int main()
{
   int key, shift; 
   int lastshift; 
   while (1) 
   {   
      shift=bioskey(2); 
      if(shift!=lastshift)
	 printf("Shift=0x% 02x\n",shift);
      if(bioskey(1)) 
      {   
	 key=bioskey(0); 
	 if((key&0xFF)=='q')
	     break; 
	 printf("Key=0x% 04x",key); 
      } 
      lastshift=shift; 
   }
   return 0;
}


@函数名称:     biosmemory
函数原型:     int biosmemory(void)
函数功能:     返回系统配置的内存大小(单位:KB)
函数返回:     内存大小值(KB)
参数说明: 
所属文件:     <bios.h>

#include <stdio.h>
#include <bios.h>
int main()
{
    int memory_size;
    memory_size=biosmemory();
    printf("RAM size=%dK",memory_size);
    return 0;
}


@函数名称:     biostime
函数原型:     long biostime(int cmd , long newtime)
函数功能:     设置和读取BIOS时钟
函数返回:     cmd=0时,返回时钟值.该时钟为一个每秒18.2次的计数累计值,并在每日24时清零
参数说明:     cmd=0:读取时钟,cmd=1:设置时钟
              newtime-当cmd=1时,为新的设置数值
所属文件:     <bios.h>

#include <stdio.h>
#include <bios.h>
#include <time.h>
#include <conio.h>
int main()
{
    long bios_time;
    clrscr();
    cprintf("The number of clock ticks since midnight is:");
    cprintf("The number of seconds since midnight is:");
    cprintf("The number of minutes since midnight is:");
    cprintf("The number of hours since midnight is:");
    cprintf("Press any key to quit:");
    while(!kbhit())
    {
        bios_time=biostime(0,0L);
        gotoxy(50,1);
        cprintf("%lu",bios_time);
        gotoxy(50,2);
        cprintf("%.4f",bios_time/CLK_TCK);
        gotoxy(50,3);
        cprintf("%.4f",bios_time/CLK_TCK/60);
        gotoxy(50,4);
        cprintf("%.4f",bios_time/CLK_TCK/3600);
    }
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -