cmos.c

来自「对CMOS进行设置,如设置FDD,HDD的启动顺序」· C语言 代码 · 共 61 行

C
61
字号
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<dos.h>
#include<io.h>
#define CMOS_ADDR 0X70
#define CMOS_DATA 0X71

void help()
{
    printf("                  CMOS Read/Write Tool                   \n");
    printf("--------------------------------------------------------------------     \n");
    printf("Version: 1.0  DATE:2007/08/25   Author:Guohui.wu  email:wgha@lenovo.com  \n");
    printf("\"/r\" filename  to read the CMOS and save the file as filename.         \n");
    printf("\"/w\" filename to reload the CMOS data(filename) into CMOS              \n");
    exit(1);
       }
void main(int argc,char *argv[])
{
    unsigned int add;
    FILE *fp;
    if(argc!=3)
    {
      help();
      }
   if((strcmp(argv[1],"/r")==0)||(strcmp(argv[1],"/R")==0)||(strcmp(argv[1],"/W")==0)||(strcmp(argv[1],"/w")==0))
      {
        if((strcmp(argv[1],"/r")==0)||(strcmp(argv[1],"/R")==0))
        {
         if((fp=fopen(argv[2],"wt"))==NULL)
         {
            printf("cannot creat the file!");
            exit(1);
            }
           for(add=0;add<=127;add++)
           {
              outp(0x70,add);
              fputc(inp(0x71),fp);
              }
              fclose(fp);
             }
        if((strcmp(argv[1],"/W")==0)||(strcmp(argv[1],"/w")==0))
        {
            if((fp=fopen(argv[2],"rt"))==NULL)
         {
            printf("cannot read the file!");
            exit(1);
            }
           for(add=0;add<=127;add++)
           {
              outp(0x70,add);
              outp(0x71,fgetc(fp));
              }
              fclose(fp);
              }
            exit(0);
            }
            else
            help();
            }

⌨️ 快捷键说明

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