Аппаратное обеспечение IBM PC




Определение типа компьютера и версии BIOS - часть 3


FCh 06h - 7552 "Gearbox"

FCh 09h 02h 06/28/89 PS/2 модель 30-286

FCh 81h 00h 01/15/88 Phoenix 386 BIOS, версия 1.10

FBh 00h 01h 01/10/86 IBM PC XT, расширенная клавиатура, BIOS может работать с накопителями на гибких магнитных дисках формата 3,5 дюйма

FBh 00h 02h 05/09/86 IBM PC XT

FAh 00h 00h 09/02/86 PS/2 модель 30

FAh 00h 01h 12/12/86 PS/2 модель 30

FAh 01h 00h - PS/2 модель 25

F9h 00h 00h 09/13/85 PC Convertible

F8h 00h 00h 03/30/87 PS/2 модель 80 16MHz

F8h 01h 00h 10/07/87 PS/2 модель 80 20MHz

F8h 04h 02h 04/11/88 PS/2 модель 70

F8h 04h 03h 03/17/89 PS/2 модель 70

F8h 09h - - PS/2 модель 70

F8h 09h 02h 04/11/88 PS/2 модель 70

F8h 09h 03h 03/17/89 PS/2 модель 70

F8h 0Ch 00h 11/02/88 PS/2 модель 55SX

F8h 1Bh 00h 10/02/89 PS/2 модель 70-486

9Ah * * - Compaq XT или Compaq Plus

30h - - - Sperry PC

2Dh * * - Compaq PC или Compaq Deskpro

Следует заметить, что функция C0h прерывания INT 15h поддерживается не всеми версиями BIOS, а только теми, которые были изготовлены после 10 января 1986 года. Если вы используете более старые версии BIOS, дополнительный код модели, версия BIOS и байт конфигурации вам недоступны.

Кроме того, BIOS изготовленный 10 января 1986 года и установленный в IBM XT возвращает неправильное значение байта конфигурации.

Символ "*" в таблице означает, что функция C0h прерывания INT 15h для данной версии BIOS не реализована. Все что вы можете сделать в этом случае для идентификации BIOS - получить байт кода модели по адресу F000h:FFFEh и дату изготовления BIOS, занимающую восемь байтов начиная с адреса F000h:FFF5h. Дата хранится в формате ASCII.

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

#include <stdio.h> #include <dos.h> #include "sysp.h"

void main(void);

void main(void) {

union REGS rg; struct SREGS srg; int i; BIOSINFO far *biosinf_ptr;




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