Программа 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); }