::Главная страница :: Assembler :: Статьи ::

Определение типа ПЭВМ.

При решении некоторых задач необходимо знать тип ПЭВМ, тип микропроцессора, состав внешних устройств машины и их технические характеристики (например, попытка обращения программы к несуществующему устройству может привести к "зависанию" операционной системы). Эта информация содержится в определенных ячейках ОЗУ, ПЗУ и КМОПпамяти и приведена ниже.

1.1. Определение типа ПЭВМ.

ПЗУ BIOS содержит по адресу F000:FFFEH байт позволяющий идентифицировать тип ПЭВМ:
FFH - оригинальный IBM PC;
FEH - XT, Portable PC;
FDH - PCjr;
FCH - AT;
FBH - XT с памятью 640 К на системной плате;
FAH - PS/2 модель 25 или 30;
F9H - Convertible PC;
F8H - PS/2 модели 55SX, 70,80;
9AH - Comrad XT, Compaq Plus;
30H - Sperry PC;
2DH - Compaq PC, Compaq Deskpro.

1.2. Определение типа микропроцессора.
Алгоритм определения типа микропроцессора основывается на различиях в регистрах флагов (РгФ) микропроцессоров (МП) 8086, 80286 и 80386 и состоит в следующем: В регистр флагов записывается 0. Если четыре старших разряда РгФ устанавливаются в 1 - это МП 8086. Если нет, то в регистр флага записывается код F000H. Если после этого 4 старшие разряда РгФ остаются в 0, то это МП 80286, в противном случае - 80386.

1.3. Определение даты создания BIOS.
Дата создания BIOS занимает в ПЗУ BIOS 8 байтов начиная с адреса F000:FFF5H и хранится в формате ASCII в виде мм/дд/гггг, где мм - номер месяца; дд - день; гггг - год.

1.4. Определение конфигурации IBM PC XT.
Микросхема последовательного параллельного интерфейса с периферией Intel 8255 в ПЭВМ предназначена для многих целей. Она сообщает об установке переключателей на системной плате, принимает данные с клавиатуры, управляет рядом периферийных устройств, включая микросхему таймера 8253. Из машин семейства IBM PC только AT не использует микросхему 8255; она хранит информацию об оборудовании вместе с часами реального времени в специальной микросхеме с независимым питанием. Однако для работы с клавиатурой и управления микросхемой таймера, микросхема AT использует те же адреса портов, что и 8255. Микросхема 8255 имеет три однобайтовых регистра, называемых портами A,B и C. Адреса этих портов - 60H,61H и 62H соответвтвенно. Считывать данные можно из всех трех портов, но писать можно только в порт B. Для PC установка бита 7 порта B в 1 изменяет информацию, содержащуюся в порте A, установка бита 2 определяет содержимое четырех младших битов порта C, а установка бита 3 делает то же самое для XT.
Содержимое этих регистров следующее:

Порт A (60H)
------------
когда в порте B бит 7=0
биты 0-7 PC,XT,PCjr,AT; 8-битовые скан-коды с клавиатуры

когда в порте B бит 7=1 для PC
бит 0 PC: 0=нет накопителей на дискетах
1 PC: не используется

2-3 PC: число банков памяти на системной плате
4-5 PC: тип дисплея (11=монохромный,
10=цветной 80*25, 01=цветной 40*25)
6-7 PC: число накопителей на дискетах

Порт B (61H)
------------
бит 0 PC,XT,PCjr: управляет каналом 2 таймера 8253
1 PC,XT,PCjr: вывод на динамик
2 PC: выбор содержимого порта C
PCjr: 1=символьный режим, 0=графический
3 PC,PCjr: 1=кассетный мотор выключен
XT: выбор содержимого порта C
4 PC,XT: 0=разрешение ОЗУ
PCjr: 1=запрет динамика и мотора кассеты
5 PC,XT: 0=разрешение ошибок щелей расширения
6 PC,XT: 1=разрешение часов клавиатуры
5-6 PCjr: выбор динамика (00=8253, 01=кассета,
10=ввод/вывод, 11=микросхема 76496)
7 PC: выбор содержимого порта A
PC,XT: подтверждение клавиатуры

Порт C (62H)
------------
когда в порте B бит 2=1 для PC или бит 3=1 для XT

биты 0-3 PC: нижняя половина переключателя 2 конфигурации
(ОЗУ на плате расширения)

0 PCjr: 1=введенный символ потерян
1 XT: 1=есть мат. сопроцессор
PCjr: есть карта модема
2 PCjr: есть карта НГМД
2-3 XT: число банков памяти на системной плате
3 PCjr: 0=128K памяти
4 PC,PCjr: ввод с кассеты
XT: не используется
5 PC,XT,PCjr: выход канала 2 8253
6 PC,XT: 1=проверка ошибок щелей расширения
PCjr: 1=данные с клавиатуры
7 PC,XT: 1=контроль ошибок четности
11

когда в порте B бит 2=0 для PC или бит 3=0 для XT
биты 0-3 PC: верхняя половина переключателя 2 конфигура-
ции (не используется)
0-1 XT: тип дисплея ( 11=монохромный, 10=цветной
80*25, 01=цветной 40*25 )
2-3 XT: число накопителей НГМД (00=1 и т.д.)
4-7 PC,XT: то же, что и с установленными битами

Отметим, что 0 в одном из битов регистра соответствует уста-
новке переключателя "off".

1.5.Определение конфигурации IBM PC AT.

1.5.1.Данные, хранящиеся в КМОП-памяти.

КМОП-память организована на базе микросхемы MC146818 фирмы Motorola и имеет 64 8-разрядных ячейки (регистра). В таблице 1 приведено содержимое тех ячеек памяти, в которых хранятся данные о
конфигурации и состоянии машины. Обращение к КМОП-памяти (запись и считывание) осуществляется следующим образом: сначала в порт 70H заносится адрес ячейки (номер регистра). Затем в зависимости от выполняемой операциии в порт 70H или записываются данные, или из порта 70H данные считываются.

Содержимое ячеек
--------------------------------------------------------------
Адрес ячейки Содержимое
--------------------------------------------------------------
0EH Байт состояния диагностики при включении питания
10H Тип используемого НГМД
14H Конфигурация оборудования
15H-16H Объем основной памяти
30H-31H Объем расширенной (extended) памяти

1.5.1.1.Байт состояния диагностики.

Байт состояния диагностики содержит результаты выполнения диагностики при включении питания машины. Формат байта состояния приведен ниже.

Содержимое байта диагно=стики
--------------------------------------------------------------
Бит Значение
--------------------------------------------------------------
0-1 Не используется, равно 0
2 0 - неправильная установка часов реального
времени;
1 - часы установлены правильно
3 1 - неисправность НМД, невозможно загрузить

операционнцю систему с жесткого диска;
0 - НМД исправен
4 1 - фактический размер оперативной памяти не
соответствует указанному в КМОП-памяти;
0 - размер оперативной памяти указан правильно
5 1 - ошибка в конфигурации системы;
0 - конфигурация указана правильно
6 1 - ошибка в контрольной сумме КМОП-памяти;
0 - контрольная сумма КМОП-памяти правильна
7 1 - разрядка аккумулятора, питающего КМОП-
память и часы реального времени;
0 - аккумулятор исправен и заряжен
---------------------------------------------------------------

1.5.1.2.Тип используемых флоппи-дисков.

Младшая и старшая тетрады этого байта описывают соответственно
второй и первый НГМД:

0000 - дисковод не установлен;
0001 - дисковод на 360К;
0010 - дисковод на 1.2М;
0011 - дисковод на 720К;
0100 - дисковод на 1.44М.

1.5.1.3.Конфигурация оборудования.

Приведен байт конфигурации:

Байт конфигурации
--------------------------------------------------------------
Бит Значение
--------------------------------------------------------------
0 1 - в системе установлены НГМД;
0 - НГМД не используются
1 1 - установлен арифметический сопроцессор
80287 или 80387;
0 - сопроцессор не установлен
2-3 Не используются, равны 0
4-5 Тип видеоконтроллера и его режим:
Биты: 5 4
0 0 - не используются или EGA;
0 1 - CGA, EGA, VGA в режиме 40x25
1 0 - CGA, EGA, VGA в режиме 80x25
1 1 - монохромный контроллер
6-7 Количество используемых НГМД
-------------------------------------------------------------

1.5.1.4.Объем основной памяти.

Ячейка 15H содержит младший байт, а ячейка 16H - старший байт размера основной памяти в килобайтах.

1.5.1.5.Объем дополнительной памяти.

Ячейки 16H и 17H содержат соответственно младший и старший байты размера дополнительной памяти (расположенной выше 1М) в кило байтах.

1.5.2.Данные, хранящиеся в области BIOS оперативной памяти.

BIOS в процессе инициализации опрашивает состояние перемычек и анализирует содержимое КМОП-памяти. После анализа BIOS записывает в свою область памяти по адресу 0040:0010H слово конфигурации. Назначение отдельных битов этого слова приведено ниже

Содержимое слова конфигурации
--------------------------------------------------------------
Биты Значение
--------------------------------------------------------------
0 1 - система содержит НГМД;
2 - система не содержит НГМД
1 1 - установлен арифметический сопроцессор;
0 арифметический сопроцессор не установлен
2-3 Объем основной памяти, установленной на сис-
темной плате:
Биты: 3 2
0 1 - 16К
1 0 - 32К
1 1 - 64К и больше
4-5 Биты: 5 4
0 0 - не используется или EGA
0 1 - CGA, EGA, VGA в режиме 40x25;
1 0 - CGA, EGA, VGA в режиме 80x25;
1 1 - монохромный контроллер
6-7 Количество установленных НГМД
8 1 - используется контроллер прямого доступа
к памяти;
0 - контроллер прямого доступа к памяти не
используется
9-11 Количество установленных портов последова-
тельной передачи данных RS232S
12 1 - применяется игровой адаптер (джойстик);
0 - игровой адаптер не применяется
13 1 - установлен последовательный принтер
(только для PCjr)
14-15 Количество установленных принтеров
-------------------------------------------------------------

А.И.Поворознюк,
И.С.Зыков,
С.Ю.Леонов

Тематические ссылки
Ваша ссылка Ваша ссылка

Обмен кнопками, ведение статистики, реклама.