09/26/94 06:35pm
revizia.lek
П.Нортон, Р.Уилтон "IBM PC и PS/2
руководство по
программированию" перевод
В.Н.Григорьева М "Радио и
связь" 1994
Роберт Журден "Справочник
программиста на персональном
компьютере фирмы IBM"
Ревизия системных ресурсов.
При создании
системных программ ограниченного
размера и максимального
быстродействия необходимо точно
знать характеристики используемых
устройств. Подобная задача стоит и
при разработке BIOS-а для открытых
систем.
Определить количество ВУ их
параметры можно тремя способами:
Спросить у пользователя в момент запуска программы;
Прочитать необходимую информацию из системных регистров;
Обратиться непосредственно к устройствам.
Первые два способа наиболее просты, но и наименее достоверны - все сводится к знаниям пользователя, который может ошибиться в ответах или в установке регистров.
С точки зрения системного программирования наиболее интересен третий способ, а первые два могут служить отправной точкой в настройке программы для конкретной машины.
ROM - BIOS
Имеющиеся различия в ПЗУ машин могут влиять на рабочие характеристики программ. Это связано с различным набором встроенных фукций BIOS и различным балансом между аппаратными и программными ресурсами компьютеров.
Маркер даты
выпуска BIOS и номера модели обычно
храниться в конце области
постоянной памяти машины. В
компьютерах фирмы IBM дата записана
в области
с F000:FFF5h до F000:FFFCh, а код машины по
адресу F000:FFFEh.
Кроме этого для ROM-BIOS после 6/10/85 возможно получение таблици с дополнительной информацией, если обратиться к службе C0h прерывания 15h.
Примечания:
1 Дата представлена в американском формате: месяц/число/год;
2 Модели машин:
FFh |
PC |
FEh, FBh |
PC/XT |
FCh |
PC/AT, PS/2-50, PS/2-60, PC/XT-286 |
FAh |
PS/2-25, PS/2-30 |
F8h |
PS/2-80 |
FDh |
PCjr |
F9h |
PC Convertible |
3 Формат таблици конфигурации:
0 |
размер таблици |
2 |
байт модели |
3 |
байт подмодели |
4 |
байт уровня ревизии ROM BIOS |
5 |
байт специальной информации |
Определение версии MS DOS
Эта операция
необходима если Вы используете
функции, отсутствующие в более
ранних версиях. Номер версии DOS
возвращает функция 30h прерывания 21h.
Старшая часть номера содержится в AL
младшая в AH. Если в AL будет 0, то
значит номер версии меньше 2.00
Определение числа и типов адаптеров дисплея.
Для проверки наличия EGA необходимо прочитать байт по адресу 0040:0087h, если там 0, то EGA отсутствует. Если значение не 0, то биты означают следующее:
1 =1, то дисплей монохромный
3 =1, то EGA не активен
Функция 12h прерывания 10h сообщает дополнительную информацию о типе примененного дисплея и количестве памяти на карте EGA.
Определение типа дисковых накопителей.
Информация о типе диска находится в первом байте FAT:
FFh две стороны 8 секторов
FEh одна сторона 8 секторов
FDh две стороны 9 секторов
FCh одна сторона 9 секторов
F9h две стороны 15 секторов
F8h фиксированный диск