Тип ПЭВМ

В конце ПЗУ BIOS по адресу FF00:0FFE записан байт типа ПЭВМ. Специфицированы следующие 4 значения этого байта для машин фирмы IBM: 0xFF - IBM PC; 0xFE - XT; 0xFD - PCjr; 0xFC - AT. Для ПЭВМ других производителей все наши эксперименты давали один из этих кодов в соответствии с классом компьютера, однако, стопроцентной гарантии этого дать нельзя.

Кроме того, 8 байт ПЗУ начиная с адреса 0xFF00:0x0FF5, содержат дату выпуска данной версии BIOS в символьном виде, например: 01/01/84. Эта информация может быть полезна только для пользователей продукции IBM, в условиях же калейдоскопа фирм-производителей пользу из этих данных извлечь трудно (мы встречали даже ПЭВМ, в которых дата выпуска BIOS отсутствовала вообще). Приведенная ниже программа извлекает из ПЗУ тип ПЭВМ и дату выпуска BIOS (пример 2.).

/*== ПРИМЕР 1 ==*//*======== Чтение типа ПЭВМ и даты издания BIOS =========*/#include <dos.h>main() { unsigned char pc; /* Код типа PC */ char *PT[]= { "AT", "PCjr", "XT", "IBM PC", "???" }; unsigned int t; /* Текущее смещение */ printf("nТип ПЭВМ = %x = ",pc=peekb(0xf000,0xfffe)); if ((pc-=0xfc)>4) pc=4; printf("%sn",PT[pc]); printf("Дата издания BIOS = "); for (t=0xfff5;t<0xfffd;t++) printf("%c",peekb(0xf000,t)); printf("n"); }