Аппаратное обеспечение персонального компьютера


           

Программа BIOSINFO


Программа BIOSINFO получает и отображает на консоли дату изготовления версии BIOS, а также содержимое таблицы конфигурации, адрес которой определяется с помощью функции C0h прерывания BIOS INT15h:

BIOSINFO (C)A. Frolov, 1997

BIOS data:        04/18/97

BIOSINFO address: 0212:0190

BIOSINFO Size:    8

Model:            FC

SubModel:         1

BIOS Revision:    0

Hardvare Cfg:     70

Reserved1:        00

Reserved2:        00

Hardware configuration

----------------------

Second IRQ Controller 8259

Real Time Clock

Used function 4Fh INT 15h

ISA Bus installed

Исходный текст программы представлен в листинге 1.2.

Листинг 1.2. Файл biosinfo\biosinfo.c

// =====================================================

// Получение информации о BIOS

//

// (C) Фролов А.В, 1997

//

// E-mail: frolov@glas.apc.org

// WWW:    http://www.glasnet.ru/~frolov

//            или//         http://www.dials.ccas.ru/frolov

// =====================================================

#include <stdio.h>

#include <conio.h>

#include <dos.h>

// Структура области данных с информацией о BIOS

typedef struct _BIOSINFO

{

  int nSize;                   // размер структуры

  unsigned char bModel;        // код модели компьютера

  unsigned char bSubModel;     // дополнительный код модели

  unsigned char bBIOSRevision; // номер изменений

                               //  версии BIOS

  unsigned char bHardwareCfg;  // конфигурация аппаратуры

  int reserved1;               // зарезервировано

  int reserved2;               // зарезервировано

} BIOSINFO;

int main(void)

{

  union REGS  rg;

  struct SREGS srg;

  int   i;

  BIOSINFO far *lpbi;

  void far* lp;

  unsigned char bHdwCfg;

  printf("\nBIOSINFO (C)A. Frolov, 1997");

  // Конструируем указатель на дату изготовления

  // BIOS. Эта дата записана в ПЗУ по адресу F000h:FFF5h

  _FP_SEG(lp) = 0xf000;

  _FP_OFF(lp) = 0xfff5;

  // Выводим дату на экран



Содержание  Назад  Вперед