MS-DOS для программиста

         

Программа BIOSVER


В листинге 5.7 приведен исходный текст программы BIOSVER, которая отображает дату изготовления BIOS, а также расширенную информацию о BIOS, полученную с помощью функции C0h прерывания INT 15h .

Листинг 5.7. Файл biosver\biosver.cpp

#include <stdio.h> #include <conio.h> #include <dos.h>

typedef struct _BIOSINFO_ { unsigned size; unsigned char model; unsigned char submodel; unsigned char version; unsigned char hardcfg; unsigned reserved1; unsigned reserved2; } BIOSINFO;

void main(void) { void far *biosdate; BIOSINFO far *binfo; int i; union REGS rg; struct SREGS srg;

biosdate = (void far*)MK_FP(0xf000, 0xfff5);

printf("\n\nДата изготовления BIOS: ");

for(i = 0; i < 8; i++) putch(*((char far*)biosdate + i));

rg.h.ah = 0xc0; int86x(0x15, &rg, &rg, &srg); binfo = (BIOSINFO far*)MK_FP(srg.es, rg.x.bx);

printf("\nКод модели: %02.2X" "\nДополнительный код модели: %d" "\nВерсия изменений BIOS: %d" "\nКонфигурация оборудования: %02.2X\n", binfo->model, binfo->submodel, binfo->version, binfo->hardcfg); }



Содержание раздела